タグ

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

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

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

    「文字列を文字の列とみなす単純化」ってどういうこと?解説編 - 西尾泰和のはてなダイアリー
  • 「めんどくさい」「やる気がでない」時のチェックリスト - 西尾泰和のはてなダイアリー

    「めんどくさい」「やる気がでない」にも色々なパターンがあります。そこで質問に答えていくと解決策にたどりつくようなチェックリストを作ってみました。 追記: このエントリーの内容を元に平均10問の質問に答えるだけであなたの状況に合わせたアドバイスをする人工知能を作りました。オススメです。 Q1: やる気がでないのは今日に入ってからですか? 数日やる気がでない状態が続いているのですか?それとも今日に入ってからかですか? 今日に入ってから→Q2 数日続いている→Q8 Q2: 最近なにか新しい情報が明らかになりましたか? たとえば計画段階では知らなかった事実が明らかになって、今までやってきた作業が無駄になったとか。何らかの情報が最近明らかになりましたか? はい→状況が変わったのであれば、計画の通りに実行することが必要とは限りません。状況の変化に合わせて計画を変更したり中止したりしてはいけないのですか

    「めんどくさい」「やる気がでない」時のチェックリスト - 西尾泰和のはてなダイアリー
  • Macのスクリーンショットで1日の作業を記録して動画で振り返り - 西尾泰和のはてなダイアリー

    スクリーンショットを10秒に1回撮影して連番の画像で保存するスクリプトを走らせて1日の作業を記録し、一日の最後にffmpegで動画にして振り返りをしてみた。結構面白いよ。 社内掲示板やメーラやエディタで文章がにょきにょき伸びていくのが見えるのも楽しいけど、一日の終わりに「ああそうそう、これを調べてたんだった、途中でインタラプトが入って忘れてた」「この調べ物をした後サイドバーに出てた記事を読みふけってしまったけど、必要ではなかったな」「この作業は今やるべきことじゃなかったな」「時間を結構無駄にしたな」などという振り返りができる。反省。 10秒に1回撮影したのを10FPSで動画にしているから1時間が36秒になる。もうちょっと速くしてもいいかも。1分に1枚にすると1時間が6秒か。その間くらいかなー。 記録用スクリプトが連番で画像を吐いているのは後でffmpegで読み込ませるため。screenca

    Macのスクリーンショットで1日の作業を記録して動画で振り返り - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2012/08/01
    面白そう
  • つくりたいもの:原稿のレビューが手軽にできるシステム - 西尾泰和のはてなダイアリー

    最初のプロトタイプはだいぶ前にできていて、実際に自分の原稿のレビューにも使って見ている。デモ用のサイトは http://sphinxweb.rackbox.net/ ユーザ名とパスワードを聞かれるのでguest:guestで。 http://sphinxweb.rackbox.net/usage/ とかにアクセスすれば段落ごとにコメントを付けられることがわかるかと思う。 これは結城浩さんの書籍執筆とオンラインレビューを参考に作ったシステムで、その一番の特徴は「レビュワーは他のレビュワーのコメントを見ることができない」にある。モヒカン技術者のいっぱいいるチャットなりなんなりに燃料として原稿を投下すれば「これは厳密にはこうだ」「Xだと説明してあるが、極稀に起こるYのことに言及しないのはダメじゃないか?」などと盛り上がっていっぱいツッコミが入るだろうとは思う。でもそれをやっても「間違いのない

    つくりたいもの:原稿のレビューが手軽にできるシステム - 西尾泰和のはてなダイアリー
  • 言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー

    Twitterのタイムラインが面白すぎて、ついうっかり言語を擬人化して脳内で言語女子会なるものを開いてしまいました。なお、登場人物と実在の人物は1対1に対応しません。 undefinedとnullの両方必要なの? とあるプログラミング言語が集う女子会にて: Perl: そういえばさ、なんでJavaScriptちゃんってundefinedとnullの両方もってるの? JavaScript: えっ、未定義の変数にアクセスした時undefined返したいじゃない? Python: 例外投げて死ねばいいじゃん Ruby: 例外投げて死ねばいいよね Python & Ruby: ねー♡ Java: いやそこは参照型ならnull、数値型なら0で初期化すべきでしょ C: これだから最近の若い子は…初期化にだってコストが掛かるんだからね!デフォルトで初期化するなんて無駄遣いよ!必要な人だけが責任をもって初

    言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2012/03/17
    PythonとRubyの仲良さそうに見えて仲悪いのウケる
  • 他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー

    今日質問されて、以前Twitterで書いたのを思い出して、そして検索性が悪くて見つけ出すのに苦労した。こちらに転載しておく。詳細は気が向いたときに埋める。 オプション引数の評価タイミング Rubyではオプション引数は関数が呼ばれるたびに評価される。 def foo() print "foo!" end def bar(x=foo()) end bar #=> foo! と出力される bar #=> foo! bar #=> foo! Pythonでは関数の定義時に1回だけ評価される。 def foo(): print "foo!" def bar(x=foo()): pass #=> foo!と出力される bar() #=> 何も出力されない bar() 「引数が省略されたら今の日時」みたいな毎回評価したい場合はデフォルト値をNoneにしておいて「Noneだったら=省略されていたら」のif

    他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント - 西尾泰和のはてなダイアリー
  • 執筆日記 - 西尾泰和のはてなダイアリー

    書けないときはまず読む。何を書いていたか思い出すために。 書きたいことはまず質や形式にこだわらずに出力する。質の改善はあとからでもできる。 脳内の情報を消えないメディアに記録することで覚えておくプレッシャーから解放される 時間を決めて宣言する。「10時から11時は作業をする」や「今から25分集中して作業する」など。 長い道のりを一気に走ることはできない。完成版の文章をいきなり出力することもできない。できることは、一歩ずつゴールに向かって足をすすめることだけ。 「執筆」を大きなタスクととらえて尻込みしていても筆は進まない。細かいタスクに分断して、それの完了にどれくらいの時間がかかったか観察できれば、終わるまでの時間の目処が見えてくる。 改善や管理のためには計測が必須である。もちろん作業のすべてが計測できるわけではない。しかし「これは計測できないタスクだ」と言って思考停止してしまうのではなく、

    執筆日記 - 西尾泰和のはてなダイアリー
  • 講義資料「テストとデバッグ」を公開しました - 西尾泰和のはてなダイアリー

    昨年行われたセキュリティ&プログラミングキャンプ2011で中学生〜大学生を対象として行った講義「テストとデバッグ」の発表資料を公開します。 テストとデバッグ View more presentations from nishio

    講義資料「テストとデバッグ」を公開しました - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2012/01/13
    きちんと書いてあって良い資料だと思う!!
  • gitをテキトーに使って生産性を向上したユースケース - 西尾泰和のはてなダイアリー

    バージョン管理とかgitとかが「おおげさでめんどくさいもの」だと思う人は多い。でも、それは生産性向上のチャンスを逃していると思う。特に業務として多人数で開発している人たちの「変更前にはまずトピックブランチ」というやり方が、それはそれでよい方法なんだけど、いかにもめんどくさそうで尻込みさせてしまうのではないか。 先日の日曜日に、テキトーなgitの使い方をして、とても役に立ったのでユースケースとして報告しておこう。ただし、若干特殊な環境なのでここでやった方法が直接そのまま皆さんの所で使えるとは限らないが。 まず環境の説明。プロジェクトは「次の日曜日、新感覚シューティングゲームを展示します」で紹介している、テーブル型ディスプレイで動くシューティングゲーム。メインは @tokoroten で、ソースコードをバリバリ変更している。土曜日にとりあえず動くところまでは行った。改善点は山積みだ。使える時間

    gitをテキトーに使って生産性を向上したユースケース - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2011/12/13
  • コードリーディングに何を使うか(まとめ) - 西尾泰和のはてなダイアリー

    Twitterだと流れ去ってしまうのでまとめて転載 nishio みんなソースコード読むときは何を使っているのかな? shibukawa grepとテキストエディタと、自作のログ出力デコレータ(Python限定)あたりかな?大したことしてないです。 hmori 色々ツールはあるけれど、別の意味で便利だったのはTextMate (OSX シュアウェア) プロジェクトを作ってプロジェクトフォルダーに放り込むだけでソースコードファイルがtreeで見られてクリック1つで開く。まあそれだけだけど。 voluntas vim と ctags くらい。 kumarobo less(lv), cat -n, grep, emacs(xyzzy) あたり。うっかりvisual studio起動することもあるけど jmuk テキストエディタやgrep、viewsvnなど以外だと、globalとかかなぁ。 ug

    コードリーディングに何を使うか(まとめ) - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2010/04/20
    コードリーディングの時に何を使うか/Rubyが無い…!
  • PointとArrayで速度比較 - 西尾泰和のはてなダイアリー

    コメントの後がかかった時間。 配列の添え字でアクセスするのよりも、クラスのメンバ変数にアクセスするのの方が速くてちょっとびっくりしたけど、ActionScriptの配列はC的な配列じゃないからかも。逆にクラスのメンバ変数はすでに配列として確保されていそう。xとかも整数にマップされてそう。 var d:Point = new Point(); d.x = 0.1; //55 d.x; //55 var d:Array = [0.1, 0.2]; d[0]; //105 d[0] = 0.1; //995 d.x = 0.1; //2115 var d:Object = new Object(); d.x; //798 d.x = 0.1; //1860とりあえず、2次元ベクトルの扱いにはPointを使った方が格段に速いという結論で。ただ、Pointのaddとか非破壊的メソッドなので困る。of

    PointとArrayで速度比較 - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2009/06/08
    point でアクセスしたほうが早い
  • YU-NO - 西尾泰和のはてなダイアリー

    http://ja.wikipedia.org/wiki/%E3%81%93%E3%81%AE%E4%B8%96%E3%81%AE%E6%9E%9C%E3%81%A6%E3%81%A7%E6%81%8B%E3%82%92%E5%94%84%E3%81%86%E5%B0%91%E5%A5%B3YU-NO#.E4.B8.96.E7.95.8C.E8.A6.B3 タイトルだけは聞いたことがあったけどなんだこのSFは!教養としてプレイしておかないといけないような気がしてきた!(ぉ セガサターン持ってないけどね。

    YU-NO - 西尾泰和のはてなダイアリー
    seiunsky
    seiunsky 2008/04/22
    これは面白かったですよー。猿のようにプレイした覚えあり。/実家に帰れば本体もソフトもあると思われる。。。
  • 1