読者です 読者をやめる 読者になる 読者になる

どっかのWebエンジニアの裏チラ。

Perlとかviとかcssとかjavascriptとか(rubyとか)git >> https://github.com/rozary hatenaIDがrozrayなのはtypo

shibuya.pm行ってまいりました。

勉強会

http://shibuya.pm.org/blosxom/techtalks/201506.html

※以下、talkとは別に項目が立っております。

■nginxの奥深さをいまさら感じた
トラフィック抑えて高速化
gzip_static gzipしたり展開してくれる

その他楽しいオプションいぱーい。
https://speakerdeck.com/cubicdaiya/nginxfalsepahuomansutiyuningu

■Perlingual がすごい
perl のソースを なでしこに!!(phpやjsにも置換できるよ。)
http://e8y.net/post/120535406440/shibuya-pm-17-acme-perlingual(勉強会のブログ)
http://perlingual.koneta.org/(デモページ)

デモおもしろいよ!

■GazelleはISUCON用
前回優勝のkazeburoさん作

2014優勝してきたよ
http://blog.nomadscafe.jp/2014/11/isucon4-isucon.html

ベンチとか紹介とかgitとか
http://blog.nomadscafe.jp/2014/11/gazelle-new-simple-and-fast-plack-handler-for-performance-freaks.html
https://github.com/kazeburo/Gazelle/wiki/Benchmark

■h2o @kazuho
ちょっぱやhttpサーバー
http://blog.kazuhooku.com/

■one source code で「複数のサービスに対応するが schema 構成は微妙にに違います」という要件に直面したら開発はどうすればいいのか、僕なりに何日か考えた上でのややベターな結論のようなもの - @Yappo

これ、資料ないんですけれど、自分にはとてもよいきっかけになるお話だった。

想像するに、スキン替え的なことが必要なときにどうするかとか、
自作のモジュールの仕様変更をどうしようかと考えているのでよかった。

環境変数とかグローバルで処理分岐させるのよくない。
メソッドもあまり。
・クラス、名前空間をわけて管理ぐらいがちょうど良い。
だそう。

その方のISUCON2014の体験談
http://blog.yappo.jp/yappo/archives/000846.html

■その他
技術スライド英語で書こうぜ。
http://tagomoris.hatenablog.com/entry/2015/06/01/210425

久しぶりにマークアップなんかしてみたりした1日。ハマった所をメモ。

css

丸々っと、やったのは実に5年ぶりくらいな気がする。
想定より2倍は時間が掛かりましたな。

ということでハマったところメモっておく。

「display:box;」したら子要素で「text-align」が効かない。

で、今回は右寄せがしたかったので、

width:1.3em;
margin-left: auto;

こんな感じにしておいた。

z-indexは、position指定しておかないと効かない。

z-index:1;
position:absolute;

とかね。
ついでに、absoluteするなら親要素で、

position:relative

してあげること。

子要素のみに反映させるには、">"を使う。

div > span {
  color:#ffffff
}

とか。

なんか、全然忘れていたよ…。
まぁ少しずつ触る機会が増えそうなので、リハビリしていこっと。

進め、現場のチーム開発 〜チーム開発実践入門〜 に行ってきた。

勉強会 DevLOVE

ちょー久しぶりにDevLOVEいってきました。
実に半年ぶり、仕事と学校課題をそっちのけで、無理矢理出席!!

語り手:『チーム開発実践入門』著書の一人、池田尚史氏

今回、自分で考えていた課題は「メンバー同士のプロジェクトの進め方」について考えていたのですが、ちょっとずれていた感じ。
けど、今回もいろいろと収穫がありました!!

流れとしては『チーム開発実践入門』をもとに、
ツールは成功に導く土台という前提として、ツールまわりについてのお話でした。
そして、その後は、前後+お隣さまとのディスカッションをおこないました。

では、気になったキーワードをつらつらと。

チームの課題 - 目標が不明

カイゼンカイゼン」と言うけれども、目標・目的を自分で作れるのであればよいが、
そうでなければ、何をどの方向にカイゼンしたらよいかわからない。

具体的にすると
・普段行っている機能開発を5日から3日へするためには。
・資料作成時間を3時間から1時間へするためには。
など、わかりやすく行うとよいだろうなと思った。

チームの課題 - 要件が不明

目標に対して、どのようにカイゼンしていくのか。
これまた、どの様にカイゼンしたらよいのかわからなければ大変。
なので、こちらも観点を明らかにするとよいだろう。

・汎用性

って…言葉にすると…ム…なんだろパッとでない…。

チームの課題 - 価値が提供できているのか不明

作った機能がどのような結果をもたらしているのか…。
良いも悪いも、明らかにして次への参考にする。

ちょっと具体的じゃないけれど、きっと必要なこと。
(言ってしまえば振り返りですけれど…。)

QAはプログラマーじゃない。

テストって、繰り返し繰り返し地道で大変なこと。
そこを自動化すれば、かなりの効率アップ。
しかし、QAの人たちはプログラマー的な人じゃない人が多い為なかなか自動化できない。

だので、そういう方たちとどうやって協力していくか。

ディスカッションにて

redmineを導入して、半年ほど。
導入にいたって、いろいろ課題がありましたかと伺ったけれども、
エクセル管理がうんざりしていたのでredmineへの移行はすんなりいった。」
「CIについて聞きに来た。
毎回、手動で時間をかけて行っている。
CIを導入できれば楽になる。」
と、いろいろな現場でカイゼンしようとしている話が聞けてエネルギーもらった!

ということで以上。

本末転倒なのか、それとも正しい理由なのか。

4月から経営の学校行きはじめた。
仕事をよりよくしようと企んでいるわけで。

しかし、その課題の為に午前休をとろうとしている自分は、やっぱり仕事の勉強をするべきだと思うんです。

なんかいろいろ自戒の念を込めて投下。

vimのウィンドウ操作コマンドをマップしていて<silent>で困った。

自分のvimrcの中から付きのmap行をコピペして

"ウィンドウ最大化
nnoremap <silent>wm :<C-w>_

みたいなのを作ったんですよ。
けど、期待通り動かなくて。
とかやってもだめだし。
そもそも"_"こいつが?
とか
いろいろと余計なことをしてたんだけれど。

ウインドウ操作のmapをしている人のvimを眺めてたら。
みんなsilentがないではないか!

ということで

"ウィンドウ最大化
nnoremap wm <C-w>_ 

ってやったら動いたよ、やったねタエちゃん!!

Test::mysqldをmacに入れてみた。

perl

結論

mac "ports"で入れたmysqlで、Test::mysqldは入れない方がよいかと思われます。
portsで入れていたとしても、以下より改めてmysqlを入れなおしたほうがよいと思われます。

MySQL :: Developer Zone

理由は、portsで入れた場合のmysqlのインストール先がTest::mysqldの具合のいい場所にないのです。
だので、パスの設定をしなければいけなくなってしまい面倒な為です。

パス通すからportsでいれたまんまのmysqlで行きたい!というのであればそれはそれで可能です。
ということで…。

以下やったこと。

パスを通す1(Test::mysqldとして)

  • mysql_install_db
  • mysqld

この2つがTest::mysqldで必要らしく内部で。

$ which mysql_install_db
$ which mysqld

をやってくれています。

しかし、パスが通ってないのでTest::mysqldはエラーを表示してとまります。
だので、なんとか見つけ出す!

portsで入れた場合は/opt/local/この配下辺りにあります。
/opt/local/lib/mysql5
というのがあったので、ここを見ていくと、
/opt/local/lib/mysql5/bin
の中に上記2つのファイルがあると思います。
ということで、bashrcに以下を記述。

export PATH=/opt/local/lib/mysql5/bin:$PATH

パスを通す2(mysqlとして)

mysql_install_dbが/opt/local/lib/mysql5/binにあることで、
--basedir='/opt/local/lib/mysql5として、mysqlを起動しようとします。

が、/opt/local/lib/mysql5/share/englishを探したけれどerrmsg.sysが見つかりませんというエラーをmysqlが表示してくれます。
そして、その他にも3つほどエラーが表示されて。
まとめると、以下の4つのファイルを求められます。

ということで以下4ファイルを探す。

  • errmsg.sys

/opt/local/share/mysql5/mysql/english/

  • fill_help_tables.sql

/opt/local/share/mysql5/mysql/fill_help_tables.sql

/opt/local/share/mysql5/mysql/mysql_system_tables.sql

/opt/local/share/mysql5/mysql/mysql_system_tables_data.sql

たぶん、それぞれこの辺りに在ります。

で、/opt/local/lib/mysql5/shareこの辺を探しましたっていうので、
そこからリンクを作っちゃう。

で、こんな感じにしました。

$ cd /opt/local/lib/mysql5/share/
$ ls -l
english -> /opt/local/share/mysql5/mysql/english/
fill_help_tables.sql -> /opt/local/share/mysql5/mysql/fill_help_tables.sql
mysql_system_tables.sql -> /opt/local/share/mysql5/mysql/mysql_system_tables.sql
mysql_system_tables_data.sql -> /opt/local/share/mysql5/mysql/mysql_system_tables_data.sql

あとはTest::mysqldを使いましょう。

パスを通すことしかしていないので、もっとスマートな方法があると思います!
ひとまず、適当にパスを通しました。

こんな話をしていたらmysql-buildこんなのが在るよ。
と教えてもらったので、今度試してみようと思いまっす。