2016年6月15日水曜日

nicoWnnG のユーザー辞書を作成してみた

Android の IME として nicoWnnG を使っている
昔からある OpenWnn/nicoWnn をベースにしたアプリで
Google日本語入力ATOK 等の有名アプリと比べると変換機能が劣るものの
英字・数字・記号入力時に
PC 同等の数字・記号両方揃った QWERTY 配列が使えるという


他のアプリが持ってない機能
があるため、これまで使ってきた。

nicoWnnG のキーボード

PC のキーボードとほぼ同じ配置。キーが一つ一つが小さく見えるが、思ったより普通に入力できる。
Tab キーや Ctrl キーがあるのも美点。 Ctrl+c でコピーとかできるしね。


これと、例えば Google 日本語入力を比較すると、こんな風に
英字
数字
数字や記号を入力する場合、わざわざキーボードを切り換えなければならない。
日本語、英字、数字で 3 種類のキーボードを切り替えないといけないので面倒だ。


しかし、最近やはり変換精度の悪さが気になりだしてきて…
#「きい」で「紀伊」が変換できないなんて…


もう少しどうにかならんものか…


そうだ!(・。・)b


足りない単語はユーザー辞書に登録すればいいんじゃね?


幸い、 nicoWnnG にはユーザー辞書のインポート機能がある。
ヘルプを見ると…ふんふん、タブ区切りのテキスト形式か。
今 PC で使ってる SKK の辞書を加工したら、簡単にできそうじゃないか。
ただし、登録できる単語数が 10000 までなので、ある程度絞る必要がある。

SKK-JISYO.L 辞書をテキストエディタで開いてと。175832 行あるな。
ざくっと一行一単語で考えると、 1/180 に削る必要がある。


え、∑(=゚ω゚=)マジ!?


まあ…なんとかなるだろw


最初に色々書いてあるが、 ";" で始まる行はコメントで変換関係ないから削除。

次に出てきたのが送り仮名付きの入力を変換するのに使うルール郡。
わるがしこs /悪賢/
「わるがしこさ」「わるがしこそ」等を「悪賢さ」「悪賢そ」等に変換するためのルールであるが、辞書への登録は単語単位なので必要なし。
送り仮名なしの単語郡は ";; okuri-ari entries." 以下に書いてあるので、そこまでの行をざくっと削除

そうすると、半角記号→全角記号の変換ルールが出てきた。
! /!/感嘆符/
必要ないので削除。


その次の数字入りの入力に関する変換ルール
#、#てん /#1、#1点/
これも単語単位でないので削除。

次。
>あい /愛/
接尾辞変換…だから単語単位だっつってんだろうが(゚Д゚)ゴルァ!
削除。

AIDS /エイズ/後天性免疫不全症候群/
アルファベット→カタカナ変換は PC ではよく使うがスマホでは使わね。削除。

あ /亜/吾;私/彼;=吾/阿;阿呆/婀;婀娜っぽい/痾;宿痾/唖;聾唖/亞;「亜」の旧字(人名用漢字)/椏;また/娃;美女/哇/襾/安;?/明;?/嗚;?/
…やっと、普通の変換ルールが出てきた。
しかし、漢字一文字の変換って必要だろうか。いや、必要でない。
久し振りに反語を使ってみたので、削除。

あ> /亜;亜熱帯,亜低木,亜硝酸/
接頭辞変換も以下同文。


…これで、だいぶ減ったはず。
しかし、作業はこれから。
まず、 "/" 区切りになっているのをタブ区切りにしないといけない。
その際、
あいかわ /相川/愛川/鮎川/合川/
となっている箇所は
あいかわ <tab> 相川
あいかわ <tab> 愛川
あいかわ <tab> 鮎川
あいかわ <tab> 合川
のよう一行ずつ読みと変換結果、という形に加工しないといけない。

さすがに、一つ一つ手作業でやってると日が暮れるので、 perl スクリプトを書いて変換。
最終的にできた単語数…
167258

まだ多いわ!!
て言うか減ってねぇ!! (#`皿´) ムキーーーー!




…結果、単語の少ない M 辞書 を使うことで単語数を 5966 まで抑えることができました




どうせまた使うだろうから、使ったスクリプトを残しておく。ついでに "/" の処理だけではなく、その前に書いた「余計な行の削除」も含めておいた。
Dropbox にも置いてあるけど…。ま、自慢念のためってことでw

ちなみに、 SKK の辞書は EUC-JP, nicoWnng の辞書は Shift-JIS である。
また、使った Cygwin の $LANG は utf-8 になっている。

2016年1月29日金曜日

LINE で共有できる写真や動画について

最近、 LINE に動画を投稿しようとしたらできなかったので、動画の OK 条件を調べてみた。
# ついでに写真の場合も調べてみたw

  • 動画: 以下を全て満たすこと ※条件に合わないと投稿できない
    • 時間: 1 分 30 秒以下
    • ファイルサイズ: 200MB 以下 (情報ソースはこちら公式ページには具体的な数値は書いてない…)
      ⇒長辺 640 にリサイズされるようだ。(1080×1920 の動画は 270×480 になった…)
      でも、 640×360 で 1 分 30 秒なら絶対 200MB もいかないけど(゚Д゚)?

  • 写真: トークでもアルバムでも一緒?
    • 長辺 1280 ピクセルまで
      ※条件に合わない写真は投稿時にリサイズされるようだ

2016年1月27日水曜日

端末にインストールされているアプリのパッケージ名を見る

とある事情で端末にインストールされているアプリの「パッケージ名」を知る必要ができた。

特にパッケージ名を表示する以外の機能はいらなかったので、
端末にインストールされている全アプリのパッケージ名を一覧表示するだけシンプルなアプリを App Store からインストールした。

実際使った時にはタップした箇所をコピーする機能くらいつけとけ!! っていう至極まっとうな理不尽な思いが頭をよぎったりしたけど (^^;)


とにかく、その場はそれで事済んだのだが、後日衝撃の事実を知る。

えっ、ターミナル上で pm コマンド打つだけでよかったの!?
$ pm list packages

※PC から adb 経由で使う場合は
> adb shell pm list packages

2015年5月1日金曜日

bash で長いコマンドを打つと折り返しが発生しない

cygwin の bash を使ってて、例えば

curl http://www.google.com

と実行したい場合

この様に入力していくと
途中でカーソルが先頭に戻り
となってしまう

また、この状態でカーソルキーや BS 等でコマンドを修正しようとするとカーソル位置がずれ、編集できない。

以前にもこんなことがあって、直した気がするのだが
その直し方を忘れてしまった ( ̄∇ ̄;)
最近記憶力がなくて困る…(-_-;)

と言うわけで、今度な忘れないようメモっておく。
ここに書いてあるように、プロンプトの問題なので

PS1="\e[01;31m[\u@\H \W]\$ \e[00m"
となっていたら
PS1="\[\e[01;31m\][\u@\H \W]\$ \[\e[00m\]"
のように表示しない文字をエスケープシーケンス '\[' '\]' で括ってやれば良い。


…でも、昔はエスケープシーケンスで括らずとも動いていたぞ…???

2015年4月11日土曜日

宙玉してみました

宙玉やってみました
ここを参考に、周りにあった適当な材料で作成。
ビー玉とアクリル板とお菓子箱www
まずは試し撮り
まぁまぁかな
で、調子にのって外に出てみる
流石にお菓子箱丸出しは恥しいので黒テープ巻いたけど(^_^;)



…あれ?
何かイメージと違う…


ちょっと、周りの画ボケ過ぎてないか…?


これはボケ少なめか
これは真っ白

で、試行錯誤の末
ん?背景の黄色って…
中心のタンポポの色だよね…?
要は画角が狭過ぎんじゃね…?
確かにケラれを防ぐため、やや焦点距離多めにしてたけど…。


試しに、いちばんワイドで撮ってみる。
お?それなりに良いボケ具合…

中心をトリミングしてみると
おお、アクリル版のキズまではっきり見えるwww
…けっこう良い感じ♪
でも、 100円ショップのビー玉何かの商品ケースから切り出したアクリル板ではこれが限界か(-_-;)
ちなみに、ズームレンズではマクロ撮影できないのでクローズアップレンズも買いました

続・IrfanView で「前のファイルへ」「次のファイルへ」が使えない

以前、 IrfanView で「前のファイルへ」「次のファイルへ」が使えない で書いた

日本語版 (古いバージョン) には…

脆弱性があるそうです ○| ̄|_ OTZ orz .,



で、最新版に update することにしたが、「前へ」「次へ」が使えないのが痛い…



…しかし!!!



別に最新版でも普通に使えることがわかった。

2ch の記事より。
オプションの基本設定→言語、でUnicodeプラグインのチェックをOFF にすれば解決。
だ、そーです( ̄_ ̄ ;;)
ちなみにコレ↓


ダイアログが一部文字化けしてたのも治ったし、よかったよかった\( ゜∇゜)/


しっかし、 Unicode Plugin 読み込んだら悪さするっていったい…orz

ちなみに、メニュー等の日本語化は公式サイトでちゃんと日本語 plugin が出てるので問題なし。

2014年11月9日日曜日

PQI Air Card その4

その3 からの続き

そりゃそーか。

よく参考ページを見直してみれば、 perl は busybox の中じゃなくて 122_TREK/usr/bin にあるじゃねーか。

あー恥しい…


まあ、気をとりなおして。
シンボリックリンク張り直してっと…

# rm /usr/bin/perl
# ln -s /mnt/sd/.linux/122_TREK/usr/bin/perl /usr/bin/perl
# perl --help
/bin/sh: perl: not found


( ・_・)アレ?

2014年10月29日水曜日

PQI Air Card その3

その2からの続き


ここで紹介されているのは「ホットスポット接続し、IPアドレスを twitter で通知」、というものだが。

twitter はほとんど使っていないので、何か別の方法がいいなー

インターネット繋がってないと通知来ないし。。。
そもそも、ただ同一ネットワーク上の PC かスマホにメッセージを送ればいいわけで。

例えば、 IP メッセンジャーとかwww


というわけで、コマンドラインから IP メッセンジャーにメッセージを送る方法を探してみると

IPメッセンジャーへメッセージを送る Perl版

というのを見つけた。さっそく試してみよう。
上記ページを見ると、 Encode.pm 版 (perl 5.8 以降) と NKF.pm 版 (5.8 より前) があったが
ソースを見ると、日本語のエンコードに encode()/decode() を使うか nkf() を使うかが違うだけぽい。

まあ、別に IP アドレスと接続完了のメッセージが送れればいいので…


別に日本語使わんでいーわヽ( ´ー`)ノ。

てなわけで、エンコード系の処理を削除して使うことにする。
改良後のソースコードはこんなんなった。

#!/usr/bin/perl -w
#
# ipmsg.pl <host to send> <your name> <message>
#
# ipmsg.pl <host to send> <your name> ... input message from STDIN
#
use Socket;
use Sys::Hostname;
## to info
my $tohost = gethostbyname($ARGV[0]);
my $toport = 2425;
## from info
my $myname = $ARGV[1];
my $myhost = "PQI Air Card";
## net info
my $proto = getprotobyname('udp');
my $ihost = gethostbyname(hostname());
my $ipaddr = sockaddr_in(0, $ihost); # 0 means let kernel pick
my $hispaddr = sockaddr_in($toport, $tohost);
my $sendtext;
if (@ARGV >= 3)
{
$sendtext = $ARGV[2];
}
else
{
$sendtext = <STDIN>;
}
$sendtext = sprintf('1:%d:%s:%s:32:%s', int(rand(100))+1, $myname, $myhost, $sendtext);
socket(SOCKET, PF_INET, SOCK_DGRAM, $proto);
bind(SOCKET, $ipaddr);
send(SOCKET, $sendtext, 0, $hispaddr);

とりあえず、 PC 上でスクリプトを動かして動作確認。ちゃんと動いた。
ではこれを、 SD カードにコピーして。
さて、動かしてみよう!!
# /mnt/sd/ipmsg.pl localhost ozawa hogCan't locate Socket.pm in @INC (@INC contains: /usr/local/lib/perl5/5.14 /usr/local/lib/perl5/5.14 .) at /mnt/sd/ipmsg.pl line 8.BEGIN failed--compilation aborted at /mnt/sd/ipmsg.pl line 8.

くっ…orz

どうやら、 Socket.pm がないんですね…

しかたない、さっきのページからリンクを辿り、 PQI Air Card 用にコンパイルされた busyboxここからダウンロード。
解凍して、 SD カードのルートに .linux というディレクトリを作ってその下に入れる。
で、シンボリックリンクをはり直して…

# rm /usr/bin/perl
# ln -s /mnt/sd/.linux/122_TREK/busybox /usr/bin/perl
# perl --version
perl: applet not found

(  ゜ ▽ ゜ ;)エッ!!…


もしかして…もしかしてだけど… perl 含まれてない!?


OTZ orz .,

2014年10月19日日曜日

PQI Air Card その2

その1 からの続き

まーそりゃそうか、普通 telnet なんか使わないもんなー
windows では、サービスが無効になってるので、コントロールパネルから有効にしてやれば使えるらしい。
まーでも、 DOS プロンプトで telnet なぞ使いたくないので cygwin の telnet を使おう。
cygwin の inetd パッケージをインストールしてっと。

それから、 SD カードアダプタにより接続が安定するのとしないのがあるらしいのでそれぞれチェック。

  • ノート PC の SD カードスロット  ×
  • maxell の UA20-MLTII  ×
  • サンワサプライの ADR-ML14R  ○
よし、動くのがあった。
まず、 wifi で接続して…
それから telnet で接続して…

とりあえずわかったこと。

  • SD カード本体は /mnt/sd
  • /usr/local/bin は /mnt/sd/bin
  • /usr/local/bin は /mnt/sd/sbin
その 3 へ続く

PQI Air Card その1

引き出しの奥に眠っていた PQI Air Card

EOS7D で Wifi 転送等使うために買ったのだが
ネットでは動作報告があるのに、残念ながら俺の環境では動作しなかった…orz
(CF アダプタの相性か?)

しかしながら、たまたまこんな記事とかこんな記事とかを見て
何か面白そうだなぁと思い引き出しの奥から引っぱり出して
とりあえず telnet 接続しようと…



…ん? telnet がねぇΣ( ̄□ ̄;

→その 2 に続く

2014年9月14日日曜日

IrfanView で「前のファイルへ」「次のファイルへ」が使えない

前から不思議に思っていたが、今日気付いた。

どうやら、パスに日本語が入っているとダメらしい。

ただ、日本語が全部駄目かとういとそうではないみたい。
たぶん、文字コード関連でおかしくなっているのだろう。

と、いうことで 最新の IrfanView(英語版、日本語 plugin あり) ではなく
IrfanView 日本語版のページ から日本語版を落としてインストールしなおしたらいけた。
バージョンが古いが、しゃーない。しばらくコレで行くか。


インストール時にいくつか詰まったので解決法をメモ。

・自己解凍形式で落としたのだが、解凍先が "C:\Program Files\IrfanView" になる。
  →使っているのが 64bit 版なので、  "C:\Program Files (x86)\IrfanView" に変更。
  当然、 Program Files のアクセスには管理者権限が必要なので exe は「管理者として実行」する。
  まぁ、適当な箇所に解凍して管理者権限でコピーしても同じだろうが…。

・そのまま実行して、オプションで関連付けを変更しても反映されない
  当然、管理者権限が必要なのでオプションを変更するときだけ「管理者として実行」する。

JINA Drawer

JINA Drawerを使ってみた。 自分でアプリ分別してフォルダ毎に分類できるので便利✨️ でも、設定をバックアップしようとしてハマった どうやら いや、普通「Backup data」を選ぶだろこんなん😾