ついカッとなってネットブックもSSD化

2010.2.7 日曜日

うちのネットブックは、Lenovo Ideapad S10e
ディスプレイ解像度が1024×576までという微妙さが可愛い子です。

実際、自分の生活習慣だとネットブックは使用頻度かなり低いので、ほぼデフォルトの状態で緊急用&リビングに居座る時用にたまーに使ってたんだけど、
標準状態だとWindowsXPが起動するまでにおっそろしく時間がかかる。

先日、起動処理の途中についカッとなって支度して大須に行き、急遽メモリとSSDを買ってきた。
この投稿の続きを読む »

格安SSDを使ってRaid0環境作成&その後

2010.2.4 木曜日

昨年12月
Windows7をいい加減RC版から正規版にせねば、と、DSP版を購入するついでに、DSP版のお供を格安なSSDにして、試しにRaid0を組んでみようと思い立った。

SSDは、BUFFALOのSHD-NSUM32Gがamazonで¥7,840と格安だったので、それを2台購入。
プチフリーズで有名なSSDだけど、Raid組むと平気だと言うし、仮想メモリは切って使うし、まぁ大丈夫かな、と。

あと、うちのPCはマザーボードがP5K-SEで、オンボードのRaidチップが搭載されてないので、
Raidカードも思いっきりコストを抑えて、玄人志向のSATA2RI2-PCIE(amazonで¥3,855)を使用。
とにかく今回は、通常に買える品でなるべくコストをかけないで構築するというのが前提。
これに、3.5インチ用のマウンタが¥1,000くらいで、しめて¥20,000ちょい。

結局、SSDをamazonさんでチョイスしたのでDSP版のお供にはできず、
Windows7は別途購入となって本末転倒な気もするけど、まぁそれはそれ。
この投稿の続きを読む »

Google Maps APIとTwitter APIを連携させて遊んでみた。

2010.1.29 金曜日

なんだかやたら忙しくなり、
忙しくなればなるほど余分なことやって遊びたくなるという。

何気なくTwitterのAPI仕様書を読み直してたら、検索用のAPIでgeocodeを指定出来るとのことで、試しにGoogle Maps APIと連携させてみた。

[TwitterMaps]

地図の右側に、表示範囲内で発言された最新15件のツイートを表示。
地図を動かす度にAPIを実行するので、制限(100回/1h)に引っかかりやすそう。

地図上にピンを打って表示できるかな…と期待してたんだけど、
検索のAPIは認証不要で使えるからか(?)戻ってくるデータにgeocodeが入ってこないみたい。

APIから戻ってくるデータは
「geo」には一律nullが入っていて、
「location」に、プロフィールの「現在地」がテキストで入っている物と、緯度経度が入っている物が混じってる感じだった。

Twitter用の人工無能BOTを作ってみた。

2010.1.22 金曜日

まぐ(β) (mag_bot)
http://twitter.com/mag_bot

followingの発言を随時読み取って学習し、1時間に1回くらいの頻度で独り言をつぶやきます。
Rubyで書かれており、形態素解析システムはChaSenを使用しています。

自動フォロー/リムーブについて

フォローをすると自動でフォローを返し、それ以降、貴方の発言からも学習するようになります。
※スパムアカウントのフォロー防止の為、以下の条件に当てはまった場合は自動フォローをしないようになっています。

  • 発言数が極端に少ない。
  • 発言内容が半角英数のみ。
  • ツイートが非公開になっている。

煩わしくなったらフォローを外して置くと、こちら側からも自動でフォローを外します。

※フォローのチェックは30分間隔で行ってます。

学習する言葉について

・URLやメールアドレスは覚えません。
・スクリーンネーム(@****)やハッシュタグ(#****)も覚えません。

リプライについて

@mag_botに対してリプライを送信すると、@mag_botからのリプライが返ってきます。
フォロー外の人のリプライにも答えます。
但し、同じ相手に対して連続でリプライを返さないようになっています。
一定時間が経過するor他の人へのリプライが挟まるとまた受け付ける状態に戻ります。

—————

先日、TwitterのBOTの話題を耳にしたときに、
何年か前にMargarine(marg)っていう人工無脳プログラムを使って、IRCのBOTを作ってみたら妙にいい感じだった事を思い出して、じゃあそれを使って俺も作ってみようかな、と。

そう思って、ブックマークしてたサイトを訪ねてみたら…既にサイトがなかった…と。

色々探してたら、SourceForgeが残っているのを発見。

Ruby + ChaSen + MySQLという環境が必要。
ChaSenもmargも文字コードEUCなので、それぞれUTF-8対応な状態にに改変した。

あとは、Ruby Twitter GemをインストールしてTwitter関係の動作を整えた感じ。

テキストボックスに透かし文字を入れるJS

2009.11.27 金曜日

最近多い気がする。
テキストボックスが空の時に初期値で警告文とか入っていて、フォーカスすると消えるアレ。
textbox

ここんとこ出番が多かったのでjQueryのプラグインにしてみた。
未入力のままフォームがsubmitされると初期値が送信されちゃうので、親のformオブジェクトを探してsubmitの際に空にするようにしてみた。

サンプル

サンプル

使い方

<br />
$("#text01").setDefaultValue("値を入力してください");<br
/>
$
("#text02").setDefaultValue("値を入力してください", "gray");<br />

第一引数に初期値になるメッセージ
第二引数にクラス名を入れると、初期値を表示している際に適用される。
グレー文字で出したいとか、背景を赤にしたいとかありそうだったので。

ソース

Download: textbox.js
  1. <br />
  2. (function($) {<br />
  3.     $.extend({<br />
  4.         textarea : new function(){<br />
  5.             var TA = this;<br />
  6.             TA.set = function(o, m, c){<br />
  7.                 if (Object.prototype.toString.call(m) != "[object String]")return false;<br />
  8.                 var parent;<br />
  9.                 var p = o.parents();<br />
  10.                 for(var i=0;i</p>
  11. <p.length;i++){<br />
  12.                     if (typeof p[i].elements != "undefined"){<br />
  13.                         $(p[i]).submit(function(){<br />
  14.                             if (o.val() == m){<br />
  15.                                 o.val('');<br />
  16.                             }<br />
  17.                         });<br />
  18.                         break;<br />
  19.                     }<br />
  20.                 }<br />
  21.                 if (o.val() == "" || o.val() == m){<br />
  22.                     o.val(m);<br />
  23.                     if (c) o.addClass(c);<br />
  24.                 }<br />
  25.                 o.focus(function(){<br />
  26.                     if (o.val() == m){<br />
  27.                         o.val('');<br />
  28.                         if (c) o.removeClass(c);<br />
  29.                     }<br />
  30.                 });<br />
  31.                 o.blur(function(){<br />
  32.                     if (o.val() == ""){<br />
  33.                         o.val(m);<br />
  34.                         if (c) o.addClass(c);<br />
  35.                     }<br />
  36.                 });<br />
  37.             }<br />
  38.         }<br />
  39.     });<br />
  40.     $.fn.extend({<br />
  41.         setDefaultValue: function(m, c){<br />
  42.             $.textarea.set($(this), m, c);<br />
  43.         }<br />
  44.     });<br />
  45. })(jQuery);<br />