2011/02/25

MacBookPro刷新(2011モデル)

このエントリーをはてなブックマークに追加

おもむろにMacBookPro刷新されました。
13インチについては、Corei3がどうなんだとか思ってたけれど、一足飛びにCorei5ですね。

一気にスペックアップするのがAppleのやり方なんでしょう。それまで旧CPUで引っ張ってきたのも戦略の内という意味で。そんな当然のことを改めて言及しておかないと、なかったことのように忘れさせるやり口に騙されそうになるんです。うまい。
早々にMac miniがこのスペックになったら心が揺らぎそうです。

次は、MacOSX LionとiWork11のペアと、iPad2、それからiPhone5ですか。
長時間駆動のバッテリー技術を隠し玉にしているようなので、これからの動向も楽しみ。

2011/02/01

メディアサーバーのケース探し

このエントリーをはてなブックマークに追加
コンパクトで個性的なケースを並べました。

音楽やら、録画した番組やらをとりためて管理するメディアサーバーを作ろうと考えて調べていたものです。夏に作ったATOMサーバーは、あまりモノのパーツを流用することが主目的だったこともあって、コンパクトケースと激安構成を調べていましたが、今回はもうちょっと遊びに偏っています。

ATOMサーバーのケース探し
(こちらはMiniITX専用ケースのまとめです)

PT2の再販もあり、AMDのATOM競合CPU「Zacate」の投入もあったりしますので、わりとこの機会に同じように考える人が多いのではと思います。
なお、価格はあくまで参考なので注意してください。(2011/02現在)

候補ケース
メーカー/型番
対応/形態
イメージ参考価格備考サイズ(幅x高x奥)
カラーバリエーション
GIGABYTE
GZ-M1BPD


MicroATX
ミドルタワー
¥4,170安い180x368x398mm
Black Silver
LIAN-LI
PC-Q11B


Mini-ITX
ミニタワー
¥14,100カラバリによって値段がまちまち200x326x260mm
Black Silver Red White
LIAN-LI
PC-V352B


Micro-ATX
HTPC
¥21,800よさそうだけど奥行きがある
少し割高
品薄?
280x275x400mm
Black Silver Red
ASKTech
NK-HT1000M/T


Micro-ATX
キューブ
¥8,940中身が丸見え
インパクトがいい
198x279x380mm
透明
ASKTech
NK-SC400i


Mini-ITX
ミドルタワー
¥ 11,200MiniITX用ながら、HDDが山ほど積める
本気のストレージサーバーを作る用
216x332x420mm
Black
ANTEC
NSK1380/350


MicroATX
キューブ
¥11,800350W電源搭載
カカクで人気のモデル
200x269x335mm
Black
NZXT
Vulcan


MicroATX
ミニタワー
¥9,151いかつい180x422.5x406mm
Black
SilverStone
SST-FT03S


MicroATX
ミニタワー?
¥ 18,000マザボ縦刺し
傘立てみたい
235x487x284mm
Black Silver
InWin
IW-BK646W/300(R)-80P
MATRIX


MicroATX
ミニタワー
¥9,677電源搭載モデルもある
配線が隠せる
150×347×346mm
White
InWin
IW-BR661/WOPS
Dragon Slayer


MicroATX
ミニタワー
¥8,568個性的でかっこよい
ミニタワーというにはでかい
196x430x426mm
Black
InWin
IW-EM002/WOPS


MicroATX
ミニタワー
¥4,964電源搭載モデルもある
安いわりにしっかりしてそう
実用重視の人向け
190x350x380mm
Black
InWin
IW-Z653B/400-80P


MicroATX
ミニタワー
¥10,332400W電源搭載180x363x370mm
Black

候補とした条件


  • PCIスロットが付けられること。
  • 多少の熱対策と騒音対策ができること。コンパクトすぎるケースは、熱対策と騒音対策の選択肢が圧倒的に少ない。音楽ためておくサーバー自体がわんわん唸ってたらちょっと困る。
  • スリムタワーはコンパクトではあるけれど、PCIスロットが付けれない。あと熱対策と騒音対策が難しいため、候補としてなし。
  • ちょっとあまりにパソコンパソコンしてるケースも除外します。ある程度個性的で、インテリアの一つとして部屋に置いてても邪魔にならないもの。
  • というわけでメディアサーバーとしては低スペックでもよいけれど、熱対策と騒音対策の幅を持つのと、多少遊べるようにしたいため、MicroATX乗せれるものを有力としています。一部MiniITXも載せています。
  • ATX対応ケースはでかいので除外。ATXマザボを乗せることも、そんなに拡張が必要になることもきっとないです。メインに再利用するにしても、ほとんどMicroATXで十分。しかし安上がりや静音を目指すなら、でかいケースのほうが有利です。まあ、でかくていかついケースを堂々とメディアサーバーにして部屋に陣取らせるのもなくはない。しかし次の機会にします。

コストパフォーマンスのジレンマ


コストパフォーマンスがよいに越したことはないです。自作の目的自体がコストパフォーマンスと言っても過言ではありません。
お金を掛ける→ハイスペックマシン、安く上げる→低スペックマシンという構図は間違いではありません。けれどそうなると安くハイスペックマシンを作ることが得な気がしてくるのが人情です。

しかし組み立て後もっとも目にするのがPCケースの外観であることは忘れようがない当然のこと。
コストパフォーマンスだけではなくて、愛着の持てるケースを探すのもよいかと思いました。まあもちろん静音性やメンテナンス性も欠かせないものです。

さらに自作PCのなかでもっとも流用可能なパーツはPCケースではないかと思わないでもないです。PCのスペックの移り変わりとめまぐるしくて、5年くらいでとんでもなく古くなってしまうものです。CPUもメモリもどんどん変わっていく。SATAもUSBも新しい規格がどんどん出てくる。互換性はあるけれど、世の中それで回りだしてしまうと、一新してしまったほうがよいものがずっと多くなります。HDDはずっと使いたいけれど駆動系で消耗品みたいなものだし、SSDも消耗を宿命付けられた製品です。それに比べれば、ケースは長いスパンで流用可能なパーツと言えるでしょう。

ちなみに小生が一番気になってるのは、やはり「ANTEC NSK1380/350」です。LIAN-LIのキューブケースも試してみたいところです。
条件を出して、候補を選別して、それから悩むのが楽しいです。

2011/01/09

[javascript]指定の要素を消すブックマークレット

このエントリーをはてなブックマークに追加
jQueryベースで閲覧しているページから指定の要素を消すブックマークレットを書きました。

ブックマークレットとは、お気に入り(ブックマーク)に、URLではなく動作するようにjavascriptなどのコードを登録しておき、必要に応じて呼び出すものを言います。改行などが混じっていると正常に動作しませんので注意。

ブックマークレット
ブックマークレット - Wikipedia
ブックマークレットとは - はてなキーワード

あんまりないですが、技術ドキュメントとかをプリント出力するさいなんかに、余分な要素(サイドのメニューとか)を非表示にしておけます。文書構造がしっかりしているページで利用できるととても強力です。

javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}$('#sidebar-wrapper').hide();})();


展開すると下のようになります。
javascript : (function ()
{
if (typeof jQuery == 'undefined')
{
var jq = document.createElement('script');
jq.type = 'text/javascript';
jq.onload = bookmarklet;
jq.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
document.body.appendChild(jq);
}
$('#sidebar-wrapper').hide();
})();

ほとんどjQueryの呼び出しのためのコードです。
最後の$('#sidebar-wrapper').hide();を、必要に応じた選択方法と動作に変更してあげればよいでしょう。
ベースをjQueryとしているので、こういう処理はいくらでも応用できそうです。

・指定のクラス/IDを消去する
$('#sidebar-wrapper').hide();
javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}$('#sidebar-wrapper').hide();})();


・指定のクラス/IDに色をつける
$('.post-title .entry-title').css("background-color","lightblue");
javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}$('.post-title .entry-title').css("background-color","lightblue");})();


・リンク部分に色をつける
$('a').css("background-color","yellow");
javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}$('a').css("background-color","yellow");})();


・リンク部分を消す
$('a').contents().unwrap();
javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}$('a').contents().unwrap();})();


などなど。
ダイアログを出して呼び出しの都度、手動でセレクタを指定できるようにするには下記のようにします。

・ダイアログで指定要素を色づけ
var sel=window.prompt("セレクタを指定してください", "");
$(sel).css("background-color","lightgreen");
javascript:(function(){if(typeof jQuery=='undefined'){var jq=document.createElement('script');jq.type='text/javascript';jq.onload=bookmarklet;jq.src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';document.body.appendChild(jq);}else{bookmarklet();}function bookmarklet(){var sel=window.prompt("セレクタを指定してください", "");$(sel).css("background-color","lightgreen");}})();

2010/12/10

[C#]フォルダ内のすべてのファイルを返す

このエントリーをはてなブックマークに追加

string [] fileList = Directory.GetFiles(fontFolder,"*",SearchOption.AllDirectories);

終わり。
一行でした。

三番目のパラメータを省略するか、SearchOption.TopDirectoryOnlyを指定すると、サブフォルダまでは潜らずに指定のフォルダ直下のファイルだけを探してくれます。

昔書いたコード見てたら、意気揚々と関数化されていました。こんな再帰つくらんでもよかった。

private IEnumerable<string> GetFiles(string folder) {
foreach (string dirName in Directory.GetDirectories(folder)) {
foreach (string fileName in this.GetFiles(dirName)){
yield return fileName;
}
}

foreach (string fileName in Directory.GetFiles(folder)) {
yield return fileName;
}
}

yield使ってるということは、C#2.0以降ということなので、上の書き方もできたはず。
しかしまあ、MacG4混在環境ならGetFilesは使えないので、Directory.GetFilesのところをWindowsAPIの関数に書き換えて自作するのは仕方ないです。

それはそうと、yieldを使った再帰ってもうちょっとマシな書き方ないのかと思う。