読者です 読者をやめる 読者になる 読者になる

2017年4月14日

3日前ぐらいからつくってるスライドツールちょっと進めた。

image

image

image

image

image

image

image

image

image

gif

広告を非表示にする

2017年4月13日

スライド作成ツールづくりを少しずつやっていってる。

f:id:r7kamura:20170413071432p:plain

f:id:r7kamura:20170413071442p:plain

f:id:r7kamura:20170413071450p:plain

広告を非表示にする

2017年4月9日

ぐったり

今週末はどうも調子が出ずに何もせずにぐったりしてしまった。あんまり自炊せず、漫画読んで、Electron でちょっとアプリつくったりしてた。休日とは、本来こういうものではないだろうか…。よく考えたら Electron でちょっとアプリつくってるので進捗してる。

Electron

Markdown からスライドをつくるありがちなやつを Electron でつくってみている。Electron アプリを試すのは 1 年半ぶり 3 回目。以前に Twitter クライアントとエディタを試作している。どちらもプロトタイプ止まりで、きちんとしたアプリとして世に送り出すレベルまで持っていったことはない。

Markdown を投稿してスライドとして描画するスライドホスティングサイトをつくって、本来はそこで動かそうという理想があるんだけど、最終的には Electron で動くデスクトップアプリとして切り出したものもあると嬉しいはずなので、まず Electron 版からつくっているという具合。Renderer Process ──アプリケーションのメインプロセスとは別に、画面を構築する index.html とそこから読み込まれる JavaScriptCSS などの一連の表示を担当してくれるプロセス── は Web ブラウザでも普通に動くようにつくってあるので、ファイル読込とかその辺を実装するときにきちんと考えていれば、Web ブラウザへの移植に際して特に困ることは無いと思う。

こういう類の、発想自体は凡庸で誰でも思い付けるような種類のアプリケーションあるいはサービスは、着想そのものよりもアプリケーション自体の完成度やエコシステム、一貫した思想、センスみたいなものが特に強く問われる。真っ向勝負で力を示す必要があってたいへん難しい一方で、自分の力量に嘘を付けないという点で清々しくて、楽しい気持ちも大きい。スポーツのような感じ。

Flux

Flux や Electron についておさらいする意味で、プロジェクトの README に簡単に図を書きながら開発を進めている (重要な部分について図を書きながら進めるというのはいつものことだけど)。折角なので貼り付けておくので、良かったら何かの参考にどうぞ。

f:id:r7kamura:20170410044544p:plain

amakan

https://amakan.net/ のユーザ数が 900 人超えてめっちゃ嬉しい。個人で開発してるサービスでこんなにユーザつくとは思ってなかった。amakan は、個人開発のモチベーションを長期に渡って継続するためにあらゆる施策を投じていて、それがきちんと実を結んでいるんだろうなあと、ただただ自己満足に耽るのであった。遊びの時間なんかを含めた上で、自分で計画を決める、着々とこなす、達成感を得る、そしてまた次の計画を決める、なんていうのは小学生の夏休みで随分前から学んでいることで、個人で趣味の開発をやっていくというのはそういうものに近いんじゃないのかな。

夏休みと言えば、君の名は。のエンディングで流れてくる曲の中に「君のいない世界など 夏休みのない 8 月のよう」「君のいない世界など 笑うことないサンタのよう」という歌詞があったなというのを考えていた。8 月に夏休みがあること、サンタが笑っていることなんていうのは、小さな頃は当たり前のこと、しかしどちらも大人になれば逆に無いことが当たり前に変化してしまうことで、長い時間の流れでいつしか変わってしまう気持ちを感じさせるための優れた表現だと思う。

しかし夏休みと個人開発という言葉を同時に考えたとき、仕事の前後や休日にまで趣味で何かのコードを書いてプロジェクトを進めたいという自分の気持ちは、空いた時間をツギハギして繋げた長い時間の上に、論理的な夏休みを構築するような行動ではないのか、という考えを想起してしまう。やりたいことだけやって生きていられないという耐え難い事態に対する、合理化、反動形成、あるいは幼児退行の現れとして、趣味でコードを書いているのではないかと、たまに考えてしまう。

広告を非表示にする

2017年4月7日

攻殻機動隊

今日が公開日だというのを今日知ったので、レイトショーで観に行った。雑に誘ってくれたあまぎ君ナイス。今日は押井守さんの話をやけに沢山見かけるなあと思ってたけど、今日公開日だったのが原因か。押井守さんはとにかくオープンワールドやマインクラフト系のゲームをやり込んでいるという話だった。記事の内容はどうでも良くて。映画の感想を記した発言を貼り付けておきます。

amakan

シリーズのページに載せる本一覧は発売日順に並べていて、例えば進撃の巨人 1 巻、2 巻、3 巻と並んでいく訳なんだけど、古いシリーズ作品が現代になって再度形を変えて商品化されたような本の場合、複数の巻の発売日が同じになることもよくある。amakan ではこの対策として、発売日が同じ本は更に巻数の昇順に並べることにしていた。

ところが amakan においては正確には巻数というのは数ではなく文字列であり、これは上巻や下巻、い巻やろ巻、赤、青、緑などを扱うための措置であるのだが、これに起因して並び替え時の昇順のロジックも文字列として辞書順で計算していた。しかしこの判断が原因となり、9 巻 と 10 巻が同じ日に発売された場合、9 巻 より先に 10 巻が並んでしまうという状態になっているのを今日発見した。1, 11, 12, 2, 3 みたいな状態 (現在は修正済み)。

野望の王国 完全版 - amakan books

大抵の書籍が巻数に序数を利用している (あるいは amakanize での巻数判定時に序数に正規化している) ということを理由に、今回は巻数を無理矢理数字に変換した上で自然順ソート (natural sort) を適用することにした。数字に変換できなかった場合は辞書順で評価するというロジックはサボっていれなかったけれど、今のところ大抵のケースがカバー出来ているのでよしとする。

f:id:r7kamura:20170408050052p:plain

他に、コメントが付いている本にはコメント数を表示するようにした。コメント機能がもっと流行ってほしいという気持ちの発露です。コメント数が 0 件の場合には鬱陶しいだけなので表示していない。

条件次第でテキストを出したり出さなかったりするのって、要素が横に並ばない UI だから上手くいく作戦で、本が横に並ぶような UI だとコンテンツの有無で高さが変わるので綺麗に解決できていなかった。グローバルナビゲーションをサイドバーに配置するようにしたのは、デスクトップ用の UI でもメインコンテンツ領域の横幅を狭くして、要素を 1 行ずつ表示してもそこまで違和感がないような UI にすることで、こういうことをやりやすくしよう、という戦略が背景にある。

f:id:r7kamura:20170408050445p:plain

そういえば最近加えたシリーズ判定方法の大幅変更も UI 的な要求が理由のひとつになっている。「利用者の学習効率を良くするために、デスクトップ用の UI とスマートフォン用の UI でなるべく違いが出ないようにしよう」という方針がまずあり、これを考慮しながら上図のようなリスト形式の UI が構築された訳だけど、スマートフォンの小さな画面で表紙画像の横にテキストを回り込ませると、どうしてもテキストを表示する領域が狭くなってしまう。これを解決するために、「進撃の巨人(22) (週刊少年マガジンコミックス)」というタイトルをもっと短く表記できるようにしたい、ということで巻数判定への要求が高まり、結果として今回のシリーズ判定方法の変更でこの要求が無事叶えられたのであった。

広告を非表示にする