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

(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…

_.memoizeを読んだ。

読んだ。 普段からコードリーディングする方じゃないけど、メモ化の実装が気になったのでunderscore.jsのmemoize実装を読んだ。 // Memoize an expensive function by storing its results. _.memoize = function(func, hasher) { var memo = {}; hasher || …

JavaScript: The Good Partsを読んだ。

読みました。昔から苦手意識のあったJavaScriptだけど、この本を読むことによって面白い言語だなって思えるようになりました。 HaxeとかTypeScriptのようなaltJSだと、JavaScriptを勉強する意味があるのかわかりませんが、CoffeeScriptを書くなら普通にため…

JavaScriptのapply呼び出し

この前、Underscore.jsについて書いた。 Underscore.jsがちょっと便利だったので紹介してみる。 - (define -ayalog '()) このときzip関数を紹介していて、それの機能のひとつとしてzip.applyを紹介してしまった。 これ実はapply呼び出しという、JavaScriptの…

Underscore.jsがちょっと便利だったので紹介してみる。

数日前@naoiwata師匠に「JavaScriptにパターンマッチってないですよね?」って聞いていたら「Underscore.jsならあるかも」みたいなことをそそのかされたので少し触ってみた。Underscore.jsは関数型プログラミングをしたい人のための軽量ライブラリだという認…

JavaScriptもしくはCoffeeScriptの連想配列でkeyに変数を使いたい

簡単なTipsです。 _data = {} _data[key] = "value" みたいな。たったこんだけだけど、普通に書こうとするとできないので地味に大事。どうでもいいけど、「coffee」って日本語入力で打つと「こっふぇえ」ってなるので可愛い。

CasperJSをインストールして遊んだ

CasperJSというのが可愛いよ、と@naoiwata師匠より教えてもらったのでちょっとスクレイピングに使ってみたいと思います。 準備 Download | PhantomJS ここを参照しながら、まずはChasperJSが依存しているPhantomJSをインストールします。 $sudo apt-get upda…

Railsでフォームを非同期で送信して更新処理を行う

タイトルママです。 Railsアプリを書いていて、画面遷移を起こさずに更新処理を行って画面にも反映させたかったのでざっくりやってみた。*1例として適当に簡単なアプリケーションを作りたいと思います。 rails new test-app rails g model user name:string …

CoffeeScriptはじめました

Railsアプリケーションを書くときに、JavaScriptを書くことがある場合だいたいCoffeeScriptを書くことになると思います。ご多分に漏れず僕もCoffeeScriptを書くことになります。TypeScriptとかHaxeとか、altJS色々ありますけどRailsのエコシステムに端から組…

最近足りないなって思うこと。

スキル的な意味で。基本的にフロントエンドと呼ばれるような画面周りを作りこむ技術力が僕には足りない。 足りないと言いつつ、それを極めたいとかあまり思わない。むしろ、JavaScriptという概念に触れるのを嫌厭している。でも、最近AltJSという概念がそれ…

静的なWEBサイトを開発(?)するときに楽をする為に

やったこと Jadeで書いたソースコードを保存したら自動でコンパイルして、自動で生成したHTMLを適当なブラウザで開く&自動でコミットする。 普通にHTML書いているだけなら、上書きする度にCtrl+rをブラウザで押して更新すればいいけど、テンプレートエンジン…

JSエラー:コメントが終了していない

不思議なんですねー。 IEで動作確認してて、エラー出てくるけど エラーの"ライン"と"文字"なんて全くあてにならなくて。しかも問題のファイルが無駄にでかくて、jspだったんだけど その中に直接scriptタグあるし結構長かったから そこに問題があると思ったん…

JavaScriptとevalな関係

昨夜のTweetをちょっと頭の整理がてら見直しつつJavaScriptについて理解を深めたいと思う。のだよ。ことの発端。ということで、とりあえずまとめた。 深夜のアホの為のJavaScript講座-evalとparseIntについて-後から追記する。。。