はかますたいる!きょろの技的雑記

井上恭輔(@kyoro353)の私的かつ技的な日記です。米国サンフランシスコで暮らすエンジニアです。

セカイの狭間

私の通勤はオフラインです。
(地下鉄的意味で)


駅に止まっている間しかリンクを押せないので、つまりは駅数分のページしか読めません。
なんとも切ない。


だけど、オフラインはオフラインでどうしようもないので、実はほっとしたりもします。

世界っていう言葉がある。
私は中学の頃まで、世界ってのは携帯の電波が届くところだと漠然と思っていた。

東京には、思ったより沢山セカイの狭間があるなと感じる今日この頃。

monoからMySQLに接続できたよ!

前回のエントリで書いた「monoからMySQLへの接続」に関しての続報ですが、
手元の環境(FreeBSD7.0+mono1.2.5)でMySQLに接続してデータを読み出すことができました!!


やったね!(≧▽≦)


やはりMySQL Connector/Netのソースが間違っていたみたいです。


【Monoで他のDBも使ってみたよ!(PostgreSQLMySQL編) 】
http://codezine.jp/article/detail/2913?p=4


こちらの記述を元に修正してコンパイルしたところ、問題なく動きました。
今回修正してコンパイルしたmono上での動作確認済みデータドライバのバイナリを配布しますので、興味のある方はご利用ください。
動作は無保証です。問題があった場合は配布を中止しますのであしからず。


MySQL Connector/NET データドライバ修正版(116KB)


GACへの登録はrootになって以下のようにします。

#gacutil -i MySql.Data.dll -package 2.0

今回はサンプルとして以下のようなコードを使用しました。

using System;
using System.Data;
using MySql.Data.MySqlClient;

namespace MySqlExample
{
	public class Select1
	{
		public static void Main(string[] args)
		{
			// 接続文字列
			string constr = "Server=localhost;Database=***;Uid=***;Pwd=***;CharSet=utf8";

			// SQL文字列
			string sstr   = "SELECT user_id, user_name, user_password FROM user;";

			using (MySqlConnection dbcon = new MySqlConnection(constr)) 
			{
				using (MySqlDataAdapter da = new MySqlDataAdapter(sstr, dbcon))
					using (DataTable dt = new DataTable())
					{
						// SELECT実行
						da.Fill(dt);

						foreach (DataRow dr in dt.Rows)
						{
							Console.WriteLine("ID:{0} NAME:{1} PASS:{2}", dr[0], dr[1], dr[2]);
						}
					}
			}
		}
	}
}

コンパイルは.NET Framework2.0用なのでgmcsを使用します。

%gmcs mysql_test.cs -r:System.Data.dll -r:MySql.Data.dll

実行するとこんな感じ

%mono mysql_test.exe 
ID:1 NAME:nagi PASS:pass1
ID:2 NAME:zange PASS:pass2
ID:3 NAME:tsugumi PASS:pass3

これで何かすごいことができるわけではないけど、
なんだか長年の悩みが晴れてすっきり!


今私が生きてる界隈では超絶にマイナーなmono/C# or VB.NETですが、なんとかして陽の目を見せてあげたいな。
がんばろっと。

筑波大学に移動中!

今日は会社の仕事で、筑波大学で開催される就活イベント「JeweL」に参加する予定です。
現在、筑波大学に向けて移動中♪
久々の筑波だー!つくばつくば!

一年ぶりくらいの筑波エクスプレスです。何もかも懐かしい。
ranran!!

イベント中はブースに立ってると思いますので、ご興味のある方はぜひ遊びにきてくださいね。

社会人になって学生時間で動けなくなってからは、なかなか未踏系にも顔出せていなかったので、ACな皆さんや内藤や大澤君にも会えたらいいなぁと妄想中です。

それでは本日はどうぞよろしくお願いします!
がんばってきます!

monoからのMySQL接続に希望の光!

ネット上の資料やMySQLのオフィシャルサイトには「簡単にできるぜ」的な事が書いてあるのだが、何度やってもどうやってもmono上ではMySQL Connector/Netが上手く動かなかった。
どうやっても最後の最後で例外を吐いて死ぬ。


かれこれ1年くらいふと思ったときに挑戦していたのだが、なかなか上手くいかない。
「まぁmonoだしな〜」と半ば諦めていたのだが、本日こんな記事を発見。


【Monoで他のDBも使ってみたよ!(PostgreSQLMySQL編) 】
http://codezine.jp/article/detail/2913?p=4

当初、「Connector/Net 5.2.3」の「Windows Binaries, no installer (ZIP)」版を使用し、接続確認を行ったところ

Unhandled Exception: System.ArgumentException: Encoding name 'sjis' not supported
Parameter name: name

という例外が発生しました。そこで「Sources (ZIP)」版を確認してみると、ソース資源内の「CharSetMap.cs」に以下の修正を行う必要があることが分かり、

104行目
mapping.Add("sjis", new CharacterSet("sjis", 2));
変更
mapping.Add("sjis", new CharacterSet("shift_jis", 2));

 次の手順で対応を行いました。

まじか!!!!!!!!!
MySQLのコードが間違ってたのか…俺が甘かったぜ。
帰って早速やってみる!!

ミス三蔵稲荷「巫女さん」コンテストに行ってきました!

こんにちは!きょろです。
時が経つのは早いもの、もう3日目が終わろうとしています。


さてさて、今年も毎年恒例の広島県福山市(私の実家)で開催された「ミス三蔵稲荷コンテスト写真撮影会」に参加してきました!
そう、あの噂の「巫女さんコンテスト」です♪


続きを読む

あけましておめでとうございます!

あけましておめでとうございます!


旧年中は大変お世話になりました。
今年は丑年、人生2度目(3度目?)の年男です。
今年も一生懸命がんばっていこうと思いますので、
どうぞよろしくお願いいたします!


さて、昨年は卒業に上京に就職にと、本当にバタバタした1年でした。
東京に行ってやりたい事は沢山あったものの、
最初の半年は生きるのが精一杯!(><)
日々の生活に余裕が出てきたのも、実はここ最近だったりします(笑)
旧年中は色々とご迷惑をおかけしました。


今年は生活が落ち着いた事もあるので、
去年より積極的に外に出て、人と出会って知り合って、
自分の活動や成果なんかを、しっかり発表していこうと思います。
そのためには、まず行動を起こさないとね!!


あと、東京ではまだまだ学生時代並みにバカできる友達が少ないので、
どうぞ皆さん仲良くして頂けると嬉しいです♪
実はとっても恥ずかしがりやなので、声をかけられないのです(^^;)


今年は映画撮るぞ!
ブログもしっかり書かなきゃね。


今年の5月には24歳になります。
もう人生下り坂、そんなに若くありません。
この歳になれば、そろそろ良い出会いも欲しいなぁと思ったり。


何はともあれ、夢の達成にはまず行動から。
ということで、本年もどうぞ宜しくお願いいたします!!!

冬コミ初出展します!『しすばこエクスタシー』12/29西む28a

みなさんこんにちは!きょろです♪
明日12/29日(月)、津山高専システム研究部はコミックマーケット75に初出展いたします!
学生の頃から一度は出てみたかったコミケですが、やっと念願が果たせました。


当日は学園祭で販売しているシス研創作作品集「しすばこ」から
過去6年間のベストセレクションを集めた「しすばこエクスタシー」を
500円にて領布させていただく予定です。


収録作品数全100作品、DVD1枚組、
フルカラーピクチャーレーベル&トールケース仕様です!


詳しくは昨晩制作した↑のプロモーションビデオをご覧頂ければ幸いです。
H.264で再エンコード&うpしたのでとても高画質になりました!
(久々の動画編集なので非常に嬉しい)


それでは明日、西地区む-28aにてお待ちしております。
コミケに参加される方で、暇な時間がある方は帰りがけにでもぜひお立ち寄りください!


【SYSKEN ONLINE】
http://sysken.seesaa.net/

セグウェイに乗った

MAKE:Tokyo Meetingに行ってきた。


多磨美術大学、意外に遠いぜ。
すごくオシャレなキャンパスだった。
会場では憧れのセグウェイに試乗したのだけど、マジ感動!!
こいつ、思ったより全然すごいぞ。
凄くほしくなった。


ミーティングの方も楽しかった。
出展作品はどれもこれも感動するクオリティってわけじゃなかったけど、ヤッツケで粗削りなのが文化祭的で楽しい。


日本全国から生え抜きの天才ばかり集まっているのかと恐れていたのだけど、全然そんなことはなかった。
みんな「作りたいから作る!」っていう楽しさが根底にあって、製品開発とは決定的に個人に寄るパッションが違った。


役にたたなくても、
意味がなくても、
面白くなくても、
既存技術の組合せでも、
車輪の再発明でも、
「で?」って言う内容でも、


楽しくもの作りができれば、それで良し!


好きそこものの上手なれ。
創作は感動から生まれるのだなと改めて感じた。

getIDm()は903i以降のみ対応

まじか!!!

なぜか友達に借りたP901iだとアプリがフリーズするので、おかしいなと思っていたら…

getIDm

public byte[] getIDm()
              throws FelicaException,
                     java.io.IOException

    フリー領域のIDmを返します。

    このメソッドを呼び出すと、フリー領域に対してポーリングを行ない IDm を取得します。 フリー領域へのポーリングに成功し、内部カード内でシステム切り替えが発生すると、 それまで利用していたシステムのPINの解除情報がクリアされます。

    戻り値:
        IDmを返します。(8byte) 
    例外:
        DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。 
        DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。 
        FelicaException - Free Areaのポーリングに失敗した場合に発生します (ID_POLLING_ERROR, TYPE_FREEAREA_POLLING_ERROR)。 
        java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。 
        PortBusyException - ポートビジーエラーが発生した場合に発生します。 
        java.io.IOException - 入出力エラーが発生した場合に発生します。
    導入されたバージョン:
        DoJa-5.0 (903i)

    導入されたバージョン:
        DoJa-5.0 (903i)

らしい。

Fuck off !!

そろそろケータイ買い換えるか。。。
俺の古物ケータイ・SH700iじゃFeliCaもGPSもFlashLiteさえも開発できなくて困る。

モバイルFelicaでIDm!

ふとモバイルFeliCaがやりたくなったので、
サンプルコードを書いてみた。

初めてのiアプリ、これはなかなか面白い!!!
が、どうしても上手くいかない部分が1点だけ。

たとえば、アプリ側でFelicaIDmを取得すると

11 1A 00 FF FF FF FF FF 

なんだけど、これをカードリーダで読み込むと

01 1A 00 FF FF FF FF FF 

みたいに先頭の1バイトだけ違いが出る。
しかも、どの機種も同じ現象が出て再現性もある。

簡易認証に使う場合は、IDmがユニークであることが保障できないといけないのだけど、この謎仕様にずっと悩まされていた。

そんな時、次のような書き込みを2chで発見!!!

63 名前:dotera : 06/01/28 08:52 id:SP8LQg1s
    モバイルSuica入れるとFelica製造番号が変化してるようにみえます.
    Edyで表示したときと、Suica/ICOCA/PiTapaで表示した時では
    製造番号先頭1桁が変化する.
    論理的に2枚のFelicaが入っているかようにしたのかな.


    でんのすけ♪◆634yAHuzIo
64 名前:でんのすけ♪◆634yAHuzIo : 06/01/28 09:53 id:vrV2aDlg
    >>63
    よく気が付かれましたね。
    NTT DoCoMoおサイフケータイの場合、元々、FeliCa共通領域とフリー領域の2つに
    論理分割されています。「鉄道・バス設定アプリ」を入れると、さらにサイバネ領域
    として論理分割され、論理的に3枚のFeliCaが入っているような状態になります。
    IDmの先頭は、FeliCa共通領域が"0"、フリー領域が"1"、サイバネ領域が"2"になります。 

なーるほど、超納得!!

またコード晒します。

いちまんえん(;_;)

たぶん、人生に疲れていたのかもしれない。


ATMでお金を引き出した後、
何を血迷ったか、引き出した1万円を取らずに、
カードと明細表だけを取ってその場を去ってしまった。


気づいたときには時既に遅し。


ATMに戻るも、もちろん現金は無い。


電話で問い合わすも「撮り忘れの記録はありませんね…」


ダメ元で警察に行くと「見つかる可能性は低いと思うけどねwwwww」


たぶん、俺の後ろに並んでたオッサンが(ry


なきたい。。。(;_;)

引越し大変

疲れた。疲れ過ぎた。


東京の細道を1トントラックで走りまくったのだけど、
こんなに精神を削られるとは思ってなかった。


引越し用に幌も付けてたので後ろも見えない。
細い路地に入るのはいいが、出るのには一苦労。


これなら山道の方がマシだなぁと思った。

今月はブログ書くぞ!

おひさしぶりです!
きょろです。


さて気付けばもう11月、
時が経つのは早いものですね。
さすがに寒いので、半袖やめようかと悩んでます。


今日は友達の引越手伝いに立川へ。
はじめて武蔵野線のりました。
やっぱJRは人多いな…。


写真は北朝霞駅で見掛けた団体列車。
団体列車ってまだあったんですねー。