Ruby
Ruby irb> '冬'.bytes.map{ |n| n.to_s(16) } => ["f0", "af", "a0", "9a"] irb> '冬'.bytesize => 4 irb> '羽󠄀'.bytes.map{ |n| n.to_s(16) } => ["e7", "be", "bd", "f3", "a0", "84", "80"] irb> '羽󠄀'.bytesize => 7 冬の正字冬は"\u{2f81a}"で 4 byte、…
偶々 Clojure で Atom を、Python で SVG を生成する機會が有った。どちらも XML だ。Python には標準でxml.etree.ElementTreeと云ふ class が含まれてゐて、これで XML を讀み書き出來る。 Clojure だと XML を生成するには、 (require '[clojure.xml :as x…
log を撫でまはし乍らごそごそしてゐたら出來てゐたので gem にした。 github.com N 個のデータから成る large_data が在り Ruby の Enumerable として取得出來る時、標準偏差や分散等を計算しやうとしたら、単純にやると N 個のデータをディスクに置かなけ…
画像の圧縮自体はImageOptimと云ふプログラムをコマンドで呼んでゐる丈だ。お終い。 HomebrewではCaskroom/cask/imageoptimに在る。そこでGitの話に成る。 利用シーンはご想像にお任せするが、gitでpullした後に、其のpullで更新されたPNGファイルをlossless…
数秒で書き終はる鮮度系。 サービスには沢山の種類のサーバーがそれぞれ沢山たってゐ、sshから繋ぎ易いやうに .ssh/config に書いてあったりする。例へば此んなふうに。 Host momonga-web-01 HostName x.x.x.x Host momonga-web-02 HostName x.x.x.x Host mo…
private-values 秘密情報や個人的なfileを共有リポジトリから隠す爲のツールです。 github.com インストール releasesからバイナリをダウンロードし、PATHを通したディレクトリに置いてください。 private-valuesは、何ではないか? private-valuesは組織的な…
※ 忘備録程度の情報です。 結論 絵文字には U+FE0E/U+FE0F が異体字セレクタとして付くことがあります。Unicode の STANDARDIZED VARIANTS といふ仕様の一部です。気をつけませう。 歴史 Unicode には異体字セレクタ (VARIATION SELECTOR) といふ規格がある…
じゃんけんをシミュレートしてみる。練習問題だ。 人間を五人ほど作り、グー/チョキ/パーのなにを出させるかをそれぞれに決めさせ、勝負する。引き分けを考慮し、勝者が最後の一人になるまで繰り返す。 せっかくElixir (Erlang) でつくるのだから、各人間…
Unixにはパイプといふものがある。プログラムには「標準入力」と「標準出力」といふものがあり、標準入力からなにかを受け取れば、それに基づいて標準出力になにかを表示することにする。その標準入力は、なにか別のプログラムの標準出力からやってくる。標…
PHPでアプリケーションを作ってゆく。大きくなると、classが増えてゆく。classが増えてゆき、constructorの引数が増えてゆく。classをnewする順番が決まってゆき、それに従はねばならない。同じインスタンスがあちこちで必要になる。DI (Dependency Injectio…
エスケープシーケンスは覚えられない。 def wait sec = 60 str_len = sec.to_s.length sec.times do |i| print "%#{str_len}d" % (sec - i) sleep 1 print "\033[2K\033[#{str_len}D" end end \033[2Kで、カーソルの行をクリアする。\033[%dDでカーソルを左…
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 ] ] //…
ほんたうはマクロ無しのExcelとGoogle Spreadsheetで求めたいのだが、とりあへずRubyでやる。追記 2014-12-04 Google Spreadsheetでやった。Google Apps Scriptを使はないのを前提としてゐる。 cf. RSA模型 https://docs.google.com/spreadsheets/d/1DwIFrzk…
RubyでFactorっぽい連鎖性 concatenative (関数合成) 記法を作るが完璧に間違へてゐたので直した。実際は此れは関数合成に成ってゐない。ループして順に評価してゐるだけだ。此れはconcatenativeではない。Factorでは全てのwordはいちおう、暗黙のstackを受…
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…
此の間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でcurry化しない関数合成のcompose関数をみてゐたら、Factorに見えてきて、作れさうに思ふた。 再帰で階乗を定義できる所迄作る。 # coding=utf-8 # license: Public Domain class Factor def initialize *words @definitions = {} @stack = [] call *wo…
n人目の所業だがRubyでMaybe monad (Option monad) を作った。当たり前だが実用ではない (要らない)。 List monadを作るのは辛さうと云ふ丈の理由だ。HaskellとScalaを参照した。 # coding=utf-8 # license: Public Domain # Rubyでcurry化しない関数合成 ht…
Rubyではcurry化する方が難しいのだけれど。 Rubyの関数合成で調べれば延々と結果が出てくるので私のcodeを信用しないやうに。 cf. 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 http://yuroyoro.hatenablog.com/entry/2012/…
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 ( https://github.com/chancancode/json_expressions ) を使ってゐる。便利かと云ふと便利ではない気がするが、変へる余裕も無いので使ってゐる。 其れなりにJSONの構造をマッチできるのだが、ORができない気がする。できるのかもし…
当校ではproxyを通さないとInternetに接続できないので辛い。Gitも繋がらないので辛い。とても辛い。 ~/.gitconfigでproxyをちゃんと設定できる。commandからも設定できる。どちらも同じことだ。やろう。set_git_proxy.bat の名で以下をPATHの通った所に保存…
Ruby Advent Calendar 2013 17日目です。昨日はRuby - socketライブラリを使ってwebサーバーを作ってみる - Qiita [キータ]でした。おおうっ! blocking I/Oだ。 もうすぐRuby 2.1も有るな。 最近node.jsばかり触ってゐるので、node.jsの核心であるlibuv htt…
@udzura さま(〃l _ l)?? さっちゃんですヾ(〃l _ l)ノ゙ (憤怒の相直されました(〃l _ l) Elixir Advent Calendar 2013 14日目です。昨日はElixir - Sigil大好き!一番好きな機能です。 - Qiita [キータ]でした。あーRubyの。独自定義出来るのか、ふうむ。…
した。 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…
追記20131003 私のはまともにtestしてゐないクソ仕様なので、merborneさまのに追隨してください。 cf. RubyのStringにもInfinityを!- 反省回 - http://melborne.github.io/2013/10/01/string-infinity-regret/ 此のの間のDart風のautomatic field initializ…
(草稿) 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…
昨日の(草稿) Dart風の、constructor引数を自動的にinstance変数に代入するアレをRubyでにて、Ripperを使ひ、RubyのcodeをS式にした。S式の内容を調べた。序でに必要だったので、S式をRuby codeに戻す、簡単な方法も調べた。cf. How would I recompile Rippe…
追記: 20130923 当記事で挙げたbugは潰した。 Dart風のautomatic field initializationをRubyで http://c4se.hatenablog.com/entry/2013/09/23/075129bug bug。bugだらけ。特に、引数にdefault値を持たせられる形式に就いては、一部しか対処出来てゐない。re…
Clojureのloop-recurを、Rubyでやった。Elixirの古いversionにも有ったらしい。 末尾再帰の最適化 (TCO, tail call optimization) が出来ないsystemだと、助かるみたい。Ruby 2.0.0とかClojureみたいな。 def factorial n cloop n, 1 do |n, acc| if n == 0 …