k2wankoの技術的なanything

プログラミングとか技術系の情報とか書いてます。

Qiita API v2 Hackathonに参加してきました。

できるなら週1でブログを書きたいと思いつつも 何ヶ月ぶりになる僕です。

最近は「書くからめんどくさいんだ!」という結論に至り 自動投稿に憧れて自然言語処理とか機械学習とかのアルゴリズムを真面目にやりたいと思ってます。

後は技術よりのノウハウはもっぱらQiitaに投稿してるから ブログに書くネタなかったりしてるってのもブログ書かない理由だったりしてます。

そんな、ふと書いてしまうQiitaのイベントということでwkwkしながら行ってまいりました、が

f:id:k2wanko:20141213235116j:plain

って、わけでもないんですが まぁ自分の開発力のなさを痛感できました。

作ったもの(作ろうしたもの)

QiitaSummaryというQiita記事をまとめるツールを作ろうとしました。

テーマがQiitaAPI v2を使った「毎日が楽しくなるもの」だったので

そもそも書くってめんどくさい、自動で記事を生成できればいいんじゃない?

という適当な発想で記事を自動生成する物を作ってたんですが さすがに0から生み出すのは厳しいので

Qiitaの投稿を色んなパターンでまとめられて 要約機能がつけて 記事を生成すればいいんじゃない?

それをチーム内で公開してそこの記事から

気になったのに触発されて記事が書ければIN/OUTのいいスパイラルになるんじゃないかなと思ったんですが

流石にやっつけ仕事ではほとんど実装できませんでした。

自然言語処理は流行りだし楽勝なライブラリもあるだろーと楽観視してたら かなり自分で実装するはめに...

まぁおかげで 要約機能の作り方をなんとなくわかったので

今度、npmにした後 まとめてQiitaに投稿しようと思います。

ちなみにこんな感じのを出力できたりします。

(自分のストックをまとめたやつ)

user title tags
@dtan4 nginx.conf で環境変数を読み込む #nginx
@kinu Chrome 40 で今すぐ ServiceWorker を試す #JavaScript #Chrome #HTML5
@mizchi 俺のJSライブラリの世界観(2014末版) #JavaScript #AdventCalendar
@kgmyshin [翻訳] android best practice #翻訳 #Android
@chocopie116 Loopbackでコード1行も書かないでAPIができた #loopback #exercise #Node.js
@h_demon 俺のaltjsがこんなに簡単にpegjsで作れるわけがない #pegjs #altjs #JavaScript
@watilde Direct Proxiesを使ってaltCSSを作ってみた #JavaScript #Node.js
@watilde cliでQRコードを生成、ときどきお寿司 #Node.js
@mizchi atom-shellを雑に使って任意のnodeスクリプトが実行可能なアプリケーションとして配布する #nodejs #atom-shell #JavaScript
@cubicdaiya Goサーバのモニタリング #Go
@stwhabout 歴史で振り返るWebRTC #WebRTC #AdventCalendar
@Kokudori 例外大統一理論 #例外
@pocotan001 Gitのコミットメッセージを絵文字から始める #Git #GitHub
@nezuq Webスクレイピングの法律周りの話をしよう! #Webスクレイピング #著作権
@hokaccha Direct Proxiesでmethod missing的なことをやる #JavaScript
@soundTricker HTTP Load Balancerを使って、Host名やURIによって接続するインスタンス(群)を切り替える #googlecomputeengine #GoogleCloudPlatform #gcpja
@laco0416 Dartをはじめよう #Dart
@nowri 0行から始めるクライアントサイドJavaScript入門 #JavaScript
@sudix (翻訳)Goでのパイプラインとキャンセル #Go

このテーブルにさらにdigestができる予定だったんですが 組み込むところには間に合いませんでした。 でも適当な要約機能はできてるので上から3つ分くらい貼っておきます。

nginx.conf で環境変数を読み込む

すでにlua_nginx_module.html#env-`env`ディレクティブ__と     __ngx_http_perl_set$server_name_from_env```##環境変数名と環境変数をnginx変数に設定したい場合は、sedとかERBを使ってnginx.org/en/docs/ngx_core_moduleに含まれていません。 ```nginxenvENV_NAME=hoge.example.comhoge/nginx`みたいに参照できたら良いのですが、nginxは起動時に入れてやる必要があると思います。今回は環境変数を引き継ぎません。

Chrome 40 で今すぐ ServiceWorker を試す

例えばGithubPagesはHTTPSのセットアップをする必要があります。 </p><pid="log"></p>ServiceWorkerをサポートして動作するWebサイトを作ってみてください。一方、ServiceWorkerからページのデータはWebフォントを使ってページをキャッシュする。

俺のJSライブラリの世界観(2014末版)

ただしtypescriptはHEAD使ってることが一度もないのでmocha-phantomjs:ブラウザテスト-sinon可能な限りヘッドレス(node)でテストする派。 gulp-concatなんだかんだでコマンド実行するのとconcat必要になるケースが多いので、プラグイン=低品質とほぼ同義であると言っても良い。UI層の開発イテレーションはトライアンドエラーを繰り返したい。

...まぁ ランダムにやってるし コードとか記号とか文章に関係ないのも合わさってるのでカオスです。(わけわからない要約が なんか楽しくなるんじゃないかなとも思ってたりしましたが...あんまりおもしろくなかった)

まとめ

  • 限られた時間で実現可能なアイデア出しがどのチームもよかったなと思えるハッカソンでした。
  • (自分のは実現が難しいアイデアでアホだったと反省)
  • 懇親会のお寿司美味しかったです。

次回も楽しみです。