2011年6月30日

炉ばた焼かーにばる

東京から来た友人とイカが食べたくて、twitterでイカが美味しい店を募集したところ炉ばた焼かーにばる を紹介してくれた。
前は何度も通っているけど入ったことはなかった。残念ながらイカは品切れだったけど、いろいろとおすすめされるがまま注文した。

その一つ「ちっぷの刺身」。ちっぷってあまり聞かないけど、支笏湖でとれるヒメマスのことらしい。おいしかった。日本酒は「北の勝」をいただいた。




大きな地図で見る

2011年6月24日

「JavaScript本格入門」

第55回CLR/H勉強会で頂いた「JavaScript本格入門」。ものすごく時間が空いてしまったけど、まだ全部呼んでいない。でも約束だから感想を書く。

内容

「はじめに」には以下のような一文がある
むしろ「これまで少しはJavaScriptをかじったことがある、しかし、いまいち正しい文法知識になると自身がない」という方が、もう一度基礎を確認し、最終的にAjax記述を実装するのに十分な知識を習得することを目標としています。
プログラムを仕事としながらもWebアプリケーションはほとんど関わったことがない自分にとって、JavaScriptを学ぶのに、ちょうどよい本と言える。
基本的な文法や組み込みオブジェクトの説明から始まり、DOM操作やAjax、jQueryといったWebアプリで必要な技術の話となっている。最終章は「現場で避けてとおれない応用知識」としてユニットテストやHTTPモニタリングの話もあって興味深い。
Ajaxの章ではサーバー側のプログラムとしてPHPのサンプルコードが掲載されている。サンプルコードの動作を確認するにはPHP環境を構築する必要がある。

感想

はじめの基本文法の変数や演算子の説明もあるが、初心者に理解しやすい内容ではないように感じた。サンプルソースは、説明する内容を補う最低限のソースとなっている。ある程度プログラミングの経験がある人にとっては理解しやすいものかもしれない。
HTMLやAjaxでサーバーが返すXMLをDOMで操作するときの、ツリー構造の図がとてもわかりやすい。

2011年6月14日

オープンソースカンファレンス2011北海道に参加してきた

2011/6/11はオープンソースカンファレンス2011北海道が開催されたので参加してきた。

IPv6 対応アプリケーション開発なんて怖くない

  • IPv4の総数は地球人口よりも少ない→枯渇するのは当然
  • IPv6の総数は地球上の「すべてのもの」にアドレス割り当てできるほどの数
  • アプリ側のIPv6対応:HTTPサーバー、DNSサーバー、メールサーバーなど
  • データベースなどにアドレスを保持する場合は、文字列が簡単でよい。45バイトで十分
  • Webエンジニアは「世界を楽しませる」「世界を驚かせる」

アプリケーション側の対応といっても、ほぼサーバーの設定などの話だった。これらの上で動く各アプリケーションとなると、「アドレス」そのものを扱うものは当然対応が必要だが、それ以外ではあまりイメージができない。

サーバ仮想化環境のためのストレージシステム入門

  • ストレージの基本
  • HDDのアクセス時間は(シーク待ち時間・回転待ち時間・転送速度)
  • IOスケジューラ:シーク待ち時間や回転待ち時間が最小になるよう要求の順番を調整
  • SANとNAS
    SAN:外付けハードディスク
    NAS:ファイルサーバー
    というイメージ
  • 自宅でラックを組む→家族には「パソコンデスク」でOK

前半のハード寄りなはなしは面白かった。一度こういうところを意識して自作PC作ってみたい。

テスト駆動開発による安心開発 ー「もう何も怖くない」

  • V字型での単体テストは、詳細設計が完璧であることが前提
  • 現在ソフトウェア開発の3本柱(バージョン管理・テスティング・自動化)
  • テストコードはサンプルコードとなり、それ自体がドキュメントとなる
  • 最初にテストコードを書き失敗させる
  • その後の作業は「テストを成功させる」。「正しく実装する」ではない
    →リファクタリングで、汚い動くコードから綺麗な動くコードへ

テストコードの後が「実装する」ではなく「テストを成功させる」というのが衝撃だった。なるほどテスト駆動開発がイメージできていなかったのはこの辺りの認識に誤りがあったからなのだろうか

これからの「言語」の話をしよう ―― 未来を生きるためのツール

  • F#
  • 手続き型プログラミングと関数型プログラミング
  • 関数型プログラミングは、より人間寄りなパラダイム
  • 変数の値を変更できない→並列処理が用意に実装できる
  • 「札幌はF#の街」「なまらF#しようよ」
  • F#のユニットテストフレームワーク:FSUnit、NaturalSpec

いきなりアプリケーションを作るよりも、スクリプト的なもので使ってみると覚えやすいかもしれない。終わったあと後ろを見たらすごい人数がいた。
気になったのは、時間ピッタリに止められたこと。質問回答の途中だったのだからそこら辺は柔軟に対応しても良いんじゃないかな。

Ubuntu 11.04のご紹介

  • バグ#1、「Microsoftの市場シェアが大きすぎる」
  • Ubuntuとはこのバグを修正する為のパッチである
  • 打倒Windowsというわけではなく、自由な世界があることを知ってもらうことが目的
  • Ubuntu:「他人への思いやり」を表すアフリカの言葉→オープンソースの核心
  • Ubuntu 11.04、Unity、プリンタドライバの自動インストール、UbuntuOne
  • コミュニティマネージャJono Bacon著の「アート オブ コミュニティ」

「アート オブ コミュニティ」の争奪ジャンケンで勝ってゲットした

Firefox Mobile ~モバイル Web の現在、そして今後~

  • 現状、モバイルのブラウザはOS標準のブラウザ
  • ブラウザ単体のアップデートが提供されない
  • そこでMozillaはFirefox for Mobileを作った
  • デスクトップ版と同一コード
  • アドオンも基本的に同一コードで動作する(若干の手直しは必要)
  • Firefox 5からリリース方法がかわる(6週間ごとのリリース)
  • マイナーバージョンは出さない(5.1などはでない)
  • アドオンのバージョンアップへの対応は、問題なければ自動的にアップされる

感想

個人的に参加したのは3回目なのだけど、開催中に以下のような事が気になった。

今日は女性が多い気がするけど気のせいかな #osc11do

fel97048

やはり他の人も思っていたようで、カップルでの参加も見かけたとのこと。

また懇親会では、僕が卒業した大学の学生が話しかけてきてくれた。嬉しくていつもより口数が増えてしまった。

2011年6月11日

画像を切り取って保存する

画像処理において、画像の一部を切り出すことをトリミングというらしい。画像編集ソフトなんかにも大抵「トリミング」機能が実装されているだろう。

そんな画像を切り取る処理を.NETでやってみる。

.NETでは画像を扱う際にはBitmapクラスを使用する。BitmapクラスのCloneメソッドでサイズを指定すれば、そのサイズのBitmapオブジェクトができるので、それを保存すればよい。Cloneメソッドの引数はRectangle構造体とPixelFormat列挙体。

Rectangle構造体とは四角形の位置とサイズを表したもの。元画像の左上を(0, 0)として(X座標, Y座標, 幅, 高さ)の値でRectangle構造体を作成して渡す。PixelFormat列挙体はヘルプを見てもよくわからなかった。とりあえずは元画像の値をそのまま渡す。

例えば


photo by tsukacyi

のようなユッケの画像をトリミングするプログラムは以下のように書ける

'元画像
Dim source As Bitmap
source = New Bitmap("source.jpg")

'切り取るサイズ
Dim rect As Rectangle
rect = New Rectangle(30, 80, 400, 320)

'切り取り後の画像
Dim trimed As Bitmap
trimed = source.Clone(rect, source.PixelFormat)

'保存
trimed.Save("trimed.jpg")

source.Dispose()
trimed.Dispose()


トリミング後の画像は以下の通り。

2011年6月6日

第7回北海道セキュリティ勉強会に参加してきた

2011/05/28は第7回北海道セキュリティ勉強会が開催されたので参加してきた。

今回はLACの西本さんデー

サイバー救急センター対応事例と最近の攻撃事例

昨年の予測と結果

  • ガンブラーの猛威はまだ続く
    →2010では収束していった
  • クラウドとグレーゾーンの話題
    →最近、iPhoneの位置情報保存やDropBoxの脆弱性の問題がでてきた
  • クラウドサービスでの事件
    →AmazoneEC2のダウン
  • ランサムウェア・スケアウェア
    →日本では発生せず

2010何が起きたか「おさライオン」

  • 岡崎図書館
    SIに責任を取らせる空気が無い
  • FDDの改ざん事件
    「ふぁっと is this」
    デジタルの証拠の取り扱いのコンセンサスがまだとられていないのでは
  • 相撲八百長
  • 918事件
  • Tomcat上のStrutsの脆弱性をねらったルートキット
  • 情報漏えいに関して
    百度で検索(JCB、VISAで検索)
    →自分のサイトを検索して、どう表示されるか見るのもセキュリティ対策

    「正当な利用者も攻撃者も接点は検索エンジン」
    「利用者に興味を持たせ、攻撃者に興味を持たせないSEO対策」
  • 広告サイトが改ざん
    検索サイトからのアクセスでは正常な応答を返す

 

  • 古いバージョンJava(JRE)の脆弱性
    社内システムで使用していると最新にバージョンアップできないケースも
  • 尖閣ビデオ流出
  • 警視庁の情報内部告発
    告発者を支援するネットワークインフラが出来上がっている
  • 制御システムへの攻撃
    クローズな環境への侵入と制御を示しデータの持ち出しなどへの可能性を示した
  • ソーシャルメディアの威力
    エジプト民主化運動
    日本企業でのソーシャルメディアへの対応
  • Web攻撃で株価が動く

IT事件の一般化

  • 朝ズバで
  • 多くの普通の事件にITが絡んだ
  • 取材メディアがストーリーを持っている

震災後のセキュリティ他

2011年、辛卯(かのとう)の年

  • 人類史上初めての経験
  • 阪神大震災は1995年
    インターネットはまだ普及していない時期だった
  • ディズニーランドの4つの行動原則
    安全性・礼節・成果・効率
  • パソコンのデータを無償で復旧
    流れたHDDの個人情報の被害届は?
  • 漁業もパソコンが無いと作業できない
  • 「豊かさの証明と電力」

ソニー事件

ハッカーのType

  • A-type:パイオニア
    脆弱性を発見、Jailbraik方法を開発を開発・公開
  • B-type:開発者
    仕事を効率よくするなど
  • C-type:市民活動
    穏健派、強硬派、部闘派
  • D-type:犯罪者
    金銭目的、泥棒、恐喝、インサイダー
  • E-type:セキュリティ関係者
    セキュリティ研究者・研究機関・諜報機関

 

  • サーバが再起動して気がついた
    →下手を打った?わざとやった?
  • ファイルを置いている→金銭目的ではなさそう
  • 隔離セキュリティの崩壊
    対策が面倒だから安易な隔離セキュリティ
    →パッチあてられない
    →最新バージョンではない(脆弱性が残っている)
  • 経済産業省がソニーに対して「報告の徴収」→「指導」

標的型サイバー攻撃

  • ウィルス対策ソフトをかいくぐる
    →ウィルス対策ソフトはウィルスに有効
    →標的型攻撃での不正プログラムはウィルスではない

「ウィルス対策ではない」

  • メールは内部に入るための手段でしかない
    →もUSBメモリ、改ざんサイトなど他にも手段はある
  • 入った後の対策も必要
    「風邪をひくな、というのはもう無理」
  • 江戸時代のセキュリティ方針
    相互監視体制
    入り鉄砲に出女

「入るを図りて出るを制す」

 

「入り鉄砲に出女」の考え方というのは、なかなか勇気がいるというか、もうそういう意識改革が必要になってしまったのかと、ちょっと衝撃だった。

今回はグループディスカッションもあった。初めての体験だったが、なかなか面白かった。何か発言するとなんとなく気持ち良いし。