アーカイブ - 3月, 2013



2013年 3月 12

ぐんまRuby会議01
ぐんまRuby会議01 : ATND
日時 :2013/03/09 13:00 to 18:00
会場 :高崎市総合福祉センター

日頃お世話になっているGunma.webにて開催を知り、僭越ながら参加しました。Rubyには興味あるのですが、なかなか学習する時間が取れないので Hello,world 止まりの知識。今回は群馬で初開催という事もあり、ビックな方々の参加多数のようです。後で知ったのですが。

ぐんまRuby会議01のテーマは puts “Hello, World” だし、Gunma.webで知り合いの方も運営手伝っているし、知っている人もチラホラいるので軽いノリでエントリーしたのですが、諸事情あって少しだけお手伝いする事に。急に緊張して来ましたよ。

ランチセッション

ぐんまRuby会議01 – 群馬名物:鳥めし竹弁当(登利平)を食べる会 : ATND

群馬名物の登利平「鳥めし」を食べる会です。

実は高崎駅にはたかべんの「鶏めし弁当」が売られているのですが、賛否はあるものの事実上群馬の「とりめし」と言えば登利平となっています(たかべんの方が先に販売されていたようですが )

間違えた方もいらっしゃるようで…

高崎駅構内にはたかべんさんのものしか売っていないそうです(改札出ると登利平もあります)登利平の鳥めしはリーズナブルな「竹」が一番美味しいので今回逃した方は次の機会に是非!

本編

最初はYuguiさんによる講演「Mad Web Programmer」Ruby書く人なら常識なのかもしれないのですが、通称キリン本の著者との事。どんな方なのかと思っていたら意外な人物像で、ビックリしました。重量感のあるお話でした。

須藤功平さん「プログラマー」 “同じ事でつまづく人を少なくしたい。”が印象的。コードを書くことが好き。このブログも間接的にはそんな感じで書いている…いや、自分がまたつまづかないようにだった。

大場光一郎さん「サラリーマン」 球団持っていない方の会社の人。ペアプロならぬトリオプログラミングが最高でした。いや、するのは嫌かも…。

愛を叫んだケダモノ

プラチナスポンサー「ツルマウソフト」早川真也さん。社会貢献として取り組んでいるという入力デバイスの話が気になります。人生で2番めのピークとの事。劇場版は…

寺嶋祐也さん。温泉は近い。勉強会の会場は遠い。外貨の獲得。実は結構有効(重要)だと思っています>外貨の獲得。Middleman勉強会ではお世話になります。

LT

関 将俊さん。アーティスト。OSSは難しい。アーティスト志向。自分のために書く。かっこいい。

g新部 裕さん。g新部のgは群馬のg。オープンソースって言うな!で、ちょっとビクってなりました。

こしば としあきさん。PadrinoというRubyのフレームワークのお話。

五十嵐邦明さん。東京と群馬の人口17倍違う。群馬で3人集まる勉強会は成功。

斎藤ただしさん。最初のRuby本の経緯のお話。

寺嶋章子さん。「おれと嫁とRuby」の人の嫁さん。Rubyで育児Hack。馴れ初めの地が伊香保グリーン牧場とは!

所感

Ruby会議で特に感じたことは地域開催にも力を入れている、という事。Rubyが盛り上がっている背景にはこういうバックエンドがあっての事なのかな、と思いました。

実行委員長の南齋さんをはじめ、運営スタッフの方々、guRuby、toRubyの方々、お疲れ様でした!


Filed under: 勉強会

Trackback Uri






2013年 3月 4

MTCafe Gunma 2013
2013年03月02日 会場:カントリーホテル前橋 1Fティールーム「けやき」

Gunma.webにてLTされていた藤本 壱さんが主催のMTcafe Gunmaに参加して来ました。主催の藤本さんですが、つい先日、改訂新版スタイルシートポケットリファレンス[CSS3対応]を出版されたとの事で、おめでとうございます。

ブログエントリーを見ていたら、「改訂新版 スタイルシート ポケットリファレンス 〔CSS3対応〕」プレゼントキャンペーン を行なっているとの事で、ついでみたいな感じになってしまいますが告知してエントリーしてみるテスト。

さて本題です。

MTcafeはMT=Movable Typeのライトなイベントであるとの事です。Movable TypeはPerl製という事もあり、以前興味があった時期があったのですが、お値段がそこそこ良かったのでちょっと敬遠しているうちに使う機会を逃していました。

これを機に少しでもMTに触れられれば、との思いでおじゃまさせて頂きました。

まずはSix Apartの長内さんのプレゼンでは群馬の思い出から始まり、MTとは何か、最近のMTの動きを紹介して頂きました。Six Apartは現在日本法人がメインで活動しているそうで、セブン-イレブンに例えてこれからの展望を話されていました。

WPと比較しての優位性で公的な機関での利用というのが挙げられていて、入札で優位というお話が印象に残りました。良い悪いは別にしてオープンソースの利用を敬遠しがちな公的機関。国内でサポートの厚いMTが優位であるというのは当たり前ではあるかも知れないけど、思いつかない事でした。

続いて藤本さんのプレゼンでは、MTのプラグインのお話。WPconnectorというプラグインで、WordPressのエントリーをMovableTypeで管理しようというものらしいです。

どちらもMySQLを使っているのでDBにアクセス出来れば情報の取得は可能と思いますが、実現するためにはいろいろなロジックを実装する必要が有るようです。MTで使われているO/Rマッパー(MT::Object)を継承してサブクラスを作っていくとの事ですが、WP側の操作もボタンひとつで出来るように作られているそうです。ヌカリがありません。

気になったのはデモを動かしている時にlocalhost:5000だった事。きっとstarmanで動かしていたのだと思うのですが、リモートもstarman(+Nginx等)じゃダメなのかが気がかりなところです。実際に自信で試してみないと分かりませんね。

タカハシさんのプレゼンはテンプレートを作ればXMLで書きだすという事も出来るというお話でした。このXMLで書きだしたファイルをInDesign等で編集することによってwebだけではなく紙メディアでも使うことが出来るので幅が広がるとの事でした。XMLで書き出せばEPUB化して電子書籍も作れるかもしれません。

しつこく動的利用の事を質問するボクに対してオノザキさんが解の一つであるDynamicMTMLについてお話して頂きました。簡単に言うとSSIのような仕組みでテンプレートで書きだされたHTML(MTML?)のある部分だけ動的に生成する、というものみたいです。ただし、解の1つなので方法は1つではないとの事。ベストプラクティスは使う状況によって異なるみたいですね。

今回の参加をきっかけに、まずはMovableTypeを設置してみて色々イジってみようと思います。習うより慣れろ!ってね。


Filed under: 勉強会

Trackback Uri






2013年 3月 4

2/16 邑楽町公民館にて開催された 群馬でアルゴリズムを学ぼう : ATND に参加して来ました。

ASCIIから出版されているアルゴリズムを学ぼうが教科書で、@tsurumau先生のもとで学びます。今回は「第1講 アルゴリズムと計算量」

前日に軽く読む程度で参加したのですが、実際の内容は第1講から深い内容でした。普段アルゴリズムを考えたりする深いコーディングはしない(主義)なので、頭から煙が出る勢い。

aのk乗をmで割った余りを求める関数、int powmod(int a, int k, int m)を書け。ただし、a,k,mは1以上の整数で、すべてJavaのintの範囲に入るとする

このような問題でしたが、Javaで書かれた例がすでに深いと気が付きませんでした。このような問題は単純にループで回す事で実現可能ですが、アルゴリズムを使えば一瞬で計算が終わる、という。

家に帰って写経してみました(Perlですが)

k=2の31乗-1で試した結果。
https://gist.github.com/4971027.git

use strict;
use warnings;
use Benchmark qw(:all);
 
sub powmod1_1 {
  my ($a, $k, $m) = @_;
  my $t = 1;
  for (my $i = 0; $i < $k; $i++){
    $t = ($t * $a) % $m;
  }
  return $t;
}
 
sub powmod1_2 {
  my ($a, $k, $m) = @_;
 
  if (int $k == 0){ return 1; }
  my $t = powmod1_2($a, $k /2, $m);
 
  $t = ($t * $t) % $m;
  if ($k % 2 == 1){
    $t = ($t * $a) % $m;
  }
  return $t;
};
 
my ($a, $k, $m); 
$a = 2; $k = 2**31-1; $m = 5;
my $results = timethese(1, {
  'powmod1_1' => sub { powmod1_1($a, $k, $m); },
  'powmod1_2' => sub { powmod1_2($a, $k, $m); },
});
 
cmpthese($results);
 
 
# // 結果 //
Benchmark: timing 1 iterations of powmod1_1, powmod1_2...
 powmod1_1: 541 wallclock secs (539.17 usr +  0.34 sys = 539.51 CPU) @  0.00/s (n=1)
            (warning: too few iterations for a reliable count)
 powmod1_2:  0 wallclock secs ( 0.00 usr +  0.00 sys =  0.00 CPU)
            (warning: too few iterations for a reliable count)
            s/iter             powmod1_1             powmod1_2
powmod1_1      540                    --                 -100%
powmod1_2 1.00e-15 53951000000000000000%                    --
[Finished in 540.9s]

MacBook Core 2 Duoなので最近のマシンと比べると遅いのでしょうね。それはともかく、この歴然の差。アルゴリズムすげーぜよ。

また、二分探索というアルゴリズム(の基礎)も初めて知ったのですが、面白い考え方でした。仕組みを聞けば単純だけれど、思いつくかと言われれば簡単にはいかないでしょう。こういう知識があるかないかだけでも大きく違うんでしょうね。

今回の勉強会では、普段なかなか手を出さないことに触れる事ができました。数学の知識とか、忘れていることも多いし、知らないことも多い。すごく勉強になりました。先生、次回もよろしくお願いします。

ところで、ソースコード書く男の人って皆んなこんなことやっているのでしょうか?


Filed under: 勉強会

Trackback Uri