エンジニアが発信する【2006年09月】の記事です

エンジニアが作る最新ITブログ トップ>【2006年09月】

2006年09月30日

データ型のアラインメントとは何か,なぜ必要なのか?

最終更新:2007/01/15(月) 12:38 この記事の内容は加筆修正の上,↓こちら に移動しました. http://www5d.biglobe.ne.jp/~noocyte/Programming/Alignment.html 関連ページ データ型のアラインメントとは何か,なぜ必要なのか? 複合データ型 (配列,構造体,共用体) のアラインメント 構造体のアラインメントに関する誤解 sizeof とアラインメントの関係 (sizeof がアラインメントの倍数に切り上げって知ってます?) C/C++ マクロ集 (処理系・OS 非依存) 型のアラインメントを返すマクロ オフセットのアラインメントを調整するマクロ malloc() ...続きを読む

2006年09月30日

印字レイアウト

さて、仕事も大詰めになってきました。


俺は仕事もあらかた終わり、プログラムは作ったけど詳細設計書が無いもの(*1)があるのでそれを作っていたところ・・・


ん?


あれ?


そういえば、印刷(*2)ってどうするんだろう?


仕様ってあるのかな??


ってか、この時期にタスク漏れって厳しくない?



とりあえず、上の人(*3)に仕様を聞きに行ったら


完全に仕様からもれてました。


との事。

しかも、気づいた手前自分がやらなければならないとの事。


俺、自分の仕事はほぼ完璧にこなしてるんだけどなぁ・・・。

上が足を引っ張ってどうするんだろう??


まぁ、いいや。

とりあえず、印字の仕様を固めてもらってる間に印字のツールとかがあることを確認しよう。



・・・

・・・・


で、確認の結果。

印字のツールは結構前に作成されていることが分かった。


しかし・・・


めちゃめちゃ使いにくい!!!


ツールって言うからにはユーザーインターフェースをもう少しやさしくしない??

レイアウトあわせるためにテストプリントを何度も行わなければならないの??


普通、この項目はこの辺に印字jして、この項目はこの辺に印字して・・・

と言った具合にGUIで印字ツールって使わない?


なのに・・・

それを・・・


意味不明なXML(*4)データで定義するなんて!!


XMLデータを使うのは良いけど、手動でXMLデータを作るのってかなりきつくない?

で、作ってみてから印刷・・・。レイアウトがおかしかったらまたXMLデータ操作しなおし・・・。

(しかも、印字レイアウトを設定するだけのXMLが複雑・・・)


いやぁ~~。

そんなので作ってたらどれくらいかかるか分からない。

こんなの作るのに一ヶ月以上かけてるなんて信じられない・・・。


と言うことで、、、


俺が二日かけてかなりましな印字ツールを作ったよ。

(GUIでレイアウト設計できるし、印字用データ変換も一発だ。)


時間が無いから、コードが若干汚いがこの際贅沢言ってられない。


こんなものに一ヶ月もかけて・・・

もったいない。


ん?

ちょっと、自慢ぽいな。


************************************

難しく考えることは簡単で

簡単に考えることはきわめて難しい

             -カーバー・ミード-

************************************


この言葉を実践していれば、みんなスキルアップすると思うんだけどなぁ。

考えたこと無いのかな?


この言葉に関してはまたいつか、詳しく書いておこう。

自分のためにも心に刻んでおくぜ!


-------------------------------------------------------------

*1・・・詳細設計を行わないでプログラムを作る事は基本的には無いのですが、忙しくていきなり製造をする場合や上の人が認識していない仕事を行った場合などに発生します。

*2・・・その名の通り印刷機能です。

*3・・・ある意味お客様。

*4・・・CSVとデータベースの合いの子みたいなもので、データを格納する技術のひとつ。

2006年09月30日

2006年9月の目次

2006年9月の記事一覧です。


・・・私のお勧め記事

・・・コメントが多い記事


初めての日記 (傲慢SEの戯言)

なんちゃってSEとは (なんちゃってSE)

プロセスの継続的改善 (傲慢SEの戯言)

してやったり (傲慢SEの戯言)

C#のスコープ (なんちゃってSE)

年上の後輩 (傲慢SEの戯言)

喫煙所 (傲慢SEの戯言)

もちはもち屋? (なんちゃってSE)

あ~。言いて~!!! (傲慢SEの戯言)

姫と呼ばれたSE(おっさん) (ありえないSE)

DLLの仕様 (SEの実態)

博学なSE (出来るSE)

DLLの仕様2 (SEの実態)

仕事が無い (傲慢SEの戯言)

SEってオタク? (SEの実態)

他のチームで作ったプログラムが使えるから・・・ (なんちゃってSE)

SEの結婚 (SEの実態)

共通DLL (なんちゃってSE)

開発プロセス (SEの実態)←初コメントがついた記事w

一生懸命書いたブログが!! (傲慢SEの戯言)

オブジェクト指向 (本の紹介)

印字レイアウト (なんちゃってSE)



【2007年7月に本記事を読み返してみた筆者のコメント】

記事がかなり拙い文章だ。

しかも、内容が薄い。

良くこれで満足して書いてたなぁ・・・。

でも、何事もやってみる事が大切な事であり、それによって今のモチベーションが生まれたと思うとやっていて良かったと思う。


もし、この目次をみてこれからこの記事を読もうと考えている奇特な方へ


相当拙い記事なので覚悟していてください。

2006年09月29日

メタボリックなソースコード

あるAccessVBAのコードを見ていて「こりゃ、無駄な処理が多いなー。ぜい肉落とすか!」と思った際にひらめいた。

こういうプログラムをスパゲッティコードという命名に倣って「メタボリックコードと呼ぶのはどうだろう。ここではメタボリックを余計で要らないもの、くらいの意味として捉えている。


メタボリックなコード、などと間に「な」を入れたりするのも自由。

用例として

・システムを修正する際に「えらくメタボリックですねえ。治療しましょう。」

・「この業務プロセスはメタボリックでは?」

・「このシステムは既にメタボリックだから、捨てるという治療方針を取れば運用コストが削減できますね。」


メタボリックなソースコードは多い。業務の合間に少しづつ治療していく所存である。


2006年09月29日

Specialジェネレータ

Ruby on Railsで日本語のインターフェイスを作るにはいくつか方法がありますが、そのうちの一つに

Specialジェネレータ

があります。

ダウンロード元:
http://wota.jp/svn/rails/plugins/branches/stable/special

使い方は追記します。
タグ:Rails special

2006年09月29日

いつトランザクションが解放される?

これは先日作っていたシステム。


ExcelからADOを使ってSQL Serverにアクセスしているシステムを作った。

テスト時はさくさく動いたが、顧客にテストして貰った際にレスポンスが悪かった。なんのことはない。テーブルにロックがかかっていたために相違ない。


ところが、確認してみると、トランザクションを開始した後、コミットやロールバックを遅延させているところはない。


第三者に意見を求めると「何が影響するか分からないので、ADOオブジェクトをこまめにNothingしてみてはどう?」という意見が出てきた。へ?馬鹿げてるぜ、とは思いつつもそれなら説明がつくよな、と試してみた。


あれあれ、なんでこれですんなり行ってしまう?と脱力してしまった。


これはデータベースにもよるかもしれない。もし情報をお持ちの方がいればコメントかトラックバックを。

2006年09月28日

大抵必要なRails日本語化の最初

Ruby on Railsのプロジェクトを日本語で利用するには、まず

config/environment.rbの一番上に追加。


$KCODE = 'utf8'



app/controllers/application.rbに追加。


after_filter :set_charset

def set_charset
content_type = @header['Content-Type'] || 'text/html'
if /^text/\/i//.match(content_type)
@headers['Content-Type'] = "#{content_type}; charset=utf-8"
end
end



何を置いてもまずはこれです。
タグ:日本語 Rails

2006年09月28日

Subversionでのファイル管理

RailsプロジェクトをSubversionにインポートした時に、バージョン管理しないディレクトリやファイルを設定します。



$ svn propset svn:ignore "*.log" log/
$ svn up log/
$ svn ci -m "ignore log files"
$ svn rm tmp/*
$ svn propset svn:ignore "*" tmp/
$ svn ci -m "ignore tmp"

$ svn mv config/database.yml config/database.yml.example
$ svn propset svn:ignore "database.yml" config/
$ svn up config/
$ svn ci -m "ignore database.yml"


と、やってやれば

だいたいオッケ
タグ:ignore Rails

2006年09月28日

ソートミス 数字と文字

2000年対応のプロジェクトで銀座の外れで仕事をし始めてまもなくの頃。
COBOLソースでヤバそうな箇所をコンパイルリストを見ながらチェックするようにとの指示だった。蛍光ペン必須。


COBOLはデータ定義する部分と処理を記述する部分が分かれている。行番号も付加されており、コンパイルオプションにもよるのだが、変数定義部には処理で使われている行番号が、処理には使われている変数の定義行番号が、それぞれ行の右側に羅列される。

コンパイルリストをPCにエクスポートし、この行番号を利用してVBAで2000年問題の対処候補を絞り込めるだろうと提案し実装した。処理さえ出来てしまえば簡単である。あとは帰りに実行しておけば朝には怪しい箇所にチェックを付けたリストが保存される。


しばらくそれで行っていたが、ある時「なんかこれ、引っかかってきてないんだけれど」という指摘を受けた。

データを分解し、行をソートしてマッチング処理なんかをしていたのだが、ソート順が「文字順」になっていたのだ。


どういうことかというと、11 と 2 ならどちらが大きい?と判定させた場合、数字順なら 2 だが、文字順だと 11 が小さいと判断されてしまうのだ。行番号を利用して「数字順」に並んだという前提で処理をしていたため、いわゆる順ファイルのマッチング処理で網羅できなかったのだ。セルの設定で何とでもなるみたいだが、当時はミスってしまった。


Excelでソートをかける際、そういう落とし穴にはまらないようご注意を。


エンジニアが作る最新ITブログ トップ>【2006年09月】

メンバー紹介

タグパネル

ランキング

エンジニアが作る最新ITブログ DODA