SewiGの日記
2007-05-01 [火] [長年日記]
■ [Ruby] 刑務所でRuby
- 民間刑務所で Ruby によるソフトウェア開発者を養成、アウトソーシング業務を (japan.internet.com)
コーディングはいいとして、ソフトウェア開発って覚えることがほかにもあるけど大丈夫なのだろうか。仕様設計とか、セキュリティとか。教育工数が低いフレームワークを持つRubyってRuby on Railsのことかな。
それにしてもソフトウェア開発ってこうでもしないと人が集まらないものなのか。
2007-05-08 [火] [長年日記]
■ [Opinion] ググることができる携帯電話を
最近、携帯電話の内蔵メモリの容量不足警告がよく出ます。画像や音声はSDカードに保存しているんだけど、メールはできるだけ消しません。今までは受信箱・送信箱ともに1年分以上は残してても大丈夫だったのに最近は半年分も持たない。今年に入ってから写真が添付されたメールを貰うことが多いのが原因。
いらないメールは消すなり、SDカードに保存すればいいだろという話もありますが、本体に残しておいて必要なときにメールを探したいことがあるのでそうもいきません。携帯電話がPDA化してて最近では音楽用にGB単位の内蔵メモリがあるからこうした容量不足の問題は解決しそう。
でも、入れた音楽を探すときにどうする? プレイリストはあっても、この曲を今流したいというときにリニアサーチするのか? 文章や画像ならもっとファイル数が多いはず。どうやって探す? ディレクトリ分けでもするか? 携帯電話のインタフェースでは難しい。
今の携帯電話に足りないのは検索機能だ。素直にスマートフォンに通話機能をつければいいものが、携帯電話という尾を引くばかりに変な方向に高機能になるのが今の携帯電話。
2007-05-12 [土] [長年日記]
■ [Other] 実験室の大掃除
TDT System 3を実験室に導入するべく、実験室を大掃除しました。巨大なラックにハードが数台。制御用のPCにカードを挿したものと以前に比べれば小型化されてはいるもののやはり大きい。そこで、機材の整理をしました。
すると出てくる出てくる。DATレコーダとアンプの山。過去の資産が残っているので全部処分するわけには行きませんが、HDDに移行すればずいぶん楽になります。それから、PCの整理をしていらないPCやモニタを廃棄。半日の作業を経てTDTは実験室に導入。
…値段が高いんだよな、このシステム。
2007-05-13 [日] [長年日記]
■ [Other] 目覚まし時計のに求められる最低限の機能
久しぶりの休日。休日自体は今までもあったんですけど、今日は存分に休みました。ゲーセンに行ってポップンやったり、本屋に行ったり、CD買ったり。
特に今回の大きな収穫は目覚まし時計です。
別になんてことないアナログ式の安い目覚まし時計です。ただ、選定には時間がかかりました。目覚まし時計に求められる最低限の機能は大体以下のようになります。
- スヌーズ機能がある
- 大きすぎず、小さすぎない携帯サイズ
- 電子アラームも選択できる
- ライトがつく(夜光はダメ)
- 秒針が静か
これらをすべて満たす1000円以下の目覚まし時計を買いました。スヌーズはなくてもいいけどたまに起きれないこともあるので重要。携帯サイズとあるのは、外出先で最低限の機能を持つ目覚まし時計がないことを考慮して持ち運ぶためです。フレームを除いて直径10cmくらいなら見やすさと可搬性を考えてちょうどいいサイズだと思います。あとの項目は神経質はな私は無駄な音や光を消したいのであえて挙げさせてもらいました。
あくまで最低限の機能なので、これに写真が挟める、自分で声を吹き込めるなどの機能があってもいいでしょう。てかそういう時計が欲しい! 高いけど…
2007-05-14 [月] [長年日記]
■ [Network] インタフェースとしてのインターネット
「Webは公開情報であるべき」かつてはインターネットのインフラ誕生とともに、Webに関して言えばこのような思想が強かったように思います(想像ですが)。どうせWebに情報を載せるのだから誰でもアクセスできるようにすればみんな幸せだし、集合知になっていいじゃんという考えは私にもあります。
しかし今はSNSや、グループウェアなどWeb上に存在はするものの他人に見られると問題がありそうな閉じたWebサービスがあります。ネットワークは手段として存在し、使われ方、思想がようやく整ってきたと言ったところでしょうか。見られたくなければSMTPなど別のプロトコルを使うなり独自のプロトコルを使えばいいのではないかという考えもありますが、ただ、パブリックとプライベートの違いだけでプロトコルを変えるのは冗長。それならインフラごと変えたほうがいい。
そうなると残る手段は認証。Webはあえて例えるなら家。公開情報は鍵の掛かっていない家、プライベートネットワークは鍵の掛かった家。機密情報なら特定の人だけがアクセスできるようにガチガチに制限をかければいいと思います。
しかし、mixi疲れのような事例は事情が異なります。友人には自分のことを知ってもらいたいけど知らない人には見られたくない。でも何人かに1人は新たな面白い友人が現われるかもしれない。このような見られたいのか見られたくないのか分からない状態と、管理が面倒になるという事情があります。
こうしたアクセスしてもらいたいのかされたくないのか分からないような、特殊な事情の場合に有効な解決策はないものでしょうか。まず表札を見興味がありそうなら家を訪問して、鍵が掛かっているなら名前を名乗って入る。これなら見ず知らずでも名前は分かります。SNSを使わなくても広義のゲートウェイをトップページに設置するだけで解決できそうです。
SNSが面倒な点はまず、SNSに登録した上で、上記の家への訪問という過程が必要になる。2度手間。今までの話が一戸建ての家としたらSNSはマンション。マンションへの入室が許可されてから各家庭に訪問するみたいな。
Twitterが流行したのは、SNSの面倒な手順を排除しつつ、認証機能や公開制限を可能にしたこと、そして一番の要素は、名前を名乗りさえすれば簡単にシステムを利用できることです。見ず知らずの人には情報は見せないけど、せめて名前が分かれば友達に発展したり、逆に排除することもできる。
こうした見るほうも書くほうも手軽なシステムでありながら、ある程度制限も可能なシステムだからこそ、1行投稿の愚痴みたいなことも書ける、ゆる〜いネットワークが完成し成功したのだと思います。
#住めば都と言いますか、mixiは登録さえすればけっこう使い物になりますが、一般の人には敷居が高いだろうなぁ…
2007-05-16 [水] [長年日記]
● Benon [You're the one with the brains here. I'm wtachnig for your..]
2007-05-19 [土] [長年日記]
2007-05-20 [日] [長年日記]
2007-05-22 [火] [長年日記]
■ [Hardware] B0プリンタを使う
今週土曜日に研究室のオープンハウスがあるので、その発表用のポスターを作りました。用紙サイズはA1で、そこそこ文字を大きくして目立つようにしつつ、大きくなった分、文字を入れて内容を充実させるという絶妙なバランスを要求される作業。とりあえずPowerPointでカンタンに作ってから、Illustratorで仕上げ。
そして印刷。使うプリンタはHP Designjet 5500ps。最大B0サイズまで対応。つまり1030mm×1456mm。長辺145cmだから、小柄な女の子の等身大ポスターが作れそうな勢いですw
ちなみにコストはインクと紙で1枚300円程度、本体は250万円らしいですよ。
発色は、以前学部で使ったことのあるエプソンのB0プリンタ(型番は忘れた)の方がよかったなぁ。でも速度はHPが上か。
2007-05-23 [水] [長年日記]
■ [Other] 文化の違い
- アメリカ人は口で、日本人は目で話す (Slashdot Japan)
AA(アスキーアート)で感情を表現する際、日本では(^_^)や(;_;)のように「目」に当たる部分を主に変化させて表現する一方、海外では :-( や :-) のように口にあたる部分を変化させて表現するという差異があることだという。
確かにそうですねぇ。漫画やアニメでも目の大きさや動きがいきいきと表現されていますし、日本のことわざにも目を使ったものも多いですね。(と書いてて口のことわざも多いと思ったけど)そして、このことが認知にまで話が及んでいるのが興味深いところ。
2007-05-24 [木] [長年日記]
■ [Mac] 覚書
- MacBook Proでフタを閉じたまま起動させる
スリープ状態で、DViケーブルとUSBキーボードorマウスと電源ケーブル(←ここ重要)を挿した状態でマウスをクリックするかキーボードでどれかキーを押すと起動する。
- MacBook Proでライン入力をPass Thruする
LineInというソフトでソフトウェアPass Thruできる。これで外部音源を流しっぱなしにできる。
というか、なぜ「アプリケーション/ユーティリティ/Audio MIDI 設定」の「Thru」というチェックボックスが無効になってるんでしょうね。内蔵スピーカに出力できない仕様はちょっと不便。オーディオインタフェース買えばいいんだけど金ないしね。
● Kaycie [I wanted to spend a muinte to thank you for this.]
2007-05-25 [金] [長年日記]
■ [Other] 暑くなってきた
暑くなってきましたね。夜は少しひんやりするくらいだったのに、もうそんなことは言ってられない感じに。夏って、暑いからイヤというのもあるんだけど、クーラーの設定温度が低すぎて逆に寒くて体調を崩すのがイヤなんですよね。自宅なら温度調整できるけど、外出先ではどうにもなりませんからね。
プログラマにとって集中力が切れることは思考を停止することと等しいと言われますが、制御の利かない職場のクーラーほど辛いものはないと思います。夏場に厚着はなかば常識になっています。環境問題とかいうレベルではありません。そして、気温が高くても秋になれば機械的にクーラーが切られます。なぜ、そこまで事務的なんでしょう。季節に関係なく気温に適応してエアコンを管理してもいいと思う。その方が体によくて研究にも支障が出ないし、気温も環境省が推奨してるくらいの温度で十分。利きすぎはダメ。
…こんなこと言ってるから、私は他人が暑いときに寒いと言ってたり、他人が寒いと言ってるときに暑いと言うのでしょうか。私があまのじゃくなだけ? いや、ほかの大多数の人が間違っているんだ。みんなが環境にやさしくないだけなんだ。うん。
2007-05-27 [日] [長年日記]
■ [MATLAB] リサンプリング (1)
最近、プログラミング関連のネタを扱ってこなかったので、たまにはネタ投下。
ダウンサンプリング
ダウンサンプリングとは、ある周波数でサンプリングされた信号をそれよりも低い周波数でリサンプリングすることです。例えば、48kHzでサンプリングされた信号を24kHzでリサンプリングすることです。
ダウンサンプリングの原理はデータの間引き。例えば、偶数サンプルのみを間引くと、サンプリング周波数は半分になります。しかし、サンプリング周波数が半分になったのにスペクトル成分はそのままなので、折り返しが発生してしまいます。なので、サンプリング周波数の1/4を遮断周波数とするローパスフィルタ(LPF)を通して、高周波を遮断すればこうしたエイリアシングを防ぐことができます。
clear; % 入力信号 [x,fs,bits]=wavread('input.wav'); fc=fs/4; % 入力信号の波形 figure(1); plot(x(1:100)); % LPF作成 [b,a]=butter(2,fc/(fs/2)); % LPFの周波数特性 figure(2); freqz(b,a,fs,fs/4); % 入力信号をLPFに通す x2=filter(b,a,x); % LPFに通した信号の表示 figure(3); plot(x2(1:100)); % ダウンサンプリング(fsを半分に) length_y=floor(length(x2)/2); y=zeros(1,length_y); for n=1:length_y y(n)=x2(n*2-1); end % ダウンサンプリングした信号 figure(4); plot(y(1:50)); % 書き出し wavwrite(y,fs/2,'output.wav');
とここまで、説明してきたダウンサンプリングですが、実際にはMATLABのSignal Processing Toolboxに既にリサンプリングできる関数が用意されているので使いましょう。詳しくはhelpで確認を。
clear; % 入力信号 [x,fs,bits]=wavread('input.wav'); fc=fs/4; % 入力信号の波形 figure(1); plot(x(1:100)); % リサンプリング y = resample(x,1,2) % ダウンサンプリングした信号 figure(2); plot(y(1:50)); % 書き出し wavwrite(y,fs/2,'output.wav');
2007-05-28 [月] [長年日記]
■ [MATLAB] リサンプリング (2)
アップサンプリング
アップサンプリングとは、ある周波数でサンプリングされた信号をそれよりも高い周波数でリサンプリングすることです。例えば、48kHzでサンプリングされた信号を96kHzでリサンプリングすることです。
アップサンプリングの原理はデータの補間。例えば、1サンプルおきに0を追加すると、サンプリング周波数は2倍になります。しかし、このままでは高調波を含む信号になりますよね。なので、サンプリング周波数の1/4を遮断周波数とするローパスフィルタ(LPF)で高周波を遮断して、不必要な高調波を防ぐことができます。また、0を挿入するとアップサンプリング後の振幅が小さくなるため、ゲインを調整して2倍に。
clear; % 入力信号 [x,fs,bits]=wavread('input.wav'); fc=fs/4; % 入力信号の波形 figure(1); plot(x(1:100)); % アップサンプリング(fsを2倍に) length_x=length(x); x2=zeros(1,length_x*2); for n=1:length_x x2(n*2-1)=x(n); end % アップサンプリングした信号 figure(2); plot(x2(1:200)); % LPF作成 [b,a]=butter(2,fc/(fs/2)); % LPFの周波数特性 figure(3); freqz(b,a,fs,fs/4); % 入力信号をLPFに通す y=filter(b,a,x2); % LPFに通した信号の表示 figure(4); plot(y(1:200)); % ゲイン調整 y=y.*2; % 書き出し wavwrite(y,fs*2,'output.wav');
アップサンプリングも、実際にはMATLABのSignal Processing Toolboxに既にリサンプリングできる関数が用意されているので使いましょう。詳しくはhelpで確認を。
clear; % 入力信号 [x,fs,bits]=wavread('input.wav'); fc=fs/4; % 入力信号の波形 figure(1); plot(x(1:100)); % リサンプリング y = resample(x,2,1) % アップサンプリングした信号 figure(2); plot(y(1:200)); % 書き出し wavwrite(y,fs*2,'output.wav');
2007-05-30 [水] [長年日記]
■ [Software] ムーアの法則に従う?
- インテル:「ソフトウェアもムーアの法則に従う必要がある」 (CNET japan)
記事でいわんとすることはわかります。
しかし、並列化プログラミングを前提とした発言である事が問題で、あらゆるディベロッパが並列処理やるとは限らない。だからこそ様々なアルゴリズムが研究されているんでしょう。とはいえ組み込み分野なんかにもマルチコアな環境が普及すればまた状況が変わりそうですね…
● Daveigh [Hey, subtle must be your mldide name. Great post!]
● Taimi [Haha. I woke up down today. You've cheeerd me up!]