2015/04/28

LZ550

 7年ぶりに自家用のノートPCを新しく買った。
 この1年ほど、社外で会議をする機会が多かったのでモバイルノートが欲しかったんだけど(会社はそんなの支給してくれないし)、どうしても必要というほどじゃないので、何となく先延ばしにしてて。
世間でモバイルというとMacBook AirとかDELLのXPSとかをよく見かけるけど、どれにしようかなーと。

 実は姉がDELLのE4200というかなり前のモバイルノートを持っていて、もう使ってないと思うのでそれをもらえれば、それでいいなと思ってた。DELLの現行のノートPCでもE4200ほど軽量のは無いんじゃないかな。あの軽さが羨ましかったんだけどなんでDELLは軽量モバイルやめちゃったんだろう。
E4200はCore2で処理速度は遅いけど、モバイルでブラウジングしたりメモとったりプレゼンしたりの用途なら十分使えるはず。E4200は中古で3万しないくらいだったと思う、今からでも用途によっては良い選択肢になると思うぞ。
ところが姉がなぜかE4200を手放さないのでムカついて新しいのを買ってしまった。

 勢いだけで、実機触りもしないで、ネット通販で、NECのLaVie LZ550/TというののリフレッシュPCというのをポチッと押してやった。
軽量路線のモバイルノートの中でもかなり攻めてる方だと思う。その割に値段はそれほど高くないので良いかなと。NECなら変なもの作らないだろうと思って。
でもやっぱり実機触ってなかったので、届いてみると「キーボードが打ちにくい。」という思いがけない罠が。
ベストな買い物かどうか微妙だけど、買ってしまったものはしかたない。
買った物は惜しまず使い倒す主義なのでボロボロになるまで使ってやろうと思う。

 今メインで使ってるのは7年前に買った16.4インチという大型のVaioだ(就職祝い?記念?で買ってもらった)。Sonyタイマーとか言われてるけどこのVaioに関しては超頑丈、16.4インチという重量級のノートなのにキャリーバッグでガラガラ持ち運んだり、何度か机から落としたりしてるけど問題なく動く(落として大丈夫なようには作ってないと思うが…)。電源ケーブルとかコネクタ類も雑に扱ってるはずだけどUSBポートが一つ壊れた以外はどこも壊れてない。
7年前とはいえ、最高スペックに近いカスタマイズをしたので、OSをVistaからWindows7に入れ替えて今でも全然使えてしまう(HDDだけは入れ替えた)。
 さすがにVM上げてVisualStudio上げて開発を、という用途なら厳しいけど一般的な用途なら現行の安いのと変わらないくらいじゃないかな。
この重量級ノートをいまだにメインPCにしてるわけだけど、いつまで使えるかな、というかいつまで使う気だろう。

 さてLZ550に合うようなBluetoothのマウスが欲しいと思ってヨドバシカメラで買った。 マウスとかキーボード選びは毎回結構迷うのだが、最新のBluetooth4.0を使った省エネタイプを買った。しかし。帰って開けてみると微妙に、本当に微妙に左クリックが重いというか引っかかるような感じがした。
 不良品、といえばそうなんだけど、人差し指の微妙な感覚なので返品しようにも厄介なことになったなぁという感じがした。でも無理して使ってるとすっごいストレスになるレベル。お店に持って行って「ここがほら微妙に重いんです」と言っても伝わらないだろうなと思うと気が重くなるんだ。
 とりあえず翌日またヨドバシに行ってみたら一瞬で交換に対応してくれた。少しくらいは嫌な顔されるかなと思ってたが、ちょっと見直したのでヨドバシの宣伝。

スマホ等でも液晶周りのベゼル?の薄さをアピールしたりしてるが、なんと新しいLZ550より7年前の16.4型Vaioの方がベゼルが薄い。まぁLZ550には強度的な問題があるんだろうけど、Vaioだって落として壊れなかったし、ちょっとすごいぞVaio。

ついでにWindows8.1になったんだが、スクロールバーが致命的に見辛い。どこがバーでどこが背景なのかわからん。しかも色が変えられない。
ウィンドウ周りに影が無いのも見辛い。前も書いたがこれは退化だ。マイクロソフトは何がしたいんだ。

ウキウキ気分で休日には持ち歩いてるんだが、衝撃の感想。
「重い」
普段は鞄にほとんど何も入れてないもんだから、本体800g、保護ケースで150gくらい?、ACアダプター150gくらい?と1キロ以上重くなるとかなり腕や肩にくるもんがある。
鞄も変えようかな。。何か1つ買うと続けていろいろ欲しくなるパターンだ。

使い勝手について追記
画面が13.3インチでWQHDという超高DPIなのだが、ディスプレイのサイズの設定が既定の「特大200%」のままではちょっと文字が大きすぎて情報量が少なくなる。 かといって「150%」ではアプリによってはボタンのサイズが小さすぎて操作性がヤバい。
そこでカスタムサイズで「160%」と指定すると快適になった。それだけだが、このカスタムサイズで「160%」という指定がなかなか出来なくて戸惑った。カスタムサイズを入力するダイアログで、1、6、と入力してると勝手に100%!とかに変わってしまうのだ。このせいでカスタムサイズと言いながら結局決められた数値しか選べないんだ、と思い込んでしまった。やってみた人は分かると思うが何故かここだけ酷いUIだと思う。
カスタムサイズを指定する際は一気に「160!」と入力しよう。

キーストロークは1.2㎜らしい。確かに慣れてしまえば普通にタイピングできるようになったが、まぁPCがもう1ミリ厚くなるとしても打鍵感が良い方がトータルでは良い気がするなぁ。

Angel List

かつて中島らもは、「病気を抱えながら日々を生きるというのはしんどいと思うんですね、それでも生きていこうということは・・」という問いに、「その日、一日の天使というのが必ずいる」と答えたと思います。購買のおばちゃんでも、電車で偶然乗り合わせる女の子でも。その天使を一日、一日、探しながら生きる、というようなことを言ったと思います。

今日は仕事がうまくいかず予定外の残業を強いられ、それでも仕事は終わらず嫌な気分で帰ってきました。
しかし夕食を作る気にならないような日、いつも行く中華料理屋に今日も行ってみると、お店の人が新しく変わっており、 若い、というか子供といっていいくらいの従業員が居て。
片言というか、中国なまりの日本語を使う女性になんか弱いのかも。
いやまさに一日の天使でした。

そのお店は家族で中華料理屋をやるようで、お母さんとその子が注文を受け取り、お父さんが厨房で料理を作っているみたいでした。
眩しい笑顔で、「お父さんの料理、どこの中華料理屋より、美味しいから、沢山お客さん来て欲しい。」
って身振りを交えて言うその子に、もう。。
とてもとても温かい気持ちになります。近所のお店なので是非頑張ってほしい。

2015/04/20

平成27年度 データベーススペシャリスト

平成27年度春季情報処理技術者試験データベーススペシャリストを受けてきました。
一応一日頑張ったので感想文を残しておきます。

実は情処試験は基本情報、応用情報、ネスペの3回受けて3回とも合格してるさ。
まぁ自慢ではないんだけど今回はどーかな。
今回はちゃんと大学の講義室で試験なので雰囲気が良かった(前回は某貸し会議室での受験)。
でDBはネスペや応用と比べて女性が多かったような気がする。偶然かもしれないけど。

いつも思うけどみんな真面目だよねぇ。午前Iが免除っていうだけでちょっと自慢したいところだけど、あの教室の人達はみんな午前I免除組なんだよね。

午前II

さすがに過去問の使い回しはすぐ解けるんだけど、SQL系の初見の問題が厳しいなぁという感じ。
SQLの解析とかで午前から頭使った。
等結合した場合の結果について聞かれた問題があって、覚えてなかったんだけど結合して同じ列をまとめるのは自然結合ってのは覚えてたから違う方を答えた(で正解してた)。そんな感じで正解か不安な問題が多数あって午前での足切りが有り得るかもと思ったが、昨日採点したら5問ミスで通ってた。思ってたより良い成績。

お昼休み

いつもコンビニやスーパーですごく並ぶので今回は朝コンビニでおにぎりとパンを買っていった。大学近くのコンビニの日曜日なんていつもは空いてるだろう。情報処理試験の日には対策をしてるとは思うけどそれでもきついからね。今回は時間に余裕があるぞと思ったけど周りは手作り弁当の人が多かった。。悲しす。

午後I

基本通りに問1問2を選択した。実はネスペの時も先に出てくる問題の方がスタンダードな問のはず、と決め打ちで選択した。DBの場合はもっとはっきりしていて、午後Iの問3と午後IIの問1は殆ど選択者が居ないらしい。合格を目的とした勉強ならその2つの過去問はやらなくても良いくらいのことが言われている。午後IIは問1の方が難しい(?)というのも特徴だ。
で午後Iは時間との闘いということで、ものすごい勢いで回答を書込んだ。最後のSQLは勢いで書込んだら実はパズルのような解答欄で、消しては書き直し、書き直しては消すのを繰り返すことになってしまったが、恐らく問1問2とも全面的にそこそこ正解にたどり着いたと思う。

午後II

一応基本通りに問2を選択したが、無理。
実は年始辺りでなんとなく午後Iの問1問2は解けるようになったので、ここ数ヶ月は午後IIしか見てないんだけど、どの年の過去問やっても感想は同じで「無理」の一言。
もう、「この試験に向いてない」、としか思えない。今年度はこれまでと傾向が違ったようだけど、まぁとにかく回答用紙はスッカスカw
演習してる時に思ったけど問題用紙に回答書き写すのは諦めてたので自己採点も出来ない。でも午後I通って午後IIまで採点してくれればいいかな。この試験って100%正解、ってのは分かっても6割正解ってどのラインなのか分からんよね。
某掲示板では体感で2割程度の正解でも50点以上だったとかの報告もあるので、まぁまた気長に待つ生活が始まるな。

そういえば午後IはE-R図だけの問題で、関数従属性の図の問題が無かった。関数従属性の図の方が簡単だと思うのでちょっと焦った。
それに奇数年度の午後II問2は白紙みたいなE-R図を2時間かけて完成させる問題って思ってたし、今回はちょっと聞いてた情報と違ったなぁ。
どうせなら平成21年度の午後II問2みたいな問題が良かったなー。

なんていうかネスペに比べたら全然勉強してない分、出来なかったけどショック少ない感じだ。
うーん、真剣さが足りないというか、もうちょっと頑張らないといけないのかなぁ、でも日々の仕事で手一杯だしなぁ。ネスペに向けてやってた時の良い感じに追いたてられる感じにはなれなかったなぁ。

去年の春に思い立って応用情報に申し込んでから1年以上試験勉強やってるわけだけど、これで一旦情報処理試験から離れてみるかなぁ。
でもネスペ取れたしセキュスペも受けてみるかなぁとか、、まぁどっちにしても1ヶ月くらいは休むさ。

iTECの解答見たら、あれれーもしかしたら午後Iでダメかなーって気になってきた。やっぱ関数従属性の図が無いと難しいって。

公式解答が出たが自分が何て答えたのかさっぱり覚えてないので分かんないや。やっぱりどんなに難しくても解答は書き写しておかないと反省もできないからダメか。

なんと午後IIが61点でギリギリ合格していた。
午前II:80
午後I:66
午後II:61
ほんのちょっと合格者数の調整があればアウトなラインだ。ネスペやセキュスペに比べたらデスペの合格率は高めなので助かった。今回はたまたま合格したけど反省ばかりだ。
午後Iの点が悪いのは問1のリレーションの矢印が書けなかったからで、冷静に考えると1対1なわけ無いのに本番の緊張で頭がおかしくなってたとしか思えない。だから逆に午後Iは70点くらいは取れたかなとは思う。
でも午後IIは完全に一杯まで書き切って、この点数。しかもかなり外れた答え書いたなぁという実感があるので素直に喜べてないなぁ。
DBはNWに比べて勉強期間が少なめで合格する人が多いらしいが、自分は10月から翌4月まできっちり半年使ってギリギリの点数だった。思い返すとNWも半年きっちり使ってギリギリの点数だった。まぁ確かに学生の頃から受験とか試験とか苦手な方だったけど、もうちょっとマシにならんもんかな。
ちなみに合格発表のあった金曜は受験票を忘れて出社してしまったため昼休みからずっと、これ、俺の番号、の気がする、というはっきりしない状況が続いてしまった。
さて秋は、と思うが、今年は去年情報処理試験に費やしたのと同じくらいの時間をScalaの勉強にかけようかなと思う(今の時点では)。なので情報処理試験の教科書は買わずにScalaの本を買ってみた。

ネットワークと比べて難しく感じた理由が分かったのでまとめておく。
ネットワーク試験は対象が完全に人工物なのだ。
機械どうしを繋いで情報をやり取りする方法。こういう信号の時はこっち、別の信号ならあっち、というように振り分けたり、機械が壊れた時の切り替え方法や迂回路の決定方法も全部人が作った仕組みだ。なので確かに「そんなこと知らなかった」という問題は多い。しかし逆に「そういう仕組みがあるのか」と理解して覚えてしまえばIPAの解答に疑問を挟む余地が無いと言える。

一方データベース試験は自然界の事象をシステム化する方法について問われている。
例えばレストランではお客さんごとに注文伝票が必要だ、とか追加注文や注文の取り消しがあり得る、とか、コンピュータなんて無い時代から当たり前に行われていた事象について、システム化、DB化する方法が問われる。自然界の出来事をコンピュータの世界に当てはめる様な思考力が必要になる。
となるとどうしても人によって多少のズレが出てくる。お客さんごとに注文伝票が必要という場合、テーブルに番号を付けてテーブル番号で伝票を作るのが普通かもしれないが、お客さんの名前で伝票を作成することも間違いとは言い切れないはず。
そういうずれがあり、何度やってもIPAの解答と一致しなかったので問題演習すればするほどこの試験に向いてない気がしてくるのだ。この文章からそこまでエンティティ作り込むのは無理だーとなる。
今回も「製品にAからEまでのランクを付けることにした」、という文章で、当たり前のように製品テーブルにランクというカラムを追加し、文字列でA~Eを格納すればいい、と思ったが、IPAの解答はランクテーブルを別に作り、ランクIDで参照する方法だった。どっちかが正しくてどっちかが間違いなんて言えない問題だと思う(悪い問題という意味ではなく、解答には幅があるだろうということ)。

2015/04/11

Snake case

新橋駅ガード下の沖縄料理居酒屋にて
 ハブ酒の話から私は蛇が好きだということを語ってしまった。「諸君私は蛇が好きだ」みたいな。
スネークセンターに行きたい。ブラックマンバを見てみたい。基本的に毒蛇とは関わりたく無いが、関わっちゃいけない危険なやつということにも魅力があると思う。いかにも危険そうな顔の毒蛇もいるが、ブラックマンバはとても綺麗な顔をしている。白色(か銀色)の体に真黒くてまん丸い目、そして大きく開けた口の中も黒。写真によっては可愛く見えたりかっこよく見えたりするが、綺麗だと思う。なんていうか造形が神懸かってる。
なのに持ってる毒は最強クラス、性格も攻撃的というとても危ない蛇だ。その見た目とのギャップにとても魅力を感じる。

 てことを言いたいのではなくて、最近スネークケースにはまっているという話をしたい。
今仕事で書いてるのは主にC++なので基本はキャメルケースだ。さらにC++といってもWindowsで動作するVC++なので、ハンガリアン記法がそこかしこに混じってくる。最初はlpなんとかという不思議な文字列を見かけるたびに苛立っていたもんだが最近はLPCTSTRくらいならスッと入ってくるから不思議だ。それでもハンガリアン記法の命名規則(書き方?)は今のプログラミング環境、IDEを考えると実に無意味な過去の遺物だと思う。
スネークケース:file_path
キャメルケース:filePath
ハンガリアン記法:lpcFilePath(?) 
蛇かラクダかは、要は単語をアンダースコアで区切るか、先頭一字を大文字にするという決まりで区切るかの違い。
ハンガリアン記法は良く知らないけど基本は型を示す一文字を連ねて命名する記法だったと思う。よく知らないし知りたいとも思わない。

 キャメルケースはJava、JavaScriptを書いてる時からずっと慣れているのでキャメルケースなら全然文句ない。ただ、Rubyの影響で試しにスネークケースを使ってみるとさらに読み易く感じることに気が付いた。
最初は横に長くなるのが嫌かと思ったんだけどそれはまぁ改行のタイミングとかでどうとでもなるので良いかなと思う。
 またVC++で試すと、ハンガリアン記法、キャメルケース、スネークケースが混ざってしまう。これに関しては見た目は嫌だけど、実用的には変数、関数、Win32API関係のもの、と自動的に意味別になるので意外と分かりやすかったりする。
 あと地味に嬉しいのは大文字にするか小文字にするか悩まなくてよいこと。 仕様書などで大文字の略称で書き表していたものなど、変数名でも同じ大文字で書きたくなる。例えば「SBP」という概念があったとして、SBPParser って書くと SBPP まで大文字が連なり区切りが無くなるので見ずらいのだ。かといってSbpParser にすると見慣れなくてそれはそれで嫌だったり。そんなときにSBP_Parserって書けるってのは悩みが減るので良い(スネークだろうがキャメルだろうが変数名は必ず小文字で始めなければならないので実際は悩むだろうけど)。

なんかチーム内でコーディング規約って有ったような気もするが怒られるまではこれで行こうと思う。
怒られてもどうせ一括置換で容易に変えれるので是非試してみると良い。

2015/04/07

InstallShield Dev pc gone

InstallShieldを動かしてたマシンが飛びました。
InstallShieldの細かいTipsとして、ビルドとインストールテストを繰り返していると結構な勢いでHDDが断片化するのでたまにデフラグを掛けてやると良いです。
なことやってると必然的にHDDに相当な負荷がかかるので、ビルド途中でハングアップ、そのままマシンがダウン、2度と起動しなくなりました。幸いデータほぼバックアップしてたので良いです。

ただしInstallShieldは再インストールの前に必ずネットに繋いだ状態でアンインストールが必要です。フレクセラのライセンスサーバーに一旦ライセンスを返さないと再インストールできません。
さてPCが起動出来ないのでアンインストールなんかできる分けも無く。結局サポートにメールして再インストールできるようにしてもらいました。

で再インストールしてプロジェクトをビルドすると出来上がったインストーラがめちゃくちゃ遅いという問題が起こりました。環境が変わってるしビルドする前にも色々弄ったのでどこが悪いのかさっぱり。
使ってるInstallShieldが「12」という古い奴なこと、また状況も「インストーラが遅い」というだけでどうも分からない。良く動かしてみるとInstall Scriptの関数を呼び出すところですごく時間がかかっているのが分かりました。
で英語でInstallShield12 InstallScript too slow などで検索すると以下の情報が。
https://community.flexerasoftware.com/showthread.php?167333-installtion-becoming-slow-on-migrating-to-installshield-12
普通自動アップデートが掛かるはずですが、何故かアップデートが検出されなかったようです。で、情報に従ってSP2を当てると実行速度は元に戻りました。まぁ、12なんていう古いのを使ってるのが悪いんでしょうが。