Makefileでifする時のささいな話
こんな感じでMakefileを書くと、any_fileが無い時にmakeがエラーになる。
$ cat Makefile all: [ -e any_file ] && echo "file exists" $ make [ -e any_file ] && echo "file exists" make: *** [all] Error 1
[]が何返してるのか見るとこんな感じ。
$ touch any_file $ [ -e any_file ] $ echo $? $ 0 $ rm any_file $ [ -e any_file ] $ echo $? $ 1
なので&&じゃなくて条件反転して||で書いたらOKでしたっていうお話。
Hokkaido.pm#8でLTしてきました
[Hokkaido.pm.org]
http://hokkaido.pm.org/hokkaidopm8_1.html
[ATND]
http://atnd.org/events/33523
少し前になってしまいますが、12/23に行われたHokkaido.pm#8に
参加してきました。
今回はゲストとしてtypesterさんとzigorouさんが参加してくださっていました。
typesterさんは自分がperlと関りはじめた頃から名前を知っているmongerの一人で、
今回は技術系と心系の2本のTalkをされていました。
技術系はXSを実装してみる話で、XS入門者向けな内容でした。
自分も例にもれず、XSは食わず嫌いで手が伸びていなかったのですが、
XSの敷居が大分下がったように思えました。
何かCライブラリのバインディングを書いてみたくなる、そんなTalkでした。
zigorouさんはOAuth2.0のまとめ的な話でした。
スライドが間に合わず、途中からメモ書きを使いながらTalkされていました。
(…それでもTalkがしっかり出来るって、凄いなあ…)
OAuth1.0はソシャゲのAPIを使ったこともあり、2.0も資料は読み流した事があったので
内容は聞けば分かる感じでした。
ただ、手続きの複雑さと手続きのパターンが多い事もあって、
実際に実装をどうするか考えると、ちょっと難しい所もありました。
Talkで使った資料は、そこら辺を上手く理解してもらう狙いがあるようでしたが
上手い具合にキーワードや特徴ごとにまとめて
OAuth2.0の要点が整理がされていたように感じました。
他の長いTalk枠としては、
jamadamさんのmojo-legacyで何かする枠がありました。
ざっくりとmojo-legacyの説明がされたかと思いきや
おもむろにmojo-legacyのライブメンテナンスが始まるという
チャレンジャーな展開に。
実際にperlの古いバージョンに合わせてごにょごにょする作業を見ていると
とても泥臭い感じに頑張ってるなあ…と改めて苦労が忍ばれました。
最後にLTについてざっくりと。
今回のLTは自分もネタをひねり出して参加してきました。
相変わらず技術を無駄なことに使うネタだったのですが
他のLTが結構、真面目な感じだったので良いバランスになったのかな?
などと思ったりしました。
とても軽量なスライドですが、以下が発表で使ったスライドです。
直前に体調を崩したり予定が色々詰まったりして、
なかなかハードな年末進行でしたが、なんとか乗り切れて良かったです。
今年も面白いものを追いかけつつ、色々な物にモチベーションを貰いながら
楽しんで行こうと思います。
Sapporo.js-2012.12.16に行ってきました
http://connpass.com/event/1368/?disp_content=feed#tabs
というわけで、sapporo.jsに参加してきました。
javascript力はあまり高く無いので少し不安でしたが、
内容はほぼ理解できたので、参加して良かったです。
和室での勉強会は初めてでしたが、何となく落ち着いた雰囲気で
勉強会には合ってるのかな、などと思いつつTalkを聞いていました。
内容としてはGoodPartsの読み合わせ、ハンズオンが1本、Talkが1本といった感じでした。
JavaScript: The Good Partsの読み合わせは、8章のメソッドの途中(96ページ)、
Function.applyの項目から始まりました。
本自体は社内勉強会で読んでいたので、ほぼ見た覚えのある話なのですが
改めて見直す良い機会になりました。
tricknotesさんがjavascriptの実行環境をnodeで用意してコマンドラインから実行していたのが印象的でした。
あと、自分はFireFoxやらChromeのコンソールで実行して確認していたのですが
参加者の方がIEの挙動も確認していたのは、流石だなーと思いました。
ハンズオンはBackbone.jsがお題でした。
onjiro_mohyahyaさんが課題を用意してくださって、
Backbone.jsを使ってToDo管理アプリを実装しました。
時間が短めで3割ほどしか消化できなかったのですが、
それでもModel-View的な設計でDOM操作やイベント周りを作り込んでいく作業は
まさにアプリの背骨を作り込むような印象を受けました。
Step10で課題は一通り終了なのですが、最後のlocalstrageに保存する所だけ
まだ理解しきれなくて終わってないので
もう少し時間をかけてやってみようと思います。
最後のTalkはtricknotesさん、nodeのevent.jsの実装をみながら、
どんな高速化がされているのか紹介する、といった内容でした。
こまごまと変数の遅延生成をしていたり、
関数呼び出しのコストを嫌って自前で処理していたり、
実際に多く使われるパターンだけcaseで切り出して高速化していたりと
なかなか泥臭い話でした。
今回の勉強会は、少し予習の時間が少なめだったこともあり
ついていけるか不安でしたが、
自分にはちょうど良いレベルだったように思います。
FuelPHPを触ろうとしたらエラーが出て少しはまった
ちょっとFuelPHP触ってみたくなったので、さくらのVPS(CentOS6.2)で試してみました。
$ curl get.fuelphp.com/oil | sh
$ cd YourSites/
$ oil create blog
上記のような感じにひな形を作った後、
ブラウザから確認したら「Exception thrown without a stack frame in Unknown on line 0」
とか言われてしまいました。
色々と調べた結果、以下をfuel/app/config/config.phpに追加したら動きました。
'default_timezone' => 'Asia/Tokyo'
第17回Android勉強会in札幌にいってきました。
先週末のお話ですが、参加させていただきました。
今回はゲームをネタにしたお話がメインとのことでした。
Talkが2本にパネルディスカッションという少し風変わりな試みをされていました。
一つ目のTalkはmizumon21さん。
ゲームプログラミングの初学者向けで、まずは一本作ってみる、的な内容でした。
Talkの中身としては、スレッドを使ったAndroidゲーム制作のベーシックなやり方について
ご自身のサイトで公開しているサンプルソースを追いながら解説されていました。
実際にサンプルを落としてEclipseで眺めつつ聞いていましたが、
シンプルな感じのActivity構成という印象でした。
Androidの学習としても、ゲーム作りの入門としても
なかなかいい感じに思えました。
二つ目のTalkはinfosiaさん。
Titanium向けゲームプラットフォームのQuickTiGame2dの開発をされていた方で
今回はそのエンジンを元に制作しているLanica社のPlatinoというエンジンのお話でした。
元々のベースになっているエンジンもかなり使えそうな印象だったのですが
ParticleDesignerやTiledMapEditorといったサードパーティのツール類が
使えるという話は、今回初めて聞きました。
ベースとなったエンジンはすでに公開されていないのですが
Lanica社がTitaniumの開発もとであるAppcelerator社が出資する会社とのことで
今後どうなっていくのか、とても楽しみです。
最後のパネルディスカッションは、主にスマートフォン界隈で開発をされている方が集まって
スマートフォン向けアプリ開発での様々な問いに答えてみる、といった色合いのものでした。
Androidのマネタイズモデルの話など、個人のアプリ開発から企業でのソーシャルゲーム開発まで
違った観点の方々で見解を出していたのが、面白かったです。
個人的には、infosiaさんが話されていた「日本と海外のスマートフォンの使い方の違い」みたいな話が
非常に興味深かったです。
以上、ざっくりとですが感想でした。
nagios-pluginのcheck_dell_sensorsとcheck_dell_omreportでちょっとはまった
サーバ移行で表題のpluginを移し替えたら、中で使ってるomreportコマンドのインストール先が変わっていたという話。
$ which omreport
でどこにあるか調べてスクリプト内のPATH設定に追加してやればOK
muninのpluginで少しはまった
gearmanのjobsをmuninに出力するpluginを作ったら、valueがいつまでもnonのままだった。
色々試した結果、pluginのファイル名とグラフの項目名に使われていた-(ハイフン)を_(アンダースコア)に変えたら動いた。
ちなみにpluginは以下を参考に作成。