タグ

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

  • 多重下請けでは構造的にいいソフトウェアが作れない - きしだのHatena

    多重下請けではエンジニアが育たないという話を前回のブログで引用していたのですが、そもそも多重下請けではまともなソフトウェアは開発できないんではないかという気持ちになりました。 多重下請けでは、上位受け会社の「SE」が「設計」を行い、下位受け会社の「PG」が実装を行うという役割分担があります。というか、今回の話はそういう役割分担がある多重下請けを前提とします。 そうすると、設計というのは会社間をまたがった契約文書であり、発注のための作業指示書であるということになります。ソフトウェア開発で質的に必要な文書というよりは、ビジネス構造によって必要になったビジネス文書です。ちなみに派遣ではなく業務委託のはずなので詳細な作業指示になってはいけないのもポイントです。 ※余談ですが「設計は必要である」という人の話をきいてみると、必要なのは実装のための設計ではなく保守のためのドキュメントということがほとん

    多重下請けでは構造的にいいソフトウェアが作れない - きしだのHatena
    send
    send 2024/07/16
  • オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena

    定期的にオブジェクト指向disを書いてしまってるのだけど。 とりあえずオブジェクト指向の話をすると定義が人によって違いすぎるので、改めてここでの定義を書いておくと 、基的にはOMTの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」 に従うのですが 「1990年に流行りソフトウェア開発のすべてを飲み込み、いまとなっては人それぞれ定義が違って技術的議論に使えなくなった、主にオブジェクトを基単位としてプログラムを整理するやりかたを指すマーケティング用語」 という感じです。 ほとんどの場合で人によってオブジェクト指向の指す範囲が違いすぎて、技術的知見の共有には使えなくなっています。でも、いずれの定義にしろオブジェクトを基単位にするというのは重要ではないかと。 ソフトウェアの組織化の単位としてオブジェクトを使うというのが大事で、データの搬送に構造体代

    オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
    send
    send 2021/09/27
    stateの管理とデータフローの話だと理解したんだけど、こういうのは何度も揺り返しが来るようなものな気もする
  • 平方根を使わずに高速で2点間の距離を近似する - きしだのHatena

    2点間の距離の計算では平方根が必要になりますが、平方根は少し重い計算です。ということで、平方根を使わず、掛け算・割り算・足し算と絶対値・最大・最小だけで距離を近似する方法についての記事を翻訳してみました。 flipcode - Fast Approximate Distance Functions (12:02 補足:おそらく今の標準的なCPUでやる意味はほとんどないと思います。近似のアプローチとして面白いというくらいの話。Z80でやりましょう) 距離関数高速近似 by Rafael Baptista (27 June 2003) 2点間のユークリッド距離を求める計算式は次のようになる。 二次元では次のようになる。 この関数の計算には、平方根が必要になる。これは最近のコンピュータでも高価な計算である。平方根は逐次近似によって求められる。つまり、コンピュータは平方根近似のループを行って、与え

    平方根を使わずに高速で2点間の距離を近似する - きしだのHatena
    send
    send 2012/06/04
  • HTML5モバイルWebフレームワークの比較 - きしだのHatena

    モバイル用でJavaScriptでアプリケーションを作成できるフレームワークについて比較した記事を翻訳しました。 Comparing HTML5 Mobile Web Framework - Dzyngiri Comparing HTML5 Mobile Web Framework Apr 27, 2012 by Dzyngiri 今年はモバイルWebにとって面白い年になっている。HTML5とCSS3の採択、モバイルブラウザのパフォーマンス向上、モバイルアプリケーションフレームワークの爆発は、モバイルデバイスでのリッチでインタラクティブなWeb体験の作成がこれまでよりも現実的になったことを意味する。PhoneGapのようなラッパを使うことで、iPhoneiPadAndroidのネイティブのAppストアでアプリケーションを配布することも可能になった。単一のコードベースでマルチプラットフォ

    HTML5モバイルWebフレームワークの比較 - きしだのHatena
    send
    send 2012/05/18
  • 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冊
    send
    send 2010/11/25
    なにか問題でも?
  • Accelarator Titaniumの記事をI/Oに書きました - きしだのHatena

    Appcelerator Titaniumという開発環境の記事をI/Oという雑誌に書きました。 記事のサンプルはこちら。 http://www.kohgakusha.co.jp/samples/3796/download/io200910_132.jpg Appcelerator Titaniumは、HTML/CSS/JavaScriptを使ってデスクトップアプリやiPhone/Androidアプリを作成できる開発環境です。 デスクトップアプリは、Google Chromeにウィンドウの枠やメニューをつけたアプリが作れると考えればよいと思います。ファイルアクセスなどはGoogle Gearsの機能を使います。 http://www.appcelerator.com/ MYCOMに紹介記事があります。 http://journal.mycom.co.jp/column/tool/004/in

    Accelarator Titaniumの記事をI/Oに書きました - きしだのHatena
    send
    send 2009/10/28
  • プログラムを動かす環境の本 2009-03-25 - きしだのはてな

    プログラムをどう動かすというか、どうやって命令を発行するかというを挙げて、プログラムをどう書くかというもあげた。 これで、Seasarカンファレンスでの話でのの紹介は終わりなのだけど、ブログのエントリとしては、どうやって実際にプログラムが動くかを理解できるようながないと完結しない。 ということで、プログラムを動かす環境のを挙げることにする。 まだ読んでないがほとんどなので、こういった分野の勉強も必要だという程度の意味でしかないけど。長いことプログラマやってれば、なんとなく知ってる分野ばっかりになってるはずだけど、系統的に勉強しなおすのもいいと思う。 このあたりの分野は「タネンバウム読んどけ」でだいたい大丈夫みたいなんだけど、いきなり読むのはつらいので、そこにたどりつくまでのを。 コンピュータの仕組み まず、プログラムを動かす中心となるCPUとか周辺ハードウェアの。パイプライ

    プログラムを動かす環境の本 2009-03-25 - きしだのはてな
    send
    send 2009/03/26
  • いまSICPを読むのは時間の無駄 - きしだのはてな

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

    いまSICPを読むのは時間の無駄 - きしだのはてな
    send
    send 2009/03/22
  • エラー処理の方針とString#equalsの書き方 - 2009-02-19 - きしだのはてな

    String#equalsを使った文字列リテラルとの比較の書き方として、str.equals("リテラル")と書くのがいいか、"リテラル".equlas(str)と書くのがいいかという論争がありました。 そこで、この問題について、エラー処理の方針と絡めて考えてみようと思います。 エラー処理の方針として、エラーパッシングとエラーリカバリーという考え方があります。 エラーパッシングは、エラーがあってもそれを無視して処理を行うという考え方です。例えば音楽データの再生時に、データの一部が欠けていたとしてもそこを適当に補完を行って再生を続けるような考え方です。 人間相手の処理では、エラーによって処理が止まるよりも、それなりの対処を行って処理を続けることのほうが求められるので、ユーザーインタフェースやコンテンツのプログラムではエラーパッシングで考えることが多いと思います。 エラーリカバリーは、エラーが

    エラー処理の方針とString#equalsの書き方 - 2009-02-19 - きしだのはてな
    send
    send 2009/02/27
  • 2008-11-20 - きしだのはてな: スレッドで投機的実行を実現する方法を考えてみた

    スレッドのロックをする場合、読み込み処理同士は他に影響を与えないのでロックをする必要がない。 Javaでは、ReadWriteLockを使うと、読み込みスレッドは同時にいくつでも動くけど書き込みスレッドは他のスレッドが動いていると処理をまち、書き込み処理中は読み込み処理もできなくなる。 ただ、ReadWriteLockの場合、処理が読み込みなのか書き込みなのかがロック取得時に決まっている必要がある。 なので、あらかじめ読み込み処理か書き込み処理か決めれず、通常は書き込みを行わないけど条件によって書き込むというような場合にはReadWriteLockは使えない。 ということで、書き込みの頻度が少ない場合には、とりあえず処理を行っておいて、書き込みなければそのまま実行、書き込みがあっても他のスレッドによって値が変えられてなければやはりそのまま実行、もし他のスレッドによって書き込みがあれば、処理

    send
    send 2008/11/20
  • ところでサポートベクターマシンって何なの? - きしだのHatena

    最近、機械学習とか、そのアルゴリズムのひとつであるサポートベクターマシンとかやってるわけですが、そもそも機械学習ってなんなんでしょか? 機械学習ってのは、なんとなく与えられた点の分類から、新たに与えられた点の分類を推測するのですが、ようするに、点が与えられたときにそこから分類の領域を推測しておいて、新たな点がきたときにはどの領域に入るかを判別するのです。 ニューラルネットワークは、名前にニューロンとかついてて、とてもステキな響きがするのですが、あれは関数のあてはめを行っているのです。そうやって関数をあてはめることで、領域の境界面を求めます。 NN法は、学習とかせず、一番近いデータが同じ分類になるはずという戦略でやってます。 サポートベクターマシンも考え方としてはNN法と同じで、新しい点がやってくると、学習したそれぞれの点までの近さを計算して、一番ちかい分類を求めます。そのため、学習データが

    send
    send 2008/09/13
  • [Java]正しい無限ループの書き方 - きしだのはてな

    boolean д = true; for(;д;){ System.out.println("でれません"); } boolean ω = true; for(;ω;){ System.out.println("ぬけれません"); } boolean ェ = true; for( ;(ェ); ){ System.out.println("終わりません"); } boolean TдT = true; while(TдT){ System.out.println("帰れません"); } 参考 while(1)をfor(;;)って書くやつ(2ch)

    [Java]正しい無限ループの書き方 - きしだのはてな
    send
    send 2007/07/10
    わらった
  • JDKのバグの続きの続き - きしだのHatena

    笑えるくらい簡単になった public class Ploblem { static public void process(){ boolean brk = true;//順番を逆にすると再現しない intでも再現 boolean pre = false; System.out.println("---start---"); for(int i = 0; i < 1; ++i){ pre = brk; brk = false; System.out.println("if :" + pre); } System.out.println("end:" + pre); for(int i = 0; i < 10000; ++i);//数値を短くすると最適化までの時間が延びる? } public static void main(String args[]){ for(int i = 0; i

    JDKのバグの続きの続き - きしだのHatena
    send
    send 2007/01/15
  • 2年後にはEclipseを使う人はいなくなる - きしだのHatena

    Eclipseは「リファクタリングと補完にしか取り柄のないIDE」ですが、NetBeansは逆に「リファクタリングと補完に欠陥のあるIDE」ですね。 そこでJackpotですよ、と。 http://jackpot.netbeans.org/ Jackpotは、Javaのコードをオブジェクトとして扱ったり、そこからなにか抽出したり、変更したりするためのフレームワークです。 このルール言語のリファレンスをみると、どんなことができるか想像がつくと思います。 http://jackpot.netbeans.org/docs/rule-language.html これを見ると、リファクタリングや静的検査、コード補完なんかの仕組みが書きやすくなることが想像でします。 そうすると、NetBeansでのコード補完やリファクタリングというのは、ありえない速さで進化します。 NetBeans6が出た時点では、

    2年後にはEclipseを使う人はいなくなる - きしだのHatena
    send
    send 2006/05/18
    netbeansがJava系以外もサポートしたら、初めて考えるなあ。
  • StrutsでJava離れが進んだ - きしだのHatena

    やっぱStruts難しいなぁ ちょっと不勉強だとすぐにおぞましいコードになってしまう。 というか、このおぞましいコード、どうにかして欲しい。 でも作った人も一生懸命使いこなそうとしてるんだよねぇ。 むしろ、いろんな機能を使いこなしてしまってるからおぞましいコードになってるような気もするし。 勉強がちょっと足りないだけでコードがあられもないものになってしまうのは、今思えばフレームワークとして失格といえるかもしれない。 EJBの場合は「触らぬ神」で「たたり」が無かった人も多かっただろうけど、Strutsは「常識」になってしまったし。 でもこれってStrutsが悪いというより、Javaの構造的な問題なんだね。 使いやすいフレームワークを作る仕組みがない。メタフレームワークとでもいうか。 その結果が設定ファイル地獄。 で、Javaは難しすぎってことで、.NETに流れちゃったんだろうな、みんな。 J

    StrutsでJava離れが進んだ - きしだのHatena
    send
    send 2005/10/18
    全然ピンとこない。何でそういう結論に?
  • 1