タグ

nishioに関するsyanbiのブックマーク (8)

  • 遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー

    最近、3年くらい前に書いた「そろそろ例のプロジェクトについて言及するか」についてTwitterで言及があったので思い出しました。「条件を満たしたものをすべて呼び出す」という設計思想でプログラムが書けてしまうという点について意外とみんなピンと来ないみたいだからコンセプトプルーフを実装してみようと思っていたんでした。 という訳で作りました。https://github.com/nishio/genomy 解説 「遺伝子はタンパク質の設計図」というところまでは教科書などでもよく言及されます。でも、その設計図には「どういう状況になったら作るべきか」「どういう状況では作るべきではないか」という情報も書かれています。 この「作るべきではない」(発現の抑制)がどう実現されているか、ザックリ説明しましょう。体の中にあるタンパク質があると、これがある遺伝子の周辺にへばりつき、その遺伝子からタンパク質を作る過

    遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー
    syanbi
    syanbi 2011/12/27
    タンパク質の発生条件、成長条件を元にしてXOR回路作成か・・・
  • やる気が出ない人の心理学 レバレッジメモ - 西尾泰和のはてなダイアリー

    このは人間の絶望・無気力・おっくうの原因の解説書ではない。無気力になる傾向を持つ人が、どうやってそこから抜けだして元気に生きられるかというである。無気力になる傾向を持つ人には私も入っている。 この記事は筆者の『「やる気がでない人」の心理学』を読んだ際の読書メモです。 追記: このエントリーの内容を元に平均10問の質問に答えるだけであなたの状況に合わせたアドバイスをする人工知能を作りました。オススメです。 セリグマン人が書いた(の翻訳)としては世界でひとつだけの幸せ―ポジティブ心理学が教えてくれる満ち足りた人生とかがいいのかな。 前回、同じ著者(加藤諦三)の不安のしずめ方 40のヒント(レバレッジメモ)を読んで意外とよかったので別のを買ってみた。「やる気がでない人」の心理学 セリグマンの論文から引用しつつ、人間が無気力になる原因などについて解説した。セリグマンの元々の実験の話が明

    やる気が出ない人の心理学 レバレッジメモ - 西尾泰和のはてなダイアリー
  • 最小限Lisp - 西尾泰和のはてなダイアリー

    Web-DB Vol.60が手元にある人はぜひLispの章を見てみてくださいね。Lispのコードがほとんど構文木と同じであって、その構文木を実行するときにどうなるか、という話。 下のコードを見ればわかるとおり、Lispのコードではリストの区切りにカンマがないけどもPythonにはあるってところと、LispのアトムはPythonでは文字列で表現しているので引用符がくっついている。それくらいの違いしかない。で、その構文木がこれくらいのコードで実行出来る、と。 でまあ、これはコードに特殊形式がないから全部「各要素をevalしてから計算をする」という流れになっているのだけども、それじゃifとか実現できなくて困るよね?どうすればいいと思う?というのは機会があればまた今度書く。 # -*- encoding: utf-8 -*- """ mini-Lisp Lisp解説のための、Lisp風構文木を受け

    最小限Lisp - 西尾泰和のはてなダイアリー
  • 最小限VM - 西尾泰和のはてなダイアリー

    手元にWEB-DB Press vol.60の「言語設計の基礎知識」がある人はP.28を参照ください。ここにあるような「カウントダウンをするwhile」、原稿ではC言語で説明していますけど、当は機械語とかにもふれたかったのですよ。紙面と時間の都合でできていないのですけど。 で、生の機械語はそれはそれで色々説明しないといけないから大変かな、と思ってwhileを実現するために最小限の仮想機械を作ってみました。 # -*- encoding: utf-8 -*- """ mini-VM 解説のための最小限のVM 最小限とは?最小限である必要があるか? チューリング完全である必要があるのか? jump pos : PCをposに変更 if_eq a1 v1 pos : mem[a1] == v1 ならjump pos print a1 : mem[a1]をprint set a1 v1 : me

    最小限VM - 西尾泰和のはてなダイアリー
  • printf("%d", f)でfがfloatの時の挙動について - 西尾泰和のはてなダイアリー

    型はバイト幅だけじゃなくてどうやって二進法でエンコードするのかも規定するよね、という話をしていて確認のためのコードを書いた。手抜きをして方法Bでやってもいいよね、と思ったら予想外の結果が出たので悩んでいる。→解決 #include<stdio.h> int main(){ int i; float f = 1.0; /* 素直な方法 A (追記:やっちゃダメ!)*/ i = *(int*)(&f); printf("A %d\n", i); /* 手抜きな方法 B */ printf("B %d\n", f); } Rubyでこんな感じに文字列化して、と。 irb> def pp(x) x.to_s(2).rjust(32, "0") end irb> pp 1065353216 => "00111111100000000000000000000000" 0.500000の時 A 1056

    printf("%d", f)でfがfloatの時の挙動について - 西尾泰和のはてなダイアリー
  • 焼畑農業をやめるために---新卒準備カレンダー 2011春 - 西尾泰和のはてなダイアリー

    by Lior Shapira under CC BY-NC-ND 2.0 このエントリーは新卒準備カレンダー 2011春という、みんなで仕事に関して自分が考えることなどをエントリーに書いていく企画で書かれたものです。 渋川さんの話を聞く会のつもりが、なぜかいつの間にか名前入りで「新卒準備カレンダー 2011春 : ATND」を作られていたので、空気を読まずに農業の話をします!! お前だれよ? 西尾泰和と申します。サイボウズっていうグループウェアの会社のサイボウズラボっていう研究部門子会社で、まあ研究とかをしています。一番最近のアウトプットはこのブログの右サイドバーに出ている「 Amazon.co.jp: WEB+DB PRESS Vol.60」で「言語設計の基礎知識」という特集を書いたことかな。そうそう、3年くらい英語版のプロフィールページしか更新していなかったら3年前の日語版を最新版

    焼畑農業をやめるために---新卒準備カレンダー 2011春 - 西尾泰和のはてなダイアリー
  • Rediscover the Monte Carlo - 西尾泰和のはてなダイアリー

    僕個人はゲームの思考ルーチンを作ることなどには興味があるので、みんな知っていることだと思っていたのですが、意外と「現在世界最強の囲碁の思考ルーチンはモンテカルロ」ってのは知られてないみたいですね。うっかりすると「そんなわけないだろー」とか言われてしまう。その根底には「モンテカルロはとても収束が遅くて使いものにならない」という過去の記憶があるのかなー。ちょうどJavaScriptが使いものにならないおもちゃ言語だと思われていたように。 囲碁の思考ルーチンを著しく進化させた新しいモンテカルロが昔の単純なモンテカルロとどう違うかというと、UCB1という評価関数で「もっと探索するとヨサゲな局面」を判断して、ヨサゲな局面から優先的に探索するという点なんだけど、そういう定性的な話をしてもピンと来ないよね。同じ発想をモンテカルロで円周率を求めるプログラムに適用したら収束の速さが定量的にはっきり見えて面白

    Rediscover the Monte Carlo - 西尾泰和のはてなダイアリー
  • 原始帰納的関数のPythonでの表現 - 西尾泰和のはてなダイアリー

    原始帰納的関数の定義がよくわからなかったので数学事典で調べてみた。数学語で書いてあるけど、Python語に翻訳してみると: def inc(x): return x + 1 def constant(*args): return CONSTANT def choice_K(*args): return args[K] という関数からスタートして(constantとchoiceは返す定数や選ぶ引数の位置によって無数に存在する) def apply_funcs(*args): return REDUCE_FUNC( MAP_FUNC_TABLE[0](*args), MAP_FUNC_TABLE[1](*args), ...) def recursive(*args): head = args[0] tail = args[1:] if head == 0: return WHEN_ZERO_

    原始帰納的関数のPythonでの表現 - 西尾泰和のはてなダイアリー
  • 1