SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Electron + Mithril
File Search ファイル検索
西澤 和晃
@LightSpeedC
Kazuaki.Nishizawa@gmail.com
2017-07-15 Gunma.web #28
自己紹介
• 名前: 西澤 和晃 ・会社:桐生にあるRS
• Twitter/Qiita/GitHub: LightSpeedC
• Facebook: kazuaki.nishizawa
• fb http://j.mp/kazuaki g+ http://j.mp/nishizawa
tw http://j.mp/twlights mixi http://j.mp/mlights
• 得意なもの:
– JavaScript, 最近は TypeScript, 嫌いなJava
– React, Mithril
– 非同期 (Callback, Promise, Events, Thunk,...)
• 趣味: 乗馬
モチベーション – なぜ作った?
• 当時マイナンバー対応の国の資料が大量に
– 多過ぎて探せない... 複数バージョンが存在...
• Windows Explorerのファイル検索
– とにかく遅い
– 一覧されるが、どのフォルダにあるか不明
– いろんなものが混る
• 古い? バックアップ?
– .git/ や node_modules/ 以下は検索したくない
– フィルタが欲しい (除外したい・含めたい)
最小限の技術で (2016. 6)
• JavaScript – Webの技術
• Electron – デスクトップ・アプリをJSで
• Mithril – 軽量FW 20KB (Reactをちゃんとやる前)
• 非同期処理非同期処理非同期処理非同期処理でファイル検索したい
• npm: aa (async-await), executor, Promise
– 全部自前 (ES2017 async awaitが使えない時代)
• no Build Tools
– no Altjs (no TypeScript, no Babel)
– no Webpack, no Browserify, no Gulp
– no CSS Framework, no Test Framework, no CI
特徴
• たくさんのファイルでも非同期に探せる
• フィルタを設定し、除外したり、含めたり
• ワイルドカード、AND/OR/NOTでの検索
• Mac / Windows では動作確認済み
• 小さい、本体は。< 100KB (含むMithril)
けど、Electron自体が大きい。≒100MB
electron-mithril-async-file-search
ソースは以下に置きました。
• GitHub repository
– https://github.com/LightSpeedC/electron-mithril-async-file-search
– https://github.com/LightSpeedC/electron-mithril-async-file-
search/raw/master/doc/electron-mithril-async-file-search.pdf
おまけ – 投稿記事
• http://qiita.com/LightSpeedC
– [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成
http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957
– [JavaScript] 非同期処理のコールバック地獄から抜け出す方法
http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad
– Mithril.js 試してみた(1) todo アプリを作り始める所まで
http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc
– React v15をやってみよう (1) - まずはHTMLだけで
http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49
– コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの
か? (JavaScript)
http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af
– React v15でカレンダーを作ってみた
http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea
• http://qiita.com/LightSpeedC
– [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成
http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957
– [JavaScript] 非同期処理のコールバック地獄から抜け出す方法
http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad
– Mithril.js 試してみた(1) todo アプリを作り始める所まで
http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc
– React v15をやってみよう (1) - まずはHTMLだけで
http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49
– コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの
か? (JavaScript)
http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af
– React v15でカレンダーを作ってみた
http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea
• http://qiita.com/LightSpeedC
– [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成
http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957
– [JavaScript] 非同期処理のコールバック地獄から抜け出す方法
http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad
– Mithril.js 試してみた(1) todo アプリを作り始める所まで
http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc
– React v15をやってみよう (1) - まずはHTMLだけで
http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49
– コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの
か? (JavaScript)
http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af
– React v15でカレンダーを作ってみた
http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea

Weitere ähnliche Inhalte

Was ist angesagt?

swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習hoxo_m
 
RPubs とその Bot たち
RPubs とその Bot たちRPubs とその Bot たち
RPubs とその Bot たちhoxo_m
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!__john_smith__
 
後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜Akihiro Kuwano
 
Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry PiMasafumi Ohta
 
機械の体を手に入れるのよ、 鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、 鉄郎!!!Nagi Teramo
 
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるShuhei Iitsuka
 
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208真吾 森
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルSatoshi Yamada
 
Rでを作る
Rでを作るRでを作る
Rでを作るNagi Teramo
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowTakeshi Akutsu
 
Pandas / Dask / Vaex
Pandas / Dask / VaexPandas / Dask / Vaex
Pandas / Dask / Vaexhide ogawa
 
はてブ未読管理
はてブ未読管理はてブ未読管理
はてブ未読管理kiki utagawa
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方Kosuke Tanabe
 

Was ist angesagt? (16)

swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習
 
RPubs とその Bot たち
RPubs とその Bot たちRPubs とその Bot たち
RPubs とその Bot たち
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!
 
後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜
 
Minio on Raspberry Pi
Minio on Raspberry PiMinio on Raspberry Pi
Minio on Raspberry Pi
 
機械の体を手に入れるのよ、 鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、 鉄郎!!!
 
Python と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめるPython と Xpath で ウェブからデータをあつめる
Python と Xpath で ウェブからデータをあつめる
 
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
 
Rでを作る
Rでを作るRでを作る
Rでを作る
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
 
社内発表会20120328
社内発表会20120328社内発表会20120328
社内発表会20120328
 
Pandas / Dask / Vaex
Pandas / Dask / VaexPandas / Dask / Vaex
Pandas / Dask / Vaex
 
20101211 #
20101211 #20101211 #
20101211 #
 
はてブ未読管理
はてブ未読管理はてブ未読管理
はてブ未読管理
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
 

Electron + Mithril Async File Search

  • 1. Electron + Mithril File Search ファイル検索 西澤 和晃 @LightSpeedC Kazuaki.Nishizawa@gmail.com 2017-07-15 Gunma.web #28
  • 2. 自己紹介 • 名前: 西澤 和晃 ・会社:桐生にあるRS • Twitter/Qiita/GitHub: LightSpeedC • Facebook: kazuaki.nishizawa • fb http://j.mp/kazuaki g+ http://j.mp/nishizawa tw http://j.mp/twlights mixi http://j.mp/mlights • 得意なもの: – JavaScript, 最近は TypeScript, 嫌いなJava – React, Mithril – 非同期 (Callback, Promise, Events, Thunk,...) • 趣味: 乗馬
  • 3. モチベーション – なぜ作った? • 当時マイナンバー対応の国の資料が大量に – 多過ぎて探せない... 複数バージョンが存在... • Windows Explorerのファイル検索 – とにかく遅い – 一覧されるが、どのフォルダにあるか不明 – いろんなものが混る • 古い? バックアップ? – .git/ や node_modules/ 以下は検索したくない – フィルタが欲しい (除外したい・含めたい)
  • 4. 最小限の技術で (2016. 6) • JavaScript – Webの技術 • Electron – デスクトップ・アプリをJSで • Mithril – 軽量FW 20KB (Reactをちゃんとやる前) • 非同期処理非同期処理非同期処理非同期処理でファイル検索したい • npm: aa (async-await), executor, Promise – 全部自前 (ES2017 async awaitが使えない時代) • no Build Tools – no Altjs (no TypeScript, no Babel) – no Webpack, no Browserify, no Gulp – no CSS Framework, no Test Framework, no CI
  • 5. 特徴 • たくさんのファイルでも非同期に探せる • フィルタを設定し、除外したり、含めたり • ワイルドカード、AND/OR/NOTでの検索 • Mac / Windows では動作確認済み • 小さい、本体は。< 100KB (含むMithril) けど、Electron自体が大きい。≒100MB
  • 6. electron-mithril-async-file-search ソースは以下に置きました。 • GitHub repository – https://github.com/LightSpeedC/electron-mithril-async-file-search – https://github.com/LightSpeedC/electron-mithril-async-file- search/raw/master/doc/electron-mithril-async-file-search.pdf
  • 7. おまけ – 投稿記事 • http://qiita.com/LightSpeedC – [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成 http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957 – [JavaScript] 非同期処理のコールバック地獄から抜け出す方法 http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad – Mithril.js 試してみた(1) todo アプリを作り始める所まで http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc – React v15をやってみよう (1) - まずはHTMLだけで http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49 – コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの か? (JavaScript) http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af – React v15でカレンダーを作ってみた http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea • http://qiita.com/LightSpeedC – [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成 http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957 – [JavaScript] 非同期処理のコールバック地獄から抜け出す方法 http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad – Mithril.js 試してみた(1) todo アプリを作り始める所まで http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc – React v15をやってみよう (1) - まずはHTMLだけで http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49 – コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの か? (JavaScript) http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af – React v15でカレンダーを作ってみた http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea • http://qiita.com/LightSpeedC – [JavaScript] そんな継承はイヤだ - クラス定義 - オブジェクト作成 http://qiita.com/LightSpeedC/items/d307d809ecf2710bd957 – [JavaScript] 非同期処理のコールバック地獄から抜け出す方法 http://qiita.com/LightSpeedC/items/7980a6e790d6cb2d6dad – Mithril.js 試してみた(1) todo アプリを作り始める所まで http://qiita.com/LightSpeedC/items/a2c967928f9cc13e0ebc – React v15をやってみよう (1) - まずはHTMLだけで http://qiita.com/LightSpeedC/items/484fec44a2ca15e48f49 – コールスタック・サイズの最大は? どこまで関数は深く呼び出せるの か? (JavaScript) http://qiita.com/LightSpeedC/items/cff177ec013bd11d12af – React v15でカレンダーを作ってみた http://qiita.com/LightSpeedC/items/8679c9d4069523b737ea