いけむランド

はてダからやってきました

やましろさんといけむらさん #ymsr

家庭の事情で送別会には参加できなかったこともあるので、みんな以上にいっぱい想いを書きたいが、自分が知ってるのってどこまでなんだろう?もしかして全然知らないんじゃないかって不安になりながらも書いてみることにする。

  • 完全に思い出話なので、知ってる人だけ知っといてもらえれば良いかと思います。
  • もっと書くことべきことをあとから思い出すかもしれないので、その時には追記します。
続きを読む

「コーディングを支える技術」読了

誕生日プレゼントでいただいたのをようやく読み終えた。

継承の章あたりは微妙に自分の中でモヤモヤしてたところがすっきりして良かったです。

tractorgen

トラクターの AA が表示される Tractorgen というプログラムがあるが、どういう層に需要があるのかはわからない。

% tractorgen 
         r-------
        _|
       / |_______\_    \\
      |          |o|----\\
      |_____________\_--_\\
     (O)_O_O_O_O_O_(O)    \\
% tractorgen 10
         r-------------
        _|
       / |_____________\_    \\
      |                |o|----\\
      |___________________\_--_\\
     (O)_O_O_O_O_O_O_O_O_(O)    \\
% tractorgen 4 
         r-
        _|
       / |_\_    \\
      |    |o|----\\
      |_______\_--_\\
     (O)_O_O_(O)    \\
% tractorgen 3
tractorgen: ERROR!! Tractors must have at least four wheels!! FOOL!
[1]    1818 abort      tractorgen 3

cygwin のダウンロードサイトのディレクトリ構成が変わった

半月ほど前に setup.exe が新しくなったよというアナウンスがされてたのをスルーしてました。

Although it is not strictly necessary, it is a good idea to clear out your download directory prior to running these programs. The new setup exe's create a different directory structure in the download directory and do not recognize the old layout. So, any files left over from running older versions of setup.exe will be ignored by the new version of setup. Older setup.exe's will no longer work with the setup.ini files used by the newer setup.exe versions so you'll definitely need to download the new version of the setup program if you want to install or update Cygwin.


しばらくは古い setup.exe も使えていましたが、二〜三日前からミラーサイトで setup.ini が (古い setup.exe が想定しているパスに) 見つけられなくなって使えなくなりました。

古いディレクトリ構成は以下のような感じでした。

.
├── setup.bz2
└── release
    ├── pkg1
    ├── pkg2
     :
     :

新しいのは以下のように変わってました。

.
└── x86
    ├── setup.bz2
    └── release
        ├── pkg1
        ├── pkg2
     :
     :

まあ、それだけです。genini を使って自分でツリーをつくってる場合は setup.ini の生成先を変えないといけないので注意です。

「プロセッサを支える技術」を読んだ

誕生日にいただいた本をようやく読み終えました。


プロセッサを支える技術  ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)

プロセッサを支える技術  ??果てしなくスピードを追求する世界 (WEB+DB PRESS plus)


大学の時はヘネパタが教科書でしたが、今はこの本を代わりに教科書にしてもいいんじゃないかと思う豊富さと内容でした。

通勤電車で本を読む (4)

転職祝いの積読本がようやく消化できました。

サイバー・クライム

サイバー・クライム


ノンフィクションながら展開が面白くもあり、全然知らなかった現在のサイバー犯罪の状況がいろいろとわかって勉強にもなった。

PHP の Thread を試してみる

PHP でスレッドを使いたいとお嘆きのあなたは使ってみるといいんじゃないかな。

マニュアルは公式サイトの方が読みやすいと思われる。


残念なことに使用するには --enable-maintainer-zts を有効にして再ビルドする必要がある。

  --enable-maintainer-zts Enable thread safety - for code maintainers only!!


phpbrew の場合は -- オプションで configure への引数を追加できる。

% phpbrew install php-5.4.7 -- --enable-maintainer-zts


zts を有効にしたら pecl でぶっこみます。github から archive を持ってくる必要なんてなかったんや...。

% pecl install pthreads-beta


あとは Thread クラスを継承したクラスを書くだけです。ね?簡単でしょ?


% php ./ThreadExample.php
ID[4340998144] : start & sleep
ID[4342120448] : start & sleep
ID[4343242752] : start & sleep
ID[4344365056] : start & sleep
ID[4345487360] : start & sleep
ID[4345487360] : done
ID[4346609664] : start & sleep
ID[4347731968] : start & sleep
ID[4348268544] : start & sleep
ID[4349128704] : start & sleep
ID[4349988864] : start & sleep
ID[4343242752] : done
ID[4340998144] : done
ID[4346609664] : done
ID[4348268544] : done
ID[4349128704] : done
ID[4349988864] : done
ID[4344365056] : done
ID[4342120448] : done
ID[4347731968] : done
%


【追記】ブクマがそこそこあったので補足しておきますが、run() の中で date() を呼んだら Segmentation Fault が発生したり、property を定義しても何故か未定義になってしまうので、まだまだ実用はできない状態です。