Software Design 2015年8月号

今号の特集概要

第1特集
なぜ関数型プログラミングは難しいのか?
Lisp,Scala,Haskell,Elixir,Python,Clojure,関数型のエッセンスを学習する

なぜ「関数型プログラミング」は難しいのか。その問いに応えるべく総力特集を組みました。まず原点に戻るためLispの基礎を解説しました。歴史を振り返りながら,数学の関数との違い,Lispの特徴紹介とその使いこなしをまとめました。

そして現代です。チャットワーク(株)様では既存のPHPアプリケーションをScalaに移植しました。その過程で開発者達の間で起きたさまざまな知見を公開します。(株)はてな様では多くのサービスをScalaに直してきた実績から,小さな部品を組み合わせ大きなプログラムを作っていくためのノウハウを解説いただきました。人気のHaskellは数学と物理での利用例をベースに,どのように数式をコード化するのか実例を紹介します。そしてWeb開発系での本命とも言われるElixirは導入方法から学習方法まで一気に解説!

Pythonも関数機能をベースにその特徴を紹介します。最後はJava上のLispであるClojureです。ライブコーディングをはじめとして,楽しく今風に関数型を学ぶやり方を公開します。

第2特集
安全な通信を確保するSSL/TLSの教科書
インターネットの通信セキュリティを確保するしくみをマスターしよう!

スノーデン事件,POODLE事件など,インターネット上のセキュリティ意識が高まりを見せている昨今,本特集ではその基礎技術であるSSL/TLSについて解説を行います。

第1章では,現在のインターネットの安全性に関し,通信内容の盗聴,データの改ざん,なりすましなどがないように,どのような暗号化や認証などが行われているのかを解説します。

第2章では,SSL/TLSによる暗号通信の流れと,その暗号化技術(暗号スイート)のアルゴリズム,SSL/TLSのバージョンによる違いについて詳しく解説します。

第3章では,過去に起こった実際の事件やTLSの脆弱性を例にとり,安全な通信を確保するためのTLSサーバの設定方法について解説します。

Appendixでは,TLSの今後の話としてTLS 1.3とHTTP/2の概要を紹介します。

短期集中連載
新連載 AWSで始めよう! モダンなJavaアプリケーション開発【1】
JavaとDockerで始める実践Elastic Beanstalk入門

Amazon Web Services(AWS)やGoogle Cloud Platformなどのクラウドプラットフォームの出現によって,少ない費用,短い期間でITインフラの調達ができるようになり,クラウドプラットフォームは個人やスタートアップ企業などにとって欠かせないものになっています。しかし,Webサービスの公開などにあたり,アプリケーションサーバの構築,ロードバランサの設定,監視やスケールアウトの設計などインフラ層の設定は多岐にわたるため,運用コストも少なくなくWebサービスの開発だけに注力するには,まだまだ難しいのが現状です。そのような問題を解決するのがAWSが提供するElastic Beanstalkというサービスです。今回は一番ホットな仮想化ソフトウェアのDockerとJavaを例にElastic Beanstalkを使ったWebサービスを公開する方法を紹介します。

短期集中連載
Kotlin入門【5】
null安全

プログラマに優しい現実指向JVM言語「Kotlin」を紹介する連載企画。Androidアプリケーションの開発をゴールとして解説していきます。前回はKotlinにおけるクラスとその周辺の機能,文法を紹介しました。今回はKotlinのユニークな機能であるnull安全について解説します。

目次

第1特集
なぜ関数型プログラミングは難しいのか?
Lisp,Scala,Haskell,Elixir,Python,Clojure,関数型のエッセンスを学習する

  • 第1章:気軽に試してみよう!
    今こそLisp入門……五味 弘
  • 第2章:サービス改善への解答 PHPエンジニア,Scalaを学ぶ!……安達 勇太
  • 第3章:機能を最大限に活かすコーディング術 Scalaで始める,型安全な関数型プログラミング……伊奈 林太郎
  • 第4章:数学と物理遊びで垣間見る 定義で記述するHaskellのわかりやすさ……上田 隆一
  • 第5章:Erlang/OTPからうまれたWeb開発指向言語 Elixir入門……力武 健次
  • 第6章:バグを生みにくい,メンテナンス性の良いプログラムへ Pythonで見る関数型言語の本質……辻 真吾
  • 第7章:関数型が好きになる Clojure入門……ニコラ・モドリック

第2特集
安全な通信を確保するSSL/TLSの教科書
インターネットの通信セキュリティを確保するしくみをマスターしよう!

  • 第1章:インターネットの安全性と暗号技術……島岡 政基
  • 第2章:SSL/TLSと暗号スイートを理解しよう……島岡 政基,伊藤 忠彦,国井 裕樹
  • 第3章:脆弱性の分析から見えてくる安全なTLSサーバ設定……神田 雅透,林 達也
  • Appendix:TLSを取り巻く環境,そしてTLSの今後について(TLS1.3,HTTP/2)……林 達也

短期集中連載

  • 【新連載】AWSで始めよう! モダンなJavaアプリケーション開発【1】
    JavaとDockerで始める実践Elastic Beanstalk入門…… 永瀬 泰一郎
  • Kotlin入門【5】
    null安全…… 長澤 太郎

Catch up trend

  • 【新連載】ConoHaで始めるクラウド開発入門【1】
    新しくなったConoHaはすごいぞ …… 斉藤 弘信

Inside View

  • リクルートライフスタイルの技術力を追え![インフラ編]
    柔軟性とスピードの両立を目指してパブリッククラウド活用を決断 …… 編集部

連載

  • ITエンジニア必須の最新用語解説
    【80】Project Brillo……杉山 貴章
  • digital gadget
    【200】200回を振り返る:SF映画とデジタルガジェット
    ……安藤 幸央
  • 結城浩の再発見の発想法
    【27】Fail-Safe……結城 浩
  • おとなラズパイリレー
    【10】IoTをやってみよう(後編)
    ……江草 陽太
  • 軽酔対談 かまぷの部屋
    【13】ゲスト:鹿野 恵子さん……鎌田 広子
  • ツボイのなんでもネットにつなげちまえ道場
    【2】LED点滅の極意(前編)
    ……坪井 義浩
  • Hack For Japan~エンジニアだからこそできる復興への一歩
    【44】CIVIC TECH FORUM 2015レポート
    ……関 治之
  • 温故知新 ITむかしばなし
    【45】CPUのスピードレースCPUBENCH……速水 祐
  • ひみつのLinux通信
    【19】ライフログ……くつなりょうすけ
  • Erlangで学ぶ並行プログラミング
    【5】OTPのビヘイビアとgen_server……力武 健次
  • Sphinxで始めるドキュメント作成術
    【5】目次,用語集,索引を付けよう――大きめのドキュメントを読みやすくするために……川本 安武,清水川 貴之
  • 【最終回】Android Wearアプリ開発入門
    【6】WearアプリでGPS機能を活用!……神原 健一
  • Mackerelではじめるサーバ管理
    【6】Mackerel周辺の運用ツールとAWS連携ノウハウ……坪内 佑樹
  • 書いて覚えるSwift入門
    【7】Swiftが愛される理由……小飼 弾
  • セキュリティ実践の基本定石
    【23】IP電話のセキュリティ……すずきひろのぶ
  • るびきち流Emacs超入門
    【16】Emacsと長く付き合っていくために……るびきち
  • ShowNetが示すネットワークの近未来
    【5】ShowNetの裏側~ホットステージレポート~……編集部
  • Red Hat Enterprise Linuxを極める・使いこなすヒント .SPECS
    【14】xhyveでRHELを動かしてみよう
    ……藤田 稜
  • Be familiar with FreeBSD~チャーリー・ルートからの手紙
    【22】BSDCan 2015で知る今後の動向
    ……後藤 大地
  • Debian Hot Topics
    【29】リポジトリの役割を理解してDebianを快適に使おう
    ……やまねひでき
  • Ubuntu Monthly Report
    【64】インプットメソッドと変換エンジンの遠くて近い関係……あわしろいくや
  • Linuxカーネル観光ガイド
    【41】Linux 4.0の機能~lazytimeとDAX……青田 直大
  • Monthly News from jus
    【46】RubyによるLLプログラマのためのUNIX勉強会
    ……法林 浩之