タグ

ブックマーク / rochefort.hatenablog.com (467)

  • AirMac Time Capsuleのディスクが認識しなくなったので分解してみた - rochefort's blog

    ルーターNASとして活用していた AirMac Time Capsule のディスクが突如マウントできなくなりました。 基バックアップ用ディスクなので、それほど困ってはいないのですが、過去の写真の一部でここにしか無いものがあるようで、できれば救いたいと思い、とりあえずHDDを取り出してみました。 用意するもの ヘラ(スパッジャー、スクレイパー) 裏ブタを取るのに使います。 スパッジャーという便利そうなセットが売られているらしいですが、近所のホームセンターになかったので300円ぐらいのヘラ(スクレイパー)で代用。 uxcell 携帯修理用ツールSpudger iPhone対応 ツールキット ツールスパッジャー4 出版社/メーカー: uxcellメディア: エレクトロニクスこの商品を含むブログを見る トルクス(T8) T8は1持ってますが、T6もたまに使うので、以下のようなセットがある

    AirMac Time Capsuleのディスクが認識しなくなったので分解してみた - rochefort's blog
    rochefort
    rochefort 2019/07/29
  • Nuro光のマンションプランを契約 - rochefort's blog

    もともとNuro光使っていたのですが、新プランができたらしく、 料金が半分くらい(2500円)になったのでご紹介。 www.nuro.jp ソフトバンク光は即解約 キャッシュバックキャンペーンに釣られて、引っ越し会社から斡旋されたソフトバンクに契約しました。 どこが1Gbpsやねんという速度(下りで20Mbps)だったので、問い合わせて見たら、 カスタマーサポートの対応が悪く、「初期契約解除制度」を利用し即解約しました。 あと、光BBユニットのレンタルオプションへの加入が無いと速度が早くならないなどオプション周りでも納得いかない点もありました。 ソフトバンク光は、もういいな。 Nuro光へ 月額費用も割高(5000円ちょっと)だったのですが、ソフトバンク光のおかげで とりあえず早くて、サポートの感じが悪くなければ良いというマインドになったので Nuro光へ申し込みました。 工事が2回実施さ

    Nuro光のマンションプランを契約 - rochefort's blog
    rochefort
    rochefort 2019/04/07
  • バージョンアップの自動化をしてくれるDependabotが便利 - rochefort's blog

    他にもいくつかりますし、今更感がありますが去年導入してとても便利だと思ったのでご紹介。 dependabot.com 地味に面倒なライブラリのversion upですが、こいつを入れるだけで GithubのPull Requestまで出してくれます。 rubyだとGemfileを自動検知して良い感じにやってくれます。 こんな感じ あとはmergeするだけ。

    バージョンアップの自動化をしてくれるDependabotが便利 - rochefort's blog
  • SeleniumDriverのエラー(unable to connect to chromedriver 127.0.0.1:9515) - rochefort's blog

    新年早々、seleniumでscrapeしようとしたら、タイトルのエラーとなった。 一般的な解決方法は ググると結構見つかって、chromedriver-helper をuninstallして homebrew で chromedriver入れろとのこと。 現時点ではchromedriverはhomebrewでは扱っていないため(homebrew caskにはある)以下からdownloadしてpathを通した場所に置いてやる。 Downloads - ChromeDriver - WebDriver for Chrome しかし、chromedriver単体では動作するが、ruby経由では動作しない。 原因 chromedriver-helper の古いバージョン(1.2.0)はchromedriver を同梱していたようで、 rbenv環境だとshims以下にwrapperファイルが作ら

    SeleniumDriverのエラー(unable to connect to chromedriver 127.0.0.1:9515) - rochefort's blog
    rochefort
    rochefort 2019/01/05
    2時間くらいハマった
  • 2018買ってすごく良かったもの - rochefort's blog

    色々向き合うべきものが多く、1年ちょっとブログの更新が滞っていました。 2019年はもう少し更新して行きたいです。 まずはリハビリ程度に書きやすい題材で書いてみます。 LOWYAのテレビボード 引越しついでにテレビボードを買い換えたのですが、このLOWYAという家具屋さんがおしゃれかつ安くて とても気に入りました。 [初売り!クーポンで2019円OFF 1/1 0:00〜1/4 0:59] テレビ台 178.6cm ローボード 国産 テレビボード テレビラック ラック 引き出し 収納 収納付き TV台 TVボード AVラック スチール シンプル 日製 価格:47990円(税込、送料無料) (2018/12/31時点) 楽天で購入 公式リンクの方が写真たくさんあるので載せます。 国産ローテレビ台 70V型対応 木製 半完成品 ヴィンテージ調 [幅178.6] [日祝配送不可] | 【公式】

    2018買ってすごく良かったもの - rochefort's blog
    rochefort
    rochefort 2018/12/31
    久しぶりにブログ書いた
  • Ruby throwの使いどころ - rochefort's blog

    例外ではなく、制御構造の話。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目27 スコープから飛び出したい時にはraiseではなくthrowを使おう catchとthrowはgotoの安全バージョン。 StopIterationを使った例 begin @characters.each do |character| @colors.each do |color| if player.valid?(character, color) raise(StopIteration) end end end rescue StopIteration # ... end catchを使うと よりsimpleに書ける。throwの第二引数に値を渡せるのも良いね。これ

    Ruby throwの使いどころ - rochefort's blog
  • Ruby リソースはブロックとensureで管理しよう - rochefort's blog

    File::openの話にとどまらず、リソースを確保するというコードの抽象化の紹介。 (File::openについてはここでは省略) Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目24 リソースはブロックとensureで管理しよう ensureを使ってリソースの解放を行う例 class Lock def self.acquire lock = new lock.exclusive_lock! yield(lock) ensure lock.unlo0ck if lock end end Lock.qcquire do |lock| # ここで例外が発生しても問題なし end しかしこれだとblockがない場合が考慮されていない。 改良版 class

    Ruby リソースはブロックとensureで管理しよう - rochefort's blog
  • Rubyの例外Tips - rochefort's blog

    みんな最初は迷う例外のTips。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目22 raiseにはただの文字列ではなくカスタム例外を渡そう raiseに文字列を渡すとRuntimeErrorとなる >> raise("coffee machine low on water") RuntimeError (coffee machine low on water) カスタムエラークラスの名称 これは大抵どんなでも記載があるのでみんな知っていると思うが、 rubyのExceptionは低水準エラーを含むので、通常の例外はStandardErrorを継承するのが一般的。 名称も〜Errorにしておこうという話。 名前は〜Exceptionとしてしまって

    Rubyの例外Tips - rochefort's blog
    rochefort
    rochefort 2018/02/26
    例外
  • RubyのSet#include? で効率化 - rochefort's blog

    項目18 要素が含まれているかどうかの処理を効率よく行うために集合を使うことを検討しよう Effective Ruby 作者:Peter J.Jones翔泳社Amazon 先ずはArray Array#include? は計算量がO(n) 。 class Role def initialize(name, permissions) @name, @permissions = name, permissions end def can?(permission) @permissions.include?(permission) end end Hashを使うと高速化できる メモリを消費するが、要素へのアクセスはO(log n)。 ハッシュの値はtrueを使うとイミュータブルなグローバル変数となり効率的。 class Role def initialize(name, permissions)

    RubyのSet#include? で効率化 - rochefort's blog
  • nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう - rochefort's blog

    これ知らなかった。 こんな感じで配列を引数にとる場合、「配列」、「nil」、「引数1個」を一括で処理したいと思うことがあると思う。こんな時にこれを解決する方法があった。 これは使っていこう。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目17 nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう 以下のコードをベースに説明。 class Pizza def initialize(toppings) toppings.each do |topping| add_and_price_topping(topping) end end end 可変長引数 書でも紹介されているが、引数を可変長引数に変えるというアプローチで対応してい

    nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう - rochefort's blog
    rochefort
    rochefort 2018/02/24
    Arrayメソッド便利だった!
  • Rubyのコレクション書き換え時の注意点 - rochefort's blog

    これも嵌りがちな内容。 コレクションのコピーについて。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目16 コレクションを書き換える前に引数として渡すコレクションのコピーを作っておこう ラジオのTunerを例に。 class Tuner def initialize(presets) @presets = presets clean end private def clean # 末尾が奇数のみを抽出 @presets.delete_if { |f| f[-1].to_i.even? } end end >> presets = %w(90.1 106.2 88.5) >> tuner = Tuner.new(presets) # 書き換えられちゃ

    Rubyのコレクション書き換え時の注意点 - rochefort's blog
  • クラス変数("@@")やめとけってよ - rochefort's blog

    クラス変数("@@")使う人あんまりいないと思うけど、グローバル変数と同じようなもんだから使うなよっていう話。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目15 クラス変数よりもクラスインスタンス変数を使うようにしよう クラス変数を使ってSingletonを実装してみる 一見いい感じ。 class Singleton private_class_method(:new, :dup, :clone) def self.instance @@single ||= new end end でもサブクラスだとNG 全てのサブクラス間で共有されてしまう。 class Configuration < Singleton; end class Database

    クラス変数("@@")やめとけってよ - rochefort's blog
  • MacのCPU温度を調べる方法 - rochefort's blog

    少し前に古いMacoBook AirからMac Bookに乗り換えたんだけど、Mac体が結構熱くなってヤキモキしています。 とりあえず、CPU温度を測るツールを導入して見ました。 MacBook (12-inch/1.1GHz Dual Core Intel Core m3/256GB/8GB/802.11ac/USB-C/スペースグレイ) 出版社/メーカー: アップル発売日: 2016/04/20メディア: Personal Computersこの商品を含むブログを見る iStats なんとRubygemsで公開されていました。見た目が良い。 Chris911/iStats: Ruby gem for your mac stats ソースをのぞいてみると iStats/smc.c at master · Chris911/iStats CのコードでMacAPIを叩いているようです。

    MacのCPU温度を調べる方法 - rochefort's blog
    rochefort
    rochefort 2018/02/21
    アッチッチ
  • Rubyのprotectedの使いどころ - rochefort's blog

    Rubyのprivate/protectedは特殊で誰しもが混乱する設計の一つです。 そんなprotectedの使い所について書かれています。 Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目14 protectedメソッドを使ってプライベートな状態を共有しよう カプセル化が邪魔になるケース 他のオブジェクトの内部状態にアクセスしなければならない場合。 instance_eval使えばいけるけど、、、 class Widget # 他のobjectと座標が重なっているかチェックする場合など def overlapping?(other) x1, y1 = @screen_x, @screen_y x2, y2 = other.instance_eva

    Rubyのprotectedの使いどころ - rochefort's blog
  • RubyのComparableモジュールで比較を実装 - rochefort's blog

    Effective Ruby 作者: Peter J.Jones出版社/メーカー: 翔泳社発売日: 2015/01/19メディア: Kindle版この商品を含むブログ (5件) を見る 項目13 "<=>"とComparableモジュールで比較を実装しよう 例にでてくるのはバージョンの比較を実装する時の話。 例えば、"10.10.3"と"10.9.8"のような比較の場合どうするか? Object#<=> 2つのオブジェクトが等しいかどうかをテストするだけの汎用メソッド。 class Version attr_reader(:major, :minor, :patch) def initialize(version) @major, @minor, @patch = version.split(".").map(&:to_i) end end >> %w(10.10.3 10.9.8).ma

    RubyのComparableモジュールで比較を実装 - rochefort's blog
  • facebookのosqueryがキモすごい - rochefort's blog

    プロセスとかハードウェアの情報をSQL likeに取得できるすごいツール。 詳しく読んでないですが、CLIだけでなくdaemonとして動かして結果も記録できるとのこと。 osquery | Easily ask questions about your Linux, Windows, and macOS infrastructure 物によってはコマンド打つより、見やすくていいかもしれない。 こんな感じ SELECT DISTINCT process.name, listening.port, process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid WHERE listening.address = '0.0.0.0'; 他には 以下にテーブ

    facebookのosqueryがキモすごい - rochefort's blog
    rochefort
    rochefort 2018/02/16
  • Amazon Echo Dot(Alexa)とNode-REDで家電をスマートホームに対応させる - rochefort's blog

    最近、Echo(Alexa)をそこそこ使っています。 特にエアコンのオン・オフは便利でおすすめです。 Amazon Echo Dot(Alexa)を活用してみる IFTTT + トリガーの問題点 便利は便利なのですが、 現状は は、IFTTT + トリガーで実行しているため、最後に「トリガー」と言わなければいけませんでした。 具体的には、「Alexa エアコンオン トリガー」みたいな感じでした。 すごい不自然です。 Node-RED でスマートホームに対応させる スマートホームに対応させることで「Alexa エアコンつけて」という感じでとても自然な言い回しになります。 通常スマートホームは、家電側が対応していないと利用できないのですが、Node-RED Alexa Home Skill Bridge を利用することで、スマートホームに登録することができます。Alexaの呼び出しをNode-

    Amazon Echo Dot(Alexa)とNode-REDで家電をスマートホームに対応させる - rochefort's blog
    rochefort
    rochefort 2018/02/14
    Node-REDめちゃくちゃ便利だった。
  • Effective Ruby: Struct便利だよ - rochefort's blog

    項目10 構造化データの表現にはHashではなくStructを使おう CSVファイルの取り込み時などに、それ用のクラスを作るの面倒だなという場合は、Structが良いというお話。 私もこの手のやつはHashだと扱いにくいので、自然とStructを使うようにしていました。 でも最近、Nestされた構造化データを扱うときにはHashが便利になるケースもあると最近学びました。 話がそれるので、この話はまたの機会に。 以下、題。 Effective Ruby 作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型この商品を含むブログ (13件) を見る Hashの問題点 CSVファイルの読み込み時などにHashを使ってしまうと以下のような問題が起きます。 1. keyを意識しないといけなくなる 要はインターフェースとし

    Effective Ruby: Struct便利だよ - rochefort's blog
    rochefort
    rochefort 2018/02/11
    これはこの通りで、Structよく使います。
  • Effective Ruby: superってメソッドとちゃうんやで - rochefort's blog

    項目7 superのふるまいがひと通りでないことに注意しよう Effective Ruby 作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型この商品を含むブログ (13件) を見る super superってメソッドではなくキーワードだったんですね。 superとsuper()で挙動が異なるなんて知りませんでした! (もしかすると昔学んだかもしれないが、忘れている。) class SuperSilliness < SillyBase def m1(x, y) super(1, 2) # 1と2を渡して呼び出し super(x, y) # xとyを渡して呼び出し super x, y # 上と同じ super # 上と同じ super() # 引数なしで呼び出し end end 最後2つ要注意。 overri

    Effective Ruby: superってメソッドとちゃうんやで - rochefort's blog
  • Amazon Echo Dot(Alexa)を活用してみる - rochefort's blog

    買ってから2ヶ月くらいほったらかしにしていたAmazon Echo Dot(Alexa)をちゃんと使ってみました。Echo Dotはサイズ感も手頃で良いです。 反応がとても良く、そこそこ便利です。あとIFTTTやっぱ便利だわ。 今後は照明をHue or IKEA のやつにしようか思案中。 Amazon Echo Dot (Newモデル)、ブラック 出版社/メーカー: Amazon発売日: 2017/11/15メディア: エレクトロニクスこの商品を含むブログ (2件) を見る Wunderlist連携 ちょっとしたTodo管理にはWunderlistを使っていて、これを音声で登録できると捗るわと思っていました。 Wunderlistは、iPhonePC両方使いやすので気に入っています。(MSに買収されてこの先どうなるかわかりませんが) やり方 Wunderlist のAPI叩いたりするのか

    Amazon Echo Dot(Alexa)を活用してみる - rochefort's blog
    rochefort
    rochefort 2018/02/09
    便利です