コミケ告知

サークル活動の詳細は circle タグの記事へ。
2013年8月11日日曜日

C84 活動内容

C84 3日目 (8/12 月曜) 東地区“プ”ブロック-57a サークル 浜風もっこす
なんとか新刊も出そうです。

  • C84新刊 「Network Maniacs 2013」 20p
ネットワーク関係のマニアックなネタを解説する本です。
色々詰め込むつもりでしたが、内容にまとまりがなくなってしまったので、最終的に2テーマに絞りました。「TCPの高速化手法」と「ネットワーク上のバッファリング」です。
サンプル貼っておきます。編集画面のキャプチャなので多少表示が違いますが。
(クリックで拡大するはず)

 20130811222137

  • 既刊 「無職生活からのIT業界転職活動」 20p
C83で出したものです。
無職生活&転職活動の記録と傾向、それから雇用保険(失業保険)について説明したものです。
こんな本が役に立たない社会になってくれた方がよいのですが!

2013年8月1日木曜日

C84用リンク集

コミックマーケット84 (C84)で頒布した本の中に記載したリンクをまとめた記事です。

・ネットワークマニアックス2013

2013年6月29日土曜日

W7100Aの起動に挫折

Wiznetという韓国のメーカーがハードウェア処理TCP/IPのチップをいくつか出しています。PHYのついているW5x00のシリーズ、特にSPI接続のできるW5100は、接続が手抜きできるという理由で地味に使われていた印象があります。
Network機能だけを持ったコアなので、お好きなマイコンで外部から制御しておくんなまし、というチップですが、汎用CPUコアが 一緒に封入されたW7x00シリーズというものもあります。旧式、Intel8051が乗っているのがW7100で、ARMが乗ってるのがW7200。以前なぜか購入して放置していたW7100を、ふと思い出して動かそうとしました。

動きませんでした\(^o^)/
本当ならここがスタートで、色々と解析を始めるのですが、あまりにも情報が少なすぎて大変そうなのでもういいかなと。データシート見て配線確認する以外に、出来ることがない…。WIZnetの提供する読み書きソフトウェアを使って、シリアル経由で接続を試みますが、「read flash operation mode timeout」と出るのみ。最低限読み書きができたら、色々頑張ろうと思ったんですが。こりゃ手も足も出ない。電圧はしかるべき値がしかるべき場所に突っ込まれているんだけど。


Googleで検索すると、同じ症状の人が見かけられますが、結局解決されていないようです。
公式で放置されているとはw


トラブルの回避方法どころか、このW7100を使った事例を探しても、ほとんど見当たりません。W7100の評価ボードを使った例は無くはないようなのですが。2010年公開のデータシートやサンプルのダウンロード数が3000台なので、どれだけ売れてないんだか。2011年公開のW5100最新データシートで16000くらい。

現在はこのチップ、Serial to Ethernetのファームが既に書き込まれた製品としても売られているようです。

http://www.wiznet.co.kr/Sub_Modules/en/technical/Download_View.asp?PK_Num=587

汎用のはずが、なぜか固定機能を書き込んで売ってる。しかもよく見たら、W7100の方はGPIOは潰されてるしuser passwordくらいしかConfigurableになっていない。とても怪しい。まともに動くのかなあ、このチップ。

64kBのメモリが組み込まれていてスペック上は魅力的ですが、動作するのが明らかなW5100・W5300あたりと、使い慣れたマイコンと、必要なら外付けメモリ…という感じで、単品を組み合わせた方が良さそうです。本家とサポート契約して本格的に開発するつもりでもなければ。
2013年4月30日火曜日

findで特定条件の最新ファイルを探す

find 検索条件 | xargs ls -t | head -1
lsのオプションにhead -1相当のものがあるのではないかと確認しましたが、見つからず。
UNIXの思想からして、専用のツールをパイプで繋げるのは正しいのだろうけど、若干打つのがめんどくさいですね。

使用目的

実行ファイルが落ちたときに、最新のダンプファイルをgdbに食わせたかったけども、探すのが意外とめんどくさい!というのが元々のモチベーションでした。
gdb ./a.out `find -name "*.core"  | xargs ls -t | head -1`
他には、適当な名前のログファイルや一時ファイルから最新を探したい場面も、たまにあったような気がします。

シェル関数化

定型処理がめんどくさいので、latestで呼び出せるように。
### .zshrc等
latest() {
    find -name $1 | xargs ls -t | head -1
}
% latest "*.core"
./hoge1.core

-regexにした方がいいかなあと一瞬思ったけども、特定の拡張子を探すという主目的において、".*\.core"と打つのが嫌なので、-nameにしました。
$@にすれば他にもfindのオプションが指定できるのではないかとか、xargs ls -t | head -1だけまとめるのが美しいのではないかとか、そんなことも同様に一瞬考えて没案に。
2013年4月29日月曜日

F#のUnit Test、FsUnitの設定(VS2012)

問題点

F#でもテストを書こうと、NuGet経由でFsUnitをインストールしてみたものの、当初は動作させようとするとFileNotFoundExceptionが出て動きませんでした。"FSharp.Core, Version=4.0.0.0"というアセンブリを探していますが、手元のFSharp.Coreは4.3.0.0なのです。

解決方法

FsUnit公式のVisual Studio 11 Supportのところを読むと、Add-BindingRedirect projectnameを使えと書いてあります。
Powershellのコマンドのようですが、普通にPowershellを起動してもだめで、VisualStudioのメニューから起動する必要がありました。ツール→ライブラリ パッケージ マネージャ→パッケージ マネージャ コンソールです。


ここで Add-BindingRedirect コマンドを使えば、App.configが更新されて、無事FSharp.Coreを読み込めるようになりました。こんなつまらんことで、1時間以上はまりましたorz Microsoft(.NET)慣れした人なら、こんなことは無いのですかねえ。

FsUnitというよりNuGet自体のバッドノウハウでしょうか。なんだか微妙なパッケージ管理ですね…

FsUnitの設定

F# Library Projectは直接実行できないので、隣にF# Console Appのプロジェクトを作って、そちらでテストを書いています。普通にmain関数でテストを順々に呼んでいるのですが、このやり方は正しいのでしょうかね…?
Console Appについては昨日の記事参照。新規作成後、いらんファイル消して、NuGetでFsUnit入れて。さらにテストプロジェクトのReferencesを右クリックして、参照の追加→ソリューションからテスト対象のプロジェクトを追加しています。
2013年4月28日日曜日

F#アプリケーションを新規作成するためのテンプレート集

Visual StudioでF#を扱う場合、プロジェクトとして選択できるのは「F# Library」と「F# Tutorial」だけです。

以前、F#談話室(2)において、はじめてのF#入門コースとしてWindows Formを使ったアプリケーションを作る際には、Tutorialを改造して作り始める、ということをしていました。(記事→F#談話室(2) に参加してきた)

Microsoftのテンプレートギャラリーにある、F# Applications Windowsという拡張を入れると、新規作成でアプリケーションを作りやすくなるテンプレートがいくつかインストールされます。おそらくMicrosoft公式のものではないけれども、作者の所属がMicrosoft UKらしいので、どこぞの学生が適当に作ったレベルでもなさそうです。


F#Windows App (WinForms)

昔ながらのWindows Formを使うアプリのテンプレートです。
こんな感じの最低限のフォームが出ます。ラベルが1つある以外は何も機能はありません。
フォーム定義はMainFormfsにまとまっていて、ClientSize等のプロパティへの値代入と、ハンドラの定義のサンプルが多少書かれています。

F#Windows App (WPF)


Windows Formと似たような構成のWPF版。クリックすると文字が変わります。つまり、中央のコントロールのTextプロパティ変更と、ハンドラ追加のサンプルが最低限書いてあります。

F# Console App

コンソールアプリです。ただこれは、個人的にはあまり好きではありません。Argumentsという引数処理用の、おそらくテンプレート作者が書いた独自仕様のmodule(Argument.fs)が組み込まれていて、プロジェクトのテンプレートとしてはやや冗長です。
しかも、初期状態ではプロジェクトから「開始」を押してもちゃんと走らない。ソースコード中で「Required」と指定している第一引数がないのですぐ死んでいるのですが、ここはコンソールの窓に普通にHello Worldでも出して欲しかった。

雑感

入門向け勉強会やハッカソン、あるいは自分用の単純なGUIを作る際のベースとしては、良い感じではないでしょうか。

2013年4月22日月曜日

第17回 FreeBSD勉強会に参加してきた

FreeBSDには一切興味も経験もありませんが、概要を見たところFreeBSDを使うではなく作るという方向性に見えたため、おそらく得るものがあるだろうと考え参加しました。

内容

予想通り、ネットワークスタックの構造とNICに載っている機能の話であり、FreeBSD特有の話はほとんどありませんでした。FreeBSDにはないけどLinuxにはあるよ、という部分の方が多かったくらい。

このあたりのレイヤーで考えた事のない運用者向けに性能要点を広く説明するという感じでした。割り込み頻度の話(NIC機能とNAPI相当)・マルチコアへのスケール(主にMulti-queue NIC)等々。特別フレッシュな話題はありませんでしたが、調べるカギとなるキーワードが色々詰まっていたし、説明もわかりやすかったので、入りとしては非常に良い勉強会だったのではないでしょうか。下層ネットワーク屋を本業とする者が目をギラギラさせて聞くものではなかったけれども。

遅刻

本題とは関係ありませんが…
講師の方が30分遅れて、何事もなかったように普通に説明して普通に終わりました。
まあ、2000円で120分が2000円で90分になるとか、仕事を早めに切り上げてきた一般人数十名の30分が無駄になるとか、その程度では実績のある人の評判に対して影響は全くないと言っても良いのですよね。
こういう国内技術者のモラル構造を見るに、いくらでも家入一真は出るのだろうな、と思いますが。

余談1

ところで、序盤の時間繋ぎの雑談で「CPUの温度が太陽表面に達する」とありましたが、それは発熱密度の話ですね。(その場で突っ込めず、帰宅してぐぐって確認するチキン野郎)
参考→http://pc.watch.impress.co.jp/docs/article/20010206/kaigai01.htm

余談2

性能をカリカリチューンするという話題にnetmapが出てこないなんてー