トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2008-08-31

_ えるえる

あつかましく Larry のサインもらた! もう俺はそれで全て良い。

何度か語ってると思うけど実はそんなに語ってないかもしれないけど、 僕はそんなに好きなプログラム書籍とかそんなに語れないんだけど、 いわゆるラクダ本は大好きな本で、 すっぽすっぽのプログラミング言語 C++ とかと 同じ程度には影響とかはある気がするんだ。 まぁ僕は本に影響されるとか今一つピンときてないのであやしいけど。

サインもらった記念に Perl をベタボメする。

Perl っていうのはこう、変態言語愛好会にとっての LISP と 考えても全く問題ないと思う。 ヤツらはこう10年先を行ってると考えてよく、 LL とか好きな子がこんなハッキーなことやったぜ!! っていうのは、 「あーそれ Perl が 3000年前に通った道」 みたいなこと言われてもおかしくない程度には すごいというのを認識してからの方が安心かもしれないのです。

例えば今日とか Perl Golf というのを Web ベースで… とかほげほげ司会のかたがおっしゃってたけど、 あれはたぶんウソで、当初は newsgroup で行なわれてたんだと思う。 newsgroup とかいう時代からゴルフやってた連中なわけですよ。 知らんけど。

まぁゴルフのこととか書くとまたそんな話か的な感があるけど、 Perl で実行できる詩を書く perl poem とか、 Acme::* とか、 JAPH とか、 ほげほげとか、ふがふがとか、

…と書きたかったんだけど、ぶっちゃけあんま Perl とか知らんな。 まぁそいう子はとにかく Perl を学ぶべきなんです。たぶん。

でまぁラクダ本も Larry がそいうの好きなんだなぁ という感じがすごくするのでこう良いのですよ。

用心しろよ、 emacs さん。言語を内蔵するのは、君だけの専売特許じゃないよ :-)

とか、まぁこうなんというかこいうのいいね。

だいぶ前に書いたこのへんの頭おかしい話とかも 別に秘奥義とかじゃなくて単にラクダ本に書いてあったわけだし

http://d.hatena.ne.jp/shinichiro_h/20071107#1194442793

(00:49)

_ title

http://d.hatena.ne.jp/takkaw/20080830/p2

ちなみに Python にも capitalize もあります。 (is)?(upper|lower|title) とさらに capitalize がある、というのが現状らしく、 Python は大文字小文字変換界の雄と言っても良いのではないかと思います。 iscapitalize が何故ないのか、それを考えて余生を過ごそうかと思います。

(00:55)

_ isakr

で、今日の呑み会で、 isakr みたいなのがあるといいんじゃないかということなので さっそく作ってみました!

class String
  def akr?
    # must not be capitalized
    return false unless self[/^[a-z]/]
    # there should be continuous upcases
    return false unless self[/[A-Z][A-Z]/]
    return true
  end
end

puts "defLATE: #{'defLATE'.akr?}"
puts "deflate: #{'deflate'.akr?}"
puts "Deflate: #{'Deflate'.akr?}"
puts "dEflate: #{'dEflate'.akr?}"
puts "DEFLATE: #{'DEFLATE'.akr?}"
puts "deFLate: #{'deFLate'.akr?}"

実行結果:

defLATE: true
deflate: false
Deflate: false
dEflate: false
DEFLATE: false
deFLate: true

とりあえず現実の例が一つしか無いので、 仕様策定が難しそうですね…!

(01:04)

_ String#akr

akr? があるなら実装はかんたん

class String
  def akr
    akrize = proc{|s|s.split('').map{|_|rand<0.5 ? _.upcase : _.downcase} * ''}
    until (s = akrize[self]).akr?
    end
    s
  end
end

10.times{puts 'deflate'.akr}

実行例

dEFlate
deFLaTe
dEFlaTE
dEFlAte
dEFLATE
dEFLatE
deflATE
dEFLATe
dEFlAtE
dEflATe

いかにもいやなかんじのものが

(01:09)

_

昔見た時は deflate 違ったような気がするなぁ… とか思ってぐぐったらやはり別の事例を発見した。 うん僕が見た時は DeFLaTe だったような気がする。

というわけで先程のコードには重大なバグがあるので プロダクションでは使わないようにおねがいします

(02:01)

_ そういえば

ほげほげより C++ の方が中二病としてはほげほげな気が するというような気がする的指摘。

たしかにほげほげは中二病そのものだと思うけど、 C++ はこうやりたくなることはわかるなぁ うん実際にはそんなに書かないんだけどね、

というあなた

は中二病なので問題ないというような。 いやそういう話だったか

(23:44)


2008-08-30

_

基調講演 Larry Wall か!

それはいかんといかん

(02:54)


2008-08-27

_ LL Golf Hole #5

sed だと普通のカウントの方が大変というのが面白かった。

http://ja.doukaku.org/comment/7374/

(01:10)

_ continuous build

http://ruby.shinh.org/

なんとなくこんなの作った。

(23:08)


2008-08-26

_ LL Golf #3

書いてみた。 cal + awk がいいんじゃないかなぁ。

http://ja.doukaku.org/comment/7367/

eval `date '+y=%Y;m=$((%-m+(%e>13)))'`

とかトリッキーな感じでいいなぁとか思いました。

(23:13)

_ LL Golf #4

Perl の得意分野だよなぁ。

http://ja.doukaku.org/comment/7370/

(23:35)

_ LL Golf #5

Perl でさっくりと。

http://ja.doukaku.org/comment/7372/

(23:56)


2008-08-25

_ 適当に

opt_aref とか opt_aset 実装してみたが あんま速くならんな。 send のオーバヘッドが悪いとばかり思ってたんだけど…

(00:03)


2008-08-24

_ 死蔵しているコマンド

面白いテーマだと思う。スラド見直した!

http://slashdot.jp/askslashdot/article.pl?sid=08/08/24/0255253

> ls `echo $PATH | sed 's/:/ /g'` | wc
   3926    3918   41560
> ls `echo $PATH | sed 's/:/ /g'` | sort | uniq | wc
   3834    3833   40819
> alias | wc
     99     305    3329
> (ls `echo $PATH | sed 's/:/ /g'`; alias) | sort | uniq | wc
   3933    4138   44148

4000程度か。本当は zsh function もあるわけだけど。

さて俺には CIA がある。

i@u4 ~/wrk/cia/db/cmd/2008
> awk '!/[>~\/\\(=;.]/ {print $3}' * | sort | uniq | wc
    530     517    3457

ざっと見た感じ 20-30 くらいはコマンドじゃないけど

> ruby -e 'p (`(ls \`echo $PATH | sed "s/:/ /g"\`; alias) | sort | uniq `.split - `awk "{print $3}" * | sort | uniq`.split).size'
3233

死蔵は 3200 程度かなぁ。

(12:42)

_ todo reordering

  • ll golf
  • valgrind あそび
  • tamarin あそび?
  • ET べんきょう
  • 追悼考える→ LL で考えればいいか

(13:25)

_

今日 RHGSB か…

まぁいいか。

(13:43)

_ u

i@u ~> ls `echo $PATH | sed 's/:/ /g'` | wc
   6348    6339   65518

やっぱ使ってる時間長いマシンの方が 多いな

(14:48)

_ test_status_and_stop_p

 def test_status_and_stop_p
   a = ::Thread.new { raise("die now") }
   b = Thread.new { Thread.stop }
   c = Thread.new { Thread.exit }
   d = Thread.new { sleep }
   e = Thread.current
   sleep 0.5
   d.kill
   assert_equal(nil, a.status)
   assert_equal("sleep", b.status)
   assert_equal(false, c.status)
   assert_match(/^#<TestThread::Thread:.* dead>$/, c.inspect)
   assert_equal("aborting", d.status)
   assert_equal("run", e.status)

このテストたまに通らなくなるのね。 d.status が false になっちゃう。 せめて d.kill を直前にするとかかなぁ。

   Thread.pass
   d.kill
   assert_equal("aborting", d.status)

とかすれば失敗率は減りそうだけど。

そいや GC とか見ててもそうだけど、 他のスレッドラクに止める手段って無いのかな。

(15:27)

_ 紙こうりん

http://d.hatena.ne.jp/kurimura/20080824

そうかそれでいいのか…

(22:50)


2008-08-23

_ 任意の

RubyコードをRubyで等価に実行可能な記号だけに変換する プログラムは書けるだろうか。 特にできない理由もないとおもうけど、 できないんじゃないかなぁといまのところおもう。 深く考えてないからわからないけど。 で、できないとすると、それを証明するのは難しいのかなぁとか。

BF 実装してはいおわりとかとはなかなか違うよな…

(02:14)


2008-08-21

_ LLVM

さっくりなんか書いてみるも 出てくるコードはこんなもんなのかなぁ的なかんじ。

うーむ萌えない

(23:53)


2008-08-20

_ informative null po

http://www.kmonos.net/wlog/88.html#_2233080818

全体的にすんごい同意するんだけど、 まぁ同意しすぎてこう何もないなぁ。 なんか言うとしたら、 僕の場合は一人で書くなら、って留保がつくかなぁと。

一人で書き散らかすなら

  • エラーは本当にやばくなるまで起きない (IndexBoundError なんてクソくらえだし nil.dup は当然 nil かえす)
  • できれば Informative null po あるといいね☆

複数人(長期的に一人で書く場合含む)でなら

  • とにかく予想外の場所で落ちて欲しくない
  • やばそうな時はすぐに例外なり abort なりして欲しい
  • 引数も返り値もそれなりにきちんとチェックするのはコーディング規約とか
  • むしろ non_negligible_bool とかそいう型作って、その返り値無視してたらコンパイル通らんくらいの勢いで

(23:22)

_ w3m gmail

http://assam-at-night.blogspot.com/2007/07/w3mgmail.html

めも。 なんかたしかに苦労した記憶はびみょうにある

(23:27)


2008-08-17

_ SRM

問題読み間違いに1分前に気付いた…

ぎぎぎ

(02:15)

_ ぎぎぎ

始めて500通った、んだけど250とチャレンジでミスったので嬉しくねええ…

250 はコレ、 form は任意の順番で来るもんだとばかり思って、 なんだこれー難しすぎだろーとかちょっとコード書いてみたあと 捨てた。

500はすんなり解けすぎて本当かよと思って びくつきながらサブミットしたら通った。 これは普通に簡単すぎなんじゃ。

そこで1000を見たのが間違いで、 点数少なくてももう一度250考えれば良かったなぁ… 1000は例のごとく問題きっちり読まずに適当に書いたら 全然問題違ってて、あーもう mod とかわかんねーていうか 部屋で誰も解いてねーしこれ難しいんじゃねとか あたりまえのことに気付いて、 もう数分しか無いし challenge 考えるかーと 問題見てたら250の問題勘違いに気付いた。

あとはチャレンジで 500 これ example 通らんだろ ってコード見つけたのでチャレンジしたら失敗した。 全文字列の末尾に 'a' を足してた。賢いなぁ。

てかまぁ常識で考えて Div1 の子は example は通してあるよな…

(02:53)


2024年
11月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1.星一(2014-05-24 01:41) 2.なかむら(う)(2014-05-24 01:41) 3.星一(2014-05-24 01:41)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h