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

標準出力をキャプチャする

printで出力された内容をテストしたくて調べてたけどキーワードがよくわからんくて調べるのに時間かかった。IO::Captureでやりたいことができるっぽい。 use strict; use warnings; use IO::Capture::Stdout; my $capture = IO::Capture::Stdout->new; $capt…

nodebrew 0.3.2 Released

GitHub - hokaccha/nodebrew: Node.js version managerテストなしでメンテするのがつらくなってきたのでテスト書こうと思って、内部構造もテストしやすいようにかなり書き直したので自分的にはかなり大きいアップデートだけど使ってるほうはそんな変わらない…

background-sizeがAndroidで動かない

css

retina対応するとき縦横それぞれ2倍でつくってbackground-sizeで縮めるとかやるんだけど、Android2.1とかできかなくてどうしようかと思ってたらベンダプレフィックスついてないだけだった。 -webkit-background-size: 100px 50px; background-size: 100px 50…

オブジェクトの順番が変わる

2011-12-19 - ここはちょっと見せられない var obj = { "00" : "foo", "10" : "bar" }; console.log(Object.keys(obj)); // => [ '10', '00' ] (Node.js, Chrome, Opera) // => [ '00', '10' ] (Firefox, Safari) オブジェクトの順番が保証されないのは仕様…

githubでtarballを取得する

git

今までtag打たないとtarball取れないと思ってたけどhttps://github.com/[usernmae]/[project]/tarball/[sha1]で取れることに気づいた。

console.logのエイリアス

http://ginpen.com/2011/12/16/apply-to-through/ function log() { // console.logが使えればそれで出力 if (window.console && console.log) { console.log.apply(console, arguments); } // consoleが使えなければalert()で出力 else { // alert()は引数…

jsよりcss先に読み込むべし

When using scripts that rely on the value of CSS style properties, it's important to reference external stylesheets or embed style elements before referencing the scripts. http://api.jquery.com/ready/ CSSに依存するJSがあった場合、DOMConten…

スマホへのyoutube埋め込み

スマホのクロスプラットフォーム動画対応とか自分でやろうと思ったら大変すぎるのでyoutubeにあげて埋め込むに限る。方法は2つ。どっちも簡単だけど一長一短。なお、検証したのはiOS4.3、Android2.3(Xperia arc) リンク まず一個目。リンク。 <a href='http://www.youtube.com/watch?v=***'>どうが</a> サム…

LESSにpercentage関数

ここのコードを見て気づいたかと思いますが、LESSの場合にはパーセンテージにするために、100をかけたり、パーセント単位をつけるための記述が必要ですが、Sassにはpercentage()という関数が用意されているので、今回のようなケースでは非常に楽に使うことが…

jquery.mobileのloading

ページ遷移するときにローディングがでるときとでないときがあってなんぞと思って調べた。$.mobile.loadPage.defaults.loadMsgDelayって値よりajaxの反応が早く返ってくればloadingはでない。初期値は50ms。

jquery.mobile.structure.css

jQuery Mobileのページ遷移部分だけ使いたいけどなんかテーマ読み込むと余計なスタイルがついてうぜぇぇってなるんだけどcss読み込まないと遷移の部分動かないし困ったと思ったら、jquery.mobile.structure.cssってのがあった。これは遷移とかのコアのスタイ…

LESSにextendを実装してみた

Less & Sass Advent calendar 2011の14日目です。LESSにextendを実装したので紹介。LESSはSassに比べて機能が少ないです。その中でもよくLESSにはextendがないのが困るというのを聞くので実装してみました。SassのextendについてはAdvent Calendarでも後ほど…

chrome拡張でfile schema

chrome拡張は一応file://でも動く。http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/match_patterns.htmlhttpもfileも全部動かしたいなら、matchesとかpermissionところに、こんな感じで書けばい…

perlで標準入力のコードを実行するときに引数を取る

$ echo 'print $ARGV[0]' | perl hoge Can't open perl script "hoge": No such file or directoryって感じでエラーになるので $ echo 'print $ARGV[0]' | perl - hoge hogeこうするといいらしい。ここに書いてあった。 標準入力から暗黙に渡される。 ファイ…

nodebrew 0.2.0 Released

つくってしばらく放置してたnodebrewを色々変更してみた。https://github.com/hokaccha/nodebrew主に wgetに対応(以前はcurlのみ) ワンライナーでインストールできるようにした ~/.nodebrew以下にnodebrew自信も置くようにした 環境変数(NODEBREW_ROOT)…

wgetでヘッダだけ取得する

sh

curl -Iみたいのがやりくてちょっとはまった。 $ wget -Sq --spider <url>でできるんだけど、これだとどうやら標準出力じゃなくて標準エラーに出力されるらしい。ので $ wget -Sq --spider <url> | grep "200 OK"とかがうまくいかない。ので標準出力にリダイレクトしな</url></url>…

chrome拡張でmanifest.jsonの情報を取得する

MLで見かけたのでメモ。まだアンドキュメントらしい。 chrome.app.getDetails() http://groups.google.com/group/chrome-api-developers-jp/browse_thread/thread/9df59a350bf48734?hl=ja

mochaの--globalsオプション

っていうのが新しく追加されてた。 // t1.js describe('mochaのテスト', function() { it('globalに定義', function() { foo = 'bar'; }); }); // t2.js var assert = require('assert'); describe('mochaのテスト', function() { it('fooがglobalに定義され…

mochaでフロントエンドのテスト

JavaScript Advent Calendar 2011 (フレームワークコース)6日目です。この前のエントリーで予告したとおりmochaを使ったフロントエンドでのテストについて書きます。ちなみにこの前エントリー書いたときは0.2.0だったんですけどすでに0.3.2です。必要なファ…

テストフレームワーク mocha

JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース)3日目のhokacchaです。Node.jsのテストフレームワーク、mochaについて書きます。mochaはTJが新しく作り始めているテストフレームワークです。ドキュメントを見ればできることは大体書いてありま…

Foo.prototype = {}するとconstructorがObjectになる

function Foo() {} Foo.prototype.a = 'b'; var foo = new Foo; console.log(foo.constructor.name); // => Foo これでコンストラクタとれるんだけど、こうするとダメ。 function Foo() {} Foo.prototype = { a: 'b' }; var foo = new Foo; console.log(foo.…

lessのエラーハンドリング

function foo() { var e = { name: 'Error', message: 'hoge' }; throw e; } foo(); node.jsでこれ実行すると node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: hogeこうなるわけなんだけど、エラーの箇所がさっぱ…

chromeのwebkitNotificationsに設定したonclickが一定時間後に効かなくなる

原因がよくわからんのだけどnotificationsに設定したonclickがしばらくすると効かなくなることがある気がする。chrome15。 function notify() { var n = webkitNotifications.createNotification("foo", "bar"); n.onclick = function() { console.log("hoge…

jQueryのanimate scrollTopで困った件

今更こんなのにはまった。スムーズスクロール実装するときに、 $("html, body").animate({ scrollTop: 0 }, function() { console.log("animate end"); }); WebKitだとbody、それ以外だとhtmlにしないと動かないので $('html, body') って書くのが普通っぽい…

jsdomでメモリリークしてる場合はwindow.close()すべし

5000件くらい一気にスクレイピングしたいってのがあって、jsdomでスクレイピングしてたんだけど、メモリの使用量がふくれあがってすぐメモリリークしちゃってどうしようかと思ったんだけど、ググったら同じ人いっぱいいて、window.close()しろって書いてあっ…

node.jsで出力がTTYかどうか判断する

perlでいうと if (-t STDOUT) { say 'tty'; } else { say 'not tty'; } こういうことがやりたくてnodeだとこうするといけるみたい。 var tty = require('tty'); if (tty.isatty(1)) { console.log('tty'); } else { console.log('not tty'); } 1はSTDOUTね。…

node.jsでjson整形するワンライナー

curl http://api.twitter.com/1/statuses/user_timeline/hokaccha.json | node -e 'd = ""; process.stdin.resume(); process.stdin.on("data", function(c) { d+=c; }); process.stdin.on("end", function() { console.log(JSON.parse(d, null, " ")); });'…

less 1.1.5 released

リリースされてた。npmにも。 https://github.com/cloudhead/less.js/commit/ab5af597effc0bea3c7466f0c6f8f3ae2bc7dcae#package.jsonリリーススパンはそんな短くないlessだから色々バグ直ってて嬉しい。細かいChangeLogは見てないけどとりあえず。

jsでarray_chunk

http://php.net/manual/ja/function.array-chunk.php こういうのほしかったので。 function arrayChunk(input, size) { var ret = [] , x = -1; input.forEach(function(val, i) { var y = i % size; y === 0 ? ret[++x] = [val] : ret[x][y] = val; }); ret…

nodebrewをgithubに移した

なんか意外にもいけそうな気がしたのでgithubに移した https://github.com/hokaccha/nodebrew機能追加とか改善点があればどしどしお願いします。