タグ

ブックマーク / qiita.com/erukiti (4)

  • GolangとPEGで作る言語処理系 vol.1 - Qiita

    vol.1と言いつつvol.2を執筆しないと定評の高いerukitiです。こんにちは。(全文検索やrxjsの続き書こうと思いつつ…) 今日はGolangとPEGを使って、言語処理系を作る話の第一弾として、pointlander/peg の解説をします。 PEG? PEGでぐぐると、胃ろうとかいうのがヒットしますがそれじゃなくて、Parsing Expression Grammar です。簡単に言うとlexとyaccを足したみたいなジャンルの処理系で、字句解析付きのコンパイラコンパイラとか言えばピンと来るかもしれません。RFCを読んでる人ならBNFとか身近だと思うんですが、まぁその手の言語ルールを形式化したものの一種ですね。僕には学術的説明をするほどの知識はないので、厳密な話を知りたい人はいろいろぐぐってみてください。 expression <- additive additive <- m

    GolangとPEGで作る言語処理系 vol.1 - Qiita
  • USB-serial と Arduino Leonardo で作る簡易KVMコンソール (キーボード編) - Qiita

    ソース https://github.com/erukiti/tiny-kvm にソースを置きました。 app/ Electronアプリケーション。Nodejs 5系が必要です leonardo Arduinoスケッチ app の方は分量が多いので貼らないですが、Arduinoのスケッチだけ貼ってみます。 #include <keyboard.h> void setup(void) { Serial.begin(9600); Serial1.begin(9600); Keyboard.begin(); } void keyWait() { while (Serial1.available() <= 0) delay(1); } void loop(void) { char buf[1024]; byte ch; keyWait(); byte tp = Serial1.read(); sw

    USB-serial と Arduino Leonardo で作る簡易KVMコンソール (キーボード編) - Qiita
  • ステップアップ電子工作/レベル1前編 ブレッドボードで電子工作を始めよう (まずは準備編) - Qiita

    ごきげんよう皆様、電子工作ビギナーのerukitiです。今日は電子工作の導入記事を書きました。(注意: 2016/01/21 記事の大改訂を行いました) 関連記事: ステップアップ電子工作/レベル1後編 マイコン選び - Qiita 電子工作は難しくない 大昔、MSXを触っていた頃には、電子工作というのは僕に取ってはとても敷居の高いものでした。MSXは比較的電子工作が賑やかな世界だったにも関わらず、指をくわえて眺めていたものです。それから20年以上経った今、電子工作はどうやら当時感じていたよりは遙かに簡単なものになったようです。 ArduinoやRaspberryPiを使えば、簡単に電子パーツを接続する事ができます。5Vや3.3Vの供給、様々な種類のI/Oを持ち、性能自体も大昔の8bitパソコンなんかよりもよほどあります。これらの環境でのプログラミングもさほど難しいものではなくなりました。

    ステップアップ電子工作/レベル1前編 ブレッドボードで電子工作を始めよう (まずは準備編) - Qiita
  • ハクビシンにもわかる全文検索 - Qiita

    高速な全文検索アルゴリズムであるFM-indexについて解説する。理解しがたい点や間違っている点があれば是非コメントで指摘してほしい。 概要 FM-indexはリニアな文字列に対して検索をするアルゴリズムで、主に簡潔データ構造とBWT(およびLF mapping)という二つのアイデアから成り立っている。BWTはBurrows-Wheeler変換のことで、文字列を特殊な並び順に変換するという可逆関数である。BWTされた文字列を簡潔データ構造固有の操作をすることで、クエリ文字列の長さに比例した短い時間で文字列を探し出すのがFM-indexだ。 簡潔データ構造 簡潔データ構造に関してはFM-indexで必要となる二つの関数だけ説明して、詳細は次の機会に譲るとする。さて、二つの関数はともに文字列のある位置より前の部分に含まれている文字の数を数え上げるというものでrank()とrankLessTha

    ハクビシンにもわかる全文検索 - Qiita
  • 1