2012-04-01から1ヶ月間の記事一覧

「仕事を全部アウトソース」は有益か?

ある程度囲碁とか将棋が強い人にはわかってもらいやすいかと思うんだけど、一目見て「その手は筋悪だ」と即答するけども「なぜ筋悪なのか?」と聞かれると即答できないことがある。ニコニコ超会議でid:Yoshioriにされた「会社からの仕事を全部クラウドソーシ…

Slideshareにアップロードしたスライドを変更したい

そもそも自分のアップロードしたスライドが見つからないぞ?などとしばらく迷った。いつの間にか、自分のアカウントページに飛ぶとニュースフィードがでるようになっている。自分のアップロードしたスライド一覧を見たければまずは左上隅のメニューから「my …

論理パズル: 臆病な嘘つき2

前回の論理パズル: 臆病な嘘つきはAlloyで生成した後、僕が解いてちゃんと解けることを確認してから公開したのだけども、目下のところ問題なくパズル生成ができているようなのでまだ解いていない問題も公開します。どうもAlloyが間違う可能性よりも、僕が転…

アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-

「アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-」というテーマでの発表を超エンジニアミーティング〜Happy Hacking!〜 in ニコニコ超会議でやって来ました。<テーマ:アイデアを塩漬けにしない 〜世界中の人に手伝ってもらう方法〜> 「面白…

ニコニコ超会議の超エンジニアミーティングで発表します

超エンジニアミーティング〜Happy Hacking!〜 in ニコニコ超会議<テーマ:アイデアを塩漬けにしない 〜世界中の人に手伝ってもらう方法〜> 「面白いアイデアがあるんだけど作る時間がない?」アイデアは作って世に出さなきゃ、無いのと同じです。一度は塩…

論理パズル: 臆病な嘘つき

登場人物は嘘つきか正直かのどちらかである。そして「Xは嘘つきだ」や「Xは臆病だ」と発言する。発言者が正直なら、発言はすべて正しい。臆病な嘘つきは嘘を一つだけつく。 Q1 5人の中に嘘つきは2人、臆病者は2人いる。 A: Bは嘘つきだ。Dも嘘つきだ。しかも…

JavaScriptクイズ「x + 0 == x - 0」

以下の20問のconsole.logで何が出力されるか当ててみよう。 var x = {}; console.log(x + 0 == x - 0) var x = []; console.log(x + 0 == x - 0) var x = (function(){}); console.log(x + 0 == x - 0) var x = null; console.log(x + 0 == x - 0) var x = u…

Alloyでそれなりの難易度の論理パズルを生成

Alloyを使って生成したパズル Q1 E: AとBは嘘つきだよ B: え、Aは嘘つきだけど僕は違うよ A: 私だって嘘つきではないわ D: Aは嘘つきだよね。あとEも嘘つき。 C: 僕は嘘つきではないよ!! この中に嘘つきが2人います。嘘つきは嘘をついたり本当のことを言っ…

Alloyガール完結編

JS: 最近難しい話ばっかり… 僕: ごめんごめん、なんだっけ。 Alloy: JSちゃんが作った「状態遷移するイベントディスパッチャ」の設計をAlloyでモデリングして、何か有益な知見が得られるか試したい、という話ね 僕: そうだっけ… JS: もう2週間も前の話だよ。…

Alloyで論理パズルを生成

Alloyで論理パズルを解くのではなく、Alloyに論理パズルを作らせたい。ここしばらく考えていたのだけども、なかなか行きの電車で座れなかったので(ぇ)解けなかったのだが、今日は妙に電車が空いていたので座ってゆっくり考えることができた。「解が一意にな…

Alloyで次にしたいこと

ミステリーのネタの生成は、いま時系列的な変化を入れてるけど、それはあんまり重要ではない気がする。それより「どこにいた」などの「客観的な証拠」と、嘘を付いている可能性や誤解の可能性のある「主観的な証言」を区別するべきだな。最初Aの証言を聞いて…

Alloyで言語女子会殺人事件2

またPHPが殺されました。 ルール 登場人物は、読者、Python、PHP、Ruby、Perl、JSの6人。 PHP, 読者は犯人ではない。殺害のチャンスは1度だけ。犯人は犯行時刻にPHPと一緒にいた。犯人は「自分以外はみな自分が犯人だと考えない」と考えて犯行に及んだ。 登…

zshに入門する日記

2012-04-23 とりあえずMacのTerminal.appの環境設定で、起動時に開くシェルを/bin/zshにした。chshしてもダメだったので。新しいタブを開いたりした時にちゃんとzshになるようになった。しかし、Lionから入ったと思われる「新しいタブを開く時には同じディレ…

SHOT NOTEでA4サイズの書類を取り込む実験

今日、無印良品に言ったら、SHOT NOTEと同じように四隅にマーカーがあってスマートフォンで取り込むタイプのスケジュール帳を売っていた。あれれKING JIMさん、特許取ってなかったの?で、僕の場合、A4プリンタ用紙やA3のクロッキー帳にメモやマインドマップ…

Alloyでピーターソンのアルゴリズム

ピーターソンのアルゴリズムは、通信のために共有メモリだけを使い「2個」のプロセス間でリソースを競合することなく共有する相互排他のためのアルゴリズムである。 ピーターソンのアルゴリズム - WikipediaAlloyでモデリングしてみた。 https://github.com/…

Alloyで言語女子会殺人事件

事件: PHPが殺されました 状況設定 PHP, Python, Ruby, Perlは仲良し四人組。PHPが殺された当日もその4人が一緒にいるのが目撃されている。しかしなんか諸般の事情で全員に殺害動機はあるらしい。Perlは友人が殺されたショックで寝込んでいるのでまずはRuby…

Alloyで出力したXMLをいじりやすくする

Alloyにも一応Evaluatorっていう対話的に値を観察するコンソールが付いているけども、出力された値をコピペ出来ないとか色々めんどくさくて、個人的にはもういっそJythonコンソールを突っ込んでしまえよと言いたくなるけど「お前がやれ」って言われそうでめ…

Alloyで第二次誤信念課題

Alloyでミステリーのネタを作れないかな、とは前々から思っていたのだけどミステリーのテレビ番組を見ながら少し固まってきた Alloyでミステリーのネタを作るのは一足飛びにはモデリングできる気がしないので、まずは第二次誤信念課題でもモデリングするかな…

Alloyガール6

ここまでの話はこちら: Alloy ドットは結合 僕: ひさしぶり Alloy: ひさしぶり 僕: で、どういう話だっけ Alloy: もう忘れたの?あなたがドット演算子をJavaScriptのメンバアクセス演算子と混同してた話よ。 僕: いちいち言い方がキツイなぁ。まあ、そういう…

Alloyのイラストロジックをリファクタリングした日記

ColとRowで似たようなことを別個にやっているので、まとめられるかも、ということで挑戦してみた日記。 ColとRowで個別のnextが入っている点が難しいかもとのことでしたが、そもそもCol -> Row -> ColorのRowだけ固定してCol -> Colorを作る方法がわからなく…

git config --add receive.denyCurrentBranch ignoreはどう危険なのか

git config --add receive.denyCurrentBranch ignoreをやるとどう危険なのか。一言で言うと「ある人が行った実装を、別の人が無意識に削除してコミットする」という事態を引き起こす。これが危険じゃなくて何なんだ。まずローカルで実験用のリポジトリを作っ…

AppStoreにiPad用アプリを登録する際のアイコンサイズ

「How are the icon files in my application bundle used on iPad and iPhone?」をざっと見て57x57がRiquiredなんだなーと思ってアプリを作った。 https://developer.apple.com/library/ios/#qa/qa1686/_index.htmlしかしValidateすると怒られる。 なんでだ…

AppStoreへの登録のValidateでつまづいた話

Validateしたときにこういうエラーメッセージが出て進めない。 No suitable application records were found Please make sure that you have set up a record for this application on iTunes Connect.これ'prepare for upload'がアップロード待ちの状態だ…

Alloyの出力したKodKod fileを読む

sig X{} run{ #X = 2 }CNFを読もうとしたが、フォーマット*1を教えてもらっても、C言語に例えるならコンパイル済みのバイナリをhexdumpで眺めているような感じでハードルが高いのでKodKod fileを見てみることにした。 import java.util.Arrays; import java.…

Alloyのリファクタリングで悩む日記

ある関係cell : Col -> Row -> Colorがあった時に all c: SomeColSet : some_pred[cell [c, r]] all r: SomeRowSet : some_pred[cell [c, r]]これをまとめる方法が難しい。cellのタプルの1番目がcであるような集合はc.cellだからこうはできる。 all c: SomeC…

Alloyガール番外編「イラストロジック」

ここまでの話はこちら: Alloy ある日 JS: ねえねえ、Alloyでイラストロジックって解けるの? 僕: え、えーと、どうやって書けばできるかはすぐには答えられないけど、SATの性能的には当然解けると思うよ! JS: ふーん、そうなんだー その日の夜 僕: むむむ、…

Alloyでイラストロジックを解く

ラボで昼休みにAlloyの話をしていたら中谷さん(id:n_shuyo)に「Alloyでイラストロジックは解けるの?」と質問されました。で、頑張ってみた結果、結局解けなかった、という話。イラストロジックのルールと元データに関してはこちらを参照: ルールと解き方〜…

Alloyガール5

ここまでの話はこちら: Alloy 第5回 Alloy: もしかしてStateManager.stateがStateManagerのメンバ変数だとか、State.belongがStateのメンバ変数だとか勘違いしているんじゃない? 僕: えっ、違うの? Alloy: ぜんぜん違う。オブジェクト指向に毒されているわ…

Alloyまとめ

スライド Alloy Analyzer のこと by @mr_konn Alloyガール Alloyガール1 Alloyガール2 Alloyガール3 Alloyガール4 Alloyガール5 Alloyガール番外編「イラストロジック」 Alloyガール6 Alloyガール完結編 その他 Alloyを勉強する日記(0) Alloyを勉強する日記(…

Alloyガール4

Alloyガール1、Alloyガール2、Alloyガール3の続き。 StateManagerにつながってないStateは良いのか悪いのか? JS: Stateが3つの例だけが出るようになったー 僕: うんうん、よかったね JS: でもー、さっき全パターン表示した時に気づいたんだけど、StateManag…