LDRがなくなるとのことがなくなったけど俺用フィードリーダー作った

mizchiさん(LDRがなくなるとのことで俺用フィードリーダー作った - mizchi's blog)のパクリです。はい。実際LDRがなくなると、いずれは他のフィードリーダーも終わっていくんじゃないの? という不安がある。 なので、ローカルで動くものを持っておくのも仕…

Tatsumaki::HTTPClient で Pixivにログインする

メモ的に書きます。ので、やっつけです。AnyEvent::HTTP で pixivにログインしようとする際に recurse を指定しておかないと、/login.php にデータをポストした後、自動的に Loation ヘッダが示すURLに移動しようとします。 が、Content-Lenghtなど を保持し…

はてなブログおみくじ2014

はてなブログおみくじ2014今年はちゃんとできるかな

引数にオブジェクト(ハッシュ)を想定していて、想定していない型の値を渡してもエラーが投げられないこともある。

function F (opt) { this.a = opt.a } function test (opt) { try { console.log(new F(opt)) } catch (err) { return console.error(err) } } test() // [TypeError: Cannot read property 'a' of undefined] test(null) // [TypeError: Cannot read proper…

filed使うとスタティックファイルを送るサーバが簡単に準備できるのでいいですね

※ 追記しました (2013.09.01)WebWorker とか HTML5のFile API のテストをしたいときに使いますhttps://github.com/ishiduca/node-static-server $ npm install https://github.com/ishiduca/node-static-server/tarball/master -gすると `static-server` コ…

new (stream.Transform) してみた

夏コミが終わったので、node.js のバージョンを v0.10.15 にした。 ので、Stream2 を使えるようになりました。 なので、早速(というか今更)Stream2 を触り始めてる stream.Transform stream.Readable と stream.Writable は Stream1 からあるので(API変わ…

console.logの出力結果のテストってどうやってるんだろう?

実際にはテストしやすいように出力する部分と出力する内容を分離すればいいんだけど、直接出力する場合ってどうやってるんだろうか? var QUnit = require('path/to/qunit-helper').QUnit; var response = {}; response.log = function log () { console.log…

FizzBuzz問題をstreamで解く

動機的なもの 別に Stream である必要はないんだけど、Nodejs でデータを扱うなら Stream を通したいですよね! pipe 使いたいですよね!! (countStream).pipe(fizzBuzzStream).pipe(process.stdout); コード的には上記のように書きたいので、とりあえず機…

ReadableStreamのpipeの挙動をテストする

先日の TDDBC1.0 の写経お題「FizzBuzz」でしたが、JSer(というか NodeJSer)なら Stream 実装するのも1つのやり方だと思います。readableなStreamで「1, 2, Fizz, ...」というデータを流して、writableなStream(例えば、process.stdout)で表示させる、…

TDD Boot Camp 長岡 1.0 に行ってきました #tddbc

関連リンク TDD Boot Camp 長岡 1.0 TDD Boot Camp(TDDBC) - TDDBC長岡1.0/演習 step by step: TDD Boot Camp 長岡 1.0に参加してきました! #tddbc 主催者の @masaru_b_clさん。講師 @t_wada さん。ならびに TA、参加者、スタッフの皆さんお疲れ様でした。…

クライアント・サーバーでバリデーションの仕組みを共有したい

https://github.com/ishiduca/js-valid サーバーとクライアントの両方で同じバリデータとスキーマを使いたい 型チェックは既存のライブラリ(お好みの)に任せたほうが楽(な気がする) 例えば、undersocore.js のようなサーバーからもクライアントからも同…

オブジェクトのキー(プロパティ名)に関数

知らなかったんだけど、常識なんですか? var dbl = function (n) { return n * n; }; var o = {}; o[dbl] = 2; console.log(dbl(o[dbl])); // 4 追記 @ishiduca それって関数(に限った話じゃなくオブジェクト全般もそうですが)、単にstringifyされてるだけ…

Niigata.LL で JSでTDDをどう実践しているのか をトークしました

Niigata.LL ATND NiigataLL by dictav ポータルサイト ポータルサイトの方を見てもらうとわかりますが、VBAとかPowerShellとかもあって面白かったし、飛び入りで来てトークしてくれた方もいて面白かったし、PHPを話す人が居なかったのはなにか陰謀があったん…

モジュール側(呼び出し先)から実行スクリプト(呼び出し元)のディレクトリのパスを獲得する

こういうのを ./app.js var path = require('path'); var waf = require('w-a-f'); var wf = waf(); wf.use(require( __dirname + '/middleware/warn' )()) .use(require( __dirname + '/middleware/nyan' )()) .use(require( __dirname + '/middleware/guu'…

http.ServerResponse のフックでログを吐かせる

res.end(...) 書く度に log.write(...) したくない。 というか、自動的にやってほしい。 var path = require('path') , fs = require('fs') , http = require('http') , moment = require('moment') ; function createSimpleLog (ws, display) { ws = ((ws |…

Node.jsで複数の 'Set-Cookie' を設定する

メモ。 httpServerResponse.setHeader('Set-Cookie', [ "KEY1=VAL1; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" , "KEY2=VAL2; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" , "KEY3=VAL3; path=/; expires=Sat, 34 Nov 3013 08:34:39 GMT" ]); ht…

readStream.pipe( duplexStream ).pipe(writableStream) してみた

Re:node.jsでストリーミング的な - .blog これ書いた後に HTTP_Request.pipe(MyDuplexStream).pipe(HTTP_Response); させたくなった。 実際には、HTTP_Request.on('data')時のデータをそのまま HTTP_Responseに流すわけじゃないのでデータを変換するストリー…

Re:node.jsでストリーミング的な

node.jsでストリーミング的な - 四角革命前夜インプット(fs.ReadStream)もアウトプット(http.ServerResponse)もStream実装だし、pipe使うのが楽じゃないかと思った。 こんなかんじでどうですかね? var http = require('http') , url = require('url') , pat…

関数の書き換え

知らんかったのでメモ use strict; use warnings; sub puts { print "@_\n" } my @args = qw/Panty and Stocking with Garterbelt/; puts(@args); { no strict 'refs'; no warnings 'redefine'; my $orgin_puts = *{'main::puts'}{CODE}; # local *main::put…

Niigata.pm 居酒屋LT 2012 秋の陣でのんできました #niigatapm

お酒以外ですけど。 Niigata.pm 居酒屋LT 2012 秋の陣 : ATND Niigata.pm 居酒屋LT 2012 秋の陣 に参加しました #niigatapm - hayajoのはてなブログ Niigata.pm 居酒屋LT 2012 秋の陣に参加したです - ミントフレーバー緑茶 use parent qw{ Hachioji.pm } な…

Re: node.jsで行処理

これ。node.jsで行処理 - NullPointer's Blog リンク先の実装は fs.createReadStream のインスタンスのラッパー。 これって fs.createReadStream を拡張した形で実装できないかなと思って実装試しました。結果、**イケてません**。each-line.js 'use strict'…

MongoDBドキュメントのキー名に "." が入ってると怒られます。

JSONのつもりでいたけどそうじゃなかった "use strict"; function Tags () { this.tags = {}; return this; } (function (tp) { tp.reg = /#([^#\s\(\)\[\]]+)/g; tp.index = function () { return Object.keys(this.tags); }; tp.map = function () { for (…

Niigata.pm tech talk #2 がありました

teck talk #2 が開催されてから一週間が経ちました。 タイミング外してるとは言え、(発表しなかったとは言え&懇親会見送りとは言え)そのレポートです。 (内容に誤解があることがありますので、ツッコミよろしくお願いします)概要はこちらから Niigata.p…

Niigata.pm 決起集会がありました

Niigata.pm 決起集会Niigata.pm が正式にpm.orgに登録されたので、何かやろうということでLT大会と飲み会です。(また写真撮ってない...) LTのメモ (初参加ではない方の自己紹介は割愛) mazhulin さん 質問たくさんしてくれました 僕的に丁寧な回答出来な…

横断検索アプリのあーきてくちゃっぽいもの

横断検索(メタ検索)な psgiアプリを再制作していて、大分構成が変わったので比較のメモ現物のコードは https://gist.github.com/2698475 Meta::Doujin::Search - WebSocket(Web::Hippie) + Dancer + Twiggy — Gist にある。まだα版もいいところだけど。 XM…

node-ws-multi-proxy 触った

ので、メモ。 subtleGradient/node-ws-multi-proxy · GitHub There are some WebSocket servers that only support a single connected client at a time. You may want to connect multiple clients to that same server. This lets you do that. まだモジ…

FileAPI とか WebSocket とか触りだしている

先週くらいからだけど、それらをゴニョゴニョするのに静的な HTML とか JS のファイルにコードを書いてる。 そういう時に静的なファイルを送るサーバーと、WebSocket通信できるサーバーが最低限必要になるし、その最低限をやるのに簡単なテンプレートなサー…

AnyEvent::HTTP::CookiesではなくAnyEvent::HTTP::Cookies::Unit の話をしてきました #niigatapm

Niigata.pm tech talk #1では AnyEvent::HTTPで使ったCookie情報 あるいは他のクライントで使ったCookie情報を相互に再利用できたらいいよね っていう話をしてきました。 - 外部WebAPIを利用してゴニョゴニョというのは、よくある(?)ケースだと思うけど、…

Niigata.pm 始まりました

Niigata.pm tech talk #1 : ATND http://atnd.org/events/27359これまでの MeetUp(という飲み会)や居酒屋LTや、NDSでの発表を通じた地道な活動を経て(主に @neko_gata_s さん)正式に Niigata.pm が発足しました。 発足したのは本当に嬉しいことですし、…

WebSokectライブラリの「ws」を使ってみた

node.jsのライブラリでWebSocketを実装しているwsを実際に使ってみた時のメモ。 実際には WebSocket チャットなサービス。 Google Chromeでしか試してない 構成 app.js : チャットアプリ client.js : ターミナルからチャットするためのクライアント。ブラウ…