スキップしてメイン コンテンツに移動

オープンソースカンファレンス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

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

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

コメント

このブログの人気の投稿

VirtualBoxのUbuntu 18.04でNAT + ホストオンリーアダプター

VirtualBoxのVMにインストールしたUbuntu Server 18.04で、ネットワーク割当を「NAT」+「ホストオンリーアダプター」にする場合の設定についてメモ。 VMを作るとき、ゲストOSからインターネットに繋がって、かつホスト-ゲスト間でもつながる環境にしたいとき、VMのネットワーク割当は手っ取り早いのは「ブリッジアダプター」なんだけど、会社のネットワークでは都合がわるかったりするので「NAT」+「ホストオンリーアダプター」にしている。 アダプター1は「NAT」を選択 アダプター2は「ホストオンリーアダプター」を選択 ゲストOSであるUbuntuのネットワーク設定は、NATに該当するNICはDHPCで、ホストオンリーアダプターに該当するNICは固定IPとする。 Ubuntu 18.04ではネットワーク設定はNetplanで行う(Ubuntu 17.10から変わったようだ)。編集する設定ファイルは「/etc/netplan/50-cloud-init.yaml」 network: ethernets: {NATのNIC}: addresses: [] dhcp4: true optional: true {ホストオンリーアダプターのNIC}: addresses: [{固定IPアドレス}] dhcp4: no version: 2 ポイントは、ホストオンリーアダプターに該当するNICの固定アドレスを設定するときに、 ゲートウェイを設定しない こと。 以前に QiitaのVirtualBoxでNAT + Host-Only Network環境を構築する を参考にしていたのに、今回18.04で設定する際にすっかり忘れてはまってしまった。 IPアドレスは「192.168.0.2/24」のようにサブネットマスクも指定する。 NICに指定するデバイス名は以下コマンドで表示されるlogical nameが該当する。 > lshw -class network たいていは「enp0s3」「enp0s8」となるようだ。 設定ファイルを保存したら

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

画像処理において、画像の一部を切り出すことをトリミングというらしい。画像編集ソフトなんかにも大抵「トリミング」機能が実装されているだろう。 そんな画像を切り取る処理を.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() トリミング後の画像は以下の通り。

Microsoft.VisualBasic.dllを参照しない(その1)

VB.NETには、VB6に実装されていたCIntなどの型変換関数やLeft、Rightなどの文字列関数が使用できる。これらはMicrosoft.VisualBasic名前空間で定義されている。 個人的にはこれらはVB6との互換性の為に用意されたものと考えていて、あまり使用しないようにしている。名前付けのガイドラインにも沿っていないため、他の.NETなメソッドと並ぶと違和感があるというのもある。 注意:このエントリはVisual Basic 2005 Express Editionと.NET Framework2.0 SDK環境を元に書いています。 そんなわけでチーム開発の場合に、これら関数を使用しないよう、Microdoft.VisualBasic.dllを参照しないプロジェクトを作成しようと考えた。 Visual Studioのプロジェクトのプロパティから「参照」タブを開いてみると、すでに参照しているdllにMicrosoft.VisualBasic.dllが含まれていない。  下の一覧にImportされる名前空間が表示されているが、そこには含まれている。 Importされる名前空間からチェックをはずし以下のソースを書いてみる Public Class VisualBasicTest Public Shared Sub Main() Dim i As Integer = CInt("1991") System.Console.WriteLine(i) End Sub End Class だが、ビルドは通って実行もできてしまう。 逆アセンブリしてみる。 スタートメニューから「Microsoft .NET Framework SDK v2.0」→「Tools」→「MSIL 逆アセンブラ」を起動して、ビルドでできているexeを開く。すると、MANIFESTの部分を見てみると下記記述が見つかる。参照しているようだ。 .assembly extern Microsoft.VisualBasic { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) .ver 8:0:0:0 } きっとVisual Studioが