パスワードを忘れた? アカウント作成

m_nukazawaさんのトモダチの日記みんなの日記も見てね。 Idle.srad.jpは、あなたの人生において完全な時間の浪費です。見るなよ、見るなよ。

13754895 journal
日記

m_nukazawaの日記: 坂崎嘉穂の名前

日記 by m_nukazawa

XP時代にMicrosoft IMEの変換候補で1番に出てきて、いかにも坂崎嘉穂らしい名前だなと思っていた。
(コンピュータとのちょっとした親和性というか。統計的な処理により現状そうなっているだけだけれど、そういう特別な理由でないことも含めて。)

今日、UbuntuでGoogle IMEで姓名それぞれ個別に変換入力してから、スペルを調べ直してみたら、Google IMEでも合っている。
マイナ作品のキャラクタ名がIMEの統計情報に影響を与えているとは思えないので、どうやら昔からこの氏名の出現率は変わっていないらしい。

なんだか懐かしいような、そうでないような気持ちが、ちょっとだけ。

13743730 journal
日記

m_nukazawaの日記: マザーボードを買い換えなければならない、という文句は筋違いなのでは 8

日記 by m_nukazawa

TL;DR;
実は私たちはCPUではなくバスを買っている。

- ここ10年ほどCPUはそれほど早くなっていない。
- 一方で記憶装置は高速化した。(ex. HDD->SSD)
- CPUは記憶装置との接続に「バス」を用いる。古いCPUはバスが遅い。
- 新しいCPUは、古いCPUより早いバスで記憶装置から巨大なデータを高速に読むことができるため処理が早く終わる。
- 私たちが新しいCPUに買い換える時、実はCPUを交換しているのではなく、バスの高速化にお金を出している。

// 『私はAMD派だけれど、Intel CPUに対して毎回マザーボードを買い換えなければならない、という文句は筋違いなのでは』
...という話を以前友人としていて思いつき、文章に起こそうと思ったのだけれど上手く行かなくて寝かせている。
なお私は価格を理由にAMDユーザです。

13720964 journal
日記

m_nukazawaの日記: 技術書典5にクロスプラットフォームな本で出ます (原稿一部公開)

日記 by m_nukazawa

技術書典5は 2018/10/08 (月) 開催です。興味がある方はもうそろそろ予定を空けておきましょうということで。

技術書典5に「クロスプラットフォーム・デスクトップアプリケーション・フレームワーク・クロスレビュー本(仮)」で出ます。
GTK,Qt,Electron本です。興味があればどうぞ。
https://techbookfest.org/event/tbf05/circle/29300002

本書、原稿の草稿を書き上がり次第公開というのをtwitter上でやっていました。宣伝目的半分であわよくば指摘等反応が欲しかったわけなのですが、執筆の折り返しあたりで草稿が箇条書き以下の虫食い状態になってしまい、それがいつのまにか入稿原稿に化けて、草稿公開のタイミングが失われてしまいました。
で、もう草稿ではなく入稿原稿なのだけれど、あの話やこの情報はWebに公開しておきたいという気持ちがあるため、ここでは「はじめに」章を公開する次第です。
今まで草稿は自分のブログで公開していたのですが、(自分の中での)使い分け的に本章はスラドの日記に貼り付けるのが適当だと考えた次第。

というわけで以下、印刷原稿より「はじめに」章。

# はじめに
今や私は、GTKのことをそれほど愛していないと思う。
yatteiki.fmに影響されて技術書典にエントリしたくなり、本を書くためにテーマを考えた。本書はテーマ未定でスタートした。
今をきらめく機械学習について書くことができたらどんなによかったかと思う。売り上げとキャリアを考えるならば間違いなくその方が良い。だが現在取り組んでいる課題『任意のキャラクタ画像を鳩羽つぐへ変換する』はまだ成功していないし、書く価値のある有意な知見をまだ得られていない。筆者は情けないことに金欠で、両親にせがんで得た貴重なAWSレンタル料は今のところ、西荻窪人のイデアをサルベージすることに失敗しGPUサーバとオレゴン州を少し温めただけに終わっている。
私が技術同人誌として書けるテーマは何だろうと考えた時、GTKとの出会いをきっかけに始まる、クロスプラットフォーム・デスクトップアプリケーション・フレームワークを使ったアプリケーション開発経験に思い至った。
本書がGTKだけでなくQt,Electronを扱う最大の理由は、預金通帳を見て印刷代を回収しなければと痛感したからだ。
今や死に体のGTKについてただ書いても需要がないことは明らかだ。デスクトップアプリケーション全体が下火であることに変わりはないが、今を輝くElectronを話に混ぜておけば少しは売上もマシになるだろうと考えた。
しかしそんなことより私にとって何より憂鬱だったのは『クロスプラットフォーム・デスクトップアプリケーション・フレームワーク』というムヤミに長い題材名を、どうやって表紙デザインに押し込んだものかというレイアウト上の問題だった。
それにテーマを広げると書かなければならない文章量が増える。

「デスクトップアプリケーションは死んだ」というのは、もう10年も前にジョエル・スポルスキが書いて終わった話だ。キャッシュフローと主戦場はAjaxなWebサービスに移り、今はSPAとモバイルアプリケーションが主役の座を争っている。アルミ削り出しのクールなMacBookはちかごろの若者の目にはオッサンがみんな持っているダサい仕事道具に映ると言う。パソコンなんて重くて不格好なものは変人のギークだけが持つアイテムに回帰していくのだと語る人もいる。

ではなぜ今さらデスクトップアプリケーションについて書くのか。
タイトルが長いと文句を言いながら、『クロスプラットフォーム』の単語を削ろうとしないのは何故なのか。

デスクトップアプリケーションについて書くのは、単にそれが個人的な憧れとノスタルジーの対象だからだ。他の何者でもなく、Joel on Softwareが私をソフトウェア開発者にしてくれた。大学の図書館で、メモリを128MB乗せた小さなIBM Thinkpadの狭く荒い画面でWebを開き、トラックポイントを指で押さえながら何度も読み返した小気味良いJoelの語りを、今でも懐かしく思い出す。これから自分が大人になってどんな仕事をするのか、どのように仕事を進めるべきかを、あのブログ翻訳が教えてくれた。

クロスプラットフォームの題目を削らないのも同じような理由だ。ただしこれは、本当には私の望みではなかった。
Windows陣営の勝利が盤石となった時代に、オペレーティング・システムが普及するか否かを決めるのはプラットフォーム自体の良し悪しではなく、擁するアプリケーションの豊かさであることが判明した。クロスプラットフォーム・デスクトップアプリケーション・フレームワークは、Windowsが持つ豊かなデスクトップアプリケーション資産に対する、UNIXデスクトップ界隈の憧れを背負っていたと、私は勝手に思っている。
かつての私もまた、フリーソフトとオープンソースのアジに乗せられてWintel連合崩壊の日を夢見る愚かで若く感化されやすいコンピュータ・サイエンス学科生だった。いずれつまらない職業プログラマになってつまらないプロプライエタリ・ソフトウェア開発をする未来が来ることを予感していたが、LinuxデスクトップアプリケーションOSSを書く自由ソフトウェア戦士に憧れていた。

本書はもしかすると、輝かしい過去の巨大IT産業文明が後方互換性という汚染物質を撒き散らしながら崩壊した後に墓所として建立された、というのはどうだろう。
Wintel連合とUNIX戦争がソフトウェア業界という大地につけた深い傷を癒やすためにgoogleという攻撃的な生態系が生まれ、開発者がゆるやかな世代交代を終えた時、Microsoftはデベロッパーフレンドリーなプラットフォーム・ベンダに生まれ変わり、ウォーターフォールを知らずアジャイルプロセスとCIテストによる穏やかな開発だけを楽しむ新たな開発者たちで地上は満ちる。
本書に書かれている文字を読み未来へ伝えるのだ開発者たちよ、ここには旧世代の知恵が書かれている。いつなのかは言えぬ、だがいずれ闇は終わり輝かしい新時代がやってくる。本書はそのために必要な知識を胎内に宿している。
閑話休題。最近ナウシカ読み返したんですよ。

墓という比喩はあながち間違いでもない。デスクトップアプリケーションを書き続けたいと望んでいても、さすがにそろそろ周回遅れでもいいから機械学習に本腰を入れろという無言の空気を感じる。(ところで機械学習に必要なAWS代はその空気ではなく両親が出している)

本書を書きながら私は、まるで別れをテーマにしたつまらないフランス映画を見ている気持ちに襲われた。冒頭のシーン、別れの手紙を書きながら男は色あせた過去の日々を思い出す。当時顔を真っ赤にして怒った彼女の悪ふざけも、今にして思えば俺は心の何処かで楽しんでいた、といった風に。
しかし別れの手紙にしては、本書は丁寧さに欠けると言わざるを得ない。
私はソフトウェアドキュメント中のソースコードはすべてユニットテストされているべきだという意見に賛成だが、本書ではソースコードの検証をしていない。人の記憶は信用ならないものだが、出典確認もほとんど出来ていない。昔はてなブックマーク経由で読んだ記事をソースに書いてみたものの、同じ記事を再び見つけることができなかったという箇所がままある。本書はポエムおよびエッセイを自称しているのだけれど、「要出典」でページが埋まってしまわないための言い訳としての要素が大きい。

そもそも本書、書いてもわりと良いことがないのだ。テーマに対する網羅性と正確性に欠けることが明らかになるだけだ。テーマに対する熱意不足が端々で漏れ出ている。印刷費回収のメドは最初から無い。間違いに対してマサカリすら飛んでこないマイナジャンルの悲しみを身に沁みて感じる羽目にもなるだろう。機械学習の本を書いて出せば箔が付いて良いのかもしれないが、GTKについて書くことは、預金通帳と今後の人生に対して良いことが何もない。
趣味というのは心,身体,生活すべてにおいて良くないものだと書いたのは森博嗣だったか。
AWS代を出してくれた親のことと自分の将来のことを考えるならば、技術書典5のサークル当選をブッチして今すぐ全力で給料の上がる転職先を探すべきだ。今の職場、わりと居心地良いから好きなのだが。日頃両親には感謝していると言っておきながら、2ヶ月かけて本書を書くのはとんでもない親不孝だ。

それでも、本書を書きたいと思った。

インターネットには特定のテクノロジに対する入門記事が乱立している。入門記事に価値がないわけでないのだけれど、クイックスタートとAPIリファレンスマニュアルだけでは、私のような未熟者にExcelのような本物のソフトウェア製品を開発することはできない。
そのテクノロジを使って本物のソフトウェアを開発した開発者の知見が必要だ。Joel on Softwareは私が求めたものを浴びせるように与えて私をソフトウェア業界へ導いてくれたが、Joelがブログから去った後、私は新たな師を見つけることが出来なかった。今日もはてなブックマークをリロードして空振りに嘆息する毎日を送っている(はてブにそれを求めるのは間違っておりせめてhacker newsを読め、という指摘は正しい)。

ところで、私には信じる神様が3柱居る。その内の一人はこう言った。
『無いんだったら、作ればいいのよ』[^haruhi]

[^haruhi]: 『涼宮ハルヒの憂鬱』(著:谷川流)より

Joel on Softwareには「ロード・パーマストン問題」という記事もある。その中に、Webサーバ言語を選定するとき候補となるPHP,Java,ASPのすべてを熟知した人間はいない、なぜなら本物のソフトウェアを開発した数年の経験が必要だからだ、という話が出てくる。
私の開発経験は人気とは決して言えないフリーソフトウェアで、複数人による大規模商用ソフトウェア製品ではない。経験年数も十分長いとは言えないかもしれない。
しかし、GTK,Qt,Electronで、実用アプリケーションを実際に書いたことがある開発者はそれほどいない。
たぶん。
もしかしたら結構居るのかもしれない。どうだろう。
しかしデスクトップアプリケーションというジャンル自体が下火な2018年現在、クロスプラットフォーム・デスクトップアプリケーション・フレームワークをテーマに本を書く行為は正気とは言えない。特にGTK。
筆者本人が情熱喪失をどれだけ強調したとしても、このテーマに情熱を注ぎ本を書くことにスノッブは今や他に誰もいない。

というわけで本書は、神の言葉に従い、いつか夢見た希望あふれる未来への墓標として、だが確かに本物の実用クロスプラットフォーム・デスクトップアプリケーション開発を経験した技術者により、GTK,Qt,Electronを渡り歩いて得た知見を惜しげもなく織り込み書かれた。
2018年現在、クロスプラットフォーム・デスクトップアプリケーション・フレームワークというテーマで書かれ、手に入れられる中で最良の本が本書であることを、ここに約束する。

Written: Michinari Nukazawa @ project daisy bell (2018)

13673960 journal
日記

m_nukazawaの日記: P10LiteにAndroid8.0が降ってくるらしい 3

日記 by m_nukazawa

huaweiのP10Lite、今日来たアップデートをダウンロード中なのだけれど、説明によるとAndroidが7から8.0へアップデートされるらしい。
一般論としてソフトウェアアップデートが良い結果をもたらすとも限らないのだけれど、安価な端末なのであまり期待していなかったし、正直嬉しい。

13671925 journal
日記

m_nukazawaの日記: サマータイム関連

日記 by m_nukazawa

サマータイム導入騒動を背景に、時刻データ取扱についての知見がQiita等へUpされているようす。
不謹慎(?)かもしれないけれど、個人的には、そういった知見の話は大好物なので嬉しい。

13602491 journal
日記

m_nukazawaの日記: 1050TiでMUNITが動かない

日記 by m_nukazawa

機械学習をやっていこうということで、次はMUNITを動かしてみようと思って学習を実行したところ、メモリ不足エラーで落ちる。
NVIDIAの本家MUNITがそんな調子だったので、外部のMUNIT-tensorflow実装を試したのだけれど、こちらも同じ理由で落ちる。
アルゴリズムは同じはずだから、まあ同じメモリ量を要求するのは当然といえば当然なのだけれど。

1070くらいなら無理すれば買えるかと思っているのだけれど、GitHubのissueによると、GPUメモリが11GBあっても落ちるという報告がある。
(参考:1070/1080は8GB、TitanXは12GB搭載)
https://github.com/NVlabs/MUNIT/issues/15

なので(その報告者については)ライブラリバージョンでバグを踏んでいるとかなのではないかという線も疑いつつ、1070購入しても動くとは限らないと思うと足踏みする次第。
誰か、MUNIT動かしたことがあったら環境を教えてください。
(あと学習にかけてみた時間と効果の所感も。)

AWS使おうかな、と思っているところ。でもAWSは最小構成が12GBからだから、1070で動かせるかどうかの確認には使えない。

と、ここまで書いてから気分転換に出かけてみたところ、とりあえずCPU版を試す(本当にGPUメモリが問題か、CUDAより手前のライブラリバージョン等が切り分けできる)という手を思いついた。
やってみると、メモリ食いではあるけれど、MUNIT-tensorflowの動作確認はとれた。本家MUNITも試してみるつもり。

// 手習いに画像生成系のモデルは重すぎるというのには同意。でも楽しそうだし。

13585857 journal
日記

m_nukazawaの日記: qiitaに投稿してみた/バージョン管理のモチベーション

日記 by m_nukazawa

git、というか最新のバージョン管理を使うモチベーションの話です。
3人のgit初心者 - The git beginners of three -

技術文章というよりは小説のような気もしますが。
qiitaへのポエム投稿が流行した(?)のは、もう1年以上前の話だとも思います。
たぶんその頃に(それとはまったく無関係に)書いた文章が、ファイルの整理の際に見つかり、読んでみるとまあまあ良かったので、そのまま投げました。

書いている途中で放置したものなので、諸々不満や不足があると思って公開していなかった文章です。実際、書きかけの断片がテキストファイルの末尾に付いていて、本文中に挿入されるのを待っていました。しかし、話題を網羅しようとすれば、いつまで経っても書き終わらないので、リリースしてしまうことにしました。

13581230 journal
日記

m_nukazawaの日記: 技術書典4 1

日記 by m_nukazawa

行ってきた。
事前に、スマホによる専用の決済アプリ(後日決済)があるとのことで導入。PayPalからの引き出しどうしようと思っていたのでちょうどよかったのもある。

今回は頼まれものもあったので午前中に出発。

整理券の列に並んでいる途中で会場の拍手が始まる。

整理券と、あと手の甲に見えないスタンプなるものを押された。
結局、この見えないスタンプを何に使ったのかは不明。

入場券の整理番号は11xx番で、これは「~1100」までは早かったのだけれど、その後はしばらくかかって。(そうは言っても午前中に入れた)

混んではいるものの、コミケットと違って会場は見て回れる規模なので、今回もそうした。
全冊把握できるわけでないのもあって、サークル一覧をチラッと確認した程度だったのだけれど、目的のサークルがきちんと見つけられてよかった。

頼まれものは午前中に間に合わなかったそうで、お昼を食べて再入場して確保。
(会場でまごついて『「全部二部ください」で済ませるはずだったんですけど...』とか言い訳言っていたのはわたしです。はい。)

あと狙っていた別の本は頒布終了してた。(電子版が出るとのことなので確保予定)

前回は2~3冊くらいしか確保しなかったのだけれど、今回はけっこう行った。
出典されている同人誌の傾向によるのかそれとも自分の嗜好が変わったのかはちょっと不明。
// 思いがけず「ことのは」を扱った同人誌があったので中身も見ずに「これください」と言ってしまい、それで弾みがついてしまった説がある。

/*
ところで、会場を後にして、秋葉原をぶらついていたとき、いつも怪しい(?)イベントをやっているビルで技術同人誌のイベントをやっていたのだけれど、あれはもしかしてtwitter上で発案された際に一瞬だけちょっとざわついていたあのあれなのだろうか。
(そこでは何も買わなかったけれど、以前に別の場所で確保した、わりとしっかりした内容でけっこう良かった同人誌が、そこで頒布されていた)
*/

13574528 journal
日記

m_nukazawaの日記: Adobe flashを覚えていますか? 3

日記 by m_nukazawa

Flashなんて過去の遺産、覚えているのは人はスラドにもう私くらいしか残っていないと思いますが...。

ちょっと、安いフォトブックの印刷会社の発注(前の編集)ページがAdobe flashだったので、「まだ生きていたのかflash!」と思いながら、Ubuntu18.04 alphaにflashを突っ込むことに。
// 結局flash版はきちんと動かなくて使い物にならず、後にスマホアプリ版があることが判明し、そちらで発注した。

Ubuntuを使い始めた頃は、Webであれこれするのに、というかニコニコ動画で流星群とかを見るのにFlashが必須で、インストールの方法もいろいろ面倒でけっこう失敗して試行錯誤した記憶がある。

そして現代。Ubuntu18.04ではパッケージを入れるとパートナーリポジトリからFlashのバイナリが落ちてくる形式だけれど、aptで一発でインストールされる。
Flashインストールはとても気軽になったようなのだけれど、(ニコニコとか見に行かないし、YouTubeはFlash不要だし)私の暮らしではインストールされていないことにすら気づかなくなっていて、時代は変わったというか、インストーラが進歩していても今更というか。

はい。

13571834 journal
日記

m_nukazawaの日記: daisy_sequenceでPlantUML書き出しに対応した

日記 by m_nukazawa

しました。

https://github.com/MichinariNukazawa/daisy_sequence
daisy_sequence は内部的にAlt/LoopどころかこれらとMemoも区別していないので、書き出しの際はFragmentのタイトルで種類を判定し、範囲で含むMessageを判定してPlantUML側ではタグで囲む、といった処理をしています。

その他技術的な詳細はこれからドキュメントの前作業としてブログ記事に書くつもり。
最初に備忘録として時系列を書き下ろしました。
http://blog.michinari-nukazawa.com/2018/04/daisysequence.html

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...