Home > Archives > 2007年02月

2007年02月

GCD@sed を縮める

よく考えたら 7 bytes 縮まった.現在 15 bytes.エンベッドモドキ強し.

部屋の片付け

おもむろに部屋の片づけを行った.発掘品: SCSIカード AHA-2940UW, PCI モデムカード, ISA モデムカード, GeForce MX, YAMAHA 4倍速CDRドライブ.結構古いものが見つかったなぁと.CDRドライブは挙動がおかしいし,SCSIカードは繋げる物がないし,ISAバスなんか消え去っているし… ゴミだな.

Windowsのコンボボックスのカスタム化

聞かれて調べたのでメモ.

なにやらウィンドウプロシージャを乗っ取るらしい.ただ,コンボボックス内のエディットコントロールは独立したウィンドウプロシージャを持つらしいので,

    HWND hwndEdit = GetTopWindow( hwndComboBox );

とかしてエディットコントロールのハンドラを取っとかないとはまる.あとは,GetWindowLong で元のプロシージャを取得して,SetWindowLong で新しいプロシージャを登録して,新しいプロシージャ内で CallWindowProc を使って元のプロシージャを呼べばいいらしい.

参考:

http://www.expertmg.co.jp/html/cti/vctips/control.htm

http://www.arcpit.co.jp/winapi/api_02/ap020108.htm

FizzBuzz@sed revise

抜かされていたのでもう少しコードを書き換えて小さくしてみた.10と5の最大公約数が5であることを使って5の倍数カウンタを排除して,整形部分をもう少し頭のよい書き方に変えてみた.現在144bytes.今のコードは1000までとかでも普通に動くコードなので,高々100までという問題の条件を使うともう少し縮むのかなぁ?

無駄

電車使って秋葉へ繰り出して,sed本を少し立読みして何も買わずに帰ってきた.その後一旦家へ戻り,おもむろに自転車で白山やら上野やらへ買い物に… 電車賃の無駄でしかない.

FizzBuzz

新しい問題が増えてたので sed で挑戦.とりあえず 1 から 100 までループでインクリメントするカウンタを書いて,それに3周期と5周期のカウンタをくっつけてみた.これに出力の整形部分を書いて 169バイト.ここから縮めるには大き目の書き換えが必要なのでとりあえずこれで出しておく.

ゴルフ観戦

最近のsubmit状況を見たかったのでテキトウに一行書いてみた.

ddd=`awk 'BEGIN{print strftime("%y/%m/%d %H:%M:%S",systime()-3600*24)}'`;awkprog='BEGIN{FS="<>";c=0;}{if($5!=""){if($5 <"'$ddd'"){next}else{r[c]=sprintf("%2d %-15s %4d %s %s",$1,$2,$3,$5,$6);c=c+1;}}else{if(c>0){print n;for(i=0;i<c;i++){print r[i];}print"";};c=0;n=$0;}}';for i in `cat index.html | grep '<li><a href' | sed -e 's|<li><a.*"\(.*\)">\([^<]*\)<.*|http://golf.shinh.org/\1@\2|' | sed -e 's/ /,/g'`; do h=${i%%@*}; n=${i##*@}; wget -q -O temp.html $h; echo "== "$n" ==" | sed 's/,/ /'; cat temp.html | awk '/[0-9]*\/[0-9]*\/[0-9]*/{print}/a href/&&!/tati|Sample|Rank|return/{print}' | sed -e 's#\(<tr>\|</td>\|<td>\)\+#<>#g' -e 's| */ *|/|g' -e 's/^<>\|<>$//g' -e 's/<h3>\([^<]*\).*/\1/' | awk "$awkprog"; done

過去一日以内のsubmitを抜き出してくる.ぼけた頭で組んだので sed にいったり awk にいったりぐちゃぐちゃ.そして transpose も 80bytes から縮まない.別のアルゴリズムでやらないとだめなもよう…

ゴルフ続き@sed

Smileys Triangle(40), tennis(229), permutater(118) は一位.delete blank lines(5), even lines(4), invert case(24), delete last line(2), rotate lines(8)は一位タイ.e(102), ultimate problem(3), Fibonacci Numbers(292), exit status(16) は埋め込みで一位タイ.Hamming Numbers(382), show the way(85) は埋め込みで….そして 99 shinichiroes of hamaji は抜かれてるなぁ.もうすこしがんばろう.そういや最近(cheat)を明示するような動きになっているようなので次からはちゃんと書こう.

99 shinichiroes of hamaji まで

とりあえず頭からつぶしていって hello world と echo は1位に並んだ.これらは答えがひとつしかなさそうなのでこれ以上は縮まないでしょう.次の 99 shinichiroes of hamaji は haskell で一位と13バイト差.もう少し頭使えば縮みそうだけど抜本的改革が必要なので断念.sed のコードのほうは暫定で最小コード達成.二位とは1バイト差なので微妙.とりあえず sed で一位になったので少々満足.

anarchy golf に挑戦する

面白そうなので Haskell と sed で参加してみる.いくつか解いてみたけど最小コードを追い抜けたものは今のところなし.prime numbers の Haskell で 66 っていったいどうやってんだろう? もう少し頭をひねってみやう.

だんデらいよん

ちらほらやっているがAGE 1986(MEISTER)の火星がクリアできず.完全勝利もポセイドンとウラノスのみなのでまだまだ.やっぱりワープを使いこなさないとだめなのかなぁ.なにはともあれもっと練習が必要らしい.

どうにかならんだろうか?

Nucleus は pre タグとかの中にまで改行を入れてくれる仕様なのでコードとかをpreタグで書くとおかしくなる.応急処置として pre タグ内の br を invisible にしてごまかしているが根本的な解決は難しそう.NoBreak のプラグイン入れても記事の書きなおしが必要なので面倒だし… HTMLを吐き出す部分に自分で手を入れるしかないのだろうか?

NP_CustomURL でURLを普通にしてみる

「index.php?ほげほげ」というURLが気に入らないのでプラグインを入れて通常のパス風にアクセスさせる.NP_CustomURL を入れて,.htaccess に rewrite の設定書いて,index.php で Self の設定を空にする..htaccess はサンプルそのままで横着する.その上で Nucleus のグローバル設定で URL を Fancy に変更.

参考:

http://japan.nucleuscms.org/bb/viewtopic.php?p=13840

http://japan.nucleuscms.org/wiki/plugins:customurl

MySQL のコメントではまる

いろいろといじくる為にあらかじめDBのバックアップを取っておいた.いじり終わったのでDBの復帰をしようとした.ものの見事にエラーでこけ,記事がどこかへ消えていった…

何が原因なのかあさってみたら,SQLのコメント周りではまっていた.Nucleus はバックアップ用にSQL文を吐き出し,いちおう記事などの文字列データはシングルクオートがエスケープされる.しかし,SQLのコメントの開始である # はそのままSQL文の中に残っている.結果,記事に # が含まれると,次の改行までがコメント扱いとなる.文字列中にコメントがあった場合,それはそのままの形で文字列に連結されるらしい.これらが合わさって,記事の最後の行に # があると記事の終了を表すクオートが誤認識される.この流れでSQL文がおかしいと文句を言われる羽目になった.

しょうがないので手動で最終行に # があるものに改行を加えてやったらうまく復旧できた.

バックアップがバックアップでないこの状況はどうにかしてほしいものだ.

とりあえずデータ移行完了

自分用プラグインを作ってようやくデータ移行完了.バックアップ用にアーカイブを取っておく:NP_MTToNucleus01.zip.結局,完了までの総試行回数は14回.

次はスキンやらプラグインやらへ…

Nucleus に移行しようと試行錯誤

MovableType が MySQL で動いている場合は簡単に移行できるスクリプトがあるけれど,MySQL 使ってない場合のスクリプトがほとんど見つからず.しゃぁないので http://japan.nucleuscms.org/bb/viewtopic.php?t=281 にあったスクリプトをベースに自分にあわせたプラグインの作成に取り掛かる.Forum 探せばもっとでてくるかもしれないけど探すより作ったほうがきっと楽しいに違いない.

TeX でハイフネーションをコントロール

\pretolerance の値を大きくするとハイフネーションがおきにくくなる.\pretolerance=100 が普通で \pretolerance=10000 とかにすると隙間が開きまくるように… リファレンスとかでハイフネーションを抑えたいときに有効.

テストザネイション2007本番

結果: 48点で指数が 112 .愛想笑いの問題で大量失点,3問しか正解できなかった.最初のほうはいい点とってたんだけどなぁ… 残念.さて,プログラムを書くか.

三重対角行列方程式を…

LU分解をベースにとくのはいいのだが,LU分解の一意性ってどの程度あったっけ? ピボットを入れるとその分の任意性が出てくるということで正しいのだろうか.とりあえず L も U もベクトルで表現できるはずなのに Scilab に分解させたら普通の行列になってくれた.動作確認しにくひ.

テストザネイション2007体験版を試す

http://www.tv-asahi.co.jp/test2007/

から落として試してみた.全10問中7問正解という微妙な点をたたき出す.とりあえず本番は月曜日の夜とのことなので論文書く合間にやってみよう.

保温24時間

保温してるのすっかり忘れてた.ご飯がだいぶ乾燥している.ある意味ちょうどよいので夕飯(朝飯)はチャーハンにしてしまう.ちなみに象印のQ&Aによると保温12時間以内にお召し上がりくださいとのこと.

寝坊

朝のセミナーを寝過ごす.起きられると思ったのだが,Macとの戦闘で思いのほか HP(MP) が減っていたらしい.もう少し回復するまで寝よう.

コマンドが足りません

Mac のサーバにWebサービスをセットアップしようと試みた.

cvs も wget も入ってない.ソースとってきてコンパイルしようと思ったら make も gcc もない.箱に入ってたCDとかにパッケージが入ってるっぽいけどCDがどこにあるかわからない.

しょうがないので scp とか使ってごまかすことにする.

打ち上げ

皆様お疲れ様でした.卒論生が卒論かいてる横で打ち上げるのもどうかと思ったが気にしない.そして次の打ち上げに用意すべき動画は何であろう?

当然のごとくうまくいかず

パスワードも含めた全ユーザ情報を移行するにはそのほかの要らないデータまで移さないとだめみたい.しょうがないのでパスワードはあきらめてユーザIDとかだけを移したら… パスワードの設定が変になっててログインできなくなったり.とりあえずパスワード欄を空にしたダンプで情報を上書きしてログインできるようにしたけど正しい設定の仕方でないような気がしてきた.もう少し勉強しよう.

休憩にマリオをやる

実機で迷いの森のバルーンの出るブロックを左に増殖させてヨッシーの羽を出すことに成功.ただ,通常の空中フィールドに行ってしまったので面白くはなかった.残るはお楽しみコースのあそこだけだろうか?

NetInfo?

Mac OS X のユーザとかの管理は NetInfo なるもので行われているらしい事を知る.とりあえずユーザ情報をダンプしてそれを写せばいいらしい.本当にうまくいくのかはよくわからんが…

論文製作中

ゴリゴリ

ホームディレクトリのコピーが難しい

Mac OS X のユーザ管理のしかたがよくわからんので旧サーバのデータを新サーバにうまく写せていない.ユーザ IDとグループIDの一覧のとり方さえわかれば何とかなるのだが… しゃあない,探すか.

Home > Archives > 2007年02月

Search
Feeds

Page Top