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

メヘンニミン

たくさんの言語に触れたい.走り書きで見る整理ブログです.

豆になるJS: イベントリスナーとthisと引数と

JavaScript

JavaScriptに関する初級~中級Tipsをいくつか書いていたのですが, 話題が膨らんじゃったので分離しました.

  • はじめに
  • thisを理解する
  • 本題
    • thisを退避させる
    • 無名関数を用いる
    • call, apply, bindメソッドを用いる
  • removeEventListenerを使用する場合
  • おわりに

はじめに

ブラウザで動作するJavaScriptthisを用いた場合, 基本的にはグローバルオブジェクトであるwindowオブジェクトを指します. しかし,たま~~にthisの中身が異なる場合があります.

例えば,Web制作に扱われやすいマウスのイベントリスナー内のお話. イベントリスナーといえば,引数もどう設定するんだ!という疑問も出てくるんじゃないかと思います.

今回の議題を整理しましょう.

  • イベントリスナー内のthisを制御するには?
  • イベントリスナーに引数を与えるには?
続きを読む

ラボ後輩に伝えたい開発の基礎ネタ集

はじめに

フロント系開発の話が中心になりますが, 研究の中でとくに開発ネタに限定し,ざっとまとめてみました. 考え方やサービスもいくつか示します. 自分のとこの研究室向けなので,ちょっと偏りがあるかも?

続きを読む

今年お世話になりました&来年これだけは!(2015年版)

らゆい話

今年は転調の年.なんだか視野が広がったかも?そうでもない?
皆様方に大変お世話になったことを,心より感謝しております.

2015年雑多にお世話になりました13選!

1. Node.js (Keyword: Express, Socket.io, Jade ほか)

Webアプリのパフォーマンスに限度を感じてから乗り換え.少しずつ理解を進めています.複雑しかし,書いてて楽しい.もっと動かしたい!
はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-
はじめてのNode.js(上図)で勉強しましたが,更新スピードの速さからWebで色々と巡ることが最良です.

2. AngularJS

Reactのほうが評判いいらしいですが,Node.jsとの兼ね合いで.1画面アプリの制作が多いことも選択理由です.JQueryからは未だ卒業できず.

3. OpenLayers

地図描画用のJSライブラリ.Google MapやOSMなど複数の地図に対応し,地図上に図形や線などを描画できます.Documentationを見ながらチクチク頑張ってた感.知見は残したい

Sampleは公式ほか,こちらも参考になります.

The Book of OpenLayers3 - Code samples

続きを読む

急角度・急斜面に対応するQRデコーダ(ZXing編)

http://33.media.tumblr.com/2f4ef1ea5bf82d48f978e86b6d24582d/tumblr_nmqa3eOq9j1ush50oo1_400.gif
黄色が従来の判定.水色が拡張された判定.斜めからもばっちり!

前回: 画像からQRコードを読み取る(OpenCV + libencodeqr編) - メヘンニミン

さて今回は,ZXing(ゼブラクロッシング)というGoogleさんのオープンソースライブラリを使用します.現代のQRデコーダといえばスマホですよね!認識精度は高めで,以下はAndroidアプリに適用できるライブラリです.

zxing/zxing · GitHub

上記のページを見ると,ZXingは様々な言語で利用できることがわかりますね.

本記事では,Android版とC#版(ZXing .NET)の導入を説明します.(C++は面倒でやめました)

さらに,ZXing .NETOpenCVを織り交ぜて,急射角に対応する拡張QRデコーダの作り方を示します.ARでもあるまいし,QRに急射角の需要あんの?と聞かれそうですが,これは以前の研究で実装したものです.せっかくなので放出します…

続きを読む

Streaming APIで日本全国のツイートを収集する

PHP API

久々にまとまったネタです.

やりたいこと

日本全国のツイートを収集して分析して論文を書きたい(はやく).ツイートの再配布は利用規約で禁止されていますので,個人かつ無料でコーパスを構築する場合,自分で収集するしかありません.

例外の配布例.

Twitter Japan 株式会社 - 東日本大震災ビッグデータワークショップ - Project 311 -

ツイート本文を含まない配布コーパスの一例.

場所参照表現タグ付きコーパス Ver 0.1 (2015/05/25)

方法

Twitter Streaming APIPublic streams)を使います.今回は,PHPライブラリを使ってツイートデータを収集し,mongoDBやtxtファイルに書き出します.

Streaming APIは,ユーザにログインさせてアレコレするREST APIと比較して,API制限はありません(接続エラーは出ます).ポーリングの間,リアルタイムに発言された大量のツイートをざっと取ってきます.

Public streamsのページを見てみると,3種類のAPIがあることがわかります.

GET statuses / firehose

全タイムラインを取得する.ただこれ,申請が必要です.企業さん向けですね.GoogleNTTデータなどが使用しています.

Twitter、「NTTデータは今後もFirehoseを利用する」とGnipの発表に補足説明 - ITmedia ニュース

GET statuses / sample

全タイムラインから無作為に選ばれた1%を取得する.個人ではこちらになります.1%でも十分量なので…

POST statuses / filter

条件を指定して取得する.上記sample APIでも言語の指定ぐらいはできますが,こちらは検索キーワードや場所(区域),対象ユーザなども指定できます.

ということで,この記事ではsampleまたはfilterを用いたツイートの収集方法をまとめます.

続きを読む