2012年6月18日月曜日

古いLet's Note で高い解像度を使う方法

はじめに

古い Let's Note (に限らないかもしれませんが) は、公式には限られた解像度しかサポートしておらず、大きなディスプレイをつないでも高解像度は生かせません。 個人的に WUXGA 映したいという要求があったので試行錯誤した結果、映すことに成功しました。 VGA なので限界はあるし、実際ちらつくんですが、ハックとして有用だったのでまとめてみました。

CF-W5/Windows XP SP3/Panasonic標準ドライバで確認しています。

注意

保証外の手順なので、機械を壊す可能性があります。また、レジストリに値を書き込むので、最悪OSが起動しなくなります。 at your own risk でお願いします。

必要なツール

DTDCaluclator と MonInfo をインストールします。

手順

MonInfo でディスプレイの EDID を取ってきます。クリップボードにコピペします。

DTD Calculator を起動して、コピペします。




1920x1200 は BIOS レベルで禁止されているようで、そのままでは使えません。そこで、微妙に小さな解像度にすることによって、ブラックリストを回避します。
そこで、Calculation タブで H Active Pixels に 1919 と入力して、 1919x1200 の解像度にします。そして、信号のタイミングを合わせるために、 Horizontal Blanking Interval を +1 します。

Registry Hack のタブから Write DTDs to Registry として設定を保存し、再起動します。
あとは通常通り画面のプロパティを開くと、カスタマイズした解像度が使用できます。




参考

2012年6月11日月曜日

フレッツ光ネクストと IPv6

日本は取り残されてしまっちゃいましたが、World IPv6 Launch なんてイベントもあって、そろそろ IPv6 の普及が見えてきたのかな、なんていう感じです。

さて、フレッツ光ネクストで IPv6 を使うには大きく分けて「PPPoE IPv6」と「IPoE IPv6」の2種類があります。

PPPoE IPv6 は、普通の PPPoE 接続のインターネットを IPv6 に対応させたものです。なんか PPPoE  2セッションも張る必要があるのかなという気はしますが、ともかくこれで IPv6 通信ができます。ただし、利用には PPPoE IPv6 対応のルーターが必要で、新たに購入する必要があります。フレッツ光ネクスト(NGN) IPv6 PPPoEに対応したルータ一覧 によくまとまっていますが、これがまた種類がありません。実質的に NTT が売ってる MA-100 や DS-RA10 を買うことになりそうです。 あんまりイケてません。

IPoE IPv6 は、フレッツ網で使っている IPv6 を、フレッツ網の外につながるようにした物です。 IPoE って、 Ether は普通 IP 通すので、変な名前に思いますが... それはともかく。こっちだと、「IPv6 ブリッジ」機能が付いている多くの家庭用ルーターで動作します。ただし、ISP は結構限られていて、場合によっては乗り換えが必要です。大手だと IIJmio とか BIGLOBE、 @nifty あたりでしょうか。 フレッツのページから検索できます。

どちらも一長一短ですが、機器の更新が要らないし、PPP のオーバーヘッドがないことを考えると IPoE のほうがよさそうです。ただ、 IPoE のほうは NGN の技術的な限界で、 NGN と ISP を接続する「Virtual Network Enabler」と呼ばれる事業者が3社しかなく、このへんの将来性に難がありそうです。IPv6 IPoE VNE数増加が公表される、その他 というニュースもあるので、もうちょっとましになりそうですけど。

私は現在 so-net を使っていて、 PPPoE IPv6 には対応しているけど IPoE IPv6 には非対応、さらに PPPoE 対応ルーターも持っていないので、ルーターかISPのどちらかを変更しないといけません。 これを機に IIJ なんかに変えてみようかなぁと思ったりしますが、月2000円は高いなぁと思ったり... 難しいですね。

2012年6月1日金曜日

新卒で就活をする方にやってほしいたったひとつのこと

昨日の退職エントリは予想以上の反響で、書いた本人ちょっとびっくりしています。

結果として私も就活に"失敗"したことになるので、少ない経験ですが何かの役にと思って書きました。今日はもうちょっと前向きな話です。

新卒で就活をする方にやってほしいたったひとつのこと

インターンシップに行きましょう。

私が新卒で就活をしていた時にやらなくて、一番後悔したのがインターンシップです。

理系の研究室の学生だと、教授の反応が芳しくなかったり(「そんなことしなくても推薦するよ」「研究が学生の本分」)、学会発表や論文執筆が忙しかったり、進学と迷っていたりとなかなかインターンシップに行くモチベーションがないと思います。ですが、そこを押して、ぜひインターンシップに行って欲しいと思います。

インターンシップに行くと良いことがたくさんあります。
  • 採用選考時に考慮してもらえる(ところもある)
  • 社外秘の内情がよくわかる
  • 実際の業務に触れられる
  • 仕事中の社員の顔が見れる
私がもしインターンシップに行っていれば、ソフトウェア開発手法のミスマッチなんかは結構防げたかなと思いました。

あと、「残業どれぐらい?」とか「休みは取れるの?」みたいな、すごく気になるけどなかなか説明会では本当のところが見えない疑問に関しても、インターンシップにいけば実際のところがわかります。説明会では取り繕うことができても、インターンシップ生がいる間だけ残業を減らすなんてことはできないからです。

それから、ソフトウェア開発の現場に関しては
  • パソコンのスペック
  • ディスプレイの大きさ
  • 机や椅子の使い心地
  • ソース管理の有無
  • バグ管理の手法
などを観察することによって、その会社がソフトウェア開発をどう捉えているのか少し感じ取れるのではないでしょうか。

どんな会社にインターンに行く?

一番行きたい会社のインターンに行きましょう!選択の余地なしです。就活の本番と違うので、親の目とか気にせず行きやすいと思います。

心のなかでは本当に興味があっても、「安定してないんじゃないの?」「聞いたことない」「外資の日本支社なんて、使いっ走りさせられるだけ」みたいな、周囲の声に惑わされて応募しない会社、中にはありませんか?そういうところこそ、インターンシップで答えを見つけるのにピッタリです。


インターンシップに行ったことのない私ですし、インターンシップに行ったからといって今回のミスマッチが防げたとは限りませんが、もし一つだけ挙げるとしたらこれかな、と思います。

インターンシップ、おすすめです。

2012年5月31日木曜日

パナソニックを退社しました


5月31日で、2年とちょっと働いたパナソニックを退社しました。最初半年ぐらいは研修だったので、実質1年半ぐらいで辞めたことになります。

辞めた理由はシンプルで、私はソフトウェアの開発がしたかったのですが、実際にはソフトウェアの開発が出来なかったこと。それから、社内の雰囲気が合わなかったことです。

もし今就活中、または来年就活の方で製造業を志望されているソフトウェアエンジニアの方がいたら参考になるかもしれませんので、少しだけ書いてみます。

ただ、大きな会社なので、部署によっては全然雰囲気が違うようで、楽しく仕事をしているところもあるようです。たまたま、私が合わなかっただけです。実際離職率は低めです。

それから、仕事の方針にはミスマッチはありましたが、部署の皆様には大変お世話になりましたし、私の考えに共感して助けてくださることもありました。特定の方を非難する意図はないことを申し添えておきます。

ソフトウェア開発について

私の部署では、絵に描いたような昔ながらのソフトウェア開発が行われていました。

単価計算は人月とステップ数。仕様書を書く上流工程が重要で、コーディングは単純作業という価値観のもとでの開発です。当然正社員はなかなかコーディングに携わることができませんでした。

また、単純作業とみなされがちなコーディングを効率化しようとするモチベーションが少なかったのか、いくつか作業環境で疑問に思うところもありました。例えば、メモリ 1GB ぐらいの遅いマシンでビルドしている、ディスプレイが17インチ、きちんとしたソース管理がない、などです。PCスペックやディスプレイなどは入社の時期によってはそこそこいいものになるんですが、「壊れるまで使う」のが基本のためなかなか新しくなっていませんでした。

それから、入社してからプログラミングを始めたという方も結構いらっしゃったので、どうしてもサイエンスの面からのアプローチが弱かったと思います。オブジェクト指向を知らない(クラスって何? というような感じ)でコーディングしている方もいらっしゃったし、アーキテクチャ、計算量やアルゴリズムを純粋に議論することが少なかったように感じました。

「仕様書を書いて、たくさんの人間を使ってプログラムを作る」ことが大きな仕事をする、それが付加価値なんだと言っていた方も居たので、私の目指す方向とは決定的に違うなと思いました。

就活とのミスマッチ

パナソニックがグローバルチャレンジャーというキャッチフレーズで採用活動をしていることは、ご存じの方もいるかもしれません。私も海外で仕事をしたいと考えていました。

ところが、入社して2年になりますが一度も海外出張はありませんでした。これも部門によっては最初の研修で海外に行くことがあるようなので、一概には言えないのですが...

海外と全く接点がなかったわけではなく、メールや電話でやり取りをすることもありました。ただ、自分の意志でやり取りをするのではなく、先輩社員が書いたメールの添削、翻訳になってしまうこともあったので少し不満でした。

「グローバル」は以上ですが、「チャレンジャー」のほうにも少しミスマッチがありました。

具体的には書けませんが、改善提案をしたときには「新入社員(または入社2年目)なのに」というリアクションがついてまわりました。中には「話を大きくすると、新入社員が思いつくようなこと何故今までやっていなかったのか」と問題になるのでと却下されたこともありました。

私の話し方に未熟な点があったのも事実ですが、残念でした。

男社会

技術系の会社ではよくあることだと思いますが、ほぼ完全な男社会です。100人ほどの部門でしたが、女性は私を含めても4, 5人でした。

キャリアにどれぐらい影響があったのかはよくわかりませんが、日常的な話で「ん?」ということは多かったです。女性の人物評はまず外見で、「かわいい」「若い」というのがまず言及されていました。飲み会でも「女の子」と呼ばれてしまうし、そういう振る舞いを期待されることもありました。

まあ、男女集まればお互い様なこともあるし、女性側だっておじさんの悪口言ってるものなので、一方的な話になっちゃいますけどね...

まとめ

勤務環境としては、休みたくさん取れるし(年間25日付与されますし、完全消化できます)、残業もそんな壊滅的には多くないのでとても良かったのですが、ちょっと違うチャレンジがしたくなったので退職しました。

明日からは違う会社で働きます。今までありがとうございました!明日からよろしくお願いします!

2012年2月1日水曜日

MySQL バックアップスクリプト

MySQL は世界で最も使われている RDBMS の一つですが、問題となるのが定番のバックアップ方法がないということです。 mysqldump を使うと大まかにはバックアップが取れるのですが、InnoDB と MyISAM が混ざっていたりするとそれぞれトランザクションが使えたり使えなかったり、色々とややこしいです。

そこで、データベースごとに --single-transaction を使うか、 --lock-tables を使うか切り替えて、複数のデータベースを一気にダンプする PowerShell スクリプトを書きました。

2012年1月2日月曜日

謹賀新年

新年おめでとうございます。

昨年は転職活動始めてみたものの中途半端になったり、空回りしたりと上手くいかないことも多かったです。今年は飛躍の年にしたいです。

この blog もぼちぼち更新していきますので、今後もどうぞよろしくお願いします。

2011年12月23日金曜日

Windows Server on Dell PowerEdge インストール記

Windows Server 2008 R2 を Dell PowerEdge R210 II にインストールする機会があり、私なりに苦労したのでまとめてみます。

構成

本体 Dell PowerEdge R210 II
RAIDカード LSI MegaRAID SAS 9260-4i
HDD Seagate Cheetah 15k.7 600GB * 2 (RAID1)
OS Windows Server 2008 R2 Standard Edition
リモート管理コンソール DELL iDRAC6 Enterprise
起動モード UEFI

私にとっては、初 SAS RAID、初 UEFI、初iDRAC6、初 Windows Server 2008 R2 と初体験だらけでした。

RAID カード設定

LSI MegaRAID は、起動時に WebBIOS という設定画面が使えますが、これが起動しませんでした。 Preboot CLI は使えるんですが、これはドキュメントがなく、ヘルプを出しても説明なしにコマンドの羅列だけ5画面ぐらいスクロールするので、使い物になりません。途方にくれました。

まず、 FreeDOS を使ってファームウェアアップデートを試みました。 USB メモリにインストールする方法 を参考にしました。ただ、Disk Explorer を使うのではなく、 .iso イメージを仮想ドライブとしてマウントすると、中にファイルシステムが見えるのでそれを使いました。 KERNEL.SYS と COMMAND.COM の2つで動きます。 コマンドの出力が長いので、 MORE.EXE も入れておいたほうが無難だと思います。

次にファームウェアのアップデートです。 LSI の Web はナビゲーションがわかりづらいですが、必要なのは最新版のファームウェアと、 DOS 用の MegaCLI です。 USB メモリのルートディレクトリに必要なファイルをコピーします。 更新方法は LSI の Knowledge Base に書かれています。 -NoVerChk はダウングレードの時にしか必要じゃないっぽいので更新のためのオプションは LSI の Knowledge Baseに書かれています。

megacli -adpfwflash -f mr2108fw.rom -a0
megacli -adpfacdefset a0

で大丈夫です。工場出荷時設定に戻さないとシステム起動しなくなるとか怖いこと書いてあるので、従ったほうが無難です。私はうっかり忘れましたが大丈夫でした。ダウングレードの時の話みたいです。ファームウェアを上げれば WebBIOS 使えるようになるかなと思って試したんですけど、だめでした。もし積極的に上げる理由がなければ、触らなくてもいいかもしれません。

で、再起動したら次はアレイの構築です。これも MegaCLI を使って行います。参考にしたのは HWRAID の Wiki です。MegaCLI のリファレンスも参考になります。

まず、

megacli -PDlist -a0

でドライブ一覧を出力出力します。 DOS には grep なんて洒落たものはないので、目grep で「Enclosure Device ID:」と「Slot Number:」が含まれている行を探します。これがドライブの識別番号になります。台数多ければ、ログが USB メモリに保存されているので、それを持ってきて他の環境で grep したほうがいいでしょう。

次に

megacli -CfgLdAdd -r1 [0:0,0:1] -a0

のように、論理ボリュームを追加します。 0:0 となっている左側が Enclosure Device ID 、右側が Slot Number です。私の場合は Enclosure Device ID は 252、 Slot Number は 0 と 1 でした。環境によって異なると思います。 -r の後に来るのが RAID レベルです。 -r0 だと RAID 0 になります。その他はデフォルト設定で、ディスクの全容量を使ってアレイが構築されます。細かい設定は Windows が起動してから確認しようと思いました。

デフォルトでは RAID カードにバッテリがつながっていないと、書き込みキャッシュが無効になっています。私は UPS つなげているので、書き込みキャッシュを有効にしました。

megacli -LDSetProp CachedBadBBU -LALL -a0

これで有効になります。無効にするときは -LDSetProp NoCachedBadBBU です。

以上で Windows のインストーラーから認識できる論理ボリュームが完成しました。次に、 OS のインストールに移ります。

Windows Server のインストール

iDRAC6 には、ネットワーク越しに仮想的に CD/DVD を認識させる仮想メディア機能がついています。これを使いました。

仮想メディア機能で、OS ディスクをマウントします。これでサーバーをリセットすると、 Windows のインストーラーが起動します。この時に UEFI モードにしておかないと、 UEFI 対応としてインストールされません。なお、 Windows Server 2008 R2 のインストーラーは特に追加のドライバ無しで、RAID アレイを認識しました。

ドライブの選択画面では、未フォーマットのドライブがひとつ見えます。「ここに Windows をインストールすることはできません」のようなエラーメッセージが表示されますが、無視します。パーティションはお好みで切るといいですが、私はそのまま使いました。なお、UEFI では起動ドライブに管理用パーティションが2つ作成されます。

あとは普通に OS がインストールされますが、再起動したら仮想メディアを終了させてください。ディスクをマウントしたままだとブートローダーのあとに「STOP 0xc0000178」でシステムが停止します。ぐぐるとディスクが読めないっぽいことが書かれていますが、原因がわからなくて2度もドライバ変えたりしてインストールしなおしました...

以上で OS が起動します。あとは Windows の世界です。おつかれさまでした。