タグ

ブックマーク / nishiohirokazu.hatenadiary.org (8)

  • 「文字列を文字の列とみなす単純化」ってどういうこと?解説編 - 西尾泰和のはてなダイアリー

    先日 @shyouhei さんのTweetに反応して文字列が文字の列かどうかが言語によって異なるという話をTweetしました。 shyouheiさんの投稿: PythonはどうかしらんがRubyの設計思想は「世の中はシンプルじゃない」だからな。文字列を文字の列とみなす発想その物がすでにRubyからすると過度に世界を単純化しすぎている。 https://twitter.com/shyouhei/status/528106973565165568 もうちょっと言っておくと数値計算で勝ち目のないRubyは文字列処理にめっちゃ注力してるんで。文字列処理こそがRubyの主戦場。そこでRubyが文字列をあえてカタマリで扱ってることにはそれなりの理由というものがある。つまり分解しようとするほうが困りごとが増える。IVSとか。 https://twitter.com/shyouhei/status/528

    「文字列を文字の列とみなす単純化」ってどういうこと?解説編 - 西尾泰和のはてなダイアリー
  • 妻に公開鍵暗号を教えてみた - 西尾泰和のはてなダイアリー

    何気なく放送大学をつけていたら公開鍵暗号の話をしていた。 「この話、何度聞いてもわかんないのよね」 僕「え、どこがわからない?どこまではわかってる?」 「平文はわかるけど、鍵を共有するとか秘密にするとか、署名するとかがよくわからない」 僕「あー、鍵に例えているのが逆効果なのか」 「鍵」をNGワードに指定 僕「じゃあ『鍵』という言葉を使わずに説明してみよう。暗号って『平文を暗号文に変換する方法』で伝えたい文章を暗号文に変えて送り、受け取った人はそれに『暗号文を平文に戻す方法』を使って元の文章を得るわけだ。その目的は、途中の通信文が敵に取られたりしても通信の内容がバレないようにするため。」 「うん」 僕「昔の暗号化の方法は、片方の方法がわかるともう片方の方法も分かった。例えば『アルファベットを後ろに1個ずつずらすと平文に戻せます』って教えてもらったら、『なるほど、前に1個ずつずらせば暗号

    妻に公開鍵暗号を教えてみた - 西尾泰和のはてなダイアリー
  • 量子将棋が面白い - 西尾泰和のはてなダイアリー

    量子将棋というゲームが遊べるようになったということで、さっそくプレイしてみた。ルールは簡単に言うと、すべての駒は量子的な重ね合わせの状態にあり、どう動かしたかによって駒の状態が収束する。王将に収束した駒を取れば勝ち。(追記: ルールの解説書きました: 量子将棋 Q&A) 2勝2敗で結構面白かったので流れ去ってアクセスできなくなる前に感想をメモ。 1回目(勝ち) 棋譜: http://shogitter.com/kifu/884 僕の戦略 駒の種別が確定すれば取れる選択肢が減る。ということは必要がない限り駒は動かないほうが良い。動かさなければいけないのであれば歩の振りをするのが一番可能性が狭まらない。 王将に確定した駒を取れば勝ちなのであれば、相手の「王将かもしれない駒」をどんどん取って行って可能性を狭めるべき。 感想 駒の上にマウスポインタを置くと可能性のある駒の種類が出てくる 飛車を取る

    量子将棋が面白い - 西尾泰和のはてなダイアリー
  • Re: なぜ国内でPerlが急速に萎んだのか - 西尾泰和のはてなダイアリー

    Python使いとしては「なぜ国内でPerlが急速に萎んだのか」について一言ツッコみたいところがあります。 >遂にPerlにとどめを刺したのはPythonである。守備範囲は当然ながらPerlと駄々被りで えっ、PerlPythonの守備範囲がだだかぶりって、著者の観測しているそれぞれの言語の「守備範囲」ってどんだけ狭いんでしょう? まあそんな重箱の隅をつつくのはやめておきましょう。このエントリーには結論の文章(の一部)はとても素晴らしいです。 >10年でここまで時代は変わる。今のメインテクノロジーも明日は我が身だ。 >変化の速い時代に生きる我々に必要なのは質を学ぶ事だ。 >もっと10年20年たっても色あせない情報工学を身につけなければならない。 そう、そこで拙著「コーディングを支える技術」のようなが必要になるわけです!(宣伝) ちなみに僕自身は仕事でも趣味でもPerlは使っていません

    Re: なぜ国内でPerlが急速に萎んだのか - 西尾泰和のはてなダイアリー
  • トレイトを勉強していたらクラスの定義の食い違いに気づいた話 - 西尾泰和のはてなダイアリー

    以前自分が書いた記事Scalaのtraitはmixinか?を元に、トレイトに関する補足記事を書こうとして「そうだ、どうせならば元論文の記述とも照らしあわせたほうがよいな」と「Traits: A Mechanism for Fine-grained Reuse」を読んだ。そこで気づいたのだけども、この件に関して意見が咬み合わないことがあるのは、そもそも「クラス」の定義にい違いがあるせいではないか? 「Traits: A Mechanism for Fine-grained Reuse」での定義ではクラスとは「空クラスnil」もしくは「属性の集合と、メソッドの集合と、親クラス」と定義されている*1 で、トレイトとは「メソッドの集合」と定義されている*2 これがどういうことかというと、トレイトなどから作られたクラスは「自分を構成するのにどういうトレイトが使われたか」という情報を持たないってこと

    トレイトを勉強していたらクラスの定義の食い違いに気づいた話 - 西尾泰和のはてなダイアリー
  • 評価戦略について - 西尾泰和のはてなダイアリー

    「コーディングを支える技術」の書評で、評価戦略についていくつかご意見をいただきました。 id:dankogai 評価戦略がまるまる抜けてしまったのは残念である。かつては事実上先行評価しかなく、評価戦略において選択肢があること自体ほとんど知られていなかったが、今では遅延評価を主体とする言語も普及したとまでは言えないものの、充分実用的に使われるようになってきている。著者はもちろんHaskellを知っているし、書にも登場するにも関わらず、これが抜けているというのはなんとももったいない。もし改訂版を著す機会があったら、絶対に一章割いていただきたい。 http://blog.livedoor.jp/dankogai/archives/51864510.html 確かに、世の中の大部分の言語が先行評価なせいで「そういうもんだ」と思い込んでしまっている人も多そうですね。そういう人にHaskellでun

    評価戦略について - 西尾泰和のはてなダイアリー
  • 何をどう学ぶか? - 西尾泰和のはてなダイアリー

    何をどう学ぶか? from nishio 「コーディングを支える技術」を執筆している時に考えていたことをスライドにまとめました。

    何をどう学ぶか? - 西尾泰和のはてなダイアリー
  • manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー

    cp -rでシンボリックリンクまで実体としてコピーされて困ったのでMacのmanを読んでいたのだが、そもそもcp -rってオプション一覧に載ってない。あれれ?と思って続きを読んでいたら互換性の章でstrongly discouragedと書かれていた。 COMPATIBILITY Historic versions of the cp utility had a -r option. This implementation supports that option; however, its use is strongly discouraged, as it does not correctly copy special files, symbolic links, or fifo's. 代わりに-Rを使うべきだそうだ。その場合のシンボリックリンクの扱いをどうするかはオプションで指定でき

    manに「cp -rは使うな」と書いてあった話 - 西尾泰和のはてなダイアリー
  • 1