くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | ]

2018-06-20

日記

いろいろあった。いや、いろいろはないな……。

Erlang & Elixir Fest 2018に行ってみた。どっちも全然知らんけど。 ErlangはRTMPの参考になんかのメディアサーバーのソースを読んだくらい。

知らんわりにはなかなか楽しめた。 前半は事例紹介が主で、最初はなるほどなと思うものの、同じようなのがいくつも続いたんで飽きてしまった。 後半は技術的なところが多かったような気はするが、まあそんなに高度な話は無かったみたいだ。 俺は全然知らんかったから良かったけど、普段使ってる人は物足りなかったりしなかったんかな?

なんかまだ使われ始めたばっかりで、使ってるよーという以上の話にはあんまならなかった感じ。 これから盛り上がってくといいですね。

知ってる人にはそんな目新しい話でもないだろうけど、PubSubの実装の話は面白かった。

ニコニコ内部のメディア中継サーバは興味深い、というかPeerCastとやってることは同じなんで(P2Pのアルゴリズムは素朴なPeerCastなんかよりもっとまともなやつだが)、やっぱそうなるよなあと思いつつ聞いてた。

PeerCastStationもErlangとかElixirで書き直すか!とか思いつつ聞いてたが、まあ現実的にはないわな。いろいろあってC#になってるわけだし、まあしばらくはC#のままのつもりだわ1

それでも作り的に参考になるところはいくつもあったので取り入れていきたい。Phoenixの(?)Supervisorてやつは良さそうね。.NETでもTaskの管理するようなやつ欲しいなという気はしてたが、やっぱそういうのあるんだ。そして再起動まで勝手にやってくれるのは確かにうれしい。

技術書典5の募集が発表されたようだ。 うーん、前も書いたけど今度の参加はどうしたもんかなぁ。 本よりプログラム書きたい。 でも一度申し込まなかったらもう二度とやらん気もするなぁ。

しかし今回は会場だいぶでかいぽいね。広さ3倍ですよ3倍。都合の良い場所がなかなか無い的なこと言ってたんでまだ同じ場所かと思ってたけど、実はもう新しい場所取ってたんか。 前回は倍率1.3だか1.4だかで、そんな落ちる人も居るのに俺なんかが出てるのも申し訳ないなあと思ってたんだけど、今度は落ちそうもないし申し訳ない気持ちになることもないかも。 とはいえ新刊全く無しというのもなんなので、出るなら薄くても何か書きたいしなあ……。

  1. ユーザーがWindowsメインなんでWindowsで動かしやすくて、でも他のプラットフォームでも比較的簡単に入るランタイム入れれば動いて、そして配布やビルドがめんどいのでどこでもだいたい同一バイナリが動く、ってのが第一。第二には俺がそこそこ書けて(Java環境はさっぱりわからん)、他人でもいじれそうな言語(F#とかRubyは微妙だな)というところでC#になってるんで……。 

[PeerCastStation] 不具合いろいろ

新バージョンをリリースしたところ、いくつか不具合報告が上がってきたので対応した。

PeCaRecorderというツールで、ツール終了時にいっしょにPeerCastStation(とかPeerCast)本体も終了するオプションがあるんだが、それで終了しなくなってしまったとのこと。 PeerCastには-killというオプションをつけて起動すると既存のインスタンスを終了する機能があるんだが、PeerCastStationもそれを実装してて、でもオプション周りちょっといじったから動かなくなったのかな?と思った。

確認してみると-killオプションは動いてるなあ。詳しく状況を聞いてみるが使い方は間違ってないし、前のバージョンに戻したら上手く終了するようになったとのことなんで、やっぱ今のバージョンでの問題か。

手元でPeCaRecorderを試してみると、2回に1回は終了してくれるという変な動作をしている。プロセスを見てると、どうもPeCaRecorder終了時にPeerCastStation.exeのプロセスを一つTerminateProcessかなんかで強制的にぶっころしてるような感じだ! アップデートのために起動プロセスからメインプロセスを分離して立ち上げるようにしたんだが、起動プロセスだけ殺されてメインプロセスは普通に動いちゃってるので死なないように見えたようだ。まあ実際死んでない。

TerminateProcessで殺されるのをトラップしてメインプロセスを終了させればいいだけなんだが、TerminateProcessは強制終了なのでトラップできねー。これはどうしようもないのでは? と思ったが、メインプロセス側が親の起動プロセスを監視して、死んだら終了すればいいのか。かなりトリッキーなことになりそうで嫌だなぁと思いつつ書いたが、べつにトリッキーなことにもならんし普通に書けた。 メインプロセス起動時に、親プロセスのPIDを渡してもらって、そのプロセスを監視すればいいだけだった。 WindowsとUnix系両対応が不安だったが、Process.Exitedイベントは普通に動くしなんら問題なかったんで無事解決した。

他のプロセスを強制終了してくるのは行儀的にどうかと思うが、親プロセスが死んだらおとなしくいっしょに死んでいくというのはやっておくべきことではあったと思うしよしとしよう。

DebianでIPv6アドレスで接続待ち受けができないという報告が来た。 どうもDualStackな接続待ち受けがされようとして、IPv6の::0にbindしようとするとIPv4の0.0.0.0にもbindされようとしてかちあってるっぽい? そんな動きすんのかよ……。

setsockoptIPV6_V6ONLYを1にすれば良さげとのこと。てか.NETからも素直に設定できるようになってるんだが、Windowsだと標準で1なんで気付かなかったっぽい。macOSでも気付かなかったんで標準で1なのかな?LinuxとかFreeBSDでは標準0だったりするみたい。 まあ0の理由はないんで明示的にIPv6Onlyを設定しておくことにした。 しかしこの機能かなり微妙だと思うんだけど、中途半端に余計なことしないでほしいな……。

こっちは上手く再現できる環境がすぐには作れなかったんで確認お願いしたけど、上手くいってりゃまたリリースしたいところ。


2018-06-04 RubyKaigi 2018行ってきた

[Ruby] RubyKaigi 2018行ってきた

RubyKaigi行ってきた。

新幹線→会場→高速バスと身体動かせないところで長時間座ってたからか、肩だの首だの腰だのが痛くなってつらかった。

RubyKaigi自体の感想は長々と書いても面白くまとめられそうにないんで、簡単に興味深かったのを挙げとこう。

  • TruffleRubyやばすぎる
  • mruby/c楽しそう
  • 組込み向けでのmruby利用報告いくらかあって良さげ

そんな感じだったかな。

CRubyのJITだの高速化だのの話がいくつもあったけど、それよりTruffleRubyがぶっちぎっててほんとすげえ。 中身は詳しく調べてないんだけど、GraalVMの機能としてあの速度なのか1TruffleRuby自体も相当頑張ってるのかどうなんだろう。

mruby/cなんかはメモリ64KB以下でも動くようで(だいぶ制限はあるものの)、物によってはArduino用のHAL書いてる人も居るみたい?なくらいなようでちょろっと遊んでみると楽しそう。Arduboyでは厳しいかなあ。

mrubyはちょっとでかくて微妙だよなと思ってたが、da_funkとかいうIoTフレームワーク?みたいなのが面白そうだと思った。そういうライブラリが整備されてるといいね。

mrubyでもmruby/cでも通信モジュールにATコマンド送るのが楽で便利て話でなるほどなーと思った。 組込みだと結構シリアル通信で制御する機器も多いけど、CとかC++だとめんどいもんねえ。

いろいろRuby関係もいじりたいが、全然手を出してる暇がねえ。簡単なWebアプリケーションとかくらいしか作ってねえけど、Webアプリなんか全然作りたくねえのよ。

てかIronRubyいじりてえ。

  1. GraalVMの上で素直に処理系作ったらなんでも爆速になってしまうのか? 


2018-05-28

日記

体調は良くなった。気温も高めながら落ち着いてるしな。 歯の痛みも全くなくなったし。

今週は後半に会社サボってRubyKaigi。31日の新幹線は何時だっけと確認したら6:40か。早いな……。

最近平日にプログラム書けてないのやばいので、毎日30分だけでも書こうと心掛けてるんだが、始めると30分で済まないのが困る。 だからなかなか手をつけられてなかったんだな。

ラジオとか聞きながらだと30分で終わってくれるのでいい気がした。 結局番組終わっても作業続けてしまうので30分じゃ済まないんだが、まあそろそろ終わらないとなという気分にはなるんで。

アニメ見ながらとかできればいいが、アニメだと画面見ちゃって作業進まなくなるんよな。

バックアップ環境のリプレース

もうCrashPlanの契約が終わるので乗り換えないといけない。

メインのデスクトップPCとGPD PocketはDuplicatiを使ってローカル/クラウドバックアップをするように設定して様子見てるんだが、やっぱDuplicatiは重くて、1日1回くらいなら問題ないけど、CrashPlanのように継続バックアップはできないわ。

デスクトップの方は毎時バックアップにしてるけど、1回に30~40分くらいかかってるんで、バックアップが動いてる時間の方が長いくらい。30%とかCPU持ってくし。クラウドバックアップは1日1回しか設定できない。

やっぱ他のバックアップ使った方がいいだろうか。 契約切れるけどまあいますぐ何かやばいわけではないので、いろいろ試せばいいんだけど……。

今考えてる代替案としては、

  • 高機能NAS買って、そいつのバックアップ機能を使う
  • クラウドバックアップをBackblazeにして、ローカルはファイル履歴にする
  • 諦めて1日1回バックアップくらいにしてDuplicatiを使う

ファイル履歴がAppDataをバックアップしてくれないのがなぁ……。

高機能NASはやっぱりお値段するし、NAS付属のバックアップソフトがどんなもんかわからんと、ちょっと手が出しづらい。

バックアップそんな頻繁に要らんのでは?というのはまあそれはあるんでそれでもいいのかもしれん。

よく考えたらAppDataのバックアップとかそんなに頻繁にいらんので、そこはBackblazeに任せてローカルはファイル履歴にしてもいいのかも。 てかそれならクラウドバックアップを1日1回Duplicatiにして、ローカルバックアップはファイル履歴でもいいのでは?

またいろいろ考えるか。


2018-05-24

日記

気温の上下が激しすぎて俺の体はもうだめだ。

先々週は急に寒くなって風邪引いた。寒くなるだけならたぶん大丈夫だったんだが、会社の中は容赦無く暑いので、外が11℃とかでも中に入ると28℃。コート着て来るようなのに、中はTシャツ1枚でも暑いとか完全に殺す気。

先週は風邪もやっと治ってきたところで普通に暑くなったので体調がずっとおかしいままで、週末に熱が出たんで寝てた。 あと歯がめちゃくちゃ痛くなったんだけど、一日である程度落ち着いたし、レントゲンでは特に問題ないというので(別の治療中の歯が終わるまで)しばらく様子見ということになった。 気温変化の体調不良で古傷が疼く的なやつだったかもしんない。

土曜は一日寝てて、日曜も起きたら午後だったけど、髪切りにだけ行ってきた。さすがにもう一週間ほっとくには長くなってたしなー。 だいたい良くなった気はしてるけど、ちょっと頭ぼーっとするところあるし、おなかの調子も微妙なんで万全とは言えないかもな。

[PeerCastStation] アップデータの作り直し

今のアップデートって、起動時にDLLをコピってメインのクラスを別AppDomainで起動し、アップデート時は元のDLLを上書きしたあとAppDomainをアンロードして新しいAppDomainを起動ということをやっていた。

これちょっといろいろ問題あって、AppDomain内でスレッドがまだ生きてるのにアンロードしようとすると文句言われたり、新しいAppDomain側でCtrl+Cをトラップするのが動かなかったり、デバッグもなんか怪しかったりと、あんま良い作りじゃなかった。

なんでこんなことしていたかというと、monoで新しいプロセスの起動が難しいと思っていたので同一プロセス内で処理しようとした結果だった。 monoで新しい.NETのプロセス起動しようとしたらmono newhoge.exeとか起動すれば良さそうに思えるが、元のプロセス起動したmonoがパス通ってるところにあるmonoとは限らないし、mono自体になんか引数指定していたかもしれないが、.NETのレベルからはmonoのコマンドラインは取れないのであった。/tmp/mono --mono-option newhoge.exe arg1 arg2とかやったら取れるのはnewhoge.exe arg1 arg2の部分だけ。/tmp/mono --mono-optionの方は取れないので、自分が起動しているmonoと同じmono同じ設定でサブプロセスを起動させるのは無理なのだ。

……と思い込んでいたんだが、実はProcess.Startで普通に起動できるのを知った。monoではProcess.Startで起動するファイルに.NETのアセンブリ(exe)を指定すると、勝手に自分と同じmonoに同じオプションを指定して新しいプロセスを起動してくれるのだった。だからProcess.Startにmonoコマンドを指定するんじゃなくて直接exeを指定すりゃ良かったのだ。なんだそれ知らんかったわ。 ちなみにこれはDuplicatiのソースを読んで知った。monoでアップデートどうやってんだべと読んでみたら普通にexe起動しててびびったんで、monoのソースを見てみたらそうなってたわけだ。

で、AppDomain別にするのはちょっとよろしくないし、プロセス分けるのが比較的簡単にできるのが分かったんでこの方向で作り直しましょうという話。

最初は起動プロセスにアップデート部分を埋め込もうとしたけど、アップデータは分けて、メインプロセスはアップデータを起動して死んで行き、アップデータはアップデートが終わったら新しいメインプロセスを起動して死んで行くことにした。よく考えたらこれ普通のインストーラと同じ動きだしこっちの方が良いでしょう。

作ってみると特に問題なく出来た……と思ったんだが、いざmonoで試すと落ちまくる。 普通にファイル置き換え自体がバグりまくってたのは仕方ないんで直したが1、新しいメインプロセス起動時に落ちてしまうのはどうしようもない。 新しいメインプロセスはCtrl+Cをトラップしようとして標準入力から読み込めねえよって落ちている。俺の書いたコード内で落ちてるわけじゃないから手が出ねえな。 てかなんで標準入力から読めない?

よく考えると、新しいプロセスが起動した時点で親のプロセスは死んでいってしまっている。親プロセス死んだところで共有されてる標準入出力が閉じられているのでは?と思ったが調べると標準入出力は常に使えるぽい。標準出力らしいのは出てるし。ただ親のプロセスが死ぬとシェルの子プロセスじゃなくてinit(macOSなんでinitじゃねえかもしれんが)の子に移動しちゃうぽい。で、シェルとの入出力の協調ができなくなると。そりゃそうだな。それでおかしくなっているのか。

なんとかできねえか調べてみるが、.NETではできなさげ。 親プロセスが死んでいきながら子プロセスをシェルにくっつけておきたいてのが無理筋で、やるなら親プロセスはforkせずにexecして新しいプロセスに成り代わるのが筋なのかな? ただ、.NETやmonoにはそんなexecのみするてな機能はない。monoで無理矢理システムコールのexec呼ぶのは出来そうだが、それやっても大変なことになるだけだし。 似たような機能としては新しいAppDomain作って、前のAppDomainをアンロードすればできるけど、それ最初にやってたやつだー。あんますっきりいかないやつだー。

そんなわけで仕方ないので子プロセスは常に待ち合わせることにしよう。 先に考えたように起動プロセスは死なずに、メインプロセスを別に起動し待ち合わせ、アップデートがあったらメインプロセス終了後にアップデータプロセスを起動してやっぱり待ち合わせ、アップデータ終了後はまた新しいメインプロセスを起動して待つ、という形にした。 起動中のファイルは上書きできないので2、起動プロセスはアップデートできないんだけど、それは元々そうだったから仕方ないかー。 アップデータは分離してるんで、やってることは薄いしたぶん大丈夫だろう。 アップデータ自体はコピーを起動してるので上書きできる。

まあ作り自体はそんな難しくはないから出来たけど、メインプロセスが別実行ファイルになったのはちょっと微妙だな。 あとサービス版の方も作り変えないと。

なんか結局AppDomain形式のアップデートとあんま変わりなくなってしまった。 スレッドきっちり終わってなくても終了させられるようになったのはいいけど本当にこれでいいんだろうか? AppDomain形式のアップデートをちゃんと作り直した方がいいかもしれない。

  1. これ前から入ってたコードなんだけど全然動いてねえじゃねえか。全く確認してなかったんか? 

  2. Windowsはもちろん、monoでも上書き/削除できないの。 


2018-05-07

日記

GWオワタ。長期休暇あんま好きじゃない。

前半は死んでたりM3行って有り金全部使ったり(と言っても2.3万だけだけど)、死んでたりしたくらい。

あとPCいじってたわ。ケースファンがうるさくなってきたので交換用のを買ったんだが、わざわざ140mmのを選んで買ったのに120mm用のネジ穴しかないとかいうクソ設計の欠陥品だったので、3000円程無駄になっただけだった。CRYORIGとかいうメーカーのは二度と買わん。 あとバックアップ用のHDDを交換してローカルのバックアップをCrashPlanからDuplicatiへ乗り換え。クラウドバックアップもやっとかないとなぁ。

5月2日だけ出社した。1日は強制有給になってるんで。俺以外みんな休みなんで静かで良い。 で、夜に夜行バスで帰省した。

後半は帰省してごろごろしてるだけで終わった。 何かしないとなぁと思っているうちに終わるより、もとより何もできないのを覚悟の上でごろごろしてる方が良いよね。 あと6日の終電で帰ってきた。前は夜でも駅のコンビニやってた覚えがあったんだが、今回はやってなくて謎だ。平日だと遅くまでやってたりする? でも前回平日だったかなぁ。

[PeerCastStation] リリースしたいが……

3月中にもうちょい直してリリースしたかったんだが、技術書典関連で忙しかったんで5月までずれこんでしまった……。

1日にある程度作業してリリースしちゃおうかと思ったんだが、どうも帰省直前にリリースしてなんかやべえの入っちゃうと帰省中の対応は(できなくはないが)めんどくさいなぁと思ってやめといた。急いでリリースしたい程の問題もなかったし。

一個小さいPull Requestが来てたんで、それ確認して入れたらリリースしちゃってもいいかな。

安定版はアップデート周りを直して問題なければリリースしたいけど、アップデート周りが結構しんどいんだよなぁ。今月中にできるだろうか。

他にNamed Pipe経由のRPC(というかIPC)を作っててなんとなく動くようになった。しかしPipeStreamはタイムアウト設定できねえからエラー出るところだけなんとかしねえとな。エミュレートするようにラッパー作るだけなんだが。

IPCの作業はGPD Pocketでやってるんだけど、電車の中でプログラム書くとめっちゃ捗る。しかし通勤は徒歩なんであんまり電車乗らないのだ。休日とか無駄に電車で大回りとかすると捗るかもしれん……。


2018-04-27 技術書典4にサークル参加してきた話

技術書典4に出た

技術書典4でサークル参加してきました。か05 あれくまでした。

計数

とりあえず先に数字だけ出しとくと、頒布数は

  • 手で書くMSBuild: 136部
  • ライブ配信のなかみ: 48部(完売ごめん)

でした。たぶん。それぞれ500円だったので92000円!?まじかー。

被チェック数は106。前回の倍くらい。捌けた数も予想の倍くらい。 新刊についていつも被チェック数×1.2~1.3くらいは出てたんで、そのパターンは今回も外れてない。 しかし既刊だけ欲しくてチェックしてくれた人もいくらかは居たと思うんだけど、意外と新刊も出たわな。

費用はざっくりだけど、

  • 印刷費: 50000円
  • 表紙絵依頼費: 40000円
  • 参加費: 7000円
  • InDesign利用料1ヶ月契約: 3000円

で合計10万円なので-8000円で済んだ!この費用は新刊分だけなんだけどさ。

新刊について

手で書くMSBuildとかいう、タイトルだけで正気かと度々言われるような本を出したんだけど、意外と欲しい人が居るんだわこれが。自分でも意外だわ。

プレビュー版見て楽しみにしてましたとか、これちょうど欲しかった、MSBuildのドキュメントもいまいちだし他に本無いしとかたまに言われるのが最高にうれしいよね。 ほんとそれな、ってやつ。

何部配ったかは正確に数えてなかったんだけど、新刊は167部箱に入ってて(150部刷って1割くらいおまけ分が付いてくる)、2部が見本誌と委託の見本用に出して、20部委託に出して、9部手元に残ったので、計算すると136部頒布したことになる。まじかよ。MSBuildだぜ?

見込み的には、前回プレビュー版を無料で押しつけまくって100~120くらいだったんで、完成版は60部かな~、でも上手くいけば80部くらい出るかもな~、という予測で行ったんだけど、新刊は見込みの倍も出て完全に外しました。参加人数が倍だと普通に倍出るんですね……。でも倍も来るとかわかんねーよ!

100部でも十分だろうけど委託とかちょっと欲しい人居るみたいだし、次回以降用に増刷したくないから在庫残しときたいし、なにより大して値段変わらんから150部刷っちゃお~、と大量に(半分くらい)持ち帰るつもりで刷ったのに、手元には9部しか残りませんでした。てかそれもおまけ分含めて9部なんで150じゃ足りてねえじゃん。なんてことだ。

てか在庫無くなっちゃったし、結局次出るなら増刷しないとだめじゃね?なんてことだ……。

まあでも完売にならなかったのは良かった。余ってもいいが完売だけは避けたかった。欲しい人に渡せないのはつらすぎる。 いやでも既刊は完売しちゃった。ごめんね……。

収支としては上にも書いた通り既刊と合わせて-8000円。 前回赤になった既刊分考えるともっといってるんだけど、それはもう過ぎたことなんで忘れようぜ! もともと5・6万円赤字のつもりで行ったので、実質すげえ黒字みたいなもん。-8000円だから実質黒字! 新刊の分だけ計算したら-32000円とか知らない!

どうせ買う人しか買わないし、欲しい人は値段見てないんだからもっと高くしようぜって散々言われたんだけど、収支がどうこうというよりこの本で1000円貰うのは申し訳なさすぎる。 ということで500円になってる。500円くらいが一番気楽で良い気がする。 前回プレビュー版を無料で配ってたら散々心配されたけど、500円ならそうも言われねえし、自分でも貰っても気兼ねなく受け取れる額だし。 まあ委託に出す時に500円て言ったら、え?安くないですか?って聞き直されたけど。

来れなかった人、買い逃した人は委託されてるんで通販をご検討ください。たぶん店頭にも出てるんじゃないかと。 あとダウンロード版も出てるんで物理の本がいらなければそちらもどうぞ。5月下旬くらいまでちょっと安くなってます。

既刊について

既刊のライブ配信のなかみは途中で完売してしまって、あとから来た人には行き渡らず申し訳ない気持ちでいっぱいです。

48部持っていって、途中で全部捌けてしまった。15時くらいだったかなぁ? あとから来た人にはそこのCOMIC ZINでも委託されてるよと言っといたんだけど、帰りに(M3のカタログ買いに)寄ったら影も形も無かったんでこちらも売り切れてしまった模様。 うーん、申し訳ない。少なくともちょっと前にはあったようなのは写真で見たので、うちのスペースに来て買えなかったひとがやっぱり寄ってくれたようだ。 通販はまだあったんでどうしても本欲しい人は通販をご検討くださいダウンロード版はGWいっぱい半額なんで物理の本がいらなければこの機会にもどうぞ

新刊は印刷所から直接搬入してもらったからいっぱい置けたんだけど、既刊は手で持ち込みで、リュックに50部くらい余裕で入るだろうと思ったら意外とかさばるし重いしで物理的に50部が持ち込める限界でした。48部なのは50部くらいと適当に手に取ったのが48部だったんでそれだけ。 結果的にはあと20部以上あってもよかったぽいけど、重くて持ち込めなかったんだ。家に在庫はまだまだあるんだけど。

もう3回目の頒布だしそこまで出ないだろうと思ったんだよ! でもシリーズ物とかでもないし、そんなにマニアックな本でも流れが速いジャンルでもないからいつまでも出るんだよなぁ。 次回以降あればなんらかの方法でたくさん持ち込めるようにします。 あの車輪付きのコロコロ引っぱるやつが必要だ。

技術書典4全体について

今回はめずらしく晴れたし、サークルも増えてるんで人多いだろうなぁとは思ったけど、まさか倍も来るとは思わなかった。

しかし晴れるかどうかなんて直前まで分かんねーし、ていうか雨降ると思ってたし、参加した中で晴れたこと無かったから、晴れたら参加者倍にもなるなんて分かんなかったし、いやほんと学びがありますな。 参加者倍になるって知ってても倍捌けると考えたかというとわからんが。

反省点としては入場できなかったこと。 10時40分までに入場しろって言われてたけど、3分程間に合わなかったので入場できず。11時まで待てな、って待たされてた。待たされる意味はよくわからんのだが。

人はめちゃくちゃ多かった。 入場制限がかかってるので一度に入ってくる人は波があって、めちゃくちゃ混んでるな→落ち着いてきたな→また波が来たなのくりかえしだったんだけど、前回までなら14時半くらいには落ち着いてきてた感じが、今回は16時くらいまでずっと混んでる感じだった。体感的には前回の15時くらいの混み具合が16時半までひっぱった感じ。 どうも昼くらいにはもう整理券4000とかなってたようで、15時過ぎだかにフリー入場になるまで、たぶん1~2時間待ちくらいにはなってたんじゃねえかな。 15時にやっと入場できたけどだいぶ完売してたわーなんとかしろよーって話をちらほら聞いた。

隣のサークルも15時ちょい過ぎに帰っちゃったし、見たら斜向いのサークルも居なくなってたし、15時に入れただとだいぶ厳しいだろうな。 しかし前回は15時だとだいぶ空いてる感じだったのに比べて今回は16時くらいまで人減らねえなという感じだった。それで15時に帰るのは早いんじゃねえかという気もするが、まあ遠方から来てる人も居るだろうし仕方ねえのかな。

もっとでかい会場でやれよというのはあって、前回から既に言われてると思うんだけど、ちょっと前にやってた連絡会というのに行ってもっとでかいとこでやらんの?と聞いたところ、でかい会場は1年以上前から予約取らないといけない、列を作る人手が用意できないので整理券配って散らせる場所が良いとかいうことでUDXになってるとのこと。 少なくとも今回(明言はしてなかったが次回も?)はそんなんでUDXという話だったけど、あんまり秋葉原以外でやる気も無さそうな雰囲気もあった。 主催もイベント慣れしてるわけでもでかくもないんで、ちょっと急激にでかくなりすぎてるぽいね。

てか会場がでかくなって人が一度にいっぱい入れたとしても、サークル側の持ち込む数が変わってなければすぐ完売することには変わりないんで、そっちはそっちでまた別な問題よな……。

今回はまた一人で参加したんで、スペースを離れられずに他所を買いに行くことはできなかった。16時半くらいに一瞬トイレ行ったくらい。 もともとすごい赤字な予定だったんで、資金的な余裕ねーわと思ってお手伝いしてくれる人探してなかった。 まあ今回人多かったんで、手伝ってくれる人居てもどっちにしろずっと居たかもしれん。 空いてきたの16時とかだから行ってもほとんど買えなかっただろうしな。

次回について

もう次回の話かよ。ていうか参加するかも含めて未定です。

書けるネタはいくつかあって、ご家庭のIPv6でP2Pがつながらない話か、fossilかというあたりが思いつくんだけど1、そもそも参加したいかが未定。 もちろん当落があるし、今回も倍率1.3倍だかで、次回はさらに倍率上がるんじゃねえかという気もするんで、出る気があっても出れない可能性も高いんだけどね。

単純に本よりプログラム書きたい。 本書くのはそれなりに大変で、どうしてもプログラム書いてる時間が減ってしまうのは結構痛い。 いや本書いてなかったらちゃんとプログラム書いてんのかよっていうと怪しくてただ遊んでたりごろごろしてるだけだったりもするんだが……。

まあ今はそう思ってるんだけど、またある程度したら書きたい気持ちになるかもしれないので、未定ということにしておきます。

技術書典には参加せずに適当に電子版をちょろっとDLsiteあたりに出すだけってのでもいいかもしれん。ぜんっぜん売れねえけど。

  1. IPv6でP2Pつながらない話の方が絶対人気は出るけど(内容そんなに書けねえけど)、書きたい気持ちはfossilの方が上かなぁ。 


2018-04-25

日記

技術書典終わった。 終わってみるとあっというまだったな。

技術書典4についていろいろ書いてるんだけど、うまくまとまらんのであらためて書く。 本書き終わったのにまた文章書いてんのかよ。

まただいぶあったかめになってきて体調が崩れかけている。気をつけたい。 てか鼻かゆいし、くしゃみも出るんだけどなんかの花粉なんだろうか。 軽いからべつにいいんだけど。

PeerCastStationのデバッグビルドの時だけ出る理不尽なバグは、単にスレッド間の競合だった。 immutableだと思ったデータを破壊的に変更してるところがあったので、コピーするようにしといた。 誰だよこんなクソな作りにしたやつ。俺だよ。

オブジェクトの無駄なコピーになるんでちょっとパフォーマンスへの影響が気になるところだけど、それはちゃんと測ってからね。 いろいろ計測したいんだけど、ツールの使い方が難しくてわからんのじゃよ……。


2018-04-17

日記

本はだいたい終わらせた。時間的にそりゃ終わってないとまずいんだけど。

入稿してから、1ページだけ枠とページ番号抜けてんでと連絡来たが向こうで直すこともできるというのでやってもらった。 1ページだけマスターページの設定がおかしかったようだ。ページ数あとから増やしたからマスターページ適用されてないページあったんだなぁ。 ちょっとだけ位置も違っちゃってるようなんで枠とページ番号だけじゃなさそうなんだが、微妙なところだし仕方ない。 InDesignは適用されてるマスターページが分かりづらいんだけど、なんか分かりやすくする方法あるんだろうか。

あとは電子版をせっせと作る。PDF版は表紙くっつけてダウンロードコード消すくらいで書き出せばいいだけなんで簡単。入稿もPDFだしね。

EPUB版がとてもめんどくさい。InDesignからEPUBを書き出すこともできるんだが、全く役に立たないひどいものが生成されて途方に暮れる。 固定レイアウトのEPUBも書き出せるんだが、Edgeだとなぜか文字が表示されない(埋め込みフォントかなんかの影響?)し、そもそも固定レイアウトだったらPDFでいいわ。 仕方ないので元のMarkdownからPandocで直接書き出す方がまともだった。CSSいくらかいじらないといけないが。

実際はMarkdownからPandocでDocBook5に書き出してそこからあらためてEPUB3に変換している。 ライブ配信のなかみで作ったフローなんで、なにか理由があってこうしてた気がするんだけどなんでだかは忘れてしまった。 なんかPandocのEPUB書き出しに不満があったんだろうけど。

しかし次からはRe:VIEWあたりで整備したいなぁ。もうそれ考えてから2回目なんだけども。

サイトも更新してダウンロード版はDLsiteに出そうとしたが、プレビュー版はかなり適当なこと書いてあったり説明不足もあったのが分かってるので、完成版から前半を抜粋したのに直したいなぁ……ということで実際にそうした。

EPUB版もなんとか出来たので予告だけでなく本申請もしといたが、ダウンロード版の販売開始は23日ね。22日にすると当日0時から販売開始されちゃってちょっとあれなんで。DLsiteは16時にも更新タイミングあるんだけど、そこ指定での販売開始できるといいのになぁ。

しかしEPUB版ちょっと修正したいところが。preの頭に改行入っちゃってるから、iBooksで見るとコードブロックの先頭に空行あるんだよね。でも他のリーダー(EdgeとかOpera)では問題無さげに見えて不思議。どっちの動作が正しいのか調べてみたが、iBooksの方が正しそうな雰囲気。じゃあ他はなんで大丈夫なんだろう……。

InDesignの契約は21日で切れるから、フォント使えるうちにお品書きも作らないとなぁ。

本がある程度落ち着いたので久々にPeerCastStationも書いた。なんかデバッグビルドの時だけ出る理不尽なバグに悩まされてるけどなんだろうか。

しかしやっぱ好きにプログラム書くと気分良くなるな。楽しい。


2018-04-09

日記

何もしていない。 暑くなったり寒く(というか平年並みに)なったりで体調が不安だ。悪くはなってないが。

本書いてはいるんだが、それしかやってないな。

明日夕方が締め切りなので、事実上今日いっぱいで上げないといけない。 テキストの読み直しが足りてないのが気になるが、もう仕方ねえかな。 レイアウトなんかは妥協した。

サイトを更新したりダウンロード版用意したりはしないといけないが、入稿したらとりあえずは一段落かな。 やっとプログラム書きに戻れる。


2018-04-03

日記

花粉と気温で死にそう。

気温変化で体調がおかしくなってるところに花粉が襲いかかってくるのでやべえ。 涼しく戻ってくれないだろうか。

GWの新幹線の事前受け付け始まってるの忘れてて、昼頃慌てて申し込んだけど案の定取れなかった。 一番安いのは事前で取れなかったが、それ以下の割引率のやつも見た時には全部売り切れてたのでおしめえだ。 普通に買ったら時期的にもめちゃくちゃ高いので夜行バスにするか……。 帰りの分は朝5時半に起きて申し込んだのできっと取れるはず。

本書くのをぼちぼち進めているがまだ終わってない。 表紙の絵を描いてもらったのはいいが、タイトルとか入ってないのでそこは自分でなんとかしないといけない。 ここに俺がタイトル入れるのはなかなか難しいところあるなと思っていたが、なんとかいい感じにできた気がするのでよかった。 土日いっぱいかかったけど。

しかし内容は完全に表紙負けだ。とはいえ今更どうしようもねえのでもう諦めてそのまま行こう。 まだ修正中だけどだいたい目処はたってるし、来週頭の入稿には間に合いそうだ。 ちょこちょこテキスト追加にはなっちゃってるけど表紙込みで80ページで良さそうかな。 もう2ページ減らすこともできそうだけど、頑張って詰め込むのもめんどくせえしな。

技術書典のサークルページはもう公開になってるんで、今週末までにはページも作って紹介とか書いておこう。


ページのトップへ | トップ | 追記 | kumaryu.net by kumaryu