Just another Ruby porter,

〜2015年8月上旬〜


<Older(,) | Newer(.)> | Recent(/)>> | RDF

2015-08-01 (Sat)

進捗・どう・です・か #シェル芸

bashで。

while [ "$a" = "${a%$w}" ]; do

というのも思いついたが、正規表現のほうが速いようだ。

#!/bin/bash

w=進捗どうですか
a=
until [[ $a =~ $w$ ]]; do
  a+=${w:RANDOM%4*2:2}
done

echo "$a???"
echo "$((${#a}+3))文字で煽られました"

2015-08-02 (Sun)

いろいろあったがWindows10がまともに立ち上がった

2,093.4 MBとやけに少ないダウンロードサイズだったが、
それ自体は有線LANを用意してたので10分ほどで終了。
その後アップグレードに1時間ほど。
「通常よりも少し時間がかかっていますが、間もなく準備が完了します」
と表示していきなり電源が切れた。
しかも下部に「PCの電源を落とさないでください」と表示されていたわけで、
絶対にまずい状況だ。
すぐに電源ONしてみたがロゴが出た時点で切れた。
完全に熱暴走っぽい。扇風機で数分冷したら立ち上がった。
なんか特に問題なくログオン画面に移行した。
だが、なんか変だ。
エクスプローラーの起動がやたらと遅い。15秒以上かかる。
致命的なのはスタートメニューが出てこない。
右クリックは効くのでシャットダウンとかは可能だが、
設定が開けないのが痛い。
ぐぐってみるとPCをリフレッシュせよとあるが、
それにはまず設定を開かないといけない。
ということでコマンド名をぐぐってみるとWin-Rでms-settings:と入力すればいけるとあった。
これは動いた。「更新とセキュリティ」の「回復」を選んで、
「このPCを初期状態に戻す」を試すことにした。
初期化なのでインストールしたアプリはC:\Windows.oldへ全部移動となり、
もうWindows7へは戻せなくなる。
元々半年前にWindows7はインストールしたばかりなのとScanSnap専用マシンとしてたので、
初期化しちゃって構わない。

これが正解だったわけだが、続きは「さあ始めましょう」だけだった。
すべて解消した。スタートメニューも出てきたし、
エクスプローラーも瞬時に起動するようになった。
C:\Windows.oldは10GBほど食っているが、消しちゃって構わないだろう。
なんかすっきりした。


2015-08-03 (Mon)

Windows10でScanSnap S1500

販売終了しているがドライバーはまだちゃんと置いてるのでインストール可能。
スキャナ ScanSnap : ドライバダウンロード : 富士通

まったく問題なく動作する。


2015-08-04 (Tue)

Logicool M310t

結局買い替えた。1年振り。前回のM185よりはちょい高目で。って倍か。


2015-08-05 (Wed)

判子をかすれさせる

今日は判子の日なのでより判子らしくするためにかすれさせてみた。
いろいろ方法はあるけど、-sketchがいい感じ?

% convert tyd2014-20.png -sketch 10x10 tyd2015-20.png

完全にネタ切れである。


2015-08-06 (Thu)

OpenShift

そろそろYahoo Pipes!+IFTTTで動かしてbotをどうするか考えないといけない。
どこかfreeのPaaSと思って探しても今やOpenShift一択のようで。
とりあえずアカウント作った。


2015-08-07 (Fri)

段組

要する段組ということでまだ出てないやつをひとつ。

% seq 6 | pr -2 -l 3 -s" "
1 4
2 5
3 6

3は6/2なのでその計算が必要。


2015-08-08 (Sat)

シドニアの騎士 第九惑星戦役

やっと見れた。一気に12話。最近はまとめて後で一気に見ることが多い。
一週ずつだと最初の話とか忘れてるし。


2015-08-09 (Sun)

PPMの形式

AWK で画像のテンプレートマッチングでnetpbmのP3形式を使っているけど、ちょっと納得がいかない。
Code 2.3-2 ppm2array.awkを見ると2行目は読み捨てているので、
1行がwidth分の画素で構成されていることが前提になっているような。

% convert org.png -type grayscale -compress none org_gray.ppm
% head org_gray.ppm                                          
P3
90 120
255
219 219 219 220 220 220 219 219 219 218 218 218 220 220 220 221 221 221 
219 219 219 219 219 219 220 220 220 220 220 220 220 220 220 220 220 220 
220 220 220 219 219 219 219 219 219 220 220 220 220 220 220 221 221 221 
220 220 220 219 219 219 219 219 219 220 220 220 220 220 220 218 218 218 
219 219 219 218 218 218 218 218 218 219 219 219 219 219 219 217 217 217 
219 219 219 218 218 218 220 220 220 218 218 218 218 218 218 218 218 218 
218 218 218 218 218 218 219 219 219 217 217 217 219 219 219 222 222 222 

でも実際は80バイトを超えないように改行されている。どうでしょう?

あとPPMじゃなくて最初からPGMに変換すれば%3しなくても済みます。

% convert org.png -compress none org_gray.pgm   
% head org_gray.pgm
P2
90 120
255
219 220 219 218 220 221 219 219 220 220 220 220 220 219 219 220 220 221 220 
219 219 220 220 218 219 218 218 219 219 217 219 218 220 218 218 218 218 218 
219 217 219 222 211 204 197 214 213 214 215 215 215 215 213 212 211 210 208 
204 200 188 166 135 96 70 68 66 65 65 65 65 66 66 68 70 77 178 246 247 248 247 
247 248 248 248 248 248 248 248 248 248 218 219 220 220 220 221 220 220 221 
220 220 220 220 220 220 220 220 220 220 220 220 219 220 220 219 220 219 219 
219 219 219 218 219 218 218 219 219 218 217 217 217 221 209 205 195 212 214 

というわけで、pgm2array.awkを考えてみた。

#! /bin/awk -f

NR == 2 { width = $1 }
NR == 3 { RS = "[\n ]+" }
NR >= 4 { printf("%d%s", $0, (NR-3) % width == 0 ? "\n" : " ") }

2015-08-10 (Mon)

今日は今月の何週目? #シェル芸

calを使う例が惜しい。dateの%dは1桁の日付のときは01-09のように0がつくのでgrepで見つからなくなる。
ということは%eか%-dを使えばいいわけだ。grepには-wを忘れずに。

% cal -h | sed '1,2d' | grep -nw $(date '+%-d' -d8/1) | cut -d: -f1
1
% cal -h | sed '1,2d' | grep -nw $(date '+%-d' -d8/2) | cut -d: -f1
2
% cal -h | sed '1,2d' | grep -nw $(date '+%-d' -d8/8) | cut -d: -f1
2
% cal -h | sed '1,2d' | grep -nw $(date '+%-d' -d8/9) | cut -d: -f1
3

こんな感じ。まあ、sed,grep,cutはawkでもいい。

% cal -h | awk "/\<$(date +%-d)\>/{print NR-2}"     
3

<Older(,) | Newer(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!