ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2016年6月20日月曜日

Arduinoで構造体を使う

Arduinoで構造体を使う方法、ということで調べると、普通に使うなら別に問題なく使えるが、関数の戻り値や引数としてはヘッダファイルがないとダメだ、というような話が出てくる。しかしこれは少し間違いがあり、現在の最新Ver(16/6/20現在で1.6.9)を使っている限りは、何も考えずに構造体を宣言してC++のように型名と同じくそのまま利用すれば、何の問題も起きない。

ただ少し前のVerでは、(C言語でやるように)構造体にtypedefを使ってstructを省略しようとした場合、戻り値や引数で、コンパイルが通らないという、おそらくバグと思われる挙動があり(もともとArduinoはC++のすべての機能を使ええるわけではないとリファレンスなどには書かれている)、先に関数の宣言を書いたりしないとうまくいかない。

ちなみにヘッダファイルを使わなくとも、ワンファイルで解決する方法として単純にtypedefを使わない場合のC言語と同じように書くという方法がある。
struct RGB hoge(struct RGB rgb){
という感じだ。単純にtypedefを使わないC言語のときのように、構造体の利用時は構造体名の前にstructをつけるというルールに従いさえすれば、問題ない。

2016年6月7日火曜日

あたらしいテスターを買った/DE-200A

昔、父からもらったテスターを延々使っていたのだけど、最近プローブの接触が悪くなっていた。あきらかにプローブの方の問題なので、数百円出してそれだけ買えば使えるのだけど、前々から新しいテスターを欲しいなと思っていたので、買うことにした。
ちなみに、昔、父からもらった、とか書くと形見とか思い出の品みたいだが、父は未だに健在だし、もらった時点で自分はすでに大人だったし、電子工作するときにテスターが無いと言ったら使ってないから、といってもらっただけのものである。割と使いやすくて気に入ってはいるがごくシンプルなので、いくつか自分の欲しい機能で無いものがあった。

▲DE-200A
というわけで秋月で買った。

オートレンジデジタルマルチテスター DE-200A (日本語説明書付)

欲しい機能と言っても、さほど大したものではない。たとえばオートレンジだ。これは計測する電圧や抵抗のレベルを勝手に調整してくれるものだ。これがないものだと、測る対象の電圧や抵抗の数値が収まる値にガチャガチャとツマミを回して調整しなくてはならない。

▲オートレンジじゃないテスター。適切な数値を探す必要がある。
それがそんなに手間か、というとそうではないし、完全に慣れた作業なので自動的にやっているような部分もあるが、でも次買うならオートレンジが付いてる奴が良いなと常々思っていた。
そして、私の一番重要と思う機能がこれである。

▲立てられること
これ。後ろにスタンドがあってテスターが立てられることが大変重要である。どうでも良さそうに見えて、無いといちいち数値を覗きこまなきゃならないので割りに不便な場合が多い。また制作動画を作るときに制作物と一緒にテスターの値を写したいようなときに、これがないと困るときがある。

また以前使っていたテスターに比べると、計測した数値が出るまでの速度が早いことも微妙な快適さにつながっている。これは本当にちょっとした差だけど、前のだと、(プローブあてる)・・ピッ、というくらいの速度だったのが、これだと(プローブあてる)ピ、という感じだ。

その他のウリは秋月にしてはやけに気合の入った感じの商品ページの解説を読むと良いと思う。個人的に気に入っているポイントは、色が可愛いということである。また秋月のページにもあるが、本当にしっかりした作りになっていて持ちやすい。



秋月で買ったほうが安い

2016年6月6日月曜日

腰にさげる道具袋を買った

建築関連の友達と仕事上がりに遊んだりすると、腰につけた道具袋をどしゃっと安全帯ごと外したりする。あれ格好いいなーと思っていた。あそこまででっかくなくても、道具をまとめて入れるようなやつを日常的に使ってみたい。そんなわけでAmazonで意外と安かったので買ってみた。
もっとおしゃれな感じのものとかもあったのだけど、頑丈でいかにも道具袋感があるからこれにしてみた。実際に布は分厚いし、金具もごっつくて、かなり丈夫そうだ。保持する部分はカラビナと、ベルトに通す輪の2つが選べるようになっている。
ポケットは二つ折りの財布がぎり入らないくらいの横幅だけど、スマホなら入る。スマホ、社員証、鍵など諸々放り込んで腰にさげておくと会社に行く時にあれがないこれがない思わなくて済むので楽かもしれない。




ワーカーズレーベル(WORKERS LABEL) 携帯電話小物入れバッグFAB-5BR
ワーカーズレーベル(WORKERS LABEL) (2014-01-15)
売り上げランキング: 4,719

Webサービスを更新すること

niconicoを最近の子は見ない、みたいな言説を読んで、それ自体は何かデータがあるわけでもないマックの女子高生話みたいなもので考慮に値しない話だけど、単純に自分自身niconicoをイカすサービスだとは思っていなくて、そのことについて考えていて、なぜniconicoは改善されていかないのかとか、そもそもWebサービスはどのように改善されていくべきなのかとか考えていた。先に書いておくと、明確な結論があるわけではなくて、あくまで散文的な内容であり、論点も絞っていないし拡散していく。

niconicoの何がダセェかっていうような話は、ググれば掃いて捨てるほど出てくるので割愛してもよいが、軽く思いつくだけでもいくつも並べられる。動画の画質も容量もマイリスト数もNG登録数も回線速度も何もかもに制限があり、月500円払ってもそれらはやや緩和されるだけだ。些細なことなら動画の投稿者コメントにURLを貼れず、また強制改行のためにイマドキBRをいちいち入れなくてはならない。あるいはUIやトップページが使いづらい。
もっともそれらはサービスが開始された当時には、まあそんなもんだろうという感じでもあった。私が何が最もダメかって思うかというと、なにより、それらがさっぱり改善されないということに尽きる。まずいと思われる部分がいつまでも直らないというのは、サービスであれ、プロダクトであれ、死んでいるという感じがする。そういうものを使い続けるのは、気の滅入ることだ。たとえば職場でみんなが通る場所にくせぇゴミ箱が置いてあって、一日に一回は誰かがぶつかってゴミが撒き散らされているのに、それを自分には動かす権限がなく、それなのに誰に言っても改善されないような感じだ。しまいにゃ、ゴミ箱に張り紙をする。「ゴミ箱にぶつからないように気をつけましょう」。まったく気が滅入る。

だが、なぜniconicoは改善されないのか、ということで言えば、おそらくそれはそういう方針なのだろう。私自身、企業向けのWebサービスを作って飯を食っている人間であるから、日々たくさんの改善要望などに目を通し、改善しWebサービスを何年というスパンで直し続けている。しかし、それらの要望などを検討するうえで、しばしば気になることがある。
はたしてこれらを直すことで、どれくらいの儲けになるのか、ということだ。
すでにそれなりの顧客を集めており、継続的な使用が見込めるときに、開発費用をそれ以上かけるというのは、経営側からすれば単純に無駄と捉えられる。私自身は個人的な思想として、上述のようにちょっとしたことでも直し続けていかないと、利用者は不満を貯めて満足度を下げるものだと思っているし、また時代が進むに連れて他のサービスが良くなっていく中で、相対的にサービスが悪化していくということがありうると考えているので、かなり改善していくことには積極的ではあるが、「これを直していくら儲かるんだ」というようなことを問いつめられると、(うちではそんなこと言われないが)おそらくキツいだろうなとは思う。
niconicoが改善されないということについては、ただの推測でしかないが、そもそも改善したら良いかどうかというのは、ある程度出来上がったシステムにおいては、議論の別れるところであると思う。そもそもターゲットとするところとか、サービスの利用範囲やジャンルそれぞれで全く違う答えになるようなことですらある。

また、改善されないということについて言えば、2013年にGINZAになり、それが激しく批判された以来大幅な変更がないので、niconico自体に変化に対するかなり消極的な姿勢が出来てしまっているのだろうなと思う。何をやっても客は怒るんだ、じゃあもう何かやるのはイヤだ、というような感じ。
その気持ち自体は、私も開発者として分からないではない。とくにデザインや操作方式の変更は、単純な機能追加などと違って、文句を言われるのを避けて通ることは不可能だ。企業向けのサービスなら、先にデザイン案をだしたり、根回ししたりである程度軽減は可能だが、それでも何度も告知した内容についてそのときは何も言わないのに公開後に文句を言ってくる人が必ず居る。そういうことをやりづらい一般向けのサービスなら、それはもうすさまじいものだろう。

意見の中には、単純に使い慣れたものが良いからそれに戻せとか、一回自分が押し間違えたからこのデザインはダメだくらいのレベルのものもあり、冗談だろという気持ちになることだってある。誹謗中傷に近い意見をぶつけられたら、誰だって傷つくし、その意見を受け入れることは自分への攻撃を肯定するようで辛いことだ。
ただ、いちおうオッサンになるまでこの仕事をやっていて思うのは、そういう意見も、それを感じたという事実は避けがたいということだ。どういう風に直せなどという意見はほとんどの場合何の訳にもた立たないが、その人が「何かに困った」という部分は本当のことなのだ。だから、開発者はその困った事実を、どうやって他との折り合いをつけて良くするかを考え無くてはならない。これは開発者以外には出来ない作業だからだ。「このボタンをこっちにつければええんや!」というオッサンは、他の画面との統一性があることでの利点や、開発や保守上の工数については知らない。しかしオッサンはたしかにそのボタンが今の位置あることに困っているのだ。
だから開発者は統一性だの、保守性だの、開発工数だの、面倒くさいことを大量に前提に置きつつ、本当の解決策を探さなくてはならない。それが仕事である。もちろんどうしても良い解決策がなく、現状維持が一番マシとなればそうするのも選択であるし、現状のniconicoがそういう選択の結果なのであれば、もはや言うことはない。

まあ保守さえやってりゃ、いまでも2ちゃんねるに書き込んでいる人がそれなりに居るように、niconicoもあんな感じで存続していくんではないだろうか。



ニコニコ大会議2010-2011完全版~ありがとう100万人~ 凸凹+α [DVD]
BinaryMixx Records (2011-05-25)
売り上げランキング: 71,948

2016年6月2日木曜日

Arduinoを使ったプログラミング学習のアイデア2

前回のつづき。
考えてみると通信まで行くとちょっと最初から高度すぎるかもしれない。たとえば箱の側面にキャラクター液晶とUSBコネクタが露出していて、USBコネクタを接続して、PC側のブラウザでごくごく単純化したビジュアル言語(というほどのものでなくても良い)を書くと、液晶の数字を出力できるというようなものでも良いかもしれない。



数字を箱(変数)に入れる。
箱を機械(関数)に入れる。
という図を見て、それが実際の箱の液晶に反映されるというところを見せたい。
で、一応のパズル的要素として、正しい数値を表示できると、箱が開くようにする。


箱に書いてあるものが、画面上の入力値になっていて、それが更に箱を開けるということで、プログラムが物を動かすということへの理解へつながればなという感じ。



【永久保証付き】Arduino Uno
スイッチサイエンス
売り上げランキング: 1,140
一個くらい持っておくとよい。