サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
itengineer.hatenadiary.org
契約的プログラミング、というものがあります。 その対義ではないですが、防衛的プログラミングというものもあります。 契約的プログラミングとは、プログラムを作る際にある程度の前提を置いて製造する事を言います。 簡単に例を挙げると、ファイルをオープンして中身を読み込み加工して別のファイルに出力する、という単純なプログラムを作る場合、オープンするファイルが存在する事、ファイルの中身が正しいフォーマットで記録されている事、出力先のファイルが既に存在していない事等を前提として、作るのが契約的プログラミングです。 防衛的プログラミングとは、これらの前提を一切信用しません。オープンするファイルがあるかどうか、記録されているフォーマットは正しいか、無事出力出来る状況が整っているか、などを検査する為の機能も合わせて、プログラムを作ります。 どちらが正しいかと簡単に答えを出せるものではありませんが、仮にバグが見
Eclipse用のプラグインがAdobeから提供されているようなので、早速構築してみました。 Adobeのリファレンスを読むと推奨のバージョンはEclipse3.2なので、今回はEuropaで試してました。 続きを読む 夢中になっている間に家族が寝たので、ヘッドホンを付けて久しぶりに遠慮ない選曲をしてみましたが。。。黒歴史の頃の自分に戻りそうで怖いです。 続きを読む
いきなりですが、「Buriは敷居が高い子」でFAですよね? じゃあBuriが難しい事をしているかというと、構成はなんだか複雑な感じがしますが、ようはエンティティのステータスを順序通り進める、という事をしているだけっぽいです。(もちろんそれだけではないのかも知れませんが) 難しいのは使い方です。 しかも、一般のjakarta-commonsのようなライブラリを使うイメージの使い方ではなく、「自分たちが行う開発という仕事においてBuriをどう位置づけて活用するか」といった難しさです。極論を書いてしまうと、Buriを使うには、対象がまず業務システムである事に加え、プロジェクト、アーキテクチャ、データモデルもろもろをBuriの為に構成し直す必要があります。(もちろん極論だと思いますが、意外に遠くないのではないでしょうか) しかし、ここで気をつけたいのは、では「プロジェクト、アーキテクチャ、データモ
先日のぶり祭りで発表されたBuriEditorことescafeFlowEditorことBuriEditor。 これでBuriを動かしてみました。 入門記1で作った文書管理プロセスのフローを、そのままBuriEditorでもう一度書きます。名前を被らせないよう、パッケージの名前は「文書管理パッケージ3」としておきます。 Before After あとは、src/main/resources配下のburi.dicon.buri-user.diconに以下を追加。 <component name="BuriEngineConfig" class="org.escafe.buri.engine.impl.BuriEngineConfigImpl"> <!--// 以下を追加 //--> <initMethod name="addResourceConfig"> <arg>"editor_docma
ぶり祭りに参加させて頂きました。 聞くところによると相当な応募があった中での抽選で、参加出来たのは相当ラッキーなことだったようです。基本的に宝くじどころかアイスですら「あたり」が出たことのない僕にはとてもとてもありがたい話です。 反面、そのせいで近日中に死ぬんじゃないかとドキドキですw でも、抽選に選んで頂いたということはつまり、参加できなかった人がいるという事。なので参加させて頂いた身として、残念ながら参加できなかった人たちに少しでもぶり祭りの内容を伝えさせて頂く、という責任を果たさないと死ねませんしねw 内容は思っていた以上に濃く、これを書くのにもそれなりに時間を要する有様><・・・と思っていたら、id:nobeans氏が秀逸なマトメをしていて、加えてそれをid:makotanが華麗にマトメていた(http://d.hatena.ne.jp/makotan/20081120#p2)ので
前回作ったBaoと全く同じ動きをするモノを、Baoを使わずに作ってみました。 id:makotanからお勧めしてもらったBuriAutoSelectProcessorを使います。 Baoを使った場合のJUnitをDocumentBaoTestとしたので、DocumentProcessorTestというJUnitを作ります。 以前のBaoを使ったサンプルと同じ事をしようとすると。。。こんな感じになります。 public class DocumentProcessorTest extends S2TestCase { private static final String DICON_PATH = "app.dicon"; @Override protected void setUp() throws Exception { super.setUp(); super.include(DICON
DOCUMENTテーブルのIDがどういった管理をされているか一目瞭然ですが、Buriの動作を少しでも把握する為に、Baoのメソッドを呼ぶ都度データの出力をしてみます。(java-jaでid:makotanが「Buriを理解するにはBURIPATH、BURIDATA、BURISTATEをおさえるべし」と言っていたのですが、取り合えず全部出しちゃいます) (以下、当エントリ文末に張り付けられているログ参照) BuriPathは都度出力する意味なかったですねw BuriDataはデータの追加とともに増えていき、しかし減ることがない、と。 で、ステータス管理はどこでされているのかな、と見てみると・・・どこ?>< 実はBuriStateでBuriDataのIDと一緒にそれっぽく管理してるんだと想像してたのですが、BuriStateのデータを見てみるとそれらしい列がない>< 中身を比較してみても、ほと
前回は、DerbyとS2Daoの例外のエントリでBuri関係なかったですね>< ちゃんとBuriします。モジャコらしくBuriします。 BuriTransactionですが、構成はこんなん。 COLUMN_NAME |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL& - BTID |INTEGER |0 |10 |10 |GENERATED&|NULL |NO INSERTDATE |TIMESTAMP|6 |10 |26 |NULL |NULL |NO VERSIONNO |INTEGER |0 |10 |10 |NULL |NULL |NO で、Daoは[org.escafe.buri.dao.BuriTransactionDao]でそれに対応したDtoは[org.escafe.buri.dto.BuriTransact
前回のエントリに説明不足がちらほらと>< まず、Derbyですが最新のものをダウンロードするとpom.xmlに書いたものとのバージョンに差異があるから絶対動いてやんねーよ的なエラーが出てしまいます。なので、ダウンロードしてきたDerbyのlib/derby.jarをプロジェクト直下のlibフォルダにコピーして、これを使うようpom.xmlのdependenciesを以下のように書き換えます。 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.3.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.escafe.buri</groupId> <artifactId
あまり気負わないBuriの入門記もとい自分用メモ。(気負った割には忙しさにかまけて放置してしまったPythonに学んで。。。w) 元ネタは「基本的な開発の概要Buri-TECHSCORE-(http://www.techscore.com/tech/Seasar/Buri/3.html)」ですが、Buriは1.0を使います。バージョンの変化によるものか、ちょっとずつ差があるのでその差を埋めるためのメモがてら、動かしてみました。 まず、環境の準備。 Maven2を使うと楽です。加えて、Eclipseを使うと楽です。なので、Maven2用のプラグインq4eも必要です。それぞれの入手元はコチラ。あとデータベースも必要です。BuriはサンプルでDerbyを使っているようなので、Derbyもダウンロードしておかないといけません。 - Eclipse - http://www.eclipse.org/
勉強会 実はiKnow!ユーザだったりします、わたくし。 私生活がばたついてから放置してしまっていましたが、その間に色々面白いコンテンツも増えたようですね。 記憶に訴えかけるWebサービスというのは今まで無かったと思うので、iKnow!すげーなと思います。 それ以前に、日本人の1つのコンプレックスの象徴でもある「英語のお勉強」を無償でデキルよ、というだけでも、iKnow!すげーなと思います。 しかも、飛ぶ鳥を落とす勢いのiKnow!でこういった勉強会ができるなんて、やっぱiKnow!すげーなと思います。 結論:iKnow!サイコー この他、オープンソースのYAWLとかOpenWFEるについてのお話もいっぱい(英語で)聞けた。でも不勉強な僕には殆ど分からなかった。。。また急いでなんとかしなきゃいけない課題が見つかりました>< という訳で、会場を提供して頂いたiKnow!ことセレゴ・ジャパン様
恥極まる話ですが、今までもっぱらHTMLのレイアウトはtableタグを使ってました。 ごめんなさい>< 反省というか自戒の為、記録。 tmp1.htmlが今まで通りtableタグでレイアウトを構成したもの。 tmp2.htmlがtableタグを使わないようにしたもの。でも、多分もう少しうまくやればリテラルが減らせるんじゃないかな、と思ってます。 tmp1.html・・・tableタグを使ったもの <html> <head> <style> * { margin: 0px; padding: 0px; } table.buttonlayout { margin: 50px; } table.buttonlayout th { color: white; background-color: blue; border: 1px solid blue; } table.buttonlayout t
id:tech_monkeyさんが昨晩のうちに対応してくれたので、さっそく朝から「チーム内Twitter」を試すことができました。 僕がやった事はだいたいこんな感じです。 JTwitterを稼働させる。 0.9.0をアンインストールする。 続いてインストールした際に作られた(指定した)フォルダを削除。(applicationとmysqlのフォルダが残っているため?) 0.9.1をインストールする。 でも、最初は「MySQLサービスを起動する実行権限がうんたらかんたら」と出たので完遂できず>< レジストリでjtwitterに関するすべてを削除してから再度トライしたら無事起動しました。 が、作者様いわく @itengineer アンインストーラーでコンパネからはきえるんですが、サービスが残るケース?があるようなんですよね。その場合「sc delete jtwitter」と打ってで消してもらえる
[ソフトウェア開発][memo]タグ3部作の最終回(の筈)。 結局、元請とか下請という関係で仕事をしても、id:onkの人が言うように 目先の納品・検収>>>(越えられない壁)>>>品質・生産性,となってしまうとじり貧なんだよね。信頼を食いつぶしていく生活はもうコリゴリだ。 http://onk.blog.drecom.jp/archive/149 と思ってしまう訳で。 ここで腐ってしまうか、ヤルゾーとなるかは人それぞれなんでしょうけど腐ってしまったりすると 自分で枠を決めてしまう人間には興味ありません http://onk.blog.drecom.jp/archive/149 と言われてしまうんですよね。こう言われるともう「突き放される」というより「廃棄される」って感じw でも先日、下請になる企業はお客様の「課題」や「問題」との距離があるので、元請企業ほどの責任感を持つに至らないケースが
下請にいる限り、本当に責任感を感じて仕事をすることは難しいんじゃないかな、と。 個人のレベルで「しっかりやろう」「迷惑をかけないように」と考えて頑張るというのは可能。でも、作ってるシステムが良いものかどうか実際日々の業務で使う訳じゃないし、そのシステムで得られる効果も損失もダイレクトに自分に響かないという「距離感」は絶対的にある。 加えて、本当の下請だと受託した開発にしくじったとしても、その開発は元請のビジネスでありミッションなので、そこで「失敗した要因の大多数」を下請の人間が握っていたりしなければ、ダメージを受けるのは元請であって下請ではない。もしかしたら、人を増やさなければならなくなるなど、逆に下請にとってオイシイ展開になるかも知れない。 良し悪しはともかく、下請企業がそういうビジネスモデルで動いているなら、下請企業に所属する以上そういうロールで仕事を展開させようとせざる得ないし、そも
前回までのあらすじ http://d.hatena.ne.jp/bose999/20080408 http://d.hatena.ne.jp/t_yano/20080407/1207596214 http://d.hatena.ne.jp/bose999/ http://d.hatena.ne.jp/t_yano/ http://d.hatena.ne.jp/itengineer/ http://d.hatena.ne.jp/gothedistance/ http://d.hatena.ne.jp/fd0/ あと、見つけ次第追記。 http://coji.s9.xrea.com/ http://d.hatena.ne.jp/nowokay/ http://d.hatena.ne.jp/happy_ryo/ http://d.hatena.ne.jp/t_ishida/ http://d.h
超緊張しました。 もうひとつ仕込んできた【現場的「オブジェクト指向」について】を出さなくて良かったのか悪かったのか、これから数か月かけて悩みます。 (追記) LT資料を以下に置きました。 http://groups.google.co.jp/group/197xs/files?hl=ja
行ってきました。 なんだかんだとMaven以来のjava-ja参加でしたが、やはりjava-ja。刺激ハンパネェ。 みんなノートPC使ってパチパチメモしていたみたいでしたが、色々あって買えなかったので必死に手帳にメモしてました。既に色々なところで立派な感想が出てしまっているので、僕はその手帳をここに清書する+αくらいで。 id:habuakihiroさまの部 スーツとMAはどうも違うものらしい 本当のエンド・ユーザ 対価としてのお金 バリュー・チェーン 資本と負債は制限アリ 売上≠利益 資産を運用する費用 利益=お客様の意思決定次第 売上→お買上 ゼロ-費用+御買上=利益or損失 利益を上げる以下の方法の中で、こちらの意思で決められるのは「原価を下げる」事だけ。 販売数を上げる 原価を下げる 単価を上げる 回転率を上げる (単価-原価)×販売数×回転率=利益 お客様を納得させる 特徴/他と
自分はいわゆる「書けないプログラマ」です。 だから、「(書けるけど)書かないプログラマ」になりたいと思っています。 僕の周りには僕も含めて少なからずこう思っている人がいるんですが、素直に勉強を始めている人とか、コンプレックスに感じすぎているのか妙な事を言い出している人とか、その転化のしかたも色々です。 自分も、実はコンプレックスに感じているのは否めません。*1 結婚をして、子どもを二人も授かってから、それが焦りに感じてきました。かと言って家族を切り捨ててしまうと、「何のために頑張るか」という筋がおかしな事になってしまいます。なので、家族を切り捨てるという選択肢は絶対的にあり得ない。でも、例えば子どもが寝るまでネットに繋げない(というか、マシン自体立ち上げられない)とか、「創るJava」を読んでいると挿絵のロボットにKidsが反応して危うく本をぐしゃぐしゃにされそうになるとか、こういう事はス
再告知です。 http://d.hatena.ne.jp/imai78/20090301 数日分サボってしまっているのでまとめて。 Ebiスゲェ! / 資料レビュー会にお邪魔してきました。 http://d.hatena.ne.jp/imai78/20090219 プチjava-ja。 http://d.hatena.ne.jp/imai78/20090222 セッション一覧が公開されました! / 入門記14:劇的!ビフォア、アフター!(再チャレンジ編) http://d.hatena.ne.jp/imai78/20090223 第一回buri-ja勉強会 http://d.hatena.ne.jp/imai78/20090225 http://d.hatena.ne.jp/imai78/20090215/1234693425 http://d.hatena.ne.jp/imai78/20
以前、やたら持ち上げつつ、具体的な事柄については一切触れなかったTeedaについて。プライベートが忙しい&仕事が例によって(ry&実は色々お勉強中でした。少しだけ成果が出たので、それを書きます。 Teedaが非常に魅力的に思えたので早速試してみようと思ったのですが、Tomcatプラグインの使用を前提としていたのでちょっと四苦八苦してしまいました。というのも、自分は仕事の関係でColdFusionをIISで使えるようにしてあったり、以前に書いたMediaWikiを使う為にサービスとしてではないにしろApacheを立てていたり、とWebサーバが乱立してましてここにさらにTomcatをインストールするのが嫌でした。Strutsなどで遊ぶ際もWTPを使って何とかインストールせずに済ませてましたので、何とかTeedaもWTPで使えないもんか、と思った訳です。 で、試してみたんですが、自称職人志向とは
このページを最初にブックマークしてみませんか?
『id:itengineerの思い悩むblog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く