投稿者のアーカイブ

OSC2011 Kansai@Kyoto ありがとうございました

帰路の新幹線からこんばんは。
セミナーも無事(?)おわり、長崎に向けてひた走っております。

私の力不足でお答えできなかった技術的な質問などもあり、申し訳ありませんでした。

汎用機ダウンサイジング特設サイト
のメールフォームから質問していただけると詳しいものからお答えできるかと思います。

ぜひご活用ください。

マイナーな題材に関わらず足を運んでくださった方々、運営の方々、関係するすべての方々、ありがとうございました。

またお会いしましょう。

Facebooktwitterlinkedintumblrmail

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

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

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

OSC北海道、セミナー

今回、私はブースで留守番してたのでセミナーで前説やったりタイムキーパーやったりはできませんでしたが、写真ぐらいは撮っておきたい!撮っていきたい!

ということで、はじまる直前

セミナー佳境でもうすぐ終わりってところ

セミナーが終わり、ブースの片付けも終わって油断してる代表

正直、セミナーは人数が少なかったのですが、興味を持ってくださるかたはすごくディープで「やってよかったなぁ」って感じでした。

でもセミナーは寂しすぎたのでもうちょっと事前の宣伝とかがんばろうかな、と思いました。

Facebooktwitterlinkedintumblrmail

OSC北海道、来場者ふえてきました

顔を写さないようにしてるのでわかりにくいですが。

Facebooktwitterlinkedintumblrmail

Mac で複数ファイルの一括置換ってどうしてます?

Windows だと Devas ってソフトでバッチリだったんですが、Mac ではいいソフトを見つけることができずにいます。

サブディレクトリ内のファイルも含めてまとめて置換は、今はターミナルで次の手順でやってます。

まず、find で特定拡張子のファイルリストをとって xargs で grep にわたして置換したい単語を検索。

$ find . -name '*.拡張子' | xargs grep 置換したい単語 

で、grepに -l オプションつけて置換したい単語が含まれるファイルリストをとって xargs で  perl にわたして置換。

$ find . -name '*.拡張子' | xargs grep -l 置換したい単語 | xargs perl -p -i.bak -e 's/置換したい単語/置換後の単語/g'

perl の -i オプションに .bak と付けてるので元ファイルは bak という拡張子で残ります。
「perlだけでやればいいじゃん」と言われそうですが、いきなりやるのは不安なのと置換が行われてないファイルまで全てタイムスタンプが変わったりしたのでこの方法に落ち着きました。

で、置換されたファイルの内容確認して問題なければbakファイル削除。

$ find . -name '*.bak'

で確認して、

$ find . -name '*.bak' | xargs rm

完了〜。 xargs ラヴ♡

Unix系なら他でも使えると思います。

いいっちゃいいんですが、記憶力がないので思い出せる気がしません。historyがあふれるとオレ終了って感じ(なのでメモという意味もあり)。

ちなみに私がターミナルで一番使うコマンドはブッチギリで

$ history | grep コマンド名

history ラヴ♡♡

Facebooktwitterlinkedintumblrmail