OSC2011 Kansai@Kyoto 2日目 準備中

OSC京都会場からおはようございます。

昨日、ブースの準備は終わってるので今日は特にすることがありません。
他のブースはな!

ということで、配布して資料が少なくなったので寂しいなかで資料の追加作業です。静かです。

資料がたりなくなるくらい話を聞いていただけるのはありがたいですね。
もうすぐ受付開始。本日もよろしくお願いいたします。

Facebooktwitterlinkedintumblrmail

OSC2011 Kansai@Kyoto ブース準備完了

OSC2011 Kansai@Kyoto 会場からおはようございます。

ボクです。

ブースの準備できました。思っていたより人が通りそうです、ここ。

あからさまに避けてるひとはボクじゃない人です。汎用機系の協力強力助っ人。

受付も始まったようです。

Facebooktwitterlinkedintumblrmail

OSC2011 Kansai@Kyoto のスライド出来た〜

京都からこんばんは。村部です。
明日から OSC2011 Kansai@Kyoto です。

今回、セミナーは私がやらせていただきますので新幹線やホテルでスライドを作っていたのですが、さきほど完成しました。

といっても、OSC2011 Kansai@Kobe でやらせていただいた前説のスライドを少し修正して無駄に音楽つけてみただけなんですが。

このスライドは Kobe の時と同じく諸般の事情で門外不出です。
お時間があったら見に来てくださいね。

https://www.ospn.jp/osc2011-kyoto/modules/eguide/event.php?eid=51

2011-07-16 (土) 15時15分からです。

そうそう、端っこのほうなんですがブースのほうもよろしくお願いします。

Facebooktwitterlinkedintumblrmail

イケテルEngineYard勉強会に参加してきました。

RBCによる主催イベント「イケテルEngine Yard勉強会」に参加してきました。
メインイベントは米EngineYard社のCEOであるJohn Dillon氏によるトーク。

開催時刻から、John氏が来られるまでの間はビジネス勉強会。お題は「ソフトウェア会社を作る。ただしエンジニアコミュニティとどう付き合って会社を育てていくか。」というもの。4班に別れて会社名、業務内容、エンジニアコミュニティとの付き合い方を議論し、模造紙に書きだしていき、最後に各班発表となりました。

で、なんでこういう内容だったかと言うと、Engine Yard社そのものがコミュニティとともに発展してきた会社からなのだと。で後半のJohn氏のトークが始まったのであります。抜粋すると

  • 製品を作って、それと半分近くのコストを掛けて営業マンセールス、マーケティングを行うといった従来のセールス手法は変わっていく。
  • Engine Yard社は売上の20%(間違ってたらごめんなさい)をコミュニティに投資している。
  • コミュニティへの投資、そしてそのコミュニティが製品・サービスを利用してくれる。
  • 当然オープンソースにもコミットしている(パッチの公開など)
  • 顧客にサービスを使ってもらうように営業するのではなく、サービスを使う手助けをする。

 

全てを弊社に適応できるものではないかもしれませんが、ききいってしまう内容でした。

サンブリッジのアレン氏の話は、ズバッと要約すると「シリコンバレーいけ」というものでした。日本でやってることなんて世界の誰も見てない。残念ながらそうなんですよね。

勉強会後は、交流会の場まで用意してもらいました、感謝です。John氏に「普段どんな時間の使い方をしているのか」という質問投げかけるべく、チャンスを狙ってましたが、なんせ人気者ですので最後の最後で捕まえて質問投げた瞬間、ジ・エンドとなってしまいましたが、おかげで円陣の際にはJohn氏の隣をゲットするというある意味幸運さを発揮しました。まあ少しでも話せて良かったです。

スタッフの皆様本当にお疲れさまでした。

なんかすごくまとまってない文章ですが、お許しくださいませ。

Facebooktwitterlinkedintumblrmail

7/7(木)に初心者向け画像加工、HTML、CSS勉強会やります

今週、弊社デザイナーの田頭さんが初心者向けの画像加工と
HTML、CSSの勉強会を開催してくれます。

7/7(木)
14:00〜15:00 画像加工勉強会(初心者向け)
15:00〜16:00 HTML、CSS勉強会(初心者向け)

場所:(有)ランカードコム 大手町事務所
住所:〒852- 8127 長崎県長崎市大手1丁目2-2
TEL:095-801-8880

一般的な内容なので社外の方も希望がありましたら
受け入れOKです。場所が広くないので数人ですが。

ご希望の方は murabe@lancard.com まで連絡くださいませ。

Facebooktwitterlinkedintumblrmail

VB.NET + NUnit 2.5 の Assert.Throws で例外のテスト

[ブログ紹介] NUnit 2.5 で追加された Assert.Throws: TDD.NET

を参考に VB.NET の書き方にしただけですが。

Imports NUnit.Framework

Public Class ExceptionTest
    Private Shared Function throwArgumentException(ByVal obj As Object) As String
        Throw New ArgumentException("VarType Error: " & TypeName(obj))
    End Function

    
    Public Sub ArgumentExceptionTest(ByVal obj As Object, ByVal expected As String)
        Dim ex = Assert.Throws(Of ArgumentException)(
            Function() throwArgumentException(obj)
        )
        Assert.That(ex.Message = expected)
    End Sub
End Class

サンプルコードは実際のコードを編集して書きましたが動作確認してないので参考程度に。

.NET のサンプルってC#の場合が多いので「VB.NETではどう書けばいいのかなぁ」ってことも結構あります。

Facebooktwitterlinkedintumblrmail

MacでPPTP(VPN)接続しつつ、通常の接続も行えるようにする方法

Mac OS X 10.5でPPTP接続する方法

MacでPPTP使ってVPN接続するようになって、いろいろと面倒だったことが解決して良かった。
と思っていたのですが、PPTPの方の優先度を上げないといけない場合は、通常の接続が駄目になってしまうようです。
VPN側にインターネットへの制限が掛かっていたりしたら、残念なことになります。
ローカルなネットワークにPPTPに繋ぎながら、それ以外は通常の経路で通信ということで下記にて解決しました。

方法としては、PPTPの優先度は通常のインターネット接続より下げておいて、特定のネットワークアクセスの場合のみPPTPインターフェースを使うようにしてあげればいいようです。VPNを接続した後、ターミナルで下記コマンドを実行すればOK。

sudo route -nv add -net 192.168.13 -interface ppp0

ただ毎回ターミナル上げるのは面倒臭いです。 ちょっと調べると、PPTPが開始するときに実行されるスクリプト(参考)があるじゃないですか。ということで

sudo vi /etc/ppp/ip-up

#!/bin/sh

if [ "$1" = "ppp0" ]; then
/sbin/route -nv add -net 192.168.13 -interface ppp0
/sbin/route -nv add -net 192.168.15 -interface ppp0
fi

のような感じで、route add するスクリプトを書きました。

sudo chmod Cheap Adobe Photoshop CS5 744 /etc/ppp/ip-up

するのをお忘れなく。

もっと楽、シンプルな方法があったら教えてください。

Facebooktwitterlinkedintumblrmail

VS2010+NUnit2.5.10でテストメソッドをデバッグ

VB.NET+NUnitで開発をしていますが、テストをしてもメソッドの戻り値しか確認できず不便だったので、テストメソッドもデバッグできるようにしました。

1.
ソリューションのプロパティからスタートアッププロジェクトをテストプロジェクトに変更。
マルチスタートアップでも可。
2.
テストプロジェクトのプロパティを開いてデバッグの開始動作を[外部プログラムの開始]に変更。
ファイル選択からnunit.exeを指定。
3.
開始オプションのコマンドライン引数にテストプロジェクトのdllを指定。

これでできるはずだったのですが、起動はしてもブレークポイントに反応してくれません。
調べてみると、
[VS2010][NAgile] VisualStudio2010 Express + NUnit でDebug実行ができない場合
こちらのページを発見しました。
どうやら.NET Framework 4.0だとデバッグ実行ができないみたいです。
なので上のページを参考にさせていただいて、nunit.exe.configを編集。

4.
nunit.exe.configのconfiguration内に下の3行を追加。


    

上書きして実行してみると、ちゃんとブレークポイントに反応するようになりました!

Facebooktwitterlinkedintumblrmail

PHP + SQLite で正規表現(PDO_SQLITE編) in CakePHP

CakePHP 1.3.6 での話です。

これ、やったのはずいぶんと前なんですが書いてなかったですね。
私はすごくうれしかったのですが、周りの反応は薄かった覚えがあります。

CakePHP 1.3 でSQLite3ってのはかなりイレギュラーで、確か、CakePHPのTracから探してきたドライバ(dbo_sqlite3.php)を使用しています。
確認しようと思ったのですがTracに繋がらないぞ?ってな状況。

そんなこんなでとてもマイナーな話なんですよね。 反応が薄いのもむべなるかな。

ですが、PDOでSQLiteにアクセスしている場合なら応用が効くかと思います。
dbo_sqlite3.php 内部でPDOが使用されておりますので。

app_model.php でやっているので関係するところをまとめて引用。

class AppModel extends Model {
    function beforeFind($queryData) {
        parent::beforeFind($queryData);
        //正規表現関数有効化
        $this->regxEnable();
    }

    /**
     * 正規表現関数有効化
     */
    public function regxEnable(){
        $db =& $this->getDataSource();
        $db->connection->sqliteCreateFunction('RGX', array('AppModel', 'sqliteRegexMatch'), 2);
    }

    /**
     * 正規表現関数
     */
    public function sqliteRegexMatch($regex, $str) {
        if(empty($regex)){
            return true;
        }else{
            return preg_match($regex, $str);
        }
    }
}

$db->connection がPDOのインスタンスです。
sqliteRegexMatch で $regex が empty の場合に true を返しているのは実装しているアプリケーションの都合ですのでご注意を。

実装の際、下記サイトを参考にさせていただきました。

SQLiteで正規表現 « karak

違いはPDOであること、preg_matchを使用していること、SQL関数を処理するコールバック関数としてメソッドを使っていることです。

CakePHP的ポイント

  • DBOからPDOのインスタンスを取得
  • beforeFindで検索時に正規表現関数を有効化

PDO_SQLITE的ポイント

  • sqliteCreateFunctionでSQL関数登録
  • sqliteCreateFunctionのコールバック関数にメソッドを登録する際の書式

使い方ですが、参考サイトと違ってpreg_matchでの正規表現であることに注意してくださいね。

私の場合、CakePHPでの使用ですので

    /**
     * モデルのconditonsに正規表現を使う場合の配列を返す。
     *
     * @param  $pattern 正規表現
     * @param  $cols 判定対象のカラムの配列
     * @return 
     */
    function whereByRgx($pattern, $cols) {
        $conditons = array();
        if(!empty($pattern)){
            foreach ($cols as $colname) {
                $conditons[] = "RGX('" . $pattern . "', " . $colname . ")";
            }
        }
        return $conditons;
    }

てなモデルでのfindなどで使用するconditions用の配列を返すメソッドを作って使っております。

Facebooktwitterlinkedintumblrmail

PHP5.1.6-27でのファイルアップロードと文字コード変換

OSはCentOS5.4でphp-5.1.6-27で確認しました。

この状態でencoding_translation = OnにしてFormタグにenctype=”multipart/form-data”を指定すると、同じForm内に入力した文字コードは自動変換されません。
encoding_translation = OffにしてPHPで全変換するか、事前にチェックして書き換えるか、悩みどころです。
encoding_translationの必要があるシステムは可能な限り避けたいなと思いますけどね。

Facebooktwitterlinkedintumblrmail