サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
sirokuro-2.hatenadiary.org
業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して 自分はよくこうする。 try { Writer out = new BufferedWriter(new FileWriter("ファイル名")); try { // なんやかんや } finally { out.close(); } } catch(IOException e) { e.printStackTrace(); } まあ、これだと結構深刻な欠点があるんだけど。
google なり apple なり、あるいは dwango なり gree なり、技術者を大事にしている*1会社と、昔ながらの老舗 SIer では、その構成員が大分異なるんじゃないかという考えに至った。前者は社員を技術者として、個人の能力に依存するが一騎当千の強者を大事にする。一方後者は社員を従業員として、凡人〜秀才を多数集めて集団を形成する。 SIer の構成員は普通のサラリーマンだ。たくさん寄り添い助け合い、知恵を絞りあって普通のシステムを作る。1年や2年、あるいはもっと長い時間をかけて。 遅いことなら誰でも出来る! 20年かければ馬鹿でも傑作小説が書ける! つまり、日本の SIer に足りないものは明白だ。 お前に足りないのはッ!情熱思想理想思考気品優雅さ勤勉さ! そして何より―― 速 さ が 足 り な い ! と、ここまで思考を暴走させて、意外と的を射ているなぁと思った次第。
http://code.google.com/p/freja/ できることは少ないが覚えるべきことも少ない。最低限動かすなら3つだけで十分。 インタフェイスと、その実装クラスを用意する 実装クラスに @Component アノテーションを付ける インタフェイスの Class オブジェクトで get する public class FrejaSample { public void main(String[] args) { Animal animal = Freja.get(Animal.class); animal.bark(); } private interface Animal { public void bark(); } @Component private static class Cat implements Animal { public void bark() { Sy
地位確立のためのクラウド 例えば WindowsAzure。Microsoft がクラウドに Azure を引き連れてきた理由は簡単で『クラウド分野においてもミドルウェアベンダとしての地位を確立したい』という狙いがあるため。だから Azure には Windows と名前が付けられ、WindowsAzure は PaaS と呼ばれている。 新たな金脈としてのクラウド 例えば AmazonEC2 や GoogleAppEngine。Amazon や Google にとって PaaS とは『自社のサービス構築基盤』であり『サーバの余剰能力をお金で買ってもらえる絶好の機会』だった。『システム構築の技術はあってもお金に変えられなかった部分を PaaS はお金にしてくれた』のが、SaaS ベンダである Amazon と Google にとってのクラウドの利点だった。 事業縮小としてのクラウド それで
[この発想はなかった] 専任のSubversionオペレータなる人がいるらしく、受理された申請書と変更ファイル(を入れたUSBメモリ)をSubversionオペレータさんに手渡すと、あとはオペレータの人が代わりにコミットしてくれるみたいですよ。
Q. 次の仕様を読んで、障害として判定すべきものを選びなさい(複数選択可) [PDF表示ボタン] ・ボタン表面の文字としてファイル名を表示する ・ボタン押下時には、AcrobatReader を開き、内容を表示する ファイル名が長すぎて文字が見切れている ボタン押下で 404 Not Found ボタン押下で 403 Forbidden ボタン押下で 500 Internal Server Error ボタン押下で真っ白なページに遷移した サーバ側の MIME 設定が誤っていて、内容がテキストで表示された クライアント側の関連付けが誤っていて、内容がテキストで表示された 別画面ではなく同一画面で AcrobatReader が開いた AcrobatReader ではなく AdobeReader が起動した AcrobatReader がインストールされていない クライアント UA が IE
A.小型化できないから 結構真面目に考えた結果。 参考: _、,_ ① (⊂_ ミ ドイツ人が発明 ↓ ② ( ´_⊃`) アメリカ人が製品化 ↓ ③ ミ ´_>`) イギリス人が投資 ↓ ④ ξ ・_>・) フランス人がデザイン ↓ ⑤ ( ´U_,`) イタリア人が宣伝 ↓ ⑥ ( ´∀`) 日本人が小型化に成功 ↓ ⑦ ( `ハ´) 中国人が海賊版を作り ↓ _,,_ ⑧ <ヽ`д´> 韓国人が起源を主張する
ごはん食べてたら閃いた。というか今まで朧気だったものが頭の中で明確な形となって現れてきた。 最近の傾向として、クラウドコンピューティングがIT業界全体のトレンドになっている。SIer 各社も例に漏れず、クラウドについての技術研究に余念がない。しかし、もともとこの業界は、ハードウェアからソフトウェア、さらには印刷用紙の1枚に到るまで一括で納品してきた歴史を持っている。その遺伝子は着実に受け継がれ、そして時は2010年。 間違いない。クラウドプラットフォームを自前で作る SIer が出てくる。というか出てた。 マジわけわかんねえ。いや、国内企業からクラウドベンダが出るのは正直嬉しいし、運用することで技術を集積できるのは羨ましい限りなんだが…… ……なんで「上から下まで特化します」なんだろう。Platform と AP は切り離せない関係なんだろうか。二兎を〜とはいうが、なんか100兎くらい追い
「要件が決まれば実装は自動生成で可能な限り効率化」ということになりそう。 アジャイルって受託開発との相性が最悪な気がする - GoTheDistance 極端な話をすると、要件定義文章からプログラムコードを100%自動生成することが SIer の求める効率化の究極の形になる。 そして、そのレベルにおいての要件定義とは、もはや机上の空論ではなく現実的なコーディングに他ならない。 すなわち、要件定義段階からコーディングしてしまうことこそが SIer の理想であり、SIer の求める究極のアジャイル開発ということができる のではないかという妄想。
例外関係の話題が冷め切らないうちに、例外の本質に付いて考えてみます。 検査例外と非検査例外の本質は何か java 以前のプログラムにおいては、例えばセグメンテーション違反を起こした場合にはアプリケーションが異常終了します。 同様に java においても、NullPointerException は catch せず、そのままアプリケーションを終了させることが望ましいと考えられています。これは例外的事象の発生時にアプリケーションを暴走させずに終了状態へと遷移させることで、その後に予期せぬ挙動を起こすことを防ぐためです。 NullPointer は「セグメンテーション違反」と同様の使い方が想定される 一方、IOException のような入出力関連の例外に目を向けると、C では「ファイルハンドラが NON-NULL か否か」について条件分岐を行い、NULL 時にはエラー処理を行うことが望まれま
RuntimeException(非検査例外)の正しい投げ方は、次の通りです。 例外オブジェクトを優しく new してあげましょう システムを落とす勢いで、豪快に throw で放り投げましょう 検査例外と非検査例外を使い分ける指針は「呼び出し元にチェックしてもらいたいかどうか」という教科書的な解答に集約されます。チェックされなければそのままシステム全体が落ちるという形です。 web サーバを作りました。クライアントと接続します。クライアント側の LAN ケーブルが猫によって引き抜かれました。サーバ側で例外が飛びます。 そして見事にサーバ全体が落ちました。めでたしめでたし。 で終わりたくないので、良い API は【お節介にも】検査例外を使うという選択を行います。その心は 『残念ながら君の望みは叶えられなかった。だが私は君に、もう1度やりなおすチャンスを与えよう』 ……と、なんか生意気な野郎
人材獲得作戦・4 試験問題ほか: 人生を書き換える者すらいた。 ということで、迷路を解いてみました。プログラミングには約40分。構想時間を含めても3時間以内には解けるはず。命名は適当すぎてリファクタリングするきにもならない出来だけど。 using System; using System.Collections.Generic; using System.Drawing; using System.Text; using System.Text.RegularExpressions; using System.IO; class Program { static void Main(string[] args) { Maze maze = Maze.LoadFromFile(args[0]); DateTime before = DateTime.Now; maze.resolve();
詳しすぎる詳細設計書 - SiroKuro Page の続きです。前の記事ではブクマありがとうございました。 はてな界隈の拒否反応を見る限り、詳しすぎる詳細設計書に良い印象を持ってる人は少なそうです。もっとも、私は良い面も持っていると思っていまして、 プログラマの技術的知識や業務的知識の量に左右されることなく、一定の品質を保つことができる なんてメリットがあります。属人性の排除ですね。 あたりまえですね。実は設計者が書いたプログラムを詳細設計書と呼んでいるんですから。しかもテストどころか処理系に食わせてすらいないプログラムです。悪く言えば机上の空論です。良く言えば……絵に描いた餅? プログラマの技能に左右されないかわりに設計書の品質に左右されるので、一定の品質が「悪い方に一定」だったりすることもあって、色々と下流工程の鬱憤が溜まりそうです。既に溜まっていますね、ごめんなさい。 本題:古き悪
「詳細設計書」と呼ばれるドキュメントがあります。各処理の入出力や処理概要を記載した文章です。 入力: 「性別と身長のペア」のリスト 出力: 男性の平均身長」と「女性の平均身長」の差 処理概要: 変数「男性の合計身長」「女性の合計身長」「男性の人数」「女性の人数」を 0 で初期化する 入力を受け取る 入力されたリストから要素を読み込む 入力されたリストの要素数だけ以下を繰り返す 要素を1つ読み込み、条件分岐する もし要素が男性なら、変数「男性の合計身長」に身長を加算し、変数「男性の人数」を1増加させる もし要素が女性なら、変数「女性の合計身長」に身長を加算し、変数「女性の人数」を1増加させる 次の要素を読み込む 「男性の合計身長」÷「男性の人数」−「女性の合計身長」÷「女性の人数」を、変数「計算結果」に代入する 出力する イメージとしては、こんな感じ。各社それぞれ、どんな詳細設計書を書いてい
「ご飯はちゃんとお箸で食べなさい」と躾られて以来、素直にそれを守っている SIer 「箸で食事することが日本古来の伝統だ」と習慣や風習を頑固に守っている SIer 「この箸は両親の形見なんです」と箸自体に特別な意味を見いだす SIer そういう SIer が、いざポタージュを食卓に出されると、箸でポタージュを飲もうと四苦八苦をし始める。 「箸を使う技術力が試される時だ」と自らを奮い立たせるが、そんな技術力を試して欲しいなんて周囲は全く望んでなんかいない。 苦労して得られるものは満足感しかない。 とある SIer は先割れスプーンを発明した。 また別のとある SIer は、ポタージュをマグカップに入れることを考案した。 彼らは四苦八苦する SIer を尻目に、有意義な食事を楽しんでいる。 そんな「ひとつ抜きん出た SIer」にならなければならない。 多くの SIer は、目の前にあるのがポタ
最新技術を一式、SIer に与えるとする。 まずは RoR を与えてみよう。「RoR で作れば生産性が高まる」という噂を聞いて、SIer は興味を持つ。そして【自分のやりたいことが RoR で実現可能か否か】を調べはじめる。実現できなかったら【どのようにすれば RoR で実現できるか】を調べはじめる。そして RoR は SIer に使われずに終わる。SIer の生産性は元のままだ。SIer がしたかったことは、独自の規約を作ることだった。独自規約が RoR の規約と衝突し、結局のところ RoR は使用されたが活用はされなかった。 次に、適当な KVS を与えてみる。実行速度が上がるという噂を聞いて、SIer は興味を持つ。しかし KVS から手を引くのはとても素早かった。高度な SQL が動かせず、また諸々の政治的理由により【安価な】 KVS は【高価な】 RDBMS に敵うことはなかった
引っかかった点が1つ。 「日の丸技術」の開発には意味がない:スパコンというのは、きわめて特殊な科学技術用コンピュータであり、世界で年間数十台しか売れないものだ。富士通がクレイの4倍以上のコストのスパコンを開発しても、世界市場では売れない。日本の大学でも中規模のスパコンをリースで利用するのが常識であり、このような「日の丸技術」の開発にはビジネス的な意味もない。 池田信夫 blog : 沈没した「スパコンの戦艦大和」 これは日本だけに限らない。スパコンというものは、きわめて特殊な科学技術用コンピュータであり、世界で年間数十台しか売れないものだ。IBMがクレイの4倍以上のコストのスパコンを開発しても、世界市場では売れない。世界の大学でも中規模のスパコンをリースで利用するのが常識であり、このような技術の開発にはビジネス的な意味もない。 では、なぜIBMはスパコンを開発するのか。それはビジネス的に成
きつねのしっぽで使っている diff まわりを公開してみます。元コードを作成した id:siokoshou さんへのフィードバックと感謝を込めて。どうもありがとうございました! using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Diagnostics; // http://d.hatena.ne.jp/siokoshou/20070315#p1 namespace FoxTails.Text { public enum EditType: byte { Nothing, Add, Delete } [Serializable] public class DiffResult { public readonly EditType Type; pu
経緯 > id:SiroKuro > ぶっちゃけ自分の腕試しを兼ねて、こういう間違い探しやってみたいんだけど、何か良い題材は無いかな。だれか紹介してよ。 おぉ、ちょうどいいんじゃないでしょうか?ISID 版。 http://d.hatena.ne.jp/bleis-tift/20090804/1249389793#c1249471653 ということで読んでみました。読んでみた感想は……意外と好感触?だったりします。 とりあえず本編 名前をつける時はすべて英語を基本としてください。 JavaCodingStandard2004_P.9 クラス名には、機能 ID、連番等の意味のわかりにくい名前を使用しないでください。 JavaCodingStandard2004_P.11 賛成。ローマ字で付けられた名前は見難くてしかたがない。うちはNの規約を使ってるけど、ここが最大の不満点。 パッケージ名は、
答え 約2000人月 開発の流れ 要件定義 顧客の発注を受ける 1次請け、要件定義書の執筆を始める 1次請け、顧客と交渉し、家の中に繋がっている家電製品を全て調べ上げる 一次請け、基本設計実施要領の執筆を始める 基本設計 この工程は、2次請け以下には秘密裏に行われている 詳細設計 1次請け、詳細設計実施要領の執筆を始める 1次請け、だいたいこのあたりで2次請けへと乾坤一擲 2次請け、使用する規格やフレームワークなどの部品を選定開始 詳細設計書の執筆がスタート、電球の大きさや重さ、丸み、光度、味、匂いなどを定義する このあたりで、既に5次請けくらいまで仕事が割り振られている 製造 1次請け、製造工程実施要領の執筆を始める 1次請け、単体テスト実施要領の執筆を始まる 5次請け、電球フィラメントのくるくるを手で作成しはじめる 4次請け、求める匂いが上手く出せないと3次請けに駄々をこねる 3次請け
プログラミングに殺される プログラミングは通算勉強時間じゃなくて、「初めてから何年」で数えたほうがいいよ。飯たべてるときとか寝ているときとかに、突然ラチェットがカチっと嵌まって理解できるようになるから。 ちなみに自分はここまで10年経過。オブジェクト指向を身に付けるのには6年くらいかかっています。 自分は英語を数百時間勉強してもきっと話せるようにはならないだろうね。意思疎通くらいなら3年くらい現地滞在すればなんとかなると思うけど。 というより、オブジェクト指向を正確に理解できているプログラマ or SE が、実際にどの程度いるのかというほうが疑問だ。それこそ2割居れば御の字で、後の8割は正しい理解を行っていないのではないかと思ってしまう。 勉強することは大事だが、正しく理解することだけが実践力を付ける方法だとは思えない。必ず裏技は存在する。英語に例えるならば、単語力が弱ければ辞書を用いれば
とりあえず最初に突っ込み入れちゃいますね。 これが、クラスとは何か - SiroKuro Pageのような混乱につながっているのだと思う。 クラスとは何かを集合論から考えなおす これって「混乱している」のは自分なのか、id:nowokay さんなのか、それとも第三者なのかが曖昧でよく分かりませんが、とりあえず自分は混乱したという自覚はありませんでした。そもそも、その記事は 【クラス】っていう単語を安直に使うと、 ソースコードの記述に着目した『クラス定義』 Java のデータ型に着目した『クラス型』 オブジェクト指向に着目した、概念としての『クラス』またはそれを扱う『java.lang.Class』 ソースコードの記述に着目した、型名記述子として用いる『クラス名』 という4種類の意味が推測できてしまい、その違いがシビアに影響する文脈においては困ってしまうのではないか。 ということを書きたかっ
プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ に回答してみよう。まだ学生だし、たぶん間違えているけど、気にしない。 開発実績編 これまでに携わってきた開発プロジェクトの中で、一番の自信作と言えるものはどんなものですか? 実務経験は無いけど JVM 上で動作する軽量スクリプト言語処理系を作った*1経験がある。実務経験は早いうちに積み重ねたいね。 プログラミング基礎編 for (int i = 0; i < list.getLength(); i++) {}の潜在的パフォーマンスボトルネック パフォーマンス的には getLength を毎回計算していること。これは list の実装に依存しているけど、例えば File.length() などでこれと同じことすると激遅になる。素直に Iterator 使ったほうが分かりやすいし速くなることも多いと思うよ。 また、パフ
つまり、読むな、ということだ。どんなひどいネガコメであれ、読んでしまうから傷つくのであって、読まなければどうということはない。 ネガティブコメントから自分を守る一番簡単な方法。 - Something Orange ブコメにも書いたけど、傷ついてしまう人は、例えばPVの変化とかあるいは「晒されてたよ」の一言だけでも傷ついてしまうもので、ネガコメ自体を読まなければ傷つかないというものでもなかったりする。 そもそも、読んで傷つくような繊細な人が「陰口されてるけど大丈夫?」と聞かれて不安にならないはずがない。 最も必要なのは「貴方が考え込んでいるほど、ネガコメした人は考え込んでなんかいないんだよ」と、正しく認識させることだ。なんと言えばいいのかは自分では答えが出ていないけど、要は「通りすがっただけの人に真剣に説教くれたって、あなたには一銭も入らないじゃないか」と思わせること。 それが難しいことだ
RE:http://d.hatena.ne.jp/clock9/20081203/1228270475 所感 残念ながら『努力してもどうしても理解できないひと』は少なからず居る けどそう思ってるひとに限って、自覚のないうちに理解していたりして困る 全てを理解することは既に不可能な領域。自分の理解できる範囲を理解すれば良い プログラムを読み書きして食っていくって話になると、それだけじゃ足りないこともあるけどね プログラム、特に手続き型プログラムに関しては、流れを追うことが大事 目の前に書いてあることがどういう意味を持っているのか、1つ1つ辿りながらでも理解すること 何度も見ていれば次第に目が肥えていく オブジェクト指向 ぶっちゃけワンニャー鳴いても構わないの。ケイのオブジェクト指向ならば キモとなるのはオブジェクトに対するメッセージパッシング イヌオブジェクトへ「鳴け」メッセージの送信、ネコ
ファイナル弁当さんが何やら袋叩きにされてる様子なので。 たぶん越権さんには通じないと思うけど - finalventの日記 要点だけまとめると、 出来るかぎり可視化して陰口のできない環境にするべき。正々堂々とした誹謗中傷は無くならないけど。 出来るかぎり隠蔽して誹謗中傷が伝わらない環境にするべき。陰口は無くならないけど。 の二元論ですよね。そして性質の悪いことに、互いに妥協することはできても両立させることはできないと来たもんだ。 個人的には1番の可視化を推し進めたほうが健全だとは思うけど、でも誹謗中傷とかを面と向かって言われるのは嫌だったりする。自分は人間だから、悪口言われりゃ傷だってつくわ。けど陰口が全く無いとも思わない。自分は人間だから、誰からも愛される超人じゃないし。 この問題って、どれだけ利点欠点を並べて答えを見つけようとしても、結局個人の好みの問題に帰着するんだよね。個人では答え
企業や商店が「良い品を安く提供します!」って意気込むぶんにはかまわないんだけど、それを真に受けた消費者が「企業や商店は良い品を安く提供して然るべきだ」って思い込み始めるとよくわかんないことになってくる。『企業努力』という言葉は既に消費者から企業に向けられた脅迫になっていると思うんだ。曰く「企業努力してしかるべき。努力できなければ潰れろ」と。 市場はもっと素直で、良い品は高いし悪い品は安い。良いサービスは高いし悪いサービスは安い。結局のところ1円安くすれば1円分の安全性が削られている可能性だってあるんだけど、それを忘れると結局のところ最近の汚染米問題に繋がっていくと思うんだけどさ。 別に明日から1000円高い米を買え〜だなんて無粋なことは言いたくないけどさ、せめて「私は安全性にはお金を払いたくありません」って意識でいる人は汚染米食べて死んでも文句が言えないよなぁ、と自戒をこめて記してみるテス
twitter,はてなハイク,wassr,ローカルファイルにメッセージをPOSTします。などの処理は一切入ってません。無保証です。はてなハイク用のパスワードは、はてなログインのパスワードと違います。こちらで確認してください 実行ファイルはこちら ここまで頑張ってだれも注目してくれなかったら寂しいな。id:pbh とか id:ekken とか id:hygienic とかに ID トラックバック送信すれば注目してもらえるかな(笑) 追記(兼言い訳) ぶっちゃけあと1〜2時間もらえれば POST できるもの作れるけど面倒で仕方がない。あと Wasser だか Wassr だかって俺使ってないからテストできん (;´Д`) 追々記 ハリボテソフトに 10users って……あんたらほかにブクマするネタないんかい(;´Д`) 忌々しき事態なので、15users 超えたら中身もちゃんと作ったの公開す
http://d.hatena.ne.jp/oredoco3/20080914/1221385212 に関して すくなくとも「くろすぽすと君」発表時に、「hygienicさんのTwitterXHaikuをRubyで作ってみました」とか書いてあればパクリの烙印は押されなかったと思うぞ、 http://d.hatena.ne.jp/oredoco3/20080914/1221385212#c1221461761 id:ekken さんの言葉を正格になぞると「○○をパクリました!って書いてあるとパクリの烙印を押されない」になっちゃって、ちょっと不思議な感覚ですよね。日本語って難しいです。 要は【一体何を】パクったか/真似したか/参考にしたかに齟齬があると思うのですが、結局のところ id:oredoco3 さんがパクったのって「TwitterXHaiku というソフトを作ったのは id:hygie
次のページ
このページを最初にブックマークしてみませんか?
『SiroKuro Page』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く