JavaScriptでWindowsを拡張するNILScriptを使ってショートカットキーを登録してみた

目標

Ctrl+Dで今日の日付を入力させたい。フォルダ作成やファイルを保存する際に使う。
Google日本語入力などのIMEで「きょう」で変換すれば、「2010/11/24」「2010-11-24」「2010年11月24日」などのフォーマットで変換されるが求めているのは20101124の形である。地域と言語のオプションでフォーマットを変えられるけど他のアプリに支障が出る。

作り方

  1. NILScript ここからダウンロード。
  2. ドキュメントとサンプルを読む。今回はHotstrokesを使えばよさそう。
  3. サンプルを書き換えて、todaystamp.ng完成。

使い方

コンピュータ起動時に実行してほしいのでスタートアップフォルダにngw.exeのショートカットを作ってコマンドラインオプションを付ける。
"J:\Program Files\nil\ngw.exe" "J:\Program Files\nil\users\cherenkov\todaystamp.ng"
こんな感じ。

メモ

  • install.batを再び実行すればアンインストール出来て関連付けを外せる。(アンインストールしてもファイルは消えない)
  • IMETurnOff()で半角モードになる。
  • サンプルに書いてあったけどIMETurnOffなどのIMEのメソッドやプロパティを触る場合は.use('IME')必須。
  • サンプルのkeyboard_hook.ngでキーを押して名前など確認できる。
  • 半角/全角キーのエイリアスはhanzen。
  • .send("hoge")は不可。.send("[h][o][g][e]")とするか.send(["hoge"])

気になる

  • 二重起動防止したい。
  • スタートアップ登録を自動でやる機構はある?
  • nil\users\以下にできるユーザ名のフォルダは自作のスクリプトを入れる用?
  • IMEの状態を取得する方法は?

デンソー夢卵2010に行ってきたよ!

夢卵アイデアコンテストに挑戦する川崎名人特集を中京テレビで見て、これは面白そうということで11/14(日)に行ってきました。

デンソー 夢卵2010 可能性を信じて、「夢」への挑戦

夢卵(ムーラン)とは?
デンソーでは、「豊かな夢のあるアイデア作品の企画・製作を通じ、技術とモノづくりを楽しみ、社員の発想力・創造力の向上を図る」ことを目的とした、アイデアコンテスト「デンソー夢卵」を2年に1度開催しています。“夢卵”は、「夢」を基調として、発展性・意外性を感じさせる「卵」をイメージして名づけられました。1991年からはじまり、今回で10回目を迎えます。国内外のグループ会社からも参加し、デンソーグループあげての一大イベントとなっています。
  • 9:00 浜松から国1を西へ。
  • 11:25 駐車場着。会場のデンソー本社までは歩いて3、4分。

フォトレポート


ヒューマノイドロボット HRP-2がお出迎え。右は会津磐梯山踊り実演中。左はたぶん不審者がいないか見張ってる。



よくみると中の人が汗だく。お疲れ様です。

ここからはアイデアコンテスト。



過去に受賞した作品のコーナーから。これは川崎名人の作品 異次元ビークル「む〜ん」。LEDライトを見つけてニヤリ。



お絵描き群知能「並べ!ラジコン」。iPadでお絵描きするとラジコンが整列!


コロコロしてかわいいロボたち。そして大量のエネループ



「落下するボールと、床面の"反発"を制御、飛距離をコントロール」。丸いところを指で押すと反発力!ほー、反発コントロールアクチュエータなるものがあるんだなぁ。どんな製品で使われてるんだろう。



ジャラジャラする複数の鍵がひとつに!ナイスアイデア



あ!川崎名人いた!!羽根生えてる!試乗してくれたよいこには名人名刺がプレゼント。
直前のテレビでは室内でちょっとだけ飛べてたけどその後どうなったかな?プロペラ相手にフルフェイスだけでは首が心配だった…。


参加部門「永世名人



浜名湖電装の黒船来航。超音波で船が動く。超音波で水を振動させて霧状にして水面にボコッと出して大砲を表現。すばらしい。
以前アクアリウム商品の超音波霧化(ミスト)装置で遊んだことがあるけど不思議で楽しい。興味がある。


イデアコンテストとは別のからくり作品としての展示。




ものぐさ歯ブラシ。ネーミングがいい。歯ブラシ、ゴシゴシ、ハンマー!



メキシコからの参加で絆創膏を自動で巻いてくれる装置。実際に巻いてもらった。優しいタッチ。



朝メモトースター。半田ごてを改造。焼けたパンの匂いが芳ばしかった。さすが超熟。



左がだれでもどこでもフィギュアスケート「D-unit」。これも試乗した。手袋に加速度センサーがあって腕を横にあげると前進。将来は手のひらの向きも動きに取り入れたいといってた。電動スケボーや体重移動で動くマシンがいくつかあった。こういうの好き。



こちらもメキシコからの参加で、足でスイッチを押すとゴミ袋の口をぐるぐる巻いて縛る用のヒモを付けてくれる装置。ヒモは人間が縛る。実演に向けて仕込み中。




この看板が傑作で一番笑った。おじいちゃん無茶すんなww

手で握る部分にスイッチがあって後ろのモーターが回る。乗ってみたい気もするがこわい。



夜の赤信号でもっとアピールするアイデア。水(霧?)でスクリーンを作ってプロジェクターで文字を投影。路面がビチャビチャ。



これ一番驚いた。「傘の無い傘」。エアーで雨を飛ばすから濡れない。




お風呂の後、ドライヤーの代わりに「かわかし手!」。指の先と腹の部分から風がでる。かなり実用的。実際に子供が使って好評だったらしい。




化学的なものは使わずに、水と油の表面張力(?)の違いを利用して分離。オリーブオイルで実演。おもしろい。



「こんな椅子でもいいですか」。もたれかかったり、ハマってみたり。

これとか意外としっくりくるらしい。膝から下がムズムズしそう。スマートに後ろから乗れるようにしたいと言っていた。



スピードワゴンが来てた。


以上、フォトレポートでした!

全アイデア作品の概要はこちらのページにあります。アイデア作品 - 出品者を知る
各作品の動画もあった。ustream - muran_Library
いやー、さすが1万件を超える応募の中から厳選された作品。どれも面白かったなー。また行きたい。

メモ

  • 事前に 夢卵動画 を見ていくと運営の苦労などがわかってより楽しめる。
  • 大体2時間で全部まわれた。
  • 会場で配られていた小冊子が写真入りでよく出来ている。
  • 車で来るお客が多いので社員用駐車場を開放。赤いのぼりが目印。会場の西側に点在。
  • 警備員多い。制服がひと味違ってかっこいい。駐車場の方まで巡回してた。
  • 帰りに夢卵がもらえる。

Togetterで引用されたユーザ一覧と引用数を表示するグリモン

上のつぶやきを見てなるほどと思ったので、0.4にバージョンアップしました。
機能をまとめると、

  • 引用されたユーザの一覧を表示する。
  • ユーザのアイコンをクリックすると1つ目の発言までスクロールする。
  • 引用数を付け加える。←New

ポインタを使って配列の各要素を0に設定

問題:ポインタを使って配列の各要素を0に設定するプログラムをつくれ。

#include <stdio.h>
#define ARYLEN(ary) sizeof(ary) / sizeof(ary[0])

int main() {
	int *p, i, ary[] = {1,2,3,4,5};
	p = ary;
	
	for(i=0;i<ARYLEN(ary);i++) printf("%d,",ary[i]); printf("\b \n");
	
	for(i=0;i<ARYLEN(ary);i++)
		*p++ = 0;

	for(i=0;i<ARYLEN(ary);i++) printf("%d,",ary[i]); printf("\b \n");
	return 0;
}

C code - 15 lines - codepad

#define ARYSIZE 5みたく決めてやっとけばよかったのかな。もっと簡単に初期化する方法ありそう。

引数として文字列を一つとり、その文字列中のスペース文字でない最初の文字へポインタを返す関数

問題:引数として文字列を一つとり、その文字列中のスペース文字でない最初の文字へポインタを返す関数をつくれ

#include <stdio.h>

char *leftTrim(char *str) {
	while(*str == ' ')
		str++;
	return str;
}

int main() {
	printf("%s\n", leftTrim("     hello."));
	printf("%s\n", leftTrim(" piyo."));
	printf("%s\n", leftTrim("fuga."));
	return 0;
}


C code - 14 lines - codepad

gist.githubの一覧ページにファイル名を表示するグリモン

なぜ標準でこの機能が無いのだろう。
今回gistのAPIを発見したのでそれを使ってgist idからファイル名を取得して表示するグリモンを作りました。

使い方

自分のGist にレッツアクセス!
または、All Gists で確認。

第1回浜松ウェブAPIハッカソンをガッツリ見学してきた

今日は「第1回浜松ウェブAPIハッカソン」にいってきました。会場はHI-Cube。
参加者のtwitter listはこちら。@hamackathon/members

見学超楽しい

自分は見学組のくせに事前ミーティングにも顔を出したり、参加者の中で一番楽しんでいたと思います。
グルーポンまとめサイト+iPhoneアプリが3人。mixiアプリが4人。twitter botが3人のチームに別れて10時20分頃から17時まで弁当休憩をはさみながら作業してました。
我ら見学組は近くの空いてる席に移動して、ちょっかいを出して邪魔したり、iPadを囲んでマッシュアップアワードのネタを考えたりハッカソン的なことをしてフリーダムに過ごしていました。
また、かっこいいロゴが出来ていく過程、作業を分担して着実に進める、困難に遭遇しても柔軟に切り抜けていく姿勢、あと弁当買出し係佐々木さんの安定した持ち運び能力などもちゃんと見学してきました。さすがプロ。

iPadすごい

iPadを貸してもらって初めて触ったんだけどいろいろ感動した。

  • 加速度センサーの反応が速くておもろい。
  • 電池の持ちの良さ。
  • 初めて会う人もiPadを囲めば話題に事欠かずすぐ仲良くなれる。

素晴らしいデバイス
あとiPhoneiPadで即席のJS練習用ブックマークレットをつくって遊んだ。

javascript:(function(){location="javascript:"+prompt("","")})()

これを使ってグリモンの布教活動してきました。リアルでプログラミングやJSの事を話す機会がまったくないので、本当に楽しかったです。

学生さんも是非

参加者で素人は私だけ。年齢は25〜40代後半あたり。
主催者のエアーズ加藤さんチームが一生懸命コーディングしている後ろで「甘いもの食べたいな〜、おやつ食べたいな〜」とかいえる雰囲気なので、勉強会初心者や学生でもすぐ打ち解けられると思います。その後にてっちゃんさんからお菓子とジュースの差し入れがあってこれまた流石だなと。
ウェブAPIハッカソンだけあってネットで話題になっていることを投げかけて、ズバリな回答が返ってくることが何度かあってそれがすごく心地良かった。
見学だけの参加も全然あり。
しかし、hamamatsu.jsが開催される日は来るのだろうか。JS大好きです!っていう人に会いたいお。*1

次回も期待してます〜。

メモ

  • mixiアプリのモバイル(携帯)向けは法人契約が必要。今回の作品はiPhoneで回避。
  • mixiアプリはサーバを用意する必要がある。個人が無料で試すにはherokuあたりがオススメ。
  • wifi環境が細かった。

*1:女子小学生じゃないお