* 有明
行ってきた.
* avr-gccでmainの先頭の不要なレジスタ退避コードを消す
コンパイルされたmain関数を見ると,
.global main
.type main, @function
main:
push r5
push r6
push r7
push r8
...
push r17
みたいなのが付く.gcc 4.3くらいから -Os とかつけても消えなくなった.Cコンパイラとしては正しいのだけど,大抵の場合,main関数はreturnもexitもせず動き続けるしmainの再帰呼び出しもしないので消したい.tiny13aのプログラムメモリ1KBしか無いし...
gccの attribute で noreturnつければ良いらしい.
http://www.atmel.com/webdoc/AVRLibcReferenceManual/porting_1iar_porting_non_returning_main.html
ただ,今度は mainの戻り値がintではないという警告が出る.ならばと思って int にすると,今度はnoreturnなのにintを返すという警告が.
結局,
int main(void) __attribute__((OS_main));;
として解決.まだ微妙なコード色々あるけどとりあえず少し余裕が出来た.
分散Erlangのプロトコル調べていた. http://www.erlang.org/doc/apps/erts/erl_dist_protocol.html
やりたいこと溜まってるし,休みもっと欲しい.
* アイ〇ンのやつ
AVR内蔵のアナログコンパレータを使うと無信号時に不安定になるので,NJM2903を使ってたのだけど,もう一度試したら大丈夫そうだった.不安定になるのはおそらく回路がいまいちなせい.入力信号に下駄はかせるために入れてる抵抗に差動信号の片方だけ1kΩ追加してごまかしてるのも良い方法じゃない気がする.
けっこうシンプルになった.写真だと見えにくいけど,NJM2903 を attiny13 に入れ替えて単体で動くようになってる.入れ替えるとき気づいたけど,tiny13って電源とAIN0,1の配置が一般的な2回路入りオペアンプやコンパレータと互換性あるのか.
これに ESP-WROOM-02 をつないでネットワークにつないでいる.
tiny13にしたとき,クロックも内蔵のオシレータ使うようにしたのだけど,思ったより個体差ある気がする...OSCCALでクロック調整して回避.
とりあえず,動いてるっぽいので良しとしよう.
* ななかInside PRESS vol.8
明日らしいです.
第7開発セクション
-
2015/12/31(木) 3日目
-
東4ホール ム-38ab
-
「第7開発セクション」「松浦リッチ研究所」(合同スペース)
引きこもって工作したりコード書いたりする日.
C89用に書いたアイ○ンの話,ネタ的には割と反応良い感じだったので,あと1日とはいかなくても,あと3時間くらいかけて書けばよかったな...
昼過ぎに帰ってくる.
読書.
微妙に二日酔いっぽい.
鍋.
チキンかターキーを焼く予定だったけど,スーパーから無くなっていた.昨日のうちに買っておくべきだったか...
鳥のかわりのチャーシュー.
仕事.28だけ有給とって,年末の休みは明後日からにした.
最近,色々なものの締め切りとかを全て無視しつつ各所に迷惑かけまくってる気がするな...
昨日のやつの再利用記事をQiitaにも書きました.アイ〇ンのプロトコルの話
Qiitaの記事,GVSの話といい,ネタ記事の方が読んでもらえますね...まともに役に立つ実用的な話を書きたいと思っているのだけど.
眠いので寝る日.
夜中にC89用の記事を書きはじめる.締め切りまで-3日.つまり三日前が締め切り.色々ごめんなさい.
色物な記事ばかり書いてたので,今回はまともなもの...と思ってErlang開発の話を書いていたのですが,締め切り過ぎてから気が変わって,5年前にやったやつ の続きに書き直しました.入稿の直前で内容変更して迷惑かけまくった気がするけど,間に合って良かった.
上手く行けば 第7開発セクション から出る薄い本に載ると思います.
最初は会社で発表するときのネタにしようかと思ってたけど,年またぐとやる気が無くなってしまいそうなので.
軽井沢から東京に戻る.
そのまま会社の忘年会に行く.会社に寄って荷物を置いて会場に向かう.会場までのバスが出てたらしいけど,時間過ぎてたのでタクシーで有明に.
軽井沢.
Androidアプリ書いたりする.久しぶりにJava書いた.
久しぶりにシチュー作るなどした.
レンタカーで軽井沢へ.
冬の軽井沢.人少ない.
暖炉で薪を燃やすの初めてだ.薪ストーブなら子供の頃使ったことあるけど.
電子工作する日.明日軽井沢行くので準備しようと買い物にでかけたのだけど,気づいたら秋葉原にいたのでパーツ買ってきた.
アナログ回路むずい.
結局,思ったように動かないので,適当なフィルタで欲しい信号取り出して,コンパレータで比較してAVRつないで,あとはソフトウェア的に処理することにした.どうせ数十kHzの信号なので処理は十分間に合う.
ブレッドボードが部屋の壁に張り付いてるように見えるのは気のせい.
二台目のX250が届いた.ディスクがHDDな以外は今使ってるやつとほとんど同じ.メモリ増やしてSSDにしたいけどしばらく様子見る.
* ドワンゴ Advent Calendar 2015
明日が自分の番だったので,日曜日にやったやつ書いた.
Sublime Text 3 で Erlang 開発をする (Windows)
http://qiita.com/binzume/items/683c0f5aafe537ebff21
もう少し何かネタあるだろうとも思ったけど,色々放棄して一番最近やったことを...
趣味プログラミングでも少しはErlang使ってみるかと思って,Sublime Text 3でErlangの開発しようとしたけど,いろいろ嵌った.
SublimErlが良さそうなのだけど,まともに動かなかったのでコードいじりながら使う.
https://github.com/binzume/SublimErl
朝起きたら,頭痛いしだるくて動けないので寝る...
ここ一週間体調が悪い.
* Let’s Encrypt
Let’s Encrypt( https://letsencrypt.org/ ) がPublic Betaになったので試す.
用意されたコマンドを実行するだけでSSL証明書の発行や更新ができるのとても良い.一部のCAは既にAPIあるけど,今後はACMEプロトコルに統一されてく流れになると良さそう.
自動更新前提とはいえ,いまのところ証明書の寿命が90日なので,ひとまずは毎月更新にしておくかなあ.2か月だと1回失敗したのに気づかないでいると90日超えてしまうので.
いくつか証明書を作った後に,SAN使えることに気づいて作り直したりしてたらrate limitsに達してしまった.
https://community.letsencrypt.org/t/beta-program-announcements/1631
説明を読むと1つのドメインに対して7日間に5個しか作れないらしい.更新もカウントされるっぽいので,ギリギリの運用すると更新できなくなったりして危なそう.
SANは単に -d オプションで複数指定すればよいっぽい.emailオプションで指定したメールアドレスはアカウントに使われるだけで,証明書には含まれないみたい.
v6アドレスしかないホストもダメっぽい気がする.DNSのTXTレコードでやるしかないのかな.