2007-01-01から1年間の記事一覧

Excite翻訳で英語を日本語に翻訳するスクリプト

Excite翻訳で英語を日本語に翻訳するスクリプトを作ってみた。 Eng-ToJapan.ps1 param([string]$word) if($word.Length -eq 0 -or $args[0] -eq "-?") { $commandName = [IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Write-Host @…

goo辞書を使って英単語を検索するスクリプト

PowerShellからgoo辞書を使いたくなったので作ってみた。 Find-Word.ps1 param([string]$word) if($args[0] -eq "-?" -or $word.Length -eq 0) { $commandName = [IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Write-Host @" Name:…

C#3.0でMix-in(みたいなの)ができる件

ある型Aからある型Bへの変換をする処理を書く時にはよくTypeConverter型を継承して型コンバータを書いている。型コンバータの利点は、.NET標準の機構であるというのもあるけど、変換元の型にカスタム属性で型コンバータを関連付ければ、 ↓こんな風に TypeCon…

.tfs-ignoreファイルを作るスクリプト

CodePlexにソースをアップするためにTeam Explorerを使っているが、これがとにかく使いにくい。普段SubclipseやTurtoiseSVNなんかの使い勝手のいいソース管理クライアントを使っているので、それらと比べるとどうしても見劣りしてしまう。Visual Studioのプ…

オープンソース始めました

会社ではライブラリやらフレームワークやらを好き勝手に色々作っているが、今まで個人でフリーソフトを作ったりして公開した事が一度もなかった。というか仕事以外でちゃんとしたアプリを最後まで組んだ事がない。なぜかと言えばモチベーションが維持できな…

ASP.NET MVC Framework x Spring.NET

MVCフレームワークの調べ物はまだ途中だけど、ちょっと脱線してSpring.NETとの連携を考えてみる。Spring.NET自体はASP.NETに対応していてWebフォームへのインジェクションを実現している。しかしMVCフレームワークではWebフォームの役割は純粋なビュー(表示…

ASP.NET MVC Frameworkをさわってみる 2

前回はページの表示のみだったので、次はURLにクエリを渡してみる。単純に「Home/Index」というURLに対して、「message」というクエリ名で値を渡すとする。普通ならこのクエリの値はHttpRequestのQueryStringプロパティで取得するが、ASP.NET MVC Framework…

名前空間エイリアス

とあるCOMアプリケーションをラップするライブラリをC#で開発している。COMアプリケーションを扱うにはもちろんTlbimp.exeを使いRCWのアセンブリを生成し、それを参照するわけだが、このCOMアプリケーションには複数のバージョンが存在し(例えば2005、2006…

ASP.NET MVC Frameworkをさわってみる 1

最近TurboGearsをさわっていて、URLをコントローラクラスのメソッドにマップするというシンプルなアーキテクチャがすごく直感的で、すごい生産性が高くて衝撃を受けた。同じMVCパターンにしてもJavaのStrutsとPythonのTurboGearsでここまで違うのかと、設定…

Spring.NET Web Frameworkをさわってみる

Spring.NET 1.1がリリースされたので、さっそく気になる機能をさわってみる。 まずはSpring.NET Web Frameworkから。これはASP.NETでMVCパターンを使った開発をできるようにするもの。具体的には画面遷移の部分、いわゆるコントローラの部分が抽象化されてい…

NAnt 0.86 Beta1 Release

昨日のSpring.NETに続いて、.NET製のビルドツールであるNAntも最新版である0.86Beta1がリリースされた。NAnt - A .NET Build Toolこちらは.NET 3.5などの新しいプロットフォームへの対応のみ。 長いことほったらかされていたので、てっきり開発が中止された…

Spring.NET 1.1 Release

.NET製DIコンテナフレームワークSpring.NETのバージョン1.1がやっとこさリリースされた。Spring.NET - Application Framework新機能としては Inversion of Control Container Aspect-Oriented Programming Framework Aspect Library ASP.NET framework ASP.N…

画像ファイルのサイズを変更するスクリプト

エロ画像コレクションをサムネイル付きで一覧表示するHTMLを生成するスクリプトを作るために、画像からサムネイル画像を作るスクリプトを作ってみた。 Resize-Image.ps1 param([string[]]$fileNames, [int]$width=150) if($args[0] -eq "-?") { $commandName…

PowerShellのコレクション比較演算子について

PowerShellのコレクションに対して-eq演算子で比較すると不可解な結果が返ってきてずっと頭をかしげていた。 PS > $a = @(1,2,3,4,5) PS > $a -eq 2 2なんて比較をするとbool値じゃなくて比較した右オペランドの値と同じ値が返ってくる。この挙動の意味がさ…

PowerShellにGrep(みたいなの)が標準である件について

前にPowerShellでGrep機能のあるスクリプトを作ったけど、標準のコマンドレットの「Select-String」というのがまんまGrepの機能を持ってたorz...しかもこっちはパイプラインからの入力も受け付けるし、はるかに高機能ときた。とりあえずAlias設定しといた。 …

TurboGearsでメモ帳アプリを作る 5

前回までで「編集画面」を表示するところまで作ったので、次はその画面で[更新]ボタンをクリックした時の処理を実装する。「pynote/controllers.py」を開いて、「update」メソッドを定義する。このメソッドはファイル名とその内容を引数に取る。 pynote/cont…

TurboGearsでメモ帳アプリを作る 3

前回で「新規作成画面」に入力値検証機能を組み込んだ。次は「メイン画面」に作成したファイルの一覧を表示する。「pynote/controllers.py」を開いて、「contents_dir」ディレクトリのファイルの一覧を戻り値のディクショナリに追加する。 import os content…

TurboGearsでメモ帳アプリを作る 4

前回で「メイン画面」にファイルの一覧を表示する機能とファイルの内容を表示する機能を追加した。今回はまず「メイン画面」に残りのコマンドへのリンクを作成する。「pynote/templates/index.kid」を開く。 pynote/templates/index.kid

TurboGearsでメモ帳アプリを作る 1

だいぶ前にPython製のWebアプリケーションフレームワークであるTurboGearsをさわってみた事があったけど、いまいちピンとこなくて、そのままほったらかしにしていた。でも、この前なんとなくさわったみたら一気に理解が進んで楽しかったので、簡単なWebアプ…

TurboGearsでメモ帳アプリを作る 2

前回までで「新規作成画面」を作ったので、次はそこから[追加]ボタンをクリックされたらフォームに入力された内容でテキストファイルを作る処理を実装する。「pynote/controllers.py」を開く。「新規作成画面」のフォームに割り当てられたアクション(URL)…

PowerShellからはてなAPIを呼び出す 2

昨日作ったはてなAPIを呼び出すスクリプトから、XML-RPCの部分を抜き出して汎用的なスクリプト(Get-XmlRpc.ps1)にした。 Get-XmlRpc.ps1 param([string]$reqURL, [string]$methodName, [object[]]$arguments=@()) if($reqURL.Length -eq 0 -or $methodName…

PowerShellからはてなAPIを呼び出す 1

なんかムショウにPowerShellからWebサービスを使いたくなったので、身近なところではてなの「ブックマーク件数取得API」を呼び出してみた。 XML-RPCというプロトコルで呼び出す必要があるらしく、聞いた事はあるけど使った事が無いのでとりあえず調べる。 ↓…

C#からPowerShellをいじくりたおす 2

「Runspace」というクラスについてわかった事。例えば、以下のように「RunspaceInvoke」だけで変数を宣言して、その変数を出力する。 var pshEngine = new RunspaceInvoke(); pshEngine.Invoke("$global:msg = \"Hello\""); var psObjects = pshEngine.Invok…

C#からPowerShellをいじくりたおす 1

C#からPowerShellスクリプトを呼び出す方法を調べてみる。開発環境にはVisualC# 2008 Expressを使う。前提条件として「System.Management.Automation.dll」を参照していることと、以下の名前空間をusingしていること。 using System.Management.Automation; …

NAntを.NET 3.5に対応させる

.NET 3.5もリリースされたので、VisualC# 2008 Expressをダウンロードして、そろそろ本格的に使う準備を始めようとしているわけだけど、その中でも今使っている各種フレームワークを対応させていくという作業が必要になってくる。Spring.NETとかNUnit、NAnt…

Spring.NETでカスタム属性を使ったインジェクションを実現する

Spring.NETは非常に便利だが、プログラムがある程度の規模になってくると設定ファイルがかなり膨らんでくる。カスタムパーサーなどを使って記述量を減らしたりはできるが、たかがしれている。コンテナに登録するオブジェクトが少量でも、いちいち設定ファイ…

PowerShellでクラス(みたいなもの)を作ってみる

PowerShellでクラス(みたいなもの)を作ってみた。 # コンストラクタ param([string]$firstName, [string]$lastName) class Person | property FirstName $firstName | property LastName $lastName | def get_FullName { return "{0} {1}" -f $this.FirstN…

.NET Remotingでチャットアプリケーションを実装する

今までチャットアプリケーションを作った事が無かったので、ためしに作ってみた。 .NETでこういうクライアント⇔サーバー間で通信をするアプリケーションを作る場合、.NET Remotingを使うのが普通。いまさらソケット開いて、がちゃがちゃリスニングしたりする…

Formの派生クラスでLoadイベントを使わずにOnLoadイベントをOverrideするのは何故ですか?

なんて事を最近会社に派遣されてきたC#初心者に聞かれたので、その理由をここに書いてみる。聞かれた事は、 class MyForm : System.Windows.Forms.Form { private void MyForm_Load(object sender, EventArgs e) { // DoSomething } } ではなくて class MyFo…

はてなブックマークのRSSデータを加工

はてなブックマークのデータを引っ張ってきて適当に加工してHTMLで出力したかったので、PowerShellでやってみた。 $xml = New-Object xml $xml.Load("http://b.hatena.ne.jp/coma2n/rss") $xml.RDF.item | sort title | ConvertTo-Html title -title "はてな…