c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programmingに分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

JavaScript

OCamlでJavaScriptが幸せ

ML Advent Calendar 2016 - Qiita 12/11參加。 JavaScriptと云[い]ふ言語に變換[へんかん]する言語は沢山[たくさん]在った。活溌[かっぱつ]に活動してゐるものは未[ま]だ多いものの、多勢はTypeScriptやElmに流れたやうだ。TypeScriptの型systemは軈[やが]て…

JavaScriptのclassでprivateとprotectedを実現する

JavaScriptには古くから自然なclass構造が在る。ECMAScript2015では簡単な構文糖が附いた。 多くの他の電算機言語に於けるclassには 1. 委讓delegationの役目 2. 型表示の役目 3. 識別子のscopeを限る役目 が有る。一方JavaScriptのclassには 1. 委讓delegat…

JavaScriptで描画するページの初期値をページに埋め込む

SPA (single page application) なりなんなり、データからJavaScriptで描画し画面を更新してゆくときに、初期値をどう受け取るか問題になることがあります。ソフトウェアとして一番単純なのは、ページを受け取ったあとにサーバーとXHRなりで通信して受け取る…

PHP CLIにて、標準入力からストリームが與へられてゐるかだうか判定する

PHPはわりと便利で、簡単なスクリプトを書くのにも不自由しない。「PHPが動作する」ことを前提にしたシステムでは、PerlやRubyやPythonを導入したり学習させたりせずに、PHPでスクリプトを書いてしまへる。 #!/usr/bin/env php

ES6を使ふ。今直ぐ

node.jsとio.jsだが、node.js側が譲歩して、io.jsがnode.jsに戻るかもしれない。またnode.jsでもES6が少しは使へるやうになってきてゐる。Promise等[など]だ。ndenv (node-build) もio.jsに対応したが、それでわたしはnode.jsを使ひ続けてゐる。 AltJSでなく…

Rubyにeach_with_selfといふメソッドは無い。JavaScriptには有るのに

JavaScriptではforEach()などのループにthisが渡される。要素の番号も一緒にわたってくる。 var a = [6, 5, 4]; a.map(function (elm) { return elm * 2; }). forEach(function (elm, i, a) { console.log([elm, i, a]); }); // [ 12, 0, [ 12, 10, 8 ] ] //…

コメントでJavaScriptに型注釈を書き実行時に自動で型検査をする

此の記事はNode.js Advent Calendar 2014の18日目です。昨日はSails.js と Vue.js で API ファースト + リアルタイムな Web アプリケーションをさくっと作るでした。明日は id:slowquery さんです。io.jsとは何故ですか。Proxyが使へればなんでもできさうな…

更新したgulp-sshが余計な機能をつけた挙句動かないので、SSHでコマンドを打つのを自作した

更新したgulp-sshが余計な機能をつけた挙句動かないので、SSHでコマンドを打つのを自作した。gulp-sshは中でssh2を叩いてゐる。それを直接使ふ。gulp-sshは捨てた。 /* global -Promise */ /* jshint node:true */ 'use strict'; var Promise = require('blu…

JPEG, PNG, GIFを一括でlossless最適化する

故有って複雑なdirectory構造の下、大量のJPEGとPNGを最適化することになりました。めんどくさいので自動化しませう。 Web designerの方は、いつもやってる事かとおもひます。 基本的に、それぞれの形式に合はせてツールを選んでコマンドを叩いてやればいい…

gulp.srcがちゃんと思うたpathを読んでるかdebugする

もっぱらGulpを使ってゐます。或いはmakeかRake。 Gulpでは、gulp.src() でpathを指定すると、そのfileをstreamとして読み出してくれ、それを pipe() の連鎖で処理していって、pipe(gulp.dest()) でfileに書き出します。gulp.src() にはnode-globの記法を使…

PHP で V8js を使ひ JavaScript を実行する

PHP で JavaScript を実行したい。裏で node.js を動かすと云ふ方法がある。毎回 node command を走らせてるとバカだから、裏で node.js の server を立ち上げておいて、其所と socket なり HTTP なりで通信する。めんどい。 其所でPHPから直接V8を呼び出す…

PhantomJSで簡単に非同期のtestを行ふ

JavaScriptは基本非同期で、callbackだったりevent drivenだったりする。最近はPromiseやgenerator (yield, async/await) も出てきてるが、此れも非同期だから、非同期処理を待つ事は考慮に入れなければならない。testを書く時も、当然個々のtest caseが、ほ…

JavaScriptで引数名から自動でDIする

疲れたのでJavaScriptでinjectionするものを書いた。 AngularJSを使ふのに結局失敗して、Polymerを使ってゐる訳だが、AngularJSには引数名を適当なものにしておくと、ちゃんと其の引数名に対応する値が渡される素敵な仕組みが有ると云ふ。Function.prototype…

JavaScriptで「普通に」継承する

軈てmoduleやclassが使へるやうに成れば此の記事は無駄に成る。さっさと無駄に成りたい。_extends()を書いた。JavaScriptで継承をする実装は世に星の数程有る訳だが、実はcodeを読んだ事が無い。継承が好きではなく殆どやらないし、やるにしてもJavaScriptの…

O(log(n)) の String.prototype.repeat (JavaScript)

C言語歴が無いものでbit演算を殆ど使った事が無かったから。冪乗のalgorithmだ。JavaScriptの整数値は最大で32bit (桁) しか無いけどね。 String.prototype.repeat = function (times) { var r; if (times <= 0) { return ''; } r = this.repeat(times >> 1)…

ES.next Promiseが未だ無い時にQで代用する

追記20140324 Bluebirdを使おう。 if (!global.Promise) { global.Promise = require('bluebird'); } 或いは <script src="bower_components/bluebird/js/browser/bluebird.js"></script> で済む。 cf. petkaantonov/bluebird https://github.com/petkaantonov/bluebird Chromeには目出度くPromiseが実装され、Operaにも降りてきました…

Factor で階乗。然して再帰に就いて抄

連鎖性 concatnative のprogramming言語の一つFactorに就いて書いた。 cf. 関数合成型 ( Forth 系) 言語 Factor への入り口 http://c4se.hatenablog.com/entry/2013/12/26/044415 幾つか間違ってゐる。例へば変数はstaticなものもdynamicなものも使へた。兎…

mruby で libuv を試せなかったから Vert.x with JRuby をやる

Ruby Advent Calendar 2013 17日目です。昨日はRuby - socketライブラリを使ってwebサーバーを作ってみる - Qiita [キータ]でした。おおうっ! blocking I/Oだ。 もうすぐRuby 2.1も有るな。 最近node.jsばかり触ってゐるので、node.jsの核心であるlibuv htt…

他言語から見た Elixir (macro, protocol, binary構文)

@udzura さま(〃l _ l)?? さっちゃんですヾ(〃l _ l)ノ゙ (憤怒の相直されました(〃l _ l) Elixir Advent Calendar 2013 14日目です。昨日はElixir - Sigil大好き!一番好きな機能です。 - Qiita [キータ]でした。あーRubyの。独自定義出来るのか、ふうむ。…

node.jsでChild Processと大量のdataをやりとりする問題

Node.js Advent Calendar 2013 11日目です。昨日はnazomikanさんのjadeを知る - 株式会社ネクスト エンジニアBlogでした。 さっちゃんはHamlよりもERB (erubis) を使い、SassよりもScssを使ふ人間ですが、node.jsではいちおうjadeです。あ、此れがjade + les…

node.jsでdirectoryを再帰的に強制削除 (rm -rf)

追記 2015-05-03 delといふライブラリを使ふと便利だ。glob指定ができる。使ふべきだ。 cf. del https://www.npmjs.com/package/del node.jsのFile System moduleには、directoryを再帰的に扱うAPIが無いから、自分で再帰を書く。然も遅延させて再帰するから…

node.jsでCPUを使う重い処理のlibrary (child process使い) を1 fileで作る

追記 2013-12-11 問題と対策を書きました。 node.jsでChild Processと大量のdataをやりとりする問題 http://c4se.hatenablog.com/entry/2013/12/11/231318 node.jsでnon-blockingなのはIO丈なので、single threadのnode.jsでは、重い計算関数は矢張り他の処…

node.jsで非同期にdirectory中の全てのfileを読み込む

fs.js fs.readAllFile(directory, callback) /** * Extends standard FileSystem module. * * @module fs */ var fs = require('fs'), path = require('path'), Q = require('q'); /** * Read All files in the directory. * * @static * @param {string} di…

node.jsでJSONをHTTPで取ってくる簡易method

http.js /** * Extends standard http module. * * @module http */ 'use strict'; var http = require('http'); /** * Wrapper for http.get() to get JSON resource. * * @example * var http = require('./http.js'); * http.getJson('http://example.com…

自分のclassに、new Class().on('name', fn) みたいなEventEmitterを実装する (node.js)

Web browserでのJavaScriptでは、node.addEventListener(string, function(Event), boolean);と云ふ綴りを好くやる。event drivenと云ふ奴だ。node.jsでは、似たものでobject.on(string, function(*args));と云ふのを好く書く。event drivenと云ふ奴だ。 此…

deferred (延期) を自動で連鎖させる (node.js)

JavaScriptは非同期APIの塊だ。node.jsはもっと然ふだ。非同期を上手く扱へないといけない。方法としては幾つか有る。callback関数をnestさせて頑張る。遅延評価のAPIに変換する。Deferred (Promise, Future) を使ふ。Flow.jsを使ふ。 cf. 最小限の非同期処…

非同期的 (async) life game (JavaScript)

昨日は同期的なlife gameをやった。 cf. JavaScriptで同期的life game http://c4se.hatenablog.com/entry/2013/09/27/033302 非同期版も実装した。まったく挙動が違ふ。 同期版は、わたしは大域的と呼んでゐて、世代の概念を持つ。或る世代の世界から次の世…

JavaScriptで同期的life game

追記20130928 本題の非同期版を書いた。 非同期的 (async) life game (JavaScript) http://c4se.hatenablog.com/entry/2013/09/28/004018 前回のは未だ開発を続けてるけど。Ruby 2.1に成って、keyword引数の仕様に機能が追加されるから、多分修正が必要だと…

Cookie Clicker (クッキークリッカー) save data

34,703,352,462 cookies - Cookie Clicker http://orteil.dashnet.org/cookieclicker/ Save data。 ほらよ(〃l _ l)っ普通の MS4wMzZ8fDEzNzkyNTU3NzgyNDN8MDExMTExfDMwNzA4MjUwNjk1OzMxOTkxMjgxMzgyMTY7MjQ5MDc5OzM5OzgzMTM3MjQ1MzM2Njs4MjstMTstMTswOzA7MD…

JavaScriptでsingletonを作る

viewをclassにしたりしてゐると、其れをsingletonにしとくと、debugに便利だったり。別になんら新しいことではないけど、此う云ふのは何度書いても目についてゐない人は居る。 JavaScriptでsingletonを作るのは、なんら珍しいことではない。 var object = { …