Home > Programming Archive
Programming Archive
[WPF] がんばってバージョン情報ダイアログ作ってみた
- 2009-09-22 (火)
- Programming
ちょっと頼まれてソフトをしこしこ作っていたのだけど、コアな機能よりUIに手間がかかってしまいます。WPF って慣れないので、ひとつひとつの作業にいちいちヘルプをにらめっこする必要があるんですよねぇ…
今日はバージョン情報ダイアログを作るのに四苦八苦。必要な機能は、
- アセンブリからアプリ名やバージンを勝手に取ってくること
- アプリケーションアイコンを抽出して表示すること
- Comments: 0
- Trackbacks: 0
サニタイズは忘れないようにしましょう~(>w<
- 2009-09-10 (木)
- Diary | Programming
Twitter で、「はてなって、なんで<strong>とか<em>のための記法がないのん?」ってつぶやいたら、ブログのサイドバーにおいてある FriendFeed を表示するスクリプトがエラいことになった。サニタイズしてなかたデース。
JavaScript の文字列を無害化するには、
- escapeHTML(): < を < なんかへエスケープする
- stripTags(): タグを取っ払う
の二種類があるっぽいケド、もち今回はescapeHTML()でいくのですよ。こういうのって脆弱性につながるやもしれんしなぁ…さっさと直しておくべ。自分で攻撃コードをつぶやいて自爆したりしたらかなわんし。
今度こそおやすみなさい。
- Comments: 0
- Trackbacks: 0
[C#] ダブルクリックでフォームを閉じる&ドラッグでフォームを移動する
- 2009-07-17 (金)
- Programming
懐かしいことを聞かれたので。調べたら、VBのコードが多いのね。
- Comments: 0
- Trackbacks: 0
LinQ2Twitter にお任せ
- 2009-07-07 (火)
- Diary | Programming
Windows Mobile 用の Twitter クライアントが欲しくなったんだが、イマイチしっくりくるものがない。だったら作ればいいじゃない!家のPCにはVS2010Betaしか入っていないのでWindows Mobile用のソフトは作れないが、とりあえずWindows Formアプリとして作ってみた。
1時間ぐらい頑張ったけど、それなりにムズかしい部分もある感じ。アイコンは多分マルチスレッドにして裏でダウンロード+キャッシュを自分で管理しなきゃいけないし、OAuth とかもチャレンジしてみたいかも。ListBox はオーナードローでガリガリ。指やカーソルキーで上下スクロールするなら、あとでスクロールバーは消しちゃってもいいな。
肝心のTwitterとの通信部分は、LinQ2Twitter にお任せ。コレは楽チンですよ。
TwitterContext context = new TwitterContext(
"daruyanagi", "********");
var query = from twit in context.Status
where twit.Type == StatusType.Friends
select twit;
listBox1.Items.Clear();
foreach (Status s in query)
listBox1.Items.Add(s);
- Comments: 0
- Trackbacks: 0
リンク先ページが存在しないとき、新規作成ページを表示する
- 2009-05-23 (土)
- Diary | Programming
Wiki なんかだと、 http://sample.com/posts/ほげほげ というリンク先のページが存在しない場合、「ほげほげ」をタイトルとしたページを新規作成するページへ飛ばされたりする。今日はあれを実装したいなー。
# posts_controller.rb
# GET /posts/1
# GET /posts/1.xml
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
rescue ActiveRecord::RecordNotFound
redirect_to :action => :new, :title => params[:id]
end
まず、show アクションをちょろちょろっとイジる。
ここでは、ActiveRecord::RecordNotFound エラーが発生したら、
/posts/new&title=新しいエントリーのタイトル
ページへリダイレクトするようにしている。
- Comments: 0
- Trackbacks: 0
haml/sass (というか、sass) でちょっとハマった
- 2009-05-22 (金)
- Diary | Programming
a[href$='.mid'] display: inline-block padding-left: 20px line-height: 18px background: transparent url(/images/music.png) center left no-repeat
これは失敗するんだけど、(コンパイルエラーになってしまうようだ)
a[href$=".mid"] display: inline-block padding-left: 20px line-height: 18px background: transparent url(/images/music.png) center left no-repeat
は成功するという話。haml/sass では文字列は "" で括るのが吉ですね。というか、"" で括れ。(ドキュメントにもそう書いてある!)
あと、 dsplay: inline-block; とついつい「;」を書いてしまうのだけど、そうすると解釈が通らない。ここも、個人的にはよくハマる。
そのほか、最初は & (親要素の参照)の使い方も最初はよく分からなかった。けれど、sass では display: inline-block (CSSな感じ) と書いても、 :display inline-block (ruby/rails な?感じ) と書いてもいいらしい。なので、a :visited などの場合は「:」の意味が曖昧になるのだなーと考えると、合点がいった(ちなみに、両記法はどちらか一方に制限することもできる)。具体的には、
a
:color red
&:visited
:color blue
とかけば、a { color: red; } と a :visited { color: blue; } に展開できる。(&がないと、文法解釈にだいぶ困る!)
まぁ、ほんとはそういう意味ではないのかもしれないけれど、個人的にはそうやってこじつけて納得している(w
とにかく、 a:visited, a:hover … などとズラズラ書くより、ネスとして書いたほうが把握しやすい。そんな記述ができるのが sass のいいところ。だけど、そのためだけにわざわざ新しい文法を覚えるの? といわれれば微妙。やはり、mix-in や !変数 を使いこなせれなければ、真価を発揮したとはいえないんだろうな。
—
3時になっても眠れないので、今日はスタイルシートでリンクへファイル拡張子別にアイコンをつけてみる方法を少し考えてみました…ってことで。
ほとんどこのページを参照しましたけどね。
How to add file type Icons to Links with CSS | Psyked | Psyked
- Comments: 0
- Trackbacks: 0
Visual Studio 2010 Beta 1 に Windows Mobile 用のテンプレートが含まれていない件について
- 2009-05-21 (木)
- Programming
自分で全部やれってか。
まさかここまでないがしろにされているとは思わなかったw
[追記] 冗談だと思ってたけど、VS2010でのスマートデバイス開発 – SharpLab. でも触れられているのでマジであるらしい。ぇー
- Comments: 2
- Trackbacks: 0
Visual Studio 2010 Beta 1
- 2009-05-21 (木)
- Programming | 気になるNews
朝の4時ぐらいに出たのかな?インストール中に寝てしまいました。
Microsoft Visual Studio 2010 First Look(英語版のみ)
目玉は、並列処理(たとえばでっかいループ文を複数CPUコアで分担できる)と動的型付け(ruby のようなスクリプト言語みたいに実行時に変数の型が類推される)になるのかな。
Windows 7 にインストールしたところ、SQL Server 2008 Compact Edition に既知の互換性問題があるとかいわれたけど、まぁ、いいや。
UI が WPFベース なのかな?そのわりには軽く感じた。
- Comments: 0
- Trackbacks: 0
このブログに書いてあるコードはコピペしないでください。著作け…じゃなくて、ヤバいので…orz
- 2009-05-19 (火)
- Diary | Programming
# GET /users/daruyanagi
# GET /users/daruyanagi.xml
def show
case params[:id]
when /\d+/
redirect_to :action => 'show',
:id => User.find(params[:id]).login
else
@user = User.find_by_login(params[:id])
end
if @user != nil
respond_to do |format|
format.html
format.xml { render :xml => @user }
end
else
respond_to do |format|
format.html { render :ststus => 404,
:file => 'public/404.html' }
format.xml { render :status => 404,
:xml => '<error status="404 Not Found" />' }
end
end
end
結局、昨日のコードはこうなった。もちろんまだ完成ではない。
たぶん、9行目は
@user = User.find_by_login(params[:id])
の部分で params[:id] の値をあらかじめ検査しておかないとヤバい気がする。数字ではないことしか保障されていないし、SQLインジェクションとか起こっちゃったりしないのかな?
Rails (というか、ActiveRecord)はそこんとこちゃんとケアしてくれるのかもしれないけれど。
- Comments: 0
- Trackbacks: 0
Home > Programming Archive

