投稿

2013購入記録

携帯電話 Nokia RM-821 Lumia 920 (1/17) Sony docomo SO-02E XPERIA Z (2/9) HTC KDDI HTL22 HTC J One (8/24) LG LG-D821 Nexus 5 (11/6) AV機器 ONKYO GX-70HD (1/6) ONKYO BASE-V50 B (8/18) Sony NW-M505 (12/7) コンピュータ Dell U2713HM x2 (1/16) NEC AT Aterm WG1800HP (4/6) Logicool Wireless Rechargeable Touchpad t650 (5/18) Microsoft Surface 2 (11/5) カメラ Sony SEL24F18Z (5/29)

Xamarinを使ってみた

イメージ
今更ですが、Xamarinを使ってみました。 Xamarin: Build apps with C# and .NET for iOS, Android, Mac and Windows 簡単にいえば、C#で複数プラットフォームのネイティブアプリをコーディングできる開発環境です。 C#はJavaと比べてコードが簡潔に書ける傾向があるのでわりと魅力的です。 個人利用でサポートなし、アプリサイズ制限ありのSTARTERバージョンは無料です。 インストーラを起動するとJDKやAndroid SDK等の必要なコンポーネントが自動で全てインストールされます。 (もともとインストール済みであればスキップされます) で、とりあえずAndroidでHTTP GETするだけのアプリを書いてみました。 .NetのSystem.Net.HttpWebRequestと、JavaのJava.Net.HttpURLConnectionで指定したURLからHTTP GETするだけのアプリです。 C#だからコードが簡潔 var button = FindViewById<button>(Resource.Id.myButton); button.Click += (sender, e) => { GetDataByHttpWebRequest(input.Text); }; handler = new Handler(ApplicationContext.MainLooper); 何と言ってもイベントハンドラの実装がきれいです。 JavaでsetOnClickListener(new OnClickListener(){... と毎回書くのは実に面倒です。 また、プロパティが使えるのも大きいです。 getApplicationContext().getMainLooper() などと書く必要はありません。 HttpWebRequestとHttpURLConnectionで同じ動作を実装する private void GetDataByHttpURLConnection (string url) { var reqThread = new Thread (() => { var conn ...

Android 4.4のイースターエッグ

イメージ
Kit Katのイースターエッグにキーライムパイが出るという 記事 を見て、他にも何か出ないかと思ってしばらく眺めてみました。 まずは Jelly Bean のころからたまに出ていたステッキのようなもの。 偶然Key Lime Pieも写ってますね。 Donutに見えるけど、いつものDonutと違うこれは何なんでしょう? この平らな3枚の正方形はいったい? あとプリンもありました。 お菓子じゃないけどお化け的な何か。 終わり。

Nexus 5 買った

イメージ
Nexus 5 LG-D821 を買いました。 裏面の写真とるの忘れましたが、色は白です。 1日の朝通勤中に注文して、2日のお昼ごろには発送通知を受け、3日には羽田に着いていたのですが、4日は何も動きがなく悲しみに暮れていました。 ですがとりあえず今日の午前中に家に届いたようだったので、再配達をかけて会社を早退して受け取りました。 Developerになったり dococmoのLTE掴んでみたり   ゴニョゴニョしてauのLTE掴んでみたり やりたいことはひと通りやったんですが、どういうわけだがadb devicesで出てくれず。 ドライバは最新のものを入れていて、Device ManagerにもAndroid Composite ADB Interfaceは出ていたのですが。。。 というところでLumiaの認識でコケた時を思い出し、一旦ドライバ削除したら認識してくれました。 終わり。

Surface 2 買った

イメージ
Surface 2を買いました。 これと言って使い道もないのですが、安いしリファレンス機だし珍しく発表即発売してくれたし勢いです。 本当はPro 2を買うべきなのはわかってますが、高いしx86系はデスクトップ機があるしということで。 と割り切ったものの、x86系のデスクトップアプリが使えないのはやはりWindowsとしてはつらいところです。 Windows 8から導入されたMicrosoft Account(?) のおかげでデスクトップマシンの設定がそのまま適用でき、初期設定が簡単なのがとても良いです。 オンラインストレージは個人的にはあまり使わないのでそれほど嬉しくはないですが、SkyDriveの200GBチケットとかが期間限定で付いてくるようです。 ああ、でもやっぱりWindowsなのにKrileが使えないのは痛いなあ。 今更ですが。

Windows 8から8.1にアップデート時に入れなおしたもの

10月17日の夜から Windows Store で Windows 8.1 へのアップデートが配信開始されました。 アップデート自体は特に問題ありませんでしたが、いくつかドライバが死んで再インストールが必要になったので残しておきます。 と言ってもそんなに数はありませんが。 VMwareのネットワークドライバ 8.1にアップデート後、 Adapter settings の VMware Network Adapter VMnet が不正な状態に陥りました。 当然、仮想マシン内からの通信は通りません。 一旦VMwareを削除後、現在最新の VMware-player-6.0.0-1295980 を再インストールしたら解決しました。 Hyper-Vを使用している人は関係ないかと思いますが、私は Hyper-V を無効化して VMware を使用していたので踏んでしまいました。 Data RAMのRAM Diskドライバ 8.1へのアップデート後、まず RAM Disk がマウントされなくなりました。 一旦削除し再インストールしたところマウントはされるようになりましたが、 明らかに挙動が異常で Windows の起動に2時間もかかる状態に陥りました。 今まで安定して使用できていた v3.5.130 R24 に見切りをつけ、最新の v4.3.0 RC1 に入れ替えたところ、正常な挙動に戻ってくれました。 きっとダメになるだろうと思っていたサウンド系が正常だったのが意外です。 ああ、それにしてもスタートボタンほんと要らない・・・ 終わり。

C#でJSON配列のパースに苦労した話

JSONの記法では、Arrayの中に様々な型を含めることができます。 たとえば、 {"result":["str1", "str2", "str3"], "id":1} {"result":[1, 2, 3, 4], "id":1} {"result":[{"key":"val"}, {"key":"val2"}], "id":1} のような単純な配列形式であれば、 C#では次のような簡単な処理でオブジェクトへとデシリアライズできます。 C# [DataContract] class StringArray { [DataMember] public int id { get; set; } [DataMember] public string[] result { get; set; } } private void deserialize() { var json = "{\"result\":[\"str1\", \"str2\", \"str3\"], \"id\":1}"; var stream = new MemoryStream(Encoding.Unicode.GetBytes(json)); var serializer = new DataContractJsonSerializer(typeof(StringArray)); var obj = (StringArray)serializer.ReadObject(stream); Debug.WriteLine("id: " + obj.id); foreach(var str in obj.result) { Debug.WriteLine("result: ...