サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
jarp.does.notwork.org
■ プラグが抜けていたことに1ヶ月気づかず なんか全然充電されないないなとUSB ACアダプタを疑っていたが、 なんとテーブルタップのプラグが抜けたままになっていた。 まさかそんな単純な理由とは。 ■ Windows7のWindows Updateでログオンしているユーザーがいる場合には自動的に再起動しない 備忘録。 ローカルコンピューターポリシーの[管理用テンプレート]-[Windows コンポーネント]-[Windows Update] スケジュールされた自動更新のインストールで、ログオンしているーザーがいる場合には自動的に再起動しない を有効に。
■ gifsicle gifsicleを使えばGIFアニメは高速で作成可能。 ただ元の画像もGIFじゃないとだめなので、変換しておく必要あり。 % gifsicle -V --delay=100 -l0 -o foo.gif foo/*.gif
■ Amazon::SimpleDB::ClientがRecursive dependencyでインストールできない まあ、そういうわけでamazon-simpledb-cliがインストールできなくて、 他の方法を探していたというのが昨日の真相。 % cpan Amazon::SimpleDB::Client Reading '/home/eban/.cpan/Metadata' Database was generated on Sat, 02 May 2015 01:29:02 GMT Running install for module 'Amazon::SimpleDB::Client' Fetching with LWP: http://www.cpan.org/authors/id/D/DT/DTRISCHUK/Coro-Amazon-SimpleDB-0.04.tar.gz
■ 05. n-gram sedを使えば結構簡単だった。 % echo 'abcdefghijkl' | sed ':;h;s/\(...\).*/\1/p;g;s/.//;t;d' abc bcd cde def efg fgh ghi hij ijk jkl \(.\{3\}\)と書けばわかりやすいか。 ■ 06. 集合 #シェル芸 和集合、積集合、差集合はすべてjoinコマンドで可能。 % bi-gram() { echo "$1" | sed ':;h;s/\(.\{2\}\).*/\1/p;g;s/.//;t;d' | sort -u; } % bi-gram paraparaparadise ad ap ar di is pa ra se % bi-gram paragraph ag ap ar gr pa ph ra % join <(bi-gram paraparapara
■ ネットオフからの入荷メールを見逃す 見逃すといっても朝来たメールを夜読んだというぐらいなんだけど、すでに買われていた。 最近メールはひどい時は1週間ぐらい読まないときもあるので、 別の手段で通知させることにした。 iftttを使うとgmailの検索機能+pocketに保存ってことができるので、 subjectを拾ってpocketで見ることにしてみた。 次はちゃんと気づけるか。 ■ バックグラウンドで動かしたプロセスをCTRL+Cで殺す方法 シェルスクリプトの中で&つけて実行してwaitで待つってのはよくやると思うが、 CTRL+Cで殺すとそいつらが残ってしまいkillしまくるというのもよくある。 そこでぐぐると、Stack Overflowでこんな記事が見つかった。 kill background process when shell script exit いろいろ方法はあるようだけ
grep3連発。 % seq 2 5 > a % seq 1 9 > b % seq 5 11 > c % seq 3 6 > d % grep -c 1 ? | grep 0 | grep -o '^.' a d と思ったら-Lという素敵なオプションがあるなんて、びっくりですわ。 -L, --files-without-match Suppress normal output; instead print the name of each input file from which no output would normally have been printed. The scanning will stop on the first match.
■ sedでも対応してみる awkの$3は3つあることを確認している。 つまりsedでも3個あることを確認すればいい。 フィールドが3個ということは区切りは2個なので/ .* /でok。 % seq 100|xargs -n3|sed '/ .* /s/[^ ]*$/Fizz/'|xargs -n5|sed '/ .* .* .* /s/[0-9]*$/Buzz/'|xargs -n1 ちょっと不恰好だけど、正規表現で条件を書けばいける。 ■ readの挙動 while read lineで読んでいるときに最終行に改行がないとループを抜けてしまう。 だが、read自身はちゃんとlineへ反映させているのであった。 % bash -c 'echo -n foo | while read line; do echo $line; done' % bash -c 'echo -n foo | {
■ fitbitからのお知らせ 常にNexus7と同期させるようにしたためか、 fitbitのバッテリーの残量が少なくなるとメールを送ってくる。 これはかなり助かる。 同期してるとデバイスで見る機会が減るので、 気づかずに完全にOFFになってるときがあるんだよねえ。 ■ jqを使ってLTSVをJSONに変換する jqって何でもありだな。 % echo $'foo:1\tbar:2\nfoo:3\tbar:4' foo:1 bar:2 foo:3 bar:4 % echo $'foo:1\tbar:2\nfoo:3\tbar:4' | jq -s -R 'split("\n")|map(split("\t")|map(split(":")|{"key":.[0],"value":.[1:]|join(":")})|from_entries)' [ { "foo": "1", "bar": "
■ PDFの綴じ方を右に Acrobatだとプロパティの詳細設定に読み上げオプションってのがあって、 綴じ方を右にできる。が、これは数が多いとやってらんない。 ぐぐってみると/ViewerPreferences<</Direction/R2L>>を追加すればいいらしいので、 % sed -i~ 's,/Type \?/Catalog,&/ViewerPreferences<</Direction/R2L>>,' foo.pdf としてみたが、どうにも壊れたPDFになったしまう。試しにこの壊れてるPDFを % pdftk foo.pdf output foo-fixed.pdf としてみたらきれいなPDFになった。とりあえず、これでいいか。 ■ pdfsam pdftkできれいになったのは偶然のようで、 いろいろ試すと右綴じ指定が消えることのほうが多かった。 そこでちゃんとしたツールを探して
■ gawk length(array)の過去のバグ 斎藤さんにgawkのバグがあったと指摘されたので調べてみた。 lengthが配列対応されたのが3.1.5だったが、 どうも対応が不十分で関数内で使うとスカラー扱いになってしまうというバグだった。 3.1.7で修正されていた。 % gawk-3.1.5 'BEGIN{array[1]=1;print xlength(array)} function xlength(a){return length(a)}' gawk-3.1.5: 致命的: スカラーコンテキストで配列 `a (array から)' を使用する試みです % gawk-3.1.6 'BEGIN{array[1]=1;print xlength(array)} function xlength(a){return length(a)}' gawk-3.1.6: 致命的: スカラ
■ 1日ごとの最低気温をもとめる さいたま市の1時間ごとの気温データはとりあえず20日と21日だとこんな感じ。 2014-09-20 01:00 18.5 2014-09-20 02:00 18.0 2014-09-20 03:00 18.1 2014-09-20 04:00 17.5 2014-09-20 05:00 17.5 2014-09-20 06:00 17.5 2014-09-20 07:00 18.0 2014-09-20 08:00 18.6 2014-09-20 09:00 18.7 2014-09-20 10:00 19.0 2014-09-20 11:00 19.4 2014-09-20 12:00 19.7 2014-09-20 13:00 20.2 2014-09-20 14:00 20.5 2014-09-20 15:00 20.7 2014-09-20 16:
■ trで文字列の繰り返し aからmを0へ、nからzを1へ変換したいとする。 trでやるならこんな感じになる。 % bash -c 'echo {a..z}' | tr a-z 00000000000001 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 足りない分は最後の文字が使われるので、 1はまあそれでいいんだけど、0を何とかしたい。 % bash -c 'echo {a..z}' | tr a-m 0 | tr n-z 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 2回に分けるのはわかりやすいが、man trしてみたら [CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0 という記述
■ zshのsubstring bashと同じように % foo=barbaz; echo ${foo:2:3} rba という感じの表記も可能だが、これはまさにbash互換なので0から数える仕様になってる。 startとlengthだ。一方zsh本来の記法は % foo=barbaz; echo $foo[3,5] rba のように1から数えてstart,endになってる。なんともすごい世界だ。 この記法だと代入もできて % foo=barbaz; foo[3,5]=hoge; echo $foo bahogez 左辺にもなれる。start,endなので % time=1234; time[3,2]=:; echo $time 12:34 のようにendをstart-1に指定すればその直前に挿入にすることができる。 ■ GMANEが更新されない RSSが更新されないのが解消されたと思った
■ convertで丸く切り抜く -drawで円が描けるのでそれを利用して切り抜く。 % convert bakeneko-eban-twitter.png \ \( +clone -threshold -1 -negate -fill white -draw "circle 150,150 150,0" \) \ -alpha off -compose copy_opacity -composite bakeneko-eban-twitter-circle.png こんな感じ。 circleの引数はちょっと変わっていて、 中心と半径ではなく中心と半径分離れた1点を指定する。 つまり指定のしかたはいくつもある。 ■ convertで角丸の形に切り抜く ベジェ曲線とか使うまでもなく、そのものずばりのroundrectangleが使える。 % convert bakeneko-eban-twi
■ RD-H1がメールを受け取ってくれない 新たな環境になってからRD-H1のネットワーク設定は放置状態だったが、 まあ、192.168.0.0/24なのは変わりないし問題ないだろうと思ったら、 メールを受け取ってくれない。しかも時計がちょっとずれてる。 ということは全然外とつながってないわけで見直してみると、 今回新たに設置されたルータにはDNS機能がないということがわかった。 RD-H1はHTTPサーバが内蔵していてもろもろブラウザから設定できたりするので、 DHCPではなく固定IPアドレスで運用していたが、それが仇になった形。 面倒なので8.8.8.8にしようかと思ったが、最近あんなことがあっただけに、 DHCPが配ってるDNSにした。これでメールもNTPもok。 2015年でデジアナ変換は終了するらしいが、それ以降もまだまだ使えてしまうな。 ■ zshのhistoryのmetafy
■ sshでSendEnvをキャンセルさせるには sshするとLANG等が勝手に引き継がれるのは、Ubuntuだと/etc/ssh/ssh_configに SendEnv LANG LC_* と書いてあるからだとわかったが、これをやめる方法が見つからない。 ぐぐってみるとなんとほんとにないそうだ。 Bug 1285 – provide fallback options /etc/ssh/ssh_config 2007年に報告されている。最後の2013年11月には Damien Miller 2013-11-16 02:03:24 EST Created attachment 2375 [details] Add UnSendEnv option This adds an UnSendEnv option that allows cancelling SendEnv. It supports
■ cygwin: ~/.ssh/configでControlPathを指定するとエラー cygwinでもsshで多重接続してみたらなぜかエラーになるので調べたら、 なんかいろいろと未実装ということらしい。 Corinna Vinschen - Re: Can not make port forwarding from Cygwin when ControlMaster/ControlP 残念。 ■ AmazonのURLを単純に 今までは javascript:location.href='http://www.amazon.co.jp/dp/'+document.getElementById("ASIN").value; というbookmarkletを使っていたが、どうも最近これだと変換されないときがあって調べてみると、 確かにid="ASIN"がない場合があった。ないときはname="
■ code golf - String of alphanumeric characters to a sorted list of comma-separated ranges このRubyの解なんだけど、与えられた文字以外を改行($/)に変換するという発想がすばらしい。 puts [*?0..?Z].join.tr('^ABC321STPpJqZZr0'.upcase,' ').gsub(/\B\w+\B/,?-).scan(/\S+/)*', ' puts [*?0..?Z].join.tr('^ABC321STPpJqZZr0'.upcase,$/).gsub(/\B\w+\B/,?-).scan(/.+/)*', ' puts [*?0..?Z].join.tr('^ABC321STPpJqZZr0'.upcase,$/).gsub(/\B.+\B/,?-).scan(/.+/
■ Hototの「後で読む」機能 Hototで逆三角形ボタンを押すと出てくるメニューの一番下に「後で読む」があるが、 これってURLが省略されてるとそのまま登録してしまって非常に残念なことになる。 たとえばt.coが展開されるまではいいが、その結果が長いと http://www.tenki.jp/amedas/3/14/43241.html?rss20... のように途中から省略されてしまう。 クリックすればリンク自体は展開結果そのものなのでブラウザへはちゃんとしたURLが伝達する。 実に悩ましい。いっそのことお気に入りのブラウザをPocketへ追加するスクリプトにしてしまうか。 だいたいPocket経由にしているし。 ■ Pocket API まずは Pocket Authentication APIでconsumer keyとaccess tokenを獲得する。 登録したければcurl
■ irbの補完を1回のタブで済ます方法 ~/.irbrcに require 'irb/completion' と書いておけば補完できるが、 候補が複数ある場合はタブを2回押さないといけない。たとえば % irb irb(main):001:0> "hoge".u<TAB><TAB> "hoge".unpack "hoge".untrust "hoge".upcase "hoge".upto "hoge".untaint "hoge".untrusted? "hoge".upcase! irb(main):001:0> とこんな感じに。これを1回のタブを押すだけで候補を出すようにするには~/.inpurcに set show-all-if-ambiguous on と書いておけばいい。 ただinputrcなのでこのままではreadlineを使ってるソフトは全部そのような挙動になる。 bas
■ rotate counterclockwise 休みに入ったので久し振りに挑戦。とはいうもののこれってtransposeなのでちょっと変更すればいけてしまう。 とりあえずBashで。とか考えてるうちにtransposeのほうが縮んだ。 ■ 傾けるのが面倒な人へ これをわざわざNexus7で見たわけだけど、 いまいちなんだかわからないのでなんとかしてみる。 傾けて見るってことはその方向を縮小すればいいわけで、convertですよ。 % convert https://pbs.twimg.com/media/BcFeA0HCIAAMG1b.jpg -resize 100%x10% x: % convert https://pbs.twimg.com/media/BcFeA0HCIAAMG1b.jpg -resize 10%x100% -rotate -90 x: 結果を書くような無粋なまね
■ ebook-convertの--output-profileに困る sonyを指定すると縦が754に強制的にサイズ変更してしまうのでどうにも困った。 --output-profileなしでもなぜか754になってしまうしなあ。 とりあえずsony900とかいうのでごまかしているが、まだ小さい。 サイズ無制限みたいなprofileがあるか調べる。 ■ Calibreの出力プロファイルにタイミングよくT3用が なんか更新があるよというので1.12.0にアップデートしてみると、タイミングよくT3が現われた。 758x934とプロファイルの説明にはあるね。 それはそれとして、Tabletを選べば画像のリサイズはしないようだ。 ebook-convert的には--output-profile Tabletで。 ■ ImageMagick convertのファイル名の扱い parallel conv
■ adb devicesでno permissionsになる理由 なんか2台目がなりやすいなと思ったら、 それ/lib/udev/rules/51-android.rulesに登録してないよ。 追加したらsudoしなくてもいけるようになった。 なんと、それが原因だったんかい。 ということは/lib/udev/rulesに何も書かなくても、 sudo adb start-serverすればいけるんだな。 % adb kill-server % sudo mv /lib/udev/rules.d/51-android.rules % sudo adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * % adb devices List of de
■ Android版rubyを作る akrさんからmake-standalone-toolchain.shすれば--sysroot不要との情報を得た。 % $NDK_ROOT/build/tools/make-standalone-toolchain.sh --install-dir=$HOME/android/arm-linux-androideabi として、PATHに$HOME/android/arm-linux-androideabi/binを加えればok。 rubyはtrunkを使うのでtrunk版rubyもインストールしておく。 あとはこんな感じで。 % trunk=/some/where/ruby/trunk % mkdir trunk-android % cd trunk-android % ac_cv_func_getpgrp_void=yes ac_cv_func_se
■ せっかくなのでボタンのアイコンを作った はんこを作る過程でできた星をちょっといじってボタンアイコンに。 % ruby -e 'include Math; r=100; puts "path \"M"+11.times.map{|i| s=i%2==0?0.4:1; th=(126+i*36)*PI/180.0;"%s%d,%d" % [i==1 ? "Q" : "", 100.5+r*s*cos(th), 100.5-r*s*sin(th)] }.join(" ")+" Z\""' |\ convert -size 300x300 xc:none -fill none -stroke red -strokewidth 10 -draw @- -trim -resize 30x30 star.png 現在はこんな感じ。
■ Cygwinでjq configureしてmakeでいけるかと思ったら、結構面倒だった。 git clone git://github.com/stedolan/jq.git して、 autoreconfしなきゃいけないけど、これが通らない。 どうもautomakeが新しすぎてバグにぶち当たるようで。 % autoreconf automake-1.14: error: global options already processed automake-1.14: Please contact <[email protected]>. at /usr/share/automake-1.14/Automake/Channels.pm line 662 Automake::Channels::msg('automake', '', 'global options already pr
■ PS3のHDDを換装 ぐぐったらいい感じの動画あったので助かった。 PS3 CECH-2500A HDD1TB化 ハードディスク交換編 zigsow レビュー WD BLUE 1TB - YouTube この通りにやればいい。簡単。10分もかからない。 あとは システムソフトウェアPS3UPDAT.PUPをダウンロードして、 バックアップ用に用意したHDDのPS3/UPDATEに置く。 PS3につないで立ち上げげ指示に従えばok。 さきの動画は一連の作業が全部で5部構成になってるので非常に参考になる。 あとバックアップデータは1GBじゃなくて10GBだった。 その容量のUSBフラッシュは持ってなかったので結局USB HDDを使うしかなかったな。
■ Rubyに分数と複素数リテラルが入った 夏休みの宿題がはかどるわけですね。 % ruby -e 'p 1/2' 0 % ruby -e 'p 1/2r' (1/2) % ruby -e 'p 18/12r' (3/2) % ruby -e 'p 1/2r-1/3r' (1/6) % ruby -e 'p (2+3i)*(1+2i)' (-4+7i) 虚数部にも分数を使いたいときはriとすればいいようだ。 % ruby -e 'p 1+2/3ri' ((1/1)-(2/3)*i) ■ ばるす 23:22:45との情報を得たので % echo 'sleep 45;echo バルス|tw --pipe'|at 23:22 を仕掛けておいたが、実際は23:21:50だった。 まあ1分あるからatrm効くかと実行したが、間に合わず % atq 130 Fri Aug 2 23:22:00 201
■ 長すぎる行を省略 &&=を使うと結構すっきり書ける。 % cat README | head | ruby -pe '$_[/.{50}(.*)/,1]&&="..."' = What's Ruby Ruby is the interpreted scripting language for qui... easy object-oriented programming. It has many fea... process text files and to do system management tas... Perl). It is simple, straight-forward, and extens... == Features of Ruby Ruby 2.0以上ならonigmoの\Kが使える。 % cat README | head | ruby -pe '$_[/.
次のページ
このページを最初にブックマークしてみませんか?
『Just another Ruby porter,』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く