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をもっとわきまえて、公開された場所に対する意識をしっかり持たないといけないなと感じました。
特に僕の名前はググラビリティが高いわけですからもっと先を見据えるなきゃいかんです。

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

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