コンピュータやソフトウェアのあれこれ@道民(&元道民)
Posts tagged all
年を一つ重ねました
5月 5th
年を一つ重ねました
無事誕生日を迎えまして、また一つ年を重ねました。
よい友人と仲間に囲まれてとても楽しい一年でした。新しい出会いが多かったり、仕事でも立場が変わったりと今後の30代をどう過ごすかについても考えることができた一年でもありました。
あと、体脂肪率が初めて15%台になったのが嬉しかった!最近「何のためにそんなに筋トレしているの?」と聞かれますが、もちろん日々楽しく過ごすためですよ。太りにくくなるし、体力がついて疲れにくくなり怪我の予防もできていいことだらけです。 あと、今日は先日亡くなったばあちゃんの49日法要の日でもありました。 諸事情により僕が今日までとりまとめしましたが、ばあちゃんが僕の働きに満足してくれてるとよいな。
こんな僕ですがまた一年よろしくお願いします。
嬉しい事にAmazonよりお誕生日プレゼントが届きましたので、紹介させていただきます。
ちなみに、プレゼントは随時受け付けております!
プログラミングHaskell from @tmaedaさん
会社でおすすめの本を相談したときに、「誕生日に待ってます!」と言ったら 本当に届いてびっくりしました!ありがとうございます!
プログラミングの基礎 from @tmaedaさん
サイエンス社
¥ 2,415
この本は中身をあまりよくわからないのですけど、前田さんがおすすめする本に間違いはないはずなので熟読しよう。
ジョジョの奇妙な名言集 part1-3 from @smokeymonkeyさん
集英社
¥ 819
ジョジョの奇妙な名言集 part4-8 from @smokeymonkeyさん
集英社
¥ 819
ジョジョ全巻が行方不明なので、この本はとてもありがたいです! メッセージに勉強会やりましょうって書いてあったw 今年も同世代として楽しく遊びましょう!
GENTOS(ジェントス) 閃 from つかさん
GENTOS(ジェントス)
¥ 1,790
僕は釣りやアウトドアが好きだったりするので、これもありがたいです! ただ、自転車用っぽいですけど、アウトドアメインで使ってみます! ちなみにどなたからかわからんので、名乗り出てくれるといいなー。
その後いただいたもの
ソフトウェア開発を成功させるチームビルディング 5人のチームを上手に導く現場リーダーの技術 from @sandinistさん
ソフトバンククリエイティブ
¥ 1,995
これもずっと読んでみたかったので、大変ありがたいです!だけど、名無しさんからだったので、名乗り出てくれるといいなー。
鉄人倶楽部(IRONMAN・CLUB) トレーニング&ヨガマット(収納ケース付・ゴムバンド付) from ぬまたさん
カワセ(KAWASE)
¥ 1,926
自宅でストレッチするのにほしかったんです!ありがとうございます!
体幹力を上げるコアトレーニング from Mさん
お腹の横を鍛えるのに欲しかったんです!どうもありがとう!次回あったときまでに肉を減らしておきますわw
ケンタロウのフライパンひとつでうれしい一週間! from @izumii19さん
講談社
¥ 680
晩ご飯用に欲しかった本です!どうもありがとうございます!
岸辺露伴 ルーヴルへ行く from @tatsuoSakuraiさん
集英社
¥ 2,800
ジョジョファンなのでありがたいです!どうもありがとうございます!
合計10個もいただき嬉しいです!
引き続きお待ちしております。
よく無事で
5月 2nd
よく無事で
去年の教え子たちとの再会。
リフレッシュさは減ったかもしれないけれど、かわりにみんな本当にとても良い顔になっていたなあ。 顔つき、だけでなくて表情、それから言葉がでてくる感じとか。
みんながこの間に重ねてきた感情とか経験がちゃんと中に詰まっていることが感じられて、一人でじんとしていた。
よく無事で。
ひきつづき、旅の無事を祈っています。
[PHP]PHPUnitのMockが生成するコード
5月 2nd
PHPUnitのMockはコードを生成してeval()しているわけだけれども、PHPUnit_Framework_TestCase#getMockBuilder()の引数に存在しないクラス名を渡すと、そのクラスを生成するコードも出力する。
どんなコードを生成しているかはこのように確認できる。
<?php require_once('Text/Template.php'); require_once('PHPUnit/Framework/MockObject/Generator.php'); $mock = PHPUnit_Framework_MockObject_Generator::generate('Foo'); echo $mock['code'];
実行結果:
class Foo
{
}
class Mock_Foo_ce23079e extends Foo implements PHPUnit_Framework_MockObject_MockObject
{
protected static $staticInvocationMocker;
protected $invocationMocker;
public function __clone()
{
$this->invocationMocker = clone $this->__phpunit_getInvocationMocker();
}
public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
{
return $this->__phpunit_getInvocationMocker()->expects($matcher);
}
...
と、Fooを作ってからそのサブクラスを作って、そのオブジェクトをMockとして返している。
何でこんなことを調べたのかというと、Fooが存在しているつもりでモックを作ったのだが実は存在していなかった(requireされていなかった)、で、本当はFooのコンストラクタには引数が必要だったのだがそれを忘れていた。だがここでのFooはMockObject_Generatorが作った空のFooなので当然エラーにはならない。単体では。
しかしこれを他のテストケースと一緒に実行すると、別のところでFooがrequireされていたためにエラーが発覚する。というはまり方をしたためです。
WPからMTへのインポートに立ちふさがる壁
5月 2nd
一応、書いておこうと思う。
1. 「XML::LibXML::SAX」を入れる
これをインストールしないと、うまく行かない場合があるらしく、
今回は、見事にハマりました。
Ubuntu 11.10 を使ってて、
libxml2-devを先に入れる必要があるんだけど、なんでか入らなくって・・・。
aptitude updateを忘れてましたってオチ。
その後は、
cpanm XML::LibXML::SAX
で入りました。
2. 手修正が必要
このケースの頻度はよく分かりませんが、こちらの通りです。
3. 画像ファイルの扱い
インポートに成功したはいんだけど、
画像のURLが引っ越し元を参照してて、どうしていいか分かんない。
4. WordPressのタグが残ってる
画像のタイトルだったり、Syntax Highlighterだったり。
5. コメント周りがよく分かんない
自分の名前が引っ越し元のサイトにリンクされてる。
一括置換できるのかな?
という訳で、WPからMTへの引っ越しは一筋縄では行かなそう。
おしまい。
ハマりの続き
5月 2nd
アドバイスを頂いたので、なんとか解決した。
でも、こんなエラーが出たのでメモ。
なんか、本文中におかしい文字列があるらしくエラーが出た。
その行の中身を確認すると、おやっ?ってなったので手修正を試みた。
どうやらエラーの起きた行の行末が、他と異なるのが原因みたい。
(スクリーンショットの先頭行がエラーの起きてる行)
なので、左のような^H^Mを、右のように^Mにしたら、すべてうまくいった。
@masiuchiさん、ありがとう!
http://masiuchi.dyndns.org/blog/2012/05/wxrimporter2.html
あと、XML::LibXML::SAXを入れるには、
libxml2-devを事前にインストールしなきゃダメでした。
めでたし、めでたし。
Hokkaido.pm Casual#0をやってみて
5月 2nd
結構、日が経っちゃったけど、ちゃんと書きますね。
次のHokkaido.pm Casual#1は5/16に開催します。
申し込みは、こちらから。
という訳で、まとめを書きます。
個人的な印象なんですが、何人かの初心者の方は、
目的はあるんだけど、それを達成するために必要な知識や手法が分からないようで、
その点に関しては自分もそうなので、みんなでケアできるかと思います。
ですが、ただ漠然とPerlを覚えたい!みたいな感じだと、
何が分からないのか分からないし、道筋を示すのも大変ですよね。
今回、みなさんにLTをして貰ったところ、
何らかの目的があって参加してくれてるようで一安心しました。
で、さっそくなんですが、
Hokkaido.pm Casualで出来るコトについて考えてみます。
開催後に、ちょっとだけTwitter上で議論したのですが、
サクラが必要だよねっていうお話になりました。
これは、どういう意味かと言うと、
あの空気で、初心者的な質問するのは大変だよね?ってなりまして、
初心者が少数派だったっていうのもあるのですが、
初心者の気持ちになって質問するのは可能なのか?という個人的な疑問もあり、
どういう方法が良いのかちょっと分からない状況です。
とは言うものの、
毎回LTをして貰うのも、いつか止めた方が良いのかも知れないですし、
どっかで強制的に質問を投げて欲しいっていう気持ちもありますし。
そんな理由で、初心者の方にもLTをお願いしている次第です。
あと、前回出た内容をメモしておきます。
- ArduinoとPerlで何か
- GPSをPerlでパースしたり
- Perlで音楽
- Perl 5.16について
- WebSocket
- markdownとXslate
- ゆいちゃっとの改造の改造
- プレゼンテーションツール
- 開発環境
- Perlのデバッグ方法
- MTプラグイン
他にもいろいろあったけど、目的であれば達成手順だったり、
ハンズオンとか、課題を持ち寄りながら、
手を動かして、何か持ち帰って貰えればと思います。
何の気無しにカジュアルとか言ってみたけど、
多分、初心者さんにはここに参加するのだって勇気が要りますよね。。。
まずは、Perlで何が出来るかを見るためだけに参加するのも手だと思うので、
思い立ったらATNDに登録して来てみて欲しいです。
おしまい。
今日のハマり
4月 30th
WordPressから、MovableTypeに記事をインポートしたら、
こんなメッセージが表示されて、枕を涙で濡らしたよっていうお話。
でもって、解決方法は分からないけど、エラーメッセージは残しておきます。
とりあえず、エラーメッセージだけ。
End tag mismatch (wp:meta_value != category) [Ln: 1962, Col: 234985286]
インポート時の設定もあった方が良いのかな?
今日は、この辺で。
Hokkaido.cap #10 に参加してきました
4月 30th
4月27日(金)に行われたHokkaido.cap #10 に参加しました。
今回は実践パケット解析学習編・最終回。
参考文献のところに載っている他の解析ツールについて勉強しました。
知らないツールばかりだったので新しい発見がたくさんありました。
様々な解析ツール
パケットを解析することができるツールは、使い方によってはクラッキングツールになる、とても危険な道具です。諸刃の剣。
なので、参考文献に載っているツール群も、ウイルス対策ソフトによって「危険なサイト」としてダウンロードページがブロックされることも多いようです。
たしかに、強力なことができるほど便利だけど、その分、悪用した時にも便利に使えるのですよね。
もちろん、クラッキングツールだけではなく、疑似パケットを作成するパケットジェネレーターや、動かしていると”なんかかっこいい”ツールなどもありました。
標準的なネットワークモニタ
よく使用するネットワークモニタツールとしてtcpdump、Microsoft Network Monitor 3、TCPView、NetworkMinorが紹介されました。tcpdumpはギリギリしっていたけれど、他は使ったことはなかったです。
こういうツールを業務で使うことはあまりないけれど、こういうツールがあると知っておくことは大事だなと思いました。
ネットワークは解析すれば簡単に見える物であるということを忘れないようにしないと。
とても大事なこと
許可なく他人の通信をキャプチャしたらダメ、絶対。 犯罪です。(有線電気通信法、電波法)
また、パケット解析の技術は、トラブルシューティングなどを通じて、自分の経験として身につけることが大事であるという話もありました。
この辺りは「コードを書かないとプログラミングの技術は向上しない」のととても似ているなー。
何事も手を動かして、体験して身につけていく物なのですよね。
CTF
パケット解析を題材にしたクイズにチャレンジしました。北海道で有名なあの人のプライベート写真がゲットできるチャンスです。
張り切って挑戦したものの、Hokkaido.capへの参加が2回空いてしまっていたというのもあり、Wiresharkの使い方をすっかり忘れていました・・・ぐぬぬ・・・
しかし、それでもなんとかそれっぽいキーワードを探して、時間内に画像をゲットすることができました。
最後に答え合わせをしたところ、やっぱり無駄なことをたくさんやっていたなあ。
そして答えの近くでグルグル回っていたなあ。
Wiresharkを使いこなせばもう少し楽にできたところを、力技で解いてしまった感は否めない。
Hokkaido.cap は実践パケット解析が一段落したということで、今後は不定期開催になります。
普段の業務で直接的に使うことはあまりないのだけど、いろんな知識を広げるためにも、また次回参加したいと思います
Audio::PortAudioを使ってみる
4月 30th
もう挫折しそう、CPU負荷的な意味で。
まだ、調査してる段階なんだけど、
AnyEventを使っての非同期処理を組み合わせるのは、どうやらうまくいかなくて、
Audio::PortAudioがシグナルを使ってるから、その辺は諦めることにした。
だったら動的にメロディーでも生成してみよっかなーって思って、
例えば、16分音符の刻みで何かしようと思ったら、
処理がおっつかないことになってた。
結局、音を鳴らすっていうのは、
用意したバッファをDAC(デジタルからアナログに変換)しながら出力して、
出力済みのデータ数だけ補給してあげる処理を延々と繰り返すんだけど、
補給が間に合わないとノイズだったり、意図した音がでない訳で、
これは最適化の出番か?みたくなっちゃう。
これ自体は、大した問題じゃないんだけど、
これに対して何か解法はあるのか?と言われると、
今のところあまり手がなくて、適当にuse integer縛りで書くくらいしか。
別にそれでもいんだけど、メモリの使い回しみたいのが出来るのかも含めて、
丁寧にやらないと面倒くさいなーっていうのが正直なところ。
んー、だったらWAVEファイル出力止まりなのかもねー。
おしまい。
第19回アジャイルサムライ読書会 @札幌道場 開催
4月 26th
4月24日(火)、第19回アジャイルサムライ読書会 札幌道場を開催しました。
参加者は5名。リファクタリングについてです。
今回は、会場に「リファクタリング―プログラムの体質改善テクニック」を持ってきていただき(@shuji_w6eさんありがとうございます!)一部はこの本を使って内容を補いながら進めていきました。
今回の範囲で「グっときた」ところ
コードを書くことは、良い文章を書くことにとてもよく似ている
一日を通じてたゆまず、継続的にリファクタリングする
「コードを書くことは、良い文章を書くことにとてもよく似ている」は、すごく自分のなかでしっくり来た文章でした。
ちゃんと説明できないことはちゃんとコードに落とせない、だからまず、きちんと人に説明できるようになりたい、そう思います。
勉強会として
この辺りは、本のページ数が少なくエッセンスしか載っていないので、文中でも「読むべき」とされている本と一緒に読み進めるというのはとてもよい試みだったなと思いました。
「リファクタリング―プログラムの体質改善テクニック」はまだ持っておらず、きちんと読んだことがありません。
今回の話を聞いて「優先度:最高」になりました。
また、そこから発展して、押さえておくべき・読んでおくべき本というのをみんなで話すことができたのも、とても良かったです。
リファクタリングについては、コードを良くしたいという気持ちを持ち続けることが大切だなあと思いました。「継続的に」「たゆまず」です。
楽をしようとしてさぼると後が辛くなる。きちんと書いておくと後で劇的に楽になることがある。
そういう経験も含めて、使い捨てにならないコードを書いていきたいです。
今回、実際にリファクタリングを行っているページのコードをみんなで追いながら話をしたのですが、これが結構楽しかったです。
ぐちゃぐちゃのコードをペアプロしながらリファクタリングするようなワークショップ、面白そうだなあ。
運営の立場で
この部になってからページ数が少なめなので、1回1章と決めて進めています。
テーマが明確になっているので、話がしやすいなと感じます。
脱線しても大きなテーマから外れることがなく、また、脱線よりもさらに深い話をする方が増えてきたような気がします。
(ディスカッションのwikiをみてもその辺りがわかると思います)
プラクティスに関するところはこの進め方が適しているような気がしてます。
個人的にも別の本を一緒に読みながら深くを知りつつ進めていける今回の方法はとても勉強になりました。(今後の課題がよく見える)
残り少ないですがプラクティスの部はこの感じで進めていこう。
今回のディスカッションのwikiは以下にまとめてあります。
https://github.com/agile-samurai-ja/support/wiki/Readingagilesamuraiinsapporo20120424
話題になった著書は全てリンク付きで載せておきました。
忘れているのあったら追記お願いします。
最後に、いつもいつも場所を提供してくれる弊社に感謝。
次回もよろしくお願いします。
