C92おつかれさまでした

C92おつかれさまでした

した。 今回は頒布予定数30のうち、24部を頒布しました。 お手に取って頂いただき、ありがとうございました。

技術書同人誌の頒布形態

今回はconcaさんを利用してダウンロードコンテンツとしての提供も行うようにしました、 というのは告知のポストでも書いたとおりです。 この制作を通して、(技術書)同人誌のダウンロード版の提供というのは如何にあるべきかということを考えていました。 今のところ、”ダウンロード版は冊子の購入者に限定せず公開してしまってもいい”という考えになってきています。

個別のシリアルを用意して、ダウンロード版を購入者のみが得られる特典のような扱いにはせず、だれでも自由に見れるようにする。 冊子の形で頒布して、500円かそこらを受け取るというのは、あくまで冊子という媒体についている値段という形で見るわけです。

内容は広くみてもらった方がいい

内容そのものは、購入者に限らず誰かれを問わず、興味がある人なら自由に見れる方が良い、というのは技術書同人の島にいる人たちであれば理解してもらえると思います。 無料頒布にしたらどうだろうか、という点については、有料頒布することで多少なりともかかる参加費や印刷代などのコストを回収するという形になっているので、まあそこは許容してほしいところです。 そういえばたしか、投げ銭方式でやってるところとかもありましたね。

今後どうするか

いまのところですが次回以降はDropboxとかGoogle Driveなどにアップロードしたものをペーパーや奥付などに印刷する形がいいかなあと考えています。 冊子版についてはこれまでどおり有料頒布する感じです。 チラシはモノクロ印刷であれば大したコストにならないので、これならいままでどおりのコスト感でやっていけます。

チラシなどに印刷して、ダウンロード版だけの無料配付にしてみたら?というのも考えましたが、ハードコピーに対するニーズであるとか、制作者個人(自分ですね)のモノを作りたいというささやかな欲求であるとか、切り捨てなくてはいけないものもあるので、多分やらないと思います。 紙幅の都合(本が厚くなると印刷コストがあがる)などを全く考慮せずに済むようになるというのは利点なのですが。

C92

こっそりコミックマーケットC92 に出展します。 8月11日(金曜日=初日)東た04b サークル名「ちくわおでん」にてお待ちしております。 こんな感じの新刊が出る予定となっています。

f:id:kandayasu:20170802020110p:plain

表紙カラー・本文モノクロ・36P(表紙含む)、そして今回は新刊と既刊のいくつかをEPUB・PDFといった電子書籍データとしたものをダウンロードできるシリアル付きカードのセットとなっています。 もう一度いいますが、基本的にセットでの提供となります。 頒布価格は未定ですが1000JPYを下るものと思います。 もしかしたらいつもより若干割高になるかもしれませんし、そうでないかもしれません。 まだ決めてません。

技術書同人誌界隈の末席を占める身分として、電子書籍、いわゆる PDF や EPUB といったフォーマットでの頒布をやってみたいとつねづね思っていました。 そこで今回は、かねてから検討していた conca さんというサービスを使い、インターネット経由でダウンロード可能なデジタルデータをハードコピー(をダウンロードするためのシリアルカード)と共に頒布しようと計画しています。

あんまりというかほぼ全くコードが出てきません。 ほぼ conca さんの使用レポートみたいな感じになっていて、あとは作ってみての雑感などを交えた内容となっています。

コードが出てこないのはサークルのテーマにもとるかもしれませんが、 これはこれでなかなか細かい知見が見出される部分があったり、考えさせられるところもあったりしました。 もしかしたら、EPUBのフォーマットや生成アプリケーションを書いてみたり、配信システムを自分で設計・実装してみたりなどといった感じで、 テーマを発展させてやっていくかもしれません。

それはともかくとして、当日はぜひお越しいただければと思います。

広告を非表示にする

c91とか年が明けた話とか

おくればせながらあけましておめでとうございます 今年もよろしくお願いいたします 今日知ったのですが年賀のあいさつ(というにはいささか遅いですが)は句読点を使わずに書くと良いそうです 曰くおめでたい感じを区切ることのないようにとのことです

こうやって書いてみたもののめちゃくちゃ書きづらい。 普段いかに句読点を無意識に使いこなしているのかが分かります。

C91

去る2016年12月29日、サークル「ちくわおでん」としてコミックマーケットC91にサークルとして参加してきました。 新刊「実践みんなのGo言語」と既刊を少し持ち込みまして、新刊の方は無事にすべてハケることができました。 お手にとって下さった皆さん、ありがとうございました。 ちなみにこんな本です。 中身は「みんなのGo言語」を読んで、その内容にもとづいて手前のプロダクトを改修してみようというものです。

f:id:kandayasu:20170105023914p:plain

ちなみに題材とした既存のプログラムというのがこちら。 (このポストを書いている時点では、まだちゃんと改修したコードをコミットできていません、ごめんなさい)

2017/01/09 追記 改修したコードをGitHubに反映しました

GitHub - ykanda/fod: fod (file open dialog)

こちらのエントリでも紹介しています。

CLIでファイルとかディレクトリを選択するツールを Go で書いた - kandayasu

ところで今回のサークル、配置が西館の角にあって全開シャッター * 2 が正面と右側面にあって、やたら寒かったです。 途中、体を動かして少しでも温めようと椅子から立ったり座ったりする変なオッサンになってました。

あと既刊を一部パクられました。 見本なのでよかったら見てね(意訳)って手に取らせたらそのままどっか行かれてしまいました。 見本って言われたからって普通持って行かないですよね?無料なら無料頒布って書くよね?

テクブの人が絨毯爆撃してました。 技術書典盛り上がるといいですね。 黄色い服をお召になってたのがわかめ氏?(間違ってたらごめんなさい)

2017年もよろしくお願いいたします。

CLIでファイルとかディレクトリを選択するツールを Go で書いた

fod というツールを Go で書いてみました。 ちみちみと書いてきて、思いの外の苦労もありましたが、コンセプトを示しつつそこそこドッグフーディング的に使えるようになってきた気がするので、GitHub で公開しました。 インストール方法やリファレンス的な事は GitHub ページの README をご覧ください。このポストでは、READMEには書かなかった補足的な雑文を書いてみようと思います。

github.com

何奴?

GUIで良くある「ファイルを開く」ダイアログみたいなことをCLIでやります。 対話的にディレクトリやファイルを選択して、そのパスを標準出力に送ります。 このツール単体では特別な意味はほとんどありません。ls や cd、rm といった、ディレクトリやファイルのパスを引数にとるコマンドと組み合わせて使うことを想定しています。 もしかしたら同じことをするアプリがありそうですが、もしご存知の方がいらっしゃいましたら、@kandayasu までお知らせ下さい。

mv $(fod)

どこかで見た気がするのですが、パーソナルコンピューティングでは、ディレクトリの移動やファイルの検索(アプリケーション的な意味ではなくて、人間が行う動作として)が操作時間の7割を占めるとか。つまり、ファイルやディレクトリの選択を効率よく、かつミスなく行えるようにすることは作業効率の向上に寄与します。 実際に、これらの操作を素早く行うためのツールやUIというのは、実に多様な手法とアプリケーションが存在しています。

なぜ作った?

たとえば、peco/peco とか junegunn/fzf というツールがあります。 fod もこれらとノリが近いと思うのですが、これらはフィルタであったりファインダと銘うたれていています。 fod はこれらと違い、File Open Dialog の名が示すとおり「ファイルを開く」ダイアログの挙動をCLIに逆輸入(?)することを目的としました。

逆に、選択する以外のことは一切行わないのがコンセプトのようなものになっています。 細かくいうと、一つのことを上手くやる小さいアプリケーションとして機能する、他のツールとの柔軟な連携を可能とする、複雑すぎる設定やオプションの指定をできるだけ省く、などといったところです。

おまちしております

もし興味があって使ってみてくださるという方は、ぜひ感想などをお寄せ下さい。 PR もどうぞ。

rthornton128/goncurses をインストールしようとして苦労した話

Abstract

表題のとおり、Go 言語で ncurses バインディングであるところの rthrnton128/goncurses を使おうとしてインストールに苦労した話し。 最後には(肯定的な理由で)nsf/termbox-go を使う事にしたのですが、ネタとして供養したいので書いてみます。

goncurses がインストールできない

環境は OS X + Homebew 0.9.5 + Go 1.4.2 です。 goncurses のインストールのためには、まず ncurses と、pkg-config をインストールする必要があるっぽい。 というわけでインストールします。

$ brew install ncurses pkg-config
...

続いて gonucurses をインストールしようとするも、これが通りません。 pkg-config でなんだかかんだか言われているみたいです。

$ go get github.com/rthornton128/goncurses
...
# pkg-config --cflags ncurses form menu ncurses ncurses panel
Package ncurses was not found in the pkg-config search path.
Perhaps you should add the directory containing `ncurses.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ncurses' found
...

どうやら goncurses が想定している ncurses のインストール後の状態と、Homebrew によって作られた ncurses インストール後の状態がうまくかみ合わないみたいです。 具体的には goncurses が参照する pkg-config の .pc ファイルに相当するものが、Homebrew からは作られないみたいです。

Homebrew ncurses の .pc ファイルとして次のようなものを生成します。 見た感じ、w とプリフィックスされていて、マルチバイト対応されたバージョンをインストールしているのでしょうか? goncurses は w プリフィクス付きでないものを想定しているようで、ここで食い違いが発生しています。

  • /usr/local/opt/ncurses/lib/pkgconfig/formw.pc
  • /usr/local/opt/ncurses/lib/pkgconfig/menuw.pc
  • /usr/local/opt/ncurses/lib/pkgconfig/ncurses++w.pc
  • /usr/local/opt/ncurses/lib/pkgconfig/ncursesw.pc
  • /usr/local/opt/ncurses/lib/pkgconfig/panelw.pc

解決策として

作っていたプログラムのリポジトリに、goncurses に対応するための .pc ファイルを用意しました。 用意したファイルは次のとおりです。

pkg-config がこれを参照できるように、環境変数 PKG_CONFIG_PATH を設定します。 シェルの設定ファイルに、こんな感じで追加することにしました。

export PKG_CONFIG_PATH=path/to/repo/pkg-config-files:$PKG_CONFIG_PATH

これで元の goncurses にむやみに手をいれたり、Homebrew の中身を荒らす事無く goncurses がインストールできるようになりました。 この対応を行うにあたり、次の記事が参考になりました(というかほぼそのままです)

なぜ nsf/termbox-go に乗り換えたの?

まず一つに、こんなことがあったので ncurses に依存するのは筋が悪いかなと思い、Pure Go termbox implementation をうたっている termbox-go を選びました。 移植性に優れるという Go の良さをスポイルする選択はしたくないよな、というところです。

二つ目に、作りたいツールが比較的シンプルなコンセプトだったというものがあります。 そもそも両者の目指す方向性は異なるのでしょうが、ncurses とくらべて termbox は良く言えばシンプル、悪く言えば貧弱な印象があります。 しかし、貧弱といえども、作りたいものに合うプリミティブさを持ったライブラリを選択するのが良いと考えた結果となります。

C88にいってきたのん

リピートはみてません

C88三日目にサークル参加してまいりました。 新刊20部弱程度の頒布予定数でしたが、無事全てハケました。 ありがとうございました。 How To Implement Extend Squirrel Interpreterはまたもや頒布しきれませんでした。

遅刻

起床したら8時・・・サークル入場締め切りが9時なので遅刻確定。 とりま会場に向かい、着いたのは9時をやや過ぎたくらい。

ダメもとでサークル入場入り口まで行ったらそのまま並ばされて、開催時刻と同時に入場。 つまり、一般入場の先頭グループと同程度の扱いという事になります。 「次はちゃんと来てね」ぐらいの注意がスタッフから降ってきました。 申し訳ない。

いやーこんな仕組みになってるんですね。アピールとか申込書セットみてもそれと思しき記載が見つけられなかったので、正直焦りました。 そこから参加受付、見本誌提出なんかやるわけですが、焦りからか見本誌票を表紙1に貼り付けてしまい、ここでも注意をうける。 表紙2か表紙4に貼れとのこと。 申し訳ない。

無事10時30分くらいには出展準備が整ってあとはいつも通りです。 そんなこんなで、今回はいろいろ無様で全方位的に迷惑をかけまくってしまい、なんとも反省の絶えないコミケとなりました。

C89

C89も申し込みをしていますが、これでやっと状況が落ち着いた感じです。 夏から冬はスケジュール的に辛みがあるけど、冬の方が気候的にラクなんで今度は冬に行きたいですね。

C88

C88参加します。 日曜日東O49b、サークル名「ちくわおでん」にてお待ちしております。 ちくわ成分だけを残して前回からサークル名変えておりますのでよろしくお願いいたします。

コミケはC87は当選しなかったので、C86以来の参加です。 ものっそい汗っかきなので、できれば冬の当選がよかったけれどもなぜ夏当選が連続するんじゃい!

新刊情報

f:id:kandayasu:20150804034003p:plain

  • Goでラーメン二郎WEB APIサーバ
  • B5版
  • 表紙カラー, 本文モノクロ
  • 36P(本文 + 表紙)
  • 頒布価格 500JPY

Go初心者のおれがGoで簡単なWebAPIサーバを作ってみようという内容になります。 二郎とうたっておきながら二郎成分はほぼ表紙のみという表紙詐欺っぽさがウリの一冊です。

これにあわせてC86で頒布しきれなかった既刊のHow To Implement Extend Squirrel Interpreter も小々持ち込む予定です。

広告を非表示にする