argius note

プログラミング関連

develop

ネットワークが切断されたことをアラームで知らせるツールを作る(解説付き)

我が家のパソコンのうちWindows8.1のノートパソコンだけ、ルーターとの相性が悪いのか、2日に1回程度はネットワークが切断されてしまいます。 そのため、2クリックでネットワーク接続を再起動するスクリプトを書いて対応しています。 Windows ネットワーク接…

5つの世界

5つの世界 - The Joel on Software Translation Project JoSはまだ読んだことがなかった。これは読んでおくべき。メモ&コメント。 ソフトウェア開発には、しばしば交わっているがたいていは分かれている、5つの世界があると思う。その5つとは: パッケージ …

ツールを作らない人々

他人の仕事を自動化(つまりシステム開発のこと)させるくせに自分の仕事は自動化させないんですね。 考えてない - しんさんの出張所 はてな編 同じような言葉をどこかで叫んだ記憶が。 コンピュータってのは楽するための道具だってのを分かってない人たちの…

コードとIDの違い

私はこう解釈しているんですが、どうなんでしょう。 コード体系 : ある集合に含まれる要素に対して、属性を表すために付与される情報。 ID体系 : ある集合に含まれる要素に対して、一意に特定するために付与される情報。

技術者ならば

技術者としての心構えを指導するとしたら、こんなことを話してみようか、というのをメモ。 人間ががんばるよりも、コンピュータに如何にがんばらせるかに努力を注ぐべきです。 必要があれば、自分の使っている道具の機能を拡張する方法を知っているべきです…

ツールで安心してはいけない

古くはlint、最近のJavaではFindbugsなどで、プログラムの潜在バグを検出できるけれど、ツールを使っているから「安心」してしまうようでは逆効果と言えるでしょう。ツールを導入しても、人間によるレビューは止めたり省略しすぎたりしてはいけません。 不特…

ソフトウェア開発における初心者

たぶんPHPの流れだと思うが、この日のまつもとさんの日記は良くまとまっていると思う。 で、今は500エラーです。

頭の中のVM(仮想マシン)

プログラミングに慣れてくると、コードを実際の処理系で動かさなくても、どのようになるかがある程度分かるようになる。さらに、コードも実際に書かなくても良くなって、頭の中で書いて頭の中で実行できる。レベルが上がれば、処理できるコードの規模が大き…

上流SEでもプログラミング

ありきたりな話になりそうですが。元ネタ失念。 一般的なSIerでは、ずっと下流工程プログラマでやっていくわけにはいかず、上流SEになってプログラミングから遠のいていく、とか、いきなり上流工程SEでプログラミングレベルが低くて現実無視の設計をするとか…

短く果てしない物語の入り口に立ち思う

今回は言いたいことを、勉めて分かりづらく吐露させていただきたいと思います。というわけで、のっけから意味不明です。 幾ら沢山の人が居ようと、これらの人々の性能*1が極力活かされるような運営をしないと意味がありませんよね。人の営みに非ず、なことを…

実用性が低くても理想を優先したものを作る

実用的な製品は、「仕様どおりにちゃんと動く」ことと、「納期に間に合う」ことが重要なので、開発手順や構造が美しくなくても、改善したいことがあっても、それには限度があります。 だから、実用的じゃない製品、または自分にだけ実用的な製品を作ることに…

品質の価値は

バグを発見し易く、メンテナンス性の高いコードを書いたところで、最終的な評価は変わらず、むしろコーディングに費やす時間が無駄だとまで言われることもあります。こんな話は、割と昔から囁かれていることですが、それでも私はがんばって品質の高いコード…

オブジェクト指向の法則s

@IT:連載:.NETで始めるデザインパターン 第7回 デザインパターンの落とし穴 引用しようと思ってたらどこだか忘れてたのでメモ。

文字列は〜に対する代替としては貧弱です。

今扱っているものの中で、最も最悪*1のアンチパターンは、配列をカンマ区切り文字列にして、String[]→Stringを実現しているところ*2。複合的な要因もあって、少なくともカンマと"null"が例外扱いになる。さらに、これを分解してマップに格納するなんてことを…

Excelによる文書

http://d.hatena.ne.jp/methane/20060711/1152621315 おっしゃる通りで。さらに言えば、Wordも微妙。HTMLなら軽いし、テキストだからDIFFも分かりやすいし。上流の人には扱いづらいという短所もあるけど。 WordもXML化したら、HTMLを操作する感覚で扱えると…

残業はデフォルトではない

残業しないで帰るSEって、やる気ないんじゃない?/Tech総研 ここまで見る目がないと、救いようがないですね。でもありがち。こんな上司の下で働くのは時間の無駄です。

ハッカーと画家 コンピュータ時代の創造者たち

2006.04.15タイトルがインパクト充分ですが、技術本というより、エッセイ集です。話題がバラエティに富んでいて楽しい。描写力に、本職の物書きに劣らないものを感じます。あと、翻訳の質が良いとも感じました。 あと、著者自身も述べていますが、アメリカ文…

Software People Vol.8

プロジェクト管理はさておき、ソフトウェア技術者が持つべき考え方や、仕事に対する心構えについて書かれた記事が勉強になります。 著名な技術書の解説も参考になります。5ページにも渡って解説されているので、どういった内容を扱っているかをかなり詳細に…

ソフトウェア原則

理解しているつもりだけど、説明する自信はないな...。勉強し直し(予定)。

プログラミング自動化がなぜ難しいか

将来プログラミングがある程度自動化されたら、やはりプログラマーは職を追われることになるのだろうか、と最近ふと思った。でちょっと参考にさせてもらったJavaBlackさん(id:JavaBlack:20060331)のエントリからメモ。 国際コミュニケーションを見れば解ると…

技術力を向上させるために

私もまだまだ未熟ですが、技術力を向上させるためにやってきたこと、経験したことを、教わる側の立場も踏まえて書いてみようと思います。おそらく、大部分、「あたりまえ*1」のことしか書いてありません。 知ったかぶりは良くない 知っている人が知らない人…

Javaでなぜつくるのか 知っておきたいJavaプログラミングの基礎知識

読むつもりは無かったのだが、機会があったので読んでみた。 Javaを言語としてではなく、環境として理解させようとする導入の仕方は良い。Javaのメリットとデメリット*1を、歴史的観点や、類似例などを上手く使って説明していると思う。ただ、プログラムコー…

ソフトウェア開発者が得すること・損すること

得すること 自分でソフトを開発するので、ソフトに対する出費がかさまない。 自分で検索や調査ができるので、入門書を買わなくて済む。 自分でxxのxxをxxできるので、xxの心配が要らない。 損すること 出世できない。 どんなにがんばっても、デスマーチを完…

達人を読んで

http://d.hatena.ne.jp/argius/20050714/1121354019 宝の山ですね。これらが実現可能なら、プロジェクトの成功率はとても高くなるでしょう。問題は、プロジェクトメンバーが使えない技術者の寄せ集めで構成されていると、どんなに優れた仕組みを提供しても無…

職人気質を読んで

http://d.hatena.ne.jp/argius/20050714/1121354019 なるほどと言うか、こうあって然るべきである、と思う。(良い方法ならこれじゃなくても良いけど。)ソフトウェア開発に限らず、仕事を楽しくできれば毎日が幸せだ。 採用の超プロが教えるできる人できな…

余波の続き

http://d.hatena.ne.jp/argius/20050715/1121436544 単純作業チームと解析チームに分かれて作業。私は解析側で、あまりにターゲットのシステムがダメすぎてやることがなくなった。

来ました余波が

別のプロジェクトで火を噴いているところへ、3連休に10人投入。果たして鎮火するのか。その代わり、来週4連休希望。

プログラムは「動けば良い」か

「動けば良い」以外の要素は、 パフォーマンスが良い 動きに無駄が無い(メモリ使用量が少ないなどリソースが節約されている) のように、機能に直接関係するものと、 メンテナンスし易い 構造が整理されている 可読性が高い のように、動いているプログラム…

本届く

http://d.hatena.ne.jp/argius/20050712/1121172748 早すぎ。昼間だったので受け取れず。

本を注文した

http://d.hatena.ne.jp/argius/20050610/1118410067 達人と職人。

保守と同時にリファクタリング

カテゴリーあまり関係ないです。 いま触ってるコードは、Javaだけど、汚い。3年も前に作られたから、今のようにeclipseも無いので気持ちはわかるが、一番ダメなのがフレームワークからはずれて独自に処理をしていること。余計なことしているせいで、やらなく…

無謀なフレームワーク導入は「デスマーチ」を招くか

優れたフレームワークは確かにあるのかも知れない。 でも、素人見え的に(つまり非技術者から見て)良さそうに見えても、フレームワークのメリット以上にデメリットが大きくなることまでは分からない。フレームワークを正しく使いこなせる技術者をちゃんと集…

成功しているプロジェクト

少ないが、自分が半年前まで3年間在籍していたプロジェクトは、良かった。これも、プロジェクトマネージャさんが良かったことと、超技術者がいたことが成功につながったと思う。 うまくいっていないプロジェクトも、火消し担当でもしないとなかなか仕事が見…

達人&職人

達人プログラマー―システム開発の職人から名匠への道 達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化 (Ascii software engineering series) ソフトウェア職人気質―人を育て、システム開発を成功へと導くための…