Pastalablog in はてな

時代はブログ! 日記もあるよ→http://pastak-diary.hatenadiary.com

Go言語でWebアプリケーションを書くために見たものメモ

今週末のGDGの勉強会で話すのでそれように資料を作らないといけないからそれように見たりしたやつをまとめてメモ。

あと、もし見とくと良さそうなものとかあれば教えて下さい

ブラウザからGyazoにアップロード出来るGyazo 3DSを作った

Gyazoに色々アップデートがあった今日このごろですが、皆さんいかがお過ごしでしょうか。

ところで僕は最近3DSスマブラをよく遊んでいます。たまに良いプレイとかシーンがあったら撮影してその画像を共有したいと思うことがあります。

任天堂の公式ツール紹介ページ)があるんだけど、TwitterFacebookTumblr*1にしか投稿できなくて例えば今すぐじゃなくていつでも取り出せるようにしたいみたいな感じのことがしたかったので、ブラウザからGyazoにアップロード出来るツールを作りました。

ページタイトルは「Gyazo 3DS」ですが、<input type='file'>で画像を扱うことが出来る全てのブラウザからアップロード出来るので、3DSの他Wii UやPS4、AndroidiOSWindowsMacLinuxなどなどから利用できます。heroku上で動いてます。

URLは http://gyazo3ds.herokuapp.com/ です。

3DSなどからアクセスしやすいようにQRコードも貼っておきますね。

内部ではGyazo APIを利用しています。

先日のプログラマーズナイトで紹介した資料もあるので貼っておきます。

3DSとかからもGyazoにアップロードしてTab機能でまとめておくと便利で良いと思います!!!

一応アップロード後の画面からTwitterに貼るリンクもあります。

よろしくお願いします!!!!!!!!

*1:この前確認したらTumblrが消えてた!!!!!!!!!!

学生無料チケットをうっかり確保できたので #yapcasia に初参加してきた話

ずっと、はてブとかTwitterとかで面白そうだけどPerlわからないしなぁと思って敬遠してた YAPC::Asia だったけど、 @941 さんの以下のpostを見て安心したのと、学生無料チケットを申し込むのに成功したので夜行バスで参加してきた。

1日目

入場したらいきなり京都の人たちに遭遇して一気に安心感出てきてた。

雑誌でしか見たことないdankogaiの本物を見た。 YAPCdankogai、ずっとiPadを腹に入れてて異常な感じだった。

yanbeさん見て、ランチセッション行こうとしたらミスったから、いとおちゃんとかと寿司を食べに行った。

そのあとはmoznionさんの漫談を聞いた。Perl分からないけどmoznionさんがめちゃくちゃ頑張ってるってことは分かった気がする。良い漫談だった。漫談って言いまくるのよくなさそうだからリンク貼っておきます。

そのあとmotemenさんを見た。ここくらいから人の話を座って聞くことに疲れてきてた。

コマンドラインツールの話、『UNIXという考え方』が参考になるという感じだったけど、それを例も交えて話されていて参考になった。

休憩を挟んで、データベースに関する話を聞いた。

SQLの話なんだけど、MySQLの挙動をPerlのコードで説明していてなるほど〜って感じだった。こういう説明の仕方、Perlの祭典って感じだった。

そのあとはcho45さんの低レイヤーの話を聞いた。低レイヤー、避けがちなんだけど物理フィードバックがあったりするのも面白そうだと思った。親しみとワクワク体験したい。

OSC京都のローカルスタッフで割とその辺りの話が盛り上がってるっぽいので今度タイミングあったら混ざりに行きたい気分になった。

LT、papixさんの写真と本物を見た。あと、台湾のg0v.twっていうのが凄そうだった。

LT終わりから懇親会まで時間があったから懇親会の前で寝てた。誰にも多分気付かれてなかったと思う。

懇親会、人が多くて困ってたから乾杯後すぐくらいには既にビールが3杯目に突入したりしてた。

いとおちゃんに京都Tシャツあげたら懇親会で着てくれてた。

懇親会最初はビールを飲んだり、ご飯を黙々と食べたりしてたけど徐々に勢い出てきて、r7kamuraさんを見たり、nobuokaさんと話したり、fubaさん見たり、小池陸に絡んだりした。

懇親会の最後の方で、nagayamaさんに後ろから目隠しされたのがYAPCで1番ビックリしたことだった。

懇親会のあとHUBに行った記憶がある。なんかteensさんとかuiureoとかと進路の話をしたりした気がする。あと、なんかこういう写真があったからなんかあったっぽい。

2日目

ミスってPHPの話聞きそこねた。 php -S localhost:4000とかの話をしていたっぽいとTwitter見て思った。

会場ついたら、レッドブルが配布されてたからレッドブル飲んで、DMMかき氷を食べた。スポンサー凄い。

そのままイベント会場でPerlあるあるを聞いた。miyagawaさんの動く本物を初めて見た。会場の端でnaoyaさんがコーヒーこぼしてたのが途中気になった。あと、dankogaiが腹からiPadを出し入れするの見れたのも良かった。

そのあとはボーっとして、ninjinkunさんとgfxさんのトーク聞いて、hitode909さん見に行った。

この日のLT、ネタとして厳しいのもあったけど、Dance2とかのLTは英語だけど聞きやすくて勢いもあって良いLTって感じだった。

そのあと、キーノート聞いた。クロージングではベストトーク賞をPHPの話が取ってて、PHPコールが巻き起こってて凄かった。

そのあとはHUBに転がり込んだ。

HUB人で溢れてて、店員が列形成の相談してたり、もうビールが切れかけててぬるいのしかなくて泡しか出てこないから一生懸命泡を掻きだしては注ぐみたいなのを繰り返していて大変そうだった。

ちなみに2日とも1000杯超えていたらしい。

この日はHUBでボーっと座ってたら隣にDBIxにPeter Rabbitsonが来て握手した。「Did you come my talk?」って聞かれたけど、「Sorry」としか言えなくて、連呼してたから英語が分からなくて謝ってたと思われてたかもしれないけど、「You didn't come my talk?」って聞かれてそれをオウム返しして申し訳ないって感じだった。チャンス逃した感じだった。

そのあとは顔見知りと話したり色々したり、突発でいとおちゃんのLTを聞いたりした。

小池陸とかがいとおちゃんをbooking.comに送り込もうとしてて良かった。

全体の感想

Perl、去年のはてなインターンで書いただけでそれまでもそれからもほぼ書いてないんだけど、Perl以外の色んな話があって良かった。良かった点といえば、コミュニティ色が強めに見えるイベントなのに僕含め初参加者が半分くらい居たけど、身内感が強くて入りづらいと感じることがほとんどなかったように思った。

東京にいる人とか京都の久しぶりな人と話せる機会にもなったし行けてよかったという感じ。

何度か出てたけど、yusukebeさんはじめスタッフの皆さんの頑張りやこれまでのYAPC関係者の皆さんの蓄積の上で成り立っているというのもスゴく感じたし、本当に良いイベントを見れたなぁと思った。

来年もあるならまた夜行バスに乗ってでも行きます。

追伸

YAPCの翌日、夜に酔っ払った勢いでpostしたやつを貼っておきます。

個人の見解であり、所属団体などの見解ではありません

画像のURLを保存してMarkdownとかHTMLとかにしてクリップボードに投げてくれるChrome拡張を書いた

タイトル通りのことが出来るChrome拡張を書いた。

この前、私立プログラミングキャンプっていうハッカソンがあって、その場で書き始めたやつがそれなりに動くようになったので公開することにしました。

オープンソースです。

Chrome Web Storeにも載せた

zoiとかLGTMとかいちいちサイトに行ったりしてコピペしてくるの面倒だったから、画像のURLを覚えててくれるやつを作ったという感じ。

使い方

URLを保存しておきたい画像の上でコンテキストメニューを開くと「Save To Basket」というメニューがあるのでそれをクリックすると、タイトル入力用のpromptが開くので適当に入力すると保存されるという仕組みです。

chrome.storage.syncというAPIを使ってるので、Googleアカウントで紐付いてるChromeで画像の情報が共有できるっぽいです。

f:id:Pasta-K:20140826013114p:plain

で、画像を利用したい時は右上のpopupアイコンをクリックすると画像の一覧が出てくるので、それを2回クリックするとクリップボードに保存されます。

f:id:Pasta-K:20140826013121p:plain

f:id:Pasta-K:20140826013124p:plain

保存形式は以下の3つから選べます

  • Markdown
  • HTML
  • URLのみ

良かったら使ってください。

Image Basket - Chrome Web Store

今後のTODO

  • 画像の削除
  • optionページでカスタム形式を選べるようにする
  • github.comとかidobata.ioとかhipchat.comとかはデフォルトでURLなりMarkdownでコピーされるようにする
  • 画像選択のUIをなんとかしたい
  • アイコンがダサい

よろしくお願いします

Chrome Extensionでcontent scriptとメッセージパッシングを実装するときの覚書

というわけで覚えてるうちにメモ書き。

メモ書きと言っても大したことではなくて、 Message Passing - Google Chrome をちゃんと読めば書いてあるので、こっちをちゃんと読むべきって感じがする。

background (event page) -> popup

background (event page) -> popup

content script -> background, popup

sender.js

chrome.runtime.sendMessage(extensionId,messageObj,responseCallback)

receiver.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
  // write some code
  sendResponse(responseObj);
})

background (event page) -> content script

background.js

chrome.tabs.sendMessage(tabId, messageObj, responseCallback)

content.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
  // write some code
  sendResponse(responseObj);
})

要するに基本はメッセージを受ける側は常にchrome.runtime.onMessage.addListenerでcallbackを設定しておけば良い。

送る側はchrome.runtime.sendMessageを使えば良いけど、content scriptにメッセージを送りたい時はchrome.tabs.sendMessageを使うということ。

Gyazoを作ってる会社のアルバイトになった

今日から先輩の紹介で Nota Inc. という Gyazo を作ってる会社のアルバイトになりました。

Gyazo自体は長年ずっと使ってきていたサービスなので、携われるのは純粋にワクワクしています。

このサービスを通してユーザーさんにこれまで以上の価値を届ける手伝いができればと思っています。

あと、Notaの入っている町家スタジオは高校生の頃に色んな人と知り合った場所なので、そこにまた出入りすることになるとはという気分でもあります。(色々様変わりはしていますが)

というわけで、Gyazoもろともよろしくお願いします。