夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Rubyでバイナリデータを標準出力に出力する

Same-Originポリシーを回避するためにRubyでCGIを作っていたのですが、ほかのサーバーの画像を書き出すのでつまりそうになったのでメモ。

画像なのでもちろんバイナリモードで書き出さないといけません。
しかし、標準出力はテキストモードで開かれているため普通に書き出すと改行がおかしくなってしまいます。(windowsなら)

すでに開いているFileをバイナリモードにするにはIO#binmodeを使うそうです。
開発規約/95 - BugbearR's Wiki
instance method IO#binmode
f = "file.jpg"
print "Content-Type: image/jpegn\n"
STDOUT.binmode
print open(f,"rb").read

もう一度テキストモードにするには再オープンしかないようですが、Rubyで標準出力を再オープンする方法はわかりません・・・

CGIでもっとまともな方法


で、さすがにこんなことはないだろうと思って探したらありました。
instance method CGI#out
一件落着。
cgi = CGI.new
f = "file.jpg"
cgi.out("image/jpeg" ){ open(f,"rb").read }
スポンサーサイト

ジェネリックスなEnumのユーティリティ

C#(.NET Framework)ではSystem.Enumに列挙体を操作するツールがいくつかあります。
System.Enum クラス

さて、その中の多くのメソッドがTypeを引数にとります。
これは実はジェネリックスを使えばもっとわかりやすく、簡単にかけそうなものばかりです。
しかし、実際によくよく調べてみると、そうでもなかったりします・・・

続きを読む »

MSDNの改造(ポップアップの改良&J#のコード削除&APIのURI展開)

MSDNがどうにも使いにくい。
これはカスタマイズしなければと思っていたのですが、そろそろ限界だったので作りました。
とりあえず、
(1)ジャマなポップアップ
(2)見る価値のないJ#とJScript
(3)とび先が見えないURI
の3つを解決。
ほかに何かあれば、またはうまく動かないなどあればコメントお願いします。

こういうのを改良する作業は楽しいです^^v

続きを読む »

AndroidでfromHtmlしたテキストの背景色を設定する

AndroidのTextViewなどにリッチテキストを使いたい場合、HTMLを書いてfromHtmlを使うことで簡単にできます。
しかし、どうやらそれだけでは背景色を設定することはできないようです。なんかのbgcolor属性とかで指定できると楽なのですが・・・

ということで、背景色を設定するには、BackgroundColorSpanを使います。
android.text.style | Android Developers
BackgroundColorSpan | Android Developers

サンプルコードです。

// TextViewを取得(IDはtextView1
TextView text = (TextView)findViewById(R.id. textView1 );
// HTMLから文字列を作成。戻り値はSpannedなので、CharSequenceを実装している。
CharSequence str = Html. fromHtml("Backgroundの色を設定" );
// SpannableStringに変換
SpannableString spannable = new SpannableString( str );
//背景色を設定するspanを作成
BackgroundColorSpan bgcolor = new BackgroundColorSpan(Color. parseColor( "#CCCCFF" ));
// 文字列に適用
spannable.setSpan(bgcolor,0, spannable.length(),Spannable. SPAN_INCLUSIVE_EXCLUSIVE );
// TextViewに設定
text.setText( spannable );


BackgroundColorSpan以外のスタイルも同様に適用可能なはずです。
また、setSpanの第2、第3引数を変更すれば一部にだけ適用したりすることも可能です。


(参考)StackOverflowより
http://stackoverflow.com/questions/9567611/highlighting-text-using-html-fromhtml

雪を降らせるスクリプトsnowparticle.2.jsをちょっと改造して使ってみた

寒さが厳しくなってきました。
雪とは縁が遠い静岡県民ですが、ブログに雪を降らせてみました。

こちらのスクリプトを使わせていただきました。PC用のsnowparticle.2.jsです。
クリスマスに使いたい!雪のパーティクルをチラチラ降らすスクリプトを作ってみよー : actyway

この手のスクリプトはドラッグや全部選択をすると雪が選択状態になり、青い四角がぱらぱらと落ちてきたりするようになってしまうものが多いです。そういうのはあまり好きではないのですがこのスクリプトではCSSのみを使っているので反転状態になることはありません。


そのままだと白背景に隠れてしまって少し残念なので、少しばかり改造してみました。


//元のプログラム(25行目付近)
m.setAttribute('style','position:absolute;z-index:'+(z+i)+';top:-'+t[i]+'px;width:'+p+'px;height:'+p+'px;background:rgba(255,255,255,0.8);border-radius:8px;box-shadow: 0 0 2px 2px rgba(255,255,225,0.3);left:'+l[i]+'px;');

//改造後
var color = "rgba(" + (255 - Math.floor(Math.random() * 20)) + "," + (255 - Math.floor(Math.random() * 20)) + "," + (255 - Math.floor(Math.random() * 20)) + ",0.8)" ;
m.setAttribute('style','position:absolute;z-index:'+(z+i)+';top:-'+t[i]+'px;width:'+p+'px;height:'+p+'px;background:'+ color + ';border-radius:8px;box-shadow: 0 0 2px 2px '+ color +';left:'+l[i]+'px;');



乱数で微妙に色をずらして、ほのかに色をつけています。
*20のところを調整すればもっと濃い色も出るようになります。
ただ、あんまり濃いとしつこすぎるので注意。20でも濃いなーと思う人は15とかに調整するといいと思います。

CSSの雪もいいですが、もう何年も本物の雪を見ていない気がするので静岡も今年は少しは雪が降ってほしいものです。
でも、雪がかすかにでもふると交通が大混乱になるんですよね・・・

ホーム  次のページ »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。