2008-01-01から1年間の記事一覧

DNSプリフェッチでSafariを高速化

まず始めに、ChromeはDNSによる名前解決結果のキャッシュと「DNSプリフェッチ」技術を用いて、名前解決処理にかかる時間を短縮している。DNSプリフェッチとは、Webページ上にあるリンク先ホスト名を先読みし、あらかじめ名前解決を行って結果をキャッシュし…

MacアプリでUPnPを使ってポートを開く

Mac

やりたいこと: MacのCocoaアプリで簡単にルータのポートを自動的に開きたい。 使うもの: 調べてみたら「TCMPortMapper」というフレームワークがあるそうです。UPnPかNAT-PMPに対応しているルータなら、とても簡単です。サンプルとしてGUIでポートを開くツー…

え…いや、それはほんと勘弁してください…><

http://twitter.com/chigatter/status/1044989956

Google NaCl v.s. Microsoft Xax ?

NaCl (Native Client) by Google GoogleがリリースしたNaClがはやっているみたい。 一言で言えば、ブラウザの中で安全かつ高速にx86のネイティブコードを実行する技術。ただし安全性の保証のため、専用のtoolchainに変更が必要。 すぐ動くものを出してきたの…

twicliからOutputzに文字数をPOST

twicliからTwitterに投稿した文字数をOutputzでカウントするプラグインを作ってみました。*1 (Outputzは自分のアウトプットをカウントするWebサービスです。) 使い方: Outputzにアクセスし、「あなたのOutputzを見る」→「設定」タブで、「復活の呪文」を…

PIDネームスペースを試してみる

Linux 2.6.24以降には、PIDネームスペースを複数持てるという機能が入っています。(PID = process ID。) 詳しい説明は Process IDs in a multi-namespace world [LWN.net] などに譲りますが、おおまかには、 cloneシステムコールでプロセスを生成する際、CLO…

ページを回転させるブックマークレット

Safari限定。Webkitを使っているChromeでも行けるかも。1. 適当なページのブックマークを作り、URLを以下の文字列に書き換える。(はてなだとjavascriptリンク張れない…) javascript:b=document.body;b.style.webkitTransition='-webkit-transform%201s%20e…

TwitterのフォローグラフをRで描画してみる

Twitterでフォローしている人同士を線で結んだグラフ(フォローグラフ)を、一部で流行り(?)のR言語で描いてみます。 手順。 1. Twitterのフォロー関係を取得する。 今回は自分がフォローしている230人ほどのTwitter-erについて、それぞれフォローしている人…

SystemTapでBrainf*ckを実装してみる

Brainfuckとは + - , . [ ] の8命令だけからなるプログラミング言語です。チューリング完全なので、頑張ればどんなプログラムでも書けるハズですが、なにしろ8命令しか無いので書くのはとても大変です。一方、コンパイラやインタプリタを書くのはとても簡単…

shebangの怪

LinuxとMac OS Xではshebangに書いたオプションの扱いが異なるらしい、という話。ちょっと実験してみました。 args.c => gcc -o args args.c でコンパイル #include <stdio.h> main(int argc, char *argv[]) { int i; for (i = 0; i < argc; i++) printf("argv[%d] = </stdio.h>…

TVやエアコンをネットワークから制御

家にあるTVやエアコンを、iPod touchや携帯電話からネットワーク経由でリモコン制御する仕掛けを作ってみました。 要は一種のPCに接続できる学習リモコンなのですが、信号の波形をPCに取り込んで解析できるので、リモコンにもともとついていない信号を送った…

TwitterがJSONP非応に??

気になるアナウンスが。 Google グループ セキュリティ上の理由で10/25にTwitterのほとんどのAPIからcallbackパラメータがなくなるとか。 つまりJSONP非対応に!? それじゃtwicli動かないじゃん>< 追記 どうやらprotectedユーザの発言を返さないようにする…

ローレベルな最適化をしてみる

C asm

d.y.d.を見て、O(n)くらい→必要ならO(1)で n*(n+1)/ 2 にするとかオーダーを意識しよう、という趣旨だということは百も承知で、ローレベルな最適化をして遊んでしまったのでメモ。 #include <stdio.h> #include <stdlib.h> int main( int argc, char* argv[] ) { if( argc >= 2 </stdlib.h></stdio.h>…

動的にiframeを生成してクロスドメインなPOSTを投げる方法

※2015/3/15追記 2015/2月ごろから本記事の方法はTwitterでの実利用は困難になりました。レスポンスヘッダに"content-disposition: attachment; filename=json.json"が追加されるようになったため、json.jsonというファイルとしてダウンロードが行われてしま…

Growl用WebAPI提供サーバ

前のエントリで書いたGrowl用Web APIを単独で動くサーバにし、アイコンにも対応しました。 バックグラウンドで動かしておいて、 http://localhost:23080/title=たいとる&msg=ほげほげ&icon=http://url/〜.jpgというURLにアクセスすると、Growlでメッセージが…

Growl用のWeb API

GrowlをWebアプリから叩くためのAPIを提供します。ローカルホスト上にCGIが動くWebサーバが必要です。0. Growlをインストールし、システム環境設定>Growl>ネットワークで「通知される受信を聞く」をONにする。 1. CPANでMac::Growlなど必要なライブラリをイ…

twicliにプラグイン機能を追加

WebブラウザベースのTwitterクライアントtwicli。 twicliをユーザの好みに合わせて機能拡張できるプラグイン機能を追加しました。 といってもまだ追加できるものは余りないのですが、今後に向けて。 仕組み プラグインはJavaScriptで記述し、どこかのWebサー…

クロスドメインJavaScript呼び出しをクラス化, クロージャにも対応

以前twicli開発メモで、JavaScriptでJSONPを返すクロスドメインAPIを動的に呼び出す方法を書きました。が、script要素を覚えておいて削除する必要があるetc. いろいろと面倒でした。そこでクラス化し、クロージャを使って自動的に不要なタグを除去するように…

VLCで動画をiPhone/touch用に変換するAppleScript

Mac

使い方 VLCをインストール(適当なフォルダにコピー)。VLC-0.8.6iで動作確認しています。最新版だと動かないかも。 下記スクリプトを「スクリプトエディタ」に貼付けてアプリケーション形式で保存 変換したい動画ファイルをドラッグ&ドロップ 変換後、VLCが…

クロスドメインなJavaScriptを使ったTwitterクライアント「twicli」開発中

最近、クロスドメインなJavaScriptを使ってWebブラウザだけで動くTwitterクライアント「twicli」というものを開発中です。 http://www.geocities.jp/twicli/ で公開しています。 動作はFirefox, Safari(iPhoneのMobileSafariでもOK), Operaで確認しています…

リファレンス演算子ではまった

perlでArrayのリファレンスを得ようとしてハマったのでメモ。[$a, $b, $c] と \($a, $b, $c) は別物。@x = ($a, $b, $c); \@x と \($a, $b, $c)も同様。 前者はArrayのリファレンスですが、後者は \$a, \$b, \$cを要素とするArrayになる。 perl -le 'print […

iPod touch + lighttpdの設定 - おまけ

おまけ程度にこれくらいはあっても良いかも、という設定です。 ディレクトリ一覧を表示する server.modules = ( ... "mod_dirlisting", } server.dir-listing = "enable"でもiPod touchで見るとものすごく字が小さい…。拡大すりゃ良いんですが。 エラーログ…

iPod touch + lighttpd でCGI

id:NeoCat:20080723 で動かしたiPod上のlighttpd上で、CGIを動かせるようにする方法です。 手順 0. lighttpdを動くようにする。id:NeoCat:20080723 参照。 1. /etc/lighttpdのモジュールにmod_cgiを加える。 server.modules = ( "mod_cgi", ←追加 "mod_acces…

コマンドラインから直接Cを実行

C

何となく作ってみた。Cでワンライナー(1liner)っぽいものが書けます。 OSのテストなどでシステムコールを直接呼びたいときなんかは便利かと。perlでsysopenとかやるよりも直接的。 使用方法 ce [-m] [-I sysheader] [-i header] [C-code] [args ...] -m : in…

iPod touch + lighttpdでiComic代わり

iPod touch 2.0では今のところiComicが動きません。 2.0用の野良toolchainが出てるらしいのでコンパイルし直せば良いのかもしれませんが、結構大変そう。。 それならと、しばらくはMobileSafariでしのぐべく、補助スクリプトを書いてみました。 下記スクリプ…

iPod touchでlighttpd

JB済みiPhone / iPod touch(2.0)上で軽量HTTPDサーバ lighttpd を動かしてみたのでやり方のメモ。ただし今のところ静的コンテンツの配信のみです(lighttpd自体はCGIなどにも対応しています)。 ローカルにファイルをおいておくと、オフライン時でも見られて便…

SystemTap用のemacsメジャーモードを書いてみた

tokyo-emacsをustreamで眺めていてElispが書いてみたくなり、SystemTapスクリプトを編集&ついでに実行できるメジャーモードを書いてみました。 これを使うと、EmacsからホストのLinuxカーネルをHackして、いろんな情報をとったりできます。 書いたものは本…

早くも

id:cho45 さんに補足して頂いたようで...ありがとうございます。^^; ちなみに、ゆのっち / 元ネタはちゃんと知ってますw

ゆの in SystemTap - 応用

id:NeoCat:20080713:1215944362 のようなテクニックを使うと、どんな言語でもソースの読み込み時点で書き変えてしまうことにより、ゆの対応にできる? 例えば % cat yuno.rb puts "x / _ / x < 来週も見てくださいね!" % ruby yuno.rb <= 書き換えられた上で…

ゆの in SystemTap - 解説?

id:NeoCat:20080713:1215944362 の簡単な解説です。まずSystemTapとは、簡単なスクリプトでLinuxのカーネルの動きを解析するためのツールです。 詳しくはRedHatの解説in日本語とか本家サイトとか、man stapとかman stapexとかをどうぞ。 普通は情報をとるだ…