SEには英語辞書が必需品
プログラミングの実装やデバッグを円滑に行うには、少なからず変数名やクラス名のネーミングが影響すると思う。変数名やクラス名が実際の利用内容とズレていると混乱の元凶。日本語のローマ字表現も最悪。どれも似たようなアルファベットの並びになってしまい、分かりにくいことこの上ない。10年くらい前の業務アプリではローマ字表現もまかり通っていたが、文字の読み違いによるケアレスミスに毎回、遭遇したことを思い出す。この時代はなんとものどかな時代だった。いまやインターネットの普及で技術者は海外の英語ドキュメントを読むのが常識。英語が分からないから日本語のローマ字表現を使おう、なんて言ってるようでは通用しない。
しかし日本人にとって微妙なニュアンスの違いを適切な英単語で表現するのは難しい。和製英語で恥ずかしい思いをするのも良いと思うが、やはり海外で通用するエンジニアを目指したい。そう思うと英語辞書は必需品。オンラインの翻訳サービスも使えるが、微妙なニュアンスの違いを調べるにはやはり“英辞郎 ”を傍らに置いておきたくなる・・・。
しかし日本人にとって微妙なニュアンスの違いを適切な英単語で表現するのは難しい。和製英語で恥ずかしい思いをするのも良いと思うが、やはり海外で通用するエンジニアを目指したい。そう思うと英語辞書は必需品。オンラインの翻訳サービスも使えるが、微妙なニュアンスの違いを調べるにはやはり“英辞郎 ”を傍らに置いておきたくなる・・・。
数字が読めない
悲しいことに数字が読めない。日本語の数字の単位が4桁ごとに変化するのに対して、欧米では3桁単位、桁区切りも3桁単位に入れる。理屈ぬきに覚えるしかない。最初のカンマはthousand(1千)、2つ目のカンマはmillion(100万)、3つ目のカンマはbillion(10億)、4つ目のカンマはtrillion(1兆)。4つ目は日本語と一致した。
もう一度、
もう一度、
thousand・・・1千しつこくもう一度、
million・・・100万
billion・・・10億
trillion・・・1兆
1兆, _ _ 10億, _ _ 100万, _ _ 1千, _ _ _では、10,000,000は?じゃー、100,000は?日常的に数字の計算をしてないとなかなか慣れない・・・。
Excelで背景色を1行ごとに色違いにする方法
Excelで1行ごとに色違いの背景色を設定する方法。条件付書式を使う。
表の行と列を罫線で区切ると格子状になって視認性が悪くなってしまう。なので行か列のどちらかの区切りには罫線を使わず、1行(または1列)ごとに背景色を変えるとスッキリする。行に対して行うか列に対して行うかは内容次第だが、雑誌やカタログに掲載されている表をよく見てみると、少なくとも行と列の罫線で単純な格子状になっていることはない。
・条件付書式の条件として、次の式を与える。MOD関数は与えられた引数の割り算を行い、その余りを返す関数。割られる値にROW関数を与えることで、その行番号を2で割ることになり、結果として1行ごとに1と0が返ることになる。1が返ったときに書式が適用されるので、1行ごとに色違いの背景色となる。
= MOD(ROW(), 2)
・条件を満たすときの書式として、背景色に薄めの色を与える。
表の行と列を罫線で区切ると格子状になって視認性が悪くなってしまう。なので行か列のどちらかの区切りには罫線を使わず、1行(または1列)ごとに背景色を変えるとスッキリする。行に対して行うか列に対して行うかは内容次第だが、雑誌やカタログに掲載されている表をよく見てみると、少なくとも行と列の罫線で単純な格子状になっていることはない。
ムービー初心者の強い味方、QTConverter
最近、ケータイでムービーを撮るようになったのだが、ムービー初心者が出ばなをくじかれそうな落とし穴があった。FOMAやauで撮った3gp、3g2、amc形式の動画ファイルは、Windows Media Playerで再生できないようだ。ましてやWindowsムービーメーカーで試しに編集してみようものなら、avi形式に変換しなければならない。そんなときにQTConverterは単純明快、素晴らしく初心者にやさしいツールだ。様々な動画ファイルへの相互変換が可能になっている。
QTConvertor - Hoppysoft
QTConvertor - Hoppysoft
Visioの代用にDia
Microsoft Wordと親和性の高い図形作成ツールといえばVisioだが、文書作成の支援ツールと考えると、これがなかなかお高い。社内でひとりVisioを使ったところで、他のスタッフと連携できなくなってしまうのでこれも問題。かと言ってOfficeの描画機能では辛いところ。何かわりとスタンダードなものはないかと探していたところ、Diaを見つけた。
DiaはGTK+ベースのGPLライセンスなドローイングソフト。Windowsユーザーには取っ付きにくいユーザーインターフェースだが、Visioに近い汎用的な図形を作成できる。DFD図やER図、画面遷移図あたりなら標準テンプレートを試行錯誤して表現できる。ネットワーク構成を描くテンプレートも備わっているので、このあたりはOfficeの描画機能以上の表現をサクッと実現できるだろう。2007年4月のリリースでバージョン0.96.1。まだまだ進化してくれるのだろうか?
Dia - live.gnome.org
DiaはGTK+ベースのGPLライセンスなドローイングソフト。Windowsユーザーには取っ付きにくいユーザーインターフェースだが、Visioに近い汎用的な図形を作成できる。DFD図やER図、画面遷移図あたりなら標準テンプレートを試行錯誤して表現できる。ネットワーク構成を描くテンプレートも備わっているので、このあたりはOfficeの描画機能以上の表現をサクッと実現できるだろう。2007年4月のリリースでバージョン0.96.1。まだまだ進化してくれるのだろうか?
Dia - live.gnome.org
ゲイン/サーソン式のDFD表記
業務におけるデータの流れを表記するDFD図(データフローダイアグラム)。その表記法のひとつ、Chris GaneさんとTrish Sarsonさんのゲイン/サーソン式。データストアの左側や処理の上下の仕切り内には識別子やアクターなどを記述できる。特に記述しない場合は仕切りを省略しても良いみたい。


デマルコ式のDFD表記
業務におけるデータの流れを表記するDFD図(データフローダイアグラム)。その表記法のひとつ、Tom DeMarcoさんのデマルコ式。


executeはエクゼではない
「プログラムを実行する」の英語、executeの発音は[エグゼキュート]だと思っていたが、辞書で調べてみたら[エクセキュート]だった。略語でexeやexecと書かれていると、[エグゼ]や[エグゼック]と読んでいたが、それだとexecutive[エグゼクティブ]の略語になってしまう。つまり「役員」ってこと?
IT業界は3Kに7K
IT業界は「きつい、帰れない、給料が安い」のニュー3K。学生にとても不人気らしい。これに加えて「規則が厳しい、休暇がとれない、化粧がのらない、結婚できない」の7K。すばらしい!あまりにも的確だ!しかしまぁー、こんな3Kや7Kを右から左へ受け流しながらIT業界を漂っている私はかなり“変人”だと思う。それどころかこれは願ってもないチャンスだと思っている。
実際、今の世の中を見渡してみると、あらゆる物にソフトウェアが関与している。ソフトウェアは物理的なカタチとして現れないので日常生活の中で気が付かないが、確実に人間社会を取り囲んでいる。その依存度がより大きくなり、より一般の人々の間で身近に使われるようになると、IT技術者の希少性が高まり、3Kや7Kが一機に逆転するに違いない。そこにチャンスがある。まだまだIT業界そのものが古い体質なので表面には現れていないが、もう一部の技術者は密かにその恩恵を受け始めているのではないだろうか?そんな技術者は3Kや7Kを右から左へ受け流している・・・。
実際、今の世の中を見渡してみると、あらゆる物にソフトウェアが関与している。ソフトウェアは物理的なカタチとして現れないので日常生活の中で気が付かないが、確実に人間社会を取り囲んでいる。その依存度がより大きくなり、より一般の人々の間で身近に使われるようになると、IT技術者の希少性が高まり、3Kや7Kが一機に逆転するに違いない。そこにチャンスがある。まだまだIT業界そのものが古い体質なので表面には現れていないが、もう一部の技術者は密かにその恩恵を受け始めているのではないだろうか?そんな技術者は3Kや7Kを右から左へ受け流している・・・。
GPLライセンスの定義
GPLライセンスはフリーソフトウェアなライセンスと考えられているが、具体的なところを把握しておく必要がある。まずGPLライセンスのソフトウェアを入手して、実行することは自由だ。また改変することも許され、それ故にソースコードも入手できる。さらに複製物の再頒布も認められている。ただここからが要注意。コピーレフトという考え方が組み込まれていて、再頒布物にもGPLライセンスが適用される。つまり再頒布物のソースコードも入手できる状況におかなければならない。
ではGPLライセンスなオープンソース・ソフトウェアの一部に改変を加えたものを実行し、その上で実現される機能をサービスとして提供している場合は、改変したソースコードを公開しなければならないか?どうやらコピーレフトの考え方としては、出力物に対して適用しているのではなく、そのソフトウェアそのものの再頒布を指している。つまりGPLライセンスのソフトウェアを利用・改変したソフトウェアで実現しているサービスだからといって、そのソースコードを公開しなければならない訳ではない。
ではGPLライセンスなオープンソース・ソフトウェアの一部に改変を加えたものを実行し、その上で実現される機能をサービスとして提供している場合は、改変したソースコードを公開しなければならないか?どうやらコピーレフトの考え方としては、出力物に対して適用しているのではなく、そのソフトウェアそのものの再頒布を指している。つまりGPLライセンスのソフトウェアを利用・改変したソフトウェアで実現しているサービスだからといって、そのソースコードを公開しなければならない訳ではない。
バナーサイズの国際規格
バナーサイズには国際標準があるようだ。IAB(Interactive Advertising Bureau)という機関がバナーサイズのガイドラインを定めていて、レクタングル&ポップアップ、バナー&ボタン、スカイスクレーパーとカテゴリー分けされている。
300 x 250: Medium RectangleIAB(Interactive Advertising Bureau)
250 x 250: Square Pop-Up
240 x 400: Vertical Rectangle
336 x 280: Large Rectangle
180 x 150: Rectangle
300 x 100: 3:1 Rectangle
720 x 300: Pop-Under
468 x 60: Full Banner
234 x 60: Half Banner
120 x 90: Button 1
120 x 60: Button 2
88 x 31: Micro Bar
120 x 240: Vertical Banner
125 x 125: Square Button
728 x 90: Leaderboard
160 x 600: Wide Skyscraper
120 x 600: Skyscraper
300 x 600: Half Page Ad
日本語のWHERE条件がヒットしない
Tomcat5.5 + MySQL5.0の環境でMySQL Connector/J(JDBCドライバー)越しに日本語のWHERE条件を発行したところ、これがなんと全くヒットしない。日本語ではなくアルファベットなら問題ない。どうやら文字コードが一致していないみたいだ。
ログを見てみると SET NAMES utf8 は実行しているようだが、この場合はこれだけではダメみたい。MySQL Connector/JのcharacterEncodingを明示的に指定してみた。(省略すると"autodetect"となるようだが、それではうまく行かないようだ。)
ログを見てみると SET NAMES utf8 は実行しているようだが、この場合はこれだけではダメみたい。MySQL Connector/JのcharacterEncodingを明示的に指定してみた。(省略すると"autodetect"となるようだが、それではうまく行かないようだ。)
<Resource name="jdbc/ClassioleDB" auth="Container" type="javax.sql.DataSource"Connector/JのDriver/Datasourceクラス名、URL シンタックス、および構成プロパティ
username="xxx" password="xxx" driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/xxx?autoReconnect=true&noDatetimeStringSync=true&characterEncoding=UTF8" maxActive="8" maxIdle="4"/>
カンプとかモックとかドラフトとか
カンプとかモックとかドラフトとか、どれもよく似た言葉。カンプは広告や印刷の世界で制作物のデザインやレイアウトも含めた全体像を示した見本のこと。モックはモックアップ・モデルの略で、外観を実物そのものに似せた模型のこと。ドラフトは文書や規約などの草案のこと。最近はどれもソフトウェア開発のなかで登場する言葉。
MySQLにクエリログを出力する
Windows版のMySQLを何も深く考えずにインストールすると、そのままではログが出力されない。ログを出力するためにはMySQLデーモンを起動するときにオプションを与えれば良い。
バイナリーログ: --log-binもっと簡単に出力するには、MySQL Administratorツールの[Startup Variables]で、[Log files]タブの[Activate Logging]にあるチェックボックスをチェックすると良い。
エラーログ: --log-error
一般クエリーログ: --log
スロークエリーログ: --log-slow-queries

