エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2010-01-01から1年間の記事一覧

Version1.5.0について書こうと思っているところ。

3ヶ月前にポストしたエントリで。1.4.0で変わったところをあらためてまとめようと思っていたのだけれど。そもそもコンパイルエラーになるという話で終わってしまいまして。 そうこうしているうちに、先月には1.5.0がリリースされてしまいまして。そんなわけ…

What is this?

一応JavaScriptで動くコードを書けたというのに、thisがいまひとつ理解できていなかったので、いろいろためしてみた。 使った環境は。Mac OS 10.5 + Safari 4です。 一番外側のスコープから見えるthisはなにか? document.writeln(this); 結果。Windowだった…

品質

少し前のことですが、下記のエントリを拝見して品質について考えていました。ようやく少しまとまってきました。品質に対する意識の違い - Basic おおむね、というか、ほとんど同意見。 ただ、品質のとらえ方が違うかな、と思いました。 以前にも紹介しました…

名刺をサルのように取り込んでいた

iPhoneに替えて10日ほど経ちました。手放せなくなってます。いままではわたしにとって計帯電は絶対の必需品というわけではなく、携帯電話の端末を持たずにでかけることも多かったんですが、いまは出かけるならiPhone持たないと、という気分になってます。 た…

evalできなかった本当の理由

IE6でevalが失敗すると昨日のエントリで書きましたが。 解決しました。あまりにしょうもなくてわざわざこうして書くのも恥ずかしいほど。昨日、evalが失敗するといって書いたコード。あれは失敗しないコードでした。失敗するコードはこう。 var s = "{ foo: …

なぜevalがエラーになる?

Q:JavaScriptの一番難しいところは? A:Microsoft Internet explorerでもまともに動くようにすること …と、思わずTwitterでツイートしてしまいました。 自宅ではMac+Safari、ときどきFirefox、という環境でJavaScriptのコードを書いて、一通り動くようになっ…

スマートフォンに対する考え方を改めないといけない、かもしれない

携帯電話の端末が故障しました、のその後。 現象が出るようになって1ヶ月余り。とうとうほとんど表示が出なくなってしまいました。だましだまし使おうと思っていたのだけれど、さすがに観念。機種変更しました。もちろんiPhone。 機種変更の手続きがおわり…

JavaScriptでチャットを書いていた

…で、いまもまだ書いている。書き終わらない。やりたいことに技術がまだついてきてない。精進しないと。 2010/04/26時点はこちら、最新はこちら。 必要なもの。 クライアント側: JavaScriptとCookieが使えるブラウザ サーバ側: PHP4 or PHP5 SQLite3 php-s…

携帯電話端末は、もうシンクライアントにしてしまっていいんじゃなかろうか

携帯電話の端末がまた故障しました。半年前と同じで表示がいかれました。本体側と液晶側を繋ぐフレキシブルケーブルか、そのコネクタがいかれた模様。その端末はメーカーが初めて出したディスプレイスライドタイプの端末。前回故障したときにも感じていたの…

勢いで購入

「電子書籍の衝撃」(佐々木俊尚 著、ディスカヴァー・トゥエンティワン刊予定)の電子書籍版が期間限定(04/14正午まで)で110円で購入できます。勢いで購入してしまいました。 詳しくはディスカヴァー社長室blogで。ディスカヴァー社長室blog: 電子版と紙の…

JavaScriptに手を出した

ほんと節操がないと、我ながら思ったりもするけれど。 ひと月ほど悩んだあげくに入門書購入。 JavaScriptってLuaに似てる感じがする。LuaがJavaScriptに似てるのかな?初めてのJavaScript 第2版作者: Shelley Powers,武舎広幸,武舎るみ出版社/メーカー: オラ…

スーパーセーブとデスマーチ

3月になり、Jリーグ2010シーズンも開幕し、わたしもサポーターをやってるチームもぼちぼちの戦果を挙げているところなのですけれども。心強いのは優秀なゴールキーパーがゴールを守っているところ。先週の試合でも危機的なシーンを何度も救ってくれました。 …

Fibonacci series by C++ without semicolon

ねたにしても風化しかかってますが。思いついたので。 #include <iostream> int main(int, char* []) { if(int n0 = 0) {} else if(int n1 = 1) if(int n2 = 1) if(int i = 0) {} else while( i < 20 && ( std::cout << n1 << std::endl, n2 = n1 + n0, n0 = n1, n1 = </iostream>…

FizzBuzz by C++ without semicolon

C++でもセミコロン無し - How to disappear completely こういうのはどうでしょう? #include <iostream> int main(int i, char* []) { while( (i % 15) == 0 ? std::cout << "FizzBuzz" << std::endl : (i % 5) == 0 ? std::cout << "Buzz" << std::endl : (i % 3) ==</iostream>…

実装方法についての考察:mixinについて

C++

今回のビット操作を実装していて気付いたことをメモ。おもに明日の自分のために。 今回、勢いで実装をはじめたことで、みごとにコードの重複が発生してしまいました。 古い実装では数値を表すSignedとUnsignedという二つのクラステンプレートを用意していま…

ビット操作:地道に更新中

わざわざここに書くほどのことでのないのだけれど、地味に地道な更新をかさねてて、ちとくじけそうになるので、地味に地道な様子を記録しておく。最新:GitHub - mattsan/BitOperation: operating bits classes (2010/03/20時点:GitHub - mattsan/BitOpera…

ビット操作の構造をガラット変更

C++

コードの重複がひどいことになってきていたので、コードを縮める方法を今週は考えていました。 で、その結果、ガラットかわりました。最新:GitHub - mattsan/BitOperation: operating bits classes (2010/03/19時点:GitHub - mattsan/BitOperation at 0e9…

ビット操作のパフォーマンス測定

C++

コツコツと更新してここまで来ました。最新:GitHub - mattsan/BitOperation: operating bits classes (2010/03/14時点:GitHub - mattsan/BitOperation at cbd369981a0ec5fd251e57f99877f45401be3c46)ここでちょっとパフォーマンス測定。 使ったコードは、…

「動いているコードをいじらない」のは誰?

「動いているコードはいじるな」という言葉、いろんな場でいろんな意味で取り上げられますが。ところで「いじるな」と言っているのは、誰? 今週は静的解析ツールの解析レポートを見ていました。きっかけは、時間ができたので何気なく結果を見てみただけだっ…

ダークサイド

C++

まずは自らのツイートの引用から。 operator , (コンマ演算子)のオーバーロードが…、わたしをC++のダークサイドへといざなう…。…ちょっとダークサイドをのぞいてきます…。http://twitter.com/emattsan/status/9974443836 「見よダークサイド見よダークサイ…

ビットをもっと自由自在に扱えるようにしてみた。

C++

目鼻がつきました。 GitHub - mattsan/BitOperation: operating bits classes(2010/03/10追記:上記のリポジトリは随時更新しています。この記事を書いた当時の内容はこちらへ) これはなに? 以前にも書いたことがあるように、いまの仕事では通信がらみとい…

「意図どおりに動く」では半分

現在のプロジェクトのソースコードを静的解析ツールにかけた結果がレポートされたので、昨日はその内容を見ていました。 ツールが警告を出した場合、警告が出た箇所にどのように対処するかを報告しないといけないのですが、その報告の中に「現状とする/意図…

ビットをもっと自由自在に扱いたいと思った。

C++

…と思ったので、思いついたアイディアをコードにしているところ。 最初に考えていた機能は一応実装できた。ただまだ検証が不十分なのと、パフォーマンス(スピード、メモリ使用量)が不明なのでまだまだ途中。 一応公開。解説はまたのちほど。 GitHub - matt…

googletestはPOSIX規格上で動作させることが期待されている

(googletestについて知りたい方はこちらのエントリでまとめています)このあいだ書いたように、googletest 1.4.0では、Cygwin上で-ansiオプションをつけてコンパイルするとエラーになります。 よくわからないので中の人に訊いてみました。というか、Google …

googletest 1.4.0にていささか混乱中

C++

googletestを検索してこのブログを訪れるひとが多くなったようなので、前回バージョン1.3.0のときに書いた時以降の新しい情報も載せておこうと、最新のバージョンである1.4.0を調べていたんですが。Cygwin上でコンパイルするとき、g++のコンパイルオプション…

すなおにデシリアライザを書くのが精神衛生上よい気がする

C++

昨日書いた仮想コンストラクタのコード、何度読み返してみても気持ちが悪い。ためしに、デシリアライザで書き直してみた。 やっぱりこっちの方が素直で間違いもない気がする。 少なくともわたしには、トリッキーなコードを書くだけのメリットが感じられず。 …

virtual constructor...?

C++

いま、C++ プログラミングの筋と定石を読んでいる途中なんですが、未経験の実装が出てきて戸惑っているところ。 基底クラスのコンストラクタの中で、placement newを使って自分の領域(this)を自分の派生クラスでconstructしてしまうというもの。これで、一種…

DCIについて引き続き悩む

「Lean Architecture for Agile Software Development」のドラフトのAPPENDIX AのScalaのコードを意訳してみる。 本文中にC++のコードがあるんですが、まとまった形のコードになっていなかったので、他言語での例から逆にC++に翻訳してみました。 ここではma…

C/C++スタイルのコメントの除去 by Haskell

以前C++で書いたものをHaskellのParsecで。 まだテストしてないので間違えてるかもしれない。(2010/02/03追記:やっぱり間違えてた。quoteStringはエスケープしたダブルコーテーションをきちんと処理できない。修正版は後日) import Text.ParserCombinator…

2010年01月

去年は色々あったので年初の思いをしるしておこうと思いつつ、もう数時間で2月だよ、という1月31日の夜。1月中なら一応年初ということで。 先日のエントリの最後にも書いたように、ここ数年のストレス過多がたたって夏にはひと月も仕事を休むことになりまし…