(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

JavaScript

JavaScript の Promise を返す関数を直列で実行したいので Pinscher というライブラリを作ってみた。

ayato0211/pinschergithub.comREADME すらまだ書いてないけど、とりあえず使えるものができたので npm にだけ登録してみた。 追記 promiseを順番に実行する - 素人がプログラミングを勉強していたブログjavascripter.hatenablog.com 3 秒で不要になった。 Pr…

パーフェクト JavaScript 読んだ

良い本だった。この本についてのレビューは色んな所にあると思うし、僕があまり何かを書く必要はないかなって気はする。 だけど、まぁちょろっと感想とか最近の JavaScript 周りについての所感というか、僕が感じているところについて合わせて書いてみる。目…

espower を読もうとしている

つらい。ひょんなことから JavaScript AST を操作出来たらちょっと個人的に作りたいものが簡単に出来るじゃん!って発想に至ったんだけど、そもそも AST をどうやって操作するのっていうところでそういえば power-assert は AST を元に変換しているんだよな…

コラッツの問題その3

まだやってたのかって感じだけど、たぶんこれが最速。まず、こういうものを定義します。 macro collatz_calc { case { _ ($from:lit, $to:lit) } => { var from = unwrapSyntax(#{$from}), to = unwrapSyntax(#{$to}), max = 0, val, result; function colla…

コラッツの問題その2

いや、遊んでたら普通に昨日の記録超えた…。 console.time('xxx'); var max = 0, val, result; function collatz2(n){ var m = n, count = 0; while(m !== 1){ count++; m = (m & 1) ? (m<<1)+m+1 : m >> 1; } return count; } for(var i=2; i<=100001; i++)…

コラッツの問題

11月16日いろふうらがみ迎撃会 - connpass なんとなく久しぶりに id:irof せんせーに会いたくなったので、重たい腰をあげて行ってきた。なんか Twitter 見てない間に irof せんせーが本を書いてたらしい。 というか、参加登録した後に、イベント主旨が若干変…

Browserify に対して誤解をしていた…

これ、良く読んでなかった僕が悪いんだけど、 Node.js*1 のようにブラウザでも require を使えるようにしようっていうライブラリで、だからそういうとき以外は必要ないんですね……。 Node.js の中にいる間*2は基本的に使う必要がないし、ましてライブラリを書…

Watchify と gulp.watch の相性が悪い?

次のような gulpfile.js 書くと watchify は動くけど、 gulp.watch の方は動かない。 数日悩んだけど、諦めて brawserify のタスクを動かす方で諦めている。 watchify で監視対象にしたファイルは watch 出来ないぽい?よく分からない。 function scripts(wa…

sweet.js を少し使ってみた。

この 1 週間、寝不足になりながらも毎夜毎夜遅くまで sweet.js というものを触っていた。 sweet.js このライブラリ端的に言えば、 DSL でマクロを書いてコンパイルすることで JavaScript に変換出来るという優れもの*1。マクロは Scheme の syntax-rules と …

Cycle Generator

なるものを書いてみた。 Lazy.js を使って。 var _ = require('lazy.js'); var logger = function(x){console.log(x);}; var cycleGenerator = function(args){ var _args = args || [1,2,3,4,5], _size = _args.length; return _.generate(function(i){ ret…

Lazy.js を紹介してみる

以前、 underscore.js というものを紹介したことがあったのだけど、今回は Lazy.js という underscore.js like なライブラリを紹介したいと思う。ホームページはこちらから。 Lazy.js - v0.3.2インストールはコマンドプロンプトで npm install lazy.js --sav…

最近のナウい感じの Web 開発用テンプレート作ってみた。

ayato0211/my-gulp-template ayato0211/my-gulp-template · GitHubとりあえず、まだ改良の余地が沢山あるし、肝心のテストとか CSS 周りはまだ手がついてないけど、とりあえず gulp と browserify(watchify) 周りをちゃんと使えるように整えた。あと jade の…

コールバック地獄とプロミス、どちらがお好きですか?

朝から gulp で書いたタスクを grunt で書き直しさせられたのが僕です。 ところで、 JavaScript でよくある callback hell な処理を僕もつい先日書いてて辟易していたんですが、今日になって隣の台湾美女に「こんなの誰も理解できないよ」と英語で指摘されま…

AngularJS でマトリクス状のタイルを消したり足したり

HTML の構造と作り方で悩む今日このごろ。発端は仕事で最近流行り(?)マトリクス状*1のタイルを並べるという要件があって、それを動的に追加したり削除したりできないといけなかったんだけど、「マトリクス状」に要素を並べる方法はインターネット初期から色…

AngularJS を Rails プロジェクトで使う場合は precompile で uglify しよう

Beryllium Work: Tips on Rails 4: Assets Compression with Angular.js なんかよく分からないけど、 uglify しないと動かないらしいので、 uglify しようっていうだけ。

$ (ドルマーク) の意味は

JavaScript 読んだり書いたりしてて最近悩むことがあって、 JavaScript では関数/変数名としてアンダースコア、ドルマークの使用が許されているのは知ってるし分かるんだけど、そのライブラリの作者がどういう意図をもって $ を使ってるのか検討もつかないと…

JavaScript の Destructuring

Destructuring assignment - JavaScript | MDNまだドラフトだし、 Firefox しか対応してないけど将来的にちゃんと実装されそうでちょっと期待している。

AngularJS はじめました

僕の人生の中で初めて仕事で必要だからという理由で仕事中に勉強することになっている。 egghead.io - Learn AngularJS with Tutorial Videos & Training @eggheadio なんとなくビデオみて若干の雰囲気とかはつかめた。既に Angular で書かれたコードがある…

テスタブル JavaScript 読んだ

正直に感想書けば期待値以下で僕の中での「テスタブル」という言葉の意味と本の内容とのギャップが少しあったかな、というところ。 如何にしてテストしやすいコードを書くのか、どうやって保守していくのか、そういう感じの濃い内容を求めていた気がする。た…

カルーセルスライドのjQueryプラグイン、Owl Carouselを使ってみた

Owl Carousel便利。公式サイトにはデモもちゃんとあるし、さくっとやりたい人にとっては結構便利だと思います。 少し言いたいことがあるとするなら、カルーセルといいつつ回転しないこと。要するに両端まで行くと、そこで止まっちゃう。カルーセルちゃうやん…

関数を返す関数で

昨日、ぼけーっとプログラム書いてたらバグを作りこんでしまって、「ああ、これはこういう挙動するんだ」って勉強になったのでメモ。以下のようなボタンがふたつあったとする。 button#hoge | HOGE button#fuga | FUGAで、hogeボタンを押したら、fugaボタン…

Rails4でキャッシュが効いてしまって、304 not modified.が返ってきてしまうとき

やろうとしていることがそもそもRailsの書き方として間違っている気がしないでもないんだけど、ページを読み込んだ後にjQueryでコンテンツを表示したり隠そうとしたときにコンテンツが変更されていない場合キャッシュされてしまって、304 not modified.が返…

CoffeeScriptでProcessing.jsが書けるはずなので試してみた。

ほい。 JavaScript Quick Start | Processing.js の Writing JavaScript-only Processing.js code あたりを参照。まずHTML5でcanvasを用意します。 / Slim doctype 5 html head title "Processing.js Test" script src="processing.min.js" script src="jque…

半角英数字しか入力できないテキストボックス

今の時代にこんなものを作らないといけなくなるなんて思いもしなかった。昔、IE*1でしか動かない業務システムで、jQueryを使ってはいけない縛りで、更にStruts1.xを魔改造したオリジナルフレームワークという、今にして思えばゾッとするようなものを保守開発…

JavaScriptのArray.prototype.filter()が最高にロックでドハマりした。

jQueryのfilterと全然違って泣きたいと思った。 最初、jQueryと同じだろって思ってこう書いていた。 coffee> array = [1..10] coffee> array.filter -> @ > 5 みたいな。filterの中の@(this)は評価対象だと思っていた。つまり、この場合だと1~10の値を期待し…

jQueryでチェックボックスの一覧からチェックのついてるやつだけ取り出すの。

$('input:checked') はぁ…jQueryのセレクタ一式勉強しよう。これ教えてもらうまで一生懸命$('input').filterとか書いてやってた…。しかも、全然取れなくて困ってた…。 ていうか、正規表現でセレクタ書けたら便利なのになーと思ったり思わなかったり。

アコーディオンパネルの実装

たまにはjQueryのお勉強。 jQueryの仕組み等々なんとなく理解出来てきているので、試しに実装してみた。HTMLこんな感じ(slimだけど)で書いておく。 #accordion .sub-title(data-target="#content_1") | アコーディオン1 #content_1.content .sub-title(data-…

JavaScriptのコンストラクタ関数の使い勝手が最高に良くないと思うので考察というか試行錯誤

JavaScriptのコンストラクタ関数が嫌いです。って話は前に少し書いた気がする。理由は単純にnewを書きたくない、というかnewの有無で意味が変わるってそもそも相当アレな気がするし、Booleanコンストラクタに至ってはnew使わない方がいいとか意味不明だし、…

CoffeeScriptでBrainf*ckを書いた

Rubyで作る奇妙なプログラミング言語を読んでいたら、書きたくなったのでRubyじゃなくてCoffeeScriptで書いた!! String.prototype.to_array = -> this.split('') brainf_ck = -> that = {} tokens = [] jumps = {} that.parse = (src) -> tokens = src.to_ar…

開眼!JavaScriptを読んだ。

薄い本なので、さくっと読めました。とりあえず、どういう本かというと JavaScriptのデザインパターンや、JavaScriptによるオブジェクト指向プログラミングの本ではありません。良いJavaScriptの特徴を悪い特徴と区別しているものでもありません。JavaScript…