おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2002年03月17日(Sun) 朝から濃い霧

gsl-1.1.1

ちょっと仕事場に出る用事があったので、ついでに、gslをバージョンアップしました。gsl-1.1.1-2kになっています。

gsl-1.1からの変更点は、

  • Fixes to histogram2d stat functions
  • Added missing prototypes for complex LU determinant functions
  • Improved error handling in multifit routines
  • Added check to avoid division by zero for rank-deficient matrix in multifit iteration

ということです。


2003年03月17日(Mon) ヨーロッパでは高気圧にも名前を付けるらしい

[memo] cups

使ってみたいな。

[tDiary] weather.rbがタイムゾーンを記録するようにしました

一昨日の夜、寝ながらフト気づいたのですが、これまでのweather.rbでは更新時刻をUNIX時だけで記録していたため、もし将来日記のタイムゾーンが変わることがあれば、朝取得させてもらった天気が夕方のものとして表示されてしまうという問題がありました。

これは、今のポストの期限が一年を切って次はどこに行けるかわからない僕にはオモシロクない。そういうわけで、weather.rbが現在のタイムゾーンを記録しておいて、日記自身のタイムゾーンに関らず天気の表示には記録時のタイムゾーンを使うようにしてみました。

必要な方はweather.rb(1.1.2.20以降)を上書きしてください。これまでの天気データも変更無しで読めますが、上に書いたような問題はありますので、必要なら手で編集してください。新しいバージョンでも、環境変数TZやオプション@options['weather.tz']が設定されていない場合の動作はこれまでと全くおなじです。

引越しの時には、日記自身のタイムゾーンも変更する必要があると思います。それはまた必要になった時にやってみよう。

自動車の盗難防止アラームの勉強をする

アラーム解除はリモートコントロールキーを使うのだけど、その鍵を無くしたらどうなるか…。僕の車にはそんな高級品はついてないんだけど。

リモコンの受光部はルームミラーのあたりについていて、盗難防止アラームの本体は、ボンネットのなか。アラームは受光部からの信号を受けて、解除されたかどうか判断するみたいだ。アラームが鳴るのは、ドアを開けたりギアを入れたりしたときみたい。ということはだよ、アラームの装置は、受光部から鍵の番号を受け取ったり、ドアから開閉情報を受け取ったり、いろいろなところと継がっているということになる。

そういうインターフェースってどうやって作られてるんだろう?全て導線なのかな?単純な自動車ならいいけど、現代の自動車だとすごく複雑なネットワークになりそう。やっぱりCANを使ってるのだろうか?そのうち調べてみよう。(いつ?)

ドイツでダクトテープを売っていた

やんごとなき理由でサンドペーパーとかを購入。テープも要るなあと思って見回すと銀色のダクトテープが。日本の布ガムほどではないけど、これも便利なのだ。ただし安物を買うと剥れなくてひどい目にあう。

[tDiary] disp_referrer2.rbの括弧のマッチを厳しくしました

void GraphicWizardsLair( void ); //さんからリンクをいただいたのに伴いちょっとだけ変更。URLの置換後に括弧をマッチする時、閉じ括弧が行の最後にある場合だけマッチするようにしました。必要な方はサブタイトルのリンク先からダウンロードしてください。(1.1.2.17以降)

複雑な赤ちゃん服

赤ちゃんは、普通の服は頭がでかくて着られないので、いろいろ工夫がしてある。しかし服によって構造が違うのだ。こうっ!と思って着せるとぐちゃんぐちゃんになっっちゃう。ムズカシイ。

本日のツッコミ(全2件) [ツッコミを入れる]

> zoe [まじですか?年に何人の名前がつくんでしょう‥。]

> zunda [でかい高気圧だけみたいっす。少なくとも名前のついてない高気圧もいたし。ドイツ語のわけわからん天気予報をちらっと見ただ..]


2005年03月17日(Thu) にわとりに起こされて、そして、

朝飯前の税金の書類書き

仕事場で昼休みにやっていた作業の続きを、USBメモリに入れて家でやりました。Acrobat Reader 5ではフォームに入力した内容が保存できなかったので、一気にAcrobat 7にしてしまったよ。インストーラはハードディスクの空きブロックをさがしてそこに実行ファイルを入れようとするらしく、非常に時間がかかりました。もちろんそんなに沢山のブロックがあるわけではなく、「断片化しているからデフラグしてから修復しろ」と。余計なお世話だ。

さて。USBメモリを開封してしまったら、次にやることといったら、USBからLinuxを起動することしかないわけで。時間つくりたいな。

キラウエアドライブ!

日本から来てくれたともだちと火山へ。ボルケーノハウスでご飯を食べるのは初めてだったのだけど、眺めがよかったよ。ビュッフェでおとな$14は、あの眺めを考えれば妥当な値段かも。

遠くから見たら溶岩が海へ流れ込んでいるところが見られそうだったのだけれど、ともだちの体力が切れて断念。(とは言え、ずーっと行ってたどりつけたかどうかも疑問だけど。)次は鍛えてきてね。山頂ツアーも体力を使いまーす。

町に戻ってクジラを見に海へ行ったのだけれど、こちらもはずれ。ごめんです。

晩ご飯を食べて、僕には珍しくちょうどいい時間に空港に向かえたのだけれど、カメハメハ像を見るのを忘れていたというオチがついてきました。これに懲りずまた来てください。


2006年03月17日(Fri) 山頂で油まみれ

そろそろ税金を払わないといけない

1040に記入して印刷したら、MemoryFullというメッセージとともに文字が半分くらい消えていた。しょぼーん。

ノートPCの電源を切って家に持って帰ろうと思ったらWindows updateを始めた。そういえば昨日の夜始めたSElinuxのrelabelは24時間過ぎてもまだ終わらない。お腹空いた。


2007年03月17日(Sat) ひさしぶりにいい天気

隣りのお山にある望遠鏡を見学させてもらった。やっぱり手作りっていいなあ。じゃないか、手作りで最先端の結果を期待できるアイディアを出せるのはすごいよなあ。

どっちつかずの子供になれ! --- 私が子供をアメリカで育てようと決意しつつある理由 (Tech Mom from Silicon Valley)

海部美知さんはお子さんをアメリカで育てようと決意しつつある、とのこと。ずんこはどうしようかな。

海部さんの文中より、直感を信じろ、自分を信じろ、好きを貫け、人を褒めろ、人の粗探ししてる暇があったら自分で何かやれ。 (My Life Between Silicon Valley and Japan)も大事だよね。頭ではわかってても実行するのは難しいのだけど。

[memo] フリーソフトウェアの定義 GNU プロジェクト - フリーソフトウェア財団 (FSF)

Richard Stallmanさんの講演のメモをそろそろまとめたい。まとめられるところから書いていくことにします。

とりあえず、自由の定義から話がはじまりました。上記のサイトに日本語訳があったので、そこから引用すると、

「フリーソフトウェア」のフリーは、ユーザがソフトウェアを実行、複製、頒布、研究、変更、そして改良する自由のことを指しています。より厳密に言えば、「フリーソフトウェア」のフリーとはそのソフトウェアのユーザに与えられる 4 種類の自由を意味しています。

  • 目的を問わず、プログラムを実行する自由 (第 0 の自由)。
  • プログラムがどのように動作しているか研究し、そのプログラムに あなたの必要に応じて修正を加え、採り入れる自由 (第 1 の自由)。 ソースコードが入手可能であることはこの前提条件となります。
  • 身近な人を助けられるよう、コピーを再頒布する自由 (第 2 の自由)。
  • プログラムを改良し、コミュニティ全体がその恩恵を受けられるよう あなたの改良点を公衆に発表する自由 (第 3 の自由)。 ソースコードが入手可能であることはここでも前提条件となります。

とのこと。なぜこのような自由が必要なのかを考えるときには、下記のような状況を考えてほしい、とのことでした。

自分が使って良いと思ったプログラムは、自分の属するコミュニティの他の人にも、つかってほしいよね。Stallmanによると、そのプログラムが残念ながら不自由なものだった時には、不道徳をはたらくしかなくなってしまう、とのこと。つまり、ほかの人にも、利用許諾の制限に反してそのプログラムを使わせるか、あるいは、せっかく良いものをほかの人には使わせないか。

そういえば、ソフトウェア会社の知人と話をしていて、「オープンソースソフトウェア」の話題になった時に、彼が、「これからはもうソフトからは金が取れないのかなあ…」と不安がっていました。もし彼の会社のソフトウェアがフリーソフトウェアになったとしても、これまでと同じように必要な作業に対してお金を払うことに違いはない、と思うのだけれど、うまく説明できなかった。フリーソフトウェアの定義より、「『フリーソフトウェア』で問題とするのはいわゆる「自由」であり、価格ではありません。」という点をうまく伝えられるといいのにな。


2008年03月17日(Mon) 山は見えないが虹は見える

Attempt to read block from filesystem resulted in short rea while trying to open /dev/sda7

先日退役させたサーバをメンテして別の用途に使おうと思った。とりあえずネットワークをひっこぬいて起動したら上記のメッセージ。運用中に出なくてよかった。

[memo] bashで16進数を計算につかう

man bashで算術式展開する時に0x…表記ができるのをみつけた。

echo $((0x20))
32

破壊衝動

shred -v /dev/sdb8

なんとなく楽しい…が、デフォルトの25回消しだと明朝の停電までに終わらない気もする。


2009年03月17日(Tue) この霞はvogか湿度か

[memo] Momonga 5でCaps lockを無くす

SSDのマシンにext2で入れてみましたよ。

GnomeもKDEも入れないでおくとXからログインできない。xfce4(とgnome-terminal)をインストールして解決。

コンソールのCaps lockを無くすのは、/etc/sysconfig/keyboardのKEYTABLEをus_Ctrl_Ctrlにする。キーマップのファイルはもう支給されていた。

X側では/etc/X11/xorg.confでInputDeviceセクションの中に「Option "XkbOptions" "ctrl:nocaps"」を追加して、ログイン画面でCtrl-Alt-BackspaceでXを再起動する。


2013年03月17日(Sun) とうちゃんは山に芝刈りに

家に帰ったらタブレットの無限リブートが待っていた

山の柴刈りから帰ってきたら、Google I/O 2011でもらった Galaxy Tab 10.1 (Samsung GT-P7510、外箱を見ると、GTP7510UWGR) が無限リブートの罠にはまっていた。 いつもの起動時の通り、Samsungのロゴのアニメーションがあってから 動かないSamsungのロゴになり、 いつもの起動時のようにロック画面にはならずに、 Samsungのアニメーションに戻る。 文鎮職人になりたいと思いつつ何も勉強していなかった僕は、 ファクトリーリセットをして、 どうにかこうにか使えるように戻したのでした。 将来のために動いてるファームウェアをバックアップしておくのが良さそうですね。 (早くやっておけ。)

まず参考にしたのは How To Unbrick Your Galaxy Tab! (xda-developers)。 普通のAndroid端末はFastbootという名前のブートローダ? を積んでいると思っていたのだけれど、 Samsungの端末の場合はODINとかいう仕組みを使うのが一般的なのかな? FastbootとODINとは次元が違うような気がするけれど先に進む。

One-Click Unbrickで失敗編

ODINはWindowsのプログラムのようなのですが、手元にWindowsが無かったので、 まずはLinuxでなんとかしようとしてみる。 One-Click Unbrickというのを使わせてもらうのが良さそうです。 が。Momonga 7 (java-1.6.0-openjdk) では、起動してくれません。

$ java OneClick.jar
Exception in thread "main" java.lang.NoClassDefFoundError: OneClick/jar
Caused by: java.lang.ClassNotFoundException: …

sidマシンだと下記で起動してくれました。

$ chmod +x OneClick.jar
$ ./OneClick.jar

が、sudo apt-get install heimdall-flashしても、 sudo apt-get install heimdall-flash-frontendしても、 配布元のパッケージのheimdall_1.3.1_i386.debや のheimdall-frontend_1.3.1_i386.debを入れても、 「Heimdallが無いからインストールする」ダイアログから逃げられません。 もちろんUSBで接続して、 音量小押しながら電源4秒押しからダウンロードモードにしてある端末とも 通信できていないようです。むーん。

ODIN用のファームウェアをもらってくる

というわけでWindowsマシンに移動して、ODINから作業を続けることにしました。 ファームウェアはどうしよう。

上記の How To Unbrick Your Galaxy Tab! に書いてあったのは、 samfirmware.comからいただいてくる方法。 ユーザー登録して P7510UELPL_P7510XABLPL_XAB.zip (418MB) というのをいただいてきたのですが、 rarで圧縮してあるようでMomonga 7では伸長できませんでした。やれやれ。 WindowsではLhaplusで解凍できました。 出てきた.md5をODINに読ませれば進める。

ODINでファームウェアを焼く

というわけでファームウェアを焼きます。 WindowsでODINを起動して、PITファイル(何だろう?)としては付属の.pitファイルを、 TARファイルとして上記の.md5を指定します。

なんとかユーザーデータを消さずに進みたかったので、 パーティションは切りなおさないようにして進む。

-- Installing package...
Finding update package...
Opening update package...
Verifying update package...
Installing update...
csc : deleteing /system/csc
csc : done.
Successfully installed package.
 
-- Wiping cahce...
Formatting /cache...
Cache wipe complete.
-- Updating application...
E:failed to mount /preload (Invalid argument)
can't mount '/preload'(Invalid argument)
-- Appling Multi-CSC...
Applied the CSC-code : XAR
Successfully applied multi-CSC.

なんか赤で表示されて進んでくれないんですけど…

じゃあしょうがない。ODINにパーティションも切りなおしてもらおう…

+------------------------------------------+
|                                          |
|          ODIN3 Download Mode             |
|             (Protocol v2.1)              |
+------------------------------------------+
Reason: Force Key
Secure Mode: Nonsecure
Check Signature: Check
Custom Binary Download: No (0 counts)
Current Binary: Samsung Official
Waiting USB Cable...
==> Connected! Press the [Start] of Odin3!!
SetDrvice_odin: Error to NvBl3pConverter3pToRmDeviceType![Err:0x4]
Tegra_RePartition: Error to SetDevice_odin![err:0x4]
DownloadPartition_odin: Error to NvPartMgrGetPartInfo![err:0x4]
Tegra_Backup_Partition: Error to DownloadPartition_odin![err:0x4]
AccessParamData: Fail to NvStorMgrPartitionQueryStat![err:0x4]
RestoreParam: Fail to AccessParamData_write![err0x4]

そうですかダメですか。 他に選択肢は…

Android system recovery <3e>

Volume up/down to move highlight:
power button to select.

reboot system now
apply update from external storage
wipe data/factory reset
wipe cache partition
apply update from cache

というわけで、wipe data/factory resetしたところ、 新しいOSで起動してくれました。

あとは、最初に使った時と同様、言語の設定とかGoogleアカウントの設定とかをやりました。 更新後の Android Versionは4.0.4、 Kernel Versionは3.1.10 se.infra@sep-116 #2 SMP PREEMPT Tue Aug 7 19:16:14 KST 2012、 Build numberはIMM76D.UELPL となりました。 さて、これは上記でダウンロードしたファームウェアのものでしょうか? それとも僕が居ない間にOTAで降ってきたもの? いずれにせよ、 ずんこやずんかが描いた絵とかMinecraftで作ったWorldはやっぱり消えちゃってましたとさ。


2018年03月17日(Sat) 島の反対側まで水泳大会に

[tDiary] どうにかこうにかRubyを2.3.6にできたようだ

自作のGemを混ぜ込むための準備 (ホストの負荷を確認して忙しそうなら後にしてもらう) が終わって幾星霜、やっとこtDiaryをRuby 2.3.6 (このホストの最新版) に移しました。

このホストでは、index.rbから下記のようにtDiaryのindex.rbを起動しているのですが、Rubyだけruby200からruby23に上げるだけでは動きませんでした。

#!/usr/pkg/bin/ruby200
$:.unshift('/home/zunda/local/lib/ruby/site_ruby')
require 'limitload-cgi'
load 'tdiary/index.rb'

limitload-cgiは忙しそうなら諦める部分。

まずは前回のようにBungler関連のパスの準備をします。

require 'bundler/setup'
は要らなかった。

#!/usr/pkg/bin/ruby23
Gem.use_paths('/home/zunda/.gem/ruby/2.3.0', Gem.path)
Gem.use_paths('/www/zunda/d/tdiary/vendor/bundle/ruby/2.3.0', Gem.path)
$:.unshift('/home/zunda/local/lib/ruby/site_ruby')
require 'limitload-cgi'
load 'tdiary/index.rb'

するとGemが足りないと言われるのでtDiaryに必要なものをインストール

$ cd /www/zunda/d/tdiary
$ bundle23 install --path=vendor/bundle

次は下記のようなエラー。ホストのBundlerはちょっと古そうです。

There was an error in your Gemfile, and Bundler cannot continue. (Bundler::GemfileError)

下記でBundlerが1.15.4から1.16.1になり、この日誌が見えるようになりました。

$ gem23 update bundler --user-install
Updating installed gems
Updating bundler
Fetching: bundler-1.16.1.gem (100%)
Successfully installed bundler-1.16.1
Parsing documentation for bundler-1.16.1
Installing ri documentation for bundler-1.16.1

さてさて、次はtDiaryの更新ができるといいな。

(追記) 手元のmasterをcheckoutするだけで

undefined method `without' for #<Bundler::Settings:0x0000738017711640> (NoMethodError)

先は長いなw

あと、下記の行は不要なようだった。

Gem.use_paths('/www/zunda/d/tdiary/vendor/bundle/ruby/2.3.0', Gem.path)

作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>