タグ

ブックマーク / nowokay.hatenablog.com (90)

  • D.ノーマン「人を賢くする道具」読んだ - きしだのHatena

    1993年の著作なので、GoogleやSkype、Twitter/Facebook、iPhone/Androidなどが存在する現在の視点でのノーマンの意見を読みたいなーと思った。 次は「未来のモノのデザイン」を読もうかな。 人を賢くする道具―ソフト・テクノロジーの心理学 (新曜社認知科学選書) 作者: D.A.ノーマン,Donald A. Norman,佐伯胖,八木大彦,嶋田敦夫,岡明,藤田克彦出版社/メーカー: 新曜社発売日: 1996/12メディア: 単行購入: 5人 クリック: 29回この商品を含むブログ (18件) を見る メモ p.42 「人生の質というものは、何よりも仕事をどう体験するか、他人とどのような関係をもつかという二つの要素に依っているのである」とチクセントミハイは言う。 p.64 良い表現とは、出来事の質を捉え、それ以外を意図的に省いている。 p.154 グルデ

    D.ノーマン「人を賢くする道具」読んだ - きしだのHatena
    yuiseki
    yuiseki 2011/07/13
  • 4コア8スレッドCPUを手に入れたので試してみたら不思議な結果に - きしだのHatena

    インテルCore i7 2600Kという4コア8スレッドのCPUを手にいれたので、並列処理でどうなるか試してみたら、面白い結果に。 Intel CPU Core i7 i7-2600K 3.4GHz 8M LGA1155 SandyBridge BX80623I72600K 出版社/メーカー: インテル発売日: 2011/01/09メディア: Personal Computers購入: 2人 クリック: 58回この商品を含むブログ (6件) を見る ソースは最後に載せますが、1億5千万件のint数値を複数回合計するという処理を行って、時間を計測してみました。 メモリは8GBで、VMオプションには-Xmx2048mを指定しています。 Java VMは、JDK7ea b140です。 で、Ubuntu10.04の32bit版で実行した結果。 --- result --- 1 threads:15

    4コア8スレッドCPUを手に入れたので試してみたら不思議な結果に - きしだのHatena
    yuiseki
    yuiseki 2011/05/07
  • SMOの収束速い! - きしだのHatena

    KKT条件だけじゃなくて、変位の合計を見て収束しているかどうか判定するようにしたら、これめちゃくちゃ収束速いじゃないですか。 非線形分離の方で50回程度、線形分離の方だと2回とか3回で収束しちゃってます。 線形分離の場合で分離面が全然変なところに行っちゃうのは、バイアス(b)の求め方が悪かったからで、平均を取るようにしたらそれなりにいい感じのところに収まるようになりました。 とりあえず、これならいろいろとSVMを試すのに使えそうです。 さて、ところでこうやって実装したサポートベクターマシン、なんに使おう? ソースはこれ。 import java.util.AbstractMap.SimpleEntry; import java.util.*; public class SMO implements LearningMachine{ public static void main(Strin

    SMOの収束速い! - きしだのHatena
    yuiseki
    yuiseki 2011/02/13
  • SVMの学習用アルゴリズムSMOを実装してみる - きしだのHatena

    SVMは2次最適化問題になるので、それを勉強してみてはということだったのですが、SVMに特化したSMO(Sequential Minimal Optimisation)アルゴリズムがあるということなので、そちらをやってみました。 SVMの制約条件に というのがあって、yiは正例なら1、負例なら-1となる値なのですが、そうすると、ようするにこの条件は、正例のαの合計と負例のαの合計が等しくなるということを示してるわけです。 この条件をつかうと、ひとつαを操作したときには、ほかのαを操作して、正例と負例のバランスを取る必要があることがわかります。 で、このことを利用して、同時に2つのαを操作することにすると、解析的に一つ目のαが求められて、2つ目のαはそこから足し算引き算で求められてお徳かも、というのがSMOの考え方です。 問題は、いかに効率よく更新する2つのαを決めるかということになります。

    SVMの学習用アルゴリズムSMOを実装してみる - きしだのHatena
    yuiseki
    yuiseki 2011/02/13
  • 書評「JavaによるRESTfulシステム構築」 - きしだのはてな

    監訳者のartonさんより「JavaによるRESTfulシステム構築」を献いただきました。直接献いただいたのはオライリーさんからですけども。 これは「RESTful Java With JAX-RS」というの翻訳なわけですけど、こちらのタイトルからわかるとおりJAX-RS(JSR-311)の解説です。何で邦題からJAX-RS抜いちゃったんだろ? ところでJAX-RSというのは、JavaでRESTなWebサービスを構築するためのAPIなのだけど、これがかなり素敵です。 たとえば、こんな感じの名前と住所を保持するクラスを用意します。 package rest; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Customer { public String name;//名前 p

    書評「JavaによるRESTfulシステム構築」 - きしだのはてな
    yuiseki
    yuiseki 2010/08/31
  • そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな

    Java入門ブックガイド(入門編)よりよき入門書と出会うために」を読んで。 第一印象として、よりよきJava入門ブックガイドに出会う必要があるなということ。 コマンドラインでは慣れ親しめない サブタイトルに「慣れ親しむことが上達の秘訣」とあるけども、コマンドラインで慣れ親しむのは難しいと思います。 「慣れ親しむことが上達の秘訣」が正しいのであれば、IDEで慣れ親しんだほうが上達するのではないでしょうか? 現実問題として、書籍を買って勉強する人は強制されて勉強するわけではないです。自分の時間をやりくりして入門書を読んでいます。 そして、まだプログラムの面白さを知りません。 コマンドラインでコンパイルエラーが出たとき、じっくりとそのエラーを読み解くのではなく、そこでくじけてやめる可能性が高いと思われます。 それよりは、IDEでエラーを入力段階で修正しつつ進むほうがいいと思います。 javac

    そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな
    yuiseki
    yuiseki 2010/08/31
    k
  • 5年後にはパソコンは使われなくなるかもしれない - きしだのHatena

    ノートパソコンの性能があがってデスクトップが使われなくなった 昔はノートパソコンはデスクトップより高くて非力だったのですが、今はノートパソコンのほうが安いものが売られていて、性能も通常の使用では問題がありません。 ぼくも、3年前のノートパソコンをSSD+Windows 7にしたところとても快適で、デスクトップはテレビみるためだけにしか使わなくなりました。もうハードディスクでコンパイルしたくないです。 こことか見てもノートパソコンの不満はディスプレイの大きさが主なので、気になる人は外部ディスプレイをつなげばいいだけです。 昔はパソコンといえばデスクトップだったのに今ではノートパソコンの方が売れてるんだな 家と出先で同じデータを使いたい。同期はめんどくさい 結局のところ、デスクトップを使わなくなったのは、データの同期がめんどくさいからです。 ネットにデータを置くとしても、作業用には手元にデータ

    5年後にはパソコンは使われなくなるかもしれない - きしだのHatena
    yuiseki
    yuiseki 2010/01/17
  • Google App Engineでコードを書くと、処理のひとつひとつが課金に見える

    先週末、ちょっとしたプログラムをGAE/Jで動かして実際に使ってもらってみたのですが、そうすると、いままでテストでちょこちょこやってたときには全部のDaily Quotaが0%だったものが、数%の数字を示すようになります。 これを、ちゃんとプロモーションして多くの人に使ってもらおうとすると、課金が発生したり制限にひっかかったりしそうです。 で、たとえばDatastore APIの呼び出し回数がヤバいとして、API呼び出しを減らすためにキャッシュしようとすると、MemcacheのほうのAPI呼び出し回数がヤバくなってきます。 で、じゃあということでデータストアにデータを置くようにすると、保存量の制約で課金がかかってきます。で、それならと、データストアに置くのはシリアライズしたデータにしてデータ量が最低限になるようにすると、今度はその処理をするためのCPU時間で課金がかかってきます。 コードを

    Google App Engineでコードを書くと、処理のひとつひとつが課金に見える
    yuiseki
    yuiseki 2009/12/19
  • 3年後にRubyを勉強し始める人の動機は何になるだろう? - 2009-11-26 - きしだのはてな

    たとえば、JavaだとAndroidGoogle App Engine。あと、期待してるのがGWT。 PythonGoogle App Engineでたくさんの人が触るようになってると思う。 PHPは、なんだかんだでデザイナに近いところの人には欠かせないだろう。Flashも。 Perlはゲノム系の人は使うんだろう。WebのためにPerlの勉強を始める人というのは、今の時点でもいない気がする。 C#はマイクロソフトの続く限り。C/C++はコンピュータの続く限り。 という感じで考えたときに、既存プロジェクトRubyで書かれてるとか会社の方針とか、そういうしがらみがないとき、3年後にRubyの勉強を始める人は、何を動機にしてるだろう? あと、Javaに関して、もしGooglePythonしかサポートしていない会社だったら、ぼくはJavaを今 積極的に触ってない自信がある。

    3年後にRubyを勉強し始める人の動機は何になるだろう? - 2009-11-26 - きしだのはてな
    yuiseki
    yuiseki 2009/11/26
  • Twitterはなぜ成功したか - きしだのはてな

    (Twitterに書いたこと、まとめ) twitterが成功した理由を単に「シンプルだから」と言ってしまうのは、認識が浅いと思うようになった。シンプルなものならほかにもたくさんあったはずなのに、なぜTwitterが成功したのかという理由にならない twitterの成功の理由を「シンプルだから」というのは、googleの成功の理由を「UIがシンプルだったから」と言ってるような、なんか表面しか見てない話に思う。 twitterはインフラになろうとしていて、だからシンプルにする必要やAPIを公開して自由に使えるようにする必要があったと思うのですよ。 twitterの成功の理由は、この形態のインフラが必要だと気づいて、初期の実装をし、その重要性を説得力のある説明をして資金を集めることができからだと思う。 Twitterにハマれない人がいるというのは、Twitterはinternetの上に構築された

    Twitterはなぜ成功したか - きしだのはてな
    yuiseki
    yuiseki 2009/11/13
  • AndroidでTwitterのタイムラインを表示するサンプル - 2009-10-30 - きしだのはてな

    AndroidTwitterのタイムラインを表示します。HttpClientとJSONとWebViewのいい感じのサンプルになっていると思います。 とりあえずこんな画面定義をしてWebViewを配置しておく。 <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/twit_button" android:layout_width="fill_parent" androi

    AndroidでTwitterのタイムラインを表示するサンプル - 2009-10-30 - きしだのはてな
    yuiseki
    yuiseki 2009/11/01
  • 小学生からプログラムを組むのがすごいんじゃなく、そういう人達と大人が対等にやりとりできるのがすごい 2009-08-05 - きしだのはてな

    中学生プログラマが話題になってる。 原上ソラ――勉強会の再構築を図る気鋭の中学生 (1/2) - ITmedia エンタープライズ ただ、こういう記事をみて「小学生からプログラムを組む時代になった」とかいう結論になるのはおかしい。 ぼくでも小学校のときにプログラム書いてたし、たぶん、このエントリ見てる人にもそういう人は多いと思う。 いまの時代で特別なのは、こういった小学生・中学生と対等にコミュニケーションできるということだ。そのためには「顔が見えない」というのが大切になると思う。 上記の記事のソラが恐らく初めてHTTPサーバーを書いたときのチャットに居合わせたのだけど、確かSkipGraphの吉田さんだったか誰かが、そのときは小学生だったソラ達にSkipGraphいいよーと紹介してたり。たぶんそのときは小学生だとかいうことには気づいてなくて英語の論文を紹介してたりもしたけど。 こういうふう

    小学生からプログラムを組むのがすごいんじゃなく、そういう人達と大人が対等にやりとりできるのがすごい 2009-08-05 - きしだのはてな
    yuiseki
    yuiseki 2009/08/05
  • クラウド対応のモデリング技術がおもしろくなるかもしれない - きしだのはてな

    いま、大きいのはクラウドから小さいのはGPGPUまで、並行システムはなざかりです。 クラウドなど、並行システムが不可欠となったとき、並行システムのモデリング技法が必要になります。 でも並行システムを作るために使えるモデリング技法で、現場の技術者に定着したものはありません。 いま現場で使えるのは、オブジェクト指向モデリングです。 オブジェクト指向のモデリングではUMLを使うと思うのですが、UMLを使ったオブジェクト指向のモデリングでは、クラス図・オブジェクト図が静的な関係を表し、シーケンス図・コラボレーション図はシングルスレッドでのフローをあらわします。これらの図は静的な関係か、シングルスレッドをあらわします。 複数スレッドを扱えるのはアクティビティ図ですが、ここではスレッドの同期を扱えるだけです。 UMLでは、動的な関係の遷移を表すことができません。 並行システムを考えるときには、動的な関

    クラウド対応のモデリング技術がおもしろくなるかもしれない - きしだのはてな
    yuiseki
    yuiseki 2009/04/02
  • 情報系の技術者に一冊だけ読んでもらうならこの本 - 2009-03-30 - きしだのはてな

    さて、いろんなを取り上げたのだけど、かなり広い範囲を取り上げたので、それぞれそれなりに高いだし、読む時間もないし、そもそもどこから手をつけていいやら、とか思った人も多いんじゃないだろうか。 今回取り上げたような内容を、1冊にまとめたようなはないだろうか。 しかし、そんな都合のよいは存在するのか。 と思ったら、あった。いいが。 しかも、ちゃんと勉強できたかどうか判定できるし、勉強した証を発行してもらえる。そして、その証で職につきやすくなるかもしれない。 ということで、情報系の技術者が一冊読むならこの。 やさしい応用情報技術者講座 2009年版 やさしい講座シリーズ 作者: 高橋麻奈出版社/メーカー: ソフトバンククリエイティブ発売日: 2008/11/29メディア: 単行 クリック: 10回この商品を含むブログ (8件) を見る なんだ麻奈タンかよ、とか、やさしいシリーズか!と

    情報系の技術者に一冊だけ読んでもらうならこの本 - 2009-03-30 - きしだのはてな
    yuiseki
    yuiseki 2009/03/30
  • いまSICPを読むのは時間の無駄 - きしだのはてな

    SICPは、よい内容について書かれたであり、最良のだった時期もあった。 けれども、今となっては、理解が難しく内容の割には時間がかかる、時間の無駄ともいえるといってもいいかもしれない。 もちろん、Schemeの可能性、数値計算、プログラミング、コンピュータ教育歴史、そしてSICP自体のすべてに興味があれば、効率がいいかもしれない。 けれども、コンピュータ教育歴史、SICP自体に興味がないのなら、あまり効率のいいとはいえない。特に、Scheme、数値計算に当面の興味はなく、プログラミングについてだけを学びたいのであれば、時間の無駄でしかないと思えるし、今となっては足りない部分もある。 SICPの欠点として、まず、次の点が挙げられる。 日語がよみにくい サンプルに数学の知識が必要 プログラムがよみにくい 日語がよみにくいというのはよく指摘される。ただこれは翻訳だけが悪いのではな

    いまSICPを読むのは時間の無駄 - きしだのはてな
    yuiseki
    yuiseki 2009/03/22
  • GoogleのMapReduceは僕たちに必要か? - きしだのはてな

    ということで、Google MapReduceの実装であるHadoopを使ったMapReduceと、JMSを使ったMapReduceをやってみました。 メッセージキューを使って分散MapReduceを実装する HadoopでのMapReduceを気軽に試すサンプル これ何のためにやったかというと、そこらにあるような数十台規模のサーバーを前提としたときに、Hadoopの有効性、ひいてはその元になってるGoogle MapReduceの有効性について疑問に思ったからです。そこで、ちょっと試してみた、と。 ここで、メッセージキューを使った場合に1秒でできてた処理が、Hadoopを使うとスタンドアロンモードでも40秒近くかかりました。擬似分散モードだと4分近くです。 いくらHadoopの実装がひどいとしても、これはあんまりです。 Googleでの実装はもっと効率的なものになっていると思いますが、そ

    GoogleのMapReduceは僕たちに必要か? - きしだのはてな
    yuiseki
    yuiseki 2009/02/23
  • クラウド時代のトランザクション(2009-02-09 - きしだのはてな)

    今のデータベースシステムでは、トランザクションはACIDという考え方が基になってます。 これらの用語の頭文字をとってACIDです。 Atomicty 原子性:トランザクション中の処理は全部行われるか全く行われないか Consistency 一貫性:トランザクションが完了したとき、データの状態が正しい Isolation 分離性:複数のトランザクションが実行されても、完了してないトランザクションが他のトランザクションに影響しない Durability 永続性:トランザクションが完了したら、その状態は保存される。 ただ、分散システムでACIDを適用しようとすると、複数のサーバーで処理を分担させたときに一台のサーバーがこけてたらトランザクションが全く行えないとか、トランザクションマネージャーがボトルネックになってしまうとか、スケールアウトしにくくなってしまいます。 Brewerという人が、一貫

    クラウド時代のトランザクション(2009-02-09 - きしだのはてな)
    yuiseki
    yuiseki 2009/02/09
  • Grailsの登場でRuby on Railsに移行する理由はなくなった - 2009-01-23 - きしだのはてな

    とか極端なことを書いちゃうと、またいろいろ怒られるわけですが。 Grailsによって、少なくともJavaプログラマがRuby on Railsに移行する理由はなくなったと言ってもいいのではないでしょうか。そして、JavaRubyも知らない人にとっても、今からWebアプリを作成するためにどちらかを選ぶならRuby on RailsよりもGrailsのほうがいいのではないかと思います。 Grailsの価値は、もちろんRuby on RailsのようにWebアプリケーションが作成できることにあるのですが、Ruby on Railsのようなフレームワークというのは他にもあります。 実運用を前提に考えると、Grails当の価値は、Java VMで動くこととSpring+Hibernateがベースになっていることであると思います。つまり、SpringやHibernateといった、Javaの世界で

    Grailsの登場でRuby on Railsに移行する理由はなくなった - 2009-01-23 - きしだのはてな
    yuiseki
    yuiseki 2009/01/27
  • クラウドとデータベース - 2008-12-15 - きしだのはてな

    クラウドは単なるバズワードではありません。 クラウドがバズワードというのは確かで、具体的な定義もなくどんどん意味が適当になっていて、とりあえずサーバー複数で処理すればクラウドということになっていったりするんだと思います。 けれど、単なるバズワードではなく、SOAなどとクラウドが違うところは、クラウドはすでにGoogle App EngineやAmazon Web Servicesのような形で多くの人が実際に使っているというところです。 というところでクラウドとデータベースの話。 前のエントリでは、RDBMSがデータ構造として扱いづらいから非RDBMSが出てきたと書いたのですが、クラウドという観点から見ると非RDBMSを採用するのは実装上の問題からであるといえます。 クラウド用DBとしてGoogle BigTableやAmazon SimpleDBMicrosoft SQL Data Se

    クラウドとデータベース - 2008-12-15 - きしだのはてな
    yuiseki
    yuiseki 2008/12/15
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
    yuiseki
    yuiseki 2008/12/13