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

JavaScriptの処理時間を計測する(console.time / console.timeEnd)

肝心なところ知らないこと多い...。 console.time と console.timeEnd で挟んだ部分の時間を計測できる。引数にはラベル名を指定できてそのラベルで対応した範囲の時間が計測される。 // Indexing console.time("indexing"); var stream = byline(fs.createR…

2014年を振り返る

このブログに書いた記事を眺めながら1年を振り返ってみました。 なんだかんだそれなりにアウトプットできた1年になったのでよかったと思えるので、質・量ともにもっと上げていける様にしたいと思います。 また来年は公私ともにいろいろ変化する年になりそう…

node.jsで1行毎にテキストファイルを読む - byline: buffered Stream for reading lines

素朴に便利だったのでメモエントリ。 byline $ npm install byline --save npmからインストールして以下の様な形で使える。 var byline = require('byline'); var fs = require('fs'); var stream = byline(fs.createReadStream('/tmp/foo.txt', { encoding:…

仕事納め

2014年も仕事納めということで、お好み焼きともんじゃ焼きを食べるなどした。 大分もんじゃ焼き作るの慣れてきたとふと思った。

redisの型について整理した

redisの型の認識が何気だったので改めて整理してみた。自分の頭の整理用に図も描いたりしたのでせっかくなので掲載。 文字列型 一番シンプルな形。 127.0.0.1:6379> SET key1 value1 OK 127.0.0.1:6379> SET key2 value2 OK 127.0.0.1:6379> GET key1 "value…

REMPチーム忘年会

餃子の様子です。 会社の近くの中華屋さんでREMPチームの忘年会だった。 特にコースなどは頼まず食べたいものをどんどん頼もうスタイルで餃子、ビール、酢豚、紹興酒、ピータン豆腐、レモンハイ、麻婆豆腐...(以下続く)... などと食欲をひたすら満たす感じで…

転置インデックスを利用して検索してみる

n-gram及び、転置インデックス を作ってみたので実際に検索してみます。 ngram や indexing は上の記事で書いた関数がそのまま入ります。 var _ = require('underscore'); // (snip) var search = function(query, n) { var grams = ngram(query, n), firstP…

monochromeというサイトをロリポタッチで作った

ロリポタッチ iPhone版でモノクロ写真ばかり載っけるホームページ作りました。 かの昔、FTPでアップロードしていたことを考えると本当に簡単にサイトが作れるの便利。 monochromeはてなブックマーク - monochrome ロリポタッチ ロリポタッチ - あっという間…

ハンバーグと目玉焼き

お昼ごはんに会社の近くのハンバーグ屋さんへ。ハンバーグは「上に目玉焼きを乗せると美味しい食べ物ランキング」のかなり上位に位置する。 ただ、対抗として白ご飯に目玉焼きを乗せて刻み海苔と醤油をかけた目玉焼き丼がいることは忘れてはいけないし、その…

JavaScriptで転置インデックスを作る

先日ngramに分割する処理を書いたので次は転置インデックスを作ってみます。 今回は完全に単語の位置まで記録するものとし、 {'晴天': { '0': [ 3 ] }} といった具合で2-gramで分割された単語とそれに対応する文書とその位置が管理されるものとします。上の…

JavaScriptでn-gram

素朴に書いてみようと思って書きましたよ。のメモ。 var ngram = function(words, n) { var i; var grams = []; for(i=0; i<=words.length-n; i++) { grams.push(words.substr(i, n).toLowerCase()); } return grams; } var text = "Hi. 本日は晴天なり。"; …

ロジックゲートをnode.jsでシミュレーションする

Rubyで2の補数の話題ぐらいから6年ぶり*1のビット演算の話題。 ロジックゲートをシミュレーションするg8というライブラリがあったので少し触ってみました。 bucaran/g8 サンプル見ればそのままなのですが、一応手元でも試してみました。 なぜか「ぬ」という…

evac - Node.js based simple aggregator

evacというシンプルなアグリゲーターを作りました。個人用途で作っていたのですが、そこそこ形になったのでnpmで公開しています。 よくあるアグリゲータの実装と同様に入力、加工、出力をJSONファイルで定義することでアグリゲーションすることができます。 …

日本橋へ魚を食べに行く

入院していた友達が退院したということで、回復祝いにお魚を食べに行った。 日本橋 墨之栄〒103-0022 東京都中央区日本橋室町2-2-1 COREDO室町1 2F5,000円(平均)1,000円(ランチ平均)03-3548-9917地図や店舗情報を見るPowered by ぐるなび[{"@context":"h…

PushbulletのAPI経由でPush通知する

Pushbullet というサービスのAPIを使ってPushbulletがインストールされた端末(iPhone, Android, PCブラウザ) に向けてPush通知する術をあれこれ調べた際のメモです。 そもそもPushbulletは先に書いた様なPushbulletのクライアントアプリがインストールされた…

Jekyllで記事中にレンダリングされたMarkdownを差し込む

GitHub Pages を利用して静的なページを持つサイトを作るときにJekyllを利用していて、作成したページ中に別ファイルで書いたMarkdownファイルを流し込んでHTMLを作成したいと思ってあれこれ調べたのでメモ。 Jekyllのテンプレートのタグに include があるの…

node.jsで定期処理をさせる

npmにあるcronというモジュールを使うとサーバーでよく扱うcronと同様にスケジュールを指定して定期的な処理を書くことができる。 var CronJob = require('cron').CronJob; var job = new CronJob({ cronTime: "*/5 * * * * *", onTick: function() { consol…

魚を食べる

大学の同級生の入院お見舞いへ行って、お見舞いメンバで東京駅近くでお魚を食べていました。 煮付け頼んだら普段よりデカイと店員さんが言いながら持ったキンメダイの様子です。 友達が退院したらみんなで今度、また何か食べに行こう。

電車通過

Dashingを使って指標を表示させるダッシュボードを作る

業務で見ているパラメータ(KPI的なもの)をダッシュボード的な体で表示させたいなと思ってあれこれ調べると DashingというGemを見つけてこれを使うとパラメータを常時表示させるものをかなりカジュアルに 作れたのでご紹介。 デモはここで確認できます。Herok…

iCalendarフォーマットの予定をNode.jsでparseする

icalというnpmパッケージがあるので、これを利用すると素朴にiCal形式のデータを読み取ってオブジェクトとして扱うことができます。 var parser = require('ical'); var url = "http://〜/plan.ics"; parser.fromURL(url, {}, function(err, data) { for(var…

winstonを使ってみる(node.jsでログを取る)

node.jsでログを取るときにwinstonを使ってみたのでそのメモ。 まずはnpmコマンドでインストール。 $ npm install winston --save で、詳しくはGithub上のREADMEを参照するとかなり詳しくかかれているので、それを参照しながら実際にログを取ってみます。 や…

node.jsで素朴にMySQLへ接続する

素朴 = ORMなどを利用せずに素朴なクエリを1行程度発行したい場合にどうしたんだっけ。と少し調べたのでメモエントリ。 npmのmysqlを利用する。 $ npm install mysql --save あとは、接続→クエリ発行→切断の順で書いていく。 var db = require('mysql'); var…

植田正治のつくりかた

少し前に買って一度全部眺めていたのだけど、改めて昨日から開きは閉じを繰り返してずっと眺めてる。 「三つ子の魂」といい「雀百まで」という。 いったんはまりこんだら、抜けることは容易ではないらしく、 今もって五十年前と同じような写真を撮っているこ…

gulpを利用してmochaで書かれたテストを実行する

定例の2周り遅れエントリ。Castoや、STORYBOARDSではtask runnerにGruntを利用していたのですが、glupも触ってみようということで使ってみました。 最近はnode.jsでちょっとしたツールを書いていたりすることが多く、そのテストにmochaを使って書いていたり…

node.jsでヒアドキュメント

Node.jsでプログラムを書いている時、JavaScriptでヒアドキュメント書きたいとき*1が稀にあって、そんなときはnpmパッケージのhereを使うと実現できたりします。 $ npm install here --save した後に、 var here = require('here').here; var testDoc = here…

sails+MongoDBでJSONベースのAPIを作成してみる

先日からAPIサーバをsailsとMongoDBを使って作ってみようとあれこれしてみたのでその際のメモです。 sailsの特徴に 最初からsocket.io(websocket)が利用できる JSONベースのAPIが簡単に作れる があるのですが、ここでは後者のJSONベースのAPIを作ってみるこ…

sailsでsocket.ioを無効にする方法

最近sailsを使ってAPIサーバを書いて見る試みをしていたりするのですが、sailsでは sails new コマンドでプロジェクトを作成するとデフォルトでsocket.ioが有効になるので、これを無効にする方法を調べたのでメモ。 結論としては .sailsrc というファイルを…

カラメルお取り寄せ会に参加してきましたよ

会社で開催されたカラメルお取り寄せ会に参加しましたよ。のエントリー。 今回は秘密のケンミンショーでも紹介されたことのある金沢郷土料理の老舗 ふくら屋の惣菜缶詰のお取り寄せということで、各自白ご飯やおにぎりを持参して参加してきました。缶詰の図…

TOKYOAMEDAYO - 東京が雨予報ならYo

YoのAPIキーを取ってみたので試しに何か作ってみようということで、 東京地方に雨の予報が出ていたらYoしてくれるアカウントを作ってみました。 TOKYOAMEDAYO というアカウントに利用中の端末からYoしてもらえれば以降、毎朝7時30分に東京地方に雨の予報が出…