yhara.jp

Recent Posts

OpalのStringクラスはどのような実装になっているのか

2016-12-11
Tech

これはOpal Advent Calendar 2016の11日目の記事です。

OpalのAdvent Calendarは今年が初めてということで、Opalのソースを少し読んでみたいと思います。今回はStringクラスです。

string.rb

Opalの組み込みクラスのソースはopal/corelib以下にあります。

https://github.com/opal/opal/blob/7310b27a1c6bec135610e5df5f20753eb349965e/opal/corelib/string.rb

(more...)

Opalはいかにしてrubyspecをいい感じにアレしているのか

2016-12-07
Tech

OpalはJavaScriptで書かれたRuby処理系です。OpalではArray#findといった組み込みライブラリもJavaScriptで再実装しているので、テストが膨大な数になりそうですが、そのあたりはどうしているのでしょうか。

ruby/spec

Rubyにはruby/specというテストスイートがあります。これは、CRubyやJRubyなど複数の処理系間で挙動を揃えるために作られたものです。READMEにあるようにもとはRubySpecという名前でしたが、現在はThe Ruby Spec Suiteというのが正式名称になっています(が、カジュアルには今でもrubyspecといえばこのruby/specを指すことが多いようです)。

Opalはこのrubyspecをテストとして使うことで、テストを0から書く手間を省きつつ、他の処理系との互換性を担保しています。

Opalとrubyspec

(more...)

なるべく移行コストが少ないErgoDoxのキー配置

2016-12-06
Tech

このエントリはErgoDox Advent Calendar 2016の6日目のエントリです。

今年の5月に仕事用キーボードとしてErgoDox EZ (組み立て済みErgoDox) を購入し、半年が経ちました。ErgoDoxのメリットの一つとしてキーマップのカスタマイズ性の高さがありますが、一方で「Pキーの右にたった一列しか場所がない」という特殊な形状のため、キー配置をどうカスタマイズしても慣れるまでに多少の練習が必要になるという問題もあります。

本稿ではなるべく練習が要らないキー配置について考えます。

ポイント

キーボード上にはたくさんのキーが存在しますが、それぞれの使用頻度には大きな隔たりがあります。「%」や「&」など使用頻度の少ないキーは、多少変なところに配置してもそれほどストレスにはなりませんが、EnterやBackSpaceなどの基本的なキーを変わったところに置くと慣れるまで大変です。

(more...)

OpalでThree.jsを使う

2016-12-06
Tech

この記事はOpal Advent Calendar 2016Three.js Advent Calendar 2016の6日目の記事です。両方のアドベントカレンダーが空いていたので、こう、くっつけたらどうなるかなっていう…。安易な発想ですいません。

Opalとは

OpalはJavaScriptで書かれたRuby処理系です。ブラウザ上でRubyのコードを動かすことができます。

とりあえず検索してみる

opalとthree.jsで検索してみるとthree.rbというリポジトリが引っかかりました。1年ほど更新がないですが、とりあえず先人はいるみたいです。

(more...)

米を冷凍するなら専用の容器を使うといい

2016-12-01
Food

一人暮らし自炊向け情報です。

炊飯はわりと面倒くさい作業ですが、この面倒くささを軽減する方法として、「たくさん炊いて一食分ずつ冷凍する」というテクニックが存在します。具体的なやり方としては冷めるまで待ってラップで包んで冷凍という方法とかもあるのですが、実はこういった専用の容器があるので、これを使うと格段に楽ができます。

写真では分からないですが中央が少し盛り上がっていて、これにより解凍時に下段の中央だけ冷たいまま残ることがないようになっています。また、ご飯専用でないコンテナで冷凍するよりも美味しい気がします(個人の感想ですが)。

(more...)

白菜のクリーム風リゾット

2016-12-01
Food

適当に作ったけどわりと美味しかった。

リゾットについてはちゃんとやる方法(生米をスープで炊く)と、スープっぽいのものに冷ご飯を投入して水分を飛ばすという雑な方法があって、今回は後者です。

完成写真

材料

  • 冷蔵庫に余っていた白菜
  • 冷蔵庫に余っていた大根
(more...)

日本における技術系アドベントカレンダーの歴史

2016-12-01
Tech

12月です。今年もアドベントカレンダーの季節がやってきました。

Web上におけるアドベントカレンダーというのは12/1から12/25までの間、一つのテーマで毎日ブログなどに記事を投稿するイベントで、日本においてはPerlコミュニティから始まったような記憶があったのですが、はっきりとは覚えていなかったのでこの機会に確認してみました。

2008年

2008年12月、日本のPerl界隈でアドベントカレンダーが開催されます。以下の記事によると海外のPerlコミュニティでは2000年から同様のイベントが行われており、それを日本に輸入するという形だったようです。この年は特殊ルールとして、原稿を書いた人が翌日の担当を指名するというバトン式で行われています。

(more...)

『cinema』/ カフカ

2016-11-25
Music

この前ライブ行ったのがきっかけで、カフカの旧譜を探して聞いている。cinemaは2010年に出たセカンドアルバムで、残念ながらiTunesに音源がない(1stはあるのだが)。ので、買おうかどうか迷っている人は手に入るうちに確保した方が良さそう。1stも値段上がりそうな気配がしているので。

この頃はまだ3ピースだったんだな。メロディの良さと心地よいグルーブは変わっていないが、ドラム、ベース、ギター、歌というシンプルな構成になっている。1stのiTunesの関連作品見てて気づいたんだけど、Peple In The Boxの初期作品に似た雰囲気がある。なんか懐かしい感触がすると思ったらそういうことか。

カフカもピープルも初期から作風が変化したけど、どの時期のアルバムも好きになれるのは不思議だし、幸せなことだと思う。


LLVM + Boehm GC

2016-11-23
Tech

Though LLVM itself does not have a GC algorithm, it is not so difficult to use existing GC library, especially conservatice GCs like Boehm GC.

  1. Link Boehm GC
  2. Call GC_malloc instead of malloc

Prerequisites

  • LLVM (eg. brew install llvm)
  • Boehm GC (eg. brew install boehmgc)
(more...)

boehm gcを触ってみた

2016-11-22
Tech

ということでいろいろ考えたのだけど、とりあえずboehm gcをちょっと触ってみることにした。

Boehm GC

Macだとbrew install boehmgcで入る。

とりあえず最小のサンプル。GC_MALLOCというのがBoehm GC版のmallocで、メモリ確保にはこれを使うことになる。GCを開始するというAPIを呼んでいないけど、GC_MALLOC時に適宜呼ばれるようだ。

(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author