2009年7月20日

第11回北海道開発オフに参加してきた

2009/07/18に第11回北海道開発オフがあったので参加してきた。
以前から存在は知っていたが、都合が合わず参加できないでいた。オープンソースカンファレンスで少しお話をして、これは参加しなければと思い行ってきた。

ただ自分はノートPCを持っていないため、開発する事はできない。そこで前に仕事で気分転換でやった「紙と鉛筆でコーディング」をやってみることにした。多分フルタイムそれでは飽きるので、先日購入した「初めてのPython」を持っていった。

場所はちょっと迷ってしまい、smokeymonkeyさんに助けてもらった。

午前中は「初めてのPython」を第3章を読んだ。ちょっとBlogネタを見つけたので後ほど書く。

午後からは、紙でコーディングを始めてみた。
ネタは、最近夜更かしが多くなってきたので「0時に強制的にシャットダウンするアプリケーションを考えてみることにした。

ネットで探せば指定した時間にシャットダウンするフリーウェアは多く見つける事ができるが、ほとんどはスタートアップで起動して常駐するタイプ。用があるのは0時ジャストのみ、なのでそれ以外は黙っていてくれ、と。Windowsの場合はタスクスケジュールというのがある。指定時間に何かする、というのはこれで良い。
あとは実行したらシャットダウンするプログラムを作ればよいのだが、実はOS標準でそういった機能がある。
Windowsの場合は

> shutdown -s

のようなコマンドでシャットダウンできる。これをタスクスケジュールに登録すればもう要求は満たされてしまう。ただし、それで終わってしまっては面白くないので、あえて面倒くさい方法でつくってみる。言語はVB.NETでいくことにする。

簡単に仕様をまとめる

  • 実行するとシャットダウンする
  • シャットダウンまでは、数秒カウントダウンする
  • カウントダウンは画面に表示する
  • カウントダウンする秒数は指定可能にする
  • シャットダウンのキャンセルは不可

必要そうなクラスを洗い出してみる。ムダにマルチプラットフォームを念頭にしたりした。

  • Programクラス:アプリケーションのエントリポイントなどメインのクラス
  • MainFormクラス:カウント状況を表示する画面
  • CountDownクラス:カウントダウンするクラス
  • Settingsクラス:アプリケーションの設定を表すクラス
  • IShutdownインターフェイス:Shotdownメソッドを定義したインターフェース
  • WinShutdownクラス:IShutdownインターフェースを実装。Windows用。
  • ShutdownFactoryクラス:OSに該当するIShutdown実装クラスのオブジェクトを生成するクラス

このあたりで時間切れ。Windows用のShutdownは調べてみるとWinAPIで実装できるらしい、Linuxではどうやるんだろう?マルチプラットフォームを考えたのは本当に無駄になってしまうかも。
今回は紙でコーディングの楽しさなんて全く無かった。。これは行き詰ったときにやると良くて、最初からやるものではないらしい。

最後はみんなで成果発表。AmazonAPIの修正やUSBボードいじり・形態素解析によるTwitter Botの改変・ニコニコ動画の履歴の外部化など。USBは面白そう。

その他参考URL
カタンの開拓者たち:http://www.tgiw.info/catan/

2009年7月18日

九州に遊びに行ってきたよ

某チャットで知り合った人たちが九州に集まるらしい。機会がないとなかなか九州にはいけないので、思い切って行ってみた。

博多

ちょうど博多祇園山笠というお祭りをやっている時期らしくところどころに下の写真のような山車に遭遇する。

夜は屋台で食べて、飲んで、帰りにラーメン。

北九州

2日目博多で待ち合わせ。ここからは車でいろいろ案内してくれた。まずは博多内で長浜ラーメン。

一気に北九州へ走って平尾台。

この下に鍾乳洞があって、水の中に足を入れながら歩いた。いろいろのんびりした後は新日本三大夜 景といわれる皿倉山からの夜景。

大分から走ってきた夫婦とも合流し、いざ飲み会へ。

下関・門司港

3日目。下関の市場へ行って朝ごはん。ふくや鯨を食す。

関門海峡から九州は本当にすぐ目の前。

九州に戻り、門司港レトロでぷらぷら。巌流島も見えた。

長崎

ここからは一人で一気に長崎へ。長崎といえば皿うどん。

日本三大夜景は時間が無い為断念。

翌日、中華街へ。

ちゃんぽん

写真は他にもいろいろ撮ってきた。 http://picasaweb.google.co.jp/fel97048/200907?feat=directlink

長崎はちょっと時間がなくて、あまり満喫できなかった。もし次行く機会があれば長崎でゆっくりとしてみたい。

いやしかし食べ過ぎた。

2009年7月10日

久しぶりにライブで演奏した

学生の時はバンドをやっていたりした。卒業してから約8年、何度かスタジオで演奏などはしたことはあったが、ライブをすることは無かった。

そんな中、友人の紹介でバンドに参加させていただく事となった。頻繁にライブ活動をしているバンドのようで、加入直後はさすがに出演しなかった。
最初はまぁ1~2ヶ月ほど練習に参加してリハビリを、と考えていたが、1ヶ月もたたないうちにライブもう出れば、とのお声が。

ちょっと悩んだが、まぁ何とかなるだろうと思い切って出演してみることに。

まるやまミュージックソン

こんなイベントが札幌で行われていたことも今回はじめて知った。

ライブ当日。やはり少々緊張していた。だがこの緊張は歓迎したい。
学生の頃の最後のほうは緊張しなくなって、終わったあとの爽快感がちょっと感じられなくなっていたので。

P1000150

ライブ本番。程よい緊張のもとで演奏できた。ちょっと音が小さかったみたい。自分でもほとんど聞こえなかった。

やはりバンドはライブでなきゃだめだ。生だよ生。

 

残念だったのは、車で来ていた為に打ち上げでビールを飲めなかったこと。ライブの後はビールと決まっているのに。
せめてビールっぽいものをということで、ノンアルコールビールとやらを飲んでみた。

P1000151

やはりビールでなきゃだめだ。生だよ生。

2009年7月8日

CLR/H第42回勉強会に行ってきたよ

2009/07/04に開催されたCLR/H Windows 7 コミュニティ勉強会 with Tech Fieldersに参加してきた。MicrosoftのTech Fieldersとのコラボレーション。

Windows Server 2008 R2 その概要と開発者にとっての注意点

  • 最大の特徴は「スケールアップ」
  • 64bit版しかサポートしない
  • R2の売りの機能は64bitでないと実現できない為
  • 最大256論理プロセッサをサポート→タスクマネージャでみると・・
  • ユーザーモードスケジューリング(UMS)
  • プログラムでは明示的な並列処理の記述が必要
  • データアクセスは並列性が高い
  • Non-Uniform Memory Access(NUMA)
  • 64プロセッサ未満の場合は、多くはそのまま動作する
  • 64プロセッサ以上の場合に動作
  • アプリケーションの64bit対応について
  • .NETについては「基本的には」移行作業は必要ない
  • 使用しているライブラリが64bitに対応しているか注意する必要がある
  • 32bitアプリケーションはWOW64というエミュレーター上で動作する機能がある
  • Visual Studioで作成したインストーラは32bitのみ
  • msiを編集で、install.utillib.dllを64bit用に変更する
  • Server Coreは.NET Framework、PowerShell対応に
  • PowerShellは基盤といえるほどOSと綿密
  • IISの制御もPowerShellでリモート管理が可能

PowerShellはまだ触ってみた程度なので、もうちょっと覚えると面白そう

開発者が喜ぶWindows 7 新機能 ~初夏のスペシャル・フルコース~

  1. 「Boot Drag Race」

    起動はさすがにXPの方が速いが、シャットダウンはWin7の方が速かった。

  2. 「ホワイトアウト」

    応答なしのウィンドウでも再描画される。クリックするとうっすらと白くなる

  3. 「往年の名作:哭きの竜」
  4. 「スーパーフェッチ」

    使用頻度などを基にアプリケーションを予め読み込んでおくことで、アプリケーションの起動を速くする。ほんとに速い

  5. 「ジニアス電力」

    電力の状態などをアプリケーション側で取得が可能。WinProcをオーバーライドしてメッセージを取得する。
    これはなかなか面白い

  6. 「愛のガブリオーラ」
  7. 「ガジェット・ボム」
  8. 「超高速レンダリング」

    Direct2D、DirectWrite

  9. 「お洒落なバー」

    タスクバーが太くなった。個人的にはちょっと好みではない。
    プレビュー画面にボタンなどを配置できる。(アプリケーションで提供できる)

  10. 「フルーツシェイク」

    ウィンドウを振ると、他のウィンドウが最小化する。向こうに設定することもできる
    このときのデモのネタは嫌いではない

  11. 「ジニアスナビ」
  12. 「サロゲートCheckers」
  13. 「5・7・5ポエム」
  14. 「お隣で動画再生」

    ローカルのメディアファイルを、他端末のWindows Media Playerでリモート再生できる。デジタル家電向けの機能。
    これは面白い。

  15. 「マイログイン画面」

Windows 7 対応アプリケーションの開発 ~互換性に関する傾向と対策~

  • Windows 7のバージョンは6.1
  • バージョンチェックはAPIを使用する
  • Win32APIではGetVersionEx・VerifyVersionInfo、.NETではExvironment.OSVersionがある
  • ユーザーアカウント制御(UAC)対応のアプリケーションを作成するには
  • アプリケーションマニフェストに記述して実行ファイルと一緒に配布、または埋め込む
  • 互換性の為の救済措置として、インストーラの自動検出機能がある(setup.exe)
  • 設計として、管理者権限が必要な処理を分離し、別のexe、dllにする
  • 昇格が必要な処理には、ボタンなどに「シールドアイコン」を表示する(ユーザーへの一貫性のあるUIを提供)
  • アイコンリソースはAPIなどで取得できる
  • 特殊フォルダパスはXPからは大きく異なる
  • APIや環境変数などから取得する
  • 救済措置としてジャンクションがある
  • ファイルやレジストリへの書き込みを別のパスへリダイレクトする機能もある→あくまで救済措置

Windows 7はすぐでは無いにしても、企業に導入されていくことは予想される為、仕事上でも対応が必要となってくるだろう。特に文字チェックはちゃんと把握しておく必要がある。

P1000149
懇親会のお品書き
P1000152
増えたよ