先日、サイボウズラボの開発合宿に参加させていただきました。関係者の方々、どうもありがとうございました。

で、ぼくは開発テーマとして「KOZOSのGDB対応」というのをやってみた。合宿は1泊2日で初日は夜からの参加だったのだがまあなんとかそれっぽく動くところまではいったので早速公開。

(H8移植編その2第16回)GDB対応をしてみた

とりあえずブレークポイントを張ってブレークすることはできた。

合宿のほうはもくもく会に似た雰囲気で、ガリガリ書くことができてとても充実していた。さすがにみなさん開発者なのでもくもくガリガリ書いていて、ぼくとしてはとても集中できて良い意味で緊張感のある、心地良い環境だった。

あと最後の発表では、さすがにみなさんレベル高いな~と思い知らされた。もっと勉強しないといかんなあ。
mnewsはSMTPに対応しているのだけど SMTP AUTH には対応していないので、メール送信にはmsmtpを呼び出して利用しているのだが、mnewsからmsmtpをそのまま呼び出すとなぜかパスワード入力ができないという問題がある。

で、そのmsmtp向け修正パッチを作成したので公開。

msmtpは内部でパスワード入力にgetpass()を利用しているのだが、実際には内部でgnu_getpass()というのを呼び出している(#defineで置換している)。で、gnu_getpass()だとうまくパスワード入力できない。なのでlibcのgetpass()を利用するようにする。

当然ですが無保証です。自分の責任のもとで利用してください。


--- src/msmtp.c.orig 2010-02-07 20:38:01.000000000 +0900
+++ src/msmtp.c 2011-11-24 23:11:35.000000000 +0900
@@ -394,6 +394,9 @@
if (getpass_uses_tty)
{
prompt = xasprintf(_("password for %s at %s: "), user, hostname);
+#ifdef getpass
+#undef getpass
+#endif
gpw = getpass(prompt);
free(prompt);
if (gpw)
メーラにはいまだにmnewsという往年のテキストメーラを使っていてさすがにこないだmuttに乗り換えようかといろいろいじってみたのだけど、やっぱりmnewsに戻ってきてしまった。

muttはカスタマイズ性が高くていいのだけど、mnewsでもプログラムに手を入れてビルドしなおせば好きに改造することはできるので、結局のところオープンソースならばカスタマイズ性はあまり重要でないかなあという結論になってしまった。(それよりもソースをいじりやすいことのほうが重要。いやmuttもソースコードいじりやすいんだけどね)

で、ついでにmnews用のちょっとしたパッチを作ったので公開。mnewsはカラー表示ができるのだけど、メール一覧のサブジェクト表示でスレッドの場合に返信メールに色がつかないのだがその修正パッチとあとメーリングリストの場合に[]でくくられた部分に色づけするためのかなり適当な修正パッチ。

とうぜん無保証です。利用は各自の責任の上でどうぞ。


--- article.c.orig 2001-02-05 01:54:48.000000000 +0900
+++ article.c 2011-11-16 20:22:43.000000000 +0900
@@ -2441,7 +2441,36 @@
}
#endif /* COLOR */
euc_strncpy(buff, article_list[j].subject, l);
+#if 0
euc_printf("%s", buff);
+#else
+ {
+ char c, *p0, *p1;
+ term_attrib(color_code[REFER_COLOR]);
+ for (p0 = buff; *p0 && strchr(" |", *p0); p0++)
+ ;
+ c = *p0;
+ *p0 = '\0';
+ euc_printf("%s", buff);
+ *p0 = c;
+ if ((*p0 == '[') && (p1 = strchr(p0, ']'))) {
+ p1++;
+ c = *p1;
+ *p1 = '\0';
+ term_attrib(color_code[FROM2_COLOR]);
+ euc_printf("%s", p0);
+ *p1 = c;
+ } else {
+ p1 = p0;
+ }
+ if (article_list[j].mark & THREAD_MARK) {
+ term_attrib(color_code[THREAD_COLOR]);
+ } else {
+ term_attrib(color_code[SUBJECT_COLOR]);
+ }
+ euc_printf("%s", p1);
+ }
+#endif
}
}
}
@@ -3828,6 +3857,7 @@
strcpy(&sort_list[index].subject[i], THREAD_SUBJECT3);
if (strncasecmp(article_list[current_article].subject, REPLY_SUBJECT,
sizeof(REPLY_SUBJECT) - 1)) {
+ sort_list[index].mark |= THREAD_MARK;
euc_strncpy(&sort_list[index].subject[i + sizeof(THREAD_SUBJECT3) - 1],
article_list[current_article].subject,
MAX_SUBJECT_LEN - (i + sizeof(THREAD_SUBJECT3) - 1) - 1);
最近いそがしくて全然ブログを更新してないが、ひさびさに告知。

まず今週末の11月11日(金)~12日(土)は大阪・南港のATCでKOFに出展します。
http://k-of.jp/

今回はセミナーを金曜と土曜で別々のを2本やります。金曜は「アセンブラ大集合!」というタイトルで、ノリと勘でいろいろなプロセッサのアセンブラを読んでみよう、ということをやります。土曜はいつもの組込みOS自作の話です。

あと土曜のステージで、SoftwareDesign誌「勉強会&イベント探訪記」の紹介をさせていただきます。
さらにジュンク堂KOF店でサイン会をやらせていただく予定です。

来週末19日(土)~20日(日)はOSC東京に出展します。場所は明星大学です。
http://www.ospn.jp/

今回はいつもと違って組込みOS自作番外編ということで、アセンブラのセミナーをやります。KOFでやるのと似た感じです。ライトニングトークにも登壇予定です。

来月の12月3日はOSC福岡に出展です。セミナー、LTを予定しています。

あと@IT MONOistの連載も続けています。
http://monoist.atmarkit.co.jp/mn/articles/1111/02/news003.html
最新記事ではpingによるネットワーク通信を実装し説明してます。もう少しで最終回かな。

アセンブラ本のほうの作業も進めています。なんとか早めに出せるようがんばりたいです。

9月22日(木)に新宿のネイキッドロフトで行われたTech LION vol.3にライトニングトークで出演してきました。

TechLION vol.3、今回も大盛況!

みなさん、さすがに話し慣れていて面白かったです。私は竹迫さんの話が面白かったですね。話し方も落ち着いていて、とっさの切り返しとかがうまいです。発表のしかたの参考になりますね。

Ustream動画はこちら(私の発表は01:32:00あたりからです)

私は今回は技術書執筆の話をさせていただきました。興味のある方は見てみてください。

アセンブラ本についてですが、x86やMIPSのようなメジャーなCPUは扱わないみたいなことを言っていますが、ちょっと言い過ぎでしたね(竹迫さんごめんなさい)。MIPSは、扱います。x86も扱いますが、あくまで「いくつかのメジャーCPUのうちのひとつ」としての扱いです。前半は最初にアセンブラ読解の練習としてPowerPCやMIPSなどの読みやすいRISCアセンブラを読み、その流れでSHやARMやx86などのメジャーCPUを読みます。で、後半部分で様々なCPU(ここからが本番)としてAlphaやPDP11、VAX、V850、68HC11、Xtensa、その他もろもろをフィーリングで(資料などをあまり調べずに)「なんとなく」読んでみよう!という感じです。注意としては、「きちんと調べて本気で読む」のではなく、「知らないプロセッサのアセンブラを気軽に楽しんで読んでみる」という点です。なのであまり真面目な技術書ではないです。技術書ではなく読みものだと思ってください。

ちなみに会場では今年のセプキャン生徒(そして高専カンファで会ったことがある)T.Hくんに会いました。