Ruby throwの使いどころ

例外ではなく、制御構造の話。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目27 スコープから飛び出したい時にはraiseではなくthrowを使おう catchとthrowはgotoの…

Ruby リソースはブロックとensureで管理しよう

File::openの話にとどまらず、リソースを確保するというコードの抽象化の紹介。 (File::openについてはここでは省略) Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る …

Rubyの例外Tips

みんな最初は迷う例外のTips。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目22 raiseにはただの文字列ではなくカスタム例外を渡そう raiseに文字列を渡すとRuntim…

RubyのSet#include? で効率化

項目18 要素が含まれているかどうかの処理を効率よく行うために集合を使うことを検討しよう Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 先ずはArray Array#include? …

nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう

これ知らなかった。 こんな感じで配列を引数にとる場合、「配列」、「nil」、「引数1個」を一括で処理したいと思うことがあると思う。こんな時にこれを解決する方法があった。 これは使っていこう。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳…

Rubyのコレクション書き換え時の注意点

これも嵌りがちな内容。 コレクションのコピーについて。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目16 コレクションを書き換える前に引数として渡すコレクショ…

クラス変数("@@")やめとけってよ

クラス変数("@@")使う人あんまりいないと思うけど、グローバル変数と同じようなもんだから使うなよっていう話。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目15 …

MacのCPU温度を調べる方法

mac

少し前に古いMacoBook AirからMac Bookに乗り換えたんだけど、Mac本体が結構熱くなってヤキモキしています。 とりあえず、CPU温度を測るツールを導入して見ました。 MacBook (12-inch/1.1GHz Dual Core Intel Core m3/256GB/8GB/802.11ac/USB-C/スペースグレ…

Rubyのprotectedの使いどころ

Rubyのprivate/protectedは特殊で誰しもが混乱する設計の一つです。 そんなprotectedの使い所について書かれています。 Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る …

RubyのComparableモジュールで比較を実装

Effective Ruby作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目13 "<=>"とComparableモジュールで比較を実装しよう 例にでてくるのはバージョンの比較を実装する時の話。 例えば、"…

facebookのosqueryがキモすごい

プロセスとかハードウェアの情報をSQL likeに取得できるすごいツール。 詳しく読んでないですが、CLIだけでなくdaemonとして動かして結果も記録できるとのこと。 osquery | Easily ask questions about your Linux, Windows, and macOS infrastructure 物に…

Amazon Echo Dot(Alexa)とNode-REDで家電をスマートホームに対応させる

最近、Echo(Alexa)をそこそこ使っています。 特にエアコンのオン・オフは便利でおすすめです。 Amazon Echo Dot(Alexa)を活用してみる IFTTT + トリガーの問題点 便利は便利なのですが、 現状は は、IFTTT + トリガーで実行しているため、最後に「トリガ…

Effective Ruby: Struct便利だよ

項目10 構造化データの表現にはHashではなくStructを使おう CSVファイルの取り込み時などに、それ用のクラスを作るの面倒だなという場合は、Structが良いというお話。 私もこの手のやつはHashだと扱いにくいので、自然とStructを使うようにしていました。 で…

Effective Ruby: selfを書く場所

Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この商品を含むブログ (13件) を見る 「項目8 サブクラスを初期化するときにはsuperを呼び出そう」は、そのまんまで 子クラスでinitializeメソ…

SLEEP 読了

こいつは、面白かった。 内容的には、睡眠に良い・悪いとされる事柄についてホルモンとの関係性を示しながら、だからこうなんだよと書かれている。おすすめは前半。 章ごとにどうすれば良いのかというがまとめて書かれているのも良いです。 SLEEP 最高の脳と…

Effective Ruby: superってメソッドとちゃうんやで

項目7 superのふるまいがひと通りでないことに注意しよう Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この商品を含むブログ (13件) を見る super superってメソッドではなくキーワードだ…

Amazon Echo Dot(Alexa)を活用してみる

買ってから2ヶ月くらいほったらかしにしていたAmazon Echo Dot(Alexa)をちゃんと使ってみました。Echo Dotはサイズ感も手頃で良いです。 反応がとても良く、そこそこ便利です。あとIFTTTやっぱ便利だわ。 今後は照明をHue or IKEA のやつにしようか思案中…

Effective Ruby: 特異クラスとかその辺の話

項目6 Rubyが継承階層をどのように組み立てるかを頭に入れよう 「項目5 実行時の警告に注意しよう」-wオプションと$VERBOSE変数の話でした。 知っているべき内容ですが、既に理解している内容だったので1個飛ばし。 内容的には、include時に不可視な特異ク…

Effective Ruby: 定数がミュータブルなことに注意しよう

良書やなEffective Ruby。 項目4 定数がミュータブルなことに注意しよう 定数のfreeze module Defaults NETWORKS = ["192.168.1", "192.168.2"].freeze end def host_addresses(host, networks=Defaults::NETWORKS) networks.map { |net| net << ".#{host}" …

Effective Ruby: Perlっぽい記号やめようぜ

項目3 Rubyの暗号めいたPerl風機能を避けよう お題目は、その通り!!という感じです。 例が面白かったのでご紹介。 while readline print if ~ /^ERROR:/ end ぱっと見、各行頭がERROR: で始まるものを出力しそうだというのは分かりますが、具体的にどうな…

Effective Ruby: 項目2 nilオブジェクトのNoMethodError対策

セクションごとに記事を書いていくつもりはなかったのですが、良いこと書いているなと思ったので。 項目2 オブジェクトを扱うときにはnilかもしれないということを忘れないようにしよう nilオブジェクトのNoMethodErrorに出くわすことはしばしばありますが、…

Effective Ruby: 項目1 Rubyのtrue/falseについて

項目1 Rubyは何を真と考えているかを正確に理解しよう 以下のコードを見て 一瞬あれ?となりました。 class Bad def == (other) true end end ?> false == Bad.new => false ?> Bad.new == false => true 最後のは、methodの戻り値が返っていました。 Object…

BOOKSCANのUIが辛い

最近、本棚から本が溢れてどうしようもないので、BOOKSCANを使ってみました。 ホームページはよくわからん感じで、管理画面のUIは分かりにくく、色々問題あるけど、スキャン自体は今の所いい感じにやってくれているので、まぁよしとするか。という感じで妥協…

ドットインストールにお布施

ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト 今更ですが、ドットインストールにお布施をしておきました。 気がついたら700本くらい見てたので、これは 1回くらいお布施しておかねばと思い、感謝の気持ちでやって見ました…

SafariのVim化Extension vimariが良い

GitHub - guyht/vimari: Safari port of vimium ちょっと久しぶりにSafari使ってみようかという気になったのでVim化プラグインを探したところ、たくさん出て来ました。 sVim Vimmy vimari sVimが結構前からあるようですが、vimari はstarの数も多く、何より…

jqコマンドでJSONをJSONL(JSON Lines)に変換する

json便利だけど、ちょろっと見るときには1レコード1行で見たいと思ったので JSONLに変換する方法を調べて見ました。 (と言っても、stackoverflow ですぐ見つかった) やり方 こんなやつを $ cat japanese_banks.json [ { "class1": "中央銀行", "class2": n…

header付きCSVをJSONに変換する

銀行コードが付与された一覧を作りたかったのでwikiからnumbersで一覧にして、CSVにexportしたのちjsonに変換しました。 日本の銀行一覧 - Wikipedia Convert from CSV to JSON require 'csv' require 'json' body = File.open("japanese_banks.csv").read c…

メモ:極めろ!!Google Chrome Devtools 52の関節技

極めろ!!Google Chrome Devtools 52の関節技 - Qiita こういうの好きなのでついつい見てしまいます。 結構知らないのがあり、勉強になりました。 30.リソース依存関係を表示 ①shiftを押しながらリソース名をhoverする 33.各リソースを読み込みにかかった時…

2017年に買って良かったもの

今年はあまりモノ買ってないので数は少ないですが、以下非常に良かったです。 モニターアーム 今年買って良かったものとしては、ダントツでモニターアームです。 ガス圧なので滑らかに動きます。 デスクに少し余裕がるノートPCユーザにオススメ。 モニターア…

プログラマのための文字コード技術入門 読了

長らく積読状態でしたが、これはいかんという思いで、掃除のついでに読みました。 プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(…