Androidでマイナス検索を簡単に行うためのアプリ「検索の達人」をリリースしました
はじめに
androidでレシピ検索するときに、某アマチュア投稿サイトばっかり引っかかってうっとうしかったので、マイナス検索をしたかったんだけれども、androidのキーボードで、マイナス検索しようとすると、キーボードの種類を切り替えたり、記号モードに切り替えたりと結構面倒だったので、検索を簡単に行えるようにアプリを作った。
今後
本当は、site検索にも対応させたり、いろいろやろうと思って、大それた名前を付けて開発してたんだけれども、詰め込みすぎるとかえって使いにくいと思い、スモールスタートで行くことにした。site検索は、PCだと時々使うけど、スマホでURLを入力することがそもそも厄介だよなあと思う。androidなら共有でURLが渡せるから、それを使って、site検索もできるようにしてみようかしらん。
以下蛇足
作ろう作ろうと思っていて、何年もほったらかしになってしまっていたので、ついに作れて感無量である。やっぱり個人開発の場合、モチベーションの維持が何よりも大事なので、コーディングが24時間程度で終わるぐらいでないと、途中で飽きてしまう。
最初は、複数の除外キーワードをグルーピングしてプリセットとして呼び出せるようにしようと設計してたんだけれど、説明が書けない→他人には使い方がわからない、ということだよな、と思いシンプルな設計に変更した。
公開するのに、apkファイルだけ作ればいいのかと思ってガシガシ作り、完成したと安堵したら、公開するには、ヘッダ用の画像とスクリーンショットが少なくとも2枚必要と言われて、それを作るのが何よりも面倒だった。
実際作ってみて、ページの作り方だったり、画面レイアウトだったり、いろいろと壊滅的なセンスに呆然としてしまったので、その辺を鍛えつつ、ほかのアイディアも昇華させていきたいね。
図解でわかる Androidアプリケーション開発教科書 (Software Design plus)
- 作者: 三苫健太
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/25
- メディア: 大型本
- クリック: 9回
- この商品を含むブログ (2件) を見る
emacsのキーバインドが表示されるwhich-keyを導入した
はじめに
この前、メタキープラス何かで使えるキーバインドを調べた。
しかし、複数のキーを使うキーバインド(C-x C-cとか)を含めると、キーバインドは無数にある。ためしにscratchバッファで、C-h bして出てきたバッファの行数をカウントしてみると、1282行あった。空白行等キーバインドではない行があるにしても、軽く1000はキーバインドが定義されているだろう。メジャーモードによってはもっともっと多いはず。
そこで便利なマイナーモードにguide-keyがある。キーバインドをもっと覚えるためにカスタマイズしないとな、と思って調べていたら、るびきちさんのところで、which-keyというのが紹介されていたので導入してみた。
which-keyとは
下記に配置されている。package.elで簡単に導入できる。
which-key started as a rewrite of guide-key-mode, but the feature sets have diverged to a certain extent.
ということなので、guide-keyをもとに作られたものらしい。
ひとまず使うなら、package.elでゲットしたあと、
(require 'which-key) (which-key-mode)
だけで簡単に使える。
guide-keyとの違い
表示するキーバインドのプリフィックスを指定しなくてよい
guide-keyだと、
(require 'guide-key) (setq guide-key/guide-key-sequence '("C-c" "C-z" "C-x")) (guide-key-mode 1)
のように、どのプリフィックスの場合にキーバインドを表示するか指定しておく必要があったけど、which-keyは不要。デフォルトですべてのキーバインドが表示される。例えば、C-xを入力したあと、1秒程度入力しないでいると、下のスクリーンショットのように、ポップアップしてキーバインドが表示される。
表示方法も、Windowsの分割(デフォルト設定、デフォルトでは上下に分割して、下側に表示されるけれど、設定すれば左右に分割することも可能)、ミニバッファ、新規フレーム、ユーザカスタムの4種類から選ぶことができる。ミニバッファと新規フレームはちょっと触ってみた限り使いにくかったので、最初はデフォルト設定でよいのではないかと。カスタムで設定すれば、auto-complete/companyのように表示することもできるようだ。
which-keyの使いにくいところ、今後調べたいところ
複数ページにまたがった場合のページ送りに、C-hを使うんだけれど、C-hは<DEL>に置き換えている人が多いと思う。そうすると、C-hで次のページって表示されているので、C-hを押すと、<DEL>が入力されたことになってしまう。
ためしに、C-xで動作を試していたので、しばしば C-x <DEL> (backward-kill-sentense)が発動してしまい、設定消失、僕呆然。とすることがしばしばあった。
また、C-hだけでページ送りができず、C-h nとしないと次のページが見れない。僕の場合は<F1> nとなる。これはちょっとめんどくさい。
README.mdを見る限り、当たり前だけどこの辺はカスタマイズできそう(which-key-use-C-h-for-pagingやらその辺いじってみたけど、期待する動作とならず)。きちんと設定すれば便利に使えそうなのでもうちょっと調べてみよう。
不良emacsユーザが改めてメタキーを使うキーバインディングを確認した
はじめに
不良といっても、タバコふかしてパラリラパラリラではない。emacsを使うようになってから10年近く立つのに、最近M-sの使い方を知った。これまでメタキーを使う機会といえばM-x、M-%、M-<、M->のみ。あまりにも情けない。これを不良と言わずなんと言おうか(不可とは言わないのが自分への甘えである)。
キーバインドの表示
現在のモードでのキーバインディングを表示するには、describe-bindingsが使える。キーバインドは<f1> bもしくはC-h bだ。helmを導入しているのであればhelm-descbindsを使った方が便利だろう。
キーバインドの調査
今回は、M-○とメタキー+何かで使えるものを調べてみた。
なお、scratchバッファで調べた。結構メジャーモードで違う気がするので、本当はよく使うモード(僕の場合はorg-mode)で調べた方が良いかも。そもそもこういうのは既に他の人もまとめてると思うけど、自分でわからないところを確認しながらの方が覚えられるので。
キーバインド | 関数 | 説明 |
---|---|---|
M-1 .. M-9 | digit-argument | C-u Nの代わり |
M-SPC | just-one-space | カーソルの位置に複数のスペースがある場合に、全部消して一つのスペースに変えてくれるらしい。半角スペースおよびタブ文字(C-q C-i)が反応すること。全角スペースは反応しないことは確認できた |
M-! | shell-command | シェルのコマンドを実行 |
M-$ | ispell-word | ispellでスペルチェックができるようだ(未確認) |
M-% | query-replace | 置換 |
M-& | async-shell-command | シェルのコマンド実行を非同期で |
M-' | abbrev-prefix-mark | 動的展開用のコマンドっぽい |
M-( | insert-parentheses | リージョンを()でかこむ |
M-) | move-past-close-and-reindent | 次の ) に移動し、その後ろで改行+インデント |
M-* | pop-tag-mark | etags系のコマンドっぽい。詳細不明 |
M-, | tags-loop-continue | etags系のコマンドっぽい。詳細不明 |
M-- | negative-argument | C-u - Nの代わり |
M-. | find-tag | etags系のコマンドっぽい。詳細不明 |
M-/ | dabbrev-expand | 動的展開の実行 |
M-: | eval-expression | ミニバッファにLisp式を求め、それを実行する。C-x C-eのミニバッファ版 |
M-; | comment-dwim | 賢いコメント化するやつ |
M-< | beginning-of-buffer | バッファの先頭へ |
M-= | count-words-region | ワードカウント |
M-> | end-of-buffer | バッファの末尾へ |
M-@ | mark-word | カーソル直後の単語をリージョン選択するらしい。実行してみたけどうまく動かなかった |
M-\ | delete-horizontal-space | 連続するスペースを全削除。M-SPCのスペース残さない版かな |
M-^ | delete-indentation | その行のインデント化を削除して、前の行と結合 |
M-` | tmm-menubar | ミニバッファでメニューバーを操作できる |
M-a | backward-sentence | 文の先頭へ |
M-b | backward-word | 前の単語へ |
M-c | seq-capitalize-backward-word | 単語の先頭を大文字に |
M-d | kill-word | 単語の終わりまで削除 |
M-e | forward-sentence | 文の末尾へ |
M-f | forward-word | 次の単語へ |
M-g | Prefix Command | 行移動関係のプリフィックス |
M-h | mark-paragraph | パラグラフをリージョン選択 |
M-i | tab-to-tab-stop | タブを入れる |
M-j | indent-new-comment-line | コメント中で実行すると、改行してコメント化してくれる。(C-jだとただの改行) |
M-k | kill-sentence | 文末まで削除 |
M-l | seq-downcase-backward-word | 単語の先頭を小文字に |
M-m | back-to-indentation | インデント以外の行の先頭に移動 |
M-o | facemenu-keymap | face系のプリフィックス、行の整形もあるのかな |
M-q | fill-paragraph | 段落を整形してくれる |
M-r | move-to-window-line-top-bottom | 今表示されているウィンドウの行頭・中間・末尾に順番に移動する(バッファではない) |
M-s | Prefix Command | 検索系のプリフィックス |
M-t | transpose-words | 単語を入れ替える(C-tの単語版) |
M-u | seq-upcase-backward-word | 単語を大文字化する(M-cが1文字目だけ大文字かするのに対し、M-uはすべて変える |
M-v | scroll-down-command | 上にスクロール(C-vの反対) |
M-w | kill-ring-save | リージョンのコピー |
M-x | helm-M-x | emacsのコマンド実行(helm入れているので、helm-M-xになってるけど) |
M-y | yank-pop | 履歴をたどってyankするものを選択できる |
M-z | zap-to-char | 指定した文字まで削除する |
M-{ | backward-paragraph | パラグラフの先頭まで移動 |
M-| | shell-command-on-region | コマンド実行時にリージョンを標準入力として渡せる |
M-} | forward-paragraph | 次のパラグラフまで移動 |
M-~ | not-modified | バッファを修正していないと設定できる。何の役に立つのかよくわからない |
M-DEL | backward-kill-word | 単語の先頭まで削除 |
まとめ
一通り調べると、メタキーを使うコマンドにもいろいろと便利なものが設定されていることがわかった。ただ、日本語だと、単語系や文、パラグラフがうまく解析できるのかよくわからないから、使いどころが難しいんじゃないかと思う。今回調べた中だと、M-yは使いこなすと便利だと思った。マウスでドラッグするだけで、コピーする設定にしているのだけれど、うっかりコピー先をクリックしたときもドラッグしてしまい、コピーしたものをヤンクできない事故が多発しているけど、M-yを使えば、履歴をたどってもともとコピーしたかったものをヤンクできるので。
不良emacsユーザ脱却のため、ほかのコマンドについても調べていこう。
追記(2016-02-10)
M-yはヤンクした履歴をたどれるだけだったから、ヤンクする前に上書きしてしまうと使えなかった。残念
さらば、evernote clearly
2015年9月30日に終了したEvernote foodに引き続き、またも使っていたevernoteファミリーに別れを告げるときが来てしまった。2016年1月22日に、evernote for pebble、evernote clearly、skitchのサポートを終了する、と案内がきたのだ。世間的にはskitchが有名だと思うけど、僕はEvernote clearlyだけは使っていた。webサービス経由で登録した際の受付番号のような、どうせ見返さないけど念のためとっておきたいページを保存しておくのには便利だった。
2015年の振り返りと最近の興味
はじめに
2015の個人的トピック
Emacs
Elasticsearch,fluentd,kibana
今後のトピック
Electron
終わりに
スマートフォンでもorg-modeとともに
この記事はEmacs Advent Calendar 2015の19日目の記事です。
18日目の記事は、nasa9084さんによる「org-revealで細かい設定をしたい」でした。
はじめに
org-modeを使っていると当然感じるのが、出かけた先でもTODOリストをチェックしたい、メモを一元管理したい、ということです。
一時期はevernoteと併用とか、スマホのメモ機能とか、いろいろ試しては見たんですが、やはり一か所にまとめておかないとのちのち面倒なんですよね。なかなかマージしようという気にならないし*1。
そこで、今回は私が使っているスマホでorg-modeのメモを共有する方法についてご紹介します。
スマートフォンでもorg-mode
androidアプリでorg-modeを扱える(PCとの同期もできる)ものは、MobileOrgとOrgzlyがあります。どちらも一長一短あるので簡単に使ってみた感想や長所短所と感じているところをご紹介します。
MobileOrg
こちらはiOSとandroidと両方のアプリがあります。というかiOS実装のほうが本家で、それを移植したのがandroid版だったはず。
大きな特徴としては、PCのEmacsで編集している.orgなファイルをそのままスマホでも読み書きするのではなく、別の環境に一旦配置したファイル経由でやり取りする、というところにあります。私もはじめはMobileOrgを使っていてなかなか良いなとは思っていたんですが、この別のファイル経由でというところで同期によくつまづいてしまい、後述するOrgzlyに移ってしまいました。機能としてはMobileOrgのほうに軍配が挙がるのですが。。。
長所
- org-modeのマニュアル本家に説明が書いてある!
マニュアルだけでなくて、本家に必要なメソッドが取り込まれているというのは今後のことを考えると安心できる気がします。昔からあるので困ったときにも比較的知っている人を見つけやすいかも*2。
- 同期手段が豊富
定番のDropboxのほか、WebDAV、SDカード、Ubuntu One、SSHと様々な手段で同期ができます。宗教上やその他の理由でDropboxにはデータを置きたくない!という人でも自鯖のWebDAVとかSSH経由で利用できるのはきっと魅力的。私はDropbox経由で同期してました。
- org-modeの書式にほぼ対応
org-modeだと例えばタグをつけることができますが、そのあたりの書式に完璧に対応しているのは心強いです。もちろんメモを見るときだけでなくて、メモを書くときにタグを設定することも可能です。タグはEmacsのほうで設定したタグがプルダウンで表示されるので、選ぶだけで設定できるのがうれしいところ。
- その他
設定を見る限りだと、ScheduleやDeadlineの情報を、スマホのカレンダーにも反映できそう(設定したことないのでよくわかりません)。
短所
- 同期が面倒
MobileOrgの場合、PCのEmacsで、M-x org-mobile-push、MobileOrg側でsyncしないと反映されなません。MobileOrgで編集した内容は、Emacsでorg-mobile-pullしないと反映されない、とかorg-mobile-pullする前にMobileOrgのsyncをしてしまうとMobileOrgで編集していた内容が闇に葬られてしまう、とか、ちょっと不親切かな、と思います*3。
- メモにゴミが付与されてしまう
MobileOrgだと直接.orgファイルを編集するのではなく、別のファイルを用意して、それ経由でやりとりするという都合上(?)、元の.orgファイルにIDやら更新日時やらの情報がタグとして勝手に追加されてしまいます。そこまでたいしたことではないけれども、気になる人は気になるかも。
Orgzly
こちらは残念ながらAndroid版だけとなります(公式FAQにもiOSは今のところ予定はない、と書かれています)。MobileOrgに比べると機能は少ないのですが、一通りの機能はそろっているかな、と思います。詳しくは以下の公式サイトのドキュメントを。
Orgzly | Notes & To-Do Lists
長所
- 同期が簡単
MobileOrgのように別ファイルを経由しないので、Emacsで読み書きしているorgファイルをDropbox上に配置しておけば、Dropboxが同期作業はしてくれます。なお、OrgzlyからDropboxへの同期は、Orgzlyのsyncボタンを押した際に行われます。EmacsとOrgzly両方で編集した結果、コンフリクトしてしまった場合には、DropboxのデータかOrgzlyのデータかどちらを利用するか選ぶことができます(マージはできないので、どちらかは捨てることになってしまいます)。
- メモの検索機能が充実
まだ使いこなせていないのですが、スケジュールが○日以内とか、このタグのものとか検索機能が充実しているらしいです。
デフォルトで、こんな感じのorg-agendaチックな検索が可能です。
短所
- ノードの折り畳みができない
本文の表示非表示は設定で切り替えができるのですが、見出しの折り畳みができないので、長いファイルだと見出しだけはすべて表示されてしまいます。MobileOrgだと見出しの折り畳みもできたのでそこができるようになるとうれしい。
こんな感じで、見出しが全部表示されてしまう。
最後に
今はorg-modeにしろOrgzlyにしろ、人が作ったツール、設定を使っているだけなので、自分が改良していけるようにしたい。そのためにはもっともっと使って改善ポイントを見つけていかなくては。
明日20日目は、kiwanamiさんによる「去年の続きか、RPCの紹介など」の予定とのこと。こちらも楽しみですね。
続・xperia z3 compactが壊れた
の続き
ドコモショップへ来店
近所のドコモショップに行って白ロムというかMVNOなので自費修理になると思うけど、MVNOは修理出すならその間の代替機は自分で用意しないといけないし、修理出すか決断するために、修理費見積もりたい、と正直に伝えたところ、メーカー保証の範囲内なので、無償で治せますよー、とのことだった。僥倖っ・・・・!
機体に傷はついてないし、組み立ての時にちょっとずれやすくなったのかもねー、とのことだった。ありがたし!
ただ問題はMVNOなので、修理中の代替機は自分で用意しないといけないのと、メーカー修理だすとソフトリセットかけられちゃうところ。で、戻ってきたらまた設定しなおしか、と思うとちょっと腰が引けてしまう。
代替機だったら、もうちょっとおもちゃみたいなやつでいいよなーとは思うけど、なんかいいのあるのかな
とりあえずもうちょっと壊れてから修理に出すことにした。(外身に傷つけると無償修理ではなくなってしまうので大事に使おう)
まとめ
物理的な故障であっても無償で修理してもらえるかもしれないので、保証期間内であればダメ元でも聞きにいってみたほうがよいね。信じるか信じないかはあなた次第。。。。