タグ

ブックマーク / mattn.kaoriya.net (33)

  • Big Sky :: Web Component を簡単に作れる JavaScript ライブラリ「X-Tag」

    slack で x-tag を教えて貰ったのでちょっと遊んでみた。 X-Tag ★ Web Components Docs Table of Contents Getting Started Registration - Where it All Begins The most important method ... http://x-tag.github.io/ X-Tag は Web Component を簡単きれいに作れるライブラリで、Microsoft からのサポートを受けている事をウリにしているらしいです。動作に必要なのはカスタムタグがサポートされているブラウザというだけで、polyfills も使う事が出来ます。 簡単なチュートリアルが Docs に書かれているのでパッと見ただけでだいたい API が予想できます。自前のメソッドや属性、イベントを定義する事が出来るのでコン

    Big Sky :: Web Component を簡単に作れる JavaScript ライブラリ「X-Tag」
  • Big Sky :: plackup の --path 引数

    plack を使ってて「サーバのサブフォルダを間借りして動かしたい」って事がたまにあるんだけど、そんな場合 nginx の設定でリバースプロキシに渡すって事をやります。 location /foo { try_files $uri $uri.html $uri/index.html @proxy-foo; } location @proxy-foo { proxy_pass http://localhost:5000; proxy_set_header Host $http_host; } この場合、通常の Plack アプリケーションだと / がアプリケーションルートになっているので404になってしまう。よって app.psgi とは別に !perl use strict; use warnings; use Plack::Builder; use Plack::Util; builde

    Big Sky :: plackup の --path 引数
  • Big Sky :: ぼくが知ってる twitter じゃない

    もう僕が知ってる twitter じゃなくなってきてる。 Twitter、開発者向けガイドラインとAPI変更について説明 ユーザー数制限など厳しい内容 - ITmedia ニュース 米Twitterは8月16日(現地時間)、数週間後に予定しているTwitter APIのバージョン1.1へのアップデートと開発者向けガイドライン「Developer Rules of the Road」の改定について説明した。クライアントアプリのユーザー数に上限を設けるなど、サードパーティーにとって厳しい内容になっている。 http://www.itmedia.co.jp/news/articles/1208/17/news037.html Twitter のことと P3:PeraPeraPrv について - とかいろいろ 彼らはこのユーザーの「好みのクライアントアプリを選ぶ自由と権利」を奪うという決定をしまし

    Big Sky :: ぼくが知ってる twitter じゃない
    hasegawayosuke
    hasegawayosuke 2012/08/29
    Wassr使えばいいやん。
  • Big Sky :: ExecuteExcel4Macro で CALL ワークシート関数使ってShellExecute呼んでそれでVimScript操作してHTMLを数秒で生成するの作った。

    « 【拡散】Vim Advent Calendar 2011の電子出版化について、筆者の方へのお願い【希望】 | Main | めんどうな作業がわずか数十秒に!新人プログラマが知らないと一生後悔するVimを使ったHTML生成 » こうですか?わかりません @hasegawayosuke ExecuteExcel4Macro で CALL ワークシート関数使ってShellExecute呼んでそれでVimScript操作してHTMLを数秒で生成する Excel の使い方をたぶん mattn が書いてくれる。 http://twitter.com/hasegawayosuke/statuses/147123761429217280 まずGo言語のソース(動作には go-oleが必要) package main import ( "fmt" "github.com/mattn/go-ole" "g

    Big Sky :: ExecuteExcel4Macro で CALL ワークシート関数使ってShellExecute呼んでそれでVimScript操作してHTMLを数秒で生成するの作った。
    hasegawayosuke
    hasegawayosuke 2011/12/15
    みんなー、mattn ヒマだから何でも作ってくれるってさ!
  • Big Sky :: 今更ながらGoogle v8でembedする方法を紹介してみる。

    最近どのブログでも node.js ばかりでもう飽き飽きしてる皆さんこんばんわ。 node.js 面白いですよね!ェ node.js ってアプリケーションを作る側(つまりライブラリを使う側)からすると、Web周りの便利なライブラリが既に色々あって、そのライブラリが一体どうやって動いてるのか気にすることってあんまり無いかと思います。 pure javascriptな物ならばコードを読むのは簡単です。ただしやれる事に限りがあります。node.js はGoogle製のJavaScript Engineであるv8をベースに作られているのですが、このv8はアプリケーションに組み込むのに適した構成になっていて、関数テンプレートやインスタンス、プロトタイプという各機能がC++のクラステンプレートで上手く表現出来ているライブラリです。Spidermonkeyも確かに扱うのは簡単なのですが、僕からすると若干

    Big Sky :: 今更ながらGoogle v8でembedする方法を紹介してみる。
  • Big Sky :: javascriptを難読化するapache filterモジュールmod_aaencode書いた。

    記号プログラミング大好きっ子の皆さん、こんにちわ。 Advent Calendarで書いてもよかったかもしれませんが、どちらかと言うと逆かなーとか思ったのでこちらで。 aaencodeと言えば、はせがわさんが作ったjavascript向けの変態難読化スクリプトの事ですが、これの利用価値として以前から考えていたapacheモジュール化をやってみました。 サーバ上のjavascriptファイルを可視状態で編集してもクライアントからは難読化されて見えるという代物。実装としてはapacheのOutputフィルタモジュールとなります。 aaencodeは実装としては結構簡単な作りなのでソース全体を公開します。 /** * mod_aaencode -- apache filter module encoding to japanese style emoticons. * * AUTHOR: *  

    Big Sky :: javascriptを難読化するapache filterモジュールmod_aaencode書いた。
    hasegawayosuke
    hasegawayosuke 2010/12/15
    Function( "..." ) じゃなく window.eval( "..." ) にしたほうが動くコード増えるんじゃないかな。
  • Big Sky :: JScript.NETでスレッド

    JScript.NETMicrosoftが.NET Framework向けに拡張したJavasSriptで、Common Language Runtime(CLR)上で動作するJavaScript実装です。 CLR上ではC#、VB.NET等が動作しますが、JScript.NETは言語がJavaScriptという事もあって実はC#やVB.NET等と同等に使えない機能がいくらかあります。 JavaScriptは動的言語です。オブジェクトにプロパティを生やしてメソッドにしたり、prototypeを弄ったり、eval()で関数を生成したりも出来ます。つまりコンパイルするとは言えど、型が動的に変えられる言語です。 その為、.NET Frameworkの機能の一つであるDelegateが使えません。.NET FrameworkのThreadはDelegateという関数型拘束によりスレッドを安全に呼び

    Big Sky :: JScript.NETでスレッド
  • Big Sky :: Googleサジェストから補完候補を作るVimスクリプト書いた。

    vimの入力補完って大変便利なんですが、例えば「あーあの芸能人、名前分かるけどどの漢字だったっけ...」なんて事がたまにあります。 芸能人の名前辞書用意持ってる人なんて見たことないですね。たいがいこういう時はGoogle先生にたよるのが一般的です。 今日はGoogleサジェスト(Google検索で数文字打ったら出てくるあの候補)からvimの補完を行えるスクリプトを書いてみました。 例えばこんな事が出来ます。 おもむろに「takasu」と打って、<c-x><c-u>とタイプします。 Yes! 高須クリニック! えっ2番?...うるさい! 便利ですね! また「watasinonamaeha」(私の名前は)と打って<c-x><c-u>すると... 私の名前はキムサムスン 誰ですか!キムサムスン! 例えば「naitu」なら... ナイツ お笑い 「www」なら... www.yahoo.co.jp

    Big Sky :: Googleサジェストから補完候補を作るVimスクリプト書いた。
    hasegawayosuke
    hasegawayosuke 2010/01/28
    次のネタは「VimスクリプトでIME書いた!」ですね! それはともかく、ブクマするときURLに "utm_source=twitterfeed&utm_medium=twitter" が残らないよう <link rel="canonical"> 入れてください!どうでもいいけど。
  • Big Sky :: Perl音痴な私がPerlを使っている理由

    Perl Hacker面白いよ。:) 変な人いるし、堅い人もいる。ネタに一生懸命になれる人達がいっぱいいるし、意味なく1行に拘る人もいる。 私はPerlでスーパークリエイター奥一穂(kazuho)さんと会えた。 kazuhoさんにお好み焼き屋で箸袋の裏に貰ったサイン! 今も大事に持ってるお! はせがわさんにも会えた。あ、ちゃうちゃう。はせがわさんはwassrだ。 次はどのHackerに会えるかな。

    Big Sky :: Perl音痴な私がPerlを使っている理由
    hasegawayosuke
    hasegawayosuke 2010/01/21
    www
  • http://mattn.kaoriya.net/tmp/sTelNet.c.txt

  • Big Sky :: コマンドプロンプトをgyazoするGyazoCmd作った。

    Gyazoアプリがgithubにあがってるのを知った。 gyazo's Profile - GitHub Gyazo is Open Source! http://github.com/gyazo GyazoWinならびにGyazoのLinux版にもお世話になっているので結構嬉しい。今日見たらESCキーで中断出来る様になってた。嬉しい。 よし!私もGyazoアプリ作るぞ!と思って、考えたけど結局思いついたのがこれしか無かった。 コマンドプロンプトから実行すると、コマンドプロンプトをキャプチャしてgyazoするアプリ、GyazoCmd! mattn's GyazoCmd at master - GitHub gyazo interface to windows command prompt http://github.com/mattn/GyazoCmd 実行するとこんな風になります! だっ

    Big Sky :: コマンドプロンプトをgyazoするGyazoCmd作った。
    hasegawayosuke
    hasegawayosuke 2009/11/12
    誰得www
  • Big Sky :: のび太の物は俺の物。俺の物は俺の物。

    昨日IRCsecurity guyの人と話してて、twitterに新しく導入された機能「list」には少し不満があるという話をしてた。 ざっと上げると 個人単位のlistであり、追加するにはそのlistの持ち主でしか追加出来ない。 UIが痛い。listについての画面遷移、追加削除がやりにくい。 他人のlistを自分のlistにimportしたいが出来ない。 こんな感じ。まだまだbetaだからこれから良くなるのかもしれないけど、さすがにimportは欲しいよね...って事で3分程度で作ってみた。 APIは昨日調べてなんとなく分かってたので、だいぶ楽に作れた。 #!/usr/bin/env perl use strict; use warnings; use LWP::UserAgent; use JSON; use Config::Pit; # のび太の物は俺の物 my $copy_fro

    Big Sky :: のび太の物は俺の物。俺の物は俺の物。
    hasegawayosuke
    hasegawayosuke 2009/11/02
    「おーれはまっつん! ガキ大将」
  • Big Sky :: コマンドラインでC言語をワンライナー出来る「C」をWindowsにポーティングした。

    最近、kazuhoさんが作った「C」で遊んでいるのですが(いまごろかい!)、これWindowsでも使いたいなーなんて思ったのでポーティングしてみた。 C - a pseudo-interpreter of the C programming language PerlRuby では、ワンライナーで処理が書けて便利です。でも、なぜか C では書くことができません。仕事上の都合で、小さな処理を C 言語で書く必要があったので、ワンライナーも書くことのできる C 言語のインタプリタ(?)を作ってみました。 http://labs.cybozu.co.jp/blog/kazuho/archives/2006/01/large_c.php 目指せバイナリアン (C-0.06) C-0.06 をリリースします。 http://labs.cybozu.co.jp/blog/kazuho/archi

    Big Sky :: コマンドラインでC言語をワンライナー出来る「C」をWindowsにポーティングした。
    hasegawayosuke
    hasegawayosuke 2009/10/29
    あとでためs
  • Big Sky :: javascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべき

    twitter stream APIとは、twitterのステータス更新に対してキーワードでtrackしたり、あるグループ内に属するステータス更新をフィルタしたり出来るAPIなのだけど、実際にはchunkedなストリームが流れて来ているのであって、これを使ったWebアプリを作る際にはlong pollを使うのが良い。ただしクライアントサイドでjavascriptを処理する際に サーバサイドでステータス更新をFIFOに溜め込む クライアントからリクエストをブロック(long poll)しFIFOからステータスを送出する クライアントサイドでlong pollを行い画面を更新する 再度サーバへリクエストを投げる を繰り返すのであれば、せっかくストリームなのにアプリサーバとの接続を切ってしまう事になる。出来ればクライアントからWebアプリもストリーミングとしたい。しかしながらサーバからのステータ

    Big Sky :: javascriptで動くtwitter streamクライアントを作るならばmultipart/mixedを使うべき
    hasegawayosuke
    hasegawayosuke 2009/10/13
    XHRでmultipart/mixedを使って接続を切らずに連続して受信//ところでこのエントリ、「お試しの効果には個人差があります。」って言いたくなったのでそれにふさわしいブログ書いた、という流れ?
  • Big Sky :: ページが見つからない場合の404ページ作った。

    blosxomにはnotfoundプラグインがあるので入れた。デフォルトのテンプレートのままだと見栄えが宜しくないので、"page.notfound"というファイルを作って各テンプレートファイルを引っ付けた物をベースに文言などを書いた。 見た目はこんな感じ。

    Big Sky :: ページが見つからない場合の404ページ作った。
    hasegawayosuke
    hasegawayosuke 2009/10/07
    404に限らないけど、http://mattn.kaoriya.net/404.html とか開いたときに、404.html に2回リクエスト飛ぶのはなんでだろう。
  • Big Sky :: Plackで高速サーバがWindowsでも動くようにした

    最近熱いPSGI/Packですが、サーバのStandaloneではかなり高速なパフォーマンスが出ているらしく、試してみようと思った所、Windowsでは動かない箇所があったのでいろいろやった作業履歴。 まず、Standaloneサーバが速いと言われる理由としてsendfile(2)を使っているのですが、Windowsにはsendfile(2)がありません。しかしソケット前提であるならばTransmitFileというAPIがあります。 sendfile(2)と同じようにZeroCopyでファイルから指定ディスクリプタに流し込むAPIです。 Plackが使っているSys::Sendfileに対してこのAPIを使う様にWindowsポーティングしました。 Sys::Sendfileのauthorにもpull requestを送りました。次にPlackにてWindowsで使えないAPIを叩いている

    Big Sky :: Plackで高速サーバがWindowsでも動くようにした
    hasegawayosuke
    hasegawayosuke 2009/10/02
    mattn++ mattn++ くちだけの僕と違ってすごいです!http://b.hatena.ne.jp/hasegawayosuke/20090924#bookmark-16231116
  • Big Sky :: tthttpd(tinytinyhttpd)のmingw32ビルドがまれに落ちる原因が分かった。

    久々tthttpd(tinytinyhttpd)を触っていて、動いてるだろうと思ってたkeep-aliveのコードが動いていなかった事に愕然としながら修正してたら、以前smegheadさんが報告してくれていたmingw32で落ちる問題の原因を発見。 記憶の底で、_beginthread()したらCloseHandle()しなきゃいねないと思い込んでいたんですが、どうやら_beginthread()じゃなくて_beginthreadex()の場合だけだった(参照)。_beginthread()の場合はスレッド終了時にリソース回収されるらしい。 他いろいろと修正してkeep-aliveが動くようになり、ベンチマーク取ってみた。 テストは「helloworld」と書かれたhello.txtをabでGETする物。 まずはconnection closeの場合 This is ApacheBench

    Big Sky :: tthttpd(tinytinyhttpd)のmingw32ビルドがまれに落ちる原因が分かった。
    hasegawayosuke
    hasegawayosuke 2009/09/30
    個人的には、cgi/=@perl.exe みたいに拡張子ではなくディレクトリ名でCGI指定できるとうれしい
  • Big Sky :: Windows Scripting HostからjQueryを使う

    ちょっと訳あって、WScriptからjQueryを呼び出す必要があり(嘘です)作ってみました。 これを使うと $.each([1,2,3], function(index, item) { print("foo" + item); }); $.ajax({ type: "GET", url: "http://www.google.co.jp/", async: false, success: function(data) { print(data); } }); こんなソースが実行出来ます。 $.eachなんかは目茶目茶便利なので、使わない手はありません。とりあえず、$.ajaxでgoogle.co.jpのソースが取得出来るくらいは動きます。 以下全体ソース。 // vim:fdm=marker fdl=0 fdc=0 fdo+=jump,search: // vim:fdt=substi

    Big Sky :: Windows Scripting HostからjQueryを使う
    hasegawayosuke
    hasegawayosuke 2009/09/29
    id:mattn WSHでsetInterval/setTimeout/clearInterval/clearTimeout動くようにできたので、jQuery.ajax を async:true で動かせたよ! あとで整理して書きます!
  • Big Sky :: こまなし

    今日、子供の自転車の「こま(補助輪)」を取った。 ※「こま」って関西オンリーぽい そろそろこまなしで乗れる様にしなきゃいけないし、人も望んでいた。 フラフラと倒れそうになりながら、私に支えられながら、なんとか家まで帰り付いた。 家に帰ってから、「そういえば、プログラマって職業でもこういった時期ってあるんだろうか。どんな時期がこまを取る時期なんだろ。」って考えた。 先輩から与えられた仕事だけをコツコツとこなした頃から、自分で自分がやらなきゃいけない仕事を見つけ出せる頃までにあるのか... はたまた、顧客から言われた仕様を信じて開発していた頃から、顧客とヒアリングして仕様を煮詰められる様になれる頃にあるのか... 別にこまが付いたままでも何処までだって行けるだろうし、速度も出せるだろう。 実際、ウチの子もこまが付いたままでも結構なスピードが出せる。 しかしながら、自分で「もっと上手く乗りたい

    Big Sky :: こまなし
    hasegawayosuke
    hasegawayosuke 2009/09/14
    さいきん、プログラミングの「こま」って [a-zA-Z0-9] だろとか思ってしまうのは、id:TAKESAKO さんのせい。
  • Big Sky :: バッチファイルで簡易Webサーバを起動する。

    ネタ的にはZIGOROuさんかhasegawaさんのネタっぽいが... @if(0)==(0) ECHO OFF CScript.exe //NoLogo //E:JScript "%~f0" %* GOTO :EOF @end function wsock_ConnectionRequest(reqId) { if (socket.State != 0/* closed */) socket.Close(); socket.Accept(reqId); } function wsock_DataArrival(bytesTotal) { var data = script.Run('GetData', socket, bytesTotal); socket.SendData([ "HTTP/1.1 200 OK", "Connection: closed", "Content-Type:

    Big Sky :: バッチファイルで簡易Webサーバを起動する。
    hasegawayosuke
    hasegawayosuke 2009/08/25
    なるほど// ただ「バッチファイル」言いたかっただけちゃうんかとww