ラベル 技術書 の投稿を表示しています。 すべての投稿を表示
ラベル 技術書 の投稿を表示しています。 すべての投稿を表示
2017年4月30日日曜日

初めてのRuby 1章について

  • 「言語のしくみ」を読んで、MatzさんとRubyに改めて興味を持ったので、Rubyエンジニアの方に聞いたら「Rubyは作りたいものを作りやすい」とのことでした。
  • 「初めてのRuby」を以前買っていたので読み直しました。
  • 他の言語経験者向けの入門書で、他の言語や一般的な言語の作りと比較してRubyの基本を説明しています。リファレンスを読みながら進められるところまで。
  • 「1章 ようこそ、Rubyのある生活へ」で気になったところをまとめました。
  • コラムでは、「文字列の変更可能性」や「型変換」など、簡潔に他言語との比較で、はまりそうなポイントを説明していて気に入ってます。
  • バージョンが1.8, 1.9対応だったのが難ですが、それ以外はおすすめです。

1章 ようこそ、Rubyのある生活へ

  • Rubyの主要概念が書いてある。
  • バージョンナンバーの振り方や、開発環境/実行環境など一通り書いてある。
  • Rubyの文脈を理解してRubyらしいコードを書くとよい。

Rubyの特徴的な部分で気になったところ

  • 動く擬似コード
    • ほぼ擬似コードのまま動く
    • 処理の本質的な記述に集中できる。
  • 高階関数
    • コードブロックというオブジェクトをやりとりすることができる。無名関数のように使える。
    • コードブロックを受け取るメソッド(=高階関数的に動く) => ブロック付きメソッド
    • コードブロックはクロージャとして機能するが、メソッドはそうではない。
  • DSL
    • 言語内DSL
    • カスタム言語を追加する => それを使ってソフトを作る。
    • このスタイルがRubyでは一般的になっている。
  • 動的
    • 実行時にクラス定義を処理する。
    • メリットはクラス定義まで通常の制御で管理できる。
    • デメリットはクラス名がずれたりしても、実行時エラーにしかならない。
    • どちらにしろ単体テストかくのだから、そのあたりは問題ないという考え方も。
  • メタプログラミング
    • DSL/動的な機能を使って、かなりの部分をパラメータ化できる。
    • それをしようとしたときに、特別な宣言等をする必要なく、シームレスに言語を拡張できる。
    • クラス定義が実行時に行われるため。

機能探索順

  1. 専用の文法
  2. 組み込み関数
  3. 組み込みクラス
  4. 標準ライブラリ
  5. 外部ライブラリ
  6. 自作

構成

  • 言語本体
  • 組み込みライブラリ
    • 組み込み定数
    • 組み込み変数
    • 組み込み関数
    • 組み込みクラス
  • 標準添付ライブラリ

外部ライブラリ

  • 標準添付ライブラリ
    • 追加インストール不要。
    • ユーザプログラムからインクルード必要。
  • 外部ライブラリ
    • 基本はRubyで書かれている
    • 拡張ライブラリ(C言語等で書かれたネイティブライブラリ)

実行環境

  • 対話

    irb
  • スクリプト実行

    ruby hello.rb
  • デバッガ

    ruby -rdebug hello.rb
  • リファレンス
    • コマンドライン

      ri String
    • irb

      irb help

あると便利

2017年4月24日月曜日

IoTを調べた情報ソース

  • IoTについてキャッチアップしたときの情報源です(2017年4月)。

入門

  • 技術・ビジネス両面を解説している。
  • 最初に概要をつかむにはよい。

図解でわかるIoTビジネス いちばん最初に読む本

  • IoTの活用事例が載っていて、イメージがつかみやすい。
  • 技術解説を含めて初心者向けでわかりやすい。
  • https://www.amazon.co.jp/gp/product/4897951976/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1

IoTとは何か 技術革新から社会革新へ (角川新書)

  • TRONの坂村氏によるIoT入門本。
  • 早期から研究してきた立場から書いている。
  • https://www.amazon.co.jp/IoT%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B-%E6%8A%80%E8%A1%93%E9%9D%A9%E6%96%B0%E3%81%8B%E3%82%89%E7%A4%BE%E4%BC%9A%E9%9D%A9%E6%96%B0%E3%81%B8-%E8%A7%92%E5%B7%9D%E6%96%B0%E6%9B%B8-%E5%9D%82%E6%9D%91-%E5%81%A5/dp/4040820584/ref=asap_bc?ie=UTF8

インターネット白書2017 IoTが生み出す新たなリアル市場

  • 定番だが、一通り押さえられる。
  • IoTの他にもAI、ブロックチェーンなどこの1年話題になった技術に触れている。
  • https://www.amazon.co.jp/gp/product/B01MYDIDWW/ref=oh_aui_d_detailpage_o04_?ie=UTF8&psc=1

技術入門

IoTエンジニア養成読本

  • IoTを使ったサービスを作る際に必要な技術を一通り押さえている。
  • ハンズオンがある。
  • https://www.amazon.co.jp/gp/product/4774188654/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1

雑誌

  • トランジスタ技術
  • Interface
  • ラズパイマガジン

ネットニュース

  • IoTNews
  • https://iotnews.jp/
  • Make:
  • http://makezine.jp/
  • カメリオ IoTタグ
  • https://lp.kamel.io/

IoTプラットフォーム

  • サービス名 - プロバイダー
  • 大手はたいていサービスを提供している
    • AWSIoT - Amazon
    • Azure - Microsoft
    • Watson IoT Platform - IBM
  • SORACOM - SORACOM
  • Kii - Kii
  • さくらのIoT Platform - さくらインターネット
  • Predix - GE
  • Lumada - 日立
  • ABEJA Platform Open - ABEJA

勉強会

  • IoT縛りの勉強会
  • https://iotlt.connpass.com/

事例

  • クラウドファンディング(特に海外)はIoTプロダクトの宝庫
  • https://www.kickstarter.com/
2016年9月22日木曜日

プログラミングElixir 日本語版 オススメです

8/22に待望のプログラミングElixirの日本語版が出ました。

事前予約して、発売日に入手、すぐに一通り読みました。

すでに紹介記事は幾つかありますが、Elixirに興味のある方には是非読んで欲しいので、記事を書きました。

概要

最も良いと感じたところは、リファレンスではなく、Elixirを使うための実践的なガイドになっているところです。

しかも、ただのサンプルコードを集めたものではなく、Elixirの攻略のポイントとなる点をちゃんと押さえています。

Elixirで書く際の「コンセプトを伝える」という視点のため、やはり日本語で読めるのは助かります。コードサンプルはごく基本的なものなので、原書のサンプルをざっと当たるような読み方だと少しもったないので、原書を持っている方もおすすめです。

Elixir入門に最適の1冊

他の本でいうと、「入門 Elixir」というレベルからカバーしていて、初めてElixirを触る人向けの内容になっています。

それぞれのトピックについては、深入りしていませんが、Elixirを学ぶ上でポイントとなる、以下をしっかりと押さえています。

  • 関数型プログラミング
  • 並行プログラミング
  • Elixirプロジェクトの作り方・動かし方

特にトピックである、並行プログラミングについては、OTPフレームワーク、スーパーバイザーによる監視、、、など一通り紹介されていて、Elixirでできることの全体像がつかめます。

また、ノードを使った分散処理についての章もあります。

この本をとっかかりに、気になった部分を深掘りして勉強していくのがいいと思います。

mixを使ったプロジェクト周りが詳しい

また、便利なのが、Elixirプロジェクトの作り方と動かし方の部分です。

そのあたりの説明は、実際に、mixを使ってプログラムを作っていく構成になっているため、この本を読んだ後は、すぐにコードを書き始められます。

例えば、Elixirでは、ライブラリも基本的にプロセスとして起動して、使う必要があるため、mix.exsで起動指定するのですが、そのあたりもどこに設定を記述するのか、なぜそれが必要なのか?をしっかりと記載しているため、非常に役立ちます。

この辺りの情報は、Elixirのように実際のプロジェクトコードや記事の絶対量が少ない言語については、とても助かります。

Elixirはその性能もさることながら、シンプルで使いやすい言語です。日本語本が出て、環境も整ってきてますので、興味があればぜひお試しください!