mruby-at_eixtでmrb_state_atexitを直接呼ぶのをやめた

以前作ったmruby-at_exitに勘違いがあったので改良した。 mruby-at_exit gem リリース - スペクトラム 以前はmrb_state_atexit APIを直接呼んでいたけど、実はこれを呼ばなくてもat_exitは実現できる。 mrb_state_atexitはat_exit的なもの専用APIだと思って…

mrubyでruby/specを走らせることに成功した

長いと思うので結果だけ リポジトリはこちら。 github.com 使い方はgit cloneしてmakeするだけと大変お手軽。 make TESTS="core/nil"のように、ディレクトリ指定もファイル名指定もできる。 全国のmrubyistの皆様に於かれましては、是非お試し願いたいところ…

JSONパーサー再考

tl;dr json-expect-parserというgemを作った。 github.com gem install json-expect-parser で使えます。 きもち JSONをパースする実装はいろいろありそうで、すでに各言語に標準添付されていたり、便利なものがたくさんある。 そこであえて車輪の再発明を試…

mruby-at_exit gem リリース

mrubyでat_exitができるmruby-at_exitを作った。 github.com at_exitはrubyスクリプトが何らかの理由で終了するタイミングで発動するコールバックを登録できるメソッド。 mrubyではmrb_state_atexitというCの関数でmrubyが終わるときをフックする関数を登録…

日報 2016-07-31

exported form https://nippo.wikihub.io/@_ksss_/20160731140352 mrubyでのforkのバグを直した。 https://github.com/iij/mruby-process/pull/7 引数に初期化されてない変数がブロック引数に渡されているので、 これをmruby側で参照すると死ぬ。 そもそもfo…

日報 2016-07-22

exported from https://nippo.wikihub.io/@_ksss_/20160722124458 mruby本体に2つバグがあった。 一つめ Struct.new(:a) do def foo end end とすると、fooメソッドはStruct.newで作られた新しいclassのメソッドになることを期待するが、 なんと、Structclas…

日報 2016-07-20

exported form https://nippo.wikihub.io/@_ksss_/20160720141728 序 おもしろそうなのでこっちに書いてみる。 riloっていうmrubyで動くミニマムエディターを作っている。 https://github.com/ksss/rilo ワンバイナリ化 mruby-cliについて勘違いしてた。 mru…

mrubyでテキストエディタ書いてる

大体動くようになってきたので公開。 github.com きっかけは、まず最初にkiloがあった。 github.com kiloはredis作者が作った、C言語で書かれた超ミニマムなテキストエディタだ。*1 「このコードを読めば、ベーシックなテキストエディタの実装方法が分かるは…

ニブンノイクジに感化されて保護者会に行ってきた

ニブンノイクジ ニブンノイクジは「大東京トイボックス」や「スティーブズ」で有名なうめ先生の描くwebマンガで、 ママテナとcakesで連載されている。 ニブンノイクジ | mamatenna ニブンノイクジ|うめ(小沢高広・妹尾朝子)|cakes(ケイクス) 毎週楽し…

わけがわからないことを雨のように体験する。それが東京Ruby会議11

regional.rubykaigi.org 東京Ruby会議11で「Rubyに型があると便利か」という発表をしてきました。 speakerdeck.com 何百人もの人に30分も時間をとってもらって話を聞いてもらうのは物凄く贅沢な時間だと思います。 トークを聞いていただいた皆様。声をかけて…

議論はすべきでない

最近感じている、「議論はすべきでない」という自説について書いてみる。 この説を裏付ける、二つの話題が自分の中にあったからだ。 人を動かす 最近読んだ本「人を動かす / デール カーネギー」がきっかけだった。 人を動かす 新装版作者: デールカーネギー…

golangでidobataのbotを書く

前提条件 idobataを使っている idobata botがどうやって動いているのか知らないので、知りたい欲求がある golangはほとんど書けないが、練習のためにgolangで書く websocketについては、複数クライアントでのお絵かき同期サンプルを作ったことがある程度の知…

デバッグに便利そうなgem LazyMethodを書いた

https://bugs.ruby-lang.org をなんとなく眺めていたら、とあるチケットが目につきました。 Feature #12125: Proposal: Shorthand operator for Object#method - Ruby trunk - Ruby Issue Tracking System このチケットは、「Method classは便利だけど記述が…

cgoがむずい

CとGoの世界の境界線をいったりきたり。 分かる人には簡単なんだろうけどgolang自体が初心者から抜け出せない。。。 コールバック関数をメンバーに持つstructをつくって、コールバックが動くと対応するgolangのfuncが動く感じになればいい。 直接GoからCにfu…

アカマイ 知られざるインターネットの巨人 / 小川 晃通

(角川EPUB選書)" title="アカマイ 知られざるインターネットの巨人 (角川EPUB選書)">アカマイ 知られざるインターネットの巨人 (角川EPUB選書)作者: 小川晃通出版社/メーカー: KADOKAWA / メディアファクトリー発売日: 2014/08/11メディア: Kind…

孔明の罠 Kaizo Trap

始まりはfacebookだった。 facebookでシェアされた何気ない動画。 普段なら「へ〜」で終わってページをスクロールすることがほとんどだけど、この動画だけは違った。 その動画を再生してから8分間、じっと見続け、再生が終わった瞬間二周目を開始した。 8分…

RubyでJSONをclassにmappingするやつと、2つの記法

僕はHashが嫌いだ。 できるだけHashは使いたくない。 h[:foo] とか h.fetch(:foo) とか本気で使っているのかね君たちは(今日は何となくこんな感じですすみませんすみません)。 Hash Hashはとにかくデバッグが面倒だ。 設定やら多値を表現するためか生存が長…

GitHubの草を連続40日間生やしてみたけどやめた

https://github.com/ksss rebuild.fmの#120を聞いて、jQueryの作者が始めた「毎日コードを書く」というやつを40日間やってみた。 rebuild.fm John Resig - Write Code Every Day よかったこと アウトプットがふえた 毎日コードを書くというルールなので、 ア…

2015まとめ

2015 買い物 家を買った やたら歯を治療した 子供が生まれそうだったので新しい家を去年から探して回っていた。 10軒ぐらい見て2軒話を進め、最終的に1軒契約という形になった。 今年の前半はだいたいこれ。 子供 産まれた 育てた 今年の後半はだいたいこれ…

子育てしながらリモートで働いた半年間

この記事は子育てプログラマ・ITエンジニア・Webデザイナー Advent Calendar 2015の20日目の記事です。 前回は@elcondorさんの背中を預けるということ、あるいは共働き家庭での子育てについて - condor's diaryでした。 はじめに 僕はプログラマーとして働い…

text2svgをつかってfontawesomeをSVG化する

人気アイコンフォント、fontawesomeをSVG化したい。 そんな方にもtext2svgは便利にご利用いただけます。 fontawesomeでは指定のunicode毎にアイコンがフォントの文字として登録されています。 https://fortawesome.github.io/Font-Awesome/ この文字は公式サ…

テキストの外形をsvgにする、text2svgをRubyで作った

テキストとフォントファイルを与えると、テキストの形をsvgで表現した出力が出てくる夢を見たことがありますよね? 作りました。 github.com $ text2svg "Hello, World\!" --font="/Library/Fonts/Times New Roman.ttf" > test.svg $ open test.svg -a /Appl…

RubyKaigi2015でLTした。

「A New Testing Framework Rgot」というタイトルで rgot についての紹介LTをしました。 スライドも公開しました。 発表では時間切れになって見れなかった最後の2ページも乗っています。 以下ダラダラとした話。 LTをやったのは初めて、トーク自体も二回目な…

font awesomeのunicodeを出力するヤーツ

Font-Awesomeという便利アイコンフォントがある。 これをkeynoteなどで使いたい場合、ローカルにインストールしてから、 各アイコン指定の\uf09bのようなunicodeを打たなければならない。 これを探すのもめんどくさければ、文字をキーボードから作れないので…

mgem3連投

mruby関連、最近は全然さわってなかったので少しだけアップデート。 mgem3連投 https://github.com/ksss/mruby-signal 昔作ったやつ。CRubyのsignal.cのほぼコピペ。 コードはコピペだし公式っぽい名前なので恐れ多くてブログにすら書いてなく完全に無告知だ…

korでテーブル変換サーバーが書けてた

ちょっと思いつきで、korで遊んでみた。 github.com KorはRubyのgemだ。Rubyは2.0.0から対応している。 これからのプログラムを走らせる準備をしておく。 $ gem install kor kor-output-json 短いサーバープログラムを書く。 server.rb #! /usr/bin/env ruby…

ISUCON5の予選を徹底的に復習する

ISUCON5の予選に参加して、圧倒的な差で負けたので、 この悔しさをバネに復習して、自分の力にしたいと思う。 今回のファイトではアプリの修正が特に重要であったように思う。 そこでアプリの修正に焦点を当てて、「こうすればよかった」を追っていき、自分…

7日間で7つのgemをリリースした

https://github.com/ksss/kor https://github.com/ksss/kor-input-json https://github.com/ksss/kor-output-json https://github.com/ksss/kor-input-ltsv https://github.com/ksss/kor-output-ltsv https://github.com/ksss/kor-input-yaml https://github…

korのjson出力プラグイン書いた

github.com 自分でも半信半疑だったので(!?)、ためしにkorプラグインを書いてみた。 これで、例えばmysqlのselect結果をJSONに変換する、といったことができる。*1 $ mysql -u root db -e 'select * from users limit 1' | kor tsv json --single [{"id":"…

プラガブルにcsvとかのテーブルデータを別の形式に変換するやつ作った。

github.com 名前はKorという、これまた厨二ネーミング。*1 rubygemsとして実装したので、 $ gem install kor でインストールできます。 csvやtsv、markdownのテーブル表記を、 これまたcsvやtsv、markdownに変換できる、 しかもプラガブルに拡張可能。 とい…