Slackでカジュアルにスクリーンショットを投下する

みなさんSlackで日常的にスクリーンショットによる晒しageコミュニケーションを取ったりされているとおもうんですが、
これはそのたびにスクリーンショット.pngが増えていってつらいなーと思っている人向けのエントリです。

方法はかんたん、
⌘ + Shift + Ctrl + 4
で選択範囲を画像としてコピーできるので、Slack上で貼り付け(⌘ + v)するだけでアップロードできます。


こんなかんじ。
えんじょい!

(4/21 追記)
なおGitHubやQiitaもこの機能に対応しているとのこと。はかどりますね!

Webエンジニアの教科書をよみました

https://cdn.path.com/photos2/e299e0bb-86a5-42c6-84ec-84dfc24e37be/2x.jpg


id:sasata299さんよりWebエンジニアの教科書をご恵贈たまわりましたので簡単に感想をば!

ターゲット層

インフラエンジニアの教科書は入門+αといった印象でしたが、
こちらは「はじめに」でも触れられているように、

・2年目、3年目のエンジニア
・フロントエンドをやっているがサーバサイドにも興味があるエンジニア
・サーバサイドをやっているがフロントエンドにも興味があるエンジニア
フルスタックエンジニアになりたいエンジニア
・最近新しい技術を目にするけど試せていないエンジニア

な皆さんが対象とのことです。
個人的には「自分の明るくない分野に対してのとっかかりをつかむことができる本」だと感じました。
あるていど前提知識があるものとしてお話が進んでいくので、「Webエンジニアのはじめの一歩」としてこの本を手に取るとギャップに驚いてしまうかも。

内容

●CHAPTER-01 Webエンジニアについて
●CHAPTER-02 Ruby on Railsでの開発
●CHAPTER-03 PHPでの開発
●CHAPTER-04 NoSQLデータベース
●CHAPTER-05 フロントエンドの実装
●CHAPTER-06 ログについて
●CHAPTER-07 データの可視化について
●CHAPTER-08 環境構築の自動化
●CHAPTER-09 便利な外部サービス

http://www.c-r.com/book/detail/1006

と、webサービス開発・運用にまつわるさまざまな要素が取り上げられています。

話題のCHAPTER-04(NoSQLデータベース)について

見出しでいちばん食いつかれていた*1のはこの章ではないでしょうか。

ここではまずRDBの概要が説明されたうえで、RDBの不得意なことを補うための選択肢としてNoSQLを検討するべき、とはっきりと書かれていました。
中ではRedisとMongoDBが紹介されていましたが、それらが活きる具体的な例も示されています。
こちらもターゲット層からブレずに、NoSQLが気になっている人向けに踏み込んだ紹介がなされているという印象です*2


どの章も、いつどういうタイミングでなぜそれを選ぶのか、というところまで説明がなされているものが多く、目的意識を持って読み進めることができました。
新しく触れる技術をより効率的に、詳しく学んでいくためのとっかかりとなる、心強い本です!
ささたつさん、ありがとうございました!


Webエンジニアの教科書

Webエンジニアの教科書

インフラエンジニアの教科書

インフラエンジニアの教科書

*1:RDBすっとばしてNoSQLやるの?というような

*2:RDBの入門書なんてそれこそたくさんありますし

いまさらencode/decodeとflagged utf8の話

すでにさまざまな方が論じられておりますが、ちょいとややこしくて忘れられやすいのであらためて。

とりあえず至言をコピペ

入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基本方針をまもっていれば幸せになれます。

http://blog.64p.org/entry/20080408/1207619640
[request]
入力値はすぐdecode
…
なにかしらの処理
…
DBから引いたらすぐdecode
…
なにかしらの処理
…
出口付近でencode
[response]

in/outのdecode/encodeはWAFが肩代わりしてくれることが多いので、レスポンスを返すときにはちゃんとdecodeした文字列を返してやりましょう。

ref:
Perl: 文字コードとutf8フラグについて - @bayashi Wiki
Perl の文字列エンコーディングの話 | Hachioji.pm 日めくりテックトーク
Perl で utf8 化けしたときにどうしたらいいか - blog.64p.org

2014年ふりかえり(技術編)

ぽえむははてぶろのほうに書いたので、技術的な視点でざっくり振り返ってみる。

1-3月

お仕事ではずっとPM業と実装の二足のわらじでかけぬけていた、気がする。
2月あたりはミドルウェアまわりをおさらいしたい!とおもってVPSであそんでいたようす。
なにをしていたかあんまり覚えていないの、よくない!今年はもうすこしログを取る。

4-6月

YAPC::Asia 2014のトークの初期構想みたいなのをハマピーではなしたりした。
Chrome Extension(github issuesでつけたラベルを/pullsにも表示するextension。地味にべんり)をつくってあそんだりもしていた。

7-9月

YAPC::Asia 2014でトークした!初トーク。たくさんフィードバックもいただけて、嬉しいかぎり。
Perl的な話だと、デモに使いたくてこのあたりでまともにAEを勉強しはじめた*1
@ikeayとおしごとができたのもとっても楽しかった!来年もあんなようなことやりたいなー。

そしてはじめてISUCONに出場して、予選敗退した!くやしい!
やっぱりああいう場では普段できることしかできない、ので、趣味の範囲を拡大していくか、仕事の範囲を拡大していくか、どちらかだと思う。

10-12月

ハマピーとかゴタピーとかに参加した。
ゴタピーではAPIを作るときの話と、テストで気をつけていることの話をしていたのだけど、資料がふっとんだ*2。むねん。
Perlアドベントカレンダーではbitというコマンドを作った話を出して、Minillaではじめて(github.com上に)リリースしたりもした。

12月後半はgolangにも手を出し始めて、かんたんなwebアプリケーション+認証まわりをごりごり書いていた。
golangはまだ手になじんでいないので、もう少しお作法が身についたらいまお世話になっているライブラリにぷるりを投げつけたいなーと思っている。


web屋さんでPerlを書くようになって1年とちょっと、すこしずつエンジニアとしては足場ができてきたようにおもうけれど、今年はもっとエンジニアとしての体力をちゃんとつける1年にしたい。
ずっとAPIとか画面のないものをつくっているので、今年前半は「ふつうのwebアプリ」をひととおり組み立てられるよう*3になっておきたいなーとか、
iOSを1年くらいお休みしているのでそろそろリハビリしないといかんなーとか、
メディアアート方面にももう少しかじりついていたいなー*4とか、
そんなようなことを思いながら三が日が過ぎていったのでした。
ことしもかけぬけるぞー!

*1:そういえばブログにAEのこと書こうとおもってすっかり忘れてた…

*2:知見:http://d.hatena.ne.jp/ar_tama/20141224/1419386670

*3:たとえばセッションまわりとか認証とか、まだまだ弱いなーと感じている

*4:p5 / openFrameworks

minil releaseでChangesに追記するときは

{{$NEXT}}
<<このエリアにspace or tabを挟んで追記する>>

とのこと (https://github.com/tokuhirom/Minilla/blob/master/lib/Minilla/Release/CheckChanges.pm#L20)

なので、

0.01
    - Comments

という体裁にしたかったら、

{{$NEXT}}
    - Comments

と書くだけでよかった。

ref:
Not detecting version in Changes file · Issue #59 · tokuhirom/Minilla · GitHub
MinillaでNo mention of version '0.02' in changelog file 'Changes' - 鈍足ランナーのIT日記

cp, mv, rmには-iオプションをデフォルトでエイリアスするとはかどる

ということがあったという話をしていたら、という知見をいただいたという話。
さっそくエイリアス設定した。

man cp:

-i    Cause cp to write a prompt to the standard error output before copying a file that would overwrite an existing file.  If the response from the standard input begins with the character `y' or `Y', the file copy is attempted.  (The -i option overrides any previous -n option.)