読者です 読者をやめる 読者になる 読者になる

あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

簡易的なuniqメソッド(文字列限定)を書いたので、underscore.jsのuniqメソッドとベンチマーク取ってみました

グリモンを書いてて、uniqメソッドを自前で作ろうと思ったのですが、少し面白い方法を見つけたので、jsPerfでベンチマークしてみました。文字列専用ですが。 自前のuniqメソッド オブジェクトを構築する際に、キーはひとつのオブジェクトに対してユニークに…

たらい回しの塔

たらい回し関数(竹内関数)とProcessing.jsを使って塔を建てる。たらい回しの塔 - jsdo.it - share JavaScript, HTML5 and CSSえげつなさが可視化される。 参考 竹内関数 - Wikipedia

よりSchemerフレンドリなJavaScriptへ in kyoto.lisp

土曜日にKyoto.lispに行ってきました。無謀にもスピーカー枠で参加したので、ちょっとドキドキでしたが、話したいことは話せたので良かったです。スライドは以下に置いておきました。よりSchemerフレンドリなJavaScriptへ 感想 Lispの勉強会というのは、東京…

流行りっぽいツールを組み合わせたミニマルpjaxサンプル書いた

先日、Meteorっていうツールが話題になっていて、いろいろ見てみたんですけど、pjaxいいなぁと思って、今まで実装したことなかったので、Mojolicious::Liteで実装してみました。ついでに流行りっぽいツールを組み合わせてみました。 利用したツール Mojolici…

富豪的プログラミングにおける関数合成の効用

あくまで富豪的プログラミングが許される時という前提付きですが、関数合成がとても有用だと思うので、記事にしてみます。なお、ソースコードはCoffeeScriptで記述しているので*1、JavaScriptはわかるけど、CoffeeScriptはわからないという方は、適宜、Coffe…

JavaScriptでswitchの再発明

先日、Underscore.jsを弄っていて、なんでも関数化したい病にかかり始めたので、書いてみました。when$when関数の返り値がtrueになっても継続するオプションを設けてもいいかもしれない。 追記 default関数っていうのを定義してましたが、予約語と名前が被る…

Underscore.jsの全メソッドを表にまとめてみた

JavaScript Advent Calendar 2011 (フレームワークコース) の9日目です。せっかくの機会だったので、ものすごく気になってたけど、触る機会がなかった、Underscore.jsをいろいろと弄ってみました。配列関係の便利メソッドの集合ライブラリなイメージでしたが…

CoffeeScriptでカリー化関数を書いて遊ぶ

CoffeeScript、食わず嫌いしてたのですが、使ってみると便利で、書いてて楽しいですね。記法が簡潔なので、JavaScriptだとreturn function地獄になるカリー化関数書くのが苦ではなかったので、カリー化関数を書いて遊んでみました。 calc.coffee これがCoffe…

Arrayのconcatメソッドが何気に便利だった

え、今さら?感満載ですけど。配列を結合するメソッドという頭でいましたが、要素を追加して、ついでに要素追加反映後の配列コピーを返すメソッドと考えると結構便利な気がします。Arrayオブジェクトのメソッドは、sortとかreverseとかmapとかfilterとかのよ…

型とかオブジェクトとか基本的なことを理解する

今日は、kanazawa.js v1.2です。もうちょっとしたらしゃべることになるんですけど、大変申し訳ないことに、下書きはなんとか出来上がりつつあるものの、文章を要約して、スライドにまとめる時間はなさそうなので、この記事をプレゼン資料にしちゃうことにし…

reduce関数は結構有用っていうお話

JavaScriptに限った話ではないのですが、reduce関数を持つプログラミング言語がいくつかあります。 JavaScriptに関しては、一応、ECMAScript5の仕様に登場するようで、将来的にはどのブラウザでも使えるようになりそうな気配はあります。 Standard ECMA-262 …

body要素のid属性またはclass属性をJavaScriptのディスパッチャーに使う

最近、実案件で実験していたのですが、仕様が固まってきたのでメモしておきます。JavaScriptを特定のページで実行したいというニーズがあるけれど、head要素内に書くとか、body要素内に書くとか、そのページ限定でscript要素を使って読み込むとかいろんな方…

JavaScriptでIteratorを書く

最近、Wordpress絡みでPHPを書くことが多くて、かつバージョンも5.2だったりするので、高階関数とか無名関数とかが無性に使いたくなります。ということで、JavaScriptでIteratorでも書いて心の平静を保つことにします。 クロージャ版Iterator これが書けるJa…

激しくガイシュツだけど、JavaScriptでiPad(iPhone)用にソース表示ブックマークレットを作った

iPadでプレゼンする時に、ソースが表示できないと不便だという話だったので、散々ガイシュツだけど、iPadでソース表示するためのブックマークレットを作りました。利用技術はJavaScriptオンリーで、シンタックスハイライトは、Google Code Prettifyを使いま…

関西開発合宿でnode.jsとsocket.ioを使った「そう簡単には読ませてあげませんったー」っていうTwitterアプリ作った

タイトルなげぇよ。はい。昨日から、明日の昼まで、関西開発合宿に参加しています。頭ん中さんの、関西で開発合宿へ行ってきたよ - 頭ん中っていうエントリーが前回の様子とのことです。開発合宿初めてだったので、何を作ろうか漠然としながら、とりあえず、…

Let's jQuery - ひとりでできるもん

先週土曜日に、WCAFのイベントでセッションを担当しました。ターゲットはWebデザイナーとマークアップエンジニアなので、比較的簡単な内容です。セッション内容をそのまま加筆して記事にすることにします。では、以下、その内容。 jQueryの流行 jQueryは2005…

node.jsでスクレイピングしてみた

node.jsの記事を最近チラホラ見かけるので、入門してみました。node.jsはサーバー書いてこそって感じなんだろうと思いますが、ネットワークプログラミングの経験がないので、まずは他の言語で簡単にできることをnode.jsで書いてみようという趣旨です。 node.…

JSerが比較コードを書きながらPerlのデータ構造を学ぶ

厳密に言うと間違ってるかもしれないことを感覚的に書いているので、あまり間に受けない方がいいかもしれません。JavaScriptは、自分が触ったことがある言語の中では、最も仕様を理解している言語になると思います。そろそろ真面目にサーバーサイドの言語も…

JavaScriptでclearfixみたいなものを実装する実験

clearfixの記述を見てて、contentプロパティで内容追加して、blockにして、高さを消すとかやってるので、JavaScriptでもできるんじゃね?と思ったら、実際できたので、実用性は抜きにしてメモとして投稿しておきます。 CSSでのclearfixの記述 いろいろあるみ…

配列内包表記

最近、エキスパートPythonプログラミングをぼちぼち読み進めてます。自分には難しい内容で読み応えがあります。Pythonのリスト内包表記っていうのがありますが、これコードを簡潔にしようと思うと、割と自然に使い始める代物で、Firefox限定でPythonからJava…

jstudyで「JavaScriptとLisp」ってタイトルのLTしました

昨日、jstudyの第一回目のイベントがめでたく開催されました。Twitterで見かけて、速攻で申し込んだんですが、せっかくだからLTしたいなと思い、稚拙ながら「JavaScriptとLisp」というタイトルでLTをさせていただくことができました。発表するまで、ネタとし…

Google Font API でWebサイトのCopyrightを書く

という記事を読んで、copyrightくらいだったら画像用意しなくても別に良い気がしたし、最近発表されたGoogle Font APIで少し見た目を整えるだけで十分実用的かなと思ったのでエントリーに起こしてみました。 Google Font APIとは? 19日のGoogleI/Oにて発表…

applyとcallの使い方を丁寧に説明してみる

JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? ca…

File APIとJavaScriptを使って、テキストファイルを加工する便利ツールを作った

昨日、たまたま仕事で、CSV形式の名簿を加工する必要があって、最近はこういう時、JavaScriptを使って加工することがあります。昨日の話で言うと、具体的には以下のようなCSVファイルを、 ほげ株式会社,jdg,jdg@example.com 株式会社ふが,taiju,taiju@exampl…

partial関数は引数の最後に関数を指定できるとネストした時に見やすい

letみたいなものをJavaScriptに実装しようと思っていろいろやってた時に感じたことなんですけど、Pythonとか、Python志向なMochikitなどに導入されているpartial関数は、引数の最後に関数を指定できると、ネストした時にが見やすいと思いました。好みはある…

JavaScriptでLispのような再帰的なリストを作るlist関数を作ってみた

Lispの勉強をする際に、まだLisp慣れを全然してないので、JavaScriptで書くとどうだろう?ということを考えることが多々あります。その勉強方法の良し悪しは置いといて、JavaScriptでLispのサンプルプログラムを書いてみようと思った場合、一番ネックなのが…

Pythonのrange関数をJavaScriptで再帰を使って実装してみたものをGaucheに移植してみた

今朝投稿した、Pythonのrange関数をJavaScriptで再帰を使って実装してみた - あと味の続き。JavaScript版は基本的な関数で実装したので、おそらくGauche(Scheme)にも簡単に移植できると思って取り組んでみたものの、正直、慣れてなさすぎて超大変でした。…

Pythonのrange関数をJavaScriptで再帰を使って実装してみた

Pythonにrange関数という数列を作る関数があるんですが、JavaScriptにもrange関数みたいなのがあると便利かもしれないと思って実装してみました。関数型言語慣れするために再帰で書いたので、あまり長い数列は作れません。 Pythonのfor文 Pythonでは1から10…

メソッドチェーンの作り方

メソッドチェーンはわかりやすくて便利です。jQueryなどではメソッドチェーンが効果的に使えるように設計されているので、jQueryでメソッドチェーン使用している人も多いと思います。このメソッドチェーンですが、作り方を解説するページがあまりない気がす…

ページズーム機能がないブラウザで、画像の拡大を含めたエラスティックレイアウトを実現するサンプルを作った

文字数で幅を指定できるエラスティックレイアウトが好きです。CSSでレイアウトする時、各ブラウザがページズーム機能を導入した今はほとんど必要ないことかもしれませんが、一行あたりの文字数は読みやすい数というものがきっとあると思っています。エラステ…

createElementメソッドが微妙なので汎用的な関数にする

JavaScriptでDOMを生成するとき、document.createElementというメソッドを使いますが、属性の設定とかstyleの設定をしようとすると、縦にひたすら代入文を書き続ける感じになってあんまり好きじゃありません。各種JSライブラリを導入すれば解決できる話です…

最近のJSの発育の良さは異常

最近のJSはすごいね。JavaScriptが第一級のプログラミング言語へ、分散バージョン管理にも注目が集まる - Publickeyわんぱくでもいい、たくましく育って欲しい。 Inspired by 最近のJSの発育の良さは異常 - スチーム速報 VIP

別のページにすでにある用語集を使って、用語にマウスポインタ合わせると用語集にある用語の説明をツールチップで表示するJSサンプル作った

タイトルなげー。APIもDBもない時にこういうことしようと思ったらどうやって実現しようかなーと思ってサンプルを作ってみました。IE、バージョンの古いブラウザは未対応。 前提 こういう用語集のページがすでにあると過程。 grossary.html <html> <head> <meta charset="utf-8"> <title>用語集</title> </head> <body> <dl> <dt class="term">イ</dt></dl></body></html>…

連番振るのがメンドイのでブックマークレット作った

テキストファイルにリストを書いてる時なんかに、文字の先頭に連番を振りたいことがあるんですが、途中で増減とかすると調整するのがメンドイので、ブックマークレットにしました。下記のような感じのテキストを画面真ん中辺に表示されるテキストボックスに…

指定時刻にアラートを出すブックマークレット作った(140字以内で)

最近、Twitter経由でテレビ番組の存在を知り、テレビを見ることが増えてきました。Twitterばかりやってて、メディアの中心がネットになっていると思いきや、むしろテレビの視聴率も上がっちゃってるのが不思議です。15分後とかに見たい番組が始まるって時に…

はてなダイアリーでJavaScriptを実行するためのiGoogleのガジェット作ってみた

キッカケは忘れましたが、昨日、はじめてiGoogleのガジェットを作ってみました。なんだか難しいのかと思ってたら、意外と簡単で、試しに、はてなダイアリーでJavaScriptを実行するためのiGoogleガジェットを作ってみました。一度作ってしまうと、mixiアプリ…

JavaScriptのfor文の中で、カウンタ変数を利用する関数をジェネレートするいくつかの方法

for文の中で、カウンタ変数を利用する関数を作るとき、はじめは必ずハマるであろうことが予想できます。私も実際にハマったことが多々あります。本エントリーでは、for文の中で、カウンタ変数を利用する関数をジェネレートするいくつかの方法を提示したいと…

昨日は13日の金曜日だったので、JavaScriptでJSONと戯れました

ということで、JSONにチェーンソーメソッドチェーンを与えてみる。Object.prototypeを汚しちゃうなんてお行儀悪いけど、仕方ないじゃない、ジェイソンなんだもん。お行儀悪い男の子なんだもん。 Object.prototype.show = function() { if (this.head) { cons…

()()で呼び出せるJavaScriptのネスト関数の活用法を思いついた

関数を返すJavaScriptのネスト関数は、()()で呼び出すことができます。()()で呼び出すネスト関数の活用方法を考えたのですが、考えて出した答えがこれです。 答え var _ = function(x) { return function(y) { var oppaireview = ( x === '・' && y === '・'…

JavaScriptの再帰の回数制限を超える実験をしてみる

JavaScriptで再帰をすると、ブラウザによって再帰できる回数が違います。ブラウザごとに何回再帰できるかを検証する記事がいくつかありました。 各ブラウザのJSランタイムがどこまで再帰できるか試してみた、という。 - muddy brown thang javascriptの再帰…

ウェブサイトに落書きできるようにするブックマークレットを作った

というネタを会社のスタッフ日記に書いた。どちらかというと、あと味向きのネタなのですが、書いちゃったものはしょうがないので、誘導します。ウェブサイトに落書きできるようにするブックマークレットを作った | 波乗りスタッフ日記/Web制作会社サーフボー…

JSONとJSONPの違い

解説は他にもたくさんありますが、私自身も使いはじめの頃、違いがよくわからなかったので。 JSONとは? 汎用的なデータ記述方法です。こんな感じで書きます。 { 'blog' : 'あと味', 'author' : 'jdg' } まさにJavaScriptのオブジェクトですね。*1 JSONPとは…

Lisp脳なFizzBuzzをJavaScriptで書いてみた

最近、JavaScriptに惹かれる理由は、関数型言語の特徴を持つところに原因があるような気がしています。Lispを得意としている人は、Lisp脳なる考え方があるとのことです。興味の源泉に出会うために、Lisp脳を覗いてみようと思い、を読みながら、JavaScriptでL…

遅ればせながらYQLに感動した

遅ればせながら、この前YQLを使う機会があったのですが、これはなんとも素敵なサービスですね。まだ馬鹿の一つ覚えで、XMLとかAtomとかRSSをJSONPにまるまる変換することしかできないですけど、それだけでも十分役立つ。Yahoo!Pipesもすごいと思ったけど、YQ…

JavaScriptのnewって本当にいらない子?

先日、「JavaScriptのオブジェクトについて考察してみた - あと味」を書いてから、chikuraさんからコメントいただいたり、id:dankogaiさんから「404 Blog Not Found:javascript - にはクラスはない」という記事で言及いただいたり、JavaScript: The Good Par…

JavaScriptのオブジェクトについて考察してみた

JavaScriptを勉強しているとオブジェクトとはなんぞや?ということがわからなくなってきます。選択肢が増えれば増えるほど。JavaScriptには、同じように見えて、実は同じではないデータがあります。それらのオブジェクトについて、区別して説明が付けられる…

JavaScriptで日本語プログラミング言語を作る

オライリーの[asin:4873113296:title]を読んでて気づいたんだけど、JavaScriptってUnicodeで書けば予約語以外は全部日本語にできるんですね!オブジェクトもメソッドもプロパティも全部。UnicodeはECMAScript 3rd Edition以降で対応したらしい。IE6でも動く…

1章 JavaScriptの概要 - JavaScript第5版読書メモ

まずは1章から。 JavaScriptの概要 オブジェクト指向のインタプリタ言語。 JavaScriptはPerlとかLispっぽい。でも書き方はCとかJavaっぽい。主にブラウザ上にて動作する。インタプリタが内蔵されてるソフト(エディタ、画像編集ソフト等)でも動作する。 言…

不定期でオライリーのJavaScript第5版の読書メモを書くことにする

続くかどうかはわかりませんけど、不定期でオライリーのJavaScript 第5版の読書メモを書こうと思います。 第1部は読んでいるものの、まったくアウトプットしてないので、たぶんほとんど頭に入ってない。第2部以降はほとんど読んでません。いろんなブログで読…

a要素のclass名にpagetopを指定するとスムーススクロールするjsを書いた

しばらくプログラミングしてなかったのですが、最近またJavaScriptの熱が再沸してきました。AS3を勉強しようとオライリーの詳説 ActionScript 3.0を買うも、アクセス制御指定子が序盤から出てきてめんどくせーってなっちゃいました。ECMAScriptやるなら、や…