今年趣味で書いたソフトウエア、作ったハードウエアなどの主な物まとめ。

ソフトウエア

書き出してみたが、JavaScriptに偏ってる。

タグベースファイルシステム

ファイルにタグなどのメタデータをつけて、それを元に検索できるようにしたい。

fuseを使う方法を模索したが、 ファイル操作のハンドリング(コピーをタグを付ける操作に変換)がうまいことできないので、 ファイラーのような画面で、ファイルパスとタグの組をSQLiteに保持するという方針に縮小。

とりあえず、Scalaとswingで実装して使っているが、細かい所に問題がある。 一人で使うには十分になったので、改良するモチベーションもなくなり終了。

NodeWebkitあたりで書き直すべく調べはじめたが、ファイルのドラッグアンドドロップの扱いがよくわからず、 こちらも放置中。

TinyCLOS for JavaScript

TinyCLOSを理解するべく書いたライブラリ。

既にある同じコンセプトのライブラリに比べ、newがmake関数へのシンタックスシュガーになっているなど、 JavaScriptユーザーに優しい。

クラスシステムだけ作っても、別段ライブラリが存在している訳ではないので、そのままお蔵入りに。

自作S式系AltJS言語

JavaScriptにマクロがあったらどうだろうか?という事を考えて作ったプログラミング言語。

処理系としては、マクロ定義とマクロ適用しかなく、JavaScriptコードを出力する。

  • ブートストラップ用処理系をJavaScriptで書く(250行)。
  • 良く使うマクロを定義する(600行)
  • マクロを使って本番処理系を書く(200行)
  • 本番処理系をブートストラップ処理系でJavaScriptにコンパイル
  • 本番処理系を本番処理系でJavaScriptにコンパイル

という流れで開発した。

nodejs用の他の処理系についていろいろ調べたり、バグを報告したりしたため、 最終的には、requireでシームレスにこの処理系のコードを実行でき、 gulpの定義をこの言語で書いたり、 expressjsでWebサーバーを作ったり、 ReactJSを使って、この言語でクライアントJSを書いたりできる所までいった。

良く考えないで作ったので、矛盾があったり、コーディング規約が統一されていないとか、使いにくいので、お蔵いり。

ガラポン用UI

普段、ガラポンTVを使ってテレビを視聴しているが、 リビングで使うにはいささか使いにくいUIをしている。

ガラポンTVはAPIを公開しているため、これを使い、10フィートUIで使えるようにしようと考えた。

ReactJSと、上記の自作処理系で開発した。 とりあえずビデオが再生でき、 むだにでかい字と、でかいボタンでリビングでも使えるようにした。

しかし、ガラポンのもう1つの重要な特徴であるソーシャル機能はAPIとしては使えない事、 Chromeの機能でズームすれば字がでかくなる事に気がついたため、 使わずにお蔵入りに。

ハードウエア

今年後半はハードウエアをいじっていた。

Aliexpressでの買い物

作った物ではないが、ブレークスルーなのであげておく。

まず、シリコンバレーには秋葉原のようなパーツ街はない。 電子工作用のパーツを扱う店はいくつかあるが、 地理的に離れた場所にあるため、 重複していて必要な物が何でも揃うとは言い難い。

必然的に通販になるが、 今度はリーズナブルな価格ではない。

周りの人に相談した所、Aliexpressで部品を購入すると安くすむと教わった。 AliexpressはAlibabaがやっているオンラインマーケットで、 どうやったら可能なのかよくわからない価格で売っている。

例えば、電解コンデンサ10個を買うと、49セントだった。 秋葉原でも1つ10円はしたと記憶しているし、 この49セントというのは送料込みの値段である。 ここから日本に手紙を送るのでも、もっとかかる。 なぜ、こんな事が可能か謎である。

7月末からAliexpressで計100回ほど注文した。 合計で400ドルほどになる。

概ね、満足しているが、2点、問題があった。

1つは、届くのに時間がかる事である。

既に届いていて、記録がある77個の荷物について、 平均で19.6日でこちらの手元に届いている。 ただし、最悪の場合45日かかっていて、最短は9日。 標準偏差は7.15日だった。 概ね、30日はみないといけない。

1度、3端子レギュレータを注文した所、違う電圧の物が送られてきた。 届いた物の写真をつけて申し出た所、全額返金してもらったが、 正しい物を送ってもらうにしろ、別な出品者から買うにしろ、 もう30日、最初から考えると60日かかる訳です。 この時買った3端子レギュレータは50個セットで1ドル程度だったので、 常に同じ物を2つの出展者から買うぐらいの戦略が必要だ。

2つ目は、1度だけだが、詐欺にあった。 異常に安い3Dプリンタを見つけたので、注文したら、詐欺だった。 Aliexpressはエスクローサービスも提供しているので、 詐欺にあっても基本的には大丈夫だが、 気をつけないと悲しい気分になる。

ESP8266

これもどちらかというと発見だが、 ESP8266という2ドル以下のWifi内蔵のマイコンの存在を教えてもらった。

とりあえず、Aliexpressで大量に購入して、 ノウハウを貯めてる状態。

3Dプリンタ

Reprapあたりを買う事を視野に入れて、 色々調べたりノウハウを貯めている所。

OpenJsCadを使い、デザインを勉強中。

メール送信ボタン

100円ショップで買った、プッシュライトにESP8266を入れて、プッシュされたら特定のメアドにメールを送るボタン。

プッシュライトは、LED、スイッチ、電池ケースが内蔵されているので、何かを作るケースにはバッチリ。

スイッチが押されていない時はESP8266をスリープモードにいれておけば、年単位で電池が持つと思われる。

倒立振子

ロボット界のhello worldだと聞いたので、作ろうと思った。

ESP8266にTA7291PとGY-521を繋ぐところまでは作ったが、 ソフトを作る途中で挫折中。 いつか再開したい。

ポインティングデバイス

マウスをトラックボールにしたら腱鞘炎が改善された、 もっと腕を動かさないでいたら、腱鞘炎がよくなるのではないか?

とりあえず、HHKにジョイスティックをつける事にした。 安いのでPSPの交換部品のジョイスティックを試している。 開発中。