カテゴリー別アーカイブ: software

投稿したリンクを乗っ取る悪質な Twitter 連携サービスから自衛する

おがた (@xtetsuji) です

Twitter への連携を要求する連携サービス(アプリ)はたくさんありますが、中にはそれを承認するとユーザに感染するように悪事を働くマルウェアと呼ぶに相応しいものもあります。

特に linkis.com (または短縮リンクより ln.is と呼ばれる)というサイトとアプリは、Twitter 上で承認をしたユーザのツイートを悪用し感染していくものとして有名です。

私が解説するまでもなく、上記を含めた様々な場所で注意喚起が行われています。

この linkis.com の問題点、そして簡単に探す方法であったり、Twitter マルウェアに対処する方法をまとめてみます。

続きを読む

mod_perlプログラマーが飲み会で語るレガシー開発論

おがた (@xtetsuji) です。

2015年4月3日(金曜日)、1社目で最後まで一緒に働いていた後輩と二人で久々に飲み会をしました。そこで考えて語ったレガシー開発論など、公開しても良さそうなところを書いてみます。私は2014年1月に退職していますが、後輩は今も在職しています。

書きたいことはざっと書いたのですが、推敲がうまくできなくて長文になってしまいました。暇な時に流し読みしていただくのがちょうどよいかもしれません。長いブログ記事、Kindleで電子出版したほうがいいかもしれませんね…。

執筆依頼やモジュール類のドキュメント化依頼は随時受け付けていますので、この勢いで文章を書いて欲しいという方がいらっしゃいましたら、ぜひご依頼ください。

続きを読む

RAIDを同一ロットのHDDで組むのは禁じ手

おがた (@xtetsuji) です。

同一ロットのHDDでRAIDを組むと良いよとパソコンショップが喧伝してセットで売るというニュース、最近良く目にするようになって気になっています。

強制するわけではありませんが、個人的に同一ロットのHDDでRAIDを組むことは避けたほうがいいです。特に、知識のあるパソコンショップが率先してこのようなキャンペーンを組むことに疑問を覚えるというか、どういう意図があるのか理解に苦しみます。

続きを読む

Yahoo! TVの番組ページにあるYahoo!カレンダーへの登録リンクをGoogleカレンダーへの登録リンクに変更するChrome拡張機能をリリースしました

おがた (@xtetsuji) です。

長いタイトルの通りなんですが、手元でずっと使っていたChrome拡張機能の一つをChromeストアで公開しました。

どんな拡張機能なの?

何をするものかというとこのブログ記事のタイトルまんまなんですが「Yahoo! TV の個別番組ページにある Yahoo! カレンダーへの登録リンクをGoogleカレンダーへの登録リンクに変更する」拡張機能です。

Yahoo! TVを選んだ理由

正直、Yahoo! TV は今日本にあるテレビ番組サイトの中では一番使いやすいなと思って使っています。各番組ページにパーマリンクがあるところがいいんですよね。Bingテレビとかだとパーマリンクとかなくて、番組表の上にモーダルダイアログのように出てしまう。番組ページは固有のURLであってほしい派なので、昔も今もYahoo! TVに落ち着いています。

昔は日刊スポーツがテレビ番組サイトを運営していてそこもシンプルで良かったんですが、2012年頃になくなってしまってガッカリしたあとで落ち着いたのがYahoo! TVでした。

Yahoo! TV の各番組ページには、昨今流行りのFacebookやTwitterへのシェアボタンなどもついていたりするのですが、Yahoo!だからではありますが、カレンダーへの登録リンクというのはYahoo!カレンダーへのリンクなんですよね。Yahoo! Japanには失礼ではありますが、「Yahoo!カレンダーって誰か使っているの?」っていう感じで、私も結構ハードなGoogleカレンダーユーザだったり、周囲を見てもみんなGoogleカレンダーのユーザなので、ここに併記でもいいからGoogleカレンダーへの登録リンクを付けて欲しいって思うわけなんですが…。まぁ要望送っても付けてくれないだろうなと思って、自分で拡張機能を書いてしまいました。もともとはブックマークレットだったものを成長させたものです。

Yahoo! Japan自体は良いサービスをたくさんリリースしていて、Yahoo! TV以外にも色々とお世話になっているんですが、まぁ今見てもYahoo!カレンダーは使う気になれないですねー。Yahoo!自体もカレンダーでGoogleと戦う気は感じられない。

インストール方法

Chromeストアで公開したので、Google Chromeユーザは当該ページに行ってインストールすることができます。

プラグイン紹介ページ

今のところ (初期バージョン 0.0.0.1) では、tv.yahoo.co.jp へのページ読み取り権限くらいしか要求しません。本当に単純なことしかしていないので。

インストール権限は最小限

これをインストールすると、以前はYahoo!カレンダーへの登録リンクの部分がGoogleカレンダーへの登録リンクに変身します。

具体的には以下のようなリンクが…

プラグインのインストール前

以下のように変わります。

プラグインのインストール後

カレンダーに登録ボタンを押せばGoogleカレンダーへの登録画面になります。

ちょっとした機能の話

機能としては、Google Event Publisherという機能を使っていて、たんにイベント情報を所定の全ユーザ共通のイベント登録リンクにクエリ文字列を伴って渡しているだけです。

ということもあって、現状この制限でできていないのが「番組情報全てを渡す」という部分。ちょっとでも長いとクエリ文字列の長さの制限に引っかかってしまうからです。これはEvent Publisherを使っている分にはどうしようもない。やるとしたらYahoo!カレンダーの番組ページ側でコピー支援をすることくらいかな。

一応、イベント概要部分に番組紹介の一番最初の抜粋を入れるようにしたのですが、うまく入らない場合があって、それはまぁ後でいいかと割り切ってリリースしました。手元で自分だけが使う状態にしておくと、そういう改善意欲が湧いてこないってのがあって、GitHubで公開して、Chromeストアにも載せるという作戦に出たわけです。

まぁコードはZIPを伸長したりGitHubでも公開しているので見られますが、ひどいひどい。私がまだJavaScriptを全然知らない時に見よう見まねで書いたブックマークレット時代のひどい痕跡がそのままなんですが、まぁ動いてくれるし危険なこともしていないし、公開することで自分も改善意欲が湧いたり、誰か綺麗にリファクタリングしてくれるかなとか思って公開しました。そういうライフハックです。

要望ありましたら、Twitter @xtetsuji にご連絡くださるか、http://tetsuji.jp/ に書かれている私への連絡方法のどれかでご連絡いただければ、出来る限り対応します。

Chrome拡張機能の開発方法やChromeウェブストアへの公開方法といった話については、また後日ブログを書こうと思います。ではでは。

2014年8月21日追記

WWW::PushoverをCPANで公開しました

おがた (@xtetsuji / PAUSE: OGATA) です。

WWW::Pushover というモジュールを CPAN で公開しました。2014年4月15日現在のバージョンは、初期バージョンの0.01です。Mac OS X のクリップボード監視モジュールAnyEvent::Mac::Pasteboard以降、久々にCPANにモジュールをアップロードしました。

これはPushoverという海外のスマートフォン向けプッシュ通知サービスへのインターフェースです。もともとWebService::Pushoverというモジュールがあったのですが、重量級のモジュールをいくつも使っていたのと、PushoverにあるAPIでサポートしていないAPIが一部あったので、Perl5.14以降のコアモジュールだけで事足りるようなものを作りたくて、ずいぶん以前に作ったものをアップロードした次第です。

今回は Minilla の minil コマンドでひな形を作って作業していたのですが、念のためと FAKE_RELEASE=1 minil release をした後からおかしな状況になってしまい、結局 minil build したものを PAUSE の管理画面からアップロードするなど、混乱してしまいました。そのせいか、2014年4月15日時点でsearch.cpan.org/~ogata/metacpan.org/author/OGATA の一覧に WWW::Pushover が出てこないとか色々あってどうしたものかなと思ってはいるのですが、ひとまず cpanm WWW::Pushover と打つことでインストールはできるようです。このあたりは、次にPerlの勉強会に行った時にでもCPAN Authorの方に質問してみようかと思っています。頼れる人がいるの大事。

CPANにアップロードしたいものの色々な理由で踏ん切りがつかずGitHub止まりになっているモジュールはいくつもあるのですが、今後多くの人に有用なものは少しずつCPANにアップロードしていきたいと考えています。まだまだCPANへのアップロードは不慣れな点が多いのは、場数を踏んで解消していきたいところです。

英語ですが、ドキュメントにも書いてある通りいくつかの注意点があります。

  • Pushoverのスマートフォンアプリは、買い切りの有料アプリ
  • WWW::Pushoverを使うためには現状ログインをして自分専用の「アプリ」を作ってAPIキーを発行する必要がある

後者に関しては利用者の利便性のためにAPIキーを同梱しようか結構悩んだのですが、現時点では同梱していません。そのあたりはドキュメントにも書いてある通りです。

「日本だとImKayacがあるだろう」という意見もあるのですが、さすが有料のPushoverは高機能で、例えば以下の点がImKayacより優れているポイントでしょう。

  • Pushoverは通知のサウンドを選べる
  • Pushoverは通知の優先度を選べる
  • PushoverにはiOS版だけでなくAndroid版もあるし、iPadにもユニバーサルアプリ対応している
  • …その他色々

ImKayacは無料です(有料版もあります)が、ちょっと通知ごとにサウンドを替えてみようかなとか、AndroidユーザでImKayacを使えなかったユーザへの、もう一つの選択肢になるのではないでしょうか。

ちなみにAndroidには他にもプッシュ通知系アプリもあってAPI公開されているものもあるので、そのAPIラッパーも暇があったら書いてみたいと思っています。

PerlBeginners#12 に参加してきました #perlbeginners

おがた (@xtetsuji) です。

2014年3月21日に行われた「PerlBeginners#12」に参加してきました。

今回は2月に転職して最初のPerlBeginnersだったのですが、今の会社の同僚の方とインターンの方々と一緒に行くという感じでした。

毎回人が足りないといった理由でトークしたりしていているのですが、今回はトークする人も当初から多かったし、環境が変わってトークする資料作りする余裕もなかったということもあって、トークはしないで聴く側に回ることにしました。

場所は水天宮駅近くの「日本橋公会堂」

今回はUstream無し

とはいえ前回に引き続きUstream配信をしようと思っていたのですが、当日の会場が建物の内側にある会議室で全然電波が入らなかったこともあって、Ustreamは断念。

当日のタイムテーブル

当日のタイムテーブルは結果的にこんな感じになりました。

ビギナーズという名前に相応しい程度の難易度が維持できているのも特徴でしょう。

詳細は割愛しますが、少し撮影した写真から。今回は iPhone 5 をテザリング用に入口近くに置いておいたので、Nexus 5での撮影です。Nexus 5を撮影用に使ったのは初めてだったのですが、ちょっと iPhone 5 より画質が悪いなって感じました。

パールビジナーズ?

まさかの「パールビジナーズ」。

PBパールビジナーズ

予約の際に聞き間違えたとかでしょうか。

基調講演 by @dokechin

基調講演の冒頭より、@dokechin さん。この写真だと白バックで飛んでしまって見えないですが、スライドのキャラクターは娘に書いてもらったとのこと。資料公開に期待しましょう。

PB基調講演の様子

もともと、Mojoliciousを使って色々なサービスを作って公開している@dokechinさん。「テストではまったお話」は Test::More の is 関数の内部で悩んだという話など。

この辺りのブログ記事が発端でしょう。

このあとのビギナーズセッションでもNYTProfの読み方について質問したりといったやりとりが続きました。

ビギナーズセッションより

ビギナーズセッションの中で、仕事で主にインフラを担当されているという方からmod_perlについての質問が出て、なんか会場の雰囲気から私が回答する感じになって、少し語らせてもらいました。

最近のmod_perlはApacheやPerlの最新版に対応していない部分はあるのですが、Perlの後方互換性の高さから、特に理由がなければ最新版の一つ前を使うという方針でも問題無いのではないかといった話。また、RHEL7ではApache2.4採用の兼ね合いから、Apache2.4にまだ対応していないmod_perl2がコアモジュールから排除されてしまったことへの注意点などをお話させていただきました。ただ、mod_perlの開発は他の mod_{プログラミング言語} の開発と比べても昔も今も活発に行われているほうなので、心配ある方はmod_perlのSubversion http24開発ブランチをウォッチしたりしてみると良いかなと思います。

mod_perl で何か質問がありましたら、@xtetsuji にお気軽に質問ください。応えられる範囲でお答えします。

YAPCでやりますと言ったものの出来ていないmod_perl系の活動もそろそろやらんきゃなぁと思った次第です。あと、自分が自己満足でネットに書いた記事が実際に読まれて参考にされているということに少し驚きました。今は少し私生活に余裕が無い感じですが、これから少しずつ自分が持っている情報を出していければと思った次第です。

@maka2_donzoko さんがいらしていて、「Acme大全2013」の宣伝をしていました。あの書籍は良書なので、1500円のもとは取れると思います。

LT

LTは @__papix__ さん、@tsucchi さん、そして主宰の @ytnobody さん、最後に飛び入りで @magnolia_k_ さんがお話されました。コード無しの精神論(スピリチュアルトーク)から、コードを交えた解説まで、バランスが良かった印象でした。

@__papix__ さんが語っていた話は、コミュニティやオープンに活動しようと思いつつできない人が恐れていることが杞憂であることを突いた、良い指摘だったと思います。ネットの向こうにいるプロのプログラマの人達は、ほぼみんな業界を良くしていこうという優しい人達ばかりです。変なコードを公開しても優しく指摘してくれたり直してくれたりすることが多いので、それだけでも勉強になると言って良いでしょう。

@tsucchi さんのお話では、異常な努力のもとに成り立っているモジュールの紹介がありましたが、一時期誰もが使ったCGI.pmの中身の異常さは語り尽くせないものがありますね。また、SQLなどのパーサ系のバッドノウハウ満載モジュールも、中身を見てその異常な努力に驚愕することがあったり…。そういう異常な努力の上に出来たモジュールを使わせてもらうことは良いとしても、自分自身が異常な努力をすることは、時間的にも健康的にも良くないなと感じました。時には自分自身が率先して異常な努力をしないといけないことも人生の中にありますが、そういうときのために普段は体力を温存して普通の勉強をしてレベルアップしていったほうがいいと思います。

以下のまとめが的を射ているなと思いました。どうしても難しい処理にたいして難しいコードを書いてしまうときはきっとあるけど、簡単な処理を難しく書くことはやめてほいたほうがよい。

  • 難しい処理をしているときに難しいコードを書いてしまうのはしょうがない
  • 簡単な処理を難しく書いてしまっていないか

メールの仕様も深く立ち入っていくと尋常ならざる複雑さになっていくといった話の中で触れられたYAPC::Asia Tokyo 2011 での RJBS氏によるトークは以下です。

主宰でもある @ytnobody さんのお話では「べからず」のお話。氏が今まで指摘されてきた色々な「クールではない」点について一つずつ解説したお話でした。これも時代によって変わる価値観ではありますが、一頃に比べてだいぶ落ち着いたPerl界隈では、今もしばらくはこの価値観で行って問題はないと思います。

こういうプロ同士の実践の中から題材に上がる情報が生で聴けるのも、PerlBeginnersのような勉強会の魅力ですね。

飛び入りLTをした @magnolia_k_ さん、brewっぽいビルドツールをCPANで公開したりといったアクティブな方。今回も、自分が使ってバグを踏んだモジュールの作者に、英語で意見を送ったりパッチを送ったりということを臆することなくやっても意外と大丈夫なんだよといったことを語って私を含めた聴衆を勇気づけていました。良い話。

懇親会

木曜日とはいえ、次の日は春分の日で祭日だったため、期せずして「週末」となってしまい、ただでさえ居酒屋が少ない水天宮駅周辺で居酒屋難民になってしまいました。

とはいえ、多少さまよって店を見つけて入ることができました。3500円で2時間飲み食い放題はお得でした。

確か8人集まりました。懇親会でディープな話が聴けるのも、こういった勉強会の醍醐味。

各人の最近の業務やPerlとの関わりとか、次回に向けてどうするかとか、色々な話で盛り上がりました。

次回は5月あたりになりそうな予感。PerlBeginners#13も楽しみです。

Station TV i for Macから映像も音も出なかった意外な原因

おがた (@xtetsuji) です。

ずいぶん以前に、iPhoneやiPadでフルセグが観られる「SoftBank SELECTION デジタルTVチューナー SB-TV02-WFPL」というものを買って、iPhoneやiPadでフルセグを観ていました。iOSでの視聴は問題無く、それだけでもそこそこ重宝するものでした。

私は普段はMacBook Airを使っているので、これがMacでも使えると聞いて、2000円の追加出費をしてソフトウェア「Station TV i for Mac」を買いました。iPhone/iPadアプリは無料だというのに…。

その時はAmazonダウンロード販売を利用して購入しましたが、結果的にソフトウェアを起動してもEPG番組情報を取れるところまで進むものの黒い画面のまま画面も映らないし音も出ないという状況が続いていました。

もともと Station TV i for Mac は、画面キャプチャ能力を持っているアプリが起動していると、起動すらできないという厳しすぎる制限があって、Evernoteすら終了させないと起動すらできないというソフトウェアです。Evernoteに画面キャプチャ能力があるのかすらよく知らないのですが、とりあえずStation TV i for Macが起動できるところまで、普段常駐しているソフトウェアを終了させても、黒い画面のままという状態は脱することができませんでした。

サポートに電話してもそういう症状は無いらしく、諦めてiPhone/iPadのみで使っていましたが、今日古いMacBook Airを出してきて、ふとStation TV i for Macを起動させたら、なんと長い時を経て動いたのです。もしやと問題の切り分けをしていたら意外なことが分かりました。

  • ローカルマシンの8080番ポートが開いていると、黒い画面のままという症状になる

私は自分のMacBook Airからは自宅サーバにSSHをして使っていて、自宅サーバで8080番ポートで待ち受けているのSquid HTTPプロキシサーバへ SSH の ~/.ssh/config で「LocalForward 8080:localhost:8080」という設定を入れていました。つまり手元の8080番のTCPポートが自宅サーバのSquidの8080番ポートに繋がっている状態、手元の8080番ポートがHTTPプロキシサーバに見える状態になっていたのです。

この設定をオフにして新しいMacBook AirでStation TV i for Macを起動させてみると、なんと画面が映るではありませんか。

「起動時に手元にHTTPプロキシサーバが起動しているかポートスキャンしているのか?」と新たな謎仕様を疑ったりしたのですが、ローカルの8080番ポートにLocalForwardしている設定を試しに1080番ポートにしてStation TV i for Macを起動して、sshとStation TV i for Macを再起動してみても映るではありませんか。よく分かりませんが、Station TV i for Macは、起動したマシンの8080番ポートを見て、開いている(もしくは開いていてそれがHTTPプロキシサーバのポートである)ことを確認すると、映像も音も出さないらしいということが分かりました。

自宅限定ではありますが、普段使いのMacBook Airでフルセグが観られるようになって、ようやく快適になりました。

録画対応のマシンも今ではだいぶ安くなりました。欲しい。

Mac版Googleドライブのディレクトリを変更する方法

おがた (@xtetsuji) です。

Mac OS X 版の日本語「Googleドライブ」アプリを入れると、ホームディレクトリに「Google ドライブ」という名前のディレクトリが作られて、特にコマンドラインで扱いづらいので名前を変更したいんだけど…という話です。

はじめに

$ cd ~/Library/Application Support/Google/Drive/

ls をすると

$ ls 
CrashReports/                   snapshot.db-shm
FinderExt.bundle/               snapshot.db-wal
cacerts                         sync_config.db
cloud_graph/                    sync_config.db-shm
lockfile                        sync_config.db-wal
mach_inject_bundle_stub.bundle/ sync_log.log
snapshot.db

といった感じ。今回は設定が入った sync_config.db が主役です。

念のためバックアップ

$ cp sync_config.db sync_config.db.bak

情報書き換え

sqlite3コマンドを使って設定情報をUPDATEします。今回はホームディレクトリ直下に “Google Drive” というディレクトリとすることにしましょう。

Googleドライブアプリをいったん終了させて、以下のように

$ sqlite3 sync_config.db "UPDATE data SET data_value='$HOME/Google Drive' WHERE entry_key='local_sync_root_path'"

とコマンド入力をすれば良いです。date_value= 部分を適宜書き換えればOK。

実際のディレクトリ名の変更も忘れずに。Googleドライブアプリを終了したあと

$ cd
$ mv "Google ドライブ" "Google Drive"

を実行してリネーム(Finderでやってもいいです)。そしてアプリを再度起動するとよいでしょう。

エラー「Googleドライブ フォルダが見つからないため…」が出た場合は設定が間違っている可能性があるので、バックアップを戻してもう一度精査してください。

設定は自己責任でお願いいたします。

今回は「Google ドライブ」アプリ バージョン 1.8.4357.4863 で検証しました。

実際いまはどうしているの?

結局Googleドライブアプリはアンインストールしてしまいました。どうも馴染めなかった。どうせGoogleドライブ特有のファイルをダブルクリックしたらブラウザに飛ばされるのであれば、最初からGoogleドライブのトップ画面にブラウザで飛んだほうが便利だし、ブラウザ上ではドラッグアンドドロップでアップロードとかが出来るので、特にブラウザで不便を感じないというのもありました。

同期系のストレージであればDropboxが、WebDAV系ストレージであればBox.comがあるので、ひとまずGoogleドライブはそれらとは違う使い方をしているという感じです。

参考

GitHubにpushやpullできなくなったときの対処法

おがた (@xtetsuji) です。

今日、ふとGitHubにpushしようと思ったら以下のようなエラーが出てしまってできませんでした。

ogata@languedechat:~/git/@github/xtetsuji/dotfiles$ git push origin master
no matching cipher found: client arcfour256 server aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

なんでだろうと思ってSSH秘密鍵まわりを確認したりしたりしたのですがうまくいかず。

チャット(Yancha)で聞いてみたら「以前そうなったけど、放置してたらいつのまにか治った」という話もあったりして、放置しようか、でもこのままの状態がいつまでも続くのは嫌だなーと思ってさらに調べていたら、以下のようなSSH設定が ~/.ssh/config にあったのを削除(またはコメントアウト)することで回避することができました。

# https://gist.github.com/e05183045b0db0e0c674
Host github.com
	Compression yes
	Ciphers arcfour256

GitHub側でarcfour256を一時的に受け付けなくなったということでしょうか。たしかに上述のGitHub側からのエラーを見ると、暗号化に関係するような感じもします。

この設定を書いておくとGitHubでのSSHを使ったcloneが速くなるという話がウェブ上にあるのですが、こういうトラブルに巻き込まれることもあるようです。検索しても出てこなかった。もしpullやpushができないという状況に遭遇したら、このSSH設定が存在すればオフにして再施行してみると良さそうです、というメモでした。

追記 (2013/11/14 20:15): 「GitHubのSSHゲートウェイはユーザごとにロードバランシングしていて、一部のゲートウェイサーバの変更によって、特定のユーザだけ一時的にこういう症状が出るのではないか」という説もいただきました。確かに私がこの症状に見舞われていた時、特に世間は騒いでいなかったわけで、納得出来る仮説であります。

Google日本語入力のローマ字テーブルを設定するとはかどる

おがた (@xtetsuji) です。

ここ最近長文エントリが続いたので、軽めの話題。

最近では「Google日本語入力」がだいぶ普及してきました。無料であること、軽い事、Windows/Mac/Linuxマルチプラットフォームであること、Googleの面目躍如とも言える名詞の変換効率の良さなど、色々な要因があると思います。

さて、Google日本語入力をあまりよく知らない人が驚く機能として「変換モードをオンにして zh って打ったら ← (左矢印) が出た」というもの。これは変換辞書ではなくローマ字テーブルに定義されているものです。これ自体、Googleの発案ではなく、UNIX/Linuxで大昔から使われていた日本語変換ソフトCannaや、その後継として最近使われているAnthy等で普通に定義されて使われているものなんです。

実際に設定から「ローマ字テーブル」のところまでたどってみてください(各OSで若干手順が違うかもしれません)。

Google日本語入力のローマ字テーブル設定

色々な初期定義があることがわかります。このローマ字テーブルの定義に追加をすることで、記号等を素早く出す定義を作ることができます。

かな漢字変換の変換設定を追加することで効率アップという話はいたるところでききます。「よろ」と入れれば「よろしくお願いします」と出るような類。ただ、Google日本語入力ではサジェスト機能があるので、一度実際の変換で覚えさせればそういう設定が必須ではないという優秀さもあります。

ローマ字テーブルの定義を見てみると、zとの合わせ技で一文字の記号を出すという設定が多いのが分かります。ローマ字変換ではあまり使われない子音であることと、qwerty配列キーボードの場合は左手→右手という流れで打てることが意識されていることが分かると思います。なので新規追加する設定では、qやxを選んでもいいのですが、まずは無難にzの「空いているところ」を選ぶとよいでしょう。

設定はボタンを押すことで直感的に出来ると思います (各OS版やGoogle日本語入力のバージョンによって操作に差異があるかもしれません) ので説明は省きます。

以下のスクリーンショットでは、zn と打つと ▼ が出力され、zm と打つと ▽ が出力される設定を追加してみたところです。これは私がよくテキストメールなどでセクションの頭文字として使うことが多い記号だからです。人によっては、四角記号や一般的なセクション記号 § や、ダガー記号 † ‡ を登録しておくとはかどるかもしれません。

ローマ字変換テーブルに設定追加

 

変換辞書の設定との使い分けですが、変換辞書はローマ字変換テーブルと比較して例えば以下のようなデメリットがあるでしょう。

  • 意図した変換候補の順番が常に最新とは限らない。また複数出てきて選択が煩わしいこともある (「さんかく」と打って複数出てきたりする)
  • 逆に変換を意図しない場合に出てきて煩わしいことがある (「よ」で「よろしくお願いします」が出る設定の場合、意図せずそれが出てきて、うっかりチャットに放流したりすることがある等)

逆に、ローマ字変換テーブルは変換辞書と比べて例えば以下のようなデメリットがあるでしょう。

  • キーバインドの数に制限がある
  • 特に定義を多くし過ぎると覚えきれない
  • 設定として変換辞書ほど一般的ではないので、乗り換え時の移植性に困難が伴う可能性がある

「変換辞書」もGoogle日本語入力のサジェスト検索と組み合わせると今までのIMEに比べて随分とはかどりますが、要所要所に「ローマ字変換テーブル」の設定を導入すると結構便利。人によって使い分けはさまざまかと思いますが、色々と模索してみると良いかもしれません。オススメです。