Hatena::ブログ(Diary)

虎塚 このページをアンテナに追加 RSSフィード Twitter

2016-03-31

PileMdを使いはじめた

PileMd: Think with you

使いはじめました。

  • エディタ画面がきれい
    • プレビュー画面を見にいかなくていいくらい
  • 書式なしのテキストを貼りつけできる
    • Evernoteとくらべてこの点が最高

会社のブログ (Developers.IO) を書くのにしばらく使ってみます。

2016-02-21

分散と並列計算は解こうとする問題領域が違うよのメモ

http://kuenishi.hatenadiary.jp/entry/2016/02/19/174254

元ネタの記事について身近でも話題になりましたが、関連領域についてど素人なので、上の記事の内容を理解するために勝手に図解。

f:id:torazuka:20160221210536p:image

冪等性ってスケールのためのものという認識だった。横っちょに書いた注釈(「ただし」の部分)は余計かも。

下より上のほうが大事になってくるという話だったけど、どっちの話も難しそうですね。詳しい人に頼って生きていきたいものです。

2016-01-12

どう書く: 参考問題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は便利

2016-01-10

火星年代記

読みました。楽しかった。

火星年代記 ハヤカワ文庫SF

火星年代記 ハヤカワ文庫SF

1つ前の日記でこのコンピュータ書がすごい!のメモなんて取ってましたが、今年最初の本の感想はこれっていう。近年cover to coverで通読する技術書がめっきり減ってしまいました。で、通読していない本の感想を書くのは気が引けるなあというわけで、この日記でも技術書の話はご無沙汰です。

それはともかく『火星年代記』。去年の夏に買って、最初の章を読んだ時点で、ちょっと叙情的すぎてついていけないなと感じて放置していました。年の暮れにふと手を出したら、今度は面白く読めました。前回はクラーク先生を読んだ直後で、アドレナリンが出ている時に手に取ったのがいけなかったようです。つまりこの本は疲れている時にオススメですね(?)

寓話的な短い話の集合で、先を読むのが恐ろしいような気がするところも含めて、日本のショートショート作家のあの人みたいだけど、そこまでドライでもないかんじ。絵画的なイメージの浮かぶ、不思議な物語でした。

2016-01-09

新春座談会 このコンピュータ書がすごい! 2016年版

「新春座談会 このコンピュータ書がすごい! 2016年版」の配信を聴いたので登場した本をメモ(数冊聞き漏らしたと思う)。

強調は、自分が昨年までに読んだ or これから読みたい本です。

年間1〜5位

  • 5位: 暗号技術入門 第3版
  • 4位: リーダブルコード
  • 3位: すっきりわかるJava入門 第2版
  • 2位: 人工知能は人間を超えるか
  • 1位: たった1日で即戦力になれるExelの教科書

ランキング外の注目シリーズ

  • 角川インターネット講座 全15巻
    • 村井先生の1巻だけ読んだ
  • 講談社の機械学習プロフェッショナルシリーズ

各月のランク入り本

第2レベル以下のリスト項目は、第1レベルの本の説明か、ランク外の関連本の紹介です。

1月
  • たった1日で即戦力になれるExcelの教科書
    • 世紀末救世主伝説 エクセル関数北斗百列拳
    • ハローキティのExcel使いこなしアイデアBOOK
    • 迷惑をかけないExcel
      • 入力、出力、計算を別々のシートに分けましょうという内容
  • ファンタジーの世界観を描く
    • コンセプトから描き方までを説明
  • リーダブルコード
  • 伝わるデザインの基本
    • デザインの専門家でなくても良いデザインを作るための方法
  • Webエンジニアが知っておきたいインフラの基本
  • すっきりわかるJava入門 第2版
  • ブラザーエッグ? ブラウザエッジ?(聞き取れず)ジョナサン・アイブ
  • ネットワークエンジニアのためのネットワーク技術&設計入門
  • LEAN ANALYTICS
  • Python言語によるプログラミングインストラクション
    • MITのテキスト。Pythonを題材にしたプログラミング教科書
  • Unreal Engine 4 超入門 第2版
    • 1月に第1版が出て、8月に第2版。UE4を初めて使う人向け
  • Serverspec
  • ろごたいぷっ!
    • 書体の研究の増補改訂版
2月
  • デジタルイラストの「背景」描き方事典
  • Maya実践ハードサーフェスモデリング
  • ディープラーニング、ビッグデータ、機械学習 あるいはその心理学
    • Splunkではじめるビッグデータ分析
    • HBase徹底入門
    • はじめてのSpark
    • Google BigQuery
    • オープンデータ時代の標準Web API SPARQL
  • ハッカーの学校
    • ネットワークコマンドの使い方をまとめた感じの本
    • ハッカーの学校 個人情報調査の教科書
    • データ匿名化手法
  • 融けるデザイン ハード×ソフト×ネット時代の新たな設計論
    • UIデザイナー、UXにかかわる人向け。モバイル時代に変化したインタラクション設計について
  • Androidプログラミングバイブル
3月
  • 人工知能は人間を超えるか
    • 東大准教授に教わる「人工知能って、そんなことまでできるんですか?」
    • これまでの人工知能ブームとの違いなど説明
  • 理論から学ぶデータベース実践入門
    • RDBの理論が実際のDBMSにどう反映されているか
  • はじめよう! 要件定義
    • リーン顧客開発
  • Unity ゲームUI 実践ガイド
  • 絵で見てわかるIoTセンサの仕組みと活用
    • iOS×BLE Core Bluetoothプログラミング
    • ボクのLPC810工作ノート
    • 東京モノ作りスペース巡り
    • ハッカソンの作り方
    • ROSではじめるロボットプログラミング―フリーのロボット用「フレームワーク
    • Pepperプログラミング 基本動作からアプリの企画・演出まで
    • 確率ロボティクス
  • 実践ドメイン駆動設計
    • DDD本を読んでいる人向けに、どうすれば上手くいくかを解説した本
  • コンピュータシステムの理論と実装
    • ハロー“Hello,World"OSと標準ライブラリのシゴトとしくみ
    • CUDA C プロフェッショナル プログラミング
  • 本格ビジネスサイトを作りながら学ぶ WordPressの教科書
    • 詳解WordPress
    • いちばんやさしいコンテンツマーケティングの教本
  • Unity5 3Dゲーム開発講座
  • MikuMikuDanceスターターパック2015
    • ボカロPの中の人
  • AWSクラウドデザインパターン実装ガイド改訂版
4月
  • SQL実践入門
  • 関数型プログラミングに目覚めた!IQ145の女子高校生の先輩から受けた特訓5日間
  • Pythonエンジニア養成読本
  • はじめてのiOSアプリ開発Swift対応版
  • Photoshopペイントメソッド
    • Web制作者のためのIllustratorベクターデータの教科書
    • コンピュータ・アートの創生:CTGの軌跡と思想
  • 入門React
  • Javaパフォーマンス
5月
  • デジタル原型師養成講座
  • シェルプログラミング実用テクニック
  • すべてのUNIXで20年動くプログラムはどう書くべきか
  • 誰のためのデザイン? 増補・改訂版
  • その数式、プログラムできますか?
6月
  • 現場のプロが教えるHTML+CSSコーディングの最新常識
  • 【図解】コレ1枚でわかる最新ITトレンド
  • Dockerエキスパート養成読本
  • エクストリームプログラミング
  • 10年戦えるデータ分析入門
    • 第1部はSQLの話、第2部はSQLを使うシステムのアーキテクチャの話
    • 「少し先の未来」を予測する クックパッドのデータ分析力
  • 人工知能 人類最悪にして最後の発明
    • シンギュラリティの話
  • 改訂新版Jenkins実践入門
読み物系

上半期が終わったところで、読み物系書籍の紹介がありました。

  • 会社でビリのサラリーマンが1年でエリートになれるかもしれない話
  • エンジニアとして世界の最前線で働く選択肢
  • 稼げるSNS tsū(スー)最速攻略ガイド
  • アプリビジネス成功への法務戦略
  • スパム[spam]:インターネットのダークサイド
  • iモードの猛獣使い
  • 日本インターネット書紀
  • AIは「心」を持てるのか 脳に近いアーキテクチャ
  • ビッグデータ・コネクト
  • 故人サイト
  • エニグマ アラン・チューリング伝 (上下巻)
  • マンガ エニグマに挑んだ天才数学者 チューリング
  • Failing Fast
  • 圏論の歩き方
  • コンピュータは数学者になれるのか?
  • スマホに満足してますか? ユーザインタフェースの心理学
  • ニッポンの個人情報
  • HARD THINGS
  • 仮想通貨―技術・法律・制度
  • エクサスケールの衝撃
  • 魔法の世紀
7月
  • おうちで学べるセキュリティのきほん
  • データ解析の実務プロセス入門
  • Unityで神になる本。
  • CSS3開発ガイド
  • スクラム 仕事が4倍速くなる“世界標準”のチーム戦術
8月
  • 暗号技術入門 第3版
    • クラウドを支えるこれからの暗号技術
  • 最速の仕事術はプログラマーが知っている
  • 文系でも知っておきたいプログラミングとプログラマーのこと
    • プログラミングバカ一代
  • Unity5 3D/2Dゲーム開発 実践入門
  • ヘルシープログラマ
  • Unreal Engine 4で極めるゲーム開発
  • ファンタジー背景画 パーツ編
9月
  • データサイエンティスト養成読本 機械学習入門編
  • JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
    • 明解WebGL
    • HTML5+Web Audio APIによるオーディオデータプロセッシング
  • Effective Modern C++
    • プログラミング言語C++第4版
    • C++のエッセンス
    • C++11/14 コア言語
  • あなたの知らない超絶技巧プログラミングの世界
  • ゲームグラフィックス 2015 CGWORLD特別編集版
    • ゲーマーはもっと経営者を目指すべき!
    • ゲームエンジン・アーキテクチャ 第2版
    • Game Programming Patterns
  • たのしいインフラの歩き方
    • ネットワークエンジニアの教科書
    • 絵で見てわかるWindowsインフラの仕組み
    • まんがでわかるLinux シス管系女子 2
    • コンピュータネットワークとインターネット 第6版
    • DevOpsを支えるHashiCorpツール大全
    • 詳説 イーサネット 第2版
    • Nginx ポケットリファレンス
  • 人工知能入門
  • PHPはどのように動くのか
10月
  • Docker実践入門
  • ITエンジニアのための機械学習理論入門
  • メタプログラミングRuby 第2版
  • サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考
  • セキュリティコンテストチャレンジブック
  • さよなら、インタフェース -脱「画面」の思考法
    • UI GRAPHICS -世界の成功事例から学ぶ、スマホ以降のインターフェイスデザイン
    • A/Bテストの教科書
  • 岩波データサイエンス Vol.1
  • プログラマ脳を鍛える数学パズル
    • 近似アルゴリズムデザイン
    • レイティング・ランキングの数理
    • The Art of Computer Programming
    • 超高速グラフ列挙アルゴリズム
11月
  • Amazon Web Services実践入門
    • OpenStack Swift―Swiftオブジェクトストレージの管理と開発
    • OpenStackクラウドインテグレーション
  • 深層学習: Deep Learning
    • 進化計算と深層学習
  • Swiftではじめる iPhoneアプリ開発の教科書
    • 詳解 Swift 改訂版
    • Android開発者のためのSwift入門
  • コンピューター&テクノロジー解体新書 ビジュアル版
  • HTML5/CSS3モダンコーディング
12月
  • APIデザインケーススタディ
    • Redmine実践ガイド
  • 入門Python3
    • Cython
  • アニメCGの現場 2016
  • インフラエンジニア教本2
  • ランディングページ・デザインメソッド
  • レスポンシブEメールデザイン

以上でした。今年も面白かったです。ありがとうございました。