プログラミング

入門Electron

electronがatom-shellという名前だった頃から気になってたんだけど、ようやく入門してみることができた。electronで何が作りたいかというと、OS非依存な同人誌zip管理専用のソフト。フロント部分はモダンなフレームワークだとかなんとかを使わずに全部jQuery…

Y/Zコンビネーターについて理解するまで

最近「アンダースタンディング コンピュテーション」という本を読んでいる。 アンダースタンディング コンピュテーション ―単純な機械から不可能なプログラムまで posted with amazlet at 15.09.21 Tom Stuart オライリージャパン 売り上げランキング: 155,7…

knockout.jsを触ってみる MVVMのModelとは?

angular.jsとかreact.jsとかvue.jsとかriot.jsとか、〇〇.js系は星の数ほど…はないけど少なくとも太陽系の惑星くらいはある。electronでアップリケーションをつくってみたいので、ナウい感じのJavascriptの使い方を身につけたいなぁとは前から思っていたんだ…

Firefoxアドオン開発(6)

頑張ってパネルのデザインをいじってみた。 これが旧デザインで、 これが新デザイン。 前のは要素をとりあえず設定してみただけだったので、それよりかはずいぶんマシになったと思う。しかしこの程度のものでも相当大変だったし下手したらJS部分をいじった時…

Firefox アドオン開発 (5)

技術系の記事というのは、手探りしている段階ではとにかく書きたくなる。かけた時間に対して成果物の出力は少ないからその分何かアウトプットを出したいし、初心者向けの体系だった情報がない(実際は自分のやりたいことにピンポイントな情報がない)から自…

Firefox アドオン開発(4) 各ページとの通信

Addon Scriptでハイライト対象のURLパターン(なんて言っちゃうと正規表現でマッチングできそうな感じがしてしまうが単に「含む」だけ)を管理できるようになった。でも、Addon Scriptは実際にブラウジングしているページには一切関与できない。そこで今度は…

Firefox アドオン開発(3) パネルの生成、チェックボックス管理

設定ファイルから読み込まれたプロファイルはこのようになっている(とする)。 Search Engineを有効化すれば'google'と'yahoo'という文字列が含まれるリンクがハイライトされ、movieを有効化すれば'youtube'と'niconico'という文字列が含まれるリンクがハイ…

Firefox アドオン開発 (2) Content ScriptとAddon Scriptの通信

Addon-SDKを利用したアドオン開発の要点は、Addon ScriptとContent Scriptである。参考:Add-on SDK で始めるアドオン開発(Content Script 編)Content Scripts - MDNアドオンのエントリーポイントとなってFirefoxのウィンドウにボタンやメニューを追加した…

FF拡張 (1)

最近はWEBの技術を使ってPC用のネイティブアプリケーションを作ることができるらしい。Github atomが代表的な例だが、次のような仕組みになっている。io.js(node.js)でバックエンドのロジックを書く→なんたら(Reactとか).jsでバックエンドとフロントエンドの…

伸縮自在の愛 (6)

前回の更新以後、Elasticsearch + Railsで詰まった+解決したポイントをいくつか。まず、検索は標準で10件しか結果が返ってこない。 いちおうこのようにすると取得件数を増やすことができるんだけれども件数を増やせば増やすほど重くなるので避けたいところ…

伸縮自在の愛 (4)

elasticsearchの使い方について調べると、英語の情報では英語の検索をする用の情報しか出てこない。一方で日本語の情報では日本語の検索をする用の情報ばかり。 "世界"の"中心"の"日本人(ジャパニーズ)" 用のサービスであったとしても日本語と英語のコンテン…

伸縮自在の愛 (3.1)

これまでのまとめとして、ArticleとUserでelasticsearchに関する部分を取り出すとこんな感じになる。 チューニングして検索が「うまくいく」ようにしていく必要こそあれ、基本的にはこんなんで動いてしまう。しかーし、テストを書くのが大変なのである。

伸縮自在の愛 (3)

インデックスをはる準備ができたので、実際にインデックスを構築してみる。 いきなりだけども、こんな感じでクラスメソッドを実装した。 まず、最初のbegin部分でインデックスを削除し、次の部分でマッピングを定義。前回定義したインデックス名前とセッティ…

伸縮自在の愛 (2)

elasticsearchが使えるようになった。次はインデックスを構築する。特定テーブル内の情報だけ検索できればいいなら簡単だけど、そんなイージーな事例はそうない。たとえば「ArticleはUserにbelongs_toで、Articleを所有しているユーザー名でも検索できるよう…

伸縮自在の愛 (1)

最近、バイト先でElasticsearchを触っている。 今まで、「記事」をついているタグ別に表示する機能を実装するのにacts-as-taggable-onというGemを使ってきた。これはRailsでは定番のGemらしくて、 確かにこいつを使えばタグというもので想像される機能をほぼ…

Python 辞書の可能性

今日シミュレーションが終わるのを待っている間、Pythonのドキュメントを眺めていたら発見。Python に switch や case 文がないのはなぜですか? ここで紹介されている、辞書を使って分岐させる方法がすごくいい。Switch文では、実際条件-処理-条件-処理とい…

bloggerをスクレイプ

ある企業の面接の持ち物に「自分を表す101のキーワード」を紙媒体で持ってこいというものがあった。零から101個書きだすのはとても大変そうなので、自分のブログから頻出語を取り出してみるとかどうかな?とか思った。名刺以外でも「なのだけれども」とか口…

Github atom Windowsでapm installできなかったのの解決

現在、Github製のatom.ioというエディタを使っている。今まで何もプラグインを入れずに使ってきたのだが、そろそろいろいろ入れようと思ってまずはアルバイト用のMacbookのでいろいろと試してみた。atomはgithubのアカウントと紐付け可能で、starをつけたプ…

flask, shapen you up

RSSリーダーの敵、それは「続きを読む」だ。「続きを読む」が一段しかないような奴ならRSS全文化サービスを使えばほとんど対応可能だが、中にはそうはいかない奴らがいる。ニュースサイトによくある、[1][2][3]...という風に記事が複数ページにまたがってい…

やったぜ。 投稿者:変態糞Docker (8月16日(水)07時14分22秒)

最近、Dockerというのが流行っているというそうで、自分もDockerを使ってあるWebサイトの開発用環境をつくるスクリプトを作れ、という仕事を割り当てられた。そもそもDocker自体なんなのか?というところから調べなければならなかったんだけれども、今の時点…

うわあ・・・、これはTDDですね。なんだこれは・・・。たまげたなあ

Ruby on Railsで作られたとあるWEBサイトの運営に携わっているわけであるけれども、やはり趣味で作るプログラムなんかとは開発の流れが違う。いわゆるTDD(TDNじゃないよ。DBは出てくるけど)というやつだと思うんだけれども、「テスト」というのが開発サイ…

ComicInfoEditor マニュアル 上 Comicrackへの取り込み編

ComicInfoEditorは電子コミックを管理するComicrackというソフトウェアと一緒に使うことが前提のソフトウェアであり、単体で何かができるわけではありません。あくまでComicrack用の管理データを編集するためのソフトウェアです。しかしComicrack自体の知名…

日の下には新しきものあらざるなり 下

Pythonのような言語を使う人はIDEなんか使わずにテキストエディタでやっちゃう人が多いというが、僕はIDEを使って開発したい派である。IDEを使うとひとつのウィンドウで必要なものがすべて制御できるというのがいい。意外と画面がちっちゃいPCで開発している…

ぼくのかんがえたさいきょうのどうじんしかんりそふと

さて、ComicInfoEditorだが、思ったより開発が早く進んでいるので付加機能をつけることにした。当初の予定では同人誌のメタデータをLexiconから取得する方法は該当作品の詳細ページのURLを入力してボタンをおすとそのURLの示すページからメタデータを抽出し…

今度はComicInfo.xml

Lexiconからの情報がとれるようになったので、調子に乗って今度はComicrack仕様のXMLを編集する方に。余談だけど、Lexiconの管理人(Twitter)が日本に来てたらしい。僕がよく使用する中古同人屋である「アニメリサイクルなごみ」にも訪れた?結論をいうと、で…

Lexiconの情報をとれるようになったぞ

まず、参考にLexiconの適当なページのHTMLソース全文をのせてみる。https://gist.github.com/k5trismegistus/4dd778e284aac8c5796a本題からはそれるけれども、このサークル名でぐぐると「ヤマジュンミュージアム」を引き継いだ人の関連人物らしく、意外なと…

ComicInfo Editor作業再開(再)

最近とある会社に丁稚奉公というか、2ヶ月で何か成果出せたらアルバイトにしてあげるということで出入りすることになった。今のところは交通費と食事代だけで無給である。顔合わせ等を除けばまだ一回しか行っていないんだけれども、今はその会社のサービス運…

ComicInfoEditor 作業再開

とりあえずXMLの整形とかZIPへの追記とかめんどくさくなってきたので、先にThe Doujinshi & Manga Lexiconのパーサーを作成することにした。 とりあえず、HelloWorld的にHTMLをダウンロードして一行ずつ表示するスクリプト。特にこれといって言及するポイン…

Pythonのいいところ

使い始めた最初こそ、「え~」と言いたくなるポイントが多かったPythonだけど、今ではもうPython一番使いやすいな、と思うようになってきた。コミュニティが大きいことによるメリット。困ったときにググればだいたい出てくるし、ライブラリーも充実している…

ComicInfoEditor での困り事

ComicrackがComicInfo.xmlを読むとき、XML内の要素に順序はあるのか?というのが、前から懸念していたことである。つまり、 が みたいになっていた場合、ちゃんと読み込まれるのであろうか?ということ。で、結論から言うとどうもダメっぽい。詳細な実験をし…