2013-03-01 :-(
_ 読書メーター
2013年2月の読書メーター
読んだ本の数:2冊
読んだページ数:746ページ
ナイス数:7ナイス
感情表現辞典の感想
感情を過去の作家たちがどのように表現しているか。など。電子化されてないんだろか
読了日:2月24日 著者:
ワンクリック―ジェフ・ベゾス率いるAmazonの隆盛の感想
本書をどこで知ったのか忘れたんだが、読んでみたらスタートアップの手本だった。始めは小さく、顧客を重視、方向転換、拡大などと書いてあり、リーンスタートアップやRunning Leanで読んだとおりのことが書いてあった。スタートアップの事例として読んでおくと面白い。しかし最初の資金調達というか儲けを度外視するのはたぶん真似しちゃイカンのだろうなあ
読了日:2月11日 著者:リチャード・ブラント
読書メーター
_ [NetBSD][kyua][ATF][テスト][翻訳]NetBSD Blog - Initial Kyua import done初めての Kyua 取り込み終了
March 01, 2013 posted by Julio Merino
I am very happy to announce that the initial import of Kyua into the NetBSD source tree is complete! I am sure there are some rough edges and here is where you come into play.
Kyua の初めての NetBSD ソースツリー取り込み完了について報告できることを嬉しく思います。多少 荒削りな部分があるので、みなさん遊んでね。
First of all, let me clarify that all the integration changes are gated by the MKKYUA build setting, which still defaults to no. Unless you explicitly set MKKYUA=yes in /etc/mk.conf or in the build.sh command line, you will not get a system with Kyua. However, once you set that flag, you will transition to the full new setup:
最初に、MKKYUA ビルド設定によるすべてのゲートの統合変更を明確にしましょう。デフォルトは no です。明示的に MKKYUA=yes を /etc/mk.conf に設定するか、buld.sh コマンドラインに指定しない場合、Kyua システムは使えません。ただし、一度そのフラグを設定すると、完全な新しいセットアップに移行します
- Kyua will be installed as /usr/bin/kyua. See kyua(1) to get started.
- Kyua は /usr/bin/kyua にインストールされる。 kyua(1) を読んで使いはじめよう。
- The old atf-run and atf-report tools will become compatibility wrappers. These should be a reasonable drop-in replacement for most use cases, but they are probably not perfect.
- 古い atf-run と atf-report ツールは互換性を保つためのラッパーになる。これらはほとんどの場合 正しく置き換えられるはずだが、完璧ではない。
- Your /usr/tests tree will be populated by a bunch of Kyuafiles.
/usr/tests ツリーには Kyuafiles のファイルが設置される。
So what's new compared to the ATF tools? Here are some highlights:
それで ATF と比べて何が新しいの? 要点をいくつか紹介します。
- Ability to write and run ATF-less tests. It has been a common desire around here to develop test programs that do not rely on the ATF libraries. With this change, this becomes possible. See kyuafile(5) for details.
- ATF 不要のテストを記述し、実行できる。それは ATFのライブラリに依存しないテストプログラムを開発するための共通の願いであった。この変更により、これが可能となる。詳細については kyuafile (5) を参照。
- Direct HTML report generation. There is no need to set up a complex XML toolchain any more to convert the ATF test reports into HTML pages. Kyua can generate plain HTML directly, so it will be feasible to serve such content straight from NetBSD's built-in httpd.
- 直接 HTML レポート作成。ATF のテストレポートを HTML ページに変換するために、ややこしい XML ツールチェインをセットアップする必要はない。Kyua が直接プレーンな HTML を生成するので、NetBSD の組み込みの httpd から直接 レポートを提供することができる。
- Historical data. As seen in the various test beds that have appeared around ATF, there is a desire to maintain historical data of the test results. Kyua does that natively, by recording the results of the execution in a SQLite database. Reports can later be extracted from this database. There is still a lot of room for improvement here.
- 履歴データ。 ATF の周りに登場した様々なテストベッドに見られるように、テスト結果の履歴データを維持することが望まれている。Kyua は、SQLite データベース内の実行結果を記録することにより、ネイティブにそれを行う。レポートは後ほど このデータベースから抽出することができる。改善の余地はまだある。
- More flexible metadata and configuration. While this does not provide a real advantage today, as soon as the old atf-run and atf-report tools are gone we can trivially fix some long-standing issues (e.g. the inability to customize test deadlines).
より柔軟なメタデータと設定。今日では本当の利点をもたらさないので、とっとと古い atf-run および atf-report ツールを削除したので、いくつか判明している長年の問題 (例えば、テストの締め切りをカスタマイズすることができない) を修正できる。
- Less complexity during test case execution. As you may have noticed over the years, the code in atf-run to capture the output of tests and deal with interrupts is not particularly robust. There have been several problems in this area, and I'm not convinced that they are all fixed. The new code works in a different manner and has been more carefully thought around these edges.
- テストケースの実行時の少ない複雑さ。長年のことでお気づきかもしれませんが、atf-run 内のコードは割り込みを用いたテストと出力をキャプチャすることは、特に堅牢ではない。この部分にいくつかの問題があり、私はそれらがすべて修正されていたとは思っていない。新しいコードは異なる方法で動作し、より慎重にこれらの粗雑に取り組んだ。
- Independent testers. The code that implements the isolation of test cases and their controlled execution has been split into a set of "testers" that live in /usr/libexec/kyua-*-tester. These tools provide scriptable interfaces to interact with tests, with the idea that the kyua(1) frontend should end up being pretty straightforward. Should you want to write your own trivial script to run tests without kyua(1), you could pretty easily do that by interacting with the testers directly.
- 独立したテスター。テストケースとその制御された実行 {?????} を実装した独立したコードは、/usr/libexec/kyua-*tester の "testers" のセットに分割された。これらのツールはテストと対話するためのスクリプト可能なインターフェイスを提供する。kyua(1) フロントエンドは非常に簡単にしておくべきである、という考えである。kyua(1) なしでテストを実行するには、あなた自身のいつものスクリプトを記述する必要がある。直接テスターと対話することによって、かなり簡単にそれを行うことができる。
How can you help? Easy. Just rebuild your system with MKKYUA=yes, read through kyua(1), start using it to stress-test your system and report any problems you may encounter!
どのように助けることができますか? 簡単です。MKKYUA=yes にしてシステムを再構築するだけです。kyua(1) を読みましょう。システムをストレステストするためにそれを使用して起動すると、遭遇した問題を報告 できるよ!
My immediate next steps include addressing your feedback and working with our major test runners to add support to their systems to use the new tools (for example, change anita to support running tests with kyua(1)).
私の直近の次の作業は、あなたのフィードバックへ対応し、新しいツールを使用するために私達の主要なテストランナーをシステムのサポートを追加する作業などがあります (たとえば、kyua(1) でのテストをサポートするために anita を変更します)。
2013-03-03 :-)
_ 午前
0930 起床 && 部屋掃除
_ よみうりランドの梅を見てきた
よみうりランドは溝口肇 目当てで行った情熱大陸ライブ以来 10 年ぶり [ 20030810#p03 ]
しかし時期尚早だったようだ。来週が温暖らしいので来週かなあ。
隣の ジャイアンツ球場 で試合をやっているようなので見てきた(入場無料)。春季教育リーグの日本ハム vs ジャイアンツらしい。
球場に到着したときに 8 回だったんだが、3 回に大谷がタイムリーやってたとか ( 【日本ハム】大谷が教育Lでプロ初打点 - プロ野球ニュース : nikkansports.com )
_ [ruby][rbenv]rbenv をインストールしてみた
環境
% which ruby /usr/pkg/bin/ruby
% /usr/pkg/bin/ruby --version ruby 1.9.3p327 (2012-11-10 revision 37606) [i486-netbsdelf]
% uname -a NetBSD mogu.area51.gr.jp 6.0 NetBSD 6.0 (MYKERNEL) #1: Mon Dec 24 20:27:02 JST 2012 root@mogu.area51.gr.jp:/usr/obj/sys/arch/i386/compile/MYKERNEL i386
参考
rbenvで複数のバージョンのrubyを使用する環境を整える - memo.yomukaku.net
実施
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
PATH に $HOME/.rbenv/bin:$PATH を追加。既存の $PATH の前に追加しないとたぶん shims の仕組みとか働かないんだよね。
.zshrcにeval "$(rbenv init -)"を追加
つづき
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
インストールしてみる
md5 が 「q のオプション知らね」などと言っているし configure が「Cコンパイラ見つかんね」と言っているし。
% rbenv install 1.9.3-p327 md5: unknown option -- q usage: cksum [-n] [-a algorithm [-ptx] [-s string]] [-o 1|2] [file ... | -c [-w] [sumfile]] sum [-n] [-a algorithm [-ptx] [-s string]] [-o 1|2] [file ... | -c [-w] [sumfile]] md2 [-nptx] [-s string] [file ... | -c [-w] [sumfile]] md4 [-nptx] [-s string] [file ... | -c [-w] [sumfile]] md5 [-nptx] [-s string] [file ... | -c [-w] [sumfile]] rmd160 [-nptx] [-s string] [file ... | -c [-w] [sumfile]] sha1 [-nptx] [-s string] [file ... | -c [-w] [sumfile]] Downloading yaml-0.1.4.tar.gz... -> http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz Installing yaml-0.1.4... Installed yaml-0.1.4 to /home/rin/.rbenv/versions/1.9.3-p327 Downloading ruby-1.9.3-p327.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz Installing ruby-1.9.3-p327... BUILD FAILED Inspect or clean up the working tree at /tmp/ruby-build.20130303224428.1022 Results logged to /tmp/ruby-build.20130303224428.1022.log Last 10 log lines: ruby-1.9.3-p327/golf_prelude.c /tmp/ruby-build.20130303224428.1022/ruby-1.9.3-p327 /tmp/ruby-build.20130303224428.1022 ~ checking build system type... i386-unknown-netbsdelf6.0 checking host system type... i386-unknown-netbsdelf6.0 checking target system type... i386-unknown-netbsdelf6.0 checking for gcc... gcc checking whether the C compiler works... no configure: error: in `/tmp/ruby-build.20130303224428.1022/ruby-1.9.3-p327': configure: error: C compiler cannot create executables See `config.log' for more details
/tmp/ruby-build.20130303224428.1022.log を眺めるとライブラリはインストールしたと言ってるんだが
Libraries have been installed in: /home/rin/.rbenv/versions/1.9.3-p327/lib
無いし
% ls -l ~/.rbenv/versions total 0
rbenv の issue にそれっぽいものが見つからなかったんだが、ruby-build のほうにあった。
configure: error: C compiler cannot create executables · Issue #319 - sstephenson/ruby-build
You can work around this error by running CC=gcc rbenv install ...
ということでインストール
CC=gcc rbenv install 1.9.3-p327
% rbenv rehash
% rbenv global system
% rbenv global 1.9.3-p327 % rbenv global 1.9.3-p327
% which ruby /home/rin/.rbenv/shims/ruby
% ruby --version ruby 1.9.3p327 (2012-11-10 revision 37606) [i386-netbsdelf6.0]
% rbenv which ruby /home/rin/.rbenv/versions/1.9.3-p327/bin/ruby
システムデフォルトに戻らない件について
% rbenv help global Usage: rbenv global <version> Sets the global Ruby version. You can override the global version at any time by setting a directory-specific version with `rbenv local' or by setting the `RBENV_VERSION' environment variable. <version> should be a string matching a Ruby version known to rbenv. The special version string `system' will use your default system Ruby. Run `rbenv versions' for a list of available Ruby versions.
% rbenv global system % which ruby /home/rin/.rbenv/shims/ruby
あでも --version の印字は /usr/pkg/bin/ruby のと同じだ。
% ruby --version ruby 1.9.3p327 (2012-11-10 revision 37606) [i486-netbsdelf]
2013-03-04 :-(
2013-03-05 :-(
_ [ruby][math]なぜ ruby には Math.radians と Math.degrees がないのか
こうですか分かりません。
Module Math def radians(deg) rad = deg * Math::PI / 180 end def degrees(rad) deg = rad * 180 / Math::PI end end
Python にはあるのに ( 9.2. math — Mathematical functions — Python v2.7.3 documentation )
_ [ruby][twitter]The Twitter Ruby Gem を使ってみた
環境
- Microsoft Windows 7 64bit
- cygwin
- ruby 1.9.3p385
参考
インストール
% gem install twitter
Twitter アプリ登録
dotinstall の説明を参考にして http://dev.twitter.com/apps/ からテキトーに設定しておく。
consumer_key とかも取得しておく。
consumer_key とかは Detail タブの「Recreate my access token」をクリックすると生成され、OAuth tool タブで確認できる。
アプリケーション
とりあえずRoute 477 のひとのをそのまま実行してみる。
consumer_key とかは自分のアプリのやつを書いておく。
require 'twitter' require 'pp' # ログイン Twitter.configure do |config| config.consumer_key = 'アプリのatoken' config.consumer_secret = 'アプリのsecret' config.oauth_token = 'ユーザのatoken' config.oauth_token_secret = 'ユーザのsecret' end #自分のタイムラインの取得 #pp Twitter.home_timeline #自分宛てのReplyの取得 # pp Twitter.mentions #自分宛てのDMの取得 # pp Twitter.direct_messages #発言する Twitter.update("テストです。")
実行
/usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/response/raise_error.rb:21:in `on_complete': Error processing your OAuth request: Read-only application cannot POST (Twitter::Error::Unauthorized) from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:9:in `block in call' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:63:in `on_complete' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/response.rb:8:in `call' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/request/url_encoded.rb:14:in `call' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/request/multipart.rb:13:in `call' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/request/multipart_with_file.rb:14:in `call' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/connection.rb:226:in `run_request' from /usr/lib/ruby/gems/1.9.1/gems/faraday-0.8.4/lib/faraday/connection.rb:99:in `post' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:81:in `request' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/client.rb:70:in `post' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/api/utils.rb:82:in `object_from_response' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter/api/tweets.rb:129:in `update' from /usr/lib/ruby/gems/1.9.1/gems/twitter-4.5.0/lib/twitter.rb:52:in `method_missing' from twitter1.rb:25:in `<main>'
Read-only とあるので http://dev.twitter.com/apps/ アプリのページの settings にある Application type を Read and Write にする。
再度実行。
また同じエラーになった。
はて
ググる
ruby1.9.3: rubyでTwitter API - pandazx's blog
一度、Twitterアプリのアクセス権をread onlyにした状態で実行してしまったので、Error processing your OAuth request: Read-only application cannot POST (Twitter::Error::Unauthorized) が発生した。その後、アクセス権をread and writeにして実行したが、まだエラーが発生する。これを解消するには、get-twitter-oauth-token を再実行して新しいaccess tokenを取得、プラグラムを修正する必要がある。
あー
アプリの Detail に行って「Recreate my access token」をクリック。
トークンとかが作りなおされるので、トークンとかをスクリプトへコピペしなおして、再度実行
ok
2013-03-06 :-(
_ 吐露といっしょ
先日の現象[ 20130110#p01 ]が再現した。
どうやら前日の晩飯が原因のようだ。
- 先日: 豚肉の冷しゃぶ
- 本日: 牛肉の冷しゃぶ
つまり冷しゃぶがよろしくない。
原因の仮説として豚肉か冷しゃぶを検討していたんだが、今回の検討結果によると冷しゃぶが原因だったことが分かった。
というわけで今日も一日寝ていた。
先日ほど胃にダメージは食らっていないので回復は早いと思われる。
_ ことり可愛い
2013-03-08 :-(
_ *BSD on PlayStation
日本ではあまり馴染みのない企業名や,大企業であっても業界関係者でなければ知らない企業名が多いかもしれません。日本でも名の通った企業で,すぐに確認できるところだと,ソニー・コンピュータエンタテインメントのPlayStation 3やPlayStation Vitaといったゲーム・ハードウェアでFreeBSDが活用されているというのが有名でしょうか。
次のライセンス表記のページなどで確認できます。
ということで以下の URI
11. NetBSD
10. NetBSD
NetBSD もあった。
YAML とか Mono も使ってるんですなあ。
_ [cygwin][pkgsrc]Cygwin is now in pkgsrc supported platform
というわけでやってみる。
環境
- Microsoft Windows 7 64bit
- cygwin( base と devel をインストールしてある )
取得
いつもどおりに current を取得
% export CVS_RSH="ssh" % export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot" % cvs co -P pkgsrc
bootstrap
最初 mintty.exe を「管理者として実行」して bootstrap したら怒られた。
% cd pkgsrc/pkgsrc % ./bootstrap : ===> running: /usr/bin/sh /home/public/pkgsrc/bootstrap/work/bin/install-sh -c -o 1000 -g 513 -m 755 /home/public/pkgsrc/bootstrap/work/pkg_install/admin/pkg_admin /home/public/pkgsrc/bootstrap/work/sbin/pkg_admin ===> running: /usr/bin/sh /home/public/pkgsrc/bootstrap/work/bin/install-sh -c -o 1000 -g 513 -m 755 /home/public/pkgsrc/bootstrap/work/pkg_install/create/pkg_create /home/public/pkgsrc/bootstrap/work/sbin/pkg_create ===> running: /usr/bin/sh /home/public/pkgsrc/bootstrap/work/bin/install-sh -c -o 1000 -g 513 -m 755 /home/public/pkgsrc/bootstrap/work/pkg_install/info/pkg_info /home/public/pkgsrc/bootstrap/work/sbin/pkg_info ===> Installing packages ===> running: (cd /home/public/pkgsrc/pkgtools/bootstrap-mk-files && /home/public/pkgsrc/bootstrap/work/bin/bmake USE_DESTDIR=no -DPKG_PRESERVE MAKECONF=/home/public/pkgsrc/bootstrap/work/mk.conf install) ===> Installing dependencies for bootstrap-mk-files-20120415 ===> Overriding tools for bootstrap-mk-files-20120415 ===> Extracting for bootstrap-mk-files-20120415 ===> Patching for bootstrap-mk-files-20120415 ===> Creating toolchain wrappers for bootstrap-mk-files-20120415 ===> Configuring for bootstrap-mk-files-20120415 cd /home/public/pkgsrc/bootstrap/work/wrk/pkgtools/bootstrap-mk-files/work/bootstrap-mk-files-20120415; for file in bsd.* sys.mk; do test ! -f mods/Cygwin.$file || /bin/cp -f mods/Cygwin.$file /home/public/pkgsrc/bootstrap/work/wrk/pkgtools/bootstrap-mk-files/work/bootstrap-mk-files-20120415/$file; done cd /home/public/pkgsrc/bootstrap/work/wrk/pkgtools/bootstrap-mk-files/work/bootstrap-mk-files-20120415; if test -f mods/Cygwin.bsd.own.mk.in; then own_mk=mods/Cygwin.bsd.own.mk.in; else own_mk=mods/bsd.own.mk.in; fi; /bin/sed -e 's|@ROOT_GROUP@|'None'|g' -e 's|@ROOT_USER@|'rin'|g' -e 's|@SYSCONFDIR@|'/home/rin//pkg/etc'|g' $own_mk > bsd.own.mk ===> Installing for bootstrap-mk-files-20120415 WARNING: Your umask is ``0022''. WARNING: If this is not desired, set it to an appropriate value (002) and install WARNING: this package again by ``/home/public/pkgsrc/bootstrap/work/bin/bmake deinstall reinstall''. => Creating installation directories cd /home/public/pkgsrc/bootstrap/work/wrk/pkgtools/bootstrap-mk-files/work/bootstrap-mk-files-20120415 && for file in bsd.* sys.mk; do /bin/install -c -o rin -g None -m 644 $file /home/rin//pkg/share/mk/$file; done => Automatic manual page handling ▒▒▒▒▒ȃX▒C▒b▒`▒ł▒▒B *** Error code 1 Stop. bmake: stopped in /home/public/pkgsrc/pkgtools/bootstrap-mk-files *** Error code 1 Stop. bmake: stopped in /home/public/pkgsrc/pkgtools/bootstrap-mk-files *** Error code 1 Stop. bmake: stopped in /home/public/pkgsrc/pkgtools/bootstrap-mk-files ===> exited with status 1 aborted.
obache さんが「Cygwin Terminalを右クリックしろ」と言っているので正攻法で c:\cygwin\cygwin.bat を「管理者として実行」して bootstrap したらイケた。
: => Automatic manual page handling => Running POST-INSTALL script actions => Please note the following: =========================================================================== $NetBSD: MESSAGE,v 1.5 2009/02/02 12:34:59 joerg Exp $ You may wish to have the vulnerabilities file downloaded daily so that it remains current. This may be done by adding an appropriate entry to a user's crontab(5) entry. For example the entry # download vulnerabilities file 0 3 * * * /usr/pkg/sbin/pkg_admin fetch-pkg-vulnerabilities >/dev/null 2>&1 will update the vulnerability list every day at 3AM. You may wish to do this more often than once a day. In addition, you may wish to run the package audit from the daily security script. This may be accomplished by adding the following lines to /etc/security.local if [ -x /usr/pkg/sbin/pkg_admin ]; then /usr/pkg/sbin/pkg_admin audit fi Alternatively this can also be acomplished by adding an entry to a user's crontab(5) file. e.g.: # run audit-packages 0 3 * * * /usr/pkg/sbin/pkg_admin audit Both pkg_admin subcommands can be run as as an unprivileged user, as long as the user chosen has permission to read the pkgdb and to write the pkg-vulnerabilites to /var/db/pkg. The behavior of pkg_admin and pkg_add can be customised with pkg_install.conf. Please see pkg_install.conf(5) for details. If you want to use GPG signature verification you will need to install GnuPG and set the path for GPG appropriately in your pkg_install.conf. =========================================================================== => Registering installation for pkg_install-20130131nb1 ===> running: /usr/bin/sh /home/public/pkgsrc/bootstrap/work/bin/install-sh -d -o Administrators -g Administrators /usr/pkg/etc =========================================================================== Please remember to add /usr/pkg/bin to your PATH environment variable and /usr/pkg/man to your MANPATH environment variable, if necessary. An example mk.conf file with the settings you provided to "bootstrap" has been created for you. It can be found in: /usr/pkg/etc/mk.conf You can find extensive documentation of the NetBSD Packages Collection in /home/public/pkgsrc/doc/pkgsrc.txt. Hopefully everything is now complete. Thank you for using pkgsrc! =========================================================================== ===> bootstrap started: 2013年 3月 8日 金曜日 22:54:31 JST ===> bootstrap ended: 2013年 3月 8日 金曜日 23:10:14 JST
_ [pkgsrc][cygwin]pkgsrc on cygwin で sl をビルド(失敗)
いつもどおりに sl をビルドしてみる。/usr/pkg/bin に PATH を通してないので full path で実行している。
% cd pkgsrc/games/sl % /usr/pkg/bin/bmake install : config.status: creating Makefile config.status: WARNING: 'Makefile.in' seems to ignore the --datarootdir setting config.status: creating config.h ===> Building for digest-20121220 gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c digest.c -o digest.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c md5c.c -o md5c.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c rmd160.c -o rmd160.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c rmd160hl.c -o rmd160hl.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c sha2.c -o sha2.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c sha2hl.c -o sha2hl.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c md5hl.c -o md5hl.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c sha1.c -o sha1.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c sha1hl.c -o sha1hl.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c tiger.c -o tiger.o gcc -DHAVE_CONFIG_H -I. -I. -DHOST=\"i386-pc-cygwin\" -DVERSION=\"20121220\" -O -c whirlpool.c -o whirlpool.o gcc -O -Wl,-R/usr/pkg/lib -o digest digest.o md5c.o rmd160.o rmd160hl.o sha2.o sha2hl.o md5hl.o sha1.o sha1hl.o tiger.o whirlpool.o => Unwrapping files-to-be-installed. ===> Installing for digest-20121220 WARNING: Your umask is ``0022''. WARNING: If this is not desired, set it to an appropriate value (002) and install WARNING: this package again by ``/usr/pkg/bin/bmake deinstall reinstall''. /bin/sh ./mkinstalldirs /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/bin mkdir /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/bin /bin/install -c -s -o rin -g None -m 755 digest /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/bin/digest /bin/sh ./mkinstalldirs /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/man/man1 mkdir /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/man mkdir /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/man/man1 /bin/install -c -o rin -g None -m 644 digest.1 /home/public/pkgsrc/pkgtools/digest/work/.destdir/usr/pkg/man/man1/digest.1 => Automatic manual page handling ===> Building binary package for digest-20121220 => Creating binary package /home/public/pkgsrc/packages/All/digest-20121220.tgz ===> Install binary package of digest-20121220 => Returning to build of sl-3.03p5 => Bootstrap dependency tnftp-[0-9]*: NOT found => Verifying package-install for ../../net/tnftp ERROR: This package has set PKG_FAIL_REASON: ERROR: No usable termcap library found on the system. *** Error code 1 Stop. bmake: stopped in /home/public/pkgsrc/net/tnftp *** Error code 1 Stop. bmake: stopped in /home/public/pkgsrc/games/sl
termcap が無い。と怒られた
寝るか
2013-03-09 :-)
2013-03-10 :-)
_ 煙霧とやら
14 時ころに外が急に暗くなったので何かと思って見てみたら神砂嵐が炸裂していた。
ref. 【黄砂騒動】東京のヤバすぎる空の色は煙霧が原因 / 子ども「きな粉めっちゃ飛んでる! きな粉めっちゃ飛んでる!」 - ロケットニュース24
2013-03-12 :-(
2013-03-14 :-(
_ ,
ついに Tumblr で日記を書き始めましたね!
_ Google Reader 終了のお知らせ
Official Google Reader Blog: Powering Down Google Reader
フレッシュリーダーが終了してから Google Reader に乗り換えた[ 20101206#p04 ] んだが、お前もか。
とりあえずデータをエクスポートしておいた。
爆速Yahoo! さんが何かやってるらしいので期待 My Yahoo! - Googleリーダー、iGoogleからの乗り換えツール爆速準備中!
_ 整数 最大値
python
>>> import sys >>> -sys.maxint -2147483647
Pythonの整数型でサポートされる、最大の整数。この値は最低でも2**31-1で す。最大の負数は-maxint-1となります。正負の最大数が非対称です が、これは2の補数計算を行うためです。
ruby
irb(main):030:0> 2 ** ((1.size) * 8 -1 ) -1 => 2147483647
こうですか?
_ [ナイーブベイズ][ベイズ推定][ruby][機械学習]ナイーブベイズを用いたテキスト分類 - 人工知能に関する断創録
ruby で写経
Python の set (重複なしリスト) の代わりが分からんので uniq! するとか
d[1:] の代わりが分からんので d[1, d.length-1] みたいな。
docstring とか知りません。
# -*- encoding: utf-8 -*- # # ナイーブベイズを用いたテキスト分類 - 人工知能に関する断創録 # http://aidiary.hatenablog.com/entry/20100613/1276389337 # include Math require 'pp' def maxint() return 2 ** ((1.size) * 8 -1 ) -1 end def sum(data) return data.inject(0) {|s, i| s + i} end class NaiveBayes # Multinomial Naive Bayes def initialize() @categories = [] # カテゴリの集合 @vocabularies = [] # ボキャブラリの集合 @wordcount = {} # wordcount[cat][word] カテゴリでの単語の出現回数 @catcount = {} # catcount[cat] カテゴリの出現回数 @denominator = {} # denominator[cat] P(word|cat)の分母の値 end def train(data) # ナイーブベイズ分類器の訓練 # 文書集合からカテゴリを抽出して辞書を初期化 data.each {|d| cat = d[0] @categories << cat } @categories.each {|cat| @wordcount[cat] ||= {} @wordcount[cat].default = 0 @catcount[cat] = 0 } # 文書集合からカテゴリと単語をカウント data.each {|d| cat, doc = d[0], d[1, d.length-1] @catcount[cat] += 1 doc.each {|word| @vocabularies << word @wordcount[cat][word] += 1 } } @vocabularies.uniq! # 単語の条件付き確率の分母の値をあらかじめ一括計算しておく(高速化のため) @categories.each {|cat| sum = @wordcount[cat].values.inject(0) {|s, i| s + i} @denominator[cat] = sum + @vocabularies.length } end def classify(doc) # 事後確率の対数 log(P(cat|doc)) がもっとも大きなカテゴリを返す best = nil max = -maxint() @catcount.each_key {|cat| _p = score(doc, cat) if _p > max max = _p best = cat end } return best end def wordProb(word, cat) # 単語の条件付き確率 P(word|cat) を求める # ラプラススムージングを適用 # wordcount[cat]はdefaultdict(int)なのでカテゴリに存在しなかった単語はデフォルトの0を返す # 分母はtrain()の最後で一括計算済み return (@wordcount[cat][word] + 1).to_f / (@denominator[cat]).to_f end def score(doc, cat) # 文書が与えられたときのカテゴリの事後確率の対数 log(P(cat|doc)) を求める total = sum(@catcount.values) # 総文書数 sc = Math.log((@catcount[cat]) / total.to_f) # log P(cat) doc.each {|word| # logをとるとかけ算は足し算になる sc += Math.log(wordProb(word, cat)) # log P(word|cat) } return sc end def to_s() total = sum(@catcount.values) # 総文書数 return "documents: #{total}, vocabularies: #{@vocabularies.length}, categories: #{@categories.length}" end end if __FILE__ == $0 # Introduction to Information Retrieval 13.2の例題 data = [ ["yes", "Chinese", "Beijing", "Chinese"], ["yes", "Chinese", "Chinese", "Shanghai"], ["yes", "Chinese", "Macao"], ["no", "Tokyo", "Japan", "Chinese"] ] # ナイーブベイズ分類器を訓練 nb = NaiveBayes.new nb.train(data) p nb puts "P(Chinese|yes) = #{nb.wordProb('Chinese', 'yes')}" puts "P(Tokyo|yes) = #{nb.wordProb('Tokyo', 'yes')}" puts "P(Japan|yes) = #{nb.wordProb('Japan', 'yes')}" puts "P(Chinese|no) = #{nb.wordProb('Chinese', 'no')}" puts "P(Tokyo|no) = #{nb.wordProb('Tokyo', 'no')}" puts "P(Japan|no) = #{nb.wordProb('Japan', 'no')}" # テストデータのカテゴリを予測 test = ['Chinese', 'Chinese', 'Chinese', 'Tokyo', 'Japan'] puts "log P(yes|test) = #{nb.score(test, 'yes')}" puts "log P(no|test) = #{nb.score(test, 'no')}" puts nb.classify(test) end
出力は同じ
% ruby naivebayes.rb documents: 4, vocabularies: 6, categories: 4 P(Chinese|yes) = 0.42857142857142855 P(Tokyo|yes) = 0.07142857142857142 P(Japan|yes) = 0.07142857142857142 P(Chinese|no) = 0.2222222222222222 P(Tokyo|no) = 0.2222222222222222 P(Japan|no) = 0.2222222222222222 log P(yes|test) = -8.10769031284391 log P(no|test) = -8.906681345001262 yes
2013-03-15 :-(
_ 10年の教訓
自分の製品を作らないと自分の虚栄心は満たされない。
_ 歌を聞いて癒されるならば、それは精神が疲れている証拠である
CHANGIN' MY WORLD!!
変わらない夢 描いて
CHANGIN' 今を
好きに自由に変えるREADY!!
CHANGIN' 前を
新しい未来 追いかけながら
私らしい私で もっともっと DREAM COMES TRUE
2013-03-17 :-)
_ 午後
1400 茅ヶ崎
_ ,
あ、いま tumblr で繋がってるんだなって
_ [椿][氷室椿庭園]氷室椿庭園 に行ってきた
神奈川新聞の朝刊で氷室椿庭園のことが紹介されていたのでせっかくだから行ってみた。
茅ヶ崎駅に降りるのは 6 年ぶりくらい。2005 年入居して[ 20051001 ] 2007 年に撤退[ 20070318#p01 ]していた。
茅ヶ崎駅から徒歩 15 分ということで、往路はコミュニティバスに乗っていった。バス停を降りてからさらに住宅地を歩いていくと庭園がある。静かだなあ。こういうところに棲んでみたいが、いまのご時世ではちと遠慮したい( 海が近いうえに海抜が 6m くらい )。なお、経路は分かりやすいので帰路は徒歩で茅ヶ崎駅まで移動した。
椿 250 種とあったんだが、ほんとに 1 本 1 本種類が異なっていた。見た目は似たような種類が多いんだが、紅、白を基本として、それらを交配したんだろうか。
_ [F1]2013 FORMULA 1 ROLEX AUSTRALIAN GRAND PRIX を眺めていた
48 周目あたりで眠くなって寝てしまったが。
リッジレーサーが好きな割にはモータスポーツにはまったく興味なくて、でも周囲のひとたちが(当たり前だが)盛り上がっているので、どういうもんだろうか、という日々を送っていたんだが、先日 @hageatama のひとが記事を書いていた( 非常に敷居の低い趣味『F1のTV観戦』のススメ - はげあたま.org ) というかちょうど @hageatama のひとの post がタイムラインに流れていたので F1 を見てみた。
3チーム6人さえ覚えておけばOK
ロータス、フェラーリ、レッドブルは上位に居た。
ドライバーはライコネンくらいしか覚えていない。
レースの肝はタイヤとピットイン
解説の片山右京がスーパーソフトとミドルについて云々していた。
ここ最近のF1がおもしろい!
『DRS』は可変ウィングによるスーパーキノコで、『KERS』はエネルギーを溜めてのミニターボのようなものです。(全人類はマリオカートやってると信じています)
マリオカートは初代のスーファミしかやってませんが
F1 : DRS (Drag Reduction System)とは 【 F1-Gate.com 】
DRSは、リアウイングのフラップをドライバーが手動で可動させることでドラッグを低減させ、オーバーテイクを促進させることを目的に導入された可変リアウイング。フラップの可変は5cmまで許されている。
KERS (運動エネルギー回生システム) 【 F1-Gate.com 】
KERS(Kinetic Energy Recovery System)とは、これまで熱として放出されていた減速時のエネルギーを回収し、機械的または電気的エネルギーとして貯蔵し再利用するシステムである。
KERS が進化すればアルティメットチャージも夢ではない...!
ところで「周囲のひとたちが盛り上がっているからとりあえず手を出してみた」系は私にはファイナルファンタジー XI という前例があるのであまり長続きしないか。
2013-03-18 :-(
_ 夜
1900 人工無脳は考える
2130 飯
2200 ガールズ&パンツァー 11 話「激戦です!」リアルタイムで見るなど 今夜はTOKYO MXにて第11話がOA! ガールズ&パンツァー公式ブログ/ウェブリブログ 来週でとうとう最終回か
2013-03-19 :-(
_ 午前
0600 起床 && 寝坊 && スマホがマナーモードになっていたため目覚ましが聞こえず && いつもの電車より1本遅らせるだけで済んだ && 1,2ヵ月前に使っていた電車である
0830 検討
2013-03-20 :-)
_ 午後
1220 松田山ハーブガーデン
2013-03-21 :-(
_ [翻訳][NetBSD]hubertf's NetBSD blog - Happy 20ths Birthday, NetBSD! NetBSD 20 周年おめでとう
20 years back from today, NetBSD was initially checked into CVS. Revision 1.1 of src/Makefile was committed on March 21st 1993 on 09:45:37 by Chris Demetriou (cgd@):
20 年前の今日、NetBSD は最初の CVS チェックインをおこなった。1993 年 3 月 21 日 09:45:37 に Chris Demetriou (cgd@) によって src/Makefile のリビジョン 1.1 がコミットされた。
% cvs log -Nr1.1 Makefile ... revision 1.1 date: 1993/03/21 09:45:37; author: cgd; state: Exp; branches: 1.1.1; Initial revision
NetBSD was started as successor to the Berkeley System Distribution (BSD) Unix with a focus on multiplatform support.
NetBSD はマルチプラットフォームに注力する the Berkeley System Distribution (BSD) Unix の後継として開始された。
Personally, I've followed NetBSD since the day in 1993 when the Amiga port popped up, which was the first platform that the newly forked operating system was ported to after its separation from BSD.
私は、NetBSD は 1993 年の Amiga 移植から携わっている。BSD から分離したあとの新しいオペレーティングシステムとして、最初のプラットフォームである。
Many things have happened in the past 20 years, and a lot could be shown and told for the history books at this point. But I guess that can be done later - I'd be happy to help out with such a project if someone wants to start it, though :)
20 年間でたくさんのことがあった。ここでの歴史的な多くのことが 見 聞き できる。
For today I'm very happy that NetBSD is available on a wide range on platforms, runs the software that I want and gives me the assurrance it will be around tomorrow and hopefully for the next 20 years, too.
今日の NetBSD に非常に満足している。幅広いプラットフォーム上で利用でき、望みどおりにソフトウェアが走る。明日もそうだし、きっと今後 20 年間もそうだろう。
Cheers, NetBSD!
\NetBSD/
2013-03-22 :-(
_ 買い物
iTunes Store
西住みほ(CV.渕上 舞)「TVアニメ「ガールズ&パンツァー」キャラクターソング vol.1 SCHOOL GIRL、はじめます! - Single」
武部沙織(CV.茅野愛衣)「TVアニメ「ガールズ&パンツァー」キャラクターソング vol.2 恋にLOVEして - Single」
五十鈴華(CV.尾崎真実)「TVアニメ「ガールズ&パンツァー」キャラクターソング Vol.3 咲いたはな - Single」
秋山優花里(CV.中上育実)「TVアニメ「ガールズ&パンツァー」キャラクターソング Vol.4 戦車道恋唄! - Single」
冷泉麻子(CV.井口裕香)「TVアニメ「ガールズ&パンツァー」キャラクターソングVol.5 メランコリック - Single」
2013-03-23 :-)
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 遭遇編
@miwarin, @yo_1, @megtan, @Miya_TF, @MatsuYan
大洗町のひとびとがガールズ&パンツァー(以降 ガルパン)とイベントを開催するという、すでに恒例となったイベントである。
舞台探訪[ 20130112#p01 ]のときに偶然 遭遇したひとたちを含めて行ってきた。
翌日のガールズアンドパンツァートークイベントに備えて、前日入りした。イベント発表後にソッコーで宿を確保した @megtan thx
私の車を利用して東京から出発し、現地でああだこうだするプランであった。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 クックファン未遂
ガルパン本編にも登場したお店である。ガルパン仕様トンカツがある、というので行こうとしていたんだが、東京都内の渋滞に巻き込まれて結局時間内に店に到着できなかったので、諦めた。スンマセン (´・ω・`)
今度行きましょう。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 おひる
クックファンはスルーして、大洗へ向かう。
大洗で @megtan と合流。
痛車のお出迎え
大洗リゾートアウトレットI 内のお店でお昼。
他のひとたちはメンチカツを注文していたんだが、私は挽き肉系統が苦手なのでアジフライにした。アジがすげえ大きいんですが (´Д`;)
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 スタンプラリー
大洗町を舞台にしてガルパン スタンプラリーが開催されている。
さくさくと行ってきた。
「被弾につき、改修中」も寄れた。(ただたんに普通に道路を工事しているだけなんだが、この場所が劇中に登場するので、工事担当のひとたちがジョークを効かせている)
大洗磯前神社 の絵馬も見てきた。
手が込んでいる。
絵馬を 2 つ用いてノンナがカチューシャを肩車している様子を表現している。
中の人キタ━(゚∀゚)━!
湯涌温泉の札があった。( ref. 湯涌ぼんぼり祭り 北國新聞ホームページ - 「花いろ」ファン7千人集結 湯涌ぼんぼり祭り 「花いろイベント IN ぼんぼり祭り」&「湯涌ぼんぼり祭り」レポート )
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 かくれんぼ
スタンプラリーを巡っている最中に町内にガルパンキャラの(ほぼ)等身大ポップが立てられていることが分かった。(これは 3/24 当日のガルパンかくれんぼのための準備である)
前日なのでまだ かくれんぼイベントは開催されていないんだが、せっかくだから回収できるだけ回収する、という方針転換。
全部で 50 人ぶんくらいあるらしい。
ほぼ現地人の @megtan の尽力によりかなりの人数を回収できた。
肴屋本店 のダージリンさんのクオリティがおかしいんだが
ティーセットまで準備してある。
「ねえ、こんな格言を知ってる?」(劇中でダージリンさんがよく使っている言葉)
以下 順不同
カチューシャが凛々しい。
カチューシャの近くにノンナが居た。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 晩飯
これまた @megtan がソッコーで予約してくれた。しかも個室である。
あんこう鍋を食べた。
当たり前だが刺し身がうまい。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 前日 ホテル
「まりんかん」と読む。
5~10人部屋に 5 人で宿泊したのでかなり広く使えた。合宿のような感覚であった。
かくれんぼの途中で購入したお酒。月の井( 月の井酒造店 )がまたやってくれた。(純米 蝶野亜美「撃破率百二十%」 も作っている)。ガルパン大洗学園の 5 チームの日本酒である。みんなでだらだら飲もう、という当初の予定だったんだが、@megtan がとっとと寝落ちし、私も一杯だけ飲んだものの疲れたのでサクっと寝てしまった。
2013-03-24 :-)
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 駐車場
ホテルをチェックアウトし、町営駐車場にサクっと駐車した。7 時ですでに半分以上埋まっていた。
駐車場は痛車の展示場になっていた。
カチューシャ!カチューシャ!
反対は会長だった。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 陸上自衛隊74式戦車
大洗町が自衛隊へお願いし、戦車が展示された。( [茨城県大洗町]町おこしで74式戦車登場 アニメ「ガルパン」きっかけに )
兵器というものを見るのは初めてなんだが、これが戦闘のための道具という物体の存在感なのか。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 かくれんぼ 続き
昨日回収できなかった かくれんぼを探しつつ、大洗町を散歩するなど。
大洗駅へ行き、スタンプラリーをコンプリートしたので景品を貰ってきた。
@Miya_TF がラッピングバスに気づいたので撮影してきた。運行しているラッピングバスは初めて見た。
本格的なタクシーも居た。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 整理券確保
大洗文化センターに行き午後からのイベントの整理券を貰った。( 3/23・24 水戸&大洗イベント追加情報! ガールズ&パンツァー公式ブログ/ウェブリブログ )
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 イベント
干し芋クレープを食べるなど。
陸上自衛隊PRタイム。自衛官が観客からの質問に答えるというもの。質疑応答のやりとりが面白すぎた。
オオアライダーのパフォーマンスなど
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 ガールズ&パンツァートークショー
撮影禁止なので写真なし。
中上育実がサンクス店員の上着を貰ったり。
佐咲紗花によるあんこう音頭があったり。
石破茂 自由民主党幹事長からのビデオメッセージがあったり(!!!) 大洗町が石破茂へ手紙を出した( 石破茂が軍事マニアだから声をかけたようだ )ものの、都合がつかないのでビデオメッセージという形になったらしい。まさか石破茂の口から「ガールズ&パンツァー」の言葉が聞けるとは思ってもみなかった。
トヨタ プリウスが正式に痛車となり、販売されるそうだ。オプションとして西住みほのカーナビが付くんだとか。カーナビは欲しいけど、うーん、プリウスかあ....。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 MG的模型戦車道予選シンポジウム
@文化センター大ホール
場所を移動してシンポジウムへ。
MG はモデルグラフィックスのこと。
1月号と4月号でガルパンが特集されている。
戦車プラモデルの誌上コンテストの紹介というものになっていた。
本来はこの場で優勝を決める予定だったものが、思っていたよりも応募数が多かったため、時間の都合を考えて紹介するにとどめることにしたらしい。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 当日 そして解散へ
シンポジウムが終わり、海楽フェスタも終わり、お土産を買ってとっとと帰ることにした。
戦車が積まれていた。
そして帰路につくのであった。
_ [ガルパン][ガールズ&パンツァー][大洗]大洗「海楽フェスタ」×ガールズ&パンツァー 終わりに
当初はもっとまったりと祭りを過ごすつもりだったんだが、かくれんぼがあったり、祭りも休む間もなく慌ただしく過ごし、思っていたよりも怒涛の 2 日間だった。
大洗町は東日本大震災のときの被災地である。2011年3月11日の震災から復興し、2012年10月からガールズ&パンツァー目当ての観光客が増えはじめ、2012年11月のあんこう祭では過去最高の 6 万人の来場があったというではないか(ソース見つからないんだけど)。なにより驚くべきことは、ガルパン関連のグッズやら「大洗新聞」などはすべて大洗町主導で作成されていることであろう。
私なんぞはガールズ&パンツァー目当てで大洗へ行っているし「被災地のために云々」といった崇高な意思はないんだが、観光客として大洗を訪れ多少なりともお金を使うことで大洗のためになるのであれば、それはとってもうれしいなって。大洗へ行き、その力強さを実際に体験し大洗のひとたちと交流すると、大洗に来てよかった、と思うわけである。それほど近い場所ではないからしょっちゅう行けはしないけど、機会があるたびにまた行きたい。
↓大洗のひとたちの「復興から復幸へ」の思いが書かれている。
2013-03-25 :-(
_ 夜
1900 CDエンコードしたりメール投げたり
2130 飯。ぶりの照焼
2200 ガールズ&パンツァー 第12話 最終回「あとには退けない戦いです!」を見た。戦車バトルの描写がハンパない。3ヶ月待った甲斐があったというものだ。
_ 世界で最初にTwitterのTが「ヒ」に見えることに言及した選手権 - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記
私は 2007年4月12日 - 15:41 だったので負け。
twitter の favicon が「ヒ」に見える
— Susumu Miwaさん (@miwarin) 2007年4月12日
2013-03-26 :-(
2013-03-27 :-(
_ 夜
1900 スライド修正 && {Libre,Open}Office Impress のアウトラインで箇条書きのレベルを下げて、標準にして、アウトラインにすると箇条書きのレベルが元に戻るだけで 1 日が終わった。こういうところが残念なんだよなあ。なんだかんだで Microsoft Office ってのはよく出来てる。
2130 飯。たらのムニエル
2013-03-28 :-(
_ ,
本業では客先の偉い人向けのデモを準備するために朝早くから作業し、実際にデモし(説明は客先のプロパーのひとだけど)、自社に戻ってからは 4 月からの新組織での課長と課長代理と現在の課長と係長(上司)に現状報告をするなどし、体力的にも精神的にも疲れた。寝たい
2013-03-29 :-(
_ ロールピッチなのよ
ロールピッチヨー
_ 仕事場宴会
組織変更に伴い現在の課が分割されるのでお別れ会のようなものが開催された。一時期は 8 人ほどになったんだが、現在は 30 人以上になっている。ずいぶん大きくなりましたなあ、などと。
20:30 までのはずが最後の料理が出てきたのが 20:45 だったり、店を出たのが 21:30 だがとくに何も言われないし、よく分からない店だった。
_ 仕事場宴会 2次会
係長を含めて 4 人で適当な店に入ってグダグダ話すなど。
2013-03-30 :-)
_ [花咲くいろは]劇場版 花咲くいろは HOME SWEET HOME を見てきた
@チネチッタ川崎
金沢での先行上映を見に行くほどの熱心なファンではないので普通に一般公開日に見てきた。
若いっていいなあ(性的な意味で)
先着入場者特典は能登麻美子の声のキャラクターだった。
_ [リッジレーサー7]リッジレーサー7 ARC 2012 弥生GP
ルームを作って走ってみたものの 1 レース目がラグが酷かったので emotion さんにルームオーナーになっていただいた。
- ANSΩemotion21 182
- ANSΩFLOW 135
- ANSΩmiwarin 132
- STARGOLD 126
- SOLARE 124
- REDOGRE 111
- ANSΩ三嶋出雲 83
- ANSΩ限無 69
- ANSΩFryght 18
ぐぬぬ。
ARC のあとに emotion と一緒に ABEILE の練習をするなど。
_ ,
久しぶりにチネチッタに行って驚いたのは、広末涼子はもうけっこうな年齢なのだなあ、ということであった。
_ ,
「彼はC言語を知っているという前提なのに、malloc/free が何をやっているのか、ヒープとは何なのかを知らない」というツッコミを聞いていたんだが、いや、ヒープとかまでいくと OS レベルの話題なので「 C 言語」で一括りにするのは難易度が高いんではないかと思ったが、ところで OS が提供しているメモリ管理というのはユーザーアプリからは結局 libc などのライブラリを経由して使うわけ(だよね)なんだけど、あの日見た OS のインターフェースの名前を僕たちはまだ知らない。
2013-03-31 :-)
_ ,
坂本真綾さんの誕生日です
_ [tumblr]tumblr で reblog した画像を取得するだけの簡単なお仕事です
取得できる post に上限があるらしい。
Module: Tumblife::Client::Blog — Documentation for tumblife (1.3.0)
limit (Integer) - default: 20 - The number of posts to return: 1–20, inclusive
キャッシュに YAML とかないわー 上限が無いわー とかいろいろある。
#!/usr/bin/ruby # -*- encoding: utf-8 -*- require 'open-uri' require 'tumblife' require 'yaml' require 'pp' class Cache def initialize(cache_path) @path = cache_path read() end def read @cache = YAML.load_file(@path) if FileTest.file?(@path) @cache ||= [] end def write(contents) @cache << contents File.open(@path, "w").write(YAML.dump(contents)) end def include?(contents) return @cache.include?(contents) end end class Tumblove def initialize(config_path) @config = YAML.load_file(config_path) Tumblife.configure {|config| config.consumer_key = @config["api"]["consumer_key"] config.consumer_secret = @config["api"]["consumer_secret"] config.oauth_token = @config["api"]["oauth_token"] config.oauth_token_secret = @config["api"]["oauth_secret"] } @client = Tumblife.client @base_hostname = @config["post"]["host_name"] @cache = Cache.new(File.join(@config["cache"]["directory"], @config["cache"]["filename"])) end def downloaded?(uri) return @cache.include?(uri) end def downloaded(uri) @cache.write(uri) end def write(uri) return if downloaded?(uri) filename = File.join(@config["post"]["save_dir"], File.basename(uri)) open(filename, 'wb') {|outfile| open(uri) {|infile| outfile.write(infile.read) } } downloaded(uri) end def max_photos(post) photos ||= [] post.photos.each {|photo| max_size = 0 max_uri = '' photo.alt_sizes.each {|alt_size_photo| size = alt_size_photo.width if size > max_size max_size = size max_uri = alt_size_photo.url end } photos << max_uri } return photos end def get posts = @client.posts(@base_hostname) posts.posts.each {|post| next if post.photos == nil photos = max_photos(post) photos.each {|photo| write(photo) } } end end def main(argv) config_path = argv[0].nil? ? ENV['HOME'] + '/tumblr.yaml' : argv[0] t = Tumblove.new(config_path) t.get() end main(ARGV)
yaml を準備
cache: directory: ./ filename: tm_cache api: consumer_key: 'xxxx' consumer_secret: 'xxxx' oauth_token: 'xxxx' oauth_secret: 'xxxx' post: host_name: 'miwarin.tumblr.com'
実行
% ruby tm_get_image.rb tumblr.yaml
あとはこれを jenkins から呼び出すなど。
C:\cygwin\bin\ruby.exe C:\home\rin\work\lang\ruby\tumblr\tm_get_image.rb C:\home\rin\tumblr.yaml
post は最新 20 件しか取得できないのでとりあえずビルドトリガは @hourly を指定しておいた。
参考
_ [メモリ割り付け][sbrk][brk][malloc]malloc(3)
結局ライブラリ関数 malloc(3) はシステムコール sbrk(2) を呼び出す。
「詳解UNIXプログラミング」より
UNIXシステムでは、各システムコールに対して、同じ名前の関数を標準Cライブラリとして与える。ユーザープロセスは、Cの標準呼び出し系列を用いてこの関数を呼び出す。すると、この関数はシステムで必要とされる適切な技法を用いてカーネルサービスを起動する。例えば、関数では、Cの関数の引数を汎用レジスタに置いてから、カーネルに対してソフトウェア割り込みを発生させる機械語命令を実行する。(p.18)
メモリ割り付け関数mallocを例として考えよう。メモリ割り付けとそのガーベージコレクションには(ベストフィット、ファーストフィットなどの)多くの方式がある。メモリ割り付けを処理するUNIXのシステムコールはsbrk(2)だが、これは汎用メモリ管理機構ではない。プロセスのアドレス空間をい指定したバイト数だけ増減する。この空間をどのように管理するかは、プロセスの責任である。メモリ割り付け関数mallocは、1つの特定の割り付け方式を実現する。この方式に不満ならばs,独自のmalloc関数を定義できるが、sbrkシステムコールは使うだろう。(p.19
NetBSD マニュアル。「21世紀にもなってsbrkはないわー」(意訳)と言っている。
The brk and sbrk functions are legacy interfaces from before the advent of modern virtual memory management.
i386 の実装はこちら。アセンブラなので誰でも読めます。
malloc 実装はいろいろある。
FreeBSD 7.0 以降と NetBSD 5.0 以降では、古い実装 (phkmalloc) を Jason Evans が開発した jemalloc に置換した。phkmalloc はマルチスレッド環境でのスケーラビリティに問題があった。ロックの衝突を防ぐため、jemalloc はCPU毎に分離した "arena" と呼ばれる領域を用意する。
NetBSD の malloc と jemalloc はこちら。C言語なので誰でも読めます。
mallocは
- malloc
- pubrealloc
- imalloc
- malloc_bytes
と呼ばれ、確保したメモリを page_dir にリンクリストとして繋げていくらしい。
struct pginfo { struct pginfo *next; /* next on the free list */ void *page; /* Pointer to the page */ u_short size; /* size of this page's chunks */ u_short shift; /* How far to shift for this size chunks */ u_short free; /* How many free chunks */ u_short total; /* How many chunk */ u_int bits[1]; /* Which chunks are free */ };
jemalloc は誰かがんばって (´Д`;)
4894713195
_ うさだー [管理職になるん?]
_ みわ [無能の限界に到達したので管理者にはならぬです。(ピーターの法則)]