« 2008年03月 | メイン | 2008年05月 »

2008年04月 アーカイブ

2008年04月03日

HDDメンテナンスメモ

数日前からMacBookの調子がおかしい。
旧MacOSの修復作業は知っていたが、MacOSXになってからは行ったことがないので、作業メモを取りながら修復をする。
これまでの流れ
残っていたメモを頼りにこれまでを再現。
まず、定番の「ディスクユーティリティ」を実行した。
OSが固まった。
強制再起動。
再度、ディスクユーティリティを実行。
以下のようなエラーが出た。
ボリューム“Macintosh HD”を検証中

ライブ検証を実行中です。
ジャーナリングが有効な HFS Plus ボリュームを確認中です。
エクステントオーバーフロー・ファイルを確認中です。
カタログファイルを確認中です。
ファイル“_CACHE_003_”のブロックカウントが正しくありません
(正しい値 49、不正な値(現状)57)
マルチリンクファイルを確認中です。
カタログ階層を確認中です。
拡張属性ファイルを確認中です。
ボリュームビットマップを確認中です。
ボリューム情報を確認中です。
ボリューム“Macintosh HD”には、修復が必要です。
エラー:ファイルシステムの検証または修復に失敗しました。
ディスクユーティリティには「S.M.A.R.T.状況 : 検証済み」との表示。
とにかく起動ディクスは修復できないので、インストールディスクから起動。
再度「ディスクユーティリティ」を実行。
今度は正常と出た。
なんで?
とりあえず正常と出たので一日使ってみたが症状は変わらず。
ここからがメモ
どうも不良セクタがあるのかもしれない。
旧MacOSの「FirstAid」では不良セクタが検出されなくても、サードパーティのディスクメンテナンスツールで検査すると山のように見つかった記憶がある。
もしかしてMacOSXも同じかもしれない。
購入してからさほど時間も経っていないのになんてこった。
確かに数日前、HDDからカツンという音が聞こえた気がしたが...。
ぐぐったりTwitter上でほえたりして別の方法を探す。
せめてS.M.A.R.T.の詳細がわかれば...。
見つからなければサードパーティ製のやつを買わないといけないかも知れない。
出費は勘弁してください。
ATAにそんな機能があるとは知らなかった。
でも、初期化は嫌です。ごめんなさい。
Twitter上から情報が。
「ディスクユーティリティ」「fsck」「smartctl」
ディスクユーティリティは実行済。
fsckは聞いた覚えたある。
smartctlも聞いたことがあるけど、OSXに入ってたっけ?
これだけじゃfsckの使い方がわからない。
smartctlのほうはOSXにはやっぱりないみたい。
Googleで別の情報が見つかる。
10.4.3以降だと「Live Verification」という機能があり、起動中でも修復が可能らしい。
ディスクユーティリティは実行済みなので、「diskutil」を試してみる。
%diskutil verify /
Disk Utility Tool
Utility to manage local disks and volumes.
Most options require root access to the device

Usage:  diskutil <verb> <options>
(以下略)
と出て実行されない。
diskutilを再調査。
diskutilの使用方法があやふやらしい。
diskutilは保留。
fsckの方法も書かれていたのでこれを試すことにする。
Appleのsiteをよく見ると「Safe Boot」してもメンテナンスが走るらしい。
fsckの前にSafe Bootを試すか。
再起動する。
起動音がしたら、Shiftを押しっぱなしにする。
試してみたけど、修復できたかどうかのメッセージがないのでよくわからない。
コンソールを調べてみたけど、検証したかどうかもよくわからない。
仕方がないのでfsckを試してみる。
再起動する。
起動音がしたら、Command+Sを押しっぱなしにする。
/sbin/fsck -fy
The volume Macintosh HD appears to be OK.
と表示されるまで、fsckを何回も実行する。
(Macintosh HDの部分は環境によって違う。)
一発で表示された。
もしかしてさっきのSafe Bootで修復された?
このまま様子を見るか。
Appleのsiteに「fsck_hfs」があるのに今気づいた。(遅い!)
実行してみるべきかどうか悩んだが、とりあえず様子を見てみようと思う。
続きがないことを祈るが、もしかしたら続くのかもしれない。

Emacs移行経過(2008/04/03)

経過
okkez氏にプレフィックスキーの中断方法とコピーの方法を教えてもらった。
CとMの対称性から、もしやと思いC-wを調べるとやっぱりカットだった。
これで随分と作業が楽になった。
完全に覚えた完結キー
C-f forward-char
C-b backward-char
C-n next-line
C-p previous-line
C-a move-biginning-on-line
C-e move-end-of-line
C-d delete-char
C-i indent-for-tab-command
C-g keyboard-quit プレフィックスキーを中断する場合は2回
C-SPC   set-mark-command
C-x o   other-window
C-x C-c save-buffers-kill-emacs
C-g C-g プレフィックスキー(完結していないキー列)を中断
M-w kill-ring-save copyの事
C-w kill-region cutの事
C-y yank pasteの事
C-SPC C-SPC transient-mark-mode 範囲選択開始

覚えかけている完結キー
C-o open-line
C-m newline
C-k kill-line
C-x C-f find-file
C-x k   kill-buffer
C-x C-s save-buffer
C-h プレフィックスキーで始まるコマンドの一覧(プレフィックスキー入力後)
C-h k   describe-key
C-h f   describe-function
C-h v   describe-variable

覚えたい完結キー
M-f forward-word
M-b backward-word
M-< beginning-of-buffer(数引数対応)
M-> end-of-buffer
C-v scroll-up
M-v scroll-down
検索系全般
キーマクロ系

よく間違える完結キー
C-h MacOSXではDELと同様の為

保留中の完結キー
C-j newline-and-indent
C-x =   what-cursor-position
C-z iconify-or-deiconify-frame
C-q quoted-insert
M-r move-to-window-line
C-x C-n set-goal-column
C-u C-x C-n ???

完全に覚えたコマンド
なし

覚えかけているコマンド
set-variable

覚えたいコマンド
goto-char
goto-line

保留中のコマンド
なし

完全に覚えた変数
なし

覚えかけている変数
column-number-mode
tab-width

覚えたい変数
なし

保留中の変数
read-quoted-char-radix
目標
検索/置換全般とキーマクロみたいな特定の処理を繰り返す方法を覚えれば、他のエディタをほとんど併用しなくても良くなる。

2008年04月04日

DashboardのWidgetを常にデスクトップに表示する

以前どこかで、DashboardのWidgetを常にデスクトップに表示する方法を読んだ。
確か、F12でDashboardを表示して、Widgetを掴んだまま再度F12でデスクトップに引っ張りだせたはず。
そう思って試してみたけどできない。
で、調べてみた。
あ、設定が必要なのね。
開発モードを有効にするらしい。
開発モードON
defaults write com.apple.Dashboard devmode -boolean YES
Macを再起動するか、Dock諸共DashBoardを再起動する。
Dockの再起動
killall Dock
もとに戻したい場合は開発モードを無効に。
開発モードOFF
defaults write com.apple.Dashboard devmode -boolean NO
これでDashBoardの使い方ががらりと変わるはず。

2008年04月05日

プログラマという職業を家族に理解してもらう方法

IT系技術者の皆さん、自分の仕事を家族に理解してもらえていますか?
他の職種と比べて、システムエンジニア、特にプログラマという職業は理解して貰いにくいのではないでしょうか。
では、何故理解しにくいのでしょうか。
良く挙げられる理由として、プログラムというものが目に見えるものではないためイメージしにくい事、プログラマという職種は新しい職種でその仕事のイメージがあまり一般化していない事があります。
更に私は「家族の周辺にはIT系技術者が自分一人だけしかいない」事も起因しているのではと思っています。
どうすれば理解して貰えるのでしょうか。
家族に他の技術者を知ってもらうというのはどうでしょうか。
では、どのような方法が考えられるのでしょうか。
「家族を引き連れて皆で遊びにいく」、単純ですがこれが私が出した結論です。
こういう休日の使い方はいかがですか?
と言うわけで、広報です。
かなり堅い感じで書きましたが、やる事は非常にユルユルです。
勉強会なんかで知り合ったGeekと折角なんだから家族ぐるみで遊びに行きませんか?
家族同士でだべったり子供とじゃれたりしてみませんか?
主催を無茶ブリしたAWAWA氏のBlogはこちら

サイトウサン文字

※ 環境により正常に表示できない可能性があります。
アラビア文字の「لا」がサイトウサンに見えてしかたがない。
لاかわいいよلا
サイトウサン作者のBlogはこちら。

2008年04月06日

Macによるインターネット共有の方法

2011/03/12 追記
東北地方太平洋沖地震が発生しました。
今まで気付かなかったのですが、災害時には、当エントリーはそれなりに有用だと思いました。
ただ、アクセスが集中すると見られなくなる可能性があります。
このため、転載自由とするために、当エントリーのライセンスをパブリックドメインに変更します。
※ パブリックドメインの厳密な定義の説明は省きます。ここでは、引用自由・転載自由・転載後の編集自由と考えて頂いて差し支えありません。

インターネット共有の災害時の有用性
・これまでの携帯に比べ、スマートフォンは情報発信・情報収集が容易
・スマートフォンは、これまでの携帯に比べ、バッテリーの持ちが悪い
・スマートフォンは、携帯電話の電波を使うよりもWi-Fiを使うほうが省電力
・携帯電話の電波が届いていない避難所でも、スマートフォンでの情報収集が可能になる
・iPod touchやiPadでも情報収集が可能になる
・混雑したモバイルの通信を、有線側に誘導することができる
・Macでの利点 => Windowsでも同様にインターネット共有が可能ですが設定が複雑

注意点
Macのインターネット共有でパスワードを設定すると、WindowsやLinuxからは繋がらないことがあります。(ここでは、詳細な対策には言及しません。)
ネットワーク名は『saigai』や『bousai』で始まる名前をつけたほうがわかりやすいかと思います。
不特定多数の人にネットワークを開放する場合、パスワードは設定しないほうが良いと思います。
同じネットワーク内に業務用端末等があると、開放されたネットワークに接続したスマートフォン等からアクセスされる可能性があります。
多数の接続があった場合、ひとつのMacでは処理が重くなることがあります。この場合、「有線LAN」=>「ハブ」=>「複数のMac」のようにすると、処理を分散させることができます。その場合、各Macに設定するネットワーク名は別にしてください。

帰宅難民のピークは過ぎたようですが、帰宅経路沿いの場所でネットワークを開放するのも有用かと思います。

追記ここまで
勉強会でよく行っているMacによるインターネット共有の方法を説明します。OSはLeoperdを使用します。
Windowsによるインターネット共有方法はid:iseebiによる以下の記事をご覧下さい。
今回は上流であるインターネット側にEthernet、下流の参加者側にAirMacを想定しています。(上流側をEMobileにしても構いませんし、上流がAirMacで下流がEthernetでも可能です。)ちなみにAirMacというのは、MacOSX上の無線LANのことを指します。海外ではAirPortという名称ですが、日本国内では商標の関係でAirMacとなっています。尚、設定には管理者権限が必要です。
無線LAN化のセキュリティ
会場のLANを無線化するために、セキュリティには十分注意しなくてはなりません。Macの位置付けはルータではなくハブと同等です。会場のLANに無線LANアクセスポイントを直接接続する事を想像すれば暗号なしの無線LAN化は問題外というのがご理解いただけると思います。最低でもWEPの40bitは設定して下さい。WPAやWPA2が利用できれば良いのですが、MacOSXのインターネット共有では暗号化はWEPしか使用できません。よって現状で設定できる暗号化方式はWEPの128bitになります。WEPなので高セキュリティとはいえません。それでも暗号化をしておけば、会場外より接続されて会場のネットワークに迷惑をかけることが「誰にでも」できる状態は避けられます。少なくとも暗号を解くために専用のツールを使用する等の専門的な知識が必要になります。暗号化は、会場を借りる側が当然やらなければならない事ではないでしょうか。尚、WEPの脆弱性に関しては以下のURLをご覧下さい。
インターネット共有を設定する
それではMacによるインターネット共有の設定方法を説明します。
「システム環境設定」の「共有」を開きます。
左下の南京錠のアイコンが閉じているのであればロックがかかっていますので、南京錠アイコンをクリックし管理者の「名前」と「パスワード」を入力し、ロックを解除して下さい。
ログインユーザに管理者権限がない場合
ログインユーザに管理者権限がない場合
ログインユーザに管理者権限がある場合
ログインユーザに管理者権限がある場合
ロックがかかっていない場合、左下の南京錠のアイコンは開いた状態になっています。
それでは、左にある一覧の中から「インターネット共有」を選択して下さい。この時、まだチェックを入れないで下さい。選択すると右側にインターネット共有の設定が表示されます。
「共有する接続経路」が上流になります。「Ethernet」を選択して下さい。
下流は「相手のコンピュータが使用するポート」です。「AirMac」にチェックを入れて下さい。次に「AirMacオプション...」をクリックします。
AirMac側の設定が表示されます。「ネットワーク名」を入力します。「チャンネル」は「自動」のままで構いません。「暗号化 (WEP を使用)」にチェックが入っている事を確認します。
「パスワード」の前に「WEP キーの長さ」を選択して下さい。これは「WEP キーの長さ」により必要なパスワードの長さが変わるためです。
選択した「WEP キーの長さ」にあわせて「パスワード」と「パスワードの確認」を入力します。「OK」を押してAirMacの設定を閉じます。
左の一覧内のインターネット共有にチェックを入れて下さい。
ダイアログが表示されますので「開始」を選択します。
これでインターネットの共有が開始されます。
これが実は一番大事かもしれませんが、勉強会が終了した後は必ず「インターネット共有」のチェックを外して下さい。これを怠ったままMacを他のネットワークに接続すると接続されたネットワークが無線LANで公開されてしまいます。WEPのまま長時間公開されるのは由々しき事態です。AirMacの状況をメニューバーに表示するようにしておくと、以下のようにアイコンで状態を確認できます。
インターネット共有中(下流がAirMacの場合)
インターネット共有中(下流がAirMacの場合)
AirMac : 入
AirMac : 入
AirMac : 切
AirMac : 切
Macによるインターネット共有をさっとではありますが説明してみました。勉強会等のイベントの役に立てばと思います。私が主催しているJavaScriptの勉強会、Kanasan.JSについては以下のURLをどうぞ。

Emacs移行経過(2008/04/06)

経過
随分とEmacsで作業できるようになってきた。完全に覚えたと思っていてもたまに間違えてしまうのはご愛嬌。
完全に覚えた完結キー
C-f forward-char
C-b backward-char
C-n next-line
C-p previous-line
C-a move-biginning-on-line
C-e move-end-of-line
C-d delete-char
C-i indent-for-tab-command
C-g keyboard-quit プレフィックスキーを中断する場合は2回
C-SPC   set-mark-command
C-x o   other-window
C-x C-c save-buffers-kill-emacs
C-g C-g プレフィックスキー(完結していないキー列)を中断
M-w kill-ring-save copyの事
C-w kill-region cutの事
C-y yank pasteの事
C-SPC C-SPC transient-mark-mode 範囲選択開始
C-o open-line
C-m newline
C-k kill-line
C-x C-f find-file
C-x C-s save-buffer

覚えかけている完結キー
C-x k   kill-buffer
C-h プレフィックスキーで始まるコマンドの一覧(プレフィックスキー入力後)
C-h k   describe-key
C-h f   describe-function
C-h v   describe-variable

覚えたい完結キー
M-f forward-word
M-b backward-word
M-< beginning-of-buffer(数引数対応)
M-> end-of-buffer
C-v scroll-up
M-v scroll-down
検索系全般
キーマクロ系

よく間違える完結キー
C-h MacOSXではDELと同様の為

保留中の完結キー
C-j newline-and-indent
C-x =   what-cursor-position
C-z iconify-or-deiconify-frame
C-q quoted-insert
M-r move-to-window-line
C-x C-n set-goal-column
C-u C-x C-n ???

完全に覚えたコマンド
なし

覚えかけているコマンド
set-variable

覚えたいコマンド
goto-char
goto-line

保留中のコマンド
なし

完全に覚えた変数
なし

覚えかけている変数
column-number-mode
tab-width

覚えたい変数
なし

保留中の変数
read-quoted-char-radix
目標
マニュアルの続きを読む。

2008年04月11日

ブラウザの四隅を占有するGreasemonkeyをなんとかしたい

AutoPagerizeのように、ブラウザ上に何かを表示するタイプのuserscriptがある。とりあえずここではこの種のuserscriptをUserScriptWidgetと呼ぶ事にする。AutoPagerizeのように、ブラウザの表示領域の角に何かを表示するようなUserScriptWidgetが増えてくると四隅の取り合いになる。右上はもうAutoPagerizeが勝ち取った感があるが、他の角はどうなるかわからない。同じ位置に表示されるUserScriptWidgetも出てくるだろうし、何より最大で4つまでしか使うことができない。少しずらして表示させたとしてもいつかは破綻する。今後のためにUserScriptWidgetの表示を管理するuserscriptを作成した。
installすると画面の左上に歯車のアイコンが表示される。このアイコンをクリックするとラジオボタンが表示されるので表示したい位置をクリックすると表示位置が変わる。この管理用userscriptに対応させたUserScriptWidgetがインストールされるとアイコンが並んで表示される。今回は「はてなブックマークのコメントを表示」するUserScriptWidgetも作ったのであわせてどうぞ。
開発途上版です。不具合や要望等があればお知らせ下さい。名前も仮なのでそのうち名称変更します。
Entry書いている途中に教えてもらったんだけど、はてなブックマークを表示するのは車輪の再発明だった事が判明。
こっちのAdd-onは前から知っていたけど、カウンタ表示の単機能だと思ってた。まさかコメントを表示できるとは...。
2008/06/03 追記
新版を公開しました。

2008年04月14日

「何故配列の添字は0から始まるのか」を理解する方法

「配列の添字は何故0から始まるのか」というのをいつか書こうと思っていたんだけど、Mr. AWAWAが「配列はなぜ0始まりか説明出来ない」と書いていたので、良い機会なので「自分はこう理解している」というのを書いてみる。あくまで自分の理解なのであっているかどうかは不明。しかし、理解の助けになればと思うので間違っている可能性を承知で公開する。
以下、code例は全てJavaScriptで。
まず、次の配列について考えてみる。
var ary=["a","b","c","d","e","f","g","h","i","j"];
プログラマでない人の理解はこう。
a  b  c  d  e  f  g  h  i  j
1  2  3  4  5  6  7  8  9  10
プログラマはこう。
a  b  c  d  e  f  g  h  i  j
0  1  2  3  4  5  6  7  8  9
これを一般の人に説明するのは非常に難しい。
私は次のように考えている。
   a  b  c  d  e  f  g  h  i  j
  0  1  2  3  4  5  6  7  8  9 10
つまり、数値が割り当てられているのは要素ではなく、要素と要素の間の区切り。例えば、
ary[5] //=>"f"
5の区切りの次の要素を取得するので「f」が返ってくる。
ary.slice(3,6) //=>["d","e","f"]
と指定されると、3の区切りと6の区切りの間の「d,e,f」を取得する。
sliceの引数には負数も指定可能で、この場合は後ろからの取得となる。
つまり区切りはこう。
   a  b  c  d  e  f  g  h  i  j
  0  1  2  3  4  5  6  7  8  9 10
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -0
実際にsliceを実行してみると次のようになる。
ary.slice(4,-3) //=>["e","f","g"]
ary.slice(-3,-1) //=>["h", "i"]
ary.slice(-7,7) //=>["d","e","f","g"]
ただし、最後まで取得したい場合第二引数に「-0」を指定してしまうと次のようになる。
ary.slice(6,-0) //=>[]
これは
ary.slice(6,0) //=>[]
と解釈されてしまうため、空の配列となってしまう。
(区切り位置の指定が前後逆になっているため空の配列となる。)
この場合、第二引数を省略すると第一引数に指定された区切りから最後までを取得する。
ary.slice(6) //=>["g","h","i","j"]
同じようにspliceも同様である。
但し、spliceは破壊的メソッドであり、戻り値がブラウザ依存であるため注意が必要。
さらに、sliceは第一引数と第二引数ともに区切り位置だが、spliceの場合は第一引数が区切り位置で第二引数が「第一引数からの距離」である事に留意する必要がある。
つまり、
ary.splice(3,4,"x","y","z"); //=>["a","b","c","x","y","z","h","i","j"]
を実行すると3の区切りと「3の区切りから4つ進んだ7の区切り」の間の「d,e,f,g」が「x,y,z」に置き換わる。
第一引数には負数を指定可能。
ary.splice(-6,4,"x","y","z"); //=>["a","b","c","d","x","y","z","i","j"]
第二引数に0や負数を指定すると、距離が0となるので置き換えが発生せずに挿入のみとなる。
ary.splice(2,0,"x","y","z"); //=>["a","b","x","y","z","c","d","e","f","g","h","i","j"]
ary.splice(-2,0,"x","y","z"); //=>["a","b","c","d","e","f","g","h","x","y","z","i","j"]
ちなみに、第三引数以降を指定しなかった場合は削除となる。
ary.splice(2,6); //=>["a","b","i","j"]
lengthは最後の区切り位置を返すので、
ary.length =>10
となる。
繰り返すけど、情報科学的に正しいかどうかはわからない。

2008年04月17日

cssにもdata schemeが使える

これは知らなかった。
というよりも、以前やってみた事があって、その時はできなかったので対応していないものだと思っていた。
「firefox3ならもしかして...」と思って調べてみたら、ずっと前からできる事が判明。
後、localでbase64化するコードものってた。これは便利。
画像をbase64エンコードする方法は何でもいいけれど、RubyとNKFの例をメモしておく。

% ruby -e '[ARGF.read].pack("m").display' <foo.png
% nkf -MB <foo.png
2008/04/17追記
「The data: URI kitchen」でbase64化したのと、Rubyでしたのとでは若干データが異なる。特定の記号をencodeするかどうかが違うよう。どっちが規格的に正しいんだろう。

Cartesian product - 直積集合 - カルテシアン積 - デカルト積

まず、map。
map(
    [1,2,3],
    function(x){...}
);
これの発展系として、次のような処理が欲しくなった。
extendMap(
    [1,2,3],
    [4,5,6],
    function(x,y){...}
);
で、実装してみた。
引数の配列の個数はいくつでも構わない。
(実際の処理は最後に記す。)
そうしたら、それはmapとは言わないとnanki氏。
じゃあなんて言うんだろうと考えたがわからない。
順列(permutation)でもないし組合せ(combination)でもない。
そこへ、naoya_t氏の登場。
「cartesian product?」
日本語では「カルテシアン積」もしくは「デカルト積」。
なんかかっこいい。
でも、どこをどう読んだらデカルト積?
「直積集合」とも言うらしい。
Gaucheにはlibraryがあってもの凄く簡単に直積集合を求められる。
そうそう、いつもJavaScriptはそう。
ないものは自分で実装しなくてはならないけど、JSの場合はほとんど自分で作らなくてはならない。
まあ、最近じゃそんな状況も改善されてきてはいるけど。
その後、SchemeやHaskellでの直積集合について色々話があったのをnaoya_t氏がblogにまとめてくれた。
JavaScriptのやつはないので(最後にまとめて)晒す。
実際のコードは、直積集合を求める部分とfunctionに値を渡す部分とをわけた。
てか、なんですか?
Haskellで書くと1行で実装完了って。
Haskellによる直積集合取得
prod = foldr (\as bs -> [ a:b | a <- as, b <- bs ]) [[]]
rubynekoより引用
直積集合取得(再帰呼出なし)
var getCartesianProduct
    =function(){

        var args=arguments;
        var argslen=args.length;
        var lens=[];
        var cur=[];
        for(var i=0;i<argslen;i++){
            lens.push(args[i].length);
            cur.push(0);
        }

        var flg=true;
        var arys=[];
        while(flg){
            var buf=[];
            for(var i=0;i<cur.length;i++){
                buf.push(args[i][cur[i]]);
            }
            arys.push(buf);
            for(var i=cur.length-1;i>=0;i--){
                cur[i]++;
                if(cur[i]<lens[i]){
                    break;
                }else if(i!=0){
                    cur[i]=0;
                }else{
                    flg=false;
                }
            }
        }

        return arys;

    }
直積集合取得(再帰呼出あり)
var getCartesianProduct
    =function(){
        if(arguments.length==0){return [[]]}
        var args=[];
        for(var i=1;i<arguments.length;i++){
            args.push(arguments[i]);
        }
        var ary=arguments.callee.apply(this,args);
        var rtn=[];
        for(var i=0;i<arguments[0].length;i++){
            for(var j=0;j<ary.length;j++){
                rtn.push([arguments[0][i]].concat(ary[j]));
            }
        }
        return rtn;
    }

配列の添字を0と1から選択できる言語がある

では、配列の添字が0から始まる事について書いたけど、0と1を選択できる言語がある。
詳細は以下のURL。
笑い死にさせるつもりか。

1/7 = 0.142857142857...

1/7を計算すると出てくる142857という数字。
142857 x 1 = 142857
142857 x 2 = 285714
142857 x 3 = 428571
142857 x 4 = 571428
142857 x 5 = 714285
142857 x 6 = 857142
並び替えると、
142857 x 1 = 142857
142857 x 5 = 714285
142857 x 4 = 571428
142857 x 6 = 857142
142857 x 2 = 285714
142857 x 3 = 428571
となる。
これは知っていた。
しかしここまで不思議な数字だとは知らなかった。
リンク先にある326451という数字は、
142857 x 1 = 142857
142857 x 5 = 714285
142857 x 4 = 571428
142857 x 6 = 857142
142857 x 2 = 285714
142857 x 3 = 428571
の真ん中の数字を下から順に並べたもの。
不思議すぎる。

2008年04月19日

IT技術者の交流会という名のピクニック?

勉強会じゃないですよ。
交流会ですよ。
家族連れOKですよ。
独身もOKですよ。
屋内じゃないですよ。
屋外ですよ。
家族にコミュニティの雰囲気は知って欲しいとか、普段参加している勉強会では会えない人に会ってみたいとか、参加者によって目的は様々だけど皆で集まろうという企画です。
参加したいという人は結構いるけど、そうとう日取りが悪いらしく「参加したいけどできません」という意見が多い。
まさか情報処理試験と同じ日とは思わなかった。

2008年04月27日

Windowsで無料で使えるセキュリティ対策ソフト

なかには個人利用や非商用の時のみ無料となるやつもあるけど結構あるね。
主にウィルス対策等。
アドウェアやスパムウェアの対策は除く。
Google

タグ クラウド