2012年12月26日水曜日

遅れてきたおいしい広島 25日目

この記事は、おいしい広島Advent Calendar 2012の最終日、25日目の記事です。
まずはおいしい広島の大トリは華麗に締める、その幻想をぶち壊す!!
(帰宅した時刻12月25日23時55分 確実に間に合わんな)
つかなんでXmasなのに俺はこんな時間まで仕事してんだろ・・・
そう言えば去年も



って言ってたな(遠い目
そんな中、流行りに流行ったアドベントカレンダーを振り返ってみると大都会アドベントカレンダーで個人的に始まり、地元広島のアドベントカレンダーで閉めれることはとても幸せなことですね。
ということで「おいしい広島 アドベントカレンダー」を振り返りながらお送りします。


1 広島は勉強会がおいしい。
IT系の方が多いとのことで勉強会を題材にされている方が多くいらっしゃいました。
私もヒーロー島OSC広島に参加しました。
ヒーロー島は畑違いの自分が初めて飛び込みで行っても優しく接していただきました。
OSC広島は異業種交流会に近く、学生も多く参加していることから色んな刺激をいただきました。
今はCSSNIGHT広島WTMが気になる存在です。
機会があれば遊びに行きたいですね!!
そんな広島の勉強会ですが来月の1月19日にオープンセミナー2012@広島が開催されます。
地元の凄腕エンジニアを初め、Java界で著名な櫻庭さんなど超豪華ラインナップ。
しかもこの内容が無料という!!
自身をもってオススメ出来る勉強会ですので奮ってご参加ください♪
参加申し込みはこちら←

2 広島は食べ物がおいしい
お好み焼き、牡蠣、挙げればキリがないほど食が豊富な広島。
そんな中で私が他では言わない超絶オススメをご紹介します。

洋酒ケーキ
広島のお土産で毎度もみじ饅頭もなぁ…という貴方に朗報!!
そこでアンガールズの田中でお馴染み府中市上下町のお土産、洋酒ケーキ。
しっとりとしたカステラ風のお菓子は万人受け間違いなし!
(僕は地元なので幼少の頃はおやつの時間にコレが出ると大喜びでした)

うえのリンクからなんとネット注文も出来るようです。

・広島人が勧める最強のお好み焼き屋
長久
三八
ねぎ庵

他県の人にも有名な八昌系のお好み焼きの長久。
安い、でかい、美味いの知る人ぞ知る名店の三八
たっぷりネギにふっくら卵のねぎ庵

それぞれ長所がありますので最寄りに来た際は是非食べてみて下さい。
OSHの会場の近くだと長久、あとはみっちゃんも近いですね!!

・辛口つけ麺
唐々亭
辛部

広島と言えば辛いつけ麺。
寒い日に辛いつけ麺で汗をかきましょう♪

他にも尾道ラーメンを初め、多くの名店、食処があります。
オープンセミナー広島に参加された時の参考になればと思います。

3 広島はエンジニアがおいしい
広島はアドベントカレンダーからも分かる通り、交流に積極的な方が沢山居ます。
そんな方と交流するチャンスは勉強会の懇親会、Twitterなどなど。
まずはアドベントカレンダーを書かれた人たちをフォローしてみては如何でしょうか?

ということでひむひむから始まったおいしい広島アドベントカレンダーもここまで。
そして12月も残すところあと僅か。
来年も色んな美味しいを見つけれるといいんですね。
それではみなさん、良いお年を。

2012年12月14日金曜日

学習コストを下げるために大切な3つのこと ~エンジニア編~

 子育てエンジニア advent calendar 2012 に刺激を受けて書きます。

世の中のパパエンジニアの人、色々苦労されてる反面、楽しくイクメンされてるようですね。
特に苦労されているところは学習コスト(金銭的・時間的)を払えなくなったというのを見ます。
しかもこれだけ変化が早いIT業界なら尚更です。
しかしながらIT業界で研鑽を止めると言うのは大変リスキーなことです。
私ももうすぐ5歳になる長女と2歳の次女、そして今は妻のお腹の中にいる第三子(長男)がいる子育てエンジニアです。
しかも私はエンジニアを志したときは既に長女がおり、独身時代の知識が0でした。
(最初はコマンドプロンプトからpingも撃てませんでしたw
そんな私が日々行なっている学習の3つのコツを紹介したいと思います。


1 業務を通して知識を研鑽する

これは一番手っ取り早く、かつ確実に行えます。
自分の興味のある技術を導入してみるのが良い例だと思います。
また既存のシステムや技術でも新たな知識を得ることは多々あります。
ただし枯れた技術の運用的な部分では吸収する知識範囲は少なくなることもあると思います。
そこで対策は業務の変更です。
私はエンジニアを志した時の業務はバックエンド(特にインフラ関連)でした。
色んな事情も重なってフロントエンドの知識が吸収したくて今の職場に転職することにしました。
しかし転職や業務の変更はリスクもあります。
(仕事に関しては色んな考え方があると思いますが私の考えはこんな感じです)
またこの方法の大事なところは2つあります。
ひとつめは

・問題意識を常に持つこと

です。
例えばカーネルの値変更一つにしてもそうですしメソッドのカスタマイズ一つにしてもそうです。
「○○さんがこういったから」や「手順書に書いてあるから」と思考停止しては意味がありません。
データ投入一つにしてもそうです。
その時にテーブルが第二、第三正規化されてるかどうかを意識するだけでも違います。
そうしたら外部制約が欲しくなったり、逆に不要に感じたりすることもあるはずです。
プログラミングは特に顕著に問題を感じれます。
他人のソースを呼んでる時にわかりにくいと感じたらその理由を考えてみます。
命名だったり一つのメソッドが長かったり理由は色々ありますよね。
ならば自分が書く時にそこを気を付ければ良いのです。
牛歩であっても成長のきっかけを見つけることが大事だと思います。
ふたつめは

・わからないことをわからないままにしない

ことです。
せっかく「なぜ?」と感じても「まぁいっか」ではせっかくの成長のチャンスが失われてしまいます。
その瞬間では解決方法が無くても後から調べてみる。
これがググる力や調べる力を伸ばすことにも繋がります。
またちゃんと理解してることが増えてくると次の問題にも気付きやすくなります。
こうなってくると成長のスパイラルを感じれるはずです。

2 アウトプットする(自分の意見や知識を他人に伝える)

例えばブログで「なぜ?」と思って知らべたこと、理解したことを書きます。
「なぜ?」は技術本だったり業務だったりキッカケや事の大小はなんでも良いと思います。
すると自分の中で記憶や知識を整理する良い「ふりかえり」のタイミングになります。
また知識を整理すると理解が深まります。
更に「ブログを書く」と言う作業と知識を関連付けることで自分の中に残りやすいです。
これは技術本を写経してみるのに似てると思います。
ただブログはモチベーションが高い時はいいのですが続けるのは結構大変です。
私のこのブログは12月以外は月に1回書くかどうか…
なので他の方法ですが例えばコミュニティやMLに参加です。
その中でただウォッチするのではなく自分の意見を出してみるのは凄くいいと思います。
更にこの方法の良いところはこちらのアウトプットに対して生きたレスポンス返ってくることです。
他人の意見は自分の立脚点を振り返る凄く良い材料になりますし、何よりも生きた会話は記憶に残りやすいです。
しかしMLやコミュニティは内容次第では炎上するので注意です。
(後は教えて君をすると冷たくスルーされたり…)
なのでもっと軽いところではTwitterやFacebook、Google+なども良いと思います。
ただコチラは自分の繋がり次第ではレスポンスが返ってこない話題もありますのでSNS内での繋がりを意識する必要はあると思います。
(私は先日うっかりFBでこちらの記事をリンクしたところプチ炎上しました。)
また勉強会でも同様だと思います。
参加して、さらに質問してみるとより理解と記憶への定着が進みます。
質問することを意識してセッションを聞くと業務と同じように問題意識が生まれやすいので勉強会によく参加される方にはオススメです。
また勉強会のスピーカーに対しては色んな意見がありますが一番経験値を得れるのはスピーカーだと私は思っています。
なので機会があればスピーカーとしてアウトプットするのは凄いチャンスだと思います。
ただ当日駆動資料作りをしすぎると周囲から冷たい視線を浴びるので注意が必要です。
そしてアウトプットをすることで重要な副作用があります。

アウトプットをしていると自然と色んな人とのコネクションが増えてくると思います。
類は友を呼ぶといいますがアウトプットが多い人にはアウトプットが多い人がくっつくのです。
するとその人たちは精度の高い情報収集のアンテナになってくれます。
その人たちがプッシュしてる情報をチェックするだけでも効率的な情報に情報を仕入れることが出来ます。
またSNSなどではそういった人たちから更に良質なアンテナを見つけることが出来ます。
自分が知りたい分野の良質なアンテナを見つけてウォッチすることで自分で情報を精査したり探したりするコストを下げることが出来ます。
つまりよく言われることですがアウトプットを増やすことでインプットが増え、学習のスパイラルが捗ります。
なのでアウトプットの質云々よりもアウトプットをはじめることが大事です。


3 ホットラインを作る

3つ目こそが時間を作れない子育てエンジニアには重要かと思います。
学習コストを下げるもっとも良い方法は高スキルな師を持つことです。
それは明示的な師弟関係ではなくて○○なことは▲▲さんに聞けば大体わかり、その人に聞くことが出来る関係です。
つまり自分の興味のあることに対する詳しいことのホットラインを持つことで学習コストを大幅に下げることができます。
例えばPythonを始めたいとします。
すると詳しい●●さんが「この本を読むといい」と薦めてくれます。
実際にその本を呼んだり写経して理解できないことに直面します。
●●さんに「自分はこう思うんだけどどうなんだろ?」と伝えてみましょう。
(分からないから教えて、と一方的にボールを投げるのではなく自分の意見を伝えるのがコツです)
すると「いやいや、実はこれはこうなんだよ!」と懇切丁寧に教えてくれるではありませんか。
後はこれをまた何らかの形でアウトプットすれば自分の学習が捗ります。
また何よりスキルの高い人が近くにいると色んな刺激が貰えます。
新しい発見だったりモチベーションになったり。
私は職場の左にはプログラミングが大好きな人、右にはフロントエンドが大好きな人がいて凄く良い勉強をさせていただいてます。
(職場でこれを書いてることの免罪符なぅ)
JPUGの方々も疑問点や質問に対して軽快なレスポンスをくれます。 #ステマ


ということでまとめとしては

・ 業務時間を上手く使って学習の機会にする
・ アウトプットをする
・ アウトプットで得たコネクションを有効活用する

と言うことです。
皆さんの何かの参考になれば幸いです。

2012年12月13日木曜日

カープがクライマックスシリーズに出るために必要な3つのこと

このエントリは広島東洋カープ Advent Calendar 2012の13日目です。
昨日はmazzo46さんの丸佳浩のここがすごい!でした。
近年じは若手の活躍が目に止まりますが丸もそんな中の一人ですね!
来季は僕も大変期待してます。

さてそんなわけで三振王堂林の13日目はこちら。

それではカープがクライマックスシリーズに出るために必要な3つのことを並べて行きましょう。

1 ヤクルト対策
当たり前ですがAクラスに入らなければクライマックスシリーズに出れません。
むしろこれはカープにとってはチャンスでリーグ優勝する必要はないのです。
クライマックスシリーズは短期決戦ですからそこで中日と巨人を倒せばいいのです。
ロートル集めた縦縞と横浜は来季も今年と同じ感じで緩やかに頑張っていただくとして兎にも角にもヤクルト対策。
てかそもそもなんで今年の怪我人続出のヤクルトに後半にまくられてんの?
つか巨人と中日とは何ゲーム離されてもいいから下の3チームに負けなきゃ(ry
ということで来季、優勝じゃなくていいんです(切実

2 打撃陣の奮闘
貧打はここ数年ずっと言われますね。
個人的は三振王の堂林以外にも期待の若手は沢山います。
丸、岩本、菊池・・・そこに栗原や梵らの力噛み合えば十分やっていける戦力はあると思ってます。
クリーンナップは正直栗原が来季復活して従来の力を出せば十分。
そもそも栗原が万全なら今季のCSに出てたのはカープだった!!(かもしれない
ということで1、2番がしっかり出てクリーンナップが返す。
これが出来れば今の投手陣ならそうそう負けないですよね。

3 夏の交流戦
カープの勢いも鯉のぼりがあるうちまで・・・
昔はそんな話もありましたが近年の鬼門は交流戦。
というかセ・リーグが交流戦負けすぎ(´・ω・`)
まぁでも来年はWBCで他球団の主力がすり減ってくれるはずなのでやってくれるはず(ゲス顔
つか山本浩二が監督ってことはそういうことかー!他球団の主力潰してくれるとかカープ想いな監督だなわー(棒
と冗談は置いといてこの交流戦、セ・リーグの鬼門と言う事は勝ち越す=大幅リードになる可能性が高いわけです。
困ったときがチャンスです。頭の良くなるチャn(ry


でも一番は9月10月で息切れしないことかなと思ってます。
ここ数年、これはと期待を抱いては後半の失速で涙を飲む。
それは今年で最後にしていただきたいですね!!

ということでカープアドベントカレンダーでした。
アドベントカレンダーも早いものでもう半分が終了です。

明日はhokacchaさんの写真かな?
どんな写真が見れるか密かに毎日楽しみにしてますw


(マツダスタジアムのビール持ってきてくれるお姉ちゃんはクオリティが高いのオススメ)

2012年12月9日日曜日

変態に知ってもらいたい、変態が重要な理由

昨日、知り合いのブログ検索したんです。ブログ検索。
そしたらなんか人がめちゃくちゃいっぱい出てきて辿り着けないんです。
で、よく見たらなんか題名に、●●アドベントカレンダー ●日目、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、アドベントカレンダー如きで普段月一でも書いないブログ更新してんじゃねーよ、ボケが。
アドベントカレンダーだよ、アドベントカレンダー。
なんか親子連れとかもいるし。一家4人でブログか。おめでてーな。
よーしパパはてなダイアリー更新しちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、アフィリンク踏んでやるからその席空けろ。
ブログってのはな、もっと殺伐としてるべきなんだよ。
ブログを見に来た奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気(例えば高木大先生に目をつけられる)がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと更新したかと思ったら、隣の奴が、俺は技術系のブログで、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、技術系のブログなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、技術系のブログで、だ。
お前は本当に技術系のブログを書きたいのかと問いたい。問い詰めたい。小1時間問い詰めたい
お前、技術系のブログって言いたいだけちゃうんかと。
ブログ通の俺から言わせてもらえば今、ブログ通の間での最新流行はやっぱり、
変態、これだね。
変態アドベントカレンダー。これが通のブログ更新。
変態アドベントカレンダーってのは変態を自分で宣言する。そん代わりパンピーには戻れない。これ。
で、それにおっぱい(巨乳)。これ最強。
しかしこれをするとと次からいろふさんにマークされるという危険も伴う、諸刃の剣
素人にはお薦め出来ない。
まあお前らド素人は、アメブロでもやってなさいってこった。

ということでこのブログはHENTAI Advent Calendar 2012 9日目です。
前日はtan_go238さんの

みんなが大好きないろふさんをSVGでざっくり書いてみた

でした。
いろふさんの人気に全俺が嫉妬しつつも変態アドベントカレンダーのレベルの高さに泣きそうです。
そして今日も変態な話が聞ける、そう思ってるお前の幻想をぶち壊す!!
ってことで今日は会社の優しい先輩がFBの近況にある話題の「今どんな気持ち?」を書き換えるJSを書いてたのでソレを使って気持ち良くなろうと思います。
つかアドベントカレンダー更新連続3日目とか何もかも燃え尽きますね。
みなさんもスケジュールは計画的に。

元ネタ
心優しい先輩が変態のためのJSを書いてくれてたので晒します。

// ==UserScript==
// @name         kimochinakadoudemoeeyan
// @namespace   https://www.facebook.com/
// @description facebookで出てくる「今どんな気持ち?」を消す。
// @include     https://www.facebook.com/*
// @exclude     https://www.facebook.com/ai.php*
// ==/UserScript==

var tA = null,iT = 0,c = 0,str = ' ';

function checkPl(){
 console.log('check')
 if(document.querySelector('textarea[placeholder="今どんな気持ち?"]')){
  tA = document.querySelector('textarea[placeholder="今どんな気持ち?"]');
  tA.value = str;
  tA.setAttribute('placeholder',str);
  c++;
 }
}
checkPl();
iT = setInterval(checkPl,500); 


これわざわざ9行目のstrの好きな文字突っ込める仕様じゃないですかー(ゲス顔
動作確認は後輩の勤め、ということでまずは推奨環境のChromeで。
Facebookにログインした状態でF12を押して開発者ツールを起動。
コンソールに上記のJSをベコっと貼り付けてstrの変数に任意の文字をハメて見ましょう。

こ、こいつ、動くぞッ!? #ファースト見たことありません
ということで次はFirefox。
グリモン入れて実行してみましょう。

普通に動いてしまいました。
では最後の関門、我らの?IE!!(検証では9です、つかIEは8以下は滅んでください)
IEもF12を押して開発者ツールを起動させてスクリプトの欄でコピペして実行です。

なんの楽しみも無く普通に動いてしまいましたw
と言うことでお好みのJSを気軽にメジャーブラウザで実行出来るというお話でした()

それでは明日はmike_neckさんです。
どんな変態的なお話が聞けるか楽しみですね!!

2012年12月8日土曜日

PHPerのみんなに知ってもらいたい、PHPの重要なこと

このエントリーはPHP Advent Calendar 2012の8日目です。
昨日の7日目ははじかみさんの

Integerの上限を超えてゆけ

でした。
動的型付けの言語はintの限界値とかキャストとか知ってるのと知らないのでは大違いなので大変勉強になりました。

さて私ですが昨日のPostgreSQL Advent Calendar 2012に続いて更新です←ステマ
今日は今年一年で私や私の周囲でPHPにイラッとしたこと ハマったことをまとめておきたいと思います。
もし似たようなことに遭遇した時に「あれ?」って思った時の参考になれば幸いです。


1 5.2以上なのにjson_encodeが動かない
よーしおじさん、JSONしちゃうぞー→Fatal error: Call to undefined function json_encode() in ....
えっ?PHPのバージョンは5.3.10なんだけど?
(json_encode()はPHP5.2以上では標準関数になっています)
php_info()で確認するとenabled。
ググっても全然日本語情報出てこねー!と絶望しました。
こんなときは本家です。
で翻訳こんにゃくを使って英語のバグレポートを見てみるとphpをコンパイルしてinstallしてる場合にjson_encode()がdisableされることがあるらしいとのことでした。
コンパイルし直すかyamやaptでinstallすれば防げるようです。
また5.2未満の対応のようにJSON.phpを使って同名関数を作ってやることでも対応出来ます。
この件で英語の文書を読むことの大切を学びました。

2 XAMPPにEC-CUBEをinstallしようとしたらコケる
エラーメッセージは

Warning: Unknown: function 'NULL' not found or invalid function name in Unknown on line 0

が出ます。
ちょっとローカルで開発したいだけって時にWindowsの強い味方のXAMPP。
以下のようにするとインストール出来ます。

html/.htaccessを修正する。
php_value output_handler NULL

# php_value output_handler NULL

今年はEC-CUBEで色んな辛い思い出経験が出来ました。

3 PHPの変数関連
5.3のphpで下記のcodeはどのように実行されるでしょうか?

$string = 'test';
var_dump($string['hoge']);

この出力結果はなんだと思いますか?
答えは

string(1) "t"

です。
hogeをキャストして$string['0']扱いになってるんですね。
ではプログラムがこのようば場合はどうでしょう?

$row = get_shop();

var_dump($row['id']);

一見shopデータの一覧を取ってきて、連想配列のIDを出力しそうですね。
でも中身が連想配列じゃなくてただのStringで10だった場合は先頭の1を出力します。
例えばこれがINTの10だったらNULLを返します。
言語仕様としては知ってても他人のソースのメンテナンスだったりするとパッと見で判断してハマるので要注意ですね。
しかもこのソースの場合は先頭の文字を返すので実行してもerrorが発生せず、問題はマスターのshopデータが二桁になった時に発生します。
この辺はまた5.4になると変わってくるので新しい技術を覚えると同時に過去のソースのメンテナンスのためにも過去のPHPの挙動を忘れないようにしなければなりませんね。

ということでまだまだ書きたいのも山々ですが今日が終わってしまいそうなのでこの辺で。
これでアドベントカレンダーも約3分の1が終了です。
ということで明日は得上 竜一さんです。
PHPの好きなところとのことですのでPHPの楽しい話が聞けるかもしれませんね!

2012年12月7日金曜日

プログラマーのみんなに知ってほしい、なぜSQLが重要か。

PostgreSQL Advent Calendar 2012の7日目担当しますそーだいです。
昨日の6日目はkaigaiさんの

SE-PostgreSQLでリモートプロセスのセキュリティラベルを使用する

でした。
SELinuxを心を痛めながら殺してしまうこと、皆さんも何度かあるんじゃないでしょうか?
 
と言うわけでここらからが本題。
そしてまず公開遅れてごめんなさい。一度書いたのですがどうしても書き直したくて書き直しちゃいました。
書いたネタはせっかくなので二週目の時に公開しますね。
そしてあんまりPostgreSQLに関係ない話になりそうです、ごめんなさい。

で表題ですが元ネタがあります。



そーだいと言えばすぐORMをdisと言うイメージがあるらしいのですがまず前提として

よく考えられたDB設計で使うORMは凄く便利

ですよ。
ただ現実として後から仕様変更だったり想定外なことだったりで複雑なQueryを求められることがあると思います。
実際に開発時は大半のSQLが単純でORMで取り出すことで簡略化出来ることも多いけどそれが全てでは無いですよね。
ちょっと複雑なQueryをORMで取り出そうとすると急に難しくなり、かと言って問合せ回数を増やすようなプログラムを書くとI/Oやら負荷やらが急に上がって…(´・ω・`)
なのでORMは便利なんだから使えばいいと思いますがベストプラクティスを目指すなら発行されるSQLを理解した上で生SQLとケースバイケース使い分ける必要があります。
まさに@t_wadaさんが素晴らしいことをツイートしてて


こういうことです。
ただORMがSQLのオプティマイザーやプリコンパイラみたいに最適化されたSQLを発行するようになればSQLをあまり意識しないでもいいかもしれません。
しかしそこに現状はまだまだその領域にORMが来てないと思います。
これは凄く魅力的なことですが


と思います。
なのでKVSはRDBの代替品としてではなくより生産性の高いデータの保持方式として成長していくんじゃないかなと思ってます。
実際にOSC広島で梶山さんのお話を聞いた感想では

※RDBは→RDBから

と感じました。
そんな感じでSQLとORMの悲劇というか宗教戦争は和解の方向に進んでると思います。

ということで無理矢理まとめますw
今の開発にRDBはとても重要な存在です。
そして現状ではRDBを使う以上、SQLは欠かせない状況です。
だからこそSQLの出来ること、苦手なことを知って欲しいですし必要です。
なぜならそれを知っていれば悲しみを生むようなDB設計も減るからです。
(私は見たことないけど1Tableにカラムが100以上あるようなDBとか)
またSQLを知ることで「未来の困りそうなことを減らせる」し「困った時に色んなアプローチを考えれる」ことでより最適解を見つけやすくなります。
(例えばPostgreSQLのウィンドウ関数)

※ウィンドウ関数についてはアドベントカレンダー初日の@choplinさんの記事がオススメ!!
 私はconnect byとか是非皆さんに知ってほしいと思います。
(MySQLには無いのが非常に残念です)

なので適材適所で実際にソースコードを書いてる皆様にはSQLをもっと知ってほしいと思います。

さて明日の8日目は@fujii_masaoさんです。
PostgreSQLのアドベントカレンダーは本当に濃いので明日も楽しみですね!!
 (今日も濃い話があると期待されていた方はすみませんでした)

2012年12月1日土曜日

大都会岡山 Advent Calendar 2012を楽しむための4のこと

IT業界で注目の的、大都会岡山のAdvent Calendar 2012の初日です。

(しかし会社で更新するブログは筆の進みが良いのはなぜですかねー)

そんな私は大都会のお隣、独立国家福山の人間。
なので今日は自分の学習を含めてこれから大都会岡山 Advent Calendar を楽しむための4つのことをお伝えしようと思います。


1 大都会岡山ってなぜ大都会なのか
ggrks 
ニコニコ大百科に素晴らしいまとめがあったので参考にどうぞ。

大都会岡山

あとは参考までに画像検索すると素晴らしい大都会の様子がご覧になれるかと思います。
グンマーやさいたま、海外のうどん県にも負けないネットでの立ち回りは広島など霞んで見えます。
ただ大都会として岡山市を名指しで持ち上げるとライバルの元天領、倉敷市が怒るのでご注意を。

2 大都会がなぜ今注目されてる理由
なぜIT界隈で注目されているのか。
それは大きく分けて3つの理由があると考えられています。

● とっても変態な凄いアウトプットをするエンジニアが多い
● コミュニティの活動が盛んである

の2つが凄まじいです。
その結果3つ目の

● 勉強会の数がとても多い

となるのです。
正直毎週どころから土曜日は勉強会が被るのデフォです。
ですがコレは一朝一夕ではなったわけではなく、多くのエンジニアの活動が結びついた結果です。
しかし私のようなお小遣い制では参加出来る懇親会が限られるので絞り込みが大変です。

3 大都会で行われる主な勉強会とか
AZusaar!!(あずさー)で検索したところ、多すぎて紹介するのが辛かったのオススメを。
他にも沢山ありますがこれらは大都会の各コミュニティの運営者が協力して開かれています。

● オープンセミナー岡山
毎年5月ごろに行われる無料のセミナーです。
今年の内容ははこちらです。
例年ビックなゲストと濃い内容、そして地元の興味深い内容が聞ける貴重なイベントです。
参加者が100人を超えるイベントは大都会岡山と言えど数は少ないのです。
ですがこちらは今年も100人越えでした。
中国地方で考えても無料でこれだけ濃い内容が聞ける場所はなかなかありませんよ。

● 合同勉強会
こちらは地元のエンジニアを中心とした勉強会です。
年に1~2回程度行われます。
直近では12月15日に行われます。
(お申込みと内容についてはこちら
今回の注目の的はOracleのJavaエバンジェリスト、 独立国家福山の王子こと寺田さんですね。
その他も各コミュニティのエース級が軒並みスピーカーをしてます。
僕は娘の音楽発表会で参加出来ないのが残念で仕方がありません(´・ω・`)

そしてこの2タイトルの特筆すべきは懇親会。
大都会では懇親会に20名以上の参加が見込めるような場合

Ryoutei 座スタジアム

で行われます。
こちらはなんとプロジェクターを完備。
エンジニアがこれだけ集まってプロジェクターがあれば当然LT大会。
内容はここだけの秘密話から爆笑必至なネタLTまでなんでもアリ。
この充実したLT懇親会は県外の方からも大絶賛されています。
そして今回の合同勉強会後も通例どおり行われます。
また今回は大都会の忘年会を兼ねているのですがこちらは忘年会議と呼ばれるビッグイベント。
例年夏には参加枠が埋まると言う恐ろしいイベントです。
今回はなんと昨日、枠の拡張が行われまだ募集枠が空いてます。
(それまでは夏の時点で埋まってました)

そんな忘年会議の申込はこちら。


4 瀬戸内変態クラスタとは
エンジニアの方の中には特別な称号を持たれた方が何人かいます。
そんな中で中国地方を中心としたクラスタに瀬戸内変態クラスタがあります。

例えばこちらに登録されてる方々

今回のAdvent Calendarにも多くの変態クラスタが参加しています。
なぜこの人達が変態と呼ばれるか…それはあなた自身でフォローして、見守って見て下さい。
必ずやあなたの意識が高い高ーいになるはずです(色んな意味で


さて以上のとおりです。
これであなたも大都会マスターですね!!
明日はコーラ部長こと英吉さんです。
ついでにこんなこと



言ってたのでがっつり技術系のお話が聞けるのでは?
楽しみですね!!

さて私事ですが今年はAdvent Calendar が

PHP
広島東洋カープ
PostgreSQL
変態
おいしい広島

とあと5本もあります(白目
しかもPostgreSQLは参加者が少ないため二週目が確定的。
いっぱいネタが披露できそうです(震え声

ということでアドベントカレンダー、ROM専の人も参加されてる方も楽しい25日間が始まりましたね!

2012年11月29日木曜日

意識の高低差について

最近自分の周りの人達が意識高い高いな人ばかりで凄くいい刺激を頂いてます。
そんな中で自分も意識を高めて勉強とか知識の研鑽しなきゃ!と感じています。
って思ってる中で運転免許の更新言ったら

「えっ、私の意識…低すぎ?」

みたいな経験をしたのでちょっと振り返りメモ。
で前提条件ですが恥ずかしながら青色免許12年目に突入しました。
4年前に事故してるので今年も違反者講習受けてきました。



※おまけ
免許の更新の区分は5年間のうち

1 6点以上の違反が一回(25キロ超のスピード違反の赤キップとか)
2 事故した
3 軽微な違反(たしか3点未満)を二回

等に含まれたら違反者講習になります。
違反者講習を受けると更新は3年なので私の場合

1 事故した次の年に違反者講習
2 今回はまだ4年しか経ってないので何もしてなくても違反者講習

となります。
これは切符切られてないのに違反者講習とはなぜに!?って人が居るのでご注意ください。




ということで違反者講習行って来ました。
つか違反者講習以外受けたこt(ry
僕は5年くらい前まで道交法に詳しいお仕事の人だったので前回の違反者講習は正直

「知ってるわー、そんなこと退職前の1年前から知ってるわー。」

って感じでした。
たしか駐禁の民間委託とか中型自動車免許とか免許証のICカード化だったと思います。
それがどうでしょう、今回3年ぶりに違反者講習を受けると知らないことだらけでした。
例えば赤信号時の右折可能な矢印信号が出てる時の転回。
これは

ちょっと前までは信号無視

の扱いだったのですが今年の4月から転回可能な交差点では出来るようになりました。

詳細はこちら

他には免許証の裏が保険証と同様に脳死時のドナー登録の意思表示の欄が出来てたり、本籍の欄自体が無くなってたり。
後はAEDは心臓止まって使うものってイメージでしたがAED自体に心電図の機能と除細動自動判断機能があるので意識不明の重体状態などは必ず使う方針でいいそうです。
また自動販売機の中だったりと主要施設には備えてあるので自分の会社だったりよく行く場所の設置場所くらいは覚えておいて損はないでしょうね。

AED設置場所検索

また使い方も非常に容易でフタを開けると後は使い方を随時指示してくれるので安心設計です。

AEDの使い方PDFはこちら

ということでこんな感じで知らないことばかりで自分の意識レベル低い人っぷりを感じました。
ドライバーとしては恥ずべきですが意識してないと「最新の情報」を仕入れなくなりますね。
今の時代、ネットで検索すれば改正法の情報などはすぐ手に入るはずです。
意識が高くてアンテナの高い人は自然と情報が集まるけど意識低いと本当に置いて行かれる。
これってまんま今のIT業界でも言えることですよね。
で今回意識低い側の経験をしてみて

誰でも環境や状況次第で意識は変化する

って当たり前なんですけどそうなんですよね。
しかもちょっと前まで意識高いつもりでいたらから自分が意識低くなってることに気づかない。
コレが老害とか懐古厨って言われるような状態なのかもしれません。
また注意が必要なのは現状に満足してたり、必要を感じなかったりして

現状維持をしてるつもりだとそれは後退に等しい

ってことです。
なので今の状況に満足してる部分には落とし穴があるのかもしれませんね。
向上心を持ち続けるというのは大変なことなので、だからこそ自分は今、どのポジションにいるのだろう?と振り返れるチェックポイントは必要ですね。
これが今の勉強会ブームだったりSNSブームの一つの要因だと思いました。

というわけで通勤中に書いてたんですが会社についたのでまとまりきってないですがこの辺で。
ブログを書こうとして書きかけの内容が出て来て続きを書こうか迷う現象に名前が付けたいです。

2012年10月30日火曜日

公務員時代が懐かしくなって振り返ってみた

28歳最初のエントリー。
本当はみんなありがとうって書こうと思ってたんだけどやっぱやめました。
色々考えた結果、祝ってくれた人や特にプレゼントを送ってくれた人は

「上辺だけの言葉」
(FBとかmixiのおめでとうコメントとかを否定するわけじゃなくてそれは凄く嬉しかったのです)

を求めてるわけじゃないよなと思いまして。
具体的言うと僕は時間やお金を投資して頂いて祝ってもらったわけですからやっぱ成果と言うか恩返しをしないと。
つまりスピーカーとしてのアウトプットの品質向上やサービスの提供だったりムードメーカーだったり。
そういうwinwinな関係を目指して頑張ることが自分の出来ることだと思ったのでこの1年も精進していきたいと思います。


でこれだけだと寂しいのでこの10年を振り返ってみようかと思うとアレやコレや思うところがあってまとめれませんでした。
そんな中下記の増田をTwitterで見かけて思うところがあったのでそれを。



公務員だけど後輩が辞めたんだけどなんかいろいろ考えた。


是非、社会人として現状に不満がある人は読んでほしいです。
自分ならどうするか...と。
簡単にいうと、

・現状に不満があるけど改善が不可能で絶望して、割り切ろうとしたけど我慢できずに辞めた後輩
・同じく不満があるけど諦めて、受け入れてその中で折り合いを付けながら働いてる先輩

のお話。
解釈違うわボケェってツッコミは随時お待ちしておりますw
で僕は高卒後、1年明けて警察官を5年半ぐらい勤めたので近い環境の体験者としてすっごい共感出来ました。
どちら側かと言えば両方に。

ここに書いてあることは悲しいけど結構マジな話で地方公務員の一部は民間のブラック会社に負けてないと思います。
僕の10代は厨二病拗らせて腐ったミカンなヤツだったので新人公務員の頃はそんな環境によく絶望してました。
蛇足ですがここの絶望したってのは何もかもが嫌になって真っ暗になるというよりも自分の世界の外の全てが眩しくて自分が無価値見えるというか存在意義が見えなくなってました。
そもそも学生時代は曖昧な評価で結果だけでは認められない環境が嫌で逃げ出したクズがこんなガチガチな日本人な職場に合うわけもなく。
最初の2~3年はホント絶望してて3秒に一回は辞めたいって思ってました。
そんな感情では当然ストレスも凄く、体調崩したりお肌が荒れたり。
今思えば鬱だったんじゃねーかなと思うこともありました。
それでも当時は前述のとおり、生きるには働かなきゃいけない現実と周囲の「公務員なんて羨ましい」という目に縛られて転職も考えれず八方塞がりでした。
というか就活とかしたことないから転職とかどうすればいいのかわかんなかったんですよ当時。
そうなるとまぁこの後輩みたいになるわけです。
ただまぁ僕の場合、能力が伴ってなかったのでやることやれて無かったですがw
そうなったときに周囲は「自分に火の粉が掛るんじゃないかと不安になって相談に乗ってくれる」のですがそんな人に本音なんて話せるわけもなく。
そのうち折り合いをつけていくのでしょうけど厨二病の僕は何一つ変わりませんでした。

そんな自分が先輩のように折り合いをつけるきっかけは「職場のメンバーの変化」でした。
それまで退職前のロートルに囲まれ、勉強と名の下に雑務を投げられ、仕事になんの意義も見出せていなかった状態。
そこから

出来る係長と出来る先輩と出来る同時拝命(同期の大卒)の平均20代中盤くらいのチーム

というまぁ今思っても奇跡みたいなことになったわけです。
この時の経験は今では本当に宝物で

・モチベーションの高いチームに入ると自然と自分も引っ張られてモチベーションが上がる
・高いスキルの人と仕事をすることがもっとも成長への近道
・成長を実感出来ると仕事は楽しい
※結果が出て認められる(褒められる)ってすっごい大事
・仕事が楽しいと(成功体験を得ると)余暇の使い方が変わる

この辺のことを身を持って体感しました。
特に自分の成長する方法と成果の出し方がわかってくると自然と向上心が湧いてきて良いリズムが生まれます。
こんな奇跡体験がなかったら今も腐ったみかんですw
ではなぜそんな楽しい仕事を辞めたのかと言われると警察と言う組織は半年単位で良くも悪くチームが変わります。
紹介したブログにもあります通り「出来る人はより重要なポストに引き込まれる」わけでお世話になった人たちは全て異動。
また振り出しに戻るわけです。
(まぁ本来はその姿が大半なので当たり前と言えば当たり前なのですが)
ただ前回と違うのは絶望から抜けだした状態なので折り合いを付けながら仕事をこなせるようになってたことです。
しかしながらそこから異動もしたりしながら過ごすと

「少しずつ周囲の低いモチベーションに引っ張られてる自分」

に気づいてきました。
モチベーションとか人間性って周囲の人に引っ張られてお互いに影響し合うんですよ。
そう感じた頃は嫁が居て子供が居る23歳だったわけですが折り合いをつけて働くことに慣れてしまうと今度はそこから出るリスクが目についてしまいます。
新卒1年目の周囲の声を聴くとここの先輩が言うとおり、大手と公務員に大きな差は感じませんでした。
こうなると辞めない理由なんていくらでも見えてきて、この先輩と同様に周囲で辞めていく人を見る度に自問自答をしながら自分を納得させる日々でした。
それでも嫁が背中を押してくれたり、色んなきっかけの末退職したのがリーマン・ショックの1週間前。
あのハローワークの光景はホントに地獄絵図でしたよw

と閑話休題。
話が長くなりましたが

後輩ちゃんは外資系か規模の小さい職場で権限を持たせて貰えるなら仕事が楽しめる

んじゃないかなと思います。
自分は英語力が0なんで外資系は無理なんですが色々仕事した末、今は20人くらいの規模の会社で楽しくやってます。
挑戦したり、変化を伴うことは会社であれば少なからず抵抗があり、規模が大きくなればなるほどハードルは上がります。
逆に規模が小さければチャンスは多いですが収入だったり労働時間だったりの波は大きくなると思います。
その辺のバランスを自分のスキルだったりライフプランだったりと照らし合わして取っていくしかないのかなぁと。
それぞれの良し悪しがあるので自分を振り返ってみて「自分の居場所がここじゃない」って思ったなら転職に動き出した方がいいかなと思います。
仕事が人生の全てじゃないんだけど折角長い時間を仕事に費やすんだから楽しい場所を求めてもいいんじゃないかなと思います。

通勤時間で書いたのでまとまってないけどこのへんでノシ

2012年8月4日土曜日

変態アドベントカレンダー in Summer : ATNDの17日目

この記事は変態アドベントカレンダー in Summer : ATNDの17日目です。

昨日の記事はdproject21さんの

Titanium mobile の Alloyでエロい(?)アプリをつくる。

でした。

皆さん日に日に変態度が増してますね!
さて本日はPostgreSQL 9.2の新機能について触れます。
ホントは変態チックにSQLで因数分解を解いたりとエグい事したいんですけどコレ見てるみんなも変態だからそんなことは知ってるよね!
なのでナゥなヤングにバカウケの最新情報をお送りします。

Q「9.2って何が追加になったの?」
A「色々追加になったから公式ドキュメント嫁」

ってなわけみんな話題になってるレンジ関数とかindex-only scanとかは知ってそうだから別のところを攻めてみます。
個人的にはPostgreSQLの熱いのはJSON型、コレだね!!
前回はArray型とか紹介しましたがやっぱ最近の流行りはJSONだよね。
でJSON型はなにがいいかって?
どうせtext型に丸っと入れてるのと一緒なんでしょwっとか思った人。
違うんです!

ついでに9.1でも拡張すればJSON型を使えるみたいです

で実際の使い方ですが例えばArray型からJSON型にCASTして取り出す場合。
tagsに配列型でデータを入れてるとしましょう。

=> SELECT * FROM t;
 id | name |       tags
----+------+------------------
  1 | パンピー      | {従順,賢い}
  2 | 廃人            | {自由}
  3 | 変態            | {エロい,恐い,希少}

=> SELECT row_to_json(t) FROM t WHERE id = 3;
                    row_to_json
----------------------------------------------------
 {"id":3,"name":"変態","tags":["エロい","恐い","希少"]}

↑↑↑JSONになって帰ってくる↑↑↑

となります。
どうだい?コレならphp標準で対応してるはずのJSONencodeがソースからコンパイルしてしまい、phpのバグでencode出来ないphp5.3.8でも大丈夫だろうぉ?
標準では行の結果をJSONに変換してくれる関数もあります。
当然、tableにJSON型を指定してinsert時に直接JSONを入れてやることもできます。
plv8jsを使えばJSONの中をwhereしたりINDEXを利用することもできるようです。
今後は日本語対応も含めて設計の幅が広がるので期待したいと思います。
9.3ではもっと関数が追加されるかな?
ということで現在はBETA版で正式版は年末ごろになると思われる9.2。
非常に基本性能も向上しておりますので可能でしたら環境のバージョンアップを是非検討してみてください。

2012年7月20日金曜日

変態アドベントカレンダー in Summer : ATNDの7日目

この記事は変態アドベントカレンダー in Summer : ATNDの7日目です。

昨日の記事はdproject21さんの

たった一人で数万ステップを扱う変態プロジェクトを支えた技術

でした。
私は数万行もソースを読み書きとか経験ありませんので勉強になりました。
また他の方たちのように変態的なプログラミングスキルはありません。
ですので今日は最近一番勉強してるPostgreSQLの話書きます。

PostgreSQLと言えば高機能・高可用性から多くの実績があります。
コミュニティも活発でソフトウェアのバージョンアップも早く、また日本語ドキュメントも豊富。
(ここまで宣伝)

そんなPostgreSQLですが先日お邪魔した勉強会でこんな場面がありました。



という大変素晴らしい状況になった理由は
ursmさんの素晴らしい発表のおかげ(発表資料)です。
というわけで今日はPostgreSQLの変態的な素晴らしいところを少しだけお伝えしようと思います。

■データ型
ursmさんは配列型を取り上げており、素晴らしい反響でした。
参考までにデータ型の最新のドキュメントはこちら
ぱっと見ても色々データ型がありますね。
その中でも変態的なのは

・ 論理値データ型
・ 幾何データ型
・ ネットワークアドレスデータ型


あたりでしょうか。
というか複合型とか類似データ型とか変態的過ぎて私も勉強不足です(*´ω`*)
例えば幾何データ型を使うと位置情報の計算もスムーズ?に実装できます。
実際に私も使ったことがありますので参考までにどうぞ
データ型に関しては使い方次第で凄く便利になるので是非。

■参照系
ursmさんは中間参照→LIKE '%hoge%'でもINDEXが有効になるpg_trgmのお話でした。
全文検索については9.1以降でも強化されており、ぜひ一度こちらのドキュメントを一読ください!!
そして私がオススメする参照はSQLのウインドウ関数
MySQLを普段使ってる人はあまり馴染みがないかもしれません。
実際の使い方はこちらがわかりやすいですね。
要は行を集約せずに比較することができます。
例えば県別に並べたお店のデータを人気順に並べたい。
こういった場合は県でPARTITION BYして人気データのカラムでソートしてやれば出ます。
これは大変便利です。

以上のとおり、触りの部分ばかりでしたが機会があれば是非PostgreSQLを使ってみてください。
他にもPL/SQLであったり、レプリケーションであったりと取り上げたいところは多々あります。
ですが今日のところは仕事中なのでこのへんで。
明日はtanago238さんです。
どんな変態的な内容なのか楽しみですね!!
それでは引続き変態アドベントカレンダー in Summer : ATNDをお楽しみください。

2012年7月5日木曜日

ssh経由でデータベースに繋ぐ方法

お客さんの鯖にsshでログインしてターミナルでDBを触ってるサバンナの住人の方へ。
実際のところよくある風景だと思います。
自分もコレがかなり煩わしく、phpMyAdminすら入れれない状況でした。
そんな状況を解決する方法はsshトンネル。

Mysqlでは

A5:SQL Mk-2 から SSHトンネルを利用して MySQL へ接続する


こんな感じでSSHクライアントを使ってローカルのSQLクライアントを利用することができます。
LinuxやMacはいいけど問題はWindowsにsshクライアントが標準でついていないこと。
ここではcygwinを例にしてますがcygwinを入れるのはちょっと…って人向けに代替案。

1 Git shell
GitHubを使って居る方でGitHub for Windowsをインストールしてる人はついてきてるはず。
これはcygwinと一緒でsshクライアントがついてくるのでこちらを使ってコマンドを叩けます。
具体的には起動させて以下のコマンドを叩きます。

ssh -N -L 3307:127.0.0.1:3306 ログインするユーザ名@ログインするサーバ -i 鍵

な感じ。
鍵を使っていない場合は -i から後ろはいりません。
A5を使ってる方は後はリンクの通り、接続情報を入力すればつながります。
私はこの方法で繋いでいます。
Githubがまた一歩好きになりました(関係ない)
ついでにLinuxやMacの人はターミナル立ち上げて同じコマンドを叩けばいけます。

2 PuTTY
Windowsのsshクライアントとしてはメジャーなクライアントかと。
こちらはメールをssh経由で使う方法ですがトンネルの作り方は参考にどうぞ。
GUIで出来き、分かりやすいのでオススメです。

3 Tera Term
Tera Termもメジャーなsshクライアントですね。
ここで紹介する例はリモートデスクトップ用のトンネルの作り方ですが参考にどうぞ。

 
基本的にsshでトンネルさえ作ればローカルにつなげるのと同様にサーバに接続できるようです。
データベースに繋ぐ時は

・ データベースに実際につないでいるのは接続先のユーザ
・ SQLクライアントからはlocalhostにつないでいるように見える

と言う点に注意です。
具体的にトンネル時にサーバ側に指定するポートですが、defaultは

・ mysql 3306
・ postgreSQL 5432
・ Oracle 1521

です。
自分はsshでトンネルしてA5でPostgresもMysqlも繋いでいます。
他の例ではPostgresにpgAdminで接続できるそうです。



ということで現場で生psqlでSQLを書いてたりして苦労してる方は是非一度お試しください!!

2012年7月3日火曜日

第14回オープンラボ備後

祝2周年ということで今回のオープンラボ備後は合宿でした!
場所は府中アンテナさんに提供して戴いた元呉服屋の雰囲気のある建物。
懸念していた暑さは雨のお陰で和らぎ過ごしやすい一日でした。
ということでその内容。
 

初日

まずはセッション3つ。
その雰囲気はTwitterまとめを御覧ください。

【タイトル】「 OpenStreetMap * はじめました
【発表者名】丸市さん


オープンソースの地図作りのお話。
OSMは福山でも4月に開催され、大変好評でした。
やはり自分のやったことが形になると言うのは嬉しいものです。
特に驚いたのがOSMへのコミットの敷居の低さ。
最近はGPSのデータを収集するデバイスが増えてきたのでエンジニアじゃない人も是非。
天気がいい日に府中とかの散策兼OSMなんかは楽しそうですね♪



【タイトル】「わたしと、Facebook」
【発表者名】戸田さん


エンジニアではない経営者から見たFBの話。
自分の周りはエンジニアばかりなのでこういうuser目線のお話は大変勉強になりました。
またFBの広げ方と言うか楽しみ方の話を聞いて、Google+の失敗点も見えた気がします。
WEBアプリを作る側として、こういった向こう側意見を聞く機会を定期的に持つべきですね。
良い教訓になりました。

 
 
【タイトル】「ふりかえり ワークショップ(仮)」
【発表者名】懸田さん
アジャイルのふりかえりを知るためのワークショップ。
今回は折り紙を使ったワークショップでしたが毎度のことながらこういうのは楽しいですよね。
個人的にはプロトタイプを作る大切さ(技術基盤を早めに確立させること)感じました。
プロジェクトと言うかチームとしての仕事の進め方は自分の大きな課題ですね。
懸田さんとは機会があればエンジニア・経営者としての仕事の取り組み方のお話をしたいです。



と3セッションあっと言う間でした。
またこの後は呉高専の佐々木くんのアーク放電のデモがありました。
目の前で放電とかインパクトスゴすぎ!!
コレはもうOSC広島のオープンラボ備後枠確定ですw
本当に大型新人をgetできたのは収穫です。
岡山に負けず、広島も盛り上げて行きたいですね!!

そしてデモを見た後は日帰りの人はここで終了。
その後は「ドキッ、男だらけの大懇親会!」ってことでお泊り組8名で鍋。
お酒を呑んだりしながらトークは朝4時すぎまで続きました。
(一番白熱したのはお好み焼きについてでしたがw)

そして私が寝てる間にみんなはうるう秒の確認をしたりした二日目。
朝ごはんはカレーを自炊して食べ、やっとここからハッカソン。
それぞれが自分でテーマを決めて午前中はガリガリソースを書きました。
私は前回のエントリーに書いたGithub上にWEBサイトを構築するのとCSSFramework。
無事、このようにGithub上にサイトをつくれました。

オープンセミナー広島@2013予定地 

またCSSFrameworkついてはこちらの資料をどうぞ。

CSSFramework
(適当にclickしたら画面がひらいたりしますw)

他にはKinectを使ったアプリを作ったり、Androidアプリの開発をされてる方もいらっしゃいました。
最後はそれぞれの成果物を発表し、カレーうどんを食べて終了。
終始雨だった天気も最後は晴れて素晴らしい合宿となりました。

最後になりましたが、場所を提供していただいた府中アンテナさん、ありがとうございました。
また主催として多忙な中、準備をしてくれた@lopes_nbさん、ありがとうございました。
そして料理担当のがみさんをはじめ、参加してくださった皆さん、本当にありがとうございました。

次回からは弓本さんから主催がその他に変わるかもしれません。
ですがオープンラボ備後はみんなで育てているコミュニティです。
作りたいこと、試したいこと、みんなに話したいこと、なんでもチャレンジするからラボなのです。
ですので興味がある方、イベントを開催したい方はお気軽にご連絡、ご来場ください。
自分もWEB、RDBと好きなことでオープンラボ備後をどんどん活用して行きたいと思います。

ということでまた2年周期ぐらいで合宿ができたらいいですね!!

2012年7月2日月曜日

GitHubでサイトを公開する方法

先日、オープンラボ備後の合宿でひむひむ(@eielh)に教えて貰ったことをメモ。

やりたいことは

http://hogehoge-test.github.com/

みたいな感じでGithubを使ってWEBサイトを作る方法。
てなわけで簡単なメモ残しときます。

まずはGithubにアカウントと作ります。
なんだよコレ!って人は適当にググってこんな感じのサイトでお勉強してください。
でアカウントを作ったら公開するためのorganizationsってのを作ります。
organizationsは組織というか開発するためのグループみたいなもんだと認識してます。
作り方は









手抜きなのは許してw
するとorganizationsを作る場所になります。




 でcheckが通ったら作成!!
 ボタンは下にスクロールすると出てきます。



ここで知り合いのGithubユーザがいれば管理者として追加できます。
やり方はアカウントを入力してADDを押すだけ。
管理者を追加する必要がない場合は青枠のボタンをポチッとな。


黄色部分が作ったorganization nameになっていればOK
次は青枠を押してRepositoryを作成。



次はRepository nameをつけてcheckが通れば作成!
※Repository nameは○○.github.com.gitと言った感じで
 
.github.com.git

を末尾につけて下さい。
(これがアクセスするときのURLになります)



この画面になれば下準備は終了。






日頃からGit使ってたり、CUIが得意な方はページに書いてあるとおりにするとプッシュできます。
Repositoryと同名のプロジェクトを作ってGitの初期化をします。
NetBeansのGitの使い方は公式を参照するといいです。

1 まずはhtmlファイルを作ってcommit

2 gh-pages というブランチを作成
このブランチを作ることで
http://hogehoge-test.github.com.git
のURLでアクセス出来るようになります。
またこれが表示されるサイトのソースになります

3 リモートリポジトリにmasterとgh-pagesをプッシュ

するとGithubにメールがくると思います。
メールが来たらhttp://リボジトリ名でアクセスして表示すれば成功。
後はcommitとプッシュを繰り返してサイトを作ってみてください。
htmlなら表示できるのでJavaScriptやCSSなど使えます。
例えばTwitterBootstrapを使えば告知サイトなどはすぐ作れる思います。
一度慣れると非常に簡単でDNS等の設定も要らないので

・ すぐ作りたい
・ ソースは見られても良い

と言ったニーズのモノはどんどん活用していくといいと思います。
ドキュメントなんかもみんなで改修できるので公開方法として使うのはいいかもしれませんね。
ということで自分もこれを使ってGitの勉強と言うことでOSHの告知サイトを作ってみようと思います。
一緒に作りたいって人はこちらまでどうぞ

オープンセミナー広島@2013予定地


2012年6月28日木曜日

wgetでPOSTする&POSTデータの+記号が消える

みなさんLinuxのコマンドであるwgetつかってますか?
簡単に出来ることを並べると

・ 再帰的なダウンロードの自動化
・ ログインが必要なサイト監視
・ xmlやJSONの取得
・ データのPOST

など大活躍。
こちらのページはoptionの一覧を詳しく説明してるので一読の価値あり!

ダウンロードコマンドwgetのオプション一覧(linux)

その多彩な機能のひとつ、「データのPOSTする方法」でちょっとハマったのでメモ。
例えば下記のコマンドを実行するとdataと言うnameでhogehogeをPOSTします。
 
wget --post-data 'data=hogehoge' http://hoge.jp

例えばPHPプログラムだけでPOSTするのは結構な手間ですが利用すると実装が楽になります。
また他にもmailのエイリアスを利用した内容の自動転送とかが容易になります。
(両方セキュリティ上の懸念点はあるので仕様と相談してくださいね!!)
ついでにPOSTだけしたい(サイトのhtmlを取得しない)場合は

--spider

を引数でつけてやるとファイルが無限増殖しません。
で実際の使い方はphpなどでsystem関数などに入れて実際のPOSTデータは変数っての多いと思います。
例えばphpだとこんな感じ。

`wget --spider --post-data 'data=" . $data . "&time=" .$time . "' http://hoge.jp`;

(PHPのバッククォートは shell_exec() と等価です)
POSTの数を増やしたい時は&で繋げば増やせます。
でここで大事なのがbase64などの記号の入った内容をPOSTする場合。
wgetのPOSTは中途半端にエスケープまたはURLencodeをしてるようです。
例えばPOSTの際に+を半角スペースに置き換えてしまいます。
つまり

$data = 'hoge+hoge';

をwgetでPOSTすると受け取り側(例はPHP)は

echo $_POST['data']; //←hoge hoge と出力される

となります。
これにより

・ base64変換したバイナリ
・ mail添付ファイルなのどのmimeの内容

などをPOSTした際にちゃんと復元が出来なくなります。
これの対策としては
POSTする対象のデータを事前にURLencodeしてからコマンドの引数にしてやること。
同じくPHPで$dataの中身がbase64encodeされたデータなどで+があるとすると。

$data = 'hoge+hoge';
$data = urlencode($data);

としてから$dataをコマンドに渡せばOKです。
ということで具体的な事例がググっても出てこなこなかったのでメモとして残して置きます。

2012年6月25日月曜日

PostgreSQLユーザ会の中国支部長になっちゃった&ウサギィに潜入捜査してきた

表題の通り、JPUGの中国支部長になりました。
こんだけ大きなコミュニティの支部長をするというのはとても光栄なことです。
そして就任時のあいさつでお話させていただきましたがPostgreSQLは万能なRDBです。
そして今後はhtml5によって業務・基幹系をWEBアプリとして作成する案件はどんどん増えてくると思います。
そうなった時にはWEBサイトとして相性のいいMysqlに対してPostgreSQLはより多くの長所を持っています。
これは今後、自分がやりたいことの一つの答えですので今後はどんどんPostgreSQLを広げて行きたいとおもいます。
つか総会のあとの懇親会で当たり前だけどみんなPostgreSQLの知識がすごすぎてやばかったw
俺もスピーカーとして堂々と伝えれるようにしっかり勉強せんとイカンですわ。
まずは今度リリースされる9.2の仕様をしっかり勉強しておきます。


そして東京に遊びに来たついでにと今、Twitterでも注目されてるウサギィにお邪魔してきました。
以前からTwitterでウサギィの社長さんをフォローさせて頂いてて、流れるツイートから「すっごい楽しそうに仕事してる会社だなぁ」と感じて興味ありまくりでした。
なので直接の面識ないけどプッぱなしでアポ取ったらすんなりオッケーいただきました。
(こういう懐の深さもすごい)
てなわけで今回の東京遠征の最大の収穫とも言える @usagee_jpさんとの会合!!
まずはウサギィさんの本社を見させて戴いた感想として

・ すっげーおしゃれ!!
(水槽とかあるしインテリアは凝ってるしヤバイ)
・ 20インチオーバーのディスプレイを各人二枚が標準装備
・ 各人に仕事用のデスクトップPCがある(OSはそれぞれ自由)
・ 更に作業者はMBAとか持って作業してるらしい。

「仕事環境は素晴らしいモノを用意する」っていう最大の福利厚生に対する経営者からの明確な答えがそこにあって、
「こんなとこで仕事したい!!」って感じるものでした。
こういう良い環境で仕事をされてるところってのが一見でわかると会社は会社の品質というかプロダクトの品質の良さは想像に難くないですね。
で更にお互いの簡単な紹介を交えながら会社の運営の話を聞いてみた感想として

・ @usagee_jpさんは俺と同じ歳!!!←マジビビった
・ 物作りの考え方に非常に共感を覚えた
・ 一度紙にデザインを簡単に落としこんでしっかりとUIを検討するのは非常にいいと思った
・ 難しい仕事こそやるっていう方向性・ 社員にそれぞれ多くの自由と権利を持たしてる=社員はそれだけ優秀
・ HTMLとCSSが出来るセンスのいいデザイナー募集中らしい
(※ただし可愛い女の子に限る?)
・ この人頭いいわ←俺と頭の作りが違うんじゃないかなw

話題になった会話の代表としては



ていうのがありました。
当たり前なことなんだけど周囲を見渡すとコレが当たり前じゃないってすごい捻じれですよね。
こんな感じで本当に本当多くの刺激をいただきました。
聞けば聞くほど「あーこういう感じの会社を自分も作りたい」っていう未来の自分の目標に対するすごい良い目標を見つけれたと思いました。
今回は前日に飲み過ぎて体調も不良だし、時間も短いものでとっても勿体無いことをしました。
次回はしっかりと時間を調整してしっかりとお話をお聞きしたいと思います。
突然の訪問にもやさしく対応していただき、本当にありがとうございました!!
@usagee_jpさんと機会があれば是非是非、ご一緒に仕事がしたいですね。


というわけで刺激的な週末を過ごせました。
27歳というと同世代でも色々と格差が目立ち始めるころ。
自分もみんなに刺激を与えるような尖った部分を磨いていきたいですね!!

2012年6月11日月曜日

「勉強が何の役に立つのか」について俺的見解

世の中で「勉強が何の役に立つか」と頭がいい人達が本気だして考えたみたい。
読んだエントリーは


「勉強が何の役に立つのか」について本気出して考えてみた

 

勉強が何の役に立つのかを全力で考えた。

 

「こんなこと勉強して何の役に立つの?」と聞かれた時、言葉を尽くせない大人が知性を殺す



と上の3つ。
勉強が何の役に立つの?ってのは誰もが考えたり、そんな議題を聞いたことがあるでしょう。
それぞれ紹介している解は「よそはよそ、ウチはウチ」で返されたり「文句を言わずに勉強しなさい!」って言われたりすることを考えればすごく良い解答だったと思う。
だけどこれって頭の良い(勉強をしてきた)人の解だよなーっと思った次第です。
俺はね、勉強は色んなことの役に立ってるのは間違いないし、そんなことは今の中高生たちの多くはわかってると思う。
多分、今の中高生は「勉強は受験対策でそれ以上はない」って見てしまってるんじゃないかなと。
だから「勉強することで人生が充実する可能性が見出せない」からそういうことを聞いてくるんじゃなかろうか。
また何かを創造すること、世界を成長させていくことは「頭の良い人がやること」で「自分には関係の無い遠いところの話」って思っちゃってるんじゃないかなと。そういう子たちに勉強の必要性を説くのは難しい。
そういう子が仕事に対しても「お金もらえればいい」程度になって、意識低い大人になっちゃう。
少なくとも俺はそうだった。
そんな自分が変われたのは

・ 楽しそうに仕事をする人が勉強熱心だった
・ その人と仕事をすると今までが嘘みたいに楽しかった!
・ その人を真似て勉強し始めたらすっごく楽しかった←いまここ

これだけなんだけどこういう単純なもんなんだと思う。
眼をキラキラさせながら「こういうことしたらこういうことが出来るんだよ!凄くね?マジで凄くね!?」って言えて、一緒に楽しめる大人が少ないんだろうなーと思う。
そんな経験が今の子供達には必要なんだろうなとは思う。
俺も家に帰って娘に「仕事つれー超つれー」って言うことはさすがにないんだけど「パパはこんなこと出来るんだぞー」って目をキラキラさせながら言えるようになりたい。
仕事もそんな人達としたい。

と話が脱線してきたので無理矢理まとめる。
「勉強が何の役に立つか」っていうのは上記の人達が言うとおり色んな所で役に立ってる。
だけどそれがわかったからと言って勉強する意義が見えてこない。
だから言葉の尽くせない大人に当たると向上心がどんどん無くなる。
そんなスパイラルになってるんじゃないだろうかね。

まぁ要は周囲の大人に魅力がないから子供がそんなこと考えるんじゃないかなっ!!

2012年6月5日火曜日

Jquery.ascensor.jsつかったプレゼンと勉強会

オープンラボ備後&岡山JS行ってきた。
とは言っても既に一週間以上達、それぞれの講師の方が資料をあげてくださったり、職人がまとめてくれたりしてるのでそちらを参考に。
(かずさんときよくらさんの資料が見つけれませんでした、ごめんなさい。)


オープンラボ備後

Twitterまとめはこちら

1 playframeworkの紹介 javaWEBフレームワーク 吉田さん

オープンラボ備後でPlayframeworkのこと喋ってきたAdd Star

2 初めてのRails rubyWEBフレームワーク 山本さん

3 次世代JavaScritpUIフレームワーク!?“Knockout.js”を先取りしよう 保住さん

4 phpのFrameworkを選ぶコツ 俺

okayama-js


Twitterまとめはこちら

これの資料とかみんな公開してんのかな?
Twitterのまとめに上がってないヤツの仕入れ先があれば是非教えてください。
(@maeponさんとか知らないのかな?)

ついでに自分はOSH@2012のリベンジってことでこれしてきました。

そしてオープンラボ備後はJquery.ascensor.jsをつかってこれをしてきました。

phpこそ最強なのだ!!

ついでにFirefoxをお使いの方は音が出ません。
逆にChromeとかお使いの人は音が出るのでご注意ください。
で内容としては前者の三人のプレゼンが素晴らしい&当日駆動資料作りだったので内容が薄くてすんません。
伝えたかったことは

・ Rubyみたいな先進的なことは少ないけどRailsのいいとこを取り入れたFrameworkはPHPにもあるんだよ!

ことです。
後は補足としてRubyって開発者のための言語で無いものを楽しく作るのにすごく適した言語だと思うのだけど、phpは成果物を作るための言語だと思うのです。
なので車輪の再開発的な要素をなくすために標準の関数が山ほどあるし、あれもこれもとFrameworkがやるようなことでもPHPでに載せてあったりするわけで。
 なのでスピーディに目的を達成するための言語としてPHPは出来る子なので皆さんも優しく見守ってくれたらいいんじゃないかなw


でこれだけだと大したアウトプットになってないのでプレゼンの資料作りの方法を簡単に説明しておきます。
ブラウザでプレゼンしたい人の参考までに。

1 音楽の出し方
html5で可能になったaudio要素を使ってます。
細かい実装方法はこちらが分かりやすいです。
今まではflashだったりブラウザのプラグインだったりに頼ってたところがたったこれだけで実装出来るのは大変便利ですね。
ただブラウザによって流せる拡張子が違うのでそこが今後の課題かも。

2 タイトルのフォント
CSS3のWEBフォントを使ってます。
やり方としては

<link href='http://hogehoge.com/css?family=hoge' rel='stylesheet' type='text/css'/>
 
とCSSの読み込みと同じようにWEB上のフォントを読み込み

h1 {
    font-family: 'Love Ya Like A Sister', cursive;
    font-size:100pt;
}
とこんな感じでCSSでフォントを指定して上げるだけ。
日本語のWEBフォントもモリサワとかが出してたりするので、
今後はこういうプレゼンとかで大活躍するかもですね。
 
3 Jquery.ascensor.jsの使い方
デモにも書いてありますが
<div class="contenu">で括った範囲が一ページです。
またmyscript.jsというのがconfig的な役割を果たしており、
 
・ AscensorMapでMAPの広さ
・ ContentCoordでMAPのつなぎ方
・ Navigで右下にMAPの表示の有無
 
などなどが設定できます。
#house1の数字で該当のMAPに飛ぶこともできるます。
MAPの広げ方次第ではただのコマ送りじゃない遊び要素のあるページも作れそうです。
後は3ページ当りからクリックすると表示が次々出たりしますが、
これはJQueryのshow()とhide()を使ってます。
限られた時間(1時間ちょっとくらい)でとりあえず書いた感があるので、
自分のソースは汚いですがJQueryを触ったことが無い人の参考になれば幸いです。


とこんな感じですかね。
最近はブラウザでのプレゼンも珍しく無くなって来ましたが、
パワポにはない表現がある+WEBのいい勉強になると思います。
興味が有る人は是非試してみてください。
というわけで今日のところはこのへんで。

2012年5月21日月曜日

色んな人がいるんだねー

studygiftについて巷で話題になりましたね。
こういう「可哀想だから支援しちゃう」的な空気と「偽善者乙www」って空気はすげーなと。
俺的には炎上の話を見ても大変だなぁと他人事なんだけどこんなブログ をみて、たまには柄にもなく自分の本音でも書いてみようかなと思った次第です。
(決して仕事の大きな波が終わって暇なわけじゃないんだからねっ)


俺のステータス。

○ 親父は小学校入る前に白血病で他界
事業をしていた&昔は白血病は保険対象外だったらしく大量の借金が残ったらしい

○ 小学校の同級生が14人(これでも超多い学年だった)で母校はすでに廃校になったくらい超ど田舎出身

○ 母親は中2時に乳がん発覚→高校卒業して2ヶ月後に他界

こんな環境なので世の中の人が「お金が無くて勉強できません」って言うレベルにいたとは思う。
でも姉は大学行って看護師になってるし、俺の場合はお金(むしろ格ゲーのせい)がなくて大学いけなかったわけじゃない。
もっと言えば今はプログラマーとして色んな勉強会とか参加してるし、学歴は高卒のままだけど家族(嫁と娘二人)を養えてる。
みんな知ってることだけど学歴なんて自分次第で欲しければなんとでもなると思うし、逆に生きる上で無いより合ったほうがいいけどそれほど必要なものでもない。
だからそんなことよりも

人生は思ってるよりも短いんだから楽しく生きた方がいい

これに限るんじゃないかなと。
他人を支援することで幸せを得たいならすればいいし、 自分が楽しく生きるためのチャンスをあるなら活かせばいいし。
ただ「環境を理由に諦める」若い人をよく見かけるけど環境は自分で選べるし変えれると思うので(少なくとも俺は選べてきたと思う)それは諦める前によくよく調べて見るのがいいんじゃないかなと思います。

ということで何が言いたいかと申しますと俺のほしいものリストはここに置いときますね ←

2012年5月14日月曜日

オープンセミナー2012@岡山

すっかり更新の滞りがちなブログですが大きなイベントに参加してきましたので更新!!

この5/12に運営スタッフの一員としてオープンセミナー2012@岡山に参加してきました。
イベントの内容はまとめを見て下さい。
僕はここではイベントの内容については特に何も書かないことにします。
それと運営スタッフとしてはWEBサイト制作と当日の雑用をさせていただきました。
本当に色んなことを学びました。
来年は是非とも若い人たちを巻き込んで大きな渦にしていければいいなと思ってます。
興味があるかたは是非運営スタッフに名乗りを上げてください!!

とこれだけで終わるのも寂しいので当日の懇親会のLTの資料と最高の写真を載せときます。
この写真にイベントの雰囲気が詰まってますねっ!

残念が怖くてLTが出来るか!

titleのtypoは仕様です!!
あと残念とdisられたAタグのところとかそのままです。
適当に文字clickしてたら次があったりします。
LTの技術面に興味がある方は今回はこちらを使いましたがので参考までに。


[JS]スライドを縦横斜めのダイナミックなスクロールで表示するスクリプト -Ascensor.js


そしてみんなの最高の笑顔がこれ。
来年も絶対参加します!

2012年5月4日金曜日

EC-CUBEのハマリポイント

みなさんGWをどうお過ごしでしょうか。
僕は初めてのEC-CUBEの案件で苦労続きで前半戦はずっとドタバタしてました(´・ω・`)
今はやっと落ち着き初めましたがそんな苦い思い出のいっぱい詰まったEC-CUBEさん。
国産のメジャーなCMSな割にはコアな部分の情報は少なくて、更にバージョンによって対応も随分違ったりと大変なので自分の備忘録のためにもここにハマリポイント(ハマりそうなとこ、実際ハマったとこ)を列挙しときます。
スマートな対応じゃないとこもいっぱいあるので、もし代案があるなら是非是非教えてください!

まず前提条件として自分が担当したEC-CUBEのバージョンは2.11.4です。
そしてインフラの環境はLAMPです。
またECCUBEの基本的なディレクトリ構成(data、htmlの関係とかphpとテンプレートの関係とか )は他のサイトとソースを見て頑張ってくださいw
自分はSmartyも初めてだったのでこの本を自炊してOCRかけて使いました。
こういう技術書(特にポケットリファレンスとか)を自炊してOCRは便利ですのでオススメです。





それではいくつか。

1 ログイン認証
ソースを読むと分かるんですがpasswordは

    /data/class/util/SC_Utils.php

のメソッドで確認してます。
基本的には

$res = hash_hmac(PASSWORD_HASH_ALGOS, $str . ":" . AUTH_MAGIC, $salt);

でハッシュ化した文字列とDBの文字列がマッチすればOKです。
そこで問題になるのがそれぞれの引数。
これは

    /data/config/config.php



    define ('AUTH_MAGIC', 'ECCUBEのインストール時に生成されて保存される');
    define ('PASSWORD_HASH_ALGOS', 'sha256');

となっており、これを使われます。
また$saltは既存のユーザはDBの

    dtb_customer

にユーザ毎に保存されており、それぞれ取得して使います。
つまり検証環境と本番環境でそれぞれECCUBEをインストールして、DBだけを移行した場合はAUTH_MAGICがマッチせずログインできなくなります。
対策としてはユーザのpasswordの再設定か上記の定数をマッチしてください。
でここまではソースを見ればすぐわかる話。
俺がハマったのはさらに環境としてリバースプロクシを使ってた時。
ログインの時にログイン時のホスト名を確認しており

    $_SERVER['HTTP_HOST']

の値と

    define ('HTTP_URL', 'http://soudai.zannen);

が一致しない場合に蹴られます。
なのでリバースプロクシを使ってる環境では上記のconfig.phpの最初で

    $_SERVER['HTTP_HOST'] =  'soudai.zannen';

としてやりました。
これと同じことはwwwを標準ではつけてるけどリンクにwww無しで記載してたりしてURLがマッチしない時も起こるのでFQDNは要注意です。

2 mysqlでのシーケンスの取得
ECCUBEは受注番号や会員番号などの順番を

    table名.seq

と言うtableで管理しています。
mysqlはPostgresのように複数tableをまたがるシーケンス用の仕組みを用意してないので(むしろあったら是非教えてください!)tableでシーケンスを管理するのはよく見る手法ではあります。
で自分がよく見るのはtableの中のカラムの値をselectで取得して

update table_sequence set seq_num = LAST_INSERT_ID(seq_num+ 1) where column_name = 'zannen_num';

などで使った後は増やしてやる方法。
こうすることでtableの中の対象のカラムの中の数字がそのままシーケンスになります。
ECCUBEも一見すると同様にtableの中のカラムにシーケンスナンバーが入ってます。
ですが実際に取得してるのは

    Autoindexの値

なのでカラムの中の値を変えただけではシーケンスは変わりません!
つまりサーバ移行などで会員情報や商品情報を直接DBにINSERTしたり消した時は

    ALTER TABLE テーブル名 AUTO_INCREMENT = 目的の数字

で数を増やしてやったり減らしてやる必要があります。
初期化する場合はTRUNCATEしてやればカラムと一緒にAutoindexも初期化されます。
なのでデータ移行後にID発行が出来なくてエラーが出た場合はここを確認してみてください。
(つかシーケンス取得するたびにINSERTとDeleteしてるってことだよね?どうなのそれ...)

3 納品書のPDF生成
受注管理画面からPDFを吐き出せる機能は

    /data/class/SC_Fpdf.php

に直書きされてます。
つまりこれをそのまま弄るとバージョンアップの際の鬼門になります。
ですがそれ以上にLAMPの環境だとPDFの生成時にエラーを吐いたりします。
クライアント側がMACの場合文字化けたりします。
これは

    /data/module/fpdi/japanese.php

の中で文字コードのArialを指定してるところがあります。
Linuxだと当然サーバ側にArialなぞありません。
またMac側にもArialはないのでMacの場合はそもそも表現が出来ないので文字化けします。
なのでここの文字コードの指定を外してやって対応してます。
つかPDF関係はかなり元の実装が残念なので結構大変だと思います・・・


とまだまだECCUBEのハマリポイントはあるんですが長くなるのでこのへんで。
また元気があればちょいちょい書いて行きたいとおもいます。

2012年4月8日日曜日

CSSNIGHT OKAYAMA

ブログを更新するまでが勉強会です( ー`дー´)キリッ
と言いながら会場では仕事の関係で一生懸命ECCUBE触ってたのが私です←

というわけで勉強会に行ってきたのでその内容を簡単にまとめ。
つか勉強会関係は今年初まとめだわ(しろめ

でまずは職場の先輩がTwitterのハッシュタグをまとめてくださったのでこちらをどうぞ。

よくまとまってるわーまとめブログとか要らないわー #ステマ

でhtml5とCSS3特集ということでWEB特化のお話がメインでした。
特にWEBのお仕事してる&WEBのことは知ってるけどバリバリのコーダーじゃあない人やhtml5やCSS3を追いかけていない人にはとても充実した内容だったと思います。
よくわかんないけどHTML5ってなに?とかW3Cの日本語ドキュメントはよ!って人は3000円以上の価値はあると思いますよ。
でCSSNIGHTを細かくセッション毎にお話するのがベストなんでしょうけど気になる人は同じ話をもっとブラッシュアップして聞けるCSSNIGHT 高松に参加したほうが絶対いいと思います。
つか高松のアナウンスしてた人可愛かったなー、あの子とお話するチャンスがあるなら懇親会出とくんだったなあ(ダメ人間
というか聴衆の人は自分とは全く毛色の違う人が大多数で話合わないかもなー&今月はイベント多すぎてMP(マネーポイント)ないんだよなーっと思って懇親会に出なかったのは勿体無かった。
そういう時こそコネクションを作って見識を広めるべきだよね。
ということで高松に行かれる人は折角の機会ですから懇親会に出ると色んな出会いが生まれていいと思います。
しかしCSSNIGHTに来てた女性は可愛い子多かったなー(

で内容としては逆に日頃からW3Cを追いかけてるような人はちょっと物足りないかな。
ただ羽田野 太巳さんのお話はhtml5知っていれば知っているほど共感出来るところが多かったので「そう思ってるのは自分だけかも?」って不安が解消されたのは嬉しかったです。
オープンセミナー広島2012でPhoneGAPの話をした時に感じた「WEB業界の生産性が他の業界の標準になる日が来る」&「今の開発プロセスがブレイクスルーする日もそう遠くない」っていう漠然とした感覚が確信になりました。
てな感じで知ってる人は復習的な要素が強くなるのですが俺が羽田野さんで感じた安心感のようなモノを買うと言う意味では3000円は安いくらいだと思います。
つか講師陣とのコネクション作るためにやっぱ懇親会に行くべきだったなー羽多野さんにPerlの頃からのWEBの歴史聞きたかったなー。
という感じでやっぱり後悔するくらいなら懇親会に出ましょうw

それと蛇足ですが岡山では電源がなく充電関連が出来なかったため、俺のZENBOOKのバッテリーが中盤からカツカツでした。
PC持参する方はフル充電で持って行きましょう!
後、あぁいう場で質問コーナーで質問しない人が多いけど質問をするつもりで話を聞いてると頭の印象に残りやすいのでオススメですよ。
懇親会でも「あぁあの質問してくれた人!」っていうことで話すきっかけになりますし。

てなわけで今月のイベントラッシュの一発目でしたが充実した内容でした。

で最後の広告w
5月27日のオープンラボ備後でWEBのフレームワーク特集っぽい勉強会します。
岡山が誇る最強の講師陣を俺のコネ全開でお呼びしたのでエンジニアの人もコーダーも満足出来ること間違いなし!
最後の枠はphpあたりのフレームワークの話出来る人が立候補してくれると嬉しいです!
まぁ最悪の場合はいつもどおり俺の当日作成メソッドで枠を埋めますがw
 というわけでこちらにも沢山のご参加お待ちしております。


というわけで勉強会終わったし仕事するか(遠い目

2012年3月29日木曜日

目的と手段と反省と

鉄は熱いうちに打て、ってことでツイッターでちょっと反省しなきゃなって思ったことをまとめます。
というか同じような流れで反省しなきゃって思った事は一度や二度じゃないので強い自戒の意味を込めた決意として。

まず元になった日頃、手段と目的について。
自分はインフラが好きでDBが好きでDBを知るためにSQLを勉強しろゴラァ!って言ってました。
SQLもDBも何かのデータを格納したり取り出したりする手段です。
そして手段としてのDBが疎かにされてる場面もよく見かけるし、それが理由で目的は達成したけどベターでない場面もよく見かける。
確かに手段に拘ることで目的の達成後だったり目的がより良く達成されることは多々ある。
でも仕事において重要なのは目的であって手段ではない。これは頭ではわかってるつもりでした、本当につもりなだけ。
だから自分から見て「勿体無いなぁ」って思ったことをすぐdisっていました。
でも英吉さんが

って言うのを見て「わかってないことがわかってないって言うのはこの状態なんだ」と我に帰りました。
で続いて

で「あぁ俺はすごい狭い視野で考えてたな」と。
ちゃんと前提条件とか確認もしなきゃただ感情的になって自分の意見をぶつけてるだけでした、そりゃ見てる人もいい気持ちはしないなと。
だからといって手段を大切することも間違ってない。
すますさんが上を見てすぐツイートしてた

これがこの業界現状だとは思う。
だから目的を達成するための手段の引き出し多いほうがいいし、手段そのものにエンジニアとして拘るのは悪いことじゃない。
だけどそのアプローチは人それぞれあって、優先順位も人それぞれなんですよね。
これが今回のことで直接的にわかってるようでわかってなかったなぁっと反省出来ました。

でこの一連の流れの中で自分の中で気付いた反省点。
そーだいと言えばtypoと変な日本語で #たけとも残念  が代名詞?です。
で実際に感情的になってツイートしてた時はほぼ無意識に論理的に矛盾がないか、誤字脱字はないかちゃんと見直して投稿してました。
なぜこれが日頃に全く生かせていないのかと。
そりゃTwitterを堅苦しくやる必要はないと思うけど、少しでも同じ意識を持ってればあのハッシュタグの出現度はもうちょっと減るだろうなと。
これって要は攻撃的な感情の時は自分の防衛のために用意周到になってるけど、そうじゃない時は発言に責任意識のない脳内垂れ流し状態になってるってことですよ。
せっかく今日、将来は独立するぞ宣言をしたばっかりなのに全くその方向性にマッチしてない。
誰かと仕事をする際に直接的な仕事以外の部分で他人を不快にする要素が多い人に仕事を末永く任せたいとは思いませんもんね。
仮にその仕事が上手く入っても次の仕事を任せる気にはなれないですし。
なのでTPOをもっとわきまえて、公開された場所に対する意識をしっかり持たないといけないなと感じました。
特に僕の名前はググラビリティが高いわけですからもっと先を見据えるなきゃいかんです。

と出来てる人からすればどうってことない話ですが自分がまだまだ人間として未熟な部分というか今後の自分には必要なことだと思うので言葉を形に残すことにしました。

日々、切磋琢磨していきたいと思います。

2012年2月23日木曜日

スマートフォン向けのdocomoid認証の実装とSUIDの取得について

3日間ほどドハマリしたので備忘録として。
(下記以外にも色んな理由はあるんですが←言い訳)
でdocomoの資料をみると実装としてはOpenIDのモジュールを使うのですぐ出来るだろーと余裕をかましてたらドハマリしました。
docomo関連のキーワードでぐぐって出てくる内容も具体的な実装方法は無かったのでこれが誰かのためになればと思います。

事前に必要なこと
docomoの公式サイト登録

docomoの参考資料読んでスムーズに行けばいいんですけど自分は一部の設定方法でドハマリしました。
具体的な作業としては

1 ファイルの設置(サイト構築)

2 環境に合わせて設定の変更(資料に書いてあるとおりに)

こんだけ。
こんだけなんだけどcacert.pemのせいでドハマリしてopenidのソースを見直すことまでしました。
でopenidのソースを追っていると
docomoの提供している 

Auth/Yadis/ParanoidHTTPFetcher.php

に書きなおしてる部分を発見。
これでググるとこちらのサイトが見つかり、こちらのご指摘通りにcacert.pemをダウンロードして指定してやれば上手く行きました。
自分でopensslでcacert.pemを生成してcheckのシェルスクリプトを走らせるとokが出るのですが、それでは認証が上手くいかない要注意です←これでハマった
またmixiや普通のopenidの設定でもここが鬼門になることが多いので覚えておいて損はないかと。
今後、会員サイトはOpenidをどんどん使うことになると思うので要勉強ですね。
自分もこの機会で色々勉強になりました。




PHP OpenID 認証 実行サンプル


あとはcURLのサイトが英語なので敬遠してたのが遠回りした原因かなとも思います。
(最終的には泣き泣き読んでかなり勉強になりました)
これからスマフォサイトにガラケーで以降を検討してる方などの参考になればと思います。

オープンセミナー広島@2012&第二回 岡山php勉強会

参加&セッションしてきました。
実はオープンセミナー広島@2012でも話をしてきたのですがすっかり更新を忘れて多忙だったため更新が滞っておりました。
なので両方合わせて資料をうpします。

両方共資料の作成時間は短かったのですが技術検証はかなりしました。
PhoneGAPはそもそもAndroidアプリの開発事態がど素人なので開発環境を用意したり実際にアプリを作ってみたり。
phpは初めて生のソースをじっくり見ました。
お題にしたechoとprint以外にも色々と実装を見て勉強になりました。
このふたつの経験で強く感じたのは「自分がやりたいことで無理矢理発表すると勉強する理由になる」ってことですね。
周囲の勉強会に参加されてる方は是非機会を見つけて発表駆動勉強を試してみてください。

ということでそんな勉強したとは思えない資料をどうぞ↓↓↓↓
誹謗中傷は#たけとも残念まで。



2012年1月7日土曜日

WEB系の開発をするために必要な10の開発環境 ~Windows~

####2014/09/09 追記####

最近環境が変わって来たので別に書き直しました。

2014年版 WEB系の開発をするために必要な10の開発環境 ~Windows~


最新の事情はこちらをご参考にしてください

####ここまで####

年明け一発目はZENBOOKを買ったのでそれようの開発環境まとめました。
開発の今後のメイン機となるので今までの開発環境を引継ながらも新たに追加してチャレンジしている部分もあります。
WEB系の開発環境を整える人の参考になればと思います。
(もっと便利なツールあるよ!って方は是非コメントください!!)

まずはハードとかOSとか。
PCは上記で紹介したZENBOOK。
安い、早い、薄いなのでWEBの開発には充分かと。
ついでにMBAに酷似してますがトラックパッドの性能はMBAほどではないので開発にはマウス必須だと思います。
僕はLogicool派なので友人のお勧めってことでこれ(末尾のリンク参照)にしました。
ZENBOOKのdefaultのOSはWindows 7 Home Premium(64bit)です。
Business等が良い人はMSDNなりライセンスを購入するなりしてOSを入れ直す必要があります。
僕の友人の@razonさんはZENBOOKにLinuxを入れて普通に運用出来てるらしいので入れ直し自体は問題ないと思います(ドライバーとかの苦労は別として
ということで前提条件としてノートPCのWindowsOSです。

1 IME
IMEはMS-IMEを使われてる方が多いかと思います。
有償ではATOKも良く出来てるしAndroid版の評判も良いですね。
私もずっとMS-IMEを使っていたのですが業務でMACを触る際に「L+A」と打鍵すると「ら」が入力されて随分苦しみましたw
その際に始めたのがグーグル日本語入力です。
サジェストが強力とか顔文字がいっぱい登録されてるなどのメリットがあります。
他にも細かい所で「Z+H」で←が表示されたり郵便番号を-付きで入力すると対象の住所をサジェストするなどあります。
無料としては非常に優れており、多くの環境で用意されているのでお勧めです。

2 ブラウザ
WEBエンジニアは普段使いとは別に動作検証する必要もあるのでIE・Firefox・GoogleChromeはインストールするかと思います。
ただ最近は駆逐されつつあるIE6ですが、IE6はIE9でのエミュレーションが出来ないので対応しなければいけないときはIETesterが便利です。
他にはOperaが良く名前を聞くブラウザですが基本的に対応しないのでインストールしてません。
ついでに普段使いはFirefox派です。
昔はfirebugが必須と言われていましたが最近はブラウザ自体の開発ツールが充実してきてますのでFirefoxに拘る必要はないとも思います。

3 テキストエディタ
私は開発時のコーディングはIDE派です。
なのでテキストエディタは特にこだわりがないのですが国産で評判のいいSakuraEditorを使っています。
その前は秀丸TeraPadを使っていたのですが秀丸はシェアウェアなので辞めました。
TeraPadは特に不満が無かったのですが折角なら国産のエディタを使おうということで使ってます。
実際にテキストエディタを使う場面がlogを開いたりconfを弄ったりする程度なので活躍の場が少なく、比較としては不十分なのが正直なところです。

4 IDE
僕は長らくEclipse、特にPHPを書くときはPDTを愛用しています。
Eclipseと言えばAll In Oenとよく聞きますがノートPCだと重いので軽量なPDTを使っています。
Desktopなどのでマシンパワーがある場合はAll In Oenはダメな選択肢ではないと思いますので初心者にはオススメです。
しかしながら周囲にNetBeansを強く勧められ、インストールしました。
ちょっと触った感じではEclipseより軽量で使い勝手は同様なイメージです。
プラグインで機能追加も出来るところもEclipseと同様なのですがインストールが必要なため複数の環境を作りたい場合やPCの移行などの際はEclipseに比べてがかかるかもしれません。
ただシンプルにphpやRubyなどでWEBアプリを作る場合はEclipseよりも使い勝手が良さそうなのでphpとRubyに関してはNetBeansをしばらく使ってみようと思います。
ついでにvimやEmacsで開発とか僕には無理なのでご勘弁ください^^;

5 ローカル実行環境
WEBアプリケーションの実行環境はXAMPPを利用しています。
セキュリティの脆弱性は沢山あるのですが開発用として利用する分にはとても使いやすく構築が簡単なためオススメです。
簡単なアプリケーションを実行するには充分なのではないでしょうか。
EclipseのAll In Oenを使ったりすると標準でついてきたりするのでAll In Oenを使ってる人はこちらを使う方が簡単かもしれません。

6 RDB
XAMPPでmysqlはインストールされるのですがpostgreSQL派なのでpostgreSQL9.1もインストールしました。
これは必要がない限りは必要無いのでお好みでどうぞ。
実はOracleも入れようか相当迷ったのですがなんとか踏みとどまりましたw

7 DB管理ツール&SQLエディタ
WEB業界の人はphpmyadminなどを使う人が多いのですが(XAMPPを使うと標準でインストールされるし)私は用途に合わせて幾つかツールを使い分けてます。
まずはDB管理ツール。
これはOracleのSQLDeveloperを使ってます。
標準でOracleとAccessとmysqlに対応してくれます。
GUIで色々操作出来る(tableの追加やカラムの変更など)ことができる上にSQLの実行も出来ます。
トランザクションの管理や作ったtableのDDLの発行、出力情報のexport、DBのdumpなどなど便利なのでDBAの人にはオススメです。
ただmysqlに限ってはJDBCのドライバの追加が必要です。
ダウンロードして自分で配置してもかまいませんし、ツールバー→ヘルプ→更新を行い、 選択してインストールしても構いません。
普通はこれで充分なのでしょうがpostgreSQL使いとしてはpgadminも必須です。
pgadminは常に最新場を使えばいいというわけではなく(基本的には問題ないんだけど)使用しているDBのバージョンに合わせてpgadminを使い分けるのが良いです。
理由はpostgresのバージョンアップの機能追加に合わせてpgadminも機能追加していたり、仕様変更されているため、細かい機能を利用しようとするとハマることがあります。
pgadminに関しては高津さんのこちらのブログがわかりやすいので参考にどうぞ。
と基本的にはこれで充分なのですがSQL好きとしてはSQLのコーディングはひとつのツールでまとめたいものです。
なのでSQLエディタとしてA5:SQL Mk-2を使ってます。
これもOracleとmysqlは直接接続出来るのにpostgresだけはODBCのドライバーが必要ですw
ついでに追加時の文字列情報は

Driver=PostgreSQL Unicode;Server=ホスト名orIPアドレス;Database=DB名;UID=ユーザ名;Port=5432;

となります。
A5はER図を作ったり、そこからDDLを生成したり出来るので便利なので是非。

8 ファイル転送ツール
ちょっとSQLエディタが好きな分野なだけに長くなってしまいましたが次はファイル転送。
Macだと元々SCPをFinderで扱えたりしますがWindowsには付いてません。
またFTPもコマンドで送れますが不便なのです。
メジャーなところではFFFTPかと思いますが本来の開発者が開発を停止しているのでWinSCPを使っています。
FFFTPもSFTPやFTPSに対応していくとのことですが既にWinSCPは対応しており、よりセキュアで汎用的なのでこちらを使っています。
あとはさり気なく便利な機能としては同期機能があり、バックアップやファイルの自動転送などが便利です。

9 バージョン管理ツール
バージョン管理ツールはgitをメインに使っています。
正確にはmsysgitTortoiseGitです。
msygitがgit本体となり、TortoiseGitがGUIの部分を補っています。
TortoiseGitは必須ではないのですが視覚的に操作しやすくなるためオススメです。
とは言っても、私はまだまだGitの勉強不足で運用が追いついていないため、コマンドで充分だったりするのですが…
TortoiseGitで差分を比べたりが容易になるのでGUIが必須な人にはオススメです。
また同様にSVNがバージョン管理の柱ですが次の職場がSVNらしいのでTortoiseSVNもインストールしました。
TortoiseSVNも同様に視覚的に操作しやすく便利です。
SVNの方が仕組みがシンプルなため、開発とは別のバージョン管理ならこれで充分かもしれません。
バージョン管理については本当にまだまだ勉強不足のため、今年は重点的に学んでいきたいと思います。

10 SSHクライアント
SSHクライアントが標準で付いてこないWindowsですがメジャーなところはPuTTYかと思います。
WinSCPで接続中にもPuTTYをキック出来るため、複数のサーバを管理する際は便利です。
またサーバの接続情報の一覧もWinSCPと似ている(WinSCPが合わせているのだと思いますが)のでわかりやすいです。
個人的には日本語化が最初からされているPuTTYごった煮版を使ってます。
ただPuTTYはちょっと気軽に繋げたい時などは手間に自分は感じます。
なのでそんなとき(検証系とかの日常の開発)はTeraTerm proを使ってます。
これはTeraTermの後継ですのでご注意ください。
TeraTerm proは使い方はシンプルで独自マクロを使うとかなり強力なことが出来たりします。
その反面サーバの接続情報の管理が面倒だったりします。
なので本番系で使う際はPuTTYの方が便利ですが、こちらはシンプルなので単独で使う際はとても使いやすいと思います。


と10項目並べてみました。
あと特筆すべき点は特にないと思いますが自分の環境構築のメモのためにもちょっと追加。

◯ VM
必須ではないと思いますがVM環境を作るためにOracle(元Sunですが)のVirtualBoxを使ってます。
無料で気軽に使えるのでローカルでちょっとしたLAPPやLAMPを立てたり、検証する際に重宝してます。
巷の噂ではMacOSやWindows8も動くらしいです。
あと補足ですが個人的に本番系でVMを使うときはKVMを使ってます。

◯ ユーティリティツール
自分は良くマインドマップを書くのでFreeMindを愛用してます。
FreeMindはマインドマップを書いた後にhtml(htmlだとノードの開閉が出来る)にしたりPDFとして出力出来るので共有するときも便利です。
あとはVisioを使ったりすると思いますが有料です。
そこでオススメがWEBアプリになりますがCacooです。
図形画像も抱負だったりWEBなのでインターネット越しにファイルを共有しながら作成できたりと便利です。
また同じようにWEBアプリで便利なのがチャットワークです。 
Skypeにタスク管理やファイル管理機能が付いた感じです。
無料枠でも充分使いやすく、個人的なタスク管理等で使っています。
またWEBアプリのメリットはインストールが必要なく、データ管理がクラウドなため容易に移行したり、別PCでも使えることです。
また周囲の人も導入しやすいので仕事じゃなくてもちょっと気の知れた仲間と何かする時に使うのも面白いです。
後は業務に関係なく便利なのがクラウドストレージ。
私はメインにDropboxを使っています。
アプリをインストールするとOS関係なくフォルダの用に中身を共有でき、WEB経由でもアクセスできます。
GitのリポジトリをDropboxの中に作ったり、html等をDropboxのpublicに置くとブラウザで表示出来たりします。
他にも便利なクラウドと言えばEvernoteですね。
メジャーですし説明は不要かもしれませんがテキスト、音声、動画などのメモを保存出来て便利です。

と言ったところでしょうか。
メジャーな物が大多数なので皆様の中で全部知っている方もいらっしゃると思います。
そんな中でもっと便利なモノ・使い方があるよ!ってツッコミは常時募集しておりますw


 というわけでかなり長文になりましたが自分の備忘録も含めてZENBOOKに作った開発環境なのでした。
次はアプリつくらなきゃ(´・ω・`)