‘プログラミング’のエントリ
Weather TypingのUWP化でネックになるネイティブC++の部分。C#に移植するのはそんなに大変ではないのだが、ネイティブ部分を使えるといろいろ便利なので調査。
まず普通にネイティブDLLを作ってUWPからP/Invokeしてみるが、あっさり成功。Windows IoTでもそのまま動いた。禁止されているAPIを使っていなければそのまま動くらしい。
てことで試しにWindowsストア用にビルドして、Windows App Certification Kit(WACK)にかけてみるが、「vccorlib140.dll is not supported for this application type」でWindows Security Features Testに失敗する。問題なさそうなmemsetとかmemcpyとかが引っかかっているので、どうもデスクトップ用のライブラリを見ているためっぽい。
ネイティブDLLのプロジェクトプロパティに「Consume Windows Runtime Extension」というのがあり、Using C++/CX in Desktop appsを参考に有効にしてみるが変わらず。
最終的にHow to: Use Existing C++ Code in a Universal Windows Platform Appというそのままのヘルプが見つかったのでそれに従って、上のC++/CXに加えてプロジェクトファイルを直接書き換えたりプリコンパイルヘッダの名前を変えたりしてWACKに通るようになった。
できあがったDLLをDependancy Walkerで見てみると、元々リンクしていた「VCRUNTIME140.DLL」とか「MSVCP140.DLL」が「VCRUNTIME140_APP.DLL」「MSVCP140_APP.DLL」になっていて、これがUWP用ってことか。
プログラミング, コンピュータ
UWP, Weather Typing
コメント・共有する
しばらくXamarin.Forms使ってみて分かってきたこと。
1. F5を押してもビルドされない問題
F5を押すとすぐに実行されてしまうので、手動でビルド、デプロイ、実行していたが、Configuration ManagerでUWPプロジェクトのビルドとデプロイにチェックが入っていないためだった。デフォルトでオフになっているのかな。
2. Release版だと例外が発生する問題
Shared ProjectのMainPageを起動するときにSystem.PlatformNotSupportedException: ‘Arg_PlatformNotSupported’ 例外などが発生。Releaseで動かした場合だけなんだけど、そのまま例外をスルーすると動くっぽい。なんだろう。
3. Xamlのインテリセンスが死ぬ
一番困ってるのがこれ。たまに動くんだけど、何かしているといつのまにかインテリセンスが死んでいる。UWPプロジェクトを選択しているときはインテリセンスが正常に動いたことがない。”ContentPage was not found”みたいなのが出てインテリセンスの選択肢がほとんどない。Android/iOSプロジェクトを選択していると動くことも多いけど、いつの間にかインテリセンスのウィンドウが出なくなる。一応そんなときはAndroidやiOSのプロジェクトから共有プロジェクトの参照を消してビルド、もう一回共有プロジェクトの参照を追加してビルドすると出るようになったりする。かも?
プログラミング, コンピュータ, 電子工作
Weather Typing, Windows 10 IoT, Xamarin
コメント・共有する
Raspberry Piでウェザタイを動かす計画。一通りロジックは移植し終わったのて、画面も少し作ってみた。
2週間前の状態がこれ。モバイルバッテリー付けて持ち運べるようになった。

今はこれ。キーボードを付ければ打ち込める。
キーボード関連等、Windows依存の実装があるが、そこさえ作ってしまえば同じアプリがRaspberry Pi上のWindows 10 IoT、Windowsストア (UWP)、Android、iOSで動くので、一石四鳥といえる。Xamarin MacってのもあるっぽいけどMacでも動いたりするかなあ。
対戦機能も、Windowsストアならサーバ・ホスト両方できそうかな。Androidとかでも、少なくともゲストはできる見込み。
で、折角のラズパイなのでハードウェアも動くはず、ってことでお決まりのLEDを試す。キーボードを押すとON/OFFする。
ここまで下準備ができてくると、やりたかったあの企画も近づいてくる。ある程度できたらイメージを載せてみよう。
プログラミング, コンピュータ, 電子工作
RaspberryPi, Weather Typing, Windows 10 IoT
コメント・共有する
はっぱさんとラズパイワークショップ。近場によい感じの作業スペースがあったのでそこで情報交換をした。MacでどうやったらWindows 10 IoT開発ができるかが争点だったが、なんとか別PCでWindows 10 IoTまでインストールまで持っていければあとはMacでのVisual Studioで開発できるのでは、という推測をしつつSDカードカードを購入。
→結局MacのVisual StudioではUWPプロジェクトは作れなかった。
そしてそろそろ必要になってきたってことでマクセルのモバイルバッテリーを購入。3Aまでいけるのでラズパイも余裕。
モバイルバッテリーを取り付けた様子。これで完全にワイヤフリーになった。

プログラミング, コンピュータ, 電子工作
RaspberryPi, Weather Typing
コメント・共有する
とりあえずウェザタイをラズパイで動かすのが当面の目標だが、せっかくやるならモバイル対応も同時にできるとよい。ってことで前からやりたかったXamarin.Formsを試してみる。
Visual Studio 2017でクロスプラットフォームプロジェクトを作るとShared ProjectとUWP/Android/iOS用のプロジェクトができる。とりあえずWindows 10 IoTで動かすためにUWPを中心に。PCで実験してからラズパイに持って行けるのがすごく便利。
クロスプラットフォームのやり方はいろいろあって、まずはWPFでも使っていたPortable Class Library(PCL)はそのまま使える。で、WPF用の共通プロジェクトはShared Projectにして、ifdefでなんとかするかな。PCLでインターフェースを定義、プラットフォーム依存プロジェクトで実装を定義、でDependency Injectionでやるのが綺麗らしいけど、クラス数が多すぎてめんどい。
Shared Projectはそれ自体はDLLでもスタティックライブラリでもなくて、各プロジェクトに勝手にマージされるイメージっぽい。それはいいとして、ifdefのdefine値は各プラットフォームで定義されていると思ってたんだけどそういうわけではない、んですかね。とりあえず自分で各プロジェクトに_UWP__とか定義した。
XAMLの方のクロスプラットフォームはどうかというと、本を読んでいるとXamarin Formsで共通にするかプラットフォーム依存でそれぞれ作るかの2択で、やれることはそんなに変わらないように見えた。なので当然Xamarin Formsでやるんでしょ? って感じだったが、実際やってみると・・・これはプラットフォーム依存の方が楽かも、って思える。コーディング中に画面イメージが出ないのはまあ仕方ないとして、何かちょっとでも変なコードを書くとインテリセンスが動かなくなったり、とにかく不安定。まあ、何をするとおかしくなるのかを学習しながら作っていけばなんとかなる、のか? あと、コード変更した後いちいちBuild&Deployを手動でやらないと新しいバイナリでデバッグできないのは何か設定とかないのかな。
少し心配だったGPIO周り。XamarinのUWPで動くかな、と思っていたが普通にUWPのプロジェクトからGPIOのライブラリは参照できた。最終的に動くのはXamarinがエミュレーションしたものではなくてUWPそのものなのかな?
ひとまずUWP on Xamarin.Formsで作った最初の画面。

プログラミング, コンピュータ, 電子工作
RaspberryPi, Weather Typing, Windows 10 IoT, Xamarin
コメント・共有する
Raspberry Piでウェザタイもどきを動かそうとしているのだが、Windows 10 IoTを使えばC#が使えるということで実験。
MSのページに従ってWindows 10 IoT Core DashboardからSDカードにイメージを転送して起動。するのだが、しばらく起動中のままになり、最終的にBAD SYSTEM CONFIG INFOでブルースクリーンになる。その後起動するとBCDがおかしいエラーで何もできなくなる。何度かSDカードを作り直すがダメ。ネットを調べるとアンペアが足りないとか出てくるが、Surfaceの充電器のUSBポートでもダメ。
余談だが、一度Windows IoTを入れるとSDカードに大量のパーティションができる。どうやってフォーマットすればいいのか分からないのでパーティションを全削除したらWindowsから認識されなくなった。これはXperiaにつないだらフォーマットしてくれた。
で、結局SDカードとの相性がだめだったようで、TOSHIBAの16GBはダメでELECOMの16GBで起動したらちゃんと起動した。
→追記。TOSHIBAのSDカードがクラス4だったからだと推定。SDカードがすぐ欲しかったのでコンビニで買ってきたらクラス4だった。ELECOMは電器屋でちゃんと?買ったものなので当然クラス10。
公式7インチタッチスクリーンだと画面が逆になってしまうのを直すため、Windows 10 IoT Core Dashboardからデバイスポータルを起動。が、インストール時に設定したパスワードが通らない。どうもあのパスワードではなく「p@ssw0rd」らしい。パスワードは変更しておいて、デバイスポータルからようやく画面を反転。
次。PCからリモートで操作する方法を探してみると、Windowsストアアプリがあるらしい。Windows IoT Remote Clientでリモートデスクトップのように操作できた。これでなんとか使い始められそう。
プログラミング, コンピュータ, 電子工作
RaspberryPi, Weather Typing, Windows 10 IoT
コメント・共有する
WT3.2.1を公開。開発版からの修正は、ワードの最後の文字を打ち終わった後に入力するとたまにエラーになる対策と、内部的には各キー配列のハッシュが変わったためファイルを更新している。
ウェザタイ本体のページがごちゃごちゃしてきたので、過去の履歴を過去のバージョンページに移動。ついでに過去バージョンをダウンロードできるようにしてみた。初期バージョンは手元にないが、1.2以降は全部ある。
そして、入力方式部分をオープンソース化してGitHubに登録した。登録するのは初めてなので作法がよく分からないが、とりあえず一番自由っぽいApache2ライセンスにしてみた。商用非商用関わらずソースコードを使用可能、改造も可ってことで、ウェザタイのプラグインが増えることにつながるとウェザタイ的にもプラスになる。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
WT3.2の開発もほぼ完了。ということでラズパイの環境を整備。秋葉原で買ってきたラズパイ用7インチタッチLCDとケースを取り付けてみた。


LCDの電源もラズパイから取れるし、一体型で持ち運びもOK。何より裏蓋も取り外し可能ってことでなかなか使い勝手が良い。

裏で動いているウェザタイonラズパイプロジェクトを開始しよう。
プログラミング, コンピュータ, 電子工作
RaspberryPi
コメント・共有する
ウェザタイのプラグイン部分はオープンソース化してみようと考えているのだが、いろいろと分からないことがある。ライセンスはとりあえずApache2にしておけば自由に使えるかな。まだそんなことはないだろうけど、誰かがソースコードを変えようと思ったらPullリクエスト? というのがくるのか。最終的にはウェザタイストアみたいなのを作ってワード、入力プラグイン、CPUプラグイン、リプレイをみんなで公開できるサイトにしたいけど、いつまでかかるか分からない。
てことでGitHubのトップページにあるマニュアルのようなページを作っている。Markdown形式というWikiっぽい形式で書くのだが、最初AtomというGitHub公式エディタを使っていたが、文章が長くなるとすごく重くなる。ので結局サクラエディタで編集、Atomでプレビューすることに。Atomが自動的にファイルの変更を検知してくれるので割と使い勝手がよい。
プログラミング, コンピュータ
GitHub, Weather Typing
コメント・共有する
WT3。なんとか終わりそう。テスト件数が約700件あってあと22件。テスト数件やるたびにバグが見つかるのでなかなか開発版を公開する勇気も持てなかったが、このままテストが終わったら正式版として公開かな。今のところバグ件数は目標50件のうち49件なのでいいペースではある。
そろそろプラグインの開発方法を書き始めないと。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
WT3の新バージョンも完成が近づいているのでKKさんに頼んで対戦のテストプレイをしてもらった。割とスムーズに対戦はできたが、いくつか問題も分かった。テストプログラムやチェックリストもいいんだけど、やっぱり実際にやってみないと分からない問題がたくさんある。
で、久々にネット対戦してみたけど、このソフト面白いですね。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
ずっと開発しているWTの入力方式プラグイン、だいたい実装完了。これができるとやっと新コンセプトの第一歩。
で、過去のバージョンと互換性を取るため、過去バージョンと対戦して、自動でいろいろな入力を試すテストをしているのだが、今回新しく作り直したので、過去のバージョンの方のバグが見つかる。
・Dvorakでxnが打てない。xの位置がQwertyのままになっていたため。
・50音でShift+かなが打てない。使っている人はほぼいないと思うのでこれはこのまま。
ゴールデンウィークくらいには開発版を公開できるかな。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
ちょっと前のAnalog Book Readerのダウンロード数がすごいことになっている。

全期間で4万ダウンロードくらいなんだけど、一週間で1600を叩きだしてまた通常の状態に戻った。GoogleとかTwitterとかでも別に何の情報も出てこなかったし、コメント数が増えたというわけでもない。友人の推測ではどこかの団体で一斉にインストールしたのでは? とか。
ところで、ウェザタイのダウンロード数は、初期のVector以外のダウンロード数は分からないけど、推計累計で4万ちょっと。そろそろAnalog Book Readerのダウンロード数が抜くくらいになっている。やっぱり世界の市場は広い。ウェザタイも今作っているエディタができるとグローバルに使えるようになる?ので本格的に世界を目指せる。といいなあ。
プログラミング, コンピュータ
Analog Book Reader
コメント・共有する
ちょっと前にRaspberry Piを買っていたのでいじってみる。
Raspberry Piは小さいコンピュータで、SDカードに入れたOSを起動できる。また、電子部品を付けられるピンがあるので電子工作ができる。本当はArduinoにWi-Fiとカメラを付けてラジコンをパワーアップさせたかったんだけど、モーター2個とBluetoothを付けた時点で他の部品をつけられなくなってしまったので、最初からWi-Fiが付いていてカメラ用端子の付いているRaspberry Piを試そうかと。
Raspberry PiとSDカードを買ってきて、HDMIでディスプレイ、USBでマウスとキーボードをつなぐ。PC側でRaspbian(デフォルトのLinux)をSDカードに入れて準備完了。あとはRaspberry Piを起動してOSをインストール。パスワードを設定したりWi-Fiの設定をして、そこからはPCからSSHで操作できるようになった。
なんだけど、家ではWi-Fiルータ、外でテザリングでつなごうとすると、どうしてもDHCPになってつなぎにくい。ディスプレイをつないでifconfigとかはかなり面倒。てことでまず最初のプログラムとして、Raspberry Piを起動したらIPアドレスをWebに通知するようにしてみた。初Pythonだけど、いろんなコピペなのであまりよく分かってはいない。
# coding: utf-8
import urllib2
import subprocess
url = 'http://xxxxx/cgi-bin/xxxxx.cgi?ip='
cmd = "hostname -I"
ip = subprocess.check_output(cmd,shell=True)
urllib2.urlopen(url + ip)
あとは、Raspberry Piを起動すると勝手にpiユーザでログインするみたいなので、piユーザの.bashrcに以下を入れてみた。
python /home/pi/xxx.py &
Web側はとりあえずCGIにしたが、自作のライブラリをいろいろ使っているのでここには載せきれない。もらったIPアドレスをファイルに書き込んで、標準出力に出すだけのものをさくっと作った。
これでIPアドレスが分かるようになったので、ディスプレイもマウスとキーボードも使う必要がなくなった。便利。
プログラミング, コンピュータ, 電子工作
RaspberryPi
コメント・共有する
何も書かないうちに1月経過してしまう。WT3は順調に進めているが,入力方式プラグインの実装が膨大になっていてなかなかきりのいいところまでいかない。残っているのは入力方式ごとの重みの自動計算,プラグインのサンドボックス化,キー入力の送信から分そのものの送信に変更,リプレイ互換性の確保,といったところ。ここまでやってようやく仮公開できるが,いつになるか。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
WT3。最終形は果てしなく遠いけど,今はカスタマイズ性を上げる作業を進めている。とりあえずワードカスタマイズと入力方式のカスタマイズのUIデザインは終わって,入力方式はあと一息というところ。デザインはやろうと思えばどこまでも凝れるのでいったん区切らないと。そこまでできたら開発版をアップロードするかな。

プログラミング, コンピュータ
Weather Typing
コメント・共有する
10月が終わってしまうのでエントリを追加。
WT3の開発は進んでいるのだが,まだ区切りがつくまで遠い。入力方式プラグインカスタマイズツールを作ろうとしているのだが,その前に,前回適当に間に合わせで作ったロビーのデザインを改善したり。
で本屋で目を引いた「なるほどデザイン」という本を読んでいるのだが,面白い。だいたいのデザイン本はルールと例は載っているが,設計方法が書かれていないので,初心者としてはどう役立てれば良いのか分からない。で,この本は設計方法が書かれていて,ステップごとに改善されていく様子が載っていたりする。役立ちそう。
プログラミング, コンピュータ, 書評
Weather Typing
コメント・共有する
Weather Typing。サミットでラグが発生していた問題が解決。ローマ字入力のカスタマイズでビットフラグを使っているのだが,C++のときにSTL bitsetで実装していたのをC#ではBitArrayで実装した。で,これがかなり遅くて,単純なlong型を使ったビットフラグに変えることで劇的に早くなった。
これまでも入力が遅い問題は報告が挙がっていたのだが,自PCでは再現せず原因が不明だった。サミットでは「5人対戦で長文を入力した場合」というヒントがあったおかげでやっと分かった。
ただ,今入力方式をがらっと変えていて,安定するまでだいぶ時間がかかる。修正版を公開するのはまだ先になりそう。
プログラミング, コンピュータ
Weather Typing
コメント・共有する
毎年恒例のタイピングサミット,行ってないけど感想を書いてみる。
今回は仕事関連で行けなさそうなので元々エントリーはしなかったのだが,いろいろあって自分だけ休みになったのでニコ生で中継を見た。
恒例にしてもらっているWT団体戦。毎回工夫をこらした大会を開催して頂いてありがたい。中継もかなりよくなっていたし。去年もサミット後にニコ生のタイムシフトで振り返ったけど,さすがに打っている文字はほとんど見えなかった。今年は部屋の明るさとか映し方で,かなりはっきり見えるようになっていた。それ以外にも,去年分かりづらかったチーム名が色分けになっていたり,随所が改善されていた。
で,懸案のつながりにくさとか前バージョンからの操作の変更は,おそらく事前に入念な準備をしてもらっていて,こちらから見ると大きなトラブルはなさそうだった。ただ,以下の点はソフト側の作り込みが甘いので,せっかく使ってもらっているのでこの辺はなんとかしたい。
- ゲーム中,得点が全員分見えない
- とにかく動作が重い
- 結果表示のグラフがよく分からない
- ローマ字とかなで打てる範囲が違う
とりあえず上の課題は解決するとして,来年は新コンセプトの機能を作り込んで提案してみるつもり。でも新機能は大会的には関係ない機能が多いのかな。提案するなら団体戦機能を作り込みたいけど,そこまでいけるかな。
以下詳細。
ゲーム中,得点が全員分見えない
去年の反省で,「得点部分の大きさを変えられるようにする」という調整をしたのだが,本来の要求は「画面サイズを限界まで落とせること」だったことを思い出す。画面の解像度を上げてフォントの大きさを調整すればよいと思っていたが,プロジェクタを使う前提だとそうもいかないか。
とにかく動作が重い
何が原因だろう。自宅だと2台のPCで5人対戦しても遅くはない。問題文が長いと遅いということは,.NETのWPFの描画が追いつかないのか。であればUnityとかフレームワークレベルでの移行が必要になってしまう。
結果表示のグラフがよく分からない
結果表示のグラフは改善が必要かな。拡大縮小とか,1人分のグラフを強調表示とか。まあこれは別途検討中の履歴分析と合わせて考えよう。
ローマ字とかなで打てる範囲が違う
今回のウリ?のバラエティに富んだワード。ローマ字とかなで打てる特殊文字に違いがあるので,途中で打てない文字が出て来ないか心配したが,考慮済みだったようで,さすがの運営。でも新コンセプトでもワードのバラエティ性は重要なので何か必要かも。
ついでにモールス信号。今,ちょうど入力方式のプラグイン機能を開発中なのだが,サンプルとしてモールス信号を作ろうとしていた。今回の擬似的なものではなくちゃんとトンツーできるようになる,かな。
プログラミング, コンピュータ
Weather Typing, タイピングサミット
コメント・共有する
Analog Book Readerの更新でWindowsストア用パッケージを作成していたのだが,数日はまった。
まずストア用証明書の有効期限が切れていてパッケージをビルドできない。テスト用証明書を作成し直してみたのだが,ここでPackage Family Nameが変わってしまって別製品になってしまう,ように見えたのでいろいろ試していたのだが,結局ストアとの関連づけをやり直すことで元のPackage Family Nameに戻った。
次。前のバージョンからのアップデートを試したいのだが,前のバージョンも期限切れでインストールできない。そこでシステムの日付を無理矢理元に戻してインストールしてうまくいった。
次。日本語OSで英語が表示される。これはV1.7のときもそうだったっぽい。V1.7はUWPなのでWindows 10しか動かないが,日本人の新しいもの嫌いでWindows 10の普及率が低いため問題にはなってない,と考えておこう。で,原因はよく分からない。パッケージの中に「_language-ja.appx」が入っていればOKなのだが,何故か入らないこともある。とりあえずアップロードする前に日本語でテストする必要があるってことか。ダウンロード数からいってもはや日本語サポートする意味はあまりないけど。
てことで,Analog Book Reader V1.8をストアに申請したのでもう少しで公開されるはず。
プログラミング, コンピュータ
Analog Book Reader, UWP
コメント・共有する
先週胃の調子が悪くて開発をお休みしてた。で体重が3kg減ったらそっちは直ってきたんだけど,胃痛を弱めるために変な寝方をしてたらドライアイがひどくなってさらにお休みしてた。何かを変えると何かしら不調になるってことで,いつもの健康は絶妙なバランスの上に成り立っているというのが分かる。
とりあえず,TwitterでもらったWT3の問題の改善版とAnalog Book Readerの次バージョンはテスト待ちになっているので,体調がよくなり次第リリース予定。
プログラミング, コンピュータ
Analog Book Reader, Weather Typing
コメント・共有する
今,「Make: Electronics」を読んでいるのだが,その中で,ユニバーサルプレートの表裏で線を交差させることはできない。穴を経由してショートするから。と書いてあった。あれ,そういえば,と以前作ったボードを見ると,表裏で交差させたので問題がある。実際には線はプレートから少し浮いているのでショートはしていないんだけど,あまりよくない状態ってことですね。
普通の本だと交差するところはラッパー線を使う,くらいしか書いていなくて,表通せばいいじゃん,って思ったのだが,この本はやってはいけないことがいろいろ書いてあって勉強になる。
プログラミング, コンピュータ, 電子工作
Arduino
コメント・共有する
スマホでラジコンを操作しながらラジコン視点が見えるようにしてみた。iPod Touchで撮影した動画をWindows Mobileに飛ばして見ている様子をAndroidで撮影するという夢の共演。
前回の通り,Windows 10 MobileからArduinoラジコンをBluetooth経由で操作している。で,今回はラジコンに設置したiPod Touchからビデオ画像をWi-Fiでとばして,Windows 10 Mobileのアプリにリアルタイム表示した。ラジコン視点の画像が手元に表示されて割と楽しい。
このままだとWi-Fiにつながってないと遊べないが,SIM搭載したAndroidをテザリングモードにしてWi-Fiルータ化すれば,外でも同じ事ができる。スマホを3種類持ち歩くことになるけど。
とりあえずラジコン部分はこれで完成。iPod Touchからの画像はRGB生データで取得できるので,この情報をうまく使えば自律操作ができる。そこが最終目標。
プログラミング, コンピュータ, 電子工作
Arduino
コメント・共有する
前回,ラジコンを作るところまでいったが,操作するのはWindowsのPCだった。やっぱり操作するのはスマホの方がいいな,と思ってAndroidアプリを作ることを考えていたんだけど,そういえばWindows 10 Mobileがあった。てことで操作アプリをUWPしてみた。
Windows版では今まで通りSPPを使用してCOMポートのシリアル通信でBluetoothに繋いで,さくっと移植完了。でもWindows 10 MobileではCOMポートが何番か調べられないなあ,と思っていたらモバイルではSPPを使えないっぽい。てことでここを参考にRFCOMMでアクセスするように変更。Socketにするだけでやることは同じですね。
こんな感じ。Windows 10 MobileはWindowsで普通にデバッグできるからすごく楽。

201606192159
プログラミング, コンピュータ, 電子工作
Arduino
コメント・共有する
しばらく前から英語の勉強のためHuluを契約しているのだが,最近配信しているアメリカのドラマSilicon Valleyが面白い。シリコンバレーにいるプログラマが,発明したアルゴリズム一つで戦っていこうっていう内容。シリコンバレーのスタートアップでやっていくにはどんな困難があって,開発者から経営者になっていく,それは成長なのか何なのか,みたいな話。見ていて精神力を奪われるのでまだ4話までしか見られてない。
で,面白さは既に語られているから良いとして,開発者から見て面白かった所を。
・「開発チームはなぜ必ず5人でこういう構成なんだ?」うん,確かにそんなイメージ。
・「スティーブと言えばジョブズに決まってるだろ。」「いや,ウォズニアック・・・」
・主人公の作業場所に飾られている絵が標準画像。何故?
多分気付かないネタもいろいろ仕込んでいる気がする。
で,話の軸となるアルゴリズムは,ロスレスの圧縮アルゴリズムで,例えば音楽ファイルが1.2MBになる。シャノンの例の定理はどこへ行ったの? って思ってたけど,4話で「何故ロスレスなのにDCT使ってるんだ」とか出てくるので,それなりに説得力のあるアルゴリズムの説明も出てくるのだろうか。圧縮したまま検索ができる汎用アルゴリズムということなので,パターン認識して,物体とかフレーズとかを文章的なものにして保存,復号時は文章的なものからオリジナルを復元するのかな,と思ったけどそれじゃロスレスにはならないし。
プログラミング, コンピュータ, 英語
コメント・共有する
新しいはんだごての力を得て,自作Arduinoシールドが完成。
シールドの設計図。分かりにくいが,Drv1とDrv2がモータードライバTA7291P x2で,U5とU6がBluetoothモジュールRN42をXBEE変換したものを2.54mmピッチに変換したもの。基板作り自体初めてなのでこれでも3回くらい設計をやり直している。これで完璧,と思って部品を置いてみたら部品同士が当たってショートしちゃう,とか,パズルみたいだった。

※回路に重要な問題があるので後の日記を参照のこと。
シールドの部品面。モーターなどの線はピンソケットにして取り外せるようにしておいた。線自体はジャンパーワイヤーを切ったものをはんだでつなげて熱収縮チューブで保護することでさくっと刺せるように。

シールドのはんだ面。新しいはんだごての力を借りてようやくこんな感じ。まだまだ修行しないと。設計上線がクロスする箇所は絶縁したコードを使うのが普通っぽいけど,表面を経由したり表の抵抗を経由したりで回避した。

ラジコン化したもの。前の実装では表と裏の部品が相互に邪魔して配置に制約があったのだが,ユニバーサルプレートを2枚重ねにしてネジが競合しないようにしたことで自由に配置できるようになった。ちなみに金属のやつは撮影用のiPod Touchを置くスペース(仮)。

表詳細

裏詳細

プログラミング, 電子工作
Arduino
コメント(1)・共有する
Arduino。今までブレッドボードで動かしていたモーターとBluetoothをシールド化すべく,設計をした。少し線を付け始めたのだが,どうもソケットが溶けたりハンダが酸化したりする。いろいろ調べてみたところ,WEBはんだ付け講座ではんだごての選び方が乗っていて参考になった。使っていたのは太洋電気の入門セットなのだが,初心者こそ高い道具を,ということでHAKKOのFX-600に買い換え。その後しばらく練習したところ,かなり快適。古いのはランドにちょっと付けているといろいろダメージが残ってしまっていたが,新しいのは大丈夫。
プログラミング, 電子工作
Arduino
コメント・共有する