メモ: なぜローカルgemをインストールする前に.ruby-versionを消すのか
今日、上の記事があって助かったのだけど、手順の一部の意味がわからなかったのでメモ。記事から手順を引用する。
git clone git://github.com/berkshelf/berkshelf cd berkshelf rm .ruby-version gem build berkshelf.gemspec gem install berkshelf-3.0.0.beta4.gem rbenv rehash
前提知識
OSは、RubyやRubyを使うツールを実行する際に、PATHの先頭に記述されたディレクトリから順にrubyを探す。rbenvは、PATHの先頭に小細工をして、システムにインストールされたRubyと異なるバージョンのRubyを参照するように仕向ける。
rbenvは、使用するRubyのバージョンを次のように決める。
- 環境変数RBENV_VERSIONが定義されていれば使う
- 実行したスクリプトが存在するディレクトリから親ディレクトリに遡り、ファイルシステムのルートに至るまでに最初に見つけた.ruby-versionファイルの設定。
- カレントディレクトリから親ディレクトリに遡り、ファイルシステムのルートに至るまでに最初に見つけた.ruby-versionファイルの設定。なおカレントディレクトリの.ruby-versionの設定は、rbenv localコマンドで上書きできる
- ~/.rbenv/versionの設定。なおこの設定はrbenv globalコマンドで上書きできる。globalバージョンのファイルがなければ、rbenvはシステムにインストールされたRubyを使おうとしているとみなす。
rbenv rehashは、すべての実行可能なRubyに対して、PATH先頭の小細工を (rbenvのドキュメントの言葉にしたがうとshimを) 改めて挿入する。そのため、新しいバージョンのRubyをインストールした場合や、コマンドが提供されるようなgemをインストールした場合(つまり、実行にあたってPATHをたどって実行される場合)、rbenv rehashする必要がある。
PileMdを使いはじめた
使いはじめました。
- エディタ画面がきれい
- プレビュー画面を見にいかなくていいくらい
- 書式なしのテキストを貼りつけできる
- Evernoteとくらべてこの点が最高
会社のブログ (Developers.IO) を書くのにしばらく使ってみます。
分散と並列計算は解こうとする問題領域が違うよのメモ
http://kuenishi.hatenadiary.jp/entry/2016/02/19/174254
元ネタの記事について身近でも話題になりましたが、関連領域についてど素人なので、上の記事の内容を理解するために勝手に図解。
冪等性ってスケールのためのものという認識だった。横っちょに書いた注釈(「ただし」の部分)は余計かも。
下より上のほうが大事になってくるという話だったけど、どっちの話も難しそうですね。詳しい人に頼って生きていきたいものです。
どう書く: 参考問題1「ポーカー」
来月はひさしぶりにどう書くに参加するので、リハビリに参考問題1を解きました。Rubyで。
#!/usr/bin/ruby def is_fourcards (cs) return cs.has_value?(4) end def is_threecards (cs) return cs.has_value?(3) end def cnt_pairs (cs) return cs.select {|k,v| v == 2}.length end input = ARGV[0] ws = input.gsub(/10/,"T").split("") cs = [] ws.each { |w| cs.push(w) unless /S|H|D|C/ =~ w } nums = { } (2..9).each { |n| nums[n.to_s] = 0 } nums.update({"T" => 0, "J" => 0, "Q" => 0, "K" => 0, "A" => 0}) cs.each { |c| nums[c] = nums[c] + 1 } result = "--" if is_fourcards(nums) then rsult = "4K" elsif is_threecards(nums) && cnt_pairs(nums) == 1 then result = "FH" elsif is_threecards(nums) then result = "3K" elsif cnt_pairs(nums) == 2 then result = "2P" elsif cnt_pairs(nums) == 1 then result = "1P" end print result
最初、配列のeachメソッドを呼んでブロックを引数に渡し、ブロック外で定義したhashをブロック内で更新しようとしたら、毎回hashがリセットされてしまって悩みました。スコープ周りを理解してないかも。というか何も理解してないかも。
それはそうと、nidoさんの解答が3行だったので、ひっくり返りました。(ATNDのコメント欄で読めます)
以下、勉強になった点。
- hashのキーに配列を使うという発想はなかった
- トランプのsuitを区切り文字としてsplitするという発想はなかった
- arrayオブジェクトのインデックスをrangeにするのはイディオム?
- [1..-1]にしているのは、区切り文字が先頭にある場合に先頭要素が空白になるから? これって仕様?
- group_byは便利
火星年代記
読みました。楽しかった。
- 作者: レイ・ブラッドベリ,小笠原豊樹
- 出版社/メーカー: 早川書房
- 発売日: 2012/08/01
- メディア: Kindle版
- 購入: 1人
- この商品を含むブログ (6件) を見る
1つ前の日記でこのコンピュータ書がすごい!のメモなんて取ってましたが、今年最初の本の感想はこれっていう。近年cover to coverで通読する技術書がめっきり減ってしまいました。で、通読していない本の感想を書くのは気が引けるなあというわけで、この日記でも技術書の話はご無沙汰です。
それはともかく『火星年代記』。去年の夏に買って、最初の章を読んだ時点で、ちょっと叙情的すぎてついていけないなと感じて放置していました。年の暮れにふと手を出したら、今度は面白く読めました。前回はクラーク先生を読んだ直後で、アドレナリンが出ている時に手に取ったのがいけなかったようです。つまりこの本は疲れている時にオススメですね(?)
寓話的な短い話の集合で、先を読むのが恐ろしいような気がするところも含めて、日本のショートショート作家のあの人みたいだけど、そこまでドライでもないかんじ。絵画的なイメージの浮かぶ、不思議な物語でした。
新春座談会 このコンピュータ書がすごい! 2016年版
「新春座談会 このコンピュータ書がすごい! 2016年版」の配信を聴いたので登場した本をメモ(数冊聞き漏らしたと思う)。
強調は、自分が昨年までに読んだ or これから読みたい本です。
各月のランク入り本
第2レベル以下のリスト項目は、第1レベルの本の説明か、ランク外の関連本の紹介です。
1月
- たった1日で即戦力になれるExcelの教科書
- ファンタジーの世界観を描く
- コンセプトから描き方までを説明
- リーダブルコード
- 伝わるデザインの基本
- デザインの専門家でなくても良いデザインを作るための方法
- Webエンジニアが知っておきたいインフラの基本
- すっきりわかるJava入門 第2版
ブラザーエッグ? ブラウザエッジ?(聞き取れず)ジョナサン・アイブ- ネットワークエンジニアのためのネットワーク技術&設計入門
- LEAN ANALYTICS
- Python言語によるプログラミングインストラクション
- MITのテキスト。Pythonを題材にしたプログラミング教科書
- Unreal Engine 4 超入門 第2版
- 1月に第1版が出て、8月に第2版。UE4を初めて使う人向け
- Serverspec
- ろごたいぷっ!
- 書体の研究の増補改訂版
2月
3月
- 人工知能は人間を超えるか
- 理論から学ぶデータベース実践入門
- はじめよう! 要件定義
- リーン顧客開発
- Unity ゲームUI 実践ガイド
- 絵で見てわかるIoTセンサの仕組みと活用
- 実践ドメイン駆動設計
- DDD本を読んでいる人向けに、どうすれば上手くいくかを解説した本
- コンピュータシステムの理論と実装
- ハロー“Hello,World"OSと標準ライブラリのシゴトとしくみ
- CUDA C プロフェッショナル プログラミング
- 本格ビジネスサイトを作りながら学ぶ WordPressの教科書
- Unity5 3Dゲーム開発講座
- MikuMikuDanceスターターパック2015
- ボカロPの中の人
- AWSクラウドデザインパターン実装ガイド改訂版
4月
- SQL実践入門
- 関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間
- Pythonエンジニア養成読本
- はじめてのiOSアプリ開発Swift対応版
- Photoshopペイントメソッド
- Web制作者のためのIllustrator&ベクターデータの教科書
- コンピュータ・アートの創生:CTGの軌跡と思想
- 入門React
- Javaパフォーマンス
5月
6月
- 現場のプロが教えるHTML+CSSコーディングの最新常識
- デザイニングWebアクセシビリティ
- 【図解】コレ1枚でわかる最新ITトレンド
- Dockerエキスパート養成読本
- エクストリームプログラミング
- 10年戦えるデータ分析入門
- 人工知能 人類最悪にして最後の発明
- シンギュラリティの話
- 改訂新版Jenkins実践入門
読み物系
上半期が終わったところで、読み物系書籍の紹介がありました。
- 会社でビリのサラリーマンが1年でエリートになれるかもしれない話
- エンジニアとして世界の最前線で働く選択肢
- 稼げるSNS tsū(スー)最速攻略ガイド
- アプリビジネス成功への法務戦略
- スパム[spam]:インターネットのダークサイド
- iモードの猛獣使い
- 日本インターネット書紀
- AIは「心」を持てるのか 脳に近いアーキテクチャ
- ビッグデータ・コネクト
- 故人サイト
- エニグマ アラン・チューリング伝 (上下巻)
- マンガ エニグマに挑んだ天才数学者 チューリング
- Failing Fast
- 圏論の歩き方
- コンピュータは数学者になれるのか?
- スマホに満足してますか? ユーザインタフェースの心理学
- ニッポンの個人情報
- HARD THINGS
- 仮想通貨―技術・法律・制度
- エクサスケールの衝撃
- 魔法の世紀
8月
9月
10月
11月
- Amazon Web Services実践入門
- OpenStack Swift―Swiftオブジェクトストレージの管理と開発
- OpenStackクラウドインテグレーション
- 深層学習: Deep Learning
- 進化計算と深層学習
- Swiftではじめる iPhoneアプリ開発の教科書
- 詳解 Swift 改訂版
- Android開発者のためのSwift入門
- コンピューター&テクノロジー解体新書 ビジュアル版
- HTML5/CSS3モダンコーディング
2015年4月から12月に会社ブログに書いた記事の振り返り
今年は勉強会やイベントにあまり参加しませんでした。そこで、1年の個人的な振り返りとして、いつものイベント参加の記録を書くのはやめて、4月以降に会社ブログに書いた記事を振り返ります。
全部で43本、年間で51本でした。読んでくださった方に感謝です。
自選1位と2位の記事
自分で納得のいった記事はこちら。こういうアイデア勝負の記事をもっと書きたいです。
次点はこちら。AWSさんに怒られないレベルの抽象度で、がっつり書きました。
以下では、適当にカテゴリ分けして振り返ります。
セキュリティ関連記事
2月に社内で発足したセキュリティチームで、今年はいろいろ仕事をしました。「何か作業する時は検証して手順をブログに書く」という文化は、ここでも社内のほかの場面と同じです。そんな事情と自分の嗜好も相まって、セキュリティ絡みの記事を結構書きました。
Deep Security
トレンドマイクロ社のDeep Securityに、この1年でずいぶん親しみました。統合IDS/IPS製品なので、本当に多機能ですね。
製品セミナーに参加して、関連資格も取りました (TCSE for Trend Micro Deep Securityの基礎編、実践編、運用編) 。このセミナーはいわゆる高速道路なので、Deep Securityを触るなら、さっさと受けたほうが効率的です。
サーバ手順書記事
社内向けまたは自分用に作ったメモを、ブログで公開したものです。
イベントレポート記事
re:Invent 2015
ラスベガスのカジノホテルのスイートに泊まって、時差ボケにやられながら昼も夜もなくブログを書く、という得難い経験ができました。本当にありがとうございました。
- re:Invent 2015で発表された21個のAWSアップデートを140文字でまとめる
- (レポート) BDT209: リアルタイムデータ分析および可視化のためのAmazon Elasticsearch Service
- (レポート) DVO209: JAWS: 高度にスケーラブルなサーバーレスフレームワーク
- (レポート) STG406: S3を使った数百万ユーザー対応のスケーラブルで無制限なストレージサービスの構築
- (レポート) SEC312: 信頼性の高い設計と、セキュリティおよびコンプライアンスのデプロイ
- re:Inventでセッションを効率的に回るマップの作り方
速報記事を入れると、re:Invent関係では10本書いたようです。
AWS Black Belt Tech Webinar
ここ半年くらいは音質が安定するようになって素晴らしいですね。
業務外のイベント
LINEさんのイベントは刺激的でした。
- LINE DEVELOPER DAY_2015 Tokyo「LINE Platform Development Chronicle」レポート
- LINE DEVELOPER DAY_2015 Tokyo「ビッグデータを活用するための分析プラットフォーム」レポート
次世代Webカンファレンスも刺激的でした。
速報記事
その他の記事
tips、小ネタ、またはQiitaでやれ系
便利ツール紹介
以上でした。
2016年は、2015年よりももっと驚くような面白い技術やサービスに出会って興奮できるように、自分の感受性をメンテナンスするとともに、技術面で精進したいと思います。
今年もありがとうございました。よいお年をお迎えください。