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

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

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

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

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

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

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

c4se

Programming

catで行を指定してその周辺を印字するにはsedを使ふ (行番号付き)

行番号を出力するにはcatに-n optionを付ける。あとはsedで切り抜く。 cat -n a.txt | sed -n "32,52p" 好い。面倒なので.bashrcに書く。 追記2014-10-07 syntax hilightingを行ふ為にPygmentsを使ふやうに追加した。 function cat-n() { local min=`expr $2…

phpenvでPHPをinstallするにはbuild-depを使ふと好い

新しくノートPCを買った。新しくPCは買ったが、PCは新しくない。四年前に製造されたらしい中古のPCで、Windows7は陽の目を見ずにUbuntuに道を譲った。わたしはMacOSはWindowsと同じ理由で同じくらい嫌いである。然して印刷作業に殆ど関はりが無いのでMacに用…

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の記法を使…

Debian (Ubuntu) でVimを、機能アリアリでbuildする

追記 2014-12-04 最新の情報は以下に移讓します。 cf. Vimの全てを最新に保つ (VAC2014) http://c4se.hatenablog.com/entry/2014/12/04/175937 UbuntuでVimをcompileしたり、最新のbuildに更新したり。aptの標準packageじゃ足りないので、機能マシマシで。 c…

Rubyで作ったFactorっぽい連鎖性記法が間違ってゐたので直した

RubyでFactorっぽい連鎖性 concatenative (関数合成) 記法を作るが完璧に間違へてゐたので直した。実際は此れは関数合成に成ってゐない。ループして順に評価してゐるだけだ。此れはconcatenativeではない。Factorでは全てのwordはいちおう、暗黙のstackを受…

Ruby自体をMaybe関手と見做して、ActiveSupportのtryを実装する

cf. n人目の所業だがRubyでMaybe monad (Option monad) を作った http://c4se.hatenablog.com/entry/2014/07/28/034752 cf. RubyにてMaybe関手を使って、ActiveSupportのtryを実装する http://c4se.hatenablog.com/entry/2014/08/02/222156 でRubyのnil chec…

RubyにてMaybe関手を使って、ActiveSupportのtryを実装する

此の間Maybe (Option) monadを作ってみた。 cf. n人目の所業だがRubyでMaybe monad (Option monad) を作った http://c4se.hatenablog.com/entry/2014/07/28/034752 Rubyだと普通はActiveSupportのtryとtry!を使ふ。 ActiveSupportのtryとtry! try!はreceiver…

RubyでFactorっぽい連鎖性 concatenative (関数合成) 記法を作る

Rubyでcurry化しない関数合成のcompose関数をみてゐたら、Factorに見えてきて、作れさうに思ふた。 再帰で階乗を定義できる所迄作る。 # coding=utf-8 # license: Public Domain class Factor def initialize *words @definitions = {} @stack = [] call *wo…

n人目の所業だがRubyでMaybe monad (Option monad) を作った

n人目の所業だがRubyでMaybe monad (Option monad) を作った。当たり前だが実用ではない (要らない)。 List monadを作るのは辛さうと云ふ丈の理由だ。HaskellとScalaを参照した。 # coding=utf-8 # license: Public Domain # Rubyでcurry化しない関数合成 ht…

Rubyでcurry化しない関数合成

Rubyではcurry化する方が難しいのだけれど。 Rubyの関数合成で調べれば延々と結果が出てくるので私のcodeを信用しないやうに。 cf. 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 http://yuroyoro.hatenablog.com/entry/2012/…

ActiveUUIDのUUID文字列を直接扱ふにはUUIDToolsを使ふ

RubyでUUIDを生成したいならば、SecureRandomを使へばいい。SecureRandomはRubyに標準で入ってゐる。 cf. module SecureRandom http://docs.ruby-lang.org/ja/2.1.0/class/SecureRandom.html require 'securerandom' puts SecureRandom.uuid # output => 2e8…

RspecのJSON ExpressionsでNullableなマッチャー (若しくはORマッチャー) を作る

RspecにJSON Expressions ( https://github.com/chancancode/json_expressions ) を使ってゐる。便利かと云ふと便利ではない気がするが、変へる余裕も無いので使ってゐる。 其れなりにJSONの構造をマッチできるのだが、ORができない気がする。できるのかもし…

Docker imageの名前だけを一覧する

持ち歩きのPCをWindows7からUbuntuに入れ替へました。 問題 入れてるDockerのimage名が長く成って覚えてないし、コピペしやうにもdocker ps -aの出力は長い。名前だけ一覧したい。 解決 AWKを使ふ。.bashrcに書く。 # license: Public Domain function docke…

vimproc で command の非同期実行を待ち callback してもらう

ヰ゛ムッ ヰ゛ムッ此の記事は TokyoVim#19 の会場で書いてゐます。VimScriptでJavaScriptみたいなcallback型で、コマンドを非同期に実行させませう。 vimproc を使ひます。ヰ゛ムッ ヰ゛ムッ ヰ゛ムッvimproc#popen2() 等で command を非同期に実行すると、…

Git の proxy をon / off する

当校ではproxyを通さないとInternetに接続できないので辛い。Gitも繋がらないので辛い。とても辛い。 ~/.gitconfigでproxyをちゃんと設定できる。commandからも設定できる。どちらも同じことだ。やろう。set_git_proxy.bat の名で以下をPATHの通った所に保存…

Ciscoルーター、コマンドのメモ

Cisco 1800 ルーター。 去年書いたmemo。memoなので説明はしない。 * Initilize a router. * > en # erase startup-config # reload System configuration has been modified. Save? [yes/no] no Would you like to enter the initial configuration dialog?…

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

ランの花の育種屋さん (エビネやアワチドリなど) のWeb pageを全面更新した

少し前に成るが、蘭裕園 (Ranyuen)と云ふ、ランの花の、園芸品種を開発して栽培・販売してゐるところのWeb siteを改修した。可成り大規模に、ではなくcontent内容以外は全面的に改修したので、SEOとかやらなきゃいけない。 Web siteのcodeはGitHubに有る。 c…

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にも降りてきました…

CSRF (cross site request forgery) とは

半年以上前 (2013-08-12よりまえ) に書いたものだが、公開しわすれてゐた。Vimのmemoを整理してゐたら出てきたから、何かの序で [ついで] とおもひ公開する。 凄くわかりにくい文章だ。私が悪い。pointは、攻撃者が用意したWeb pageにわたしたちがaccessした…

Vim で、文字数をstatuslineやlightline.vimに表示する

Vim Advent Calendar 2013 33日目の記事です。昨日はVimConf2013が無事終わりましたでした。にょ……。 今年はVimに関する記事を書きたいときは、記事を下書きしておいてVACに投稿しやうと思ひますね☆ lightline.vimを導入したのでついでに書く。 復たn度目的…

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

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

BitCommet から ClamWin でvirus checkする

BitCommetからClamWinでvirus checkをすると云ふよりは、ClamWinをCUIのfile/directory scannerとして使ふ方法です。 ClamAV / ClamWin とは ClamAV http://www.clamav.net/lang/en/ は、multi platformで動くanti-virus, anti-spy ware softwareです。GPLで…

関数合成型 ( Forth 系) 言語 Factor への入り口

マイナー言語 Advent Calendar 2013 25日目です。飛び入りました。昨日はSQL - 僕の記事を見て魔法少女(Presto使い)になってよ - Qiita [キータ]でした。Prestoって言ったらOperaのPresto(滅びました。Nemerle 好いですね。 cf. クエリな午後: マイナー言語…

Vim QuickRun でF# ( fsharp ) をpreviewする

Visual StudioもMono Developも入れたけど、Vimね、Vim。「Vim」って何回言っても好いですよね。Vim。あーヰ゛ム。 WindowsだとF#のcompilerがFsc.exeの名で入りますが、此れはScalaにもfscと云ふ実行fileが有って、此れとぶつかります。Mac等に合わせてfsha…

PHP でRay.DiとRay.Aopをやってみる

追記 2014-12-19 Ray.Di, Ray.Aopを参考に、より簡単なinterfaceのDI/AOPライブラリを実装しました。お使ひください。 cf. PHPで簡単に華麗にDIとAOPをキメる http://c4se.hatenablog.com/entry/2014/12/11/013136 PHP Advent Calendar 2013 19日目です。み…

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…

macroとinterfaceは「なんだか逆だ」

少しよもやま話だ。 一昨日書いた他言語から見た Elixir (macro, protocol, binary構文)で、OOPのClass (Prototype) とElixirのProtocolを並列した。並列して実用は全く同じなのだが、なんだか逆だと云う並列だ。OOPでは (AとBがMを継承するとして) Mに関す…

他言語から見た 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…

Vim でoutline editorを演じる (n度目)

Vim Advent Calendar 2013 11日目です。昨日は @alpaca_taichou さんのNeoComplete vs YouCompleteMe | アルパカエンジニアのブログでした。 わたしはNeoCompleteだけでした……、C言語系余り書かないので(〃l _ l)。。 今日は小ネタです。去年はVim で音楽を…

Vim のpluginを書く

蜜柑おいし>ω<♡十数行程のVim Scriptは書いたことが有りましたが、Vim pluginに手を入れるのは初めてでした。Vimの事はVimのhelpに大体書いてあります。helpを検索する方法も有ります。 では、洞のhelpを読んでおくべきか? :h runtimepathから読み始め乍…

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と云ふ奴だ。 此…

「Dart風のautomatic field initializationをRubyで」をgemで公開した

した。 GitHub: ne-sachirou/AutoAttrInit.rb https://github.com/ne-sachirou/AutoAttrInit.rbRubyGems: auto_attr_init https://rubygems.org/gems/auto_attr_initcf. Dart風のautomatic field initializationをRubyで http://c4se.hatenablog.com/entry/2…

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

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

Range 'a' .. String::INFINITY (Ruby)

追記20131003 私のはまともにtestしてゐないクソ仕様なので、merborneさまのに追隨してください。 cf. RubyのStringにもInfinityを!- 反省回 - http://melborne.github.io/2013/10/01/string-infinity-regret/ 此のの間のDart風のautomatic field initializ…

非同期的 (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引数の仕様に機能が追加されるから、多分修正が必要だと…

Dart風のautomatic field initializationをRubyで

(草稿) Dart風の、constructor引数を自動的にinstance変数に代入するアレをRubyで http://c4se.hatenablog.com/entry/2013/09/12/184432 の続きだ。前回に挙げたbugは潰した。Lisence: Public Domain GitHub: ne-sachirou/AutoAttrInit.rb https://github.co…

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

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

RubyのS式を調べた。S式をRuby文字列に戻す方法も調べた

昨日の(草稿) Dart風の、constructor引数を自動的にinstance変数に代入するアレをRubyでにて、Ripperを使ひ、RubyのcodeをS式にした。S式の内容を調べた。序でに必要だったので、S式をRuby codeに戻す、簡単な方法も調べた。cf. How would I recompile Rippe…