@big_ban_clock の日本時間対応版を作ってくれと言われたので、@cuckoo_clock_jp を作ってみました。
とはいえ、現在時刻を見て時報をツイートするプログラムを書いて、それをcronで動かしただけなんですけどね。
自宅鯖で動かしてるので、たまに鳴かないときがありますが、大目に見て下さい。
■ 追記
リクエストをしてくれたのは@yuki_oさんで、その後@cannaさんに画像を提供して頂きました。
こうして萌えBOTは作られるのですね。
@big_ban_clock の日本時間対応版を作ってくれと言われたので、@cuckoo_clock_jp を作ってみました。
とはいえ、現在時刻を見て時報をツイートするプログラムを書いて、それをcronで動かしただけなんですけどね。
自宅鯖で動かしてるので、たまに鳴かないときがありますが、大目に見て下さい。
リクエストをしてくれたのは@yuki_oさんで、その後@cannaさんに画像を提供して頂きました。
こうして萌えBOTは作られるのですね。
C言語で次のように書くプログラムがあったとする。
1から10までの数字を表示するためのもの凄く簡単なプログラム。
これを見て、ある人は { } のムダに気付いたかもしれない。あるいはC++やC99では変数の宣言をこう書くだろう。
このようにしてプログラムを綺麗で簡潔な形に書き直すことは気持ちが良い。
(上記の書き直しが綺麗かどうかは別の議論として)
ところでPerlという言語は、このような書き直しの方法がたくさん用意されている。
例えば上のプログラムの例だと、そのまま移植すれば次のようになる。
for (my $i = 1; $i <= 10; $i++) { print "$i"; }
Perlの場合、これを更に書き換えて、次のように書ける。
foreach my $i (1 .. 10) { print "$i"; }
ここで終わりではない。
更に省略しようと思えば、次のようにまで省略できる。
print for (1 .. 10);
今回例に挙げたようなもの凄く単純なプログラムでも、どんどん書き換えや省略ができてしまうのがPerlの楽しさであり、その方法が思いついたときのささやかな喜びが、僕にPerlを好きにさせているんだと思う。
(とはいえ、PerlにはXSという難解な言語仕様が待っているんだけど)
Skypeで音声チャットをするときに、これまではマイクとイヤホンをPCに繋いで使っていたのですが、これだとコードの長さ分しか移動できず、PCから離れられません。
そこで、ハンズフリーのヘッドセットみたいなものが欲しいなと前から思っていたのですが、一般に売っているものは、いわゆるヘッドセットという形1のもので、これが結構耳や頭部への負担2になるのです。
そこで、ヘッドセットではなく、ピンマイクにイヤホンジャックが付いていて、イヤホンに好きなものを使える製品がないかなと思い探していたのですが、見つけました。
これだったらイヤホンを繋げば耳への負担も少なくて済むし、ヘッドホンを繋いで高音質を楽しむこともできます。
説明を見ると、どうも携帯電話をターゲットとした商品のようなのですが、Bluetoothで通信するのでPCでも使えると分かり、早速購入しました。
Skypeを開いたらグループチャットに対して勝手に変なメッセージを送信し始めたから、ウイルスかと思ったのですが、原因はウイルスバスターでした。
うっとうしい!!
Googleが提供するiGoogleではガジェットというパーツを追加して楽しむことができますが、中でも美人時計みたいに写真が表示されるガジェットは華やかで良いですよね。そこで僕は、美味しそうな料理の写真が表示されるガジェットを作ってみました。
とはいえ、1年半くらい前によく知りもしないJavaScriptを試行錯誤して使って作ったものなので、コードは汚いと思いますが、思い切って公開します。
さて、Googleアカウントの切り替えで、今度はGmailの移行方法です。
これはPOP機能を使えば簡単にできます。
詳しくは下記のページに書いてあったので、こちらをご覧下さい。
手抜き過ぎ?(笑)
Googleカレンダーの内容を別のGoogleアカウントにコピーする方法のメモです。
複数のアカウントで同じカレンダー情報を共有して使いたいだけだったら共有設定すればいいだけなんですけど、コピー元のアカウントを破棄したい場合はこれだと気持ちが悪いので、一旦データをエクスポートしてからインポートします。
Googleカレンダーの「設定」→「カレンダー」を開き、カレンダー名を選んで、一番下の「限定公開URL」のところから、「ICAL」ファイルをダウンロード1します。
次にこのファイルをインポートすればよいのですが、そのままインポートすると、各予定の横に鍵のマークが付いて、「限定公開」という設定になってしまいます。
別にこのままでも問題ないのかもしれませんが、普通に予定を作った場合のデフォルトの設定は「初期値」なので、インポートした予定もこれと同じようになるように、先ほどダウンロードしたiCalファイルを少しいじります。
iCalファイルをテキストエディタ2で開くと、大文字アルファベットだらけの謎の言語が現れますが、よく見ると、BEGIN:VEVENTとEND:VEVENTで挟まれたパターンがたくさん並んでいることに気付くと思います。
これがひとつの予定データです。
その中にある、CLASS:PRIVATEという行が、先ほどの「限定公開」を表していますので、iCalファイルの中から、この行を全て削除します。一括置換とかするとらくです。
で、それが出来てから、Googleカレンダーの、「設定」→「カレンダー」から「新しいカレンダーの作成」でインポートしたいカレンダーのタイトルとかを再設定して作成して3、それから「設定」→「カレンダー」→「カレンダーのインポート」で、先ほどのiCalファイルをインポートします。
以上、たいして難しいことではないのですが、若干面倒だったのでメモしておきます。
SSHを使ってリモートから作業をしていると、ネットワークの調子が悪く、コネクションが切れてしまうことがよくあります。
あるいは作業中であっても、退社の時間になったために、一度PCの電源を落とさなくてはならないことがあります。
そんなときに便利なコマンドとしてscreenコマンドがよく使われているのですが、たった1点の不満のために、これまで1使わないでいました。
しかし、その解消法が、会社の先輩に訊くことにより、あっさり見付かったので、ここに記しておきます。
不満だった点は、lessやviなどを閉じた時に、表示内容が残るというものです2。
これを解決するscreenのコマンドは、altscreenというもので、screenrcに
と書いておけば、screenを使ってない時と同じように、viを閉じたら元の画面に戻るようになりました。
これさえ満たされれば、あとはscreenを使ってなかった時と同様に作業できるので、これからひとつずつscreenの使い方を覚えていこうと思います。
Debianだとctagsの仕様がちょっと違うみたいで、普通にググった方法だとtagsファイルがうまく作成できなかったので、メモ。
具体的には、-Rオプションが効かないというか、別な意味1で使われてるみたい。
なわけで、findコマンドを使ってファイル一覧をパイプで渡す必要があるみたいです。
こんな感じでコマンド打ったらできました。
/usr/local/src/以下のPHPファイルに関するタグ情報を、/home/yuuan/tagsに書き込んでいます。