投稿

10月, 2008の投稿を表示しています

Docomoのパケホーダイダブルでパケット代を節約

地下鉄の広告で気付いた「 パケホーダイダブル 」。 今まで CoTV 開発のためにパケホーダイを契約していましたが、月の携帯代がばかにならない・・・。 もともと携帯でWeb閲覧をしないので、CoTVの開発をしないときはほとんど使ってないも同然。実際パケホーダイを契約する前は月額3000円ぐらいで済んでいた。 なのでパケホーダイダブルの広告を発見したときは速攻でプラン更新。 これでちょっとは携帯料金節約できそう。 ちなみにパケホーダイダブルは他のキャリアでもお馴染みの段階的なパケット定額制。パケホーダイのままの人は変更した方がよいと思う。

電池(充電池)を買うならeneloop(エネループ)でエコ

古くなったマウスを新調するために調べてたら、最近は eneloop(エネループ) という充電池があって、繰り返し使えるから電池内蔵型より「電池が切れて動かん」というのがなくていいみたい。 eneloopの長所と短所は wikipedia がわかりやすい。 wikipediaにも書いてあるけど、買うときに注意したいのはeneloopは初期型と次期型があって、初期型にはeneloopのに®の文字がない。 ここ で写真付きで詳しく書かれているので、買いに行く前にチェック。 もう少し詳しくなりたい人は ここ で Panasonicのパナループ と性能比較しているので参考に。 充電器は単3と単4を両方充電できて便利。 今使っている電池を使い切ったら、eneloopに切り替えよう・・・。 ちなみに買ったマウスはlogicoolの MX-1100 。eneloopで快適に動いています。電池1個でも動くので重さはそれほど感じない。5mぐらい離してもちゃんと動いてくれるから素敵。 プリンタも新しくエプソンの EP-901A に変えて、今年分の物欲は満たした感じ。 suganuma@エクスブリッジ

IPアドレスの範囲を示す表記方法

ネットワークの設定をするときによく出てくる「192.168.1.0/24」とかの表記方法。 これはIPアドレスとサブネットマスクをまとめて表現する記法。 Classless Inter-Domain Routing(CIDR:サイダー)というらしい。 詳しくは wikipedia と @ITの記事 で。 よく使うのだけメモ。 表記 範囲 含まれる個数 192.168.0.0/16 192.168.0.0 - 192.168.255.255 65,536 192.168.0.0/24 192.168.0.0 - 192.168.0.255 256 192.168.0.0/29 192.168.0.0 - 192.168.0.7 8 192.168.0.0/31 192.168.0.0 - 192.168.0.1 2 192.168.0.0/32 192.168.0.0 - 192.168.0.0 1

オープンソースなフラッシュ(SWF)形式のプレーヤーFlowPlayer

FlowPlayer はGPLで配布されているFLV形式の動画を配信するためのFlash形式のプレーヤー。Flash形式なのでAdoveの Flash Player をインストールしておけばブラウザ上で動く。 以下、特徴 オープンソースなため改変することが比較的容易 ライセンスはGPLなため、改変して頒布(はんぷ)する場合はソースコードも付けないと駄目。GPLについては 前の記事 を参考に。 サムネイル画像、シンプルな表示、さまざまなオプションで制御可能。この辺は実際に見た方が早い。 ここ で。 フルスクリーンにするとFlowPlayerのロゴが表示される。商用ライセンスにすると非表示になる。 オプションの意味などは本家のサイトを見た方が詳しく載ってますが、英語が駄目な人は ここ とか参考になりそう。 動画配信といえばHELIOS.CoTV

【.NET】ClickOnceの開発メモ

.NET Framework2.0から利用可能になったClickOnceという技術。.NET Framework1のころは ノータッチ・デプロイメント と呼ばれていた。 一言でいうなら「簡単にアプリケーションの配布・更新をするための技術」。 ClickOnceの基本的なことやノータッチ・デプロイメントの違いについては @ITの記事 を参照。 以下開発で必要になって調べたときのメモ。 ApacheでClickOnceのアプリケーションを配布するための設定。 ClickOnce起動時にWebアプリケーションと連携するためにパラメータを渡す方法。 ClickOnceを配布(発行)するときにサードパーティ製のdllなどを付けて配布する方法 MSDN Online スタート・キット(ソースコード付き)

Solaris10にsambaを設定

Solaris設定シリーズのsamba編。 インストールモジュールは Sunfreeware.com からGetする。そこにncurses, popt, readlineも必要と書いてあるので、これらもダウンロード。 デスクトップ環境をインストールしてあれば、コンソールでFirefoxを使ってダウンロードすれば楽。適当なフォルダに置いてダブルクリックで解凍。それぞれ順番にインストールしていく。 bashをインストールしとくと作業効率が全然違う。 前の記事 を参考に。 # pkgadd -d popt-1.14-sol10-sparc-local # pkgadd -d ncurses-5.6-sol10-sparc-local # pkgadd -d readline-5.2-sol10-sparc-local # pkgadd -d samba-3.0.25a-sol10-sparc-local これだけだと起動スクリプトが見つからなかったので、Source Codeもダウンロード+解凍。 # cp packaging/Solaris/samba.init.master /etc/init.d/samba # chmod 744 /etc/init.d/samba # vi /etc/init.d/samba BASE=/usr/sfw に変更。 次はsmb.confを設定。 # cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf # chmod 744 /etc/sfw/smb.conf smb.confの設定方法は 前の記事 を参考に。 ユーザの追加 # /usr/sfw/bin/pdbedit -a root samba起動 # /etc/init.d/samba start

Solaris10のSSHを設定

Solaris10にSSHを設定して、リモートでアクセスできるようにしたときのメモ。 Solarisのインストールの仕方は 前の記事 を参照。 SSHはデフォルトでインストール済みなのでrootでログインできるように設定ファイルを編集 # vi /etc/ssh/sshd_config PermitRootLogin yes にする。 sshのデーモンを再起動 # svcadm refresh ssh svcadmの詳細は # man svcadm で見ると詳しい説明が参照できる。ただ Tera Term で閲覧するときは文字コードをEUCにしないと文字化けが起こる。 IPアドレスを確認したいときは # ifconfig -a 名古屋でプロのSEを目指す

Solaris10の端末エニュレータをbashにする方法

ここ でVMware Server 2.0にSolaris10をインストールしてみましたが、あまりに端末エミュレータが使いにくかったので、bashをインストールしたときのメモ。 CentOSなどのLinuxを使っているとデフォルトでインストールされているので、違和感なく使えますが、bash(補完機能とコマンド履歴など)がないCUIはこんなにも使いにくかったのかと再認識。 bashはTabでコマンドの補完機能やパスの補完を行ってくれて、矢印キーで過去の実行したコマンドの履歴を表示してくれる。詳しくは wikipedia で インストールの仕方は ここ を参考に。 Sunfreeware.com の左からbashを選択し、ダウンロード。ほかlibiconvもインストールした方がいいみたいなので、これもダウンロード。Solarisでデスクトップ環境をインストールしていれば、Firefoxでデスクトップにダウンロードしといて、ダブルクリックで解凍できるので便利。 解凍後は $ pkgadd –d <パス> でインストール。 ファイル名にsparcという文字があるけど、VMwareにインストールしたx86のSolarisでも動いた。 軽量、軽快なPHPフレームワーク「petitwork」

pingとpathpingとtracertでネットワークを調査

windowsのcmdを使ってネットワークを調査したときのメモ。 まずホストまで到達できるか確認するためにping( wikipedia )を打つのは基本。 ただホストによってはセキュリティの理由からpingが使っている ICMP に応答しないのもある。 次にどんな経路でホストにたどり着いているのか調べるのがtracert(トレースルート wikipedia )。 経由しているルータの一覧と応答時間が表示されるので、どこで時間がかかっているか(どこのルータがおかしいか)が分かる。 詳しくは @ITの記事 を参考に。 さらにwindows2000以降ではpingとtracertを拡張したpathpingというコマンドがある。 これはホストにたどり着くまでの経路とパケットの損失率を表示してくれるけど、tracertで十分なような気が。詳しくは @ITの記事 を参照。 あと、pingを使って簡易的にネットワークの速度を調査する方法も見つけたのでメモ。 ping -l 10000 exbridge.jp とすると10000バイトのパケットを送信して帰ってきた時間が分かるので (10000 × 2) ÷ 応答時間 = 回線速度 と計算できる。詳しくは @ITの記事 を参照 専用ツールを使わなくてもある程度のことは分かる。 ネットワークを調査するためのソフトもそのうち調べてみよう・・・ 前に書いた記事 suganuma@エクスブリッジ

VMware Server 2.0にSolaris10をインストールしてみた

システムの動作確認のためにSolarisの環境が必要になったので、VMware Server 2.0にSolaris 10をインストールしたときのメモ。 Solaris10は Sunのページ からユーザ登録してダウンロード。 VMware Serverでは SPARC(スパーク) に対応していないので、x86用をダウンロードする。 あとはVMware Serverで新規VMを追加するときにSolarisを選択して、いつものようにインストールすればできるはず。細かい手順を知りたい人は ここ とかを参照。 注意点としては、新規VMをインストールするときに割り当てるメモリを640M以上じゃないとGUIでインストールしている最中で止まる・・・実際に止まった。テキストインストールだと大丈夫らしい。 インストール自体は2時間くらいかかった。 こっから CoTV が動作するか確かめなきゃ。 <2008/10/20 追記> デフォルトでルートのディスク容量が5.4GBぐらい割り当てられるけど、インストール直後で既に3.6GB使用しているので、初期の割り当てるディスク容量を増やした方があとで困らなくて済む。 容量を確認するコマンドは $ df -h 動画配信といえばHELIOS.CoTV

クライアントに保存されているDNSキャッシュを削除する

DNSを変更したけど、なかなかクライアントのマシンが切り替えたIPに名前解決してくれない場合は C:>ipconfig /flushdns を実行してDNSのキャッシュを削除してみましょう。 それでも駄目な場合、外部のnslookupサービスを使って名前解決できるか試します。 ここ とか。(本当はこっちが先) 軽量、軽快なPHPフレームワーク「petitwork」

【.NET】クライアントアプリで非同期の処理(通信)を行うには

.NET Framework 1系のころは非同期で処理を実行するためにはデリゲート(delegate)とスレッド(Thread)を理解しないとプログラミングできなかったですが、.NET Framework 2.0からは BackgroundWorker というコンポーネントが追加され、簡単に非同期の処理が記述できるようになりました。 .NET Framework 1系は ここ を参考に。 BackgroundWorker のサンプルプログラムは @ITの記事 を参考に。 非同期処理の基本は MSDNの記事 をまずは熟読。 ちょっと難しい・・・ デリゲート(delegate)については、ちゃんと理解したいので、また調べるかも。 環境は.NET Framework 2.0, Visual Studio 2005, VB.NET(ASP.NET上ではない) suganuma@エクスブリッジ.jp

【.NET】Enterによるフォーカス移動とTabなど特殊キーの制御

クライアントアプリの開発でキーボードの入力を制御するためのメモ。 環境は.NET Framework 2.0, Visual Studio 2005, VB.NET Enterキーでタブ(Tab)キーみたいにフォーカス移動するのは @ITの記事 を参考に SelectNextControl を使えばできる。 ただ記事で紹介しているフォームの KeyDown をhandleするやり方は特殊キー([PageUp][PageDown][Esc][Tab][カーソルキー])の入力をhandleしてくれないこともあるみたい。 そんなときは別の @ITの記事 を参考に ProcessDialogKey をOverrideすればいいみたい。紹介されているサンプルコードをフォームのクラスにそのまま記述すればO.K. 特殊キーの動きを自作するには Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean   Return True End Function としといて、フォームのKeyDownイベントで頑張る。 KeyDown, KeyUp, KeyPressの違いについては MSDN で。 名古屋のおもしろ会社エクスブリッジ

【VB.NET】フォームに別のフォームを動的に挿入する

Web(ASP.NET)のフレームのように左にメニューを表示させて、選択したメニューによって右にコンテンツを表示させるやり方。 環境は.NET Framework2.0, Visual Studio 2005, VB.NET(ASP.NET上ではないよ) メニューはTreeViewを使って作成。フレームはSplitContainerで。 ・・・というか「追加」→「Windowsフォーム」→「エクスプローラフォーム」を選べば、いろいろコントロールが配置されている。 TreeViewのAfterSelectイベントで次のようにコントロールを埋め込むことが可能。 ここ を参考に。 Dim objForm As Windows.Forms.Form = Nothing objForm = New Form1 'Panel2にフォームをセットする Dim objPanel As Windows.Forms.SplitterPanel = Me.SplitContainer.Panel2 objPanel.Controls.Clear() objForm.TopLevel = False objPanel.Controls.Add(objForm) objForm.BringToFront() '最前面に objForm.Show() ' 表示 objForm.Dock = DockStyle.Fill '親フォームにサイズを合わせる 名古屋のおもしろ会社エクスブリッジ

.htaccessと.htpasswdで簡易ユーザ認証

webで公開しているディレクトリにパスワードをかけて閲覧を制限する簡単な方法。 制限するディレクトリに.htaccessを作って、以下のように記述 AuthUserFile /var/www/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$">     deny from all </Files> 詳しい説明は ここ を参照。 次に認証ユーザとパスワードを登録。 $ htpasswd -c /var/www/.htpasswd user パスワードを聞かれるので認証パスワードを入力すると/var/www/.htpasswdファイルが作られ、暗号化した状態でパスワードが保存される。 追加するときは $ htpasswd /var/www/.htpasswd user Apacheのドキュメント も参考に。 .htaccessを読み込むためにはAllowOverrideをALLにしないといけないので忘れずに。詳しくは Apacheのドキュメント 。   < 2011/08/10 Modified > localhostからは参照可能にしたい場合は次のようにする Order Deny,Allow Deny from all AuthUserFile /var/www/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user Allow from localhost 127.0.0.1 Satisfy Any <Files ~ "^.(htpasswd|htaccess)$"...

【.NET】Webアプリのようにセッション(session)を使いたい。app.configの設定

イメージ
Webの場合、ログインしたユーザの情報はsessionに格納してアプリケーション内で使い回しますが、クライアントアプリケーションの場合どうやってやるのか調べたメモ。 環境は.Net Framework 2.0, Visual Studio 2005, VB.NET ここ に全ての答えが。 app.configというアプリケーション構成ファイルに設定を記述することができるみたいです。My Projectを開くと設定という項目があるので、ここに設定する値を記述すると自動でapp.configが作成されます。 参照するときは sUrl = My.Settings.AURORA_URL か sUrl = My.Settings(“AURORA_URL”) 設定するときは My.Settings.AURORA_URL = “http://aurora.exbridge.jp/” か My.Settings(“AURORA_URL”) = “http://aurora.exbridge.jp/” ローカルのファイルに保存されるため、起動時に毎回ログインし直す場合などはアプリケーション終了時にクリアする処理が必要。

【.NET】従来型のArrayListとジェネリックなDictionary

.NET Framework2.0で新しく追加になったジェネリック(Generic=一般的な、汎用的な)という機能のメモ。 ジェネリック機能についての説明は @ITの記事 を参考に。 簡単にいうと、より汎用的に使えるようなクラス(機能)。 使うことが多いArrayListやHashTableにジェネリックなクラスが新たに用意されています。 従来型 ジェネリック 説明 ArrayList List 可変サイズの1次元リスト Hashtable Dictionary キー/値ペアのコレクション この辺も @ITの記事 で詳しく書いてあるので参考に。 従来型のHashTableは値が全てObject型となっていましたが、Dictionaryはインスタンス化するときに値の型を宣言する必要があります。 Object型の場合、なんでも格納できるので便利なような気もしますが、取り出して使用するときに明示的に型の変換をしないといけないので、効率的ではないようです。MSDNにも値をObject型以外にした場合、Dictionaryの方が速いと書いてありました。 ここ 。 ケースバイケースだと思いますが、今後は積極的にジェネリックな機能を使っていった方がよいようです。 名古屋でプロのSEを目指す

【.NET】Visual Studio 2005でPostgreSQLに接続する

イメージ
VB.NETでクライアントアプリケーション作ってますが、Visual Studio 2005でPostgreSQLに接続するためのメモ。 ODBCを使ってもよいですが、クライアントに設定しないといけないので.NET用のデータプロバイダ(Data Provider)が提供されていないか検索したら、やっぱりありました。ODBCを経由しないから、こっちの方が速いはず。 Npgsql .Net データプロバイダ PostgreSQL8.3.3からはスタックビルダがついていて、これを利用するとNpgsqlも簡単にインストールできますが、PostgreSQL8.3.4の段階では、まだNpgsql v1.0.0でした。 これだと参照設定しても利用できなかったので、たぶん.Net Framework2.0だとNpgsql2.0以上を使わないと駄目なんじゃないかな? ここ から最新バージョンをダウンロードしてきて、適当なフォルダに保存します。 C:\Program Files\Npgsql\2.0\ とか。 そして、Visual Studio 2005のプロジェクト→参照の追加で参照タブから Npgsql.dll を選択すれば使えるようになります。My Projectの「参照」で編集可能。 Imports Npgsql Public Sub test() Dim conn As NpgsqlConnection = New NpgsqlConnection("Server=192.168.0.1;Port=5432;User Id=user;Password=pass;Database=hoge_db;") conn.Open() Dim command As NpgsqlCommand = New NpgsqlCommand("select name from user where id = 2", conn) Dim sResult As String = command.ExecuteScalar() MessageBox.Show(sResult) conn.Close() End Sub 日本語が文字化けするというのをメーリングリストなど...

【Linux】findして見つけたファイルを削除する

コマンドで下位階層まで検索して、見つけたごみファイルを削除する方法。 たとえばvssver.sccをきれいに削除する場合は $ find -name vssver.scc -exec rm -f {} \; findについては ここ のサイトを参考に。 軽量、軽快なPHPフレームワーク「petitwork」

OpenSSLで認証局(CA)を構築・・・の前に理解しておくこと

イメージ
Apache+mod_sslでSSL通信をし ベリサイン や グローバルサイン(ジオトラスト) でサーバ証明書を取得しインストールすることはやったことはありますが、サーバ証明書を発行する認証局を自分で構築してしまえばベリサインにお金払わなくてもいいんじゃねぇと思って調べたメモ。 まず認証局(CA, Certification Authority)となるのはOpenSSLがインストールされていれば、どのサーバでもなることは可能。 ただし、私がやりたいのはIEなどでエラーがでない証明書を発行する認証局の構築。これは WebTrust という制度(審査)に合格しないと駄目らしい。 3ヶ月ごとに行う厳正な監査らしい。(もちろん個人では無理) WebTrust に合格すると世界的に認証局として認められて各ブラウザに「信頼されたルート証明機関」として登録される。 つまり ベリサイン や グローバルサイン(ジオトラスト) で取得したサーバ証明書をインストールするとエラーとならないのは ブラウザが既にその認証局を信頼しているから 。 ↓IEのインターネットオプションからコンテンツを選ぶと見ることができます。 ちなみにシェアはベリサインが53%、グローバルサインが25%、その他22%( wikipedia より)。 グローバルサインの方が安い・・・。 ただ携帯電話用のサーバ証明書を取得する場合、古い携帯電話のブラウザだとベリサインしか信頼してないのもあるらしく、グローバルサインの証明書だと閲覧できない機種が出てきてしまいます。 ベリサインは高いんですけど・・・。 次回は実際に認証局の構築と証明書の発行とインストールをやってみる予定(いつになるか分からないけど)。 動画配信といえばHELIOS.CoTV

【VB.NET】URLのパスを結合するメソッドCombine

VB.NETでローカルのパスを結合する場合、 Path.Combine を用いますが、そのWeb版。 VirtualPathUtility.Combine というのが絶対URLと相対URLを結合してくれます。 やり方はASP.NETでない場合、参照の追加でSystem.webを追加して Imports System.Web sUrl = VirtualPathUtility.Combine(“/”, “test.php”) という感じ。 ※.Net Framework 2.0以上 本当は sUrl = VirtualPathUtility.Combine(“http://hoge.jp/”, “test.php”) とやりたかったけど、これだと「有効な仮想パスではありません。」と怒られるので VirtualPathUtility.AppendTrailingSlash を使って sUrl = VirtualPathUtility.AppendTrailingSlash(sUrl) + “test.php” とやることにしました。 軽量、軽快なPHPフレームワーク「petitwork」

【VB.NET】アプリケーションからJSON形式でサーバと通信する

VB.NETのクライアントアプリケーションでWEBサービスにアクセスして JSON形式 のデータをデコードしたときのメモ(ASP.NET上ではない)。 開発環境は.NET Framework2.0 Visual Studio 2005 方法としては次の2通り JSON.NET ASP.NET 2.0 Ajax Extensions どっちを使うか迷いましたが、「 ASP.NET 2.0 Ajax Extensions 」は.NET Framework3.5から標準搭載されるようなので、こちらを使うことに決定。 両者の速度の違いなどが ここ のブログに書いてあるので一読しとくといいかも。 ASP.NET 2.0 Ajax Extensions は ここ から「Download ASP.NET Extensions v1.0」をクリックしてダウンロード。 その後、インストーラからインストール。 Visual Studio 2005では「プロジェクト」→「参照の追加」→「System.Web.Extensions」を選択して、次のをimportsしとく Imports System.Net Imports System.Text Imports System.Web.Script.Serialization サンプルコードは次のような感じ。 Dim sTargetUrl As String = "http://hoge.com/webservice/" Dim objWeb As WebClient = New WebClient() Dim objSrializer As JavaScriptSerializer = New JavaScriptSerializer() Dim objEncode As Encoding = Encoding.UTF8 Dim bResult As Byte() = objWeb.DownloadData(sTargetUrl) Dim sJson As String = objEncode.GetString(bResult) Dim objHash As Hashtable = objSrializer.Deserialize(O...