クラスのインナークラスのインナークラス

なんとなくインナークラスにインナークラスはかけないという先入観があったので確かめてみたらかける。 "$"を使ったクラス名も有効だけど、 インナークラスを識別するために「クラス$インナークラス」というclassファイルを作るので、 わざと重複させようと…

JUnitで例外メッセージのテストをするMatcherとRuleを書いたので

時代遅れ感漂う記事。 正規表現でマッチングを行うMatcher 例外メッセージのテストを行うためのRule 例外メッセージのテスト専用のMatcher を作ったので、備忘録程度に。 正しいかどうかは知らないけど、動いてるからOKとする。

YAPC::ASIA 2012 2日目も行ってきた(感想のみ) #yapcasia

ほんと楽しかった。この一言です。 2日間のイベント後でゲームやったりしてだいぶ疲れていて、 聞いてきたセッションの内容を書く気力もないけども。 YAPC::ASIAのようなイベントは初めてで、 ただ技術的な話をたくさん聞けるイベントと思ってましたが、 技…

YAPC::ASIA 2012 1日目に逝ってきた(感想のみ) #yapcasia

聞いたセッションの内容とか詳しい事はほかの人が書いちゃうだろうから、見てきたセッションとその感想とか覚書とか。 LTソンは全く見てません。録画配信期待。

シェルスクリプト(とよくあるコマンド)でexpectのように自動応答させる

標準入力から応答していくタイプのプログラムがよくあります。 9/19 追記 改行が出力されなくても上手く読み出せる方法があるっぽいのでそれを追記。 hello.sh #!/bin/sh echo "what's your name?" echo "input your name:" read name echo "age ?:" read ag…

EclipseでAndroidアプリのデバッグをする際、AVDではなく実デバイス上で行うようにする。

IS12SH, ICONIA TAB A700で確認 前提として、Android-sdkと、EclipseプラグインとしてADTが入っていること。

JUnitのテストランナーをいじる

テストに何らかの拡張を作りこみたいとき、@Ruleアノテーションを使えばだいたいOKですが、 俺俺アノテーションを作ってそれをテストとして認識させたいんだ!!っていう稀有なニーズ(自己満足)に応えることもできます。 今回は、独自のアノテーションで定義…

Javassistで動的クラス生成

ClassPoolからgetして、 setNameで新しいクラス名を設定して、 toClassでClassオブジェクト作る。 package my; public interface SampleIF { String getSimpleClassName(); } package my; public class Sample implements SampleIF { public String getSimpl…

バッチファイルでのsetの罠

@echo off set IN= set /P IN="XXXを入力 > " echo %IN% if "%IN%"=="XXX" ( set /P IN="もう一度、値を入力 > " echo %IN% ) echo %IN% XXXを入力 > XXX XXX もう一度、値を入力 > YYY XXX YYY どういうことなの・・・ set /? より。 set VAR=before if "%V…

CPANの初期設定を間違えた場合に再設定する

PerlいれてCPAN入れて初期設定をEnter連打して飛ばしたら、 CPANのミラーにロクに繋がらない状態になって焦ったので。 cpanで o conf を入力 cpan[1]> o conf $CPAN::Config options from /root/.cpan/CPAN/MyConfig.pm: ...以下略 このファイルを削除するな…

RSSパースべんち in windows

このあたりがよくまとまってました。 http://weblog.nqou.net/archives/20090223224328.html PurePerlなFeedPPが結構頑張ってる印象。 自分で書いたSAXハンドラーがどんなもんか試した。 いろんなパーサーで。 Rate XML::Feed XML::RSS XML::SAX::PurePerl +…

XML::SAXで遊んだ

RSSを扱う用事があったので、普通のRSSリーダを使ってたけども、 ふと、SAXパーサを使って読み取ってみたくなったので、試した。 DOMだと全体を読み取らないとダメなので、場合によってはメモリを食べてしまう。 SAXなら上から読み取って、いくつかのタイミ…

正規表現 雑メモ

ちょろっとPerl正規表現で遊んでたので、適当に書いとく。 式を文字列として書くなど use strict; use warnings; use 5.10.1; # 普通 say 'xyz' =~ /y/; # 1 say 'xyz' =~ 'y'; # 1 # メタ文字 say 'xyz' =~ /.yz/; # 1 say 'xyz' =~ '.yz'; # 1 # オプショ…

Zenbook Prime UX21A-K1256買った。

PC

買いました。 レビューってほどでもないけど、何で選んだのかとか、少し使った感じをだらだらと。

ESXiでもクローンをしたかった。

vCenterとかないと使えない機能だけど、複数の環境を作りたいときはやっぱりクローンはほしい。 といっても、普通にデータストアにディレクトリ作って、vmdkとvmxをコピペすればいいんだけども、 この場合、vmdkの名称が変更できないのがイケてなかったので…

Javaの可変長引数とジェネリックスの裏技的な何か。

最近はJavaしか触ってないので。 参考 Javaの型推論Utilsクラス - yukobaのブログ (型推論とは言い切れない気がするけど。) Java変態文法最速マスター - プログラマーの脳みそ 4. 配列の辺り package my.sample; import static org.junit.Assert.assertEqual…

趣味と仕事と愚痴。

長々書いちゃったので、簡単にまとめると、こんな感じ。まとめ:趣味を仕事にしたら冷めることがある。

Encode::find_encodingで得られるオブジェクトはスレッドセーフ?

Encodeモジュールはスレッドセーフではない、ってどこかに書いてあって、 find_encodingで得られるオブジェクトを使いまわしてる身としては気になったので。 (スレッド間で使いまわすことはないんだけど。) 適当にスレッド作ってループ回してみたけども、 ス…

Mojoliciousでアップロードファイルを受け取った時にMojo::Asset::MemoryかMojo::Asset::Fileか判別する

$file->asset->is_file を使うとファイルか否かの判別ができます。 my $file = $self->req->upload('file'); if($file->asset->is_file){ print("filepath: ". $file->asset->path); # 一時ファイルパスが表示される }else{ print("content: ". $file->asset…

ファイル演算子とopenとベンチマーク

ファイル存在の確認はファイル演算子である、-fを使うと思うのだけど、 openの戻り値を見ても出来るから、もしかしたら・・・と思ってベンチマークとってみた。 use strict; use Benchmark qw(cmpthese); my $filepath = "bench.pl"; cmpthese(10_000, { 'op…

シェルスクリプトで文字列で与えられた相対パスから、ディレクトリの絶対パスを取得する

cdしてpwdする echo $(cd $(dirname '/usr/bin/perl'); pwd) # /usr/bin cd /usr/bin echo $(cd $(dirname 'perl'); pwd) # /usr/bin echo $(cd $(dirname '../bin/perl'); pwd) # /usr/bin もちろんcdに失敗したらカレントディレクトリの情報返しちゃうので…

multipart/form-dataで送信する際、任意のfilename値を指定する

LWPでできるかなって思ってたら、すぐできなかったのでSocket叩いて書いたけど、 調べたら普通にLWPで出来た。ですよねー。 use LWP::UserAgent; use HTTP::Request::Common; my $ua = new LWP::UserAgent; my $res=$ua->request( POST('http://192.168.11.2…

VMWare VIX APIのPerlバインディングの導入(Windows)

VIX APIを使うとゲストOSの操作を行うことが可能になります http://communities.vmware.com/community/vmtn/developer/forums/automationapi VIX-PerlというPerlバインディングが提供されていますが、使うにはビルドする必要があります。 Windows信者なので…

HLRCON v3

主にAPIを意識した切り分け・・・のつもりだったけど、収集つかなくなって投げた形になってる。 小学生でももっとマシなコード書ける感。 ネットワーク周りの処理が長くなりがちなので、イベント毎にコールバック関数作ってあげて、もう少しすっきりさせてみ…

XSでprintfするだけ

XSってなんか難しそうと思っていたけど、わりと簡単だった。 Windows 7 64bit + Strawberry Perl 5.12.3.0 printfするだけなので実用性はないけども、 引数を受け取って処理できるようになってくると、捗りそう。 CODE部分はC言語でもりもり書けますし。 参…

スタックトレースを表示してくれる、diagnosticsプラグマ

dieすると、そのdieした場所の行しか教えてくれないので、 何から呼ばれたのか、とかそういった情報がなかったので、今までprintデバッグでトレースしてました。 diagnosticsプラグマを指定しておくと、dieしたときとかにスタックトレースを出してくれます。…

ESXi上の全VMの情報を見る(手抜き)

サンプルが全てグローバル変数使いまくりで気持ち悪かったので、どうにかできないかな、とコード見ながら書いた。 無駄にセッション管理ができるようなので、それも盛り込んでみた。 ただし、クッソ手抜き。例によりPerl

vSphere SDK for Perlを触ってみた

前の回から結局離れてしまっていたので、サンプルを叩いてモチベーションをあげる作戦。 vSphere SDK for Perl(ver 5.0.0U1) http://downloads.vmware.com/jp/d/info/datacenter_cloud_infrastructure/vmware_vsphere/5_0#drivers_tools Perlのモジュールに…

ESXi 5.0を触ってます

とりあえず仮想マシンできたねーよかったねーという段階。 お仕事で使ってるvCenterがないと、できることが少なすぎて笑えるレベル ESXiの導入自体は本当に簡単です。 CDへイメージを焼ければ誰でも出来ます。 また、ESXiは軽いので、USBメモリにすんなり入…

消費電力おまけ

前回の続き: http://d.hatena.ne.jp/ryousanngata/20120311/1331463320 DDR3運用に乗り換えたため計測しなおし。 PicoPSU運用も考慮していたのでそのケースも含めて。 構成 マザーボードはDDR2はP5K-Pro、DDR3はP43 Pro/USB3。 グラボはRadeon M7000とRAGE X…