InkdropというElectron製ノートアプリを作っています。このアプリにはプラグイン機構による拡張性を備えているのですが、これはatomからコードを拝借して実装しました。atomはMITライセンスによるオープンソースのテキストエディタです。その際に得た知見を共有したいと思います。これをきっかけにあなたのElectronアプリ改善のお役に立てれば幸いです。atomのパッケージを作ったことのある方ならすんなり理解できると思います。軽量でPluggableなJS製Markdownパーサ&レンダラのMarkdown-It。aタグは全てtarget="_blank"にしたいなどの要求を実現するにはレンダラの処理を一部変更する必要がある。その変更方法について説明する。md.renderer.rulesを書き換える以下のようにlink_openという名前のルールを書き換えることで、target="_blank"をデフォルトに出来る。Node.jsMarkdown-Itで独自レンダリングする方法にコメントElectronでデスクトップからD&Dでファイルを受け取る方法FinderやエクスプローラなどからElectronアプリケーションにファイルをドラッグ&ドロップする操作を実現する方法について説明する。以下のようにデフォルトの挙動をキャンセルする。1gccなのでXCodeが関連している模様。「好み」や「慣れ」「制約」の問題は忘れて読んで欲しい。それは個々人の問題だから。時代はSPAスマホの普及で、モバイルネットワークなのに画面遷移ごとにページのリロードなんてユーザはじれったくて待ってくれない。Application)という手法が出るのは必然だ。これは、画面遷移に応じて必要なデータを読み込み、必要な部分だけを再描画する手法だ。言語のスイッチングコストは予想以上に高い昔と比べて、ウェブサービスの開発コストはほんとうに下がった。一人でサービスを作る人もこれから格段に増えるに違いない。一人でSPAを組む時にしんどいのが、言語のスイッチングコストだ。Railsで組んでいるなら、RubyとJavaScriptの2つを並行して書かなければならない。言語はそれぞれ独特の作法があり、いいコードを書くにはそれなりの鍛錬が必要だ。熟練していたとしても、常に複数言語のテクニックやライブラリにキャッチアップするのは大変だ。node.jsは”お一人様向け”node.jsは、サーバサイドで動くJavaScript環境だ。スイッチングコストが圧倒的に低い。DOM操作やファイル操作など、クライアントとサーバサイドでは相互で通用しないテクニックもある。それは言語の問題ではなく、アーキテクチャの問題だ。一人で効率よく開発したいなら、node.jsをお薦めする。フレームワークはどれがいい?そんなのは今どきどれもよく出来ているから、「住めば都」だ。メソッドで指定可能サーバ側で処理をタイムアウトさせるにはMongoDBでは、v2.6からサーバ側で処理の実行タイムリミットを設定できます。メソッドを呼ぶことで設定できます。設定すると、指定したタイムリミットを超えて検索やアップデートが実行された場合、その処理を中止します。各ドライバといっても調べたものだけを列挙しておきます。このメソッドはクライアント側でタイムアウト処理を行うものです。サーバ側では処理をキャンセルしないので、注意です。node.jsこちらに詳しく書いてあります。Mapping)のmongooseでもmaxTimeMSに対応しています。利用できるようになりました。