パスワードを忘れた? アカウント作成
13206397 journal
医療

Kandoの日記: 「運動誘発性小麦アレルギー(疑い)」の経験から 1

日記 by Kando

「Twitterで大炎上した札幌の飲食店が『デザートビュッフェ』の中止を発表 『本日をもちまして企画を中止することに致しました』」
http://rocketnews24.com/2017/03/23/878551/

この件で件の患者さんと思われる方の過去のSNS履歴を調べて過去にラーメンを食べにいったりしてるから詐病による虚偽・不当なクレームだという批判があるようです。しかしそうとは言い切れないのではないかという経験をしているので以下に述べます。

実は私自身もここ10年弱散発的なアレルギー(蕁麻疹)に悩まされていましたが再現性が低く長年原因が不明でした。

数年前に本格的なショック症状で救急搬送に至った事があり、その直後の血液検査で小麦について弱くだけれど抗体反応があるとわかったのですが「この程度では普通自覚症状は出ません。」という強度で、原因と確定するには至りませんでした。

その後も小麦を食しても出たり出なかったりで、小麦断ちには至っていませんでした。しかし2016年度に入って蕁麻疹からのショック症状で救急車を呼ぶに至ること2度、自宅で床に転がったまま起き上がれなくなること1度があり、急遽半年ほど自発的に小麦断ち生活をしておりました。

流石に専門医に見てもらうことになりましたが皮膚に小さな傷をつけ、少量の抗原を着けて様子を見るプリック検査では陰性。「恐らく運動誘発性食物アレルギーと思われる。確定診断には3日ほど入院しての運動負荷を伴う検査が必要だが、検査しても7割は検査中に症状が出ない(=確定しきれる保証はない)」という話になりました。

(ちなみに福岡から名古屋へ数ヶ月以内に引っ越すことになっているので、入院を伴う検査は引越し後引越し先で治療と合わせてということになったので入院検査はまだです。)

このように現時点では小麦アレルギー、特に運動誘発性の小麦アレルギーの確定診断はなかなか難しいようです。

運動誘発性の小麦アレルギーというのは運動によって体内で炎症誘発性のあるヒスタミンのレベルが上がることで、通常では自覚症状が出ないレベルのアレルギー源に強く反応するようになるというものであるそうです。運動以外にも睡眠不足、脱水症状、その他免疫系に影響のある生活上の各種ストレスの影響もあるようです。

そしてこのような症状なので再現性が低い(小麦を食べれば必ず出るというわけではない)わりには出た時には突然重いこともあるという、医者からすれば診断が難しく、患者としてはおっかないアレルギーです。

小麦が入っていない食品だけで暮らすというのはやってみればわかりますが、相当選択肢が狭まって我慢を強いられる食生活となります。当然喉元過ぎれば…ということもあるのでしばらくお菓子類など少量の小麦で出てないし、今日は体調もいいからと油断して久し振りに軽くサンドイッチでもと思って食べ、その後夜道を歩いて帰る途上で発症してショック症状で救急車を呼ぶ羽目に…ってことが私自身一度ありました(それで専門医にかかる決意をして「運動誘発性(疑い)」という仮の診断を受けるに至ったわけですが。)。

…というわけで、再現性が低いため確定診断が難しく患者自身も半信半疑で小麦断ちには至っていなかったが、直近に大きな発作や確定診断があれば急遽小麦を忌避するようになることはあり得るということです。

なので過去のSNSの記録をほじくり返してラーメンを食べていたからといってその後の小麦アレルギーを詐病だと決めつけるのは如何なものかと思った次第。

12690587 journal
ゲーム

Kandoの日記: 「ソシャゲのガチャで,本当にヤバい問題はどこなのか」を読んで思ったこと 9

日記 by Kando

【山本一郎】ソシャゲのガチャで,本当にヤバい問題はどこなのか - 4Gamer.net
http://www.4gamer.net/games/238/G023885/20160216028/

この記事、インタビュー相手の消費者庁担当者の人柄か、言い方が穏やかなだけでよく読むと消費者庁も厳しい目で見ているようである。
海外の例を挙げて2度も「(プレイヤー=消費者間の)アンフェア」と言っているし、射幸心(確率を極度に下げる事で希少性による価値を吊り上げつつ、確率を明示しない事で希望を煽る)というキーワードと共に依存症になり易い傾向についても認めている。
規制にすぐ行くような話になってないのは他案件との優先順位の問題(消費者庁も御多分に洩れず人手不足故に)と事態の把握に努めているフェイズだからであろう。
実際、電話番号(188)を挙げて、通報が増えれば優先順位が上がるといいつつ通報を求めている。

さて、ゲームデザイン分野では現実世界とゲームを隔てる「マジックサークル」(原則的に現実世界の地位や経済力をゲーム内の有利不利に持ち込まず、ゲーム内の得失を現実世界に持ち出さないように隔てる境界線)という概念が知られている。

また「価値の階層」という、単純なメカニズムが、構成要素として上位のメカニズムに組み込まれ、上位のメカニズムによって下位のメカニズムの結果が評価される時、このような階層を積み重ねることでプレイヤーが感じる下位のメカニズムの結果の価値を高めていくことができることも知られている。

RPGの例で言えば、コアとなる彼我の攻撃の成否や与ダメージ値や被ダメージ値がヒットポイント(HP)と増減という上位メカニズムの評価に反映され、HPの増減が自キャラと敵キャラの生死というさらに上位のメカニズムの評価に反映し、生き延びた場合、経験値や金銭やアイテムの取得というさらに上位のメカニズムの評価に反映し、経験値はLvアップといった成長メカニズムに、金銭やアイテム報酬はゲーム内の経済システムのメカニズムにと積み上がっていくことで一撃毎の与ダメ、被ダメの乱数値という元来たわいも無いコアメカニズムの生み出す結果に価値を感じることができるようになり一喜一憂できるようになる。

以上から、マジックサークルを侵す様な設計のゲーム(賭博、RTM、トレーディングカード等)では価値の階層が現実世界にまで接続され、ゲーム内の行為の価値をより高める事が予想できる。よってマジックサークルを侵すデザインのゲームはマジックサークルを侵さないデザインのゲームより誘引力が強まり、飽き難く(より正確には飽きても止め難く)なる傾向があるであろう。

以上の予想から、賭博に特別扱いが必要であることや、強く射幸性を煽るソーシャルゲームに特別扱いが必要な事が予想できる。

ただ、個人的にソーシャルゲームについて意外だったのはRMTがなければ現実世界へのリターンがないので賭博ほどの誘引力がないだろうと思っていたところ、RMTの存在が特に言われていないようなゲームでも案外強力だったこと。どうやらサンクコスト(既に支払ったコストが無駄になるのを惜しむ)の心理的効果や、ゲーム内に広がるプレイヤー間の競争的・協調的人間関係(ソーシャルゲームのソーシャルたる部分)の効果が存外強いようだということのようである。

埋没費用(サンクコスト) - Wikipedia
https://ja.wikipedia.org/wiki/%E5%9F%8B%E6%B2%A1%E8%B2%BB%E7%94%A8

参考図書
ルールズ・オブ・プレイ(上) ゲームデザインの基礎 by ケイティ・サレン
http://www.amazon.co.jp/dp/4797334053/
ルールズ・オブ・プレイ(下) by ケイティ・サレン
http://www.amazon.co.jp/dp/4797334061/

12678988 journal
日記

Kandoの日記: キタ━(゚∀゚)━!!!!! 2

日記 by Kando

キタ━(゚∀゚)━!!!!!
.
.
.
今日(スラドに日記を書いてる今からすると昨日)、2015年12月66日。ついに結合テストの一つ目が動いた!

研究会 - PTaaS (Platform for Tool as a Service) ~ クラウドサービスを通じて開発ツールを提供する ~
http://www.ieice.org/ken/paper/20111129K09P/

コンセプトの国内発表から4年。

XMPPクライアントとなるコンポーネント3種、内一つはEclipseプラグイン用、もう一つはAWS上での遠隔ビルド用にANTを内蔵したエージェント、残る一つはコマンド起動エージェント。XMPP外部サーバコンポーネント1種はAWSのAPIを叩いてエージェントの載ったVMを管理する。

Javaのコード〆て約3万行程の規模。全てのコンポーネントのコードはユニットテスト込みで昨年2月頃にほぼ出来ていたが、結合テスト実験環境の構築(VagrantとChef, Rakeによる環境構築の自動化とテスト込み)に半年。結合テストでのバグ取りに半年も掛かってしまった。

.
…けど、終バスの時間なので一旦店じまい。

問題はまだ残ってるだろうし、実験して論文にまとめていかないといけなかったり先は長いけれど、とりあえず一つ目の結合テストケースは12月中に通そうと思っていたことが12月延長ネタにつながっていたのでそういう意味で実は年明けです。

日本標準時の皆様、遅まきながら、明けましておめでとうございます。

結合テスト初開通祝い。帰途のロイヤルホストで1ポンド(450g)ステーキとホットファッジサンデー。
https://www.facebook.com/takayuki.kando/posts/946582615433463

12075150 journal
クラウド

Kandoの日記: AWSのネットワーク設定問題とOpenfireサーバの設定自動化問題 1

日記 by Kando

日記「ネットワーク設定のトラブルシューティング経験が薄すぎて困っている」の続き。

問題は2つ:
1)AWSのパブリックIP→プライベートIP間のルーティング設定
2)Openfireサーバの回避不能なWeb GUI経由の初期設定を自動化する手段

前者については積読にしてる
「Amazon Web Services 基礎からのネットワーク&サーバー構築」
http://www.amazon.co.jp/dp/4822262960/
を読むべき時が来たのかも。

後者はどうしようか……。

12073532 journal
クラウド

Kandoの日記: ネットワーク設定のトラブルシューティング経験が薄すぎて困っている 8

日記 by Kando

[ https://www.facebook.com/takayuki.kando/posts/784707354954324 ]の件。

現状、AWSのCentOS 7上でOpenfire(XMPP)サーバ(Ver.3.8.1 JavaVMは1.8.0_31-b13)は動いている(プロセスが走っている)。

しかしnetstatしてみるとIPv6の方だけ9090をListenしているが、9091、5222、5223は全くListenしてない。
(9090はhttpの9091はhttpsでサーバ設定用UIページ。5222、5223はXMPPで使うポート。)

AWSの上の同一セキュリティグループ別ホストからのcurl http://<プライベートIP(IPv4形式)>:9090/は(多分正常な)応答がある。同ホストからのcurl http://<プライベートIP(IPv4形式)>:9090/とcurl http://localhost:9090/にも応答がある。当然プライベートIPで手元のブラウザには応答がない。

パブリックIP(IPv4形式、Elastic IPでもある)とパブリックDNS名については、同ホスト、別ホストからのcurl、手元のブラウザどれも応答なし(いずれも無応答時間切れ)。

AWSのセキュリティグループ設定で9090は手元のネットワーク、同一セキュルティグループ内ではインバウンドが許可されている状態。Openfireが動いているホストでのiptablesは設定が空(?)に見える(読み方がイマイチ分ってないので確信はないが)。

SSHは普通にパブリックIPで通っていてログインは出来ている。

さて、一体次は何をするべきか。取りあえず設定UIである9090に手元のWebブラウザからアクセスできるようにはしたいが、我ながらネットワーク設定のトラブルシューティング経験が薄すぎて困っている。

(続き: 「AWSのネットワーク設定問題とOpenfireサーバの設定自動化問題」

11978864 journal
プログラミング

Kandoの日記: Nim言語、調べてみないとなぁ 7

日記 by Kando

10年ほど前失業してた頃に就職活動としてC++テンプレートのコンパイル時展開を利用してで浮動小数点演算を実装し、FFTと動的計画法を計算していました。 

「テンプレート・メタ・プログラミングによるFFTの適応的最適化」
http://ci.nii.ac.jp/naid/110002768692

このような所謂テンプレートメタプログラミングはジェネラティブプログラミング可能な実用レベルの処理系が今すぐに使えるという所に意味がありますが、元々C++のテンプレート機構は総称の1実装であってテンプレートメタプログラミングを意図して設計されてはいないので言語仕様としては人間にやさしくないという重大な欠点があります。

なのでこの曲芸的なテンプレートメタプログラミング事例は「ジェネラティブ・プログラミングの機能を最初から考慮に入れた言語が必要だよね!これはそういう言語があればこういうことができるというサンプル。」という趣旨でした。

…とはいえ中々そう言う仕事に取り組める状況でもないのでそういう言語の提案が出来ないまま10年が過ぎました。
(できるできないだけならLispでいいじゃんという御意見もあるでしょうが、もうちょっと普通の人が慣れ親しんだ系統の言語の拡張で提案したいなと。)

…と思っていたら最近Nim[ http://nim-lang.org/ ]という言語がコンパイル時計算を最初から考慮に入れた静的な型づけをする手続き型言語といって売りだしてるようなので調べてみないとなぁ……と思う今日この頃。

11823459 journal
アニメ・マンガ

Kandoの日記: #秋葉原奪還計画 に関連して盛り上がっているフィクションの表現と差別についてのメモ 9

日記 by Kando

「秋葉原奪還計画、あるいはおたくと政治について」http://togetter.com/li/756998

↑を見て、これに関連して盛り上がっているフィクションの表現と差別についてのメモ。

差別(正しくは「不合理な差別」)をもたらす「偏見」と(主としてビジュアル系の)フィクションにおける表現の関係については「外見や記号から連想される性格」という、人が抱く避けがたい偏見入りの連想を必然的に利用(外見通りの性格設定にするにせよ外見を裏切る性格設定をするにせよ)してる面があるので、突き詰めにくいだろうと思う。

私個人としては「フィクションと現実は違う」を徹底し、現実世界での判断について合理的な根拠を問うことで現実の社会的な判断・決定にフィクション由来の偏見を紛れ込ませないのを徹底する方が良くて、「フィクション側から偏見を駆逐して現実をも変えてやる」という作戦は取らない方がいいと思っている。

11417465 journal
日記

Kandoの日記: 洗えるキーボード 2

日記 by Kando

実は私、話題になるちょっと前に店頭でLogicoolな洗えるキーボード[ http://www.logicool.co.jp/ja-jp/product/washable-keyboard-k310 ]を見つけて買って家で使っています。まだ洗ってはいないですが。

InsとBS、右方向キーとテンキーの0(NunLockしてないとIns)がかなり近く、思わぬ時にInsキーを引っ掛けてIDEやワープロで挿入モードから上書きモードに入ってしまってイラっとする以外はまぁとくに不可はなくって感じの使用感。(常時NumLockすることで事故が減ってやや改善。USBから抜いてもNumLock状態は覚えているようです。)

…とはいえ私はキーのタッチについてはあんまり拘りがないので、拘る人にとっていいかどうかは定かではありません。

埃と脂で汚れたまま使ってることが多いので洗えるのもいいかなと思って買った訳ですが、実はまだ一度も洗ったことはありません。何か液体をこぼしたこともありませんのでその防水性能の程はまだ発揮されていないという…。

11122407 journal
プログラミング

Kandoの日記: [XMPP] Smack API(3.4.1)のSocks5ストリームの実装の話 1

日記 by Kando

受信側でソケットのストリームにPushbackInputStream被せて、ストリームを返す前に1バイト試しに読んでみて読めたら押し戻してから、シレっとPushbackInputStreamを使用者側に返すという実装になってるせいで、発信側が1バイト以上送るまで受信側ではストリーム・オブジェクトが受け取れないという、ライブラリ使用側には伺い知れないアンドキュメンテッドな依存関係が潜在していたらしい…。

これがIBB(In-Band-Byte stream)のバグを避けてSocks5利用に限定にすると、ファイル転送(送受信はスレッドを立てて勝手にやる)のユニットテストは成功するのに標準入出力の中継(送受信はストリームオブジェクトを受け取ってから始める)のユニットテストで何故か失敗してた理由か…。

(localhost上のJunitテストスレッド内で送信側クライアント、受信側クライアントが動いている環境。入出力ストリーム受け取り後の送受信は別スレッドだが入出力ストリームが揃うまでは送信側も受信側も同一スレッド。)

ちなみにIBBにはclose周りのバグがあり末尾が切れたりするが、開始時にはこういう暗黙の依存関係はない。

  しかしIBBとSocks5でこんなに挙動違うのにSmack APIのデフォではIBBとSocks5ストリームのどっちが返ってくるかわからないんだからなぁ…そりゃランダムなバグに悩まされる訳だ…。

どうやって解消するかなぁ。送信側開始/受信側開始のタイミングに依存関係があったりなかったりするのは困るから標準入出力の中継に使うときはネゴシエーション過程でストリーム開設直後にダミーデータを送信して受信時にそれを読みこんで切り取っておくか…?

しかし印象としてSmack API(XMPPクライアント用のJavaライブラリ)、Stream InitiationとFile Transfer周りの実装が、他の機能に比べて全体に雑な気がするぞ。スレッドの使い方とかもやや古風だったりしたし…。

11074507 journal
プログラミング

Kandoの日記: Stream Initiatio中のDisco infoのタイムアウト回避(XMPP、Smack API関連) 3

日記 by Kando

ファイル転送時Smack API(バージョンは3.4.1)に In-Band-Byte-Stream(以下IBB)の実装にあると思われるバグ(送信側のclose操作が受信側でEoFではなくIOExceptionを発生する)を回避するためのStream InitiationでSocks5ストリームを無理やり使わせている。

この「無理やり」はSmackのorg.jivesoftware.smackx.filetransfer.FileTransferManagerとorg.jivesoftware.smackx.filetransfer.OutgoingFileTransferを継承したクラスを作って、Stream Initiationのネゴシエーション要求のパケットとその応答パケットから無理やりIBBを示す"http://jabber.org/protocol/ibb"を除去して、ネゴシエータとして無理やりデフォルトのorg.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator.FaultTolerantNegotiator(Socks5の接続に失敗するとIBBを使用する)の代わりに直接org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.Socks5TransferNegotiatorを使わせることで実現している。

正直これはかなり色々無理やりだとは思うので早くIBBの実装が直って欲しいものである。
(もうちょっと時間に余裕が出来たらSmack APIの開発元にバグ報告しないとと思ってはいるが
今は検証や確認のやり取りをしている時間と心の余裕が全くない。
どのくらい余裕がないかはこの日記の時刻から察していただきたい…。)

どのくらい無理やりかと言うと、FileTransferManagerもOutgoingFileもsetter/getter抜きのprivateフィールド/メソッドだらけであるし、これらが利用するクラスもコンストラクタがprivateだったりデフォルト・スコープだったりで継承される可能性をほぼ考えていない。実際、IBBはStream Initiationがサポートされていれば本来必ずサポートされるプロトコルであるからこれを使わないようにネゴシエータに介入することはしないものだろうとは思う。私にしてもIBBの実装に上記のようなバグがあってファイルの末尾が切れるなんてトラブルさえ起こらなければネゴシエーションに介入しようとは思わなかっただろう。

で本題。

Socks5ストリームを開設しようとするとネゴシエーション中に、サービス発見(Service Discovery - Disco XEP-0030)の問い合わせがタイムアウトして接続が失敗する問題が発生していた。

これはXMPP接続開設時にデバッグ有効にしてパケットのダンプを眺めていると、なんだか送信時、APIで問い合わせパケットが放たれてから応答側に問い合わせが届くまでに不自然に長い時間(通常ミリ秒のところ5~10秒)がかかるため起きているようであった。が、原因はわからない(Smack APIコンフィグレーションの応答タイムアウト設定を長くすると遅延も長くなって必ずタイムアウトするという凶悪な挙動)。
ちなみにStream Initiationパケットの処理中以外のDiscoは特に不具合もなくミリ秒単位で成功する。

仕方がないので取りあえずEntity Capability(XEP-0115)を有効にすることでDiscoの問い合わせ結果をキャッシュさせてStream Initiationパケット処理中の問い合わせ自身を回避することでタイムアウトも回避できた。Entity Capability自身はDiscoの問い合わせ結果のキャッシュとそのハッシュ値を管理してDisco問い合わせ回数を減らすための拡張規格であるわけで、まぁこのことがなくても基本的に常時有効にしておくのがいいのかもしれない。

有効にするコードは例えばファイル転送を管理するクラスのコンストラクタ内でorg.jivesoftware.smackx.entitycaps.EntityCapsManagerを使って以下の通り:


    this.ecm = EntityCapsManager.getInstanceFor(connection);
    if(!this.ecm.entityCapsEnabled()){
        this.ecm.enableEntityCaps();
    }

ただこんどはSocks5のProxyへの接続が成立しないというエラーが出ているという…。

typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...