nDiki : Java

2009年3月24日 (火)

今日のさえずり - オフィスで最初に WBC の結果を口に出した人がサボリーマン

naney:3377462171

2009年03月23日

2009年03月24日

  • 12:05 ニッコールクラブ年会費支払い完了。継続した。 [mb]
  • 12:13 PENTAX K20D チタンカラープレミアムキットって、チタンカラーなだけでチタンじゃないよね、きっと。 *P3
  • 12:15 営業が WBC をスピーカーで鳴らして帰ってきたので耳栓。 *P3
  • 12:19 DropboxPortable か。最強だな。 *P3
  • 12:32 SKK の問題点は、SKK がない環境でストレスが爆発するところ。 *P3
  • 12:39 @woopsdez SKK 指になると、MS-IME とかイラっとしますよねぇ。 *P3
  • 13:05 将棋ボクシング? 何? *P3
  • 14:40 オフィスで最初に WBC の結果を口に出した人がサボリーマン。 *P3
  • 15:54 後ろの人が電話で「ピング」って言ってる。 *P3
  • 15:57 心の中では「ping」を「ピング」と読んでしまうけれど、口にするときは「ピン」と言うように頑張っている。 *P3
  • 20:23 会社出た。ヨドバシカメラ寄ってみる。L:東京都千代田区神田佐久間町3 [mb]
  • 20:43 ヨドバシカメラ文房具調達完了。WBC V2 セールはデジカメ指定商品3%引きとか。 [mb]
  • 20:54 太陽の塔のケータイストラップ付けている人発見。あれいいな。 [mb]
  • 22:51 @yamakiyo 太陽の塔ストラップ、同じ駅で降りて登りエスカレーターの前に乗ったのでじっくり見られた。黄金の顔が無かったような。 *P3
  • 24:26 4月になることだし、同僚の午後の紅茶消費量をログりたい。 *P3
  • 24:38 @yamakiyo 「ミニチュア太陽の塔」がいいな。15cm。 http://www.taromuseum.jp/... *P3
  • 24:41 世代的にいうと、太陽の塔よりもコスモ星丸。 *P3
スポンサード リンク
[ 3月24日全て ]

2009年8月20日 (木)

アクセサは foo と set_foo にしたい

オブジェクト指向プログラミングではほとんどの場合に必要となるアクセサについては命名規則にいくつかのパターンがある。

  1. 属性名に対して getter に get (get_)、setter に set (set_) をプレフィックスとしてつける。
  2. getter も setter も同じ名前とし属性名にする。
  3. setter のみ set (set_) を属性名にプレフィックスとしてつける。

1 番目は Java プログラミングでよく使われる。 またそれ以外でも広く使われている形式だ。 get と set 命名規則的に対になっていて規則的には美しい。 getter と setter を別々に検索するのも用意だし、プログラミング時にも誤解を招きにくい。

ただし例えば x、y、z のような短い名前の属性の取得の場合 obj->get_x などと、うるさい感じになってしまう。また obj->get_foo->get_var なども obj->foo->var などに比べてすっきり感がない。

2 番目は Perl でよく使われる。C# のプロパティへのアクセサは getter と setter が同じ名前になる。 呼び出し側ではコードが短くなりすっきりする。

ただし Perl の場合は引数の数を動的にチェックするために効率が若干犠牲になるのと、setter の機能が無いアクセサに引数を渡してもエラーにならないため見逃しやすいバグが潜んでしまう可能性があるなどの問題もある。Perl ベストプラクティスではこの形式ではなく1番目の形式を勧めている。

3 番目はあまり多くないかな。 getter に get がついていると個人的には重い印象を感じる。 getter を属性名だけにすることですっきりするとともに、setter は set_ と動詞がつくことでオブジェクトに働きかけるという印象を残すことができる。

命名規則が非対称なのでちょっと気持ち悪いといえば気持ち悪い。

Google C++ スタイルガイドではこの形式を採用している。

個人的には3番目がコードの見た感じにもすっきりしていて読みやすく、また getter と setter の区別も(1番目ほどではないにせよ)つきやすいので良いのではないかと思う。 2番目もよく使っていたのだが、しばらく3番目にしてみようかと思った今日このごろ。

[ 8月20日全て ]

2010年2月6日 (土)

Debianアップデートしたら Java プログラムが通信できなくなった

昨日 Debian GNU/Linux sidノート PC で久しぶりにアップデートをかけたら、無線 LAN がつながらなくなった。こちらは新しく入った linux-image を消したり、NetworkManager のフロントエンドを knetworkmanager から nm-applet に変えたりしているうちにつながるように。

これで大丈夫かと思ったら Web ブラウザなどは問題ないのに Java プログラムである Twitter クライアント P3:PeraPeraPrv が全くつながらなくなってしまっていた。こちらは有線 LAN でも駄目なので無線 LAN 関係は関係なさそう。

困ったなと思って調べていたら、java のコマンドライン引数で -Djava.net.preferIPv4Stack=true を指定すれば良さそうということで試しに

 java -Djava.net.preferIPv4Stack=true -jar PeraPeraPrv.jar

と起動したら無事アクセスできるようになった。ふう。

そこから調べてみると netbase 4.38 (2009年12月6日)から /etc/sysctl.d/bindv6only.conf で net.ipv6.bindv6only=1 と設定されるようになったのが影響しているようだ。

こちらの設定を以前と同様にするならば 0 に変更して

 invoke-rc.d procps restart

とのこと。

[ 2月6日全て ]

2010年3月29日 (月)

さらば GTD ツール ThinkingRock

1年9カ月ほど GTD ツールとして ThinkingRock をメインに使ってきた。 今まで使ったツールの中で一番 GTD らしい運用ができるツールだ。 いつでも PC を使える状況であれば、かなりグレイト。

しかし奴にも弱点がある。 その一つがモバイルで使えないこと。 ネットサービスとの連携はほぼ皆無なスタンドアローン Java アプリケーションなので、PC が使えない状況で各種リストにアクセスできない不便さがある。

こればかりは仕方がないので、外出先用のアクションを Remember The Milk に入力したり、いくつかのコンテキストのアクションをロルバーンポケット付メモなどに手書きしたりして運用していた(ちなみにリストを綺麗な PDF ファイルとして出力する機能があって、これを印刷して使ってみたりもしたんだけれど、更新のたびに印刷するが面倒で紙ももったいないのでしばらくしてやめた)。

今回 Android ケータイXperia 購入するにあたり、GTD ツールも見直し中。 今後は PC / スマートフォン両方で扱える GTD 環境にしたい。

で、いろいろ調べてみたりしたんだけれど、やはり Remember The Milk 以外に選択肢が見つからなかった。 Pro アカウントにすれば公式 Android アプリが使えるようになるので、アップグレードするか。 サブタスクが使えないのがネックだが、タグ・スマートリストやタスクの名前付けの工夫などカバーする方法を考えよう。

ということで ThinkingRock サヨナラを決断。不要になったプロジェクト/アクションを捨てつつ一気にデータを Remember The Milk へ移した。 しばらく試行錯誤の日々が続きそうだ。

[ 3月29日全て ]

2010年12月7日 (火)

今日のさえずり: 間違えて、いる方の Git リポジトリ rm -rf した

2010年12月06日

2010年12月07日

[ 12月7日全て ]

2011年5月23日 (月)

Perl での一時変数のインライン化はコンテキストの変化に注意

Perl ではスカラーコンテキストとリストコンテキストが肝の一つなんだけれど、ここ最近 C++ を使うことが多かったこともありリファクタリングでちょっとポカった。

 #!/usr/bin/perl
 
 use warnings;
 use strict;
 use Data::Dumper;

 sub f { return; }
 sub g { return undef; }

 my $f_value = f;
 my $g_value = g;

 my $f_hash = { a => 1, b => $f_value, c => 3};
 my $g_hash = { a => 1, b => $g_value, c => 3};

 print Dumper($f_hash, $g_hash);

 #$VAR1 = {
 #          'c' => 3,
 #          'a' => 1,
 #          'b' => undef
 #        };
 #$VAR2 = {
 #          'c' => 3,
 #          'a' => 1,
 #          'b' => undef
 #        };

リファクタリング前のコード。$f_hash も $g_hash も同じ。 ここでリファクタリングのスタンダード「一時変数のインライン化」を行う。

 my $f_hash = { a => 1, b => f, c => 3};
 my $g_hash = { a => 1, b => g, c => 3};

 print Dumper($f_hash, $g_hash);

 #Odd number of elements in anonymous hash at test.pl line 13.
 #$VAR1 = {
 #          'a' => 1,
 #          '3' => undef,
 #          'b' => 'c'
 #        };
 #$VAR2 = {
 #          'c' => 3,
 #          'a' => 1,
 #          'b' => undef
 #        };

ああ。f の呼び出しがリストコンテキストに変わるので、 return; が undef ではなく () を返すようになり無名ハッシュを生成するリストの中で消えてしまうため、キーと値の組み合わせがずれてしまう(そして無名ハッシュを奇数個の要素で作ろうとする警告も出る)。

コンテキストは理解しているんだけれど、リファクタリング前のコードでスカラー変数で受けているので、つい f がスカラー値だけを返すサブルーチンだと錯覚してしまうと。

g みたいに明示的に return undef; してればいいかというと、これはこれで落とし穴があり、一般的には return; の方が推奨されている。

Perl での一時変数のインライン化は JavaC++ に比べて要注意ってことで。

[ 5月23日全て ]

2011年6月29日 (水)

mixi Engineers' Seminar #2 は Windows Phone 7 に注目が集まった

image:http://www.naney.org/nDiki/2011/06/29/engineer_seminar_logo.jpg

株式会社ミクシィ主催のエンジニア向けセミナーmixi Engineers' Seminar #2」に参加してきた。

スマートフォンがメインテーマで、発表は次の3つ。

赤松洋介氏(サイドフィード株式会社)開発者のためのiPhoneAndroidアプリ移植のポイント
高橋忍氏(日本マイクロソフト株式会社)Windows Phone 7 アプリケーション開発概要
藤崎友樹氏(株式会社ミクシィ)mixi x Androidの深イイ話

赤松氏の移植話では正規表現20パターンぐらいで Objective-C コードから Java コードに変換しちゃいましたとか。マジ?

藤崎氏の発表では Android 特有のアプリケーション開発事情や勘所が語られて、Android 開発者だといろいろ気づきとか得られるのではという内容であった。

そして注目だったのは Windows Phone 7。 プレゼンテーションが上手かったというのもあるんだけれど、発表の中で Visual Studio や Expression Blend でささっとデモアプリケーションを書いて、その場でエミュレータ(これが速い)でささっと動いちゃっているのを見ると、ああなんか簡単に面白いのが書けそうと思えてきちゃって、これはスゴいなと。

Windows Phone 7 端末は iPhone みたいに単一メーカーじゃないんだけれど、比較的統一が求められていて、開発者に優しいらしい。 ただ端末毎の特徴が無くなって、買う側もつまらないし売る側も差別化しにくいんじゃないかなとも思われるところ。 個人的には Android のカオスは好きなんだよね(ただし開発者じゃない立ち位置で)。

懇親会でお話させていただいた方、ありがとうございました。


ロゴはmixi Engineers' Blogより引用。

今日のさえずり: 乗り換え案内が紀香案内に聞こえてしまう

2011年06月29日

[ 6月29日全て ]

2011年12月13日 (火)

今日のさえずり: カメラ欲しい病にかかったっぽい

naney:6505502075

2011年12月13日

  • 06:24 月が綺麗。
  • 08:56 ソニッケアー不調の件の原因判明。ブラシ側のマグネット部品がなんかずれてた。直したらソニック復活!
  • 11:26 Android の Due Today が java.lang.NoSuchMethodError: java.lang.String.isEmpty で落ちる。isEmpty は Java の 1.6 からだからか。
  • 13:08 RT @nissen: 【注意】先日来、飛行石についていくつかお問合せをいただいております。お声掛けは大変ありがたいのですが、お買い上げいただいたお客様が海賊や軍隊に追われては多大なご迷惑であるという判断で、お取扱いをしておりません。ご了承下さい。 スミス
  • 19:37 むむ。 Toodledo で「未完了のサブタスクが無いタスク」という検索は現時点では実現できないのか。レビューで使いたいのだけれど。
  • 20:30 退勤。
  • 20:45 カメラ欲しい病にかかったっぽい。
  • 20:51 フォーカスリングと絞りリングがあるといいけど、チッチャいのがいい。
  • 20:52 @yunzo77 こじらせる前に治療を。
  • 24:34 RT @redgri: 圧倒的多数の子供たちが「サンタさんぼくはおかねがたくさんほしいです。」とお手紙を出し、サンタがおお張りきりで多額のお金をすばやくばらまき、年末から超インフレが起き、サンタさんのプレゼントのお金がみるみる紙クズ化していくのに呆然とする子供たちの顔が見たい。
[ 12月13日全て ]

2013年1月10日 (木)

今日のさえずり: ハイムリック法は調子にのってバックドロップしそうで怖いです

2013年01月10日

  • 08:43 朝に風呂掃除をしていてシャワーを浴びたの2度目なので再発防止したい。
  • 09:29用語増えるのいいけど、先にテレパシーをマスターしたい。
  • 09:43 鉄分売ってたので買った。 (@ セブンイレブン 渋谷3丁目六本木通り店) http://t.co/1lpXbONT
  • 10:34 一発ミーティング済み。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/o9EgSZ4p
  • 13:17 Arrow まだサービス継続してた。 http://t.co/zISYA8Xj
  • 13:37 IKEA BJURSTA 伸長式テーブルの組み立て説明書 PDF ファイル見ている。ふたり人が登場する。
  • 17:03 若干昨日の反動がきている。
  • 17:04 「うちの女性ディレクターが餅を早食いする気満々」じゃないかと心配している。
  • 17:07 @yasa_gurek0 固さ次第ですね。
  • 18:28 不具合調査 >> 餅
  • 19:36 女性ディレクターに「縁起ものだから」と食べないと祟られるような勢いで説教されたので、餅いただきます。
  • 19:50 Joel on Software 21章 報奨金有害論
  • 20:53 OOP 理解するの、Java でも C++ でもいいのでインタフェースを宣言するようなコードを書く言語もさわってもらってた方がいいな(Perl だけじゃなくてという意味で)。
  • 21:03 ハイムリック法は調子にのってバックドロップしそうで怖いです。
  • 21:11 Display PostScript は死んだの?
  • 21:18 お金大好きです。
[ 1月10日全て ]

2013年2月18日 (月)

今日のさえずり: 「つるむ」を変換したら「交尾む」と出てきたのでおののいた

2013年02月18日

  • 07:48 Twitterパスワードリセットメール連続でくる。Require personal information to reset my password をオンにした方がいいかなぁ。
  • 09:57 今シーズン初マスク出社。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/kUSUAlar
  • 10:16 今週最初の仕事は Windows 再起動
  • 11:28 金曜日のランチタイムをブロックするより先にミーティングが入ってました。
  • 11:30 「置き換えるノウハウも大事です。」 / “http://t.co/4RFyA3gu をtumblrに移行 « なんか:かんがえて-5” http://t.co/ElzmVfxz
  • 12:07 あ、この間の git push 忘れ、間違えて自分のリモートリモジトリに push してあった。
  • 13:00 巴和原です。
  • 13:05 これからポモテクランチ with @yosh8 @sseze #pomotechlunch
  • 13:11 傘取りに戻る組待ち。 #pomotechlunch
  • 13:24 会場。 #pomotechlunch (@ 焼酎DINING&BAR 青山(セイザン sei zan)) http://t.co/oxAdlarY
  • 14:25 「プランニングしてる?」「25分経ったけど続けたい時」「iPhone でのお薦めポモドーロタイマーは?」「レコーディング(付箋)どう整理する?」「割り込み(IRC)とどう付き合う?」「GTD とのコンビネーションは?」 #pomotechlunch
  • 19:28 “Weka 3 - Data Mining with Open Source Machine Learning Software in Javahttp://t.co/azOEb9EG
  • 23:15 「つるむ」を変換したら「交尾む」と出てきたのでおののいた。
  • 24:30 ああ、うちにあるホルダーはジレットマッハスリーターボで、買ってきた替刃がジレットセンサーエクセル。互換性なーい。
[ 2月18日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.067287s / load averages: 0.29, 0.44, 0.46
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker