タグ

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

  • Technology RaderもJava8を認めた! - きしだのHatena

    技術の注目度・実用度を分析したTechnology raderというのを、Thought worksが半年ごとに発表してます。 で、これいつもJava嫌いなんだなーって思う感じの内容だったんですね。 たとえば、2011年1月には「Java language end of life」といって、JavaはVMは残るけど言語は終わるよねーみたいな感じになってました。 http://thoughtworks.fileburst.com/assets/technology-radar-january-2011.pdf これが、2011年7月では、「Future of Java」として、今後でてくるJavaなら評価していいんじゃねーのみたいに。 http://thoughtworks.fileburst.com/assets/technology-radar-july-2011.pdf そして、先日

    Technology RaderもJava8を認めた! - きしだのHatena
    nowokay
    nowokay 2014/07/13
    ダウンロード!
  • 2010-11-25 - きしだのはてな - 技術力をあげたいプログラマが読んでおかないと話にならない本10冊

    ここにあげたじゃなくてもいいので、同じ分野でなにか読むとか、に書いてあるほど詳しくなくてもそれなりに知識をもっておくべき。 アルゴリズムクイックリファレンス 作者: George T. Heineman,Gary Pollice,Stanley Selkow,黒川利明,黒川洋出版社/メーカー: オライリージャパン発売日: 2010/04/26メディア: 単行(ソフトカバー)購入: 11人 クリック: 656回この商品を含むブログ (72件) を見る まずはアルゴリズム。クイックって書いてあるけどぜんぜんクイックじゃないw。各言語で書かれた入門書を読んでもいいと思う。 実際のプログラムにアルゴリズムの知識を活かすということを知りたいならプログラミングコンテストチャレンジブックがおすすめ。 プログラミングの基礎 ((Computer Science Library)) 作者: 浅井健一

    2010-11-25 - きしだのはてな - 技術力をあげたいプログラマが読んでおかないと話にならない本10冊
    nowokay
    nowokay 2010/11/25
    最後2冊は11冊目と12冊目よ!話にならない本10冊の枠外よ!
  • そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな

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

    そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな
    nowokay
    nowokay 2010/09/01
    @SiroKuro Eclipseほとんど使ったことないですよ。 入門にEclipseもおすすめしないwだってわかりにくいから。 優秀なプログラマ育成したいならコマンドラインじゃなくてTopCoderやらせまくるほうがいい
  • Google App EngineでのDatastore使用量見積もりは注意が必要 - 2010-02-17 - きしだのはてな

    先日セッションデータを消したかったのは、Datastore使用量が1GBを超えて一日0.01$の課金がかかってたからなのです。日曜日くらいに無事消えました。 Google App Engine/Javaでセッション情報を定期的に消す処理 130万件を消す処理に5日以上かかった計算に。もちろん、もう少しちゃんと組めばもっと早く終わると思うのですが、それはつまり、130万件を消去する処理を書くには単純なコードでは無理ということです。※急いでなかったので30分に13回程度の処理しか行ったためで、ちゃんと処理をすると3時間かからないくらいにはなりそうです。(23:08追記) まあ、日数がかかるのはいいとして。 セッション情報がたまってるときのエンティティサイズはこのように360MB程度になっていました。 ただ、このときデータストア使用量は1GBを超えて、0.01$の課金がかかっています。 これが、

    Google App EngineでのDatastore使用量見積もりは注意が必要 - 2010-02-17 - きしだのはてな
    nowokay
    nowokay 2010/02/17
    1エンティティごとにプロパティ名が保持されるので、DateとIntegerだけみたいに実データが少ない場合はMetadataの比率が大きくなります。データが大きくなれ比率はさがります
  • 一意なテスト用文字列データを適当に生成する方法 - 2010-01-12 - きしだのはてな

    プログラムを作成するときに、メッセージの文字列などを適当にそれっぽく生成したい場合があります。 そういうとき、とりあえずこういうプログラムが考えられます。 public static void main(String[] args){ String[] users = {"nowokay", "higayasuo", "t_yano"}; String[] pre = {"ところで", "じつは", "さて、", "なかんずく、"}; String[] msg = {"こんにちは", "はらへ", "おはよう", "ねる", "きたく", "ビールのむ"}; for(int i = 0; i < users.length * pre.length * msg.length; ++i){ System.out.printf("|%s|%s%s|%n", users[i / (pre.leng

    一意なテスト用文字列データを適当に生成する方法 - 2010-01-12 - きしだのはてな
    nowokay
    nowokay 2010/01/13
    ↓どうまちがってますか?
  • Google App Engineでコードを書くと、処理のひとつひとつが課金に見える

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

    Google App Engineでコードを書くと、処理のひとつひとつが課金に見える
    nowokay
    nowokay 2009/12/18
    ↓最適化が自動にできるとしても、CPUとストレージのどちらを使うかは作るものの性質を把握して自分で決める必要があるのです。自動化のためにログとると、またそこで課金かかりますよ。
  • 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 - きしだのはてな
    nowokay
    nowokay 2009/11/26
    ↓大手建設業者がつぶれたり出版不況とか言われる中、将来性のある枯れた業界ってどこなんでしょう?
  • HTML5 ローカルDBの構造はこれで十分 - 2009-11-20 - きしだのはてな

    HTML5 ローカルDBで、スキーマが変わったときの処理が難しいという意見をいくつか見た。 ということで、解決方法として、こんくらいのフィールドがあればいいんじゃないかと思った。 key, value, created_time, update_date, deleted あとは、valueにJSON文字列突っ込む。 これでスキーマ変更も怖くない。

    HTML5 ローカルDBの構造はこれで十分 - 2009-11-20 - きしだのはてな
    nowokay
    nowokay 2009/11/21
  • なぜJavaの価値があがるといえるか。 - きしだのはてな

    昨日の続き。 PHPの価値が相対的に落ちてJavaの価値があがっていく PHPJava Windows Azureでは、PHP対応もあるらしい。 また、GAE/J上でPHPを動かしたら一緒ではないかというコメントもあった。現状ではGAE/J上でPHPを動かす環境が未完成であったとしても、先のことを言うのであればこちらも完成度があがっていくことを考慮する必要がある。 ただ、これらを考慮したとしても、PHPの相対的な価値が下がったという意見には変わりがない。 PHPがこれまでもっていた「動かす環境が確保しやすい」という特権がなくなったということをもって、PHPの相対的な価値が下がったといっているからだ。実行環境の確保という点では、PHPがもっていたほかの言語に対する優位性がなくなった。 また、Google App EngineによってPythonではなくJavaが強くなったというのは、今まで

    なぜJavaの価値があがるといえるか。 - きしだのはてな
    nowokay
    nowokay 2009/10/21
    ↓AndroidとWindows mobileならばシェアでかなわないかもしれないですが、iPhone1機種にAndroid端末全体がかなわないと思えないのですが
  • PHPの価値が相対的に落ちてJavaの価値があがっていく 2009-10-19 - きしだのはてな

    2000年あたり、PHP4やJSP1.0が出たころ、PHPよりもJavaがよいと言っても、「Javaは動かせる安いサーバーがない」ということで、サーバーの確保が容易なPerlPHPが使われました。 Javaを使うには、一台まるごと借りれる割高なレンタルサーバーで、自力でTomcatなどをインストールする必要がありました。そういった状況はしばらく続き、「PHPならば安く借りれるサーバーがたくさんある」ということから、PHPがよく使われるようになりました。 PHPの普及初期では、サーバーの確保が容易なことがPHP採用の大きな理由のひとつだったと思います。 こういう状況は最近まで続いたけど、Amazon EC2のおかげで「Javaは動かせる安いサーバーがない」という問題は解決してきました。Amazon EC2を借りても自力でTomcatなどをインストールする問題がありましたが、HerokuやS

    PHPの価値が相対的に落ちてJavaの価値があがっていく 2009-10-19 - きしだのはてな
    nowokay
    nowokay 2009/10/19
    ↓PHPでは今のところサンドボックスのようなものがないので仕組み的に無理ですよ。
  • ツイッタの「名前の占拠」規約について翻訳 - きしだのHatena

    http://twitter.zendesk.com/forums/26257/entries/18370 ユーザー名の無断占拠はTwitterのルールに反しています 名前の無断占拠とユーザー名を販売する目的のアカウントは、ずっと凍結されます。 ユーザー名の取引で、販売したり他の形態での支払いを強要したりを試みることは、アカウントの凍結につながります。6ヶ月以上アクセスのないアカウントは通知なく削除されます。Twitterは現在、侵害の場合のほかは、アクセスがなかったり無断占拠のアカウントを開放していません。 ヒント:アカウントのプロファイル画像を更新しないことや、通常迷わせる意図のないものは、侵害にはなりません なにがユーザー名の無断占拠を構成しますか? アカウントについてどの行為が名前の無断占拠か決定するときのいくつかの要素は アカウントが作成されている総数 他の人がアカウント名を使う

    ツイッタの「名前の占拠」規約について翻訳 - きしだのHatena
  • 川崎近辺にNetBeansユーザーを増やす作戦 - きしだのHatena

    これがデフォルトなら確実に一人増える。 きっとそうだ。 手順 1.http://ebipuri.comから壁紙をダウンロード 2.ここからrc2.2の方のnbmファイルをダウンロード https://substance-netbeans.dev.java.net/servlets/ProjectDocumentList 3.「ツール > アップデートセンター」からインストール 4.「表示 > Watermarks > Image > Select from local disk」で画像を読み込み

  • インフルエンザ予防のためのマスクは禁止するべきでないか 2009-05-20 - きしだのはてな

    インフルエンザ予防のためにマスクをするなら基的に使い捨てないといけない。 そうすると、たとえば2週間対策をするとして、そのうち10日でかけるなら、20枚のマスクが必要になる。 現実問題として、ひとりが20枚のマスクを購入したら、あっというまに在庫はなくなる。 最低100枚買えというのも見たけど、ほんとにみんなが100枚買うとしたら、何人が手にいれることができるんだろうか。 問題は、インフルエンザの予防としてのマスクは、扱いが難しい割にはそれほど効果がないということだ。 少なくとも、でかけたあとの手洗いを徹底した上じゃないと意味があまりない。マスクして会社に行って、マスクはずすときに手洗いしない人とか、結構多い気がする。 一方で、インフルエンザにかかっている人がマスクをすることは感染拡散の効果が高いし必須。 インフルエンザにかかっている人は、そもそも外出するべきではないけど、外出する必要が

    インフルエンザ予防のためのマスクは禁止するべきでないか 2009-05-20 - きしだのはてな
    nowokay
    nowokay 2009/05/20
    福岡でもコンビニで品切れになってたり ↑「予防のためのマスク」と書いてますよね
  • おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな

    やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置

    おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな
    nowokay
    nowokay 2009/04/10
    Yコンビネータから資金を、って話じゃないです>< / 3項演算=3引数関数もカリー化で1引数の関数になります。本文中boolで。比較は引算の発展で。ただ、この話の本質は、関数のみで「計算」ができるという証明にあります。
  • クラウド対応のモデリング技術がおもしろくなるかもしれない - きしだのはてな

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

    クラウド対応のモデリング技術がおもしろくなるかもしれない - きしだのはてな
    nowokay
    nowokay 2009/04/02
    組み込み向けUMLに時相論理を考慮したものがあるようですね。
  • プログラムの動かし方の本 - きしだのはてな

    Seasarカンファレンスで、基礎としてプログラムの動かし方であげた。と、それに加えて挙げれなかった。 ちなみにSeasarカンファレンスでの内容はid:tanamonがまとめてくれてる。というか、手書きスライドの書き起こしをしてもらってます。 「手書きで書く→ソーシャルに清書してもらう」という、新しいプレゼン手法が生まれました! 差のつく勉強法200のメモ - tanamonの日記 プレゼンや以前のエントリでは、プログラムというのは計算論と意味論に分かれると書いたけど、プログラム意味論という分野と混同してへんな議論になっちゃうので、「プログラムをどう動かすか」と「プログラムをどう書くか」に分かれるとします。命令的な側面と宣言的な側面だと言ってもいいかもしれない。今回は命令的な側面について。 まずは、基礎となる数学、離散数学について。 やさしく学べる離散数学 作者: 石村園子出版社/メ

    プログラムの動かし方の本 - きしだのはてな
    nowokay
    nowokay 2009/03/19
    ↓類書をもっていないとして、どれか一冊といわれると「Java データ構造とアルゴリズム基礎講座」ですかね。|↑ほとんど読んでない本もたくさんあるです
  • 「クラスとは何かを集合論から考えなおす」を集合論から考えなおす - 2009-03-11 - きしだのはてな

    「クラスとは何かを集合論から考えなおす」について、素朴集合論から考えると混乱するとかZFCっぽくないのは意味がないとかいう指摘を受けたので、ちゃんと考えられるように準備をしてみる。 今回は準備だけ。そして続きがあるかどうかはわからない。 さて、素朴集合論じゃなければどの集合論がいいのかといわれると、ZFCなるものがあるらしい。そして、前回の論でZFCとして致命的なのは、ZFCの公理の中で、すべての集合は要素をたどっていくと空集合にならないといけないというのがあるのだけど、これにあてはまらないということだ。ということで、今回は、集合が要素をたどると空集合になるところまでを考える。 まず、空集合をφとあらわす。空集合は、要素を含まない集合で{}のこと。そして、このφに0という数値を割り当てる。 次に、φを要素とする集合に1という数値を割り当てる。φを要素とする集合というのは{φ}のこと。展開す

    「クラスとは何かを集合論から考えなおす」を集合論から考えなおす - 2009-03-11 - きしだのはてな
    nowokay
    nowokay 2009/03/11
    じゃあ、気のせいですかね。まあ、ここのとこまでを自然数であらわせたので自己満足します。
  • ソフトウェア工学、ソフトウェア理学、ソフトウェア人文学 - 2009-03-10 - きしだのはてな

    ソフトウェアには、3つの側面があると思う。 どういう切り口で3つの側面を取り出してもいいのだけど、とにかく3つの側面がある。 最近は、工学・理学・人文学の側面として考えるようになってきた。 たとえば、論理学などからプログラムの表現を考えていくようなプログラム意味論は理学だと思う。それから、プログラムの手続きのグラフ構造から最適化や計算可能性を考えるような、計算理論も理学になる。 なので、理学では意味論と計算論に分かれる。 この、理学だけでは実際に動くプログラムは組めないので、データベース論だとかユーザーインタフェースだとか、アプリケーションを組むためのことも考えないといけない。 理学をもとにアプリケーションを考えることになるので、これは工学になる。工学は多岐にわたる。 ただ、これをソフトウェア工学というと、別の分野になってしまう。 ソフトウェアを作成するとき、基原理やアプリケーションの手

    ソフトウェア工学、ソフトウェア理学、ソフトウェア人文学 - 2009-03-10 - きしだのはてな
    nowokay
    nowokay 2009/03/10
    型理論は意味論に入るんじゃないんですかね?/そうなのか。じゃあ理学系で。
  • クラスとは何かを集合論から考えなおす - 2009-03-08 - きしだのはてな

    いま論理学とか集合論とかを勉強してるので、クラスって何かという話のときも集合論として考えてた。 なので、そのとき考えたことをまとめておく。 まず、「なにか」があるとする。「なにか」はなんでもいい。 そして、その「なにか」の集合を考える。たとえば"aaa"や"bbb"を要素とするStringという集合を考える。3とか5とかを要素とするIntegerという集合を考える。 ここで、その集合がなにを扱うかという規則をどうするかというのがオブジェクト指向としては大切になるかもしれないけど、今回はそこには触れないでおく。 とにかく、「なにか」と『「なにか」の集合』を考えることをここでは大切にする。 これで『「なにか」の集合』を考えたところで、『「なにか」の集合』を要素とする集合を考えて、この集合をクラスとする。つまり、クラスという集合は、StringやIntegerといった集合を要素にもつ。 ここで、

    クラスとは何かを集合論から考えなおす - 2009-03-08 - きしだのはてな
    nowokay
    nowokay 2009/03/09
    総合すると、公理的集合論をちゃんと勉強せよ、ということか。
  • 計算量を具体的に見てみる 2009-01-06 - きしだのはてな

    アルゴリズムの話では、計算量の解析がかかせません。 計算量はオーダー記法で表されますが、これは、データの入力量に対してどのくらい時間がかかるかをあらわしたものです。 こういった話はどのアルゴリズムのにも載ってるはずですが、具体的にどのようなプログラムを書くとそのオーダーになるかという記述はあまりありません。 ということで、やってみました。 計算時間表示のための共通処理を行うクラスは、一番最後に書いてます。 O(1) 計算時間がO(1)のアルゴリズムは、処理が入力の量によらない場合です。 配列の要素のアクセスや、ハッシュテーブルによるデータ検索、連結リストへの追加削除などがこれにあたります。 コードには入力量でのループが含まれません。 public class O1 extends ViewCompFrame{ @Override void compute(int n) { proc();

    計算量を具体的に見てみる 2009-01-06 - きしだのはてな
    nowokay
    nowokay 2009/01/28
    ↓O記法では係数に意味がなくグラフの形だけが重要なので数値は表示しないほうがいいです