chumby用wassrウィジェット

2008 年 7 月 22 日

twitter widgetfavotter widgetと同じく、chumby用のwassrのウィジェットを作った

ここからdownload

DSCF2476

使い方はUSBメモリから起動で。profile.xmlのusernameの所を適当に修正してください

APIがtwitterとほぼ同じなので簡単だった。ただ顔アイコンが
http://wassr.jp/user/ユーザID/profile_img.png.128
などで128×128のアイコンが取れるんだけど(サイズは色々指定できて、GIF形式などもある)
Flashへの読み込みがすごく遅い。理由はよく分からない。小さいの指定しても駄目。
修正できなかったのでそのまま公開しました

wassrはイイネ/イラネやchannelなどがあるので、それらの機能もそのうち入れてバージョンアップしたらまた公開しますね

iPhone買った

2008 年 7 月 21 日

たしかに携帯電話としては色々問題はある気もするけど、パソコンのメールもRSSもtwitterも全部見れるので、朝家でメールチェックしてるうちにいつのまにかLDR見てて時間が経っているという事がなくなって良かった。

他の買った人はみんなiPhone買ったと言わずにi.softbank.jpのメアドだけ送ってくる。

■発見方法
先週の土曜の朝に何店か回って2時間ぐらいであきらめたんだけど、最後に電話した近所のダイクマのお姉さんが「入荷時期は言えないが予約しますか」と言う。契約に時間がかかる事は知っていたので、最近忙しくて平日にたまたま売っている店を見つけても契約する時間が無くて買い逃しそうだったので予約してみた。

3時間後に「入荷しました」と連絡が入り、すぐ取りに行った。

auからMNPした。移行した瞬間に、ケータイがつながらなくなった
DSCF2513
auに電話して、「MNP予約番号」という何週間か有効なIDをもらい、それをsoftbankに持って行って免許証などで本人確認すると番号を移転できるらしい。

softbankのシステムはダウンしていて、結局自分のPCでアクティベートした。なのでYahooボタンとかがインストールされていない。

■設定
bootcampなので、音楽とpodcastとAppStoreはWindows、メールとアドレス帳はMacとシンクロしている。その辺が細かくできるので良い。MobileMeはiTunes上で登録画面が出たのでアカウント取ったが使い方がわからない。

アドレス帳はsoftbankでもらったツールの使い方がよくわからなかったけど、W51S→メモリースティックにアドレス帳書き出し(VCF形式)→Macでアドレスブックにドラッグアンドドロップ→iTunesでsyncで移行できた。
やっぱ基本的にMacと相性が良いように出来ている気がする。

5A347にアップデートしたらちょっと日本語入力速くなった気がする→iPhone 2.0 ソフトウェア・アップデート【5A347】恐龍の卵
でもしばらく使っていると遅くなるので、たまに再起動する。

■safari
よく落ちるけど、bookmarkletも使えるし、表示している画面のURIが見えるというのがとても快適。
DSCF2527DSCF2524

DSCF2526

■SMS
Twitterやmixinやjaikuなど海外のwebサービスはSMSで使えるようになっている。これ便利。
海外からのSMS受信は無料(海外への送信は有料)なので→SMS | SoftBank
受信には便利。ただtwitterは1週間に250通の制限があるのでユーザ絞らないと制限超える。
番号は国番号から入れるので、日本は81だから090-1111-1111だったら+81-90-1111-1111にすれば良い。
DSCF2523

■ロック
iPhoneにいろいろ入っていると落とした時ヤバそう。一応、起動時のロックかけた。

■SIMロック
本体はロックがかかっていて、日本のiPhone用のSIMでなければ認識しないが
SIMロックフリーの3G対応ケータイにiPhone用のSIMを刺したら普通に使えた。
ふつう、SIM自体にPIN番号というSIMを勝手に使えなくするパスワードをかける事ができるんだけどそれができないのがちょっと怖い。

wassrウィジェット

2008 年 7 月 6 日

080706_0352~01.jpg

そのうち

mercurialを使ってみていて、リポジトリとか公開してみたりした

2008 年 6 月 30 日

バージョン管理ソフトのMercurialを使ってみている(→日本語チュートリアル

バージョン管理はCVSやSVNすら使ったことがなくてzipに固めて日付でファイル名つけてたんだけど、今のところmercurialで困ったことも特になく便利に使えている。120回ぐらいバージョンを経ても25MBぐらいで済んでくれているので本当に助かる。

Subversion等と違い分散リポジトリらしく、ようするにディレクトリの下に.hgという隠しディレクトリができてその中に全てバージョン管理されて格納される。ディレクトリ毎コピーしてもいいし、必要なくなったら.hgディレクトリを削除しても構わない。
Mercurialを利用している主なプロジェクトは、ぱっと探した感じMozilla、NetBeans、OpenSolaris等があった。

なんでMercurialを選んだかというと

  • サーバーが要らなく、オフラインでも使える
  • プログラマじゃなくても使えそう(むしろプログラム書かない人と共同作業する事が多いので)
  • インストールが楽でみんなに使ってもらえそう→ Mercurial binary packages for Windows and Mac OS X
  • Bootcampで共存してるWindows/Mac間でサーバーを介さずにプロジェクトを受け渡したりしたい
  • とにかく色んな所にバックアップを取りたい

という感じ。

MercurialそのものはPython(とCが少し)で実装されているらしく、使うにはpythonをインストールしなければならない。WIndowsとMacならMercurial binary packageだけで動くが。

とりあえず手当たり次第、自分の持ってる環境にインストールしてみた。これでガンガン同期してます。

Ubuntu7.1だとsudo apt-get install mercurialで一発だった。残念ながらSFCのCNS環境はPythonがバージョン1.5なのでどうにもならなかった。

で、せっかくなのでいくつか、リポジトリをさくらサーバーにcloneして公開してみた http://shokai.org/projects/
特にライセンスについて書いていない物はpublic domainです。改変再配布、切り刻んで再利用などご自由にどうぞ
ドキュメントは気が向いたら書く。

ちなみにコマンドの「hg」はMercurial→水銀→元素記号がhg、ということらしい

xtel生産中

2008 年 6 月 25 日

080625_1829~01.jpg

080625_1828~01.jpg

Firefox3にした あとtumblrとか

2008 年 6 月 20 日

macのfirefoxはFlash上で日本語入力できないみたいだけどWindowsの方をFirefox3にした。2よりページ開く速度が速い。アドレスバーでのURLの履歴も前方一致だけでなくなって、例えばhate sho とか打てば自分のはてな関係のアカウントが全部でて良い。
url history of firefoxというかページタイトルでひっかかるので橋本とかうつとだいたい出てくる

■入れた
add-ons firefox3

tabmixplusのfirefox3対応版 Tab Mix Plus Dev-Build 0.3.6.X-Tab Mix Plus

■reblogまわり
ようやくtombloo入れた。どこからでもreblogをキメれる

tombloo on LDR(下の方にある)

AutoPagerize+LDRize+Minibuffer+ReblogCommand これはdashboard用

tombloo+socialブックマーククロスポスト

stylishまわり
styles on firefox3

greasemonkey userscripts
userscripts of firefoxuserscripts of firefox

他になんかあったら教えてれ

条件付きコンパイルシンボルで実行ファイルを色々作る

2008 年 6 月 20 日

VisualStudioではコンパイル時にコンパイラに渡す定数を定義しておいて、コード上のプリプロセッサで実行ファイルにその部分を含めるか定義する事が出来る事をさっき知った。

こういうコードだと、定数ZANMAIが定義されていればざんまい!!されていなければかず助になる。実行中に条件分岐するのではなく、実行ファイルに丸ごと含まれるか/含まれないかが、コンパイル構成プロファイル毎に変化する。#if ZANMAI
    MessageBox.Show("ざんまい!!");
#else
    MessageBox.Show("かず助!!!!");
#endif

構成プロファイル「NIKU」を新規作成する。
構成マネージャ

プロジェクトのプロパティのビルドで、条件付きコンパイルシンボルをNIKUプロファイル固有の定数として追加しておく
条件付きコンパイルシンボル

この部分を含んでコンパイルするか、含まない実行ファイルを作るかを解釈するようになる。
動作の違う実行ファイルをそれぞれ書き出せるようになると、それだけ設定画面などを作る必要がなくなるのでうまく使えば便利そう

生産中

2008 年 6 月 18 日

080618_1430~01.jpg

080618_1429~01.jpg

C#3.0 - DirectShow.NET2.0でwebcam撮影、JPEG保存する

2008 年 6 月 17 日

Windowsでカメラからの画像入力を使うには、Flash(Air)Processing、Max/MSPを除くとDirectXかVideo for Windowsを使わなければならないんだけど、これらをC#から直接使うのはとてもめんどい。

で、DirectX自体はラッパーを介して使えるので問題ないんだけど、DirectShow(カメラの入力に使う)だけはなぜかC#用のラッパーが無いのでDirectShow.NETの出番になる。このライブラリはs.h.log » DirectShow.NETで静止画キャプチャでも使ったんだけど、去年ぐらいからDirectShow.NETがver 2.0になってさらに良くなっていた。

ちょっといじってみたが、C++が苦手な馬鹿には便利すぎて感動したので、
webcam撮影→JPEG画像に保存のサンプルを作って置いておきます

■作ったもの
Download (VisualStudio 2008 + C#3.0)

昨日の朝にDirectShow.NET2.0でwebcamキャプチャ、JPEG保存 - 橋本詳解で書いたのとほぼ同じだが、デバイスの選択ができるようになった。
select capture devices

あと、DirectShow.NETを使えば、インストールすると1GBぐらいになるDirectX SDKを入れなくても済むのも嬉しい。

■プログラムの準備
まず準備としてDirectShow.NETのサイトからDirectShowLib-2005.dll本体と、サンプルを手に入れる。
DirectShowLib-2005.dllにパスを通し、sampleに入っているCapture.csもpublic domainなのでコピーしてありがたく使わせていただく。

そして、いくつか使うnamespaceを通す
using DirectShowLib;
using SnapShot;
using System.Runtime.InteropServices;
using System.Drawing.Imaging;

■カメラデバイスを取得してプレビュー表示する
なんでもいいが、System.Windows.Forms.Controlを継承しているPanelやPictureBoxやFormなどを、カメラのプレビュー用に用意しなければならない。プレビューを画面に出したくなければVisible = falseしておけばいい。
そのコントロールをCaptureクラスのコンストラクタに渡してやると、cameraのプレビュー表示がリアルタイムに表示されるようになる。
Panel panelPreview = new Panel();
this.Controls.Add(panelPreview);
Capture cam = new Capture(0, 640, 480, 24, panelPreview); // device, x, y, 24FPS, preview

Capture()の第一引数は画像入力デバイスのindexで、0からはじまる。存在しないデバイスindexを選んでしまうとエラーになるので注意。FPSやカメラのXYサイズも指定できる。

■現在のカメラ表示を保存する
別のコントロールを用意して、そっちに保存する。今回のサンプルアプリの場合は、左の動画が右に静止画としてキャプチャされる。
PictureBoxにキャプチャするなら
PictureBox picBox = new PictureBox();
this.Controls.Add(picBox);
IntPtr m_ip = cam.Click();
Bitmap b = new Bitmap(cam.Width, cam.Height, cam.Stride, PixelFormat.Format24bppRgb, m_ip);
b.RotateFlip(RotateFlipType.RotateNoneFlipY); // 上下反転しているので直す
picBox.Image = b;

Image型で静止画をコピーできたので、JpegファイルやPNGファイルなどに書き出すのも簡単。
picBox.Image.Save("captured.jpg", ImageFormat.Jpeg);

もちろんPictureBoxを経由しないで、直接保存もできる
b.Image.Save("captured.jpg", ImageFormat.Png);

カメラを閉じるのを忘れずに。
FormのFormClosedイベント内などでDispose()を呼べば良い
cam.Dispose();

ちなみに、現在接続してあるデバイスの一覧はDsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice)の中に入っている。
今回のサンプルでコンボボックスの中にデバイス名一覧を突っ込んだのはこんな感じでやった
comboBoxDevices.Items.Clear();
foreach (DsDevice ds in DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice))
{
  comboBoxDevices.Items.Add(ds.Name);
}
comboBoxDevices.SelectedIndex = 0;

ComboBox.SelectedIndexで現在選ばれたデバイス名のindexがわかって、それをCaptureのコンストラクタのデバイスindexとして使えば良い。

山王祭

2008 年 6 月 14 日

080614_1331~01.jpg


track feed