2015-01-01から1年間の記事一覧
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の25日目の記事です。 qiita.com Ruby の名前付き引数の例です。 def hoge(a, b=1, c: 2) p [a, b, c] end hoge(123) #=> [123, 1, 2] hoge(123, 456) #=> [123, 456, 2] hoge(123, c: 789) #=> [123…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の24日目の記事です。 qiita.com Crystal のソースコードは Crystal で記述されています。最初は Ruby で書かれていたようですが、現在はすべて Crystal で書かれています。 Ruby は本体と組み込みラ…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の23日目の記事です。 qiita.com メソッドに渡されたブロックを実行するには次の2つの方法があります。 def hoge yield end hoge{ p 123 } def hoge(&block) block.call end hoge{ p 123 } ですが、…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の22日目の記事です。 qiita.com タイトルのまんまですが、Crystal は Thread がなくてつらい。 Thread というクラスはありますが、ソースを見ると、 # Don't use this class, it is used internally…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の21日目の記事です。 qiita.com Crystal の String は UTF-8 固定なのでバイナリデータを String で扱うことはできません。 バイナリデータを扱うには String ではなく Slice を使います。 Slice(UI…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の20日目の記事です。 qiita.com 昨日の記事で、File#gets が nil を返すことがあるので、 line = File.open("/dev/urandom").gets if line.is_a? String # gets は nil を返すことがあるためこの if…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の19日目の記事です。 qiita.com 昨日の記事で Crystal の文字列は UTF-8 だと書きましたが、実行時に外部から UTF-8 以外の文字列を与えるとどうなるのでしょうか。 p File.open("/dev/urandom").ge…
これは NSEG Advent Calendar の 18日目の記事です。 www.adventar.org 5月から行っていた「理論から学ぶデータベース実践入門」の読書会が 12/16 にめでたく最終回を迎えました。 全部で15回(スペシャル回を入れると16回)でした。 一人で1〜2ページ音読し…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の18日目の記事です。 qiita.com Ruby の文字列のエンコーディングはオブジェクト毎に異なる可能性があります。 エンコーディングが異なる文字列を結合したりマッチングさせようとすると例外になりま…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の17日目の記事です。 qiita.com Ruby では '〜' と "〜" は両方とも文字列(String)です。文字列を1文字ずつに分割しても、それは1文字の文字列です。 Crystal では '〜' は文字(Char)で、"〜" は文…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の16日目の記事です。 qiita.com 最近 Ruby でリテラル文字列を変更不可にするとかしないとかって話がありますが、Crystal の文字列は最初から変更不可です。 文字列オブジェクトを変更するようなメ…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の15日目の記事です。 qiita.com Ruby の String#to_i は数字以外の文字列の場合に 0 を返します。C の atoi() と同じです。 % ruby -e 'p "abc".to_i' 0 Crystal の String#to_i は数字以外の文字列…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の14日目の記事です。 qiita.com Ruby では nil.to_i は 0 になりますが、Crystal ではコンパイル時エラーになります。 % crystal eval 'nil.to_i' Error in line 1: undefined method 'to_i' for Ni…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の13日目の記事です。 qiita.com 昨日の記事に書いたように Crystal は変数を初期化せずに宣言だけすることができます。 ですが、宣言だけだと値は未定義です。未定義のまま参照すると例外が発生した…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の12日目の記事です。 qiita.com Crystal で Ruby と同じような感覚でインスタンス変数を使うと nil だと怒られることがあります。 class Hoge def hoge @hoge = "abc" @hoge.size end end Hoge.new.…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の11日目の記事です。 qiita.com Ruby には同じ機能なのに複数の名前があるメソッドがありますが、Crystal は基本的に1機能に1メソッド名という方針のようです。 それにより Ruby にはあるのに Cryst…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の10日目の記事です。 qiita.com Ruby だと、配列を展開してメソッドの引数にすることができます。 arg = [1, "abc", :foo] hoge(*arg) # hoge(1, "abc", :foo) と同じ Crystal だとこれはできません…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の9日目の記事です。 qiita.com 昨日の記事に「Tuple を使うとらくちんです」というコメントをもらいました。 タプルを使って書きなおしてみます。 [ { 1, "hoge" }, { 2, "fuga" }, { 3, "piyo" }, …
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の8日目の記事です。 qiita.com Ruby だと、プログラマーが配列の1番目の要素は整数で、2番目の要素が文字列で…といったように決めて、次のようなコードを書いたりすることがあります。 [ [ 1, "hoge…
これは NSEG Advent Calender の7日目の記事です(内容は NSEG とも長野とも関係ありませんが…)。 www.adventar.org メールの送信者(From)や件名(Subject)は本来ASCII(の一部の文字)しか書くことができないんですが、MIME(RFC2047)の登場によって日本語等の非…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の7日目の記事です。 qiita.com Crystal を何の気無しに使っていると、気がつくと .crystal というディレクトリがあちこちにできています。 Crystal はコンパイル時に .crystal というディレクトリを…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の6日目の記事です。 qiita.com 1日目の記事で配列が自動拡張されなくてつらいと書いたんですが、配列の範囲外の参照もエラーになります。 array = [0, 1, 2] array[3] [4337095] *CallStack::unwind…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の5日目の記事です。 qiita.com 5日目にして既にネタ切れでもう Ruby は関係ないしつらくもないんですけど、Crystal アドベントカレンダーで日本語ドキュメントがあることを知りました。 www.adventa…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の4日目の記事です。 qiita.com 昨日の記事で、Crystal は深さが不定の配列が作れなくてつらいと書いたんですが、 実際にできないわけないだろうから方法を調べて4日目の記事にしようと思ってたとこ…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の3日目の記事です。 qiita.com Ruby の配列は任意の型のオブジェクトが入りますが、Crystal は特定の型しか入りません。 空配列を作ろうとするとエラーになります。 array = [] #=> Syntax error in…
理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)作者:奥野 幹也発売日: 2015/03/10メディア: 単行本(ソフトカバー) 11/28 に NSEG 第69回勉強会として「理論から学ぶデータベース実践入門」読書会スペシャ…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の2日目の記事です。 qiita.com Ruby だと実行時にエラーが発生すると、エラーが発生したプログラムの位置が出力されるのですが、 def hoge raise "hoge" end hoge % ruby hoge.rb hoge.rb:2:in `hog…
これは「Ruby脳にはCrystalつらい Advent Calendar 2015」の1日目の記事です。 qiita.com Ruby だと配列の範囲外に値を代入すると、 array = [0, 1, 2] array[4] = 4 array #=> [0, 1, 2, nil, 4] のように、配列が自動拡張されるのですが、Crystal で同じこ…
この前買ったマイクロソフトのマウスがハズレだったので購入。 ELECOM ワイヤレスBlueLEDマウス M-XG1 Bluetooth 5ボタン 握りの極み Mサイズ ブラック M-XG1BBBK出版社/メーカー: エレコム発売日: 2013/09/06メディア: Personal Computersこの商品を含むブ…
6年以上使ってたマウスが調子悪くなってきて、ホイールを触ってないのに勝手にスクロールしたり、上にスクロールしようとしてるのに下にスクロールしたりとか、そろそろ限界ぽかったので新しいのを買いました。 マイクロソフト [人間工学]?ワイヤレス Blueto…