JSONをRubyのHashにしてpritty_printするコマンド

json to ruby hash command こんな感じで動く。 $ jo foo=bar h=$(jo -a aaa bbb $(jo aaaaa=bbbbb ccccc=ddddd eeeee=fffff ggggg=hhhhh iiiii=jjjjj)) | jr -s { foo: "bar", h: [ "aaa", "bbb", { aaaaa: "bbbbb", ccccc: "ddddd", eeeee: "fffff", ggggg…

猫将軍の絵を買った

猫将軍をご存知だろうか。 猫将軍と言う名のイラストレーターを。 http://nekoixa.com/ 僕にとっての猫将軍の思い出は、10年前のインターネットに遡る。 ニコニコ動画全盛期。 それは始まっていた。 学生時代にダラダラと徘徊していたインターネット。 いつ…

Lv0を考える

子供を育てていると、何かを教えるにあたってまずLv1から伝えようとするわけだが、すぐにその"Lv1"は親のエゴだったことを痛感させられる。 例として、子供が言葉を発するようなるためのLv1はなんだろうと考えてみる。 「これは『り・ん・ご』だよ」と言って…

Redisで1000万件のデータを圧縮しつつ定期的に洗い替えする

概要 お仕事でRedisを触ってたので知見をまとめる。 Redisは高速はKVSだが、今回1000万件を超えるような大量のデータを扱った。 大量のデータをバッチで定期的に書き込んで、参照側では高速に返すシステムを考える。 バッチはユーザーの行動を『現在から1日…

rui312/9ccを写経する-その5

https://github.com/rui314/9cc/commit/e89595ac2097981b55e4e287d07f8a3e62a6b02c map_existsの実装。次への布石か。 https://github.com/rui314/9cc/commit/42e403e3de0c6457bc11ab14c55a9dad27ed82be 変数の追加。よし、これも自分でやってみよう。 ...(1…

rui312/9ccを写経する-その4

https://github.com/rui314/9cc/commit/b8b3ab51ad9372a2b9f963650bbf14e714b87b85 Add Map data structure. お、みんな大好きMapさん。これは楽しみだ。 hash関数を使うのか、open addressなのかlinked-list方式なのか!? typedef struct { Vector *keys; …

rui312/9ccを写経する-その3

https://github.com/rui314/9cc/commit/9d4e20421f140f9ad7a1d161daab088008aa5760 Fix warnings. とのことなので大した変更ではなさそうだが、stdnoreturn.hやnoreturnは知らなかった。 返り値のないvoidな関数にreturn;があってもコンパイラは特に何も言わ…

rui312/9ccを写経する-その2

https://github.com/rui314/9cc/commit/2f62e5267a1c2874dcfa674cf8654e0cb3f189d6 コミットコメントが仰々しい感じがする。 test.sh とりあえずここを見れば次に実装することがわかる。 コードを見る限り、そこまで追加機能はないようだが……? int pos = 0;…

rui314/9ccを写経する-その1

8ccという有名なCコンパイラがあるが、これを書いたrui314さんが新たに9ccというリポジトリを上げていた。 https://note.mu/ruiu/n/n00ebc977fd60 を読むに、これは8ccをさらにわかりやすく、Cコンパイラ自作の教材として作っているものに違いないと勝手に判…

embulk-decoder-execつくった

github.com 経緯 現在fluentdからlzoファイル形式で圧縮して定期的に溜めてるJSONデータが既にある。 これを別のストレージにサッと移せたらできること広がりそうだなーと考えた。 問題点 bulk処理といえばembulk、ということでembulkを触ってみて、どうやら…

RubyKaigi2018 in 仙台に行ってきた

rubykaigi.org RubyKaigiは京都も広島も行っていなくて、仙台で3年ぶりの参加だった。 どのセッションも裏番組が面白そうすぎて、血涙を流しながら見にいっていた。 セッションを聞いて「こんな事ができたんだ」「それならこんな事もできるかな」みたいにア…

はじめてfluent-pluginを書いた

ようするに github.com fluentdでちょっと溜めて、postgresにbulk insertするやつです。 そもそも fluentdが何をするやつなのかいまいちよく分かっていなかった。 「ログを転送する……。それで??」みたいな。ふわっとした理解だった。 いろいろ調べていくう…

RejectKaigi2018でMVPを取った結果www

はい、というわけでね、RejectKaigi2018に行って話してきたわけですけどもね。 なんと、MVPとして選ばれ、見事(?)乾杯の音頭を取らせていただきました というわけで今回はYouTuber風を意識して発表してみた。 伝わったかどうかは微妙だけど、自分もテンショ…

スピコラ考察

最近スピコラを全ルール全ステージで使ってS前後をウロウロしている。(A+は適当にやっても勝てるが、S+0にはボコボコにされる程度のウデマエ) スピコラの特徴を整理する。 立ち回り 最大の特徴は万能性にあると思う。 塗りをやらせても前衛をやらせても、そ…

Shinjuku.rb #57で、"mrubykaigi"というタイトルの発表をした。

少し時間が立ってしまいましたが、Shinjuku.rb #57で話させていただきました。 shinjukurb.connpass.com 発端 弊社Repro, Inc.で定期開催している新宿.rbという地域コミュニティで、 「mrubyについて話しませんか」と人生初の登壇オファーを頂いたので快諾し…

地味すぎて誰も気がついていないCRuby 2.5の新機能

did_you_mean gemがKeyErrorにも効くようになったよ KeyErrorは指定したkeyに対するvalueが見つからなかったときに起こる例外で、IndexErrorから派生したものです。 KeyErrorが起こり得るのはHash#fetch Hash#fetch_values ENV.fetch Kernel.sprintf String#…

mruby本体にmruby-methodを移管したよ

「mrubyにmethodメソッドはないのかな?」とおググりの皆さんに朗報です。 ksss/mruby-methodというライブラリでmethodメソッドは使えてはいたのですが、この度*1mruby本体にmergeしてもらいました。 github.com 理由としては、 ksss/mruby-methodを作ってか…

今年買ってよかったもの

2017年に買ってよかったもの Nintendo Switch & スプラトゥーン2 買ってよかったのか悪かったのか……、正直微妙ではあるが、ひたすらゲームが楽しかった。 ソフトはスプラトゥーン2しか持ってないのに5ヶ月遊べている。 スプラに飽きたらいったん休憩した方が…

スプラトゥーン2ガチ初心者が5ヶ月かけてランクS+になるまでの軌跡

スプラトゥーン2を発売日の次の日ぐらいから初めて、ほぼ毎日プレイし続けて今日ようやく目標だったランクS+に到達した。 前作はプレイしていない。ゲームは好きだけど最近はポケモンとかだった。 FPSはほとんど経験ない。 こういう感じのゲームで近いのは、…

mruby v1.3

mruby v1.3 がリリースされましたね。 趣味mrubyウォッチャーとしてv1.2からv1.3で何が変わったのかを、個人的にまとめてみたいと思います。 注目すべきは、やはりmatzのcommit数。 もちろんmerge commitも含みますが、約半数のcommitがmatzのcommitになって…

mruby-io-copy_streamつくった

github.com 特に問題意識を持っているわけではないけど、がんばって作ってみた。半月以上かかった。 mruby-io-copy_streamとは、mrubyでCRubyでいうIO.copy_streamが使えるようになるライブラリです。 IO.copy_streamは、ようはcatコマンドみたいなやつ。 ち…

OSSMMORPG仮説

僕はゲームをやりすぎて留年したぐらいにはMMORPGをプレイしたことがあるわけだけど、最近OSS活動はMMORPGと似ているんじゃないかと思いはじめてきた。 僕がOSS活動をするのも、ゲームをプレイするような楽しさを感じている。 OSS活動と一口に言っても、様々…

無職の記録

無職最終日です— 冬休み (@_ksss_) 2017年1月18日 約3週間ほど無職を体験したのでその記録。 健康保険 3週間ほどであれば、国保の切り替えがベター。 保険証の発行が即行われるので、無職期間中に子供を病院に連れて行っても保険証が提示できるのが大きい。 …

第三回mruby-spec進捗確認

すでに本人が飽き気味になっていることは世間から全然反応がないからでありウンヌンカンヌン。 Fix bugs 細かいのが多いので一覧はこちらをどうぞ。 https://github.com/mruby/mruby/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aclosed%20author%3Aksss%20create…

Repro株式会社にJOINする予定です

https://repro.io/を運営するRepro株式会社にJOINする予定です。 Repro きっかけはCTOのid:joker1007さんでした。 いろいろな道について模索している時に「フリーランスになるとどういう感じなのかなあ」というのを誰かに相談したくても、話せる知り合いはあ…

2016まとめ

2016何したかなーと思ったのでまとめる。 ちなみに去年の。 ksss9.hatenablog.com Pull Requests https://github.com/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Aksss+is%3Apublic+created%3A2016-01-01..2016-12-31 現時点でOpen: 5, Close: 78 ほとんどがmr…

最終出社日です

逃げるは恥だが役に立つ 皆さんは逃げ恥観ましたか。 私は5日間で11話全部観ました。TBSオンデマンドで登録すると最初の2週間無料とききつけて登録(したのは妻だけど)。普段からTVは観ない二人なので、始めの2話を観た日は刺激が強すぎるのか二人して寝付け…

mruby-spec進捗日記〜第二話〜

ここ最近の出来事をまとめてみた。 ruby/specの作者とPRを交換した 前回のブログを公開した所、ある日メンションがとんできた。 @_ksss_ I managed to run some Fixnum specs of ruby/spec on mruby. I made it work with iij/mruby, mrbgems and modifying …

mruby-specの成果報告

注 自分の頭の整理のためのエントリーです。 よって超長い。 mruby-spec 以前、mrubyでruby/specを走らせるやつを書いたのですが、 その後どうなったのかまとめてみます。 ksss9.hatenablog.com 成果 mruby本体のSEGVを3つなおした。 ruby/specで、まず手を…

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だと思って…