タグ

ブックマーク / aike.hatenablog.com (4)

  • JavaScriptにsleepを実装しようとして気づいたら新言語を作ってた話 - aike’s blog

    あのですね、JavaScriptにsleep()とかwait()みたいなのってほしいじゃないですか。で、調べてみると標準にはなくて作れるには作れるけどブラウザ依存だったりビジーループだったりJava Applet併用だったりしてがっかりするじゃないですか。 ぼくは1年半くらい前に「竹内関数で音楽生成」っていうエントリーを書いたんですが、当然これをJavaScriptで計算しながら音を鳴らすページを作りたくなりますよね。ですよね。こう見えても昔はN88-BASICでCMD PLAYとかばりばり使ってたくちなんで、そのくらい簡単だと思うじゃないですか。そしたらもう当時はAudio APIも出たばかりで情報もすくなくてブラウザ依存で、しかもJavaScriptでsleepできないしふんだりけったりで最初の一歩も踏み出せない状態。 そんなわけでなんとか手はないかとこの1年以上ずっと試行錯誤してきて

    JavaScriptにsleepを実装しようとして気づいたら新言語を作ってた話 - aike’s blog
    vivit_jc
    vivit_jc 2013/05/03
    ホントに言語作ってる…
  • プログラマーが知っておくべきうつ病の知識 - aike’s blog

    少し前にITproにプログラマーは「こころの病」にかかる比率が高いという記事が載っていましたが、あらためて言われるまでもなくプログラマーがストレスで精神を病んで離脱するケースは自分の周りを見ても非常に多いです。こんな状況であればプログラマーに対する危険手当やプログラマー専用うつ保険とかあっても良いと思うのですがなかなか社会は変わらないようです。 このような状況に対抗するにはプログラマー自身が自衛のために知識を得ることだと思います。プログラマーの武器は知識であり、ハックする好奇心なのだから、あらかじめ十分な知識を身につけて不当なストレスに対して有利に戦いをすべきなのです。 1.判断力低下は想像以上に怖い うつで一番恐ろしいのは、気分が憂になることではなく、判断力が低下することです。 判断力が落ちるとどうなるかと言うと、自分が健康なのかどうか判断できなくなり、仕事を休むべきなのかどうかで判断

    プログラマーが知っておくべきうつ病の知識 - aike’s blog
  • Ruby1.9が入っていないと端末に「アナログ」と表示する.bashrc - aike’s blog

    Ruby1.9がいよいよ安定してきたようで、そろそろ試さなくてはと思っています。でも、なんというか必要に迫られないのでなかなか全面的な導入に踏みきれません。 というわけで、Rubyを1.9にするよう促すプロンプト設定を考えました。Rubyのバージョンがまだ1.8の場合、端末の右上に「アナログ」と表示されます。どうぞご利用ください。 .bashrcの最後に以下の内容を書くと設定できます。 ruby -v | egrep '^ruby 1\.9' >/dev/null if [ $? -ne 0 ]; then PS1="\033[s\033[1;72H\033[37mアナログ\033[39m\033[u$PS1" fi ※Ruby1.9は旧バージョンと互換性のない機能が一部あります。導入には充分注意してください。

    Ruby1.9が入っていないと端末に「アナログ」と表示する.bashrc - aike’s blog
  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
  • 1