シェルスクリプトマガジン

test

もしインターネットの1秒が1年だったら 第3回(vol.49掲載)

投稿日:2017.09.12 | カテゴリー: 記事

written by hakatashi・Mine02C4

編注:本記事は「SunPro 2016 技術書典」で発表された記事に説明・イラストを追加し、シェルマガvol.49に掲載したものです。
以下リンク先で、オリジナル版の全文が公開されています。
https://sunpro.io/techbookfest/

インターネットが日本中のあらゆる人間に行き渡るようになってから、すでに10年単位の時間が経過しています。今日においてインターネットを支えるネットワーク技術が重要であることは言うまでもありませんが、実際にネットワークでどのタイミングで何が起こり、どれくらいの時間が費やされるのかということを身を持って体感している人は、たとえネットワークに精通している人でも少ないのではないでしょうか? この記事では、1 秒というわずかな時間を1年にまで拡大し、ネットワーク上で何が起こっているかを人間スケールでざっくりと解説していきます。

はじめに

こんにちは。博多市(@hakatashi) です。前回、前々回に引き続き、2016年の技術書典にて発表した「インターネットの1 秒がもし1 年だったら」という記事を、シェルスクリプトマガジン向けに再構成してお届けします。この記事は、インターネット通信においてクライアントがサーバーとコミュニケーションする様子を、1秒を1年というスケールに引き伸ばし、クライアントとサーバーをそれぞれ「クライアントちゃん」と「サーバーちゃん」として、人間スケールに置き換えて順に見ていこうという企画です。
前回まで記事では、長くて面倒なTLSハンドシェイクの手続きを終え、サーバーちゃんとクライアントちゃんの間で暗号通信を行うための準備が完了しました。これで本題となる通信の内容を送るための用意は終了し、いよいよインターネットを通した2人の文通が始まります。クライアントちゃんにとっては100日以上も待ち続けた念願のやり取りです。果たして2人は無事に文通を行い、そして年内に終了することができるのでしょうか。引き続きお楽しみください。

サーバーちゃん   クライアントちゃん

HTTPリクエストとレスポンス

4月19日 午前9時26分 HTTPリクエスト送信

1ヶ月半に渡るやりとりによって、サーバーちゃんとクライアントちゃんとの間で暗号通信を行う準備が整いました。もはや2 人の世界を妨げるものは何もありません。これで少々神経過敏なクライアントちゃんも安心してサーバーちゃんに質問を投げかけることができます。
HTTPは、原則としてクライアントがサーバーに対してリクエストを投げて、サーバーがそれに対する応答を返すという、先程までのTCPハンドシェイクやTLSと比べてシンプルな仕組みで動作します。ネットワークの中でもかなり高レイヤーなプロトコルなので、リクエストの内容やヘッダーはプレーンテキストで表現され、人間が見てそのまま理解しやすいようになっています。
今回はクライアントアプリケーションとしてcURLを用いたので、HTTPバージョン1.1のシンプルなGETリクエストでパケットを送信しました。
クライアントちゃんは勇気を振り絞って、年が明けてからずっと聞きたかったことを質問しました。その内容はヘッダも含めて4行、文字数に直すと99バイトですが、TLSで暗号化することによって130バイト、イーサネットフレーム全体では184バイトと、実際に転送される情報としては倍近くになりました。ハガキは裏面しか使えませんからね。

 

4月28日 午前9時27分 HTTPリクエスト受信

クライアントちゃんから暗号化された秘密の手紙が届きました。サーバーちゃん側から見ても、最初にSYNパケットを受け取ってから2ヶ月という時間が経過しています。その間、Webサーバーとしての諸々の雑務をこなしながら、クライアントちゃんからの手紙を待ち続けていました。HTTPリクエストを受け取ったサーバーは、その内容を元にリクエストの解釈を行い、文脈に応じて何らかの適切な応答を返します。今回の測定ではデフォルトのApacheへのリクエストだったので、GETリクエストはシンプルにファイルの内容を取得するという処理となります。 手紙の内容を見て、さっそくサーバーちゃんは部屋の中(=ファイルシステム) から目的のデータを探し始めました。サーバーちゃんはファイルサーバーなので、探しものはお手のものです。

「アレでもない、コレでもない。どこいったの?!」

第2回 Ubuntuの導入(Ubuntu Serverのインストール)

投稿日:2017.09.8 | カテゴリー: 記事

まず、サーバーに利用するパソコンを用意します。Linuxサーバーを試すだけなら、高機能なものは必要ありません。メモリーが1Gバイト、ハードディスクドライブ(HDD)などの内蔵ストレージが100Gバイト程度搭載していればよいでしょう。なお、内蔵ストレージの中身が消えてしまっても構わないパソコンにしてください。
前回DVD-RやUSBメモリーで作成したインストールメディアを、用意したパソコンに挿入する前に、パソコンのファームウエアでDVD-Rの場合は光学ドライブから、USBメモリーの場合はUSBデバイスから優先的に起動するように設定しておきます。

Ubuntu Serverのインストール

パソコンにインストールメディアを挿入し、ネットワークケーブルを接続してインターネットにつなげられる状態にしたら、パソコンの電源を投入します。パソコンのファームウエアがBIOSとUEFIでは起動画面が異なります。BIOSの場合は、図1の言語選択画面になります。カーソルキーと[Enter]キーを使って「日本語」を選んでください。

図1 言語選択画面(BIOSの場合)

図2の画面で「Ubuntu Serverをインストール」を選択してインストーラーを起動します。

図2 インストーラーを起動する(BIOSの場合)

シェルスクリプトマガジンvol.47 Web掲載記事まとめ

投稿日:2017.09.5 | カテゴリー: 記事

シェルスクリプトマガジンvol.47のWeb掲載部分まとめです。

4 バーティカルバーの極意/飯尾淳 コード掲載
8 もしインターネットの1秒が1年だったら/hakatashi・Mine02C4 本文掲載
16 UNIXネイティブの電子工作塾 e-Badge篇/大野浩之
22 逆に、Tukubaiコマンドをシェルスクリプトで実装してみる/今泉光之 本文掲載
28 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う!/濱口誠一
30 中小企業手作りIT化奮戦記/菅雄一
36 アジャイル開発 Let’s Practice!/熊野憲辰
40 法林浩之のFIGHTING TALKS/法林浩之
42 それプロのエバンジェリストから愛をこめて/山本美穂
46 縁の木、育てよう/白羽玲子
50 スズラボ通信/すずきひろのぶ
53 姐のBENTO
54 ITエンジニアのためのマーケティング入門/水間丈博
57 lookup ~見上げる~/桑原滝弥
52 人間とコンピュータの可能性/大岩元
60 技術者哲学 ピリカのつくりかた 本文掲載
66 ユニケージ開発手法コードレビュー/岡田健 コード掲載
74 香川大学SLPからお届け!/石井怜央(香川大学SLP) コード掲載
78 漢のUNIX/後藤大地 コード掲載
92 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載
100 Tech数独
102 ソースとコード/シェル魔人

シェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

シェルスクリプトマガジンvol.48 Web掲載記事まとめ

投稿日:2017.09.5 | カテゴリー: 記事

シェルスクリプトマガジンvol.48のWeb掲載部分まとめです。

4 スズラボ通信/すずきひろのぶ
8 法林浩之のFIGHTING TALKS/法林浩之
10 UNIXネイティブの電子工作塾 e-Badge篇/大野浩之 コード掲載
17 ITエンジニアのためのマーケティング入門/水間丈博 本文掲載
20 逆に、Tukubaiコマンドをシェルスクリプトで実装してみる/今泉光之 本文掲載
28 アジャイル開発 Let’s Practice!/熊野憲辰
32 ユニケージ開発手法コードレビュー/新美勇一 コード掲載
42 姐のBENTO
44 それプロのエバンジェリストから愛をこめて/山本美穂
48 中小企業診断士が解説する、超実践的な会話術! 円滑コミュニケーションが世界を救う!/濱口誠一
50 漢のUNIX/後藤大地 コード掲載
58 香川大学SLPからお届け!/石井怜央(香川大学SLP)
62 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載
72 TechLION再録「エンジニアの生存戦略」
78 国際化と標準化/桑原滝弥・イケヤシロウ
80 もしインターネットの1秒が1年だったら/hakatashi・Mine02C4 本文掲載
88 バーティカルバーの極意/飯尾淳 コード掲載
94 中小企業手作りIT化奮戦記/菅雄一
100 人間とコンピュータの可能性/大岩元
102 Tech数独/gori.sh
104 ユニケージの目指すところ/シェル魔人

シェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

第1回 Ubuntuの導入(インストールメディアの作成)

投稿日:2017.09.1 | カテゴリー: 記事

Linuxには「ディストリビューション」と呼ばれる複数の種類があります。ディストリビューションによって操作方法が少し異なりますので、Linuxサーバーを構築する第一歩としてディストリビューションの選定から始めましょう。

サーバーに最適なディストリビューション

LinuxサーバーのOSとして利用するディストリビューションの場合、以下の四つを満足するものがよいでしょう。

これらのことから、Linuxでは人気が高いディストリビューション「Ubuntu」のサーバー版「Ubuntu Server」を選択します。このUbuntuは、インターネット上に存在するサーバーのOSとして多くのユーザーに利用されています。そのため、情報が豊富です。また、多くのアプリケーションが「パッケージ」と呼ばれる形式で用意されています。このパッケージなら導入も簡単です。
Ubuntuには、最初のリリースから5年間のサポートが付いた「LTS」(Long Term Support)というバージョンがあります。ここでいうサポートとは、主に不具合対処やセキュリティ対策用の更新ソフトウエアの提供のことです。2017年9月1日時点において、LTSの付いた最新Ubuntuのサーバー版は「Ubuntu Server 16.04.3 LTS」です。最初のリリースは2016年4月21日なので、2021年4月まで安心して使えます。
Ubuntu Serverは、サーバーOSとして動作させるために最低限必要なソフトだけを導入した状態でインストールできます。そのため、不要なアプリが導入されたり、必要のないサービスが動作していたりすることはほとんどありません。

Vol.49

投稿日:2017.08.31 | カテゴリー: バックナンバー

いまや日本でも決して珍しい働き方ではなくなった「起業」。
初期投資の少なさやIT文化特有の独立自尊の精神からいっても、ソフトウェア開発者にとっては特に他人事ではありません。
今月の特集「ITエンジニアの起業時代」では、起業の道を選んだお二人のエンジニアにお話を伺います。
一人目は、様々な会社につとめた後、まさにいま起業の第一歩を踏み出した門脇明日香さん。数年前から珈琲屋を営むインタビュアー白羽さんが、「起業の先輩」ならではの視点から切り込みます。
二人目は、読者の皆様にもおなじみ、日本のITコミュニティ文化を支えるサービス”Doorkeeper”を運営するカナダ人のPaul McMahonさん。Doorkeeper開発の経緯や商売を軌道にのせるまでの奮励を惜しみなく語ってくれました!

さらに今月は新連載も! 「機械学習のココロ」では、研究の最前線で機械学習に長年取り組んできた現久留米大学の石井一夫先生が、現在の人工知能ブームの火付け役となったディープラーニングの「本当の価値」を伝授していきます。

その他にも、スーパーエンジニア後藤大地さんがお薦めのコマンド開発フレームワークを紹介する「漢のUNIX」や、擬人化によってネットワークの仕組みがラクラク掴める「もしインターネットの1秒が1年だったら」など、
ちょっとやそっとでは味わい尽くせない、今月も読み応え十分のシェルスクリプトマガジンvol.49。お見逃しなく!

連載 UbuntuではじめるLinuxサーバー

投稿日:2017.08.25 | カテゴリー: コード

Linuxとパソコンを使って、本格的なサーバーを無料で構築しましょう。Linuxのインストール方法、リモートアクセス環境の構築、Samba、Apache、MariaDB、WordPress、Nextcloudといったサーバーソフトの導入・起動方法などを分かりやすく紹介します。

written by シェルスクリプトマガジン編集部

特集 無いものは作れTukubai 流コマンド自作文化(後半・本誌vol.7掲載)

投稿日:2017.08.22 | カテゴリー: 記事

 

各地でOpen usp Tukubai を紹介すると、多くの人にとても興味を引かれることがある。

それは、Unix コマンドを自ら作っていくと言う習慣だ。
コマンドを作るということは、他言語で考えればifやfor等の予約語を追加するようなものかもしれない。そう考えると確かに興味深い。
だが、Unix の世界ではそれが当初のやり方だった。
コマンドを自作する文化。
この素晴らしさを、改めて伝えたい。

written by USPマガジン編集部

本記事は、USP MAGAZINE vol.7(2013年冬号)掲載記事のWEB再録記事(後半部分)です。

記事前半はこちら!

本記事掲載のUSP MAGAZINE vol.7は以下リンク先でご購入できます。

 

第三章 道具を夢見たコマンドたち

USP 研究所は、前時代を含めてこれまで2000 個にも及ぶコマンドを作ってきたという。多い日は1 日で10 個作ったこともあったのだとか。しかしそれら大半のコマンドが淘汰されていったことは、今のOpen usp Tukubai のコマンドの数を見れば容易に想像がつく。
「道具とは何たるか」などと偉そうなことを語っておきながらこれは一体どういうことか!とツッコミを入れたくなるところではあるが、そういう歴史があるからこそ道具の本質を見極め、そしてTukubai の思想を確立させられたのだろう。
そこでこの章では、そんな道具を夢見て生み出されながら淘汰されていったコマンドや、これから道具として活躍する可能性を秘めたコマンドなど、いくつか紹介していこう。

その1.yuniq コマンド

uniq コマンドの横方向版「横uniq」ということで登場したコマンドだ。その名のとおり、横方向にuniq がなされる。

スペース区切りで、同じ綴りの文字列が連続してるとそれを一つに集約する。ただし、連続せずに出現したものに関しては集約されない。このあたりの仕様はuniq コマンドと同様に作られている。

ソースコード

以下に全体を掲載する。勿論cc でコンパイル可能だ。

 

道具になれなかった理由とは

yuniq 無しに横方向uniq をせよ、と言われたらどうやる だろうか。Tukubai コマンドを使えば次のように書ける。

つまり、単語を一旦縦に並べてソートして、横に並べ直せばいいというわけだ。
横方向uniq の使用頻度がそう高くなかったために、ユニケージエンジニア達もこのコマンドを覚える機会がなかったうえ、たまに横方向uniq が必要になった時もtarr → uniq → yarr の組み合わせで事足りてしまったためにいつしか忘れ去られてしまった。

特集 無いものは作れTukubai 流コマンド自作文化(前半・本誌vol.7掲載)

投稿日:2017.08.8 | カテゴリー: 記事

各地でOpen usp Tukubai を紹介すると、多くの人にとても興味を引かれることがある。

それは、Unix コマンドを自ら作っていくと言う習慣だ。
コマンドを作るということは、他言語で考えればifやfor等の予約語を追加するようなものかもしれない。そう考えると確かに興味深い。
だが、Unix の世界ではそれが当初のやり方だった。
コマンドを自作する文化。
この素晴らしさを、改めて伝えたい。

written by USPマガジン編集部

本記事は、USP MAGAZINE vol.7(2013年冬号)掲載記事のWEB再録記事(前半部分)です。

後半部分はこちら

本記事掲載のUSP MAGAZINE vol.7は以下リンク先でご購入できます。

第一章 共通部品でない、道具を作るということ

Open usp Tukubai は、何のために生まれたか

2012 年の今年、USP 研究所はOpen usp Tukubai と名付けたUnix シェル向け追加コマンドセット(通称Tukubai コマンド)をリリースした。

名称の一部となっている“Tukubai” は、このコマンドセットに付けた単なる名前ではない。オープンソースやオープンプラットフォームの「ソース」や「プラットフォーム」などと同様に、ある一つの概念を指し示す用語なのだ。この「ある一つの概念」を端的に言い表す用語というものが存在しなかったため、USP 研究所がコマンドセットのリリースに合わせて新たに定義したものなのである。
本誌もこれまでこの語を度々用いてきたが、ここで改めてTukubai の意味を記すことにする。

Tukubai とは

Unix 哲学や“Software Tools”(B.W.Kernighan、P.J.Plauger著)等の作法を忠実に受け継ぎ、進化させたシステム構築法。同音である蹲(蹲踞とも記す)という道具が用いられる茶道の精神に通じるものがあることからこの名を付けた。

“Software Tools” の邦訳版「ソフトウェア作法」(共立出版)。30 年以上発行され続けている名書である。

 

つまりTukubai は一種の思想であり、その源流は、Unix を生み出した先人たちの哲学にある。そしてこの哲学を受け継ぎ、進化させ、USP 研究所なりに具現化したものがOpen usp Tukubai なのだ。将来Tukubai という語が一般化し、Tukubai の思想に基づいてある人Xがコマンドセットをリリースするなら、それはOpen XTukubai と呼ぶべき存在になるかもしれない。
従ってTukubai コマンドは、実はその表面的な姿(書式や仕様、種類)が重要なのではない。重要なのは、コマンドセット全体としてどんな役割を果たしているかである。そしてTukubai コマンドが果たすべき役割とは、ソフトウェア開発における「道具」になることである。

「道具とは何か」を理解する

Tukubai が指し示す「道具」は、共通部品とは明確に区別される。では、共通部品ではない道具とは何なのか。まず道具が持ち合わせるべき三つの性質を記す。

一、 単機能であって汎用性がある。
二、 インターフェースが決まっているが、逆にそれさえ守っていれば他には一切の制約がない。
三、 同じものを発明する気を起こさせない。

更に付け加えるなら、「作ってみればあって当たり前の存在」、「何処の誰もが使えるもの」などとも言いたいところだ。
これらの性質を満たしているものは、世の中の様々な分野において、作業を効率的に熟こなすうえで必要不可欠なものに成り得る。勿論、ソフトウェアの世界においても例外ではない。
身近にある道具と呼ばれるものを色々思い浮かべてもらいたい。それらがこの三つの性質を満たしているかどうか考えてみれば、ここで言わんとしている道具がどういうものであるかが見えてくるだろう。

身の回りにある例

例えば西洋料理を食す際に使うナイフやフォーク、スプーンの類。これは道具であろう。西洋料理を食す時は誰もが使うし、同種のものを発明する気も起らない。インターフェースについて考えてみても、どれも片手で持って使うようにできているし、皆棒状の形で大きさや重さ等も概ね揃えられている。もし違っていたら、揃えるべく、きっと誰かが同じ類のものを発明しているに違いない。
一方で共通部品的な物とは、複数の道具をくっつけてみたり、よくある道具の形をちょっとだけ変形してみたり、といった俗に言うアイデア商品の大部分のものではないだろうか。
それらは特定の作業には驚く程の利便性を発揮するが、汎用性が乏しいために歴史の一部となるほどには普及しない。そして似たようなものが再発明されたりもする。

ソフトウェアにおける例

そして、ソフトウェアにも道具的なものと共通部品的なものがある。ある程度汎用性があり、再利用可能なコードを集めたものとされるライブラリーは、その両方を持ち得る。例えば、Microsoft Visual C++ には通称MFC と呼ばれるクラスライブラリーがある。これはC++ によるWindows プログラミングを容易にするためのものであり、数百個ものクラスが用意されている。しかしそれらを全てを把握して使いこなしている人は恐らく少数だろう。その一方で、C 言語の文字列変数の扱いづらさを補完するCString のように、MFCを利用する人の大多数が利用するクラスもある。このような違いというのも、先に記した三つの性質の有無によるところが大きい。

ユーティリティー、アプリケーション

類似の用語に、ユーティリティー、アプリケーションといったものがあるが、これらもここで言う道具とは違う。ユーティリティーは例えば、バックアップソフトとかテキストエディターといった物を指すが、単機能とは限らないし、インターフェースも様々だし、同様のものが様々作られる。アプリケーションはさらに複合的な機能を有する物を指し、それ単体の使用で大きな目的を達成できる。これらも勿論有用なものだが、単体では目的を達成できない代わりに組み合わせ次第で如何なる目的にも対応できる道具とは方向性の違うものだ。
道具とは何か、ご理解いただけただろうか。これが道具であるかどうかという上記の例は、明確な基準に基づいたものではないため、あまり心地良いものではないかもしれない。
しかし確実に言えることは、三つの性質を満たしていると思える人が多くいるかどうかだ。多くの人が支持するからこそ物は道具になれる。逆に、それは見る立場によって判断が分かれ得るものであるから、特定の地域や時代、或いは特定の分野でのみ道具として認知されるものもある。

Unix における道具とは

既に述べたとおり、Tukubai コマンドは道具としての役割を果たすべく作られたものである。しかしそれ以前に、Unixシェルに用意されている標準コマンドには、先に記した三つの性質を満たす道具的なものが数多くある。
例えばテキストフィルターに分類されるAWK, grep, sed,tr などは道具的であると言えるだろう。一方で、パスワードを設定するpasswd コマンドやテキストエディターである
vi*1 といったコマンドは誰もが使うところであるが、使い方が既に決められていて汎用性は無く、インターフェースが決まっているかという性質に照らし合わせてみても当てはまり難い。これらはむしろユーティリティーと呼ぶべきものであろう。

*1 vi は好みが別れそうだが、何らかのテキストエディターは使うだろう。

このようにUnix のコマンドにおいても、道具的なものとユーティリティー・アプリケーション的なものがある。そして、道具的と呼ぶべきUnix コマンドは、どれも共通した下記の作法を概ね守っている。

◆データのやりとりに標準入出力を使う
◆入出力データをテキストデータとする

道具は、組み合わせて使うことで真価が発揮される。従って、組み合わせて使えるようにすべく、このような作法が生まれたのではないだろうか。Unix において偉大な発明の一つであるパイプ(パイプライン)も、そのような背景から生まれたに違いない。
そしてUnix シェルやシェルスクリプトも上記の作法を守るうえで実に適した仕様になっている。道具たるコマンドを予約語のような感覚で呼び出せ、組み合わせられる。時には“if [” などのように、予約語とコマンドが密接に結び付くこともある。
こういった仕様は、Unix 発明者達の思想の表れであって、「道具をもってして問題を解決するのがUnix シェル」ということを言わんとしているのではないだろうか。

道具に類する用語の整理。ユーティリティー、アプリケーションと呼ばれるものになるに従って、汎用的な用途から専門的な用途へと変化する。ライブラリーは部品であるが、汎用的なものもあれば専門的なものもある。

ITエンジニアのためのマーケティング入門 第25回 (vol.49掲載)

投稿日:2017.08.1 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

 

第25回 デジタルマーケティング その1

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、会社の後輩カンナちゃんと一緒に近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。これまでマーケティングの基本と実践方法を学んできました。今回から「デジタルマーケティング」がテーマです。

さて、今回から「デジタルマーケティング」の話に入っていこうかの。
「デジタルマーケティング」って最近よく聞くけど、今までのマーケティングとどう違うんだろう?
「デジタルマーケティング」とは、要するに「IT技術をマーケティングに取り入れること」じゃよ。
えーっ、それだけ?でも「デジタル」って言うけど、昔からあった電子メールとかもホントはデジタルだよね?
ハッハッハ、その通りじゃ。インターネットは、登場してすぐに広告で使われるようになったんじゃが、これまでは「オンラインマーケティング」とか「WEBマーケティング」と呼ばれていたものが、2013年ごろを境に「デジタルマーケティング」と呼ばれ出したんじゃ。
なぜ今さら「デジタル」って言い始めたのかしら?
それは一つには、スマホに代表されるデジタルデバイスの急激な普及と大いに関係がある。
スマホで、ネットショップでの注文とかクーポンが使えるようになったからかな?
そうじゃな、それは前からも使えたんじゃが、スマホの普及でますます便利になったのが大きい。2008年には世界で1億台以下だったスマホが今年15億台以上も出荷されると予測されておる。

もう一つ、アドテクノロジーの急激な発達がある。
アドテクノロジーって、オンラインで広告が出されることって聞いたことあるわ。
まぁそうなんじゃ、その仕組みも含めた言葉じゃの。これはちょっと前の状況なんじゃが、アドテクノロジーの全体概要図になるの。


Display Advertising Technology Landscape
出典:Jp chaosmap Hiroshi Kondo
http://www.slideshare.net/HiroshiKondo/jp-chaosmap-20142015

ちょっと複雑だけど、よく見ると知ってる会社やよく使うサイトとかもありますね。
中央上の「DSP(Demand Side Platform)」というのがオンライン広告の広告主側のプラットフォーム群(サーバ)、右端の「SSP(Supply Side Platform)」は広告を配信するメディア側のプラットフォーム群、この間にある「RTB(Real Time Bitting)」はこの両者を取り持つオークション事業者の役割で、一番高値を付けた広告主が広告を配信できるという広告入札の仕組みなんじゃ。例えば、消費者がPCやらスマホで画面を開いた瞬間にどのような広告を掲示するか、オークションで決めておるんじゃな。この取引が成立して広告が視聴者に表示されて完結するまで、その間50ms(1/20秒)といわれておる。
へーっ!なんか難しい言葉が出てきたけど、ボクがポータルサイトを開いたときに出てくる広告を出す仕組みはこうなってるのか?
DSPの下にある「DMP(Data Management Platform)」というのが、広告を見る人のネットアクセス履歴や嗜好性などのデータベースで、「デモグラ」という世代や性別ごとの一般的な特徴も含まれておる。これを拠り所に、見ている人への最適な広告を選択するサポートをしているんじゃな。
だから、ボクがPS4を買った直後にゲームの広告が増えたりするのかー。
私がネットを見ていると「若い女性向け」の広告が目につくけど、これもDMPが活躍しているためなんですね。
そうじゃ。現在のオンライン広告はDisplay広告といって、そのほとんどが視聴者個人の特性に応じて出し分けられておるんじゃよ。これを「パーソナライズ」といったりするんじゃ。
ネットを見た履歴からその人の興味や関心が把握されてるってことなんですね。ちょっとコワイ気もするけど……
ここのところ静止画よりは動画が多くなったが、この仕組みは2008年のリーマンショックの後に、ウォール街の金融業界にいた大勢の優秀なエンジニアが広告業界に移って金融取引の仕組みを広告に応用した成果といわれておる。
そうなんだー。
この、いかにもITテクノロジーを駆使した画期的な仕組みが日本にも導入されて、あっという間に広まったんじゃ。今はスマホ向けだけで年間3000億円の市場規模があるとされているんじゃが、広告主と消費者(視聴者)の間に様々なプレイヤーがおって、それぞれITを駆使して役割分担しつつデータを複雑にやり取りしておるんじゃ。
ホント様々な事業者が見えないところで仕組みを支えてるんですね。
だからこの図は別名「混沌マップ(ChaosMap)」とも呼ばれておる。プレイヤーの参入や脱落が多いんで日々変わることから名付けられたんじゃよ。
新しい業界の特徴なのかもねー。
さて話が長くなったが、アドテクノロジーをはじめとして、ここ3?4年の間にIT技術を駆使してマーケティングに活用しようとする動きが大変活発になったんで「デジタルマーケティング」と言われるようになったんじゃ。
ナルホドね。
といったわけなので、「デジタルマーケティング」には適切な定義もないし、国によって認識も違う。米国では今でも「オンラインマーケティング」と呼ばれているし、イタリアでは「WEBマーケティング」と同義で使われているらしい。しかし最近「デジタルビジネス」とかも言われ始めているから流行り言葉ではあるな。
「デジタル」という本来の意味を超えて使われ始めた感じですねー。
デジタルマーケティングが発展してきた背景をここで整理しておこう。要するにマーケティングにIT技術が用いられ出したのには社会的背景の変化が大きく影響しているんじゃ。

①スマホ・タブレットなどのデジタルメディアの普及:
消費者がこれらの道具を常時持ち歩くようになったことで、メディアや企業と直接に繋がるようになった
②新たな顧客への情報到達手段:
企業にとっては従来型到達手段(4大メディア広告、PCへのメール、PC向けディスプレイ広告、動画広告)に加えて、新たにスマホ、タブレット向けの到達手段が増えた
③即時性の進化:
今までは、“TVを見ている時”(CM、通販番組など)やPCの前に座っている時だけ、情報伝達や消費者アクションが実行されたが、それが消費者側の意思でいつでも好きな時に可能になった
④消費者が発信する情報のマーケティング活用:
ネットの視聴履歴や購買履歴、ソーシャルネットワーク、GPS情報などが発信されることによって、個客の興味や嗜好に関するデータをマーケティングに活用できるようになった

「リアルタイム」というのがキーポイントになったよね。スマホで簡単に商品を比較して、その時一番安いお店で注文できちゃうから、お店の競争も大変になったんだろうな。
そうね、TVと違ってどこでも好きな時にネットショッピングできるようになったし、SNSで発信することもできるから、以前よりも格段に双方向性が増したという点も大きいんじゃないかしら。
そうじゃな。まとめると、消費者つまりお客さんを取り巻く「ネット社会・到達手段(消費者の武器)・リアルタイム性・消費者発信情報」の環境が変わったことに対する、サービス提供者側のマーケティング実行方法の変化が「デジタルマーケティング」を生み出したともいえるんじゃな。
そうか、お客さんの環境変化が必然的にデジタルマーケティングに向かわせているのかー。
現在は「リアル(店舗)」や4大広告メディアだけでは競合が多い世の中で戦っていけないからの。
最近はテレビを見ない人も増えたって言いますよねー。
そうじゃ、既に20代以下ではTVよりネット視聴時間の方が多くなっておる。
そう言えば、私も最近TVはドラマしか見てないかも。

シェルスクリプトマガジンvol.49 Web掲載記事まとめ

投稿日:2017.07.25 | カテゴリー: 記事

シェルスクリプトマガジンvol.49のWeb掲載部分まとめです。

現在、コード掲載記事のコード部分をshell-mag.comに掲載しています。

4 機械学習のココロ/石井一夫
8 縁の木、育てよう/白羽玲子 ゲスト:門脇明日香
12 Doorkeeper Paul McMahonに訊く、技術者哲学/シェルスクリプトマガジン編集部
18 中小企業手作りIT化奮戦記/菅雄一
24 人間とコンピュータの可能性/大岩元
26 香川大学SLPからお届け!/清水赳(香川大学SLP) コード掲載
30 ユニケージ開発手法コードレビュー/大内智明 コード掲載
40 アジャイル開発 Let’s Practice!/熊野憲辰
44 漢のUNIX/後藤大地 コード掲載
52 もしインターネットの1秒が1年だったら/hakatashi・Mine02C4
60 バーティカルバーの極意/飯尾淳 コード掲載
68 スズラボ通信/すずきひろのぶ コード掲載
72 法林浩之のFIGHTING TALKS/法林浩之
74 ITエンジニアのためのマーケティング入門/水間丈博 本文掲載
78 妹のBENTO
80 それプロのエバンジェリストから愛をこめて/山本美穂
84 中小企業診断士が解説する、超実践的な会話術!円滑コミュニケーションが世界を救う!/濱口誠一
86 40歳から始める、オレとRubyプログラミング/しょっさん コード掲載
94 回帰テスト~regression testing~/桑原滝弥・イケヤシロウ
96 Tech数独/gori.sh
98 ユニケージの目指すところ/シェル魔人

 

シェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

スズラボ通信 34 (本誌vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:すずきひろのぶ

最近、設定ファイルの名前にファイル拡張子yml がついていることが多いことに気がつきます。これはYAML というフォーマットです。プログラムの設定ファイルのフォーマットとしては簡単に使えるますが、自分のプログラムで使おうとすると意外と参考になる情報は少ないことに気がつきます。
今回はこの話題を取り上げます。

記事本文掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

 

バーティカルバーの極意 第三回 (vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:中央大学 教授 飯尾淳

今回は、いかにもデータ分析といった例題に取り組みます。題材は、簡単な自然言語処理。数十篇のコラム記事を対象として、記事の自動分類に挑戦します。対象とする記事群を、クラスタリングという処理で分類します。クラスタリングとは、特定の多次元空間にマップされたデータ群を、様々な方法でいくつかのまとまりに整理する方法です。
それぞれのデータは、「距離の近さに応じて」まとめられます。ここで計算される距離を、数学では絶対値の記号を用いて|x| と表します。ほら、バーティカルバーが出てきましたね。
また、近いデータを集めて樹形図としてまとめていく方法もよく用いられます。このようにして描く樹形図のことを、デンドログラムといいます。今回、描いてみようとするデンドログラムは図 1 のようなものです。ここにも多数の棒が描かれています。
今回のバーティカルバー劇場、役者は「距離」と「デンドログラム」の二人です。

記事本文掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

漢のUNIX テストフレームワームKyua その1(vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:後藤大地

 コマンドをたくさん作っていくと、いくつかのことに気がつくとおもう。
 たとえば作っていくうちにいろいろと思うところがでて、その都度プログラムの書き換えを実施していくと、コマンドの最初のころの動作と最近の動作が異なってしまうことがあるはずだ。こんな感じで互換性が損なわれることにはなにかと問題がある。少なくとも、業務で使おうとした場合には致命的な問題を引き起こしかねない。
 もうひとつは終端処理の確認というか、ちゃんとさまざまなケースで動作するのかの確認だ。自分で作るときは自分に都合のよいところしか動作チェックをしないものだ。想定していなかった処理をするとコアダンプが発生してコマンドが異常終了するとかはよくある話だ。こうした問題が発生しないように、ちゃんとテストを行うコードを書いて開発に組み込むというのは大切なことである。
 開発の最初の段階からテストフレームワークを入れておくというのはよいアイディアだ。こういうのは最初から導入して、テスト→実装→テスト→実装… といった流れでの開発を常におこなうようにしておきたい。今回はこうしたテストを実施するためのフレームワークとして「Kyua」を紹介しようと思う。

記事本文掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

ユニケージ開発手法 コードレビュー vol.38(本誌vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:大内智明

今回は、取得した固定長ファイルを元に、ユニケージ内で使用するフィールド形式ファイルに変換する方法について説明します。

記事本文掲載のシェルスクリプトマガジンvol.49以下リンク先でご購入できます。

香川大学SLPからお届け!(vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:清水赳(香川大学SLP)

Elixir製のWebアプリケーションフレームワーク Phoenixを触ってみる 前編

こんにちは。香川大学工学部 学部3 年の清水です、はじめまして。

私は普段、Ruby やRailsで開発を行うことが多いのですが、サークルで「Erlang VM の上で動くRubyっぽい感じの言語があるらしいよ」と聞いて、Elixirと、Rails によく似たWebフレームワーク Phoenix を触ってみることにしました。
Elixir は、Ruby を使っている人にとって、とても馴染みやすい文法を持っています。更に特徴として、Erlangの強みである並列処理と耐障害性の機能をそのまま受け継いでいます。最近話題のチャットツールDiscordも、Elixir を採用しているそうです。
そこで、今回から次回にかけては、Elixir 製Web フレームワークであるPhoenix を紹介します。前半は,Phoenix に慣れるために簡単な掲示板アプリケーションを作ってみます。そして後半となる次回は、自宅の蔵書を管理できるようなアプリケーションを作っていきましょう。

 

記事本文掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

 

40歳から始める、オレとRubyプログラミング(vol.49掲載)

投稿日:2017.07.25 | カテゴリー: コード

著者:しょっさん

梅雨の季節に入ってまいりました。この号が発売される頃には、梅雨もそろそろ明け、夏間近といったところでしょうか。

子供の頃は夏は朝から晩まで真っ黒になって遊び回ったものですが、大人になったら汗をかくだけで、色々やる気が削がれてしまいますね。とても不思議な気持ちではありますが、猛暑は家で落ち着いてプログラミング!

さぁ、今号もしまってまいりましょう!

記事本文掲載のシェルスクリプトマガジンvol.49は以下リンク先でご購入できます。

 

もしインターネットの1秒が1年だったら 第2回(vol.48掲載)

投稿日:2017.07.18 | カテゴリー: 記事

written by hakatashi・Mine02C4

編注:本記事は「SunPro 2016 技術書典」で発表された記事に説明・イラストを追加し、シェルマガvol.48に掲載したものです。
以下リンク先で、オリジナル版の全文が公開されています。
https://sunpro.io/techbookfest/

インターネットが日本中のあらゆる人間に行き渡るようになってから、すでに10年単位の時間が経過しています。今日においてインターネットを支えるネットワーク技術が重要であることは言うまでもありませんが、実際にネットワークでどのタイミングで何が起こり、どれくらいの時間が費やされるのかということを身を持って体感している人は、たとえネットワークに精通している人でも少ないのではないでしょうか? この記事では、1 秒というわずかな時間を1年にまで拡大し、ネットワーク上で何が起こっているかを人間スケールでざっくりと解説していきます。

はじめに

こんにちは。博多市(@hakatashi) です。前回に引き続き、2016年の技術書典にSunProとして発表した「インターネットの1秒がもし1年だったら」という記事を、シェルスクリプトマガジン向けに再構成してお届けします。この記事は、インターネット通信においてクライアントがサーバーとコミュニケーションする様子を、1秒を1年にというスケールに引き伸ばし、クライアントとサーバーをそれぞれ「クライアントちゃん」と「サーバーちゃん」として、人間スケールに置き換えて順に見ていこうという企画です。
前回の記事では、クライアントがサーバーと通信するための前段階として、サーバーの住所を調べる、つまりIPアドレスを問い合わせる名前解決までの処理を解説しました。3回のDNSリクエストの末にサーバーちゃんの住所をゲットしたクライアントちゃんは、いよいよサーバーちゃんとの直接の通信を行っていきます。果たしてサーバーちゃんとクライアントちゃんの文通の行方はどうなるのでしょうか。引き続きお楽しみください。

サーバーちゃん   クライアントちゃん

 

TCP接続ハンドシェイク

2月19日 午後3時27分 TCPハンドシェイク+SYNパケット送信

各地のネームサーバーの協力を得て、無事サーバーちゃんの住所を入手したクライアントちゃんですが、お淑やかなクライアントちゃんはいきなり本題の手紙を送りつけるような真似はしません。まずはサーバーちゃんにご挨拶をします。
 TCP上の通信では、データ伝送を行う前にコネクションの確立という処理を行う必要があります。これは、相手のサーバーが通信可能な状態であることを保証したり、以降のデータが正しい順序で到着することを保証するためのシーケンス番号を互いに交換したりするためです。
 シーケンス番号とは、現在のパケットが送信しているデータが、全体のデータのうちのどの部分に該当するのかを示す値であり、ハンドシェイクで最初にランダムな値にセットされ、以降データを送信するごとに増加していく値です。TCPは双方向通信なので、このシーケンス番号はサーバーとクライアントで別々の値を保持しています。
 クライアントちゃんはランダムに生成したシーケンス番号を端に添えて、サーバーちゃんに文通してよいかを問う内容の手紙を作りました。色よい返事が返ってくることを期待して、再びポストに投函しました。手紙はいよいよ石狩に向かいます。
 ところで、サーバーちゃんの住所が判明してから最初にサーバーちゃんにコンタクトをとるまで9日もかかっています。
きっとバのつくイベントで忙しかったのでしょう。妬ましい。

*1 実際の理由はおそらくローカルホストのDNSサーバーからアプリケーション(curl)にDNS情報を受け渡す際にオーバーヘッドが発生するためです。

2月27日  午後6時30分 TCPハンドシェイク+SYNパケット受信

北海道――新千歳空港から車で50分の石狩の大地に、目的のデータセンターは存在します。冬の北海道の空気は冷たく厳しく、この時期の気温は昼間でも0度を上回ることはありません。この冷涼な外気がサーバールームから効率的に排熱するのです。
すぐ脇を通る道は国道337号線です。地元ではかつて天売島に住んでいた鳥の名前からとって「オロロンライン」と呼ばれるこの道は、眼前に手稲山を望むゆったりとした広い道路です。小樽からこの道を進んで左手側、空港のターミナルを髣髴とさせる白い横長な建物が石狩データセンターです。
この場所でサーバーちゃんは他のサーバーと肩を並べて*2、静かに443番ポートを開けて待ち続けています。  今回キャプチャしたパケットの中で最も数が多かったのはARPのパケットでした。512台*3近い数のサーバーがARPで常に囁きあい、互いの居場所を確認しあっている状態といえるかもしれません。
そんな退屈な生活の中で、サーバーちゃんはクライアントちゃんからの手紙を受け取りました。
クライアントちゃんが手紙を投函してから8日目のことです。伝送には22ミリ秒かかりました。
冒頭では東京と石狩の物理的な片道時間は5.9ミリ秒と述べましたが、当然これは理想的な通信のことであり、実際には無線通信やルーティングなどにおけるオーバーヘッドによってそれ以上の時間がかかります。
受け取った手紙は一般的なTCPハンドシェイクでした。手紙にはシーケンス番号が添えられています。クライアントちゃんからの久しぶりの手紙に喜んだサーバーちゃんは、喜んで通信を受け入れました。

*2 もちろんVPSなので物理的なサーバーマシンとして存在しているわけではありませんが。
*3 今回使用したサーバーはサブネットマスク23ビットという中途半端な値のネットワークに繋がっていました。今回も、クライアントちゃんとサーバーちゃんの通信の始まりです。

 

2月27日  午後8時11分 TCPハンドシェイクSYN+ACKパケット送信

サーバーはTCPによる通信を受け入れた証として、クライアントからのSYNパケットに対する応答を返します。サーバーはクライアントから受け取ったシーケンス番号を認識し、これに1を加えた値を返答パケットに記して送ります。シーケンス番号は送信するデータの先頭バイトを表すので、本来はデータを送信しない段階では加算しないのですが、ハンドシェイクにおいてはパケットを正しく受け取った印として特別に1を加算します。

同時に、サーバー側でもシーケンス番号を生成して返信用のパケットに記します。これでサーバーとクライアントの間で一対のランダムなシーケンス番号が初期化されます。

サーバーちゃんはクライアントちゃんに向けて通信可能な旨を記した手紙を書きました。クライアントちゃんからの手紙と同じく、隅っこにシーケンス番号を記しておきます。このパケットはSYNとACKのフラグが立てられているため、SYN+ACKパケットなどと呼ばれます。

3月9日  午前3時43分 TCPハンドシェイクSYN+ACKパケット受信

今度は石狩から東京へと手紙が運ばれます。配達にはふたたび10日近い時間を要しました。
クライアントちゃんにとってはサーバーちゃんからの初めての手紙です。だいぶ非常識な時間に配達された手紙ですが、クライアントちゃんは飛び起きて、サーバーちゃんからの手紙をじっくり読み、さっそく返事に取りかかりました。
クライアントは、サーバーからのハンドシェイクを受け取ると、先ほど説明したシーケンス番号の他に、Window Size  ValueやMaximum Segment SizeなどのTCP通信に必要な値を確認し、記録しておきます。

3月 9日 午前4時5分 TCPハンドシェイクSYN+ACKパケット送信

サーバーちゃんからの手紙で、サーバーちゃんが手紙を出せる状態であることを確認したクライアントちゃんは、その手紙に問題がないことを伝えるため、ハンドシェイクを完了させる手紙を送ります。
クライアントもサーバーと同じく、シーケンス番号を認識した証として、サーバーから送られたシーケンス番号に1を加えて返答します。このパケットにより両者の間でそれぞれのシーケンス番号が共有され、お互いにデータを送り合う事ができるようになります。

3月16日  午後3時21分 TCPハンドシェイクSYN+ACKパケット受信

ふたたび手紙は東京から石狩へ。サーバーちゃんはクライアントちゃんからちゃんと返事が届いたことにほっと安心しました。これで、いつでも通信を受け入れることができます。
このように、TCPのハンドシェイクでは通信路を3 回通る必要があるため、3ウェイ・ハンドシェイクとも呼ばれます。

TSLハンドシェイク

 

TLSハンドシェイクが終わって、クライアントちゃんとサーバーちゃんは無事通信が開始できるようになりました。クライアントちゃんはさっそく本題の質問を投げかけようと思ったのですが、ここでふと思ったことがあります。
クライアントちゃんとサーバーちゃんは、ハガキを使って互いにやり取りをしています。ハガキには特に何も細工をしていないので、書いている内容は周りの人には丸見えです。クライアントちゃんがポストに投函しに行くまではいいとしても、そこから先、ルーターから先のことに関しては何も保証できません。実はポストの中に盗撮カメラが仕掛けてあるかもしれませんし、郵便局員がハガキの内容をチラ見するかもしれませんし、サーバーちゃんの上司に内容を検閲されているかもしれません。
これは困ります。花も恥じらう乙女であるところのクライアントちゃんは、サーバーちゃん以外の誰にも手紙の内容を知られたくありません。クライアントちゃんはサーバーちゃんとのやり取りを暗号化するため、TLS(Transport Layer Security)を使用することにしました。
TLSは、TCPのようなコネクションの上で暗号技術を使って通信の機密性や完全性を確保するための仕組みです。公開鍵暗号を用いて安全に交換した鍵を使って共通鍵暗号を行い、暗号化されたコネクションをアプリケーションに提供します。
この記事は暗号理論の説明はいたしません。ちょこちょこ出てくる用語の説明はほとんどしていません。なので、やり取りする情報のさらなる意味を知りたい方は、ぜひ他の専門書を参照してください。

 

ぼくらがシェルで生きる理由 (Web版独自記事)

投稿日:2017.07.11 | カテゴリー: 記事

written by 松浦智之(シェルスクリプトマガジン編集部)

シェルスクリプトは何に使う言語なのか?残念ながら、作業の自動化やサーバー管理に使うものだと捉えている方が多い。私が、「いや、システム開発のためにこそ使うものだ」といっても、冗談あるいは曲芸の類にしか見てもらえないことが多い現状は、シェルスクリプトマガジン編集者としては悔しいものだ。
大手雑誌でシェルスクリプトが特集されることはあっても、データ管理術を手解きする特集で使われている道具はMySQL……。そこでもやはりシェルスクリプトが利用されるまでに、世の中のイメージを変えたい、というのが私の夢である。

そこで今回の記事では、私が実装したシェルスクリプト製「郵便番号から住所を補完するボタン」を紹介する。これを通じて、シェルスクリプトの実力、そして我々シェルプログラマーの愉しみを見てもらいたい。
なお、実際にシェルスクリプトによる業務システム開発を行っているUSP研究所では有償コマンド(usp Tukubai)を用いていて、「それがあるから実用的なものが作れるんでしょ?」と思うかもしれないが、そんなことはない。誰でも入手できるごくありふれたUNIXコマンドだけでここまでできる!ということが、今回の記事を通じてわかってもらえればと思う。

実は「速い!」「色々できる!」シェルスクリプト

世間では未だに「シェルスクリプトなんて遅くて使えない」という偏見が根強い。いやいや「ちょっと待ったー!」と言いたい。

シェルスクリプトはグルー言語。シェルスクリプト自身でこなそうとせずに、コマンドを呼んでそれらに任せればいいのだ。コマンドを呼べば、シェルスクリプトはそのコマンドの終了を待つだけになる。UNIX標準コマンドたちはC言語で書かれているため、この仕組みを理解した上で組まれたシェルスクリプトなら、殆どCプログラムの速さで動くことになる。

また、データが100万行、1000万行におよんでも、データの持たせ方の工夫次第で処理速度は改善できる。例えば後述の郵便番号の例なら、前3桁ごとにファイル分割して持てばいいのだ。頭の3桁の検索は、OSがファイルシステムのハッシュテーブルを使って高速に行ってくれるので、わざわざ自力で高速検索アルゴリズムを組む必要は無い。

シェルスクリプトには他の言語みたいに豊富なライブラリーもないからたいしたことができない、という意見も根強いが、これも工夫次第で想像以上にいろんなことができる。

例えば今回紹介するデモでは、CSVやJSON、XMLテキストの解析をさせている。たしかにそんなことをしてくれるコマンドは無かったが、シェルスクリプトとsedやAWKやgrep、trなど、どれも見慣れた構文やコマンドでできている。 難しいことも、簡単なことの組み合わせで実現できるのがシェルスクリプトの強み であり(マイクガンカーズのUNIX哲学定理6,7あたり) 、シェルプログラミングの愉しみはこのような「工夫」にこそあるはずだ。

「じゃあ、Webアクセスは?」

……それもデモで示すとおり、curlやwgetコマンドを使えばOK。

「メールは?」

……それは/usr/sbin/sendmailを使えば大丈夫、受信ならfetchmailコマンドとか。

「でも、本格的なRDB操作はさすがに無理でしょ」

……いやいや、 POSIX標準コマンドでjoinってのがあって これやsort、AWKなど使えば、テキストファイルでも相当本格的な操作が可能。

このようにUNIX標準コマンドには、様々な用途に利用できる必要十分なコマンドがそろっている。あとは我々シェルプログラマーがこれらをどう使うか、だ。

ネット通販によくあるアレくらい、/bin/shでだって作れるもん!

というわけで、シェルスクリプトの実力を示すべく、ネット通販の注文画面なんかでよく見かける 「郵便番号から住所を補完するボタン」 をシェルスクリプトで実装してみた。

香川大学SLPからお届け!(vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

著者:辻健人(香川大学SLP)

年末なので設定ファイルやスクリプトを大掃除する

早いことにもう年の瀬、大掃除の季節です。そこで、今回のテーマは「大掃除」。部屋だけではなく設定ファイルである.zshrcや.bashrc、普段使っているスクリプトの掃除もしてしまいたい!ということで、設定ファイルの掃除方法を紹介していきたいと思います

記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

 

40歳から始める、オレとRubyプログラミング(vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

著者:しょっさん

1月号ではありますが、この号が出る頃はちょうどクリスマス。一息ついて、年末の忙しい時期に入っていく頃でしょうか。年末は大晦日まで大掃除に明け暮れて、正月の三が日はこれ以上ないほどにゆっくり過ごすことが、我が家の慣例です。年初からお仕事のないみなさまは、場所はちがえど、三が日の過ごし方は同じようなものでしょう。お雑煮とおせちをいただきながら、2017年に想いをはせつ
つ、さぁプログラミングしましょう!!

記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

 

ユニケージ開発手法 コードレビュー vol.34(本誌vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

著者:大内智明

今回は、 マスタの中でも重要な店舗商品マスタについて説明します。

記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

 

POSIX原理主義の一時的書類(テンポラリーファイル)(vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

著者:シェルスクリプトマガジン編集部 松浦智之

会議室にはホワイトボードがあり、机の傍らにはメモ用紙がある。人はそこに、図や文字を書いたり消したりを繰り返すことで、考えを整理する。なぜなら人は、短期記憶の領域が狭いため、考察対象となる物事はホワイトボードや紙等に書き出しておかないと処理しきれないからだ。
そこは、人が創り出したコンピューターも似ている。一定以上の情報はCPU上に置いておけないため、メモリに変数という形で書き出し、それより大きいものはディスクにファイルという形で書き出しながら処理をする。特にUNIX では、ファイルを活用すると上手くいくようにデザインされている。
ところが、POSIX にはその、ホワイトボードやメモ用紙に相当する一時ファイル(テンポラリーファイル)を作るコマンドがない。何も考えずもちろん作るだけなら簡単なのだが、セキュリティーを確保しながら作るには一工夫がいる。今回は、一時ファイル作成時に必要なセキュリティーについて学び、これをPOSIXで実現する。

記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

 

mktempコマンドをPOSIX原理主義で書き直したものを作りました。
https://github.com/ShellShoccar-jpn/misc-tools/blob/master/mktemp

機械学習で石川啄木を蘇らせる(vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

written by 高橋光輝

本連載のもとになった同人誌の内容は、以下のURLから閲覧が可能です。(編集部)
https://sunpro.io/c89/pub/hakatashi/introduction

記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

 

漢のUNIX ライブラリをつくってみよう! #その2(vol.45掲載)

投稿日:2017.06.27 | カテゴリー: コード

著者:後藤大地

C言語は、その誕生以来長きにわたって使われ続けているプログラミング言語だ。Javaが登場してからは第1人気をJavaに譲っているものの、それでも登場から今日までの長きに渡って使われ、さらにこれほど人気を保ち続けているプログラミング言語は他にない。
記事本文掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

ITエンジニアのためのマーケティング入門 第22回 (vol.45掲載)

投稿日:2017.06.13 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.45は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第22回 マーケティングの実践 – その10-

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。マーケティングの基本について一通り学び終え、これから会社の後輩カンナちゃんと一緒にマーケティングの実践方法を学んで行こうと考えています。今回は「顧客経験価値マーケティング」のお話が始まります。

今日は「顧客経験価値マーケティング」の話をしてみよう。
「顧客経験価値」って、ときどき聞くけどどういうモノなの?
顧客経験価値は英語の「カスタマー・エクスペリエンス(Customer Experience)」という言葉を使う方が多いの。最近は略して…。
「CX」ですねっ!
おぉ、カンナちゃんさすがじゃな。その通り!とりわけIT業界は何でも略すのが得意じゃからのー。顧客経験価値マーケティングは「CXM」とかいわれておる。さてこのCX、定義が正確には固まっていないんじゃが、「製品やサービスそのものの持つ物質的・金銭的な価値ではなく、その利用経験を通じて得られる効果や感動、満足感といった心理的・感覚的な価値」と説明されておる※1。

※1 出典:「マーケティング用語集」SPI http://www.spi-consultants.com/ja/terms/archives/customer-experience.php

商品やサービスを売って「ありがとう」でおしまいじゃなくて、それで本当に満足してもらっているかってところに着目してるんだね?
そうなんじゃ。顧客が購買するモノやサービスに対しては、「製品自体の機能や性能、顧客が期待する利便性に対する対価(価値)」と長い間考えられてきたわけなんじゃが、よく引合いに出される「東京ディズニーランド/ディズニーシー」や北海道「旭山動物園」などの大成功にマーケティング関係者が触発されたこともあり、「製品・サービスを通じて顧客が得る“経験的ベネフィット”や心地良さを含めた価値こそが“トータルな価値”であり、競合から抜きんでる理由である」とする考え方が広まってきたんじゃよ。
感動の体験は「おカネに代えられない」って言いますからね。
それそれっ!“Priceless”とか“お金で買えない価値がある。買えるものはマスターカードで”というCMがヒットしたクレジットカードのMasterCardは、これでかなりシェアを挽回したんじゃよ。「経験価値マーケティング」が注目され始めたのは、ちょうどこのCMが流れ始めたころなんじゃ。
そのCM憶えてる!そんなに古い話じゃないんだね?
そうなんじゃ。「顧客経験価値」の考え方を広めたのは、アメリカの経営学者バーンド・H・シュミットが1999年に著した「顧客経験価値マーケティング」が最初と言われておる※2。

※2 “Experiential Marketing : How to Get Customers to Sense, Feel, Think, Act, and Relate to Your Company and Brands”(邦訳版:『顧客経験価値マーケティング』ダイヤモンド社 2004年)

どうして「顧客経験のマーケティング」に思い至ったのかしら?
1980年代に登場した、顧客とのインタラクションに着目した「リレーションシップ・マーケティング」に源流があるんじゃ。これをITで支援しようとしたものが「CRM(顧客関係管理)」なんじゃよ。
CRMパッケージは今でも使っている会社があるよね?
アメリカでCRMが登場した1990年代後半当時には、一人一人の顧客である「個客」に焦点を当てた「One to One マーケティング」が全盛だったこともあって、CRMは大流行したんじゃ。
そうだったんだー。
しかし、当初のCRMは、マーケティング支援ではなく「顧客情報管理」の延長上にあったために「カスタマーセンター」「ダイレクトコール(電話勧誘)」「ダイレクトメール」など「個々の顧客に到達し販売機会を増やすこと」に重点が置かれ過ぎてしまい、急速に廃れてしまったんじゃ。「データベース・マーケティング」とかもそうじゃな。しかし、現在の基礎を形作ったともいえるんじゃよ。
結局「押し売り」になっちゃったんだね?
カード会社などが「新規顧客獲得コストよりも既存顧客維持コストの方が圧倒的に安い!」なんて発表したものだから、既存顧客向けに顧客満足度を上げようとする動きが度を越したんじゃな。
そういえば最近ダイレクトメールがめっきり少なくなったよね?
そうした動きを見たシュミット先生は「CRMはけしからん!」と怒ってこの本を書いたわけじゃな。
「販売志向」から抜け出せていないってことなんですね?
そうじゃ。「顧客経験価値(CXM)」の考え方は何もコンシューマの世界だけではなくて、BtoBの世界でも重要じゃから、覚えておくと良いじゃろ。BtoBでも、製品やサービスを選ぶのはあくまで個人や個人の集合じゃからの。
そう!ウチの部長は感情的な価値偏重だよねー!?
フッフッ。そうよね、「好きか嫌いか」でしか判断しないのよね!
そういった選好性は「情緒的価値」になるんじゃろうな。それでまず、シュミット先生は「経験価値」を5つに分類してみたんじゃ。
どんなふうにですか?
感覚的経験、情緒的経験、認知的経験、行動的経験そして社会的経験の5つじゃ。整理するとこんな内容なんじゃよ(表1)。想像しやすいように具体例を入れてみたんじゃが、なんとなくでもよいから理解してもらえるかの?
ナルホド、あるあるだねー。ところで、この「AMEXセンチュリオンカード」って何?
通称「ブラックカード」のことじゃよ。
知ってます!世界のセレブしか持てないっていうカードですね。

表1:顧客経験価値5つの分類

事例39:AMEXセンチュリオンカード

米国カード会社「アメリカン・エクスプレス センチュリオンカード(American Express Centurion Card)」の黒色はカードとしては独特だ(現在は他社も追随している)。顧客はチタン製のカードを選ぶこともできるという。AMEXでは以前から富裕層をターゲットとした「ゴールド・カード」が存在し、高度なサービスを求める顧客から好評を博しビジネスとして成功を収めていた。しかし、競合他社が相次いで「ゴールドカード」を発行するに及び、そのステータスの高さを維持することが困難になっていった。そこでAMEXは1984年に更に上位の「プラチナカード」を発行する。しかしこれも他社に追随されていく。ステータスの高い富裕層を強力に囲い込むため、1999年に「センチュリオン・カード」を発行、高額の年会費で他社を振り切る戦略に出た。通称「ブラックカード」と呼ばれるこのカードは、一切宣伝広告をせず、選ばれた最重要顧客だけが密かに「招待キット」を受け取る。そのサービスは群を抜いており、専任コンシェルジュに世界中からコレクトコールで電話が可能、誕生日にプレゼントが届く、ブランドショップの閉店後に特別にプライベートショッピングが可能など、そのステータスに見合ったサービスが受けられる。現在日本では入会金54万円、年会費は37.8万円といわれている。
出典:Wikipedia「アメリカン・エキスプレス・センチュリオン・カード」
会費37万円?!
格差社会の象徴のようで、ちょっと引いちゃうわね。
ワシも想像はつかんぞな…昔はゴールドカードに憧れていた時期もあったんじゃがのー、ハッハ。
 「行動的経験(ACT)」といえば、「嵐」のコンサートチケットがヤフオクで高額で取引されてるってニュースで見たわね。
最近音楽CDが売れなくなっているといわれておるが、逆にライブはここ6~7年の間に売上も入場者数も急激に増えておるんじゃよ。2015年はMr.Childrenが約112万人を動員してトップ、2016年はまだ統計が出ていないが、今のところ韓流のBIGBANGがトップらしい※3。

※3 出典:「1位はミスチル コンサート動員力ランキング」日経エンターテイメント 
http://style.nikkei.com/article/DGXMZO94721470T01C15A2000000?channel=DF280120166614

図2:ライブ入場者数推移表※4

※4 出典:「一般社団法人コンサートプロモーターズ協会」 http://www.acpc.or.jp/marketing/transition/

CDよりもやっぱりライブがサイコーだよねー!
タケシさん、そういえば「ももクロ」のライブはどうだったの?
えーっ!なんで知ってんのーっ?!
おっと、その「ももいろクローバーZ」は2016年上半期では2位だったらしいぞな。惜しかったのう!
しらんわ!
フフッ!
経験価値の重要性はもう体験済みなわけじゃな。さて、本題に戻るぞな。この5つの経験価値はもちろん相互に排他的なものではなくて、複数の経験価値を同時に満たしているような場合もあるから、そう厳密に考える必要はないんじゃよ。例えばこんなイメージじゃな。

図3:シュミットの5つの経験価値
そういえば、東京ディズニーシーは絶叫に近いアトラクションもあるし、年間パスを持ってると友達に自慢できるから、「Feel」、「Act」、「Relate」を同時に満たしているかもしれないよね?
そうなんじゃ、タケシ。珍しくサエておるなー。
またまたっ、それ止めてよ!
シュミット先生は「顧客経験価値マーケティング」で顧客経験価値を体系的に分析し、次の著作の「経験価値マネジメント」の中で経験価値をマネジメントすることに挑んでおる。これを略して「CEM(Customer Experience Management)」と呼んでおるんじゃが、その中で「3つの間違ったアプローチ」として「マーケティング・コンセプト」、「顧客満足」、「CRM」を挙げておるんじゃ。
3つの間違い、ですか?
それぞれについて次のように断罪しておるんじゃ。

1.「マーケティング・コンセプト」:
顧客指向と言いながら製品中心の見方から脱しきれていない。
2.「顧客満足」:
消費者の製品やサービスにまつわるすべての経験まで考慮されていない。
3.「CRM」:
取引に焦点があてられ、顧客との情緒的つながりが無視されている。
なんか、今まで“追求することが良いこと”って教えられてきたモノのような気もするわね?
その通り!「マーケティング・コンセプト」の提唱者で、以前に紹介したこともあるマーケティングの大家、P.コトラー先生を暗に批判しておるんじゃな。
へーっ、そうなのか。いろいろあるんだねー。
次回は「経験価値マネジメント」のフレームワークという話をしてみようかの。
面白くなってきましたね!
(つづく)

ITエンジニアのためのマーケティング入門 第18回 (vol.41掲載)

投稿日:2017.06.13 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.41は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第18回 マーケティングの実践 – その6-

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。マーケティングの基本について一通り学び終え、これから会社の後輩カンナちゃんと一緒にマーケティングの実践方法を学んで行こうと考えています。今回は「グローバル・マーケティング」のお話です。

今日はグローバルマーケティングの話をするかの。
グローバルってことは、海外でマーケティングをするってことだね?
進出先の言葉や文化を知らなくてはいけないから、国内よりはハードルが高くなるわね。
そうなんじゃ。国内市場の規模が十分にあれば、わざわざ国外に出ていく必要はないんじゃ。例えば次のようなリスクが大きいからなんじゃな。
うーん、最低限英語ができないといけないしボクには無理だなー。
そんな根性なしではいかんぞな。今やいつ海外に行くことになるかもわからん!次に挙げたような理由から、日本企業も海外進出の必要性が高まっているんじゃぞ!

・人口減で国内市場が飽和または縮小傾向にある

・経済が低成長で大きな利益をあげることが難しい

・低コストで国内製造することが難しい

・取引先や親会社が海外に進出する
でも日本の良い製品を歓迎してくれる世界の人も多いから、世界に出るって良いことなんじゃないかしら。
そうじゃな。海外に企業が出て稼いでもらわないと日本も外貨が獲得できん。じゃが、海外進出するからには、当然しっかりとしたマーケティング戦略をもって進出することが望ましい。
3C(競合、顧客、自社)とか、4P(製品、価格、流通、販促)を海外に置き換えて考えてみるだけでもスゴク難しそうだね。
その通りじゃ。「グローバルマーケティング」という概念は1990年代になって生まれたといわれていて、実は大変新しい言葉なんじゃ。それまでは多国籍企業で実施されているマーケティングが「国際マーケティング」と呼ばれていて、国境を越えて存立させた海外子会社(R&D、生産、物流、販売会社など)を組織化して、原材料の調達と生産のコスト低減、効率的な物流、大量消費地などを勘案して実施されていたのが手本だったんじゃな。
少しずつ海外に製品を持って行って、経験を蓄積してきたんですね。
ただ、初期のグローバルマーケティングは失敗も多かったんじゃ。これを見てみるがよい。

事例30:初期グローバルマーケティングの失敗例

以下の失敗例の原因は何だったか想像してみよう。
①コカコーラは、スペイン市場に「2リットルボトル」を導入したが、当初失敗に終わった。
②プロクター&ギャンブル(P&G)は、歯磨き粉「クレスト」をメキシコ市場に投入したがあまり売れず失敗した。
③S.C.ジョンソンは、日本に床磨き用ワックスを導入したが、当初まったく売れなかった。

出典 ?『マーケティング・マネジメント』
ミレニアム版 フィリップ・コトラー著
ピアソン・エデュケーション

コカコーラの2リットルボトルって、今でもあるよね?なんでだろ。重いものを持ちたくなかったのかな?
歯磨き粉は…甘くて受けなかったのかしら?床用ワックスは…日本の気候に合わなかったとか?
正解はこれじゃ。

<正解>
①2リットルのボトルが入るほど大きな冷蔵庫を持っているスペイン人がほとんどいなかった。
②メキシコ人はそれほど虫歯予防に気を使っておらず科学的な説明をされてもあまり理解しなかった。
③日本人は家の中で靴を履かないことを見落としていた。

えーっ?!こんな理由なの?
フフフッ。これ可笑しいわね!
ハハハ。おもしろいのう。しかしこうした昔の失敗からもいろいろ教訓を得ることはできるじゃろ。それぞれ直接的には①ボトルの保冷手段②国民の保健意識③居住空間の違い、に思いが行き届かなかったのが失敗の要因だったわけじゃが、それは進出国の生活習慣やライフスタイルをかなり深く探る必要性があるということなんじゃ。今でこそネットを使って海外事情を入手することは容易になってはいるが、特にコンシューマ製品の場合は気を付けなければならん。これには宗教的な要因なども大きいんじゃ。
自国では定評ある商品でも、外国ではどんな落とし穴があるかわからないよね。
日本でも古くから海外進出した企業はあるんじゃ。例えば誰もが知る味の素やキッコーマンはかなり以前から海外に進出して根付いておるんじゃが※1、失敗した例も数多くある。M&A(買収)の代表的な例を見てみようかの。
※1 「味の素」は1910年、当時日本領だった台湾に進出した。「キッコーマン」は1905年には朝鮮半島に工場を設立していたが、本格的なグローバル進出は1967年米国で生産開始したのが最初。

事例31:海外M&Aの失敗例

①NTTコミュニケーションズのベリオ社買収
NTTコミュニケーションズは、2000年に50億ドル(当時)の現金で米国ISP大手ベリオ社を買収した。ベリオ社はコロラド州で創業した小企業だったが、米国及びヨーロッパの小規模ISPを次々と買収し急激に成長していた。しかし買収直後、ネットバブル崩壊もあって急激に業績が悪化、わずか1年後には5000億円の減損損失を計上するに至った。
②第一三共のインド・ランバクシー買収
第一三共は2008年、インド製薬メーカー、ランバクシー社の株式を4900億円で買収した。しかし、その後米国FDA(食品医薬品局)から安全基準に疑義がかけられランバクシー製品が輸入禁止になってしまった。その結果2009年には3500億円の評価損を計上したほか、品質問題で巨額の米政府への和解金も発生した。経営陣を送り込むなど多大な人的投資を傾注したものの、その後主だった医薬品開発成果を上げられないまま、2015年にインド後発医薬品メーカーに3800億円で売却し終止符を打った。損失額よりも6年間におよぶ組織の疲弊と時間を失った代償の方が大きいといわれている。
③キリンホールディングスのスキンカリオール買収
キリンホールディングスは、2011年、ブラジル2位のビール会社スキンカリオールを3000億円で買収した。しかしその後創業者一族による経営権争いに巻き込まれたほか、圧倒的なシェア第1位のアンハインザー・ブッシュ・インベブ社に価格競争で敗れて低迷、ブラジル経済失速によるレアル下落もあって、1140億円もの特損を計上して上場以来初の最終赤字に陥ってしまった。スキンカリオール社の経営権争いは以前から業界内では有名で、同業他社が「意思決定に時間がかかる」と諦めていた現実を甘く見過ぎた失敗とみられている。
出典:『失敗? 成功? 巨額損失を計上したM&A10選』
M&A Online?https://maonline.jp/articles/kyogaku0066
『キリンが海外戦略で誤算、ブラジルのビール大手買収で泥沼』東洋経済Online?http://toyokeizai.net/articles/-/7937
いやー。難しいんだね!
ちょっとアンラッキーな面もあるけど、内部の調査が不十分なまま海外に巨額の投資をするのは怖いって思っちゃうわね。
確かに日頃厳しく経費を査定するのに、こうした大型案件に数千億円もポンと金を出すのは矛盾しておるのじゃが、それでも成功している企業も多いんじゃ。次回は成功の条件と事例を見ていくことにするかの。
(つづく)

【今回の用語まとめ】

グローバル・マーケティング:

世界全体を市場と捉え、国境を越えて言語、文化など様々な違いを吸収し事業を展開するためのマーケティングをいう。世界の市場へ適応するための「現地適合化」と「標準化」がキーポイントといわれる。世界市場を細分化した場合、個々の市場ニーズに応えるための人と組織、原材料調達、生産体制を最適化し、最も生産性やコストの有利な地域で生産し、販売可能な地域へ流通させるための経営戦略と密接に関係する。近年は世界的な規制緩和や様々な経済圏を通じて商品と情報のグローバル化が進み国際的M&Aが増加したことなどから、グローバル・マーケティングの重要性が高くなっている。

「グローバル・マーケティング」Wiki(英語版) https://en.wikipedia.org/wiki/Global_marketing

ITエンジニアのためのマーケティング入門 第21回 (vol.44掲載)

投稿日:2017.06.13 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.44は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第21回 マーケティングの実践 – その9-

前回までのあらすじ

社長からマーケティングを学ぶように言われたエンジニアのタケシは、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろな知識を吸収しています。マーケティングの基本について一通り学び終え、会社の後輩カンナちゃんと一緒にこれからマーケティングの実践方法を学んで行こうと考えています。前回は「ブランド・マーケティング」のお話でした。今回はその続き「ブランド構築」のお話です。

前回までの話でブランドの意味とか効果とかは理解できたけど、実際にはどうすれば「ブランド構築」ができるのかな?
時間が掛かるにしても、適切な方法って何かあるのかしら?
ハハハ、今回のテーマはまさしくそこなんじゃ。ブランド構築には「正しいステップ」があるのじゃよ。
正しいステップ?
いろいろな考え方があるんじゃが、代表的なものを一つ紹介しよう。これはアメリカのK.ケラーという先生が提唱している「戦略的なブランドマネジメントのプロセス」というものじゃ(図1)。順に説明しよう。

図1 戦略的なブランドマネジメントのプロセス

STEP1 「ブランドポジショニングと価値」の定義と確立

ただ商品名やロゴ、シンボルを決めただけではブランドにはならんな?
そりゃそうだよね、誰も知らないんじゃブランドになんかならないもの。
お客さんが良いイメージを持ってくれて、はじめてブランドなんじゃないかしら?
そのとおり。「ブランドポジショニング」とは、お客さんが持つイメージぴったりに自社のブランドを正確に位置付けることなんじゃよ。これは他社との差別化要素を明確にすることにもなる。じゃから、そのために「市場における自社ブランドの価値と存在意義」を再確認する必要があるんじゃ。
ナルホド、それで「ポジショニング」なわけだ。
それができるのは誰じゃろ?
創業者や社長さんとかかしら?
そのとおり!じゃから、トップの責任で長期的な展望を決めないと、ブランド戦略は成立しないんじゃよ。マーケティング部門や広報部門だけではできない話じゃ。

STEP2 「ブランドマーケティングプログラム」の計画と実行

これは、ブランドの価値を広く市場やお客さんに、自信をもって伝えていく具体的な作業になる。
ここは、マーケティングの広報や宣伝の役割だよね?
まぁそうなんじゃが、前に言ったように“広告でブランドは作れない”。そこは忘れんようにな。
そうだったね、思い出した。
この作業には、お客さんにメッセージを伝えるキャッチフレーズやロゴの制作なども含まれる。それに、開発した商品の製品特性やバリエーションが、定義したブランド価値に合致しているのかを常にチェックすることも忘れてはいかんのじゃ。
お客さんに持ってもらうブランドイメージを損なわないように、注意するってことなのね。
さらに、社内にブランド価値を浸透させるための社員教育や組織作りもここに含まれるんじゃよ。
ブランド構築を実践していく中心は社員だから、全員がその価値を理解していることが必要なのね。
そして優れたブランドには3つの「一貫性」があるといわれておる。
3つの一貫性、ですか?
それは「時間経過に対する一貫性」、「商品相互間の一貫性」、「マーケティングミックスの一貫性」の3つじゃ。
3つもあるのか……ブランド構築って、やっぱり大変なんだな。
去年出した製品とまるで違うコンセプトの製品を同じブランドから出したら離反する客も出てくるじゃろ。それに、長く使い続けても大丈夫という安心感を裏切ってもいかん。それが「時間経過に対する一貫性」じゃ。
長く続く安心感か。そうか、うちの母さんも昔から変わらず虎屋のようかんと栄太郎飴が好きだからなぁ……。
爺:  「商品相互間の一貫性」は、違う商品でもブランド価値が同じであること、「マーケティングミックス」の一貫性は、商品、価格、販売チャネル、プロモーション全般にわたってブランド価値を矛盾なく体現させることなんじゃ。
そういえば、ポケモンGOのキャラクターって、どれもみんな可愛いよね!
オマエはそこか!

STEP3 「ブランドパフォーマンス」の測定と評価

これは、思い描いていた通りにブランドが市場やお客さんに受け止められているかをモニターするステップになるの。例えば、お客さんの声や評価を「お客様相談室」やネット上の評判で調べることができるな。
口コミだね?
クレーム対応で炎上したりしないよう気を遣うところね?
そういうことじゃな。ここで問題や課題が発見されたら、STEP1やSTEP2に戻って微調整するんじゃ。

STEP4 「ブランドエクイティ」の育成と維持

聞き慣れない言葉じゃが、「ブランドエクイティ」とは「ブランドの資産価値」という意味なんじゃ。ブランドが発展すること、すなわち支持してくれるお客さんが増えれば増えるほど、この資産価値が高まるわけじゃ。
資産価値って、お金に換算できるの?
そうじゃよ。前回もいくつか例を紹介したじゃろ。ブランド価値とは、要するに「のれん代」のことなんじゃ。
のれん代って言葉は、M&Aの時や海外企業買収で失敗した時なんかに出てくるよね?
それは「のれん償却」のことね?
そうじゃ、高いブランド価値をもつ企業は、その高い評価がM&Aの際の買収金額に反映されるんじゃよ。
そうだったのねー。
さて、自社のブランド構築のステップは見たが、今度はお客さんの視点から見たブランド発展の段階を見ていこう(図2)。

図2 ブランド・レゾナンス・ピラミッド
これまた、なんか難しい用語が出てきてるね!
これはケラー先生の「ブランド・エクイティ・ピラミッド」または「ブランド・レゾナンス・ピラミッド」という有名な図なんじゃが、「ブランド・レゾナンス」とは、お客さんが強烈にそのブランドを信奉していて、「絶対これ!」といったこだわりを持った状態のことを言うんじゃ。お客さんとブランドが同調している状態を「反響、余韻、共鳴」という意味のレゾナンスという言葉で表しているんじゃの。
うちのチームのヒロシくんは、家ではアップルのPC以外は買ったことないって言ってたなー。そういうヤツのことかー。
図の左の「ブランド開発のステージ」は、お客さんとブランドの関係がだんだん進化していく段階を示しているのね。
右側の「ブランディングの目標段階」は、お客さんのブランドに対するイメージの深さの段階なんだな。
そういうことじゃ。ではブランド構築の成功事例を見ることにしよう。

事例37 生活者視点から始まった無印良品のものづくり

無印良品は1980年に西友の一事業部門としてスタートした。当初から大切にしていたアイデンティティは「生活者視点に徹する」こと。既存メーカーの製品を並べて販売するのではなく、生活者視点で独自の商品を生み出そうという「逆転の発想:マーケットイン」のコンセプトが当初から「無印」には込められていた。そこから生まれた新商品の一つが真っ白な「生成りのふとん」。布団には様々な色・柄があるのが普通だが、実際使用する際にはカバーをかけることが多い。そこで中身の絵柄をつけずに消費者の好みやライフスタイルに合わせてカバーを選んでもらおうと製作した。これにより大幅なコスト削減が実現し、安く提供できるようになったが、当初はメーカーから反発された。デフォルトでは泥除けやライトが付いていない「パーツを選べる自転車」を発売した時もそうだった。無印良品はその後も姿勢を変えず、さらに徹底して顧客の意見を商品開発に反映させるため、2009年「くらしの良品研究所」を立ち上げた。
出典:「デジタル時代のブランド育成方法、無印良品が進める絆づくりとは?」Markezine 2014.7.11 http://markezine.jp/article/detail/20386

参考:「シェルスクリプトマガジン VOL.35」(2016年3月号)
当連載第12回[事例19]

そうか、当初のコンセプトを変えずに徹底する!っていう姿勢がブランド構築に繋がるのか。
無印良品は以前にも取り上げたことがあるのう。ブランドというと「古くからある」というイメージじゃが、ここはブランドとしては比較的新しいんじゃ。それでも国内312店舗、海外344店舗を持つ大チェーン店ネットワークに育っておる。
海外でも「MUJI」ブランドで有名なのよね。シンガポールやオーストラリアに行った時にも見つけたことある※3。
多少の反対や事件では「ぶれない」ということが肝心なんじゃの。もう一つ「ブランド・レゾナンス」を示したともいうべき著名な事例をあげておこう。

※3 出典:㈱良品計画 企業情報(2016年2月期)http://ryohin-keikaku.jp/corporate/

事例38:「サービスを超える瞬間」ザ・リッツ・カールトン

1997年に日本進出した「ザ・リッツ・カールトン」は世界のホテルランキングでも上位を維持している。その卓越したサービスが「感動」を産んだエピソードは数多い。“彼女に結婚を申し込むつもりでホテルスタッフに「ビーチチェアを用意しておいて下さい」と頼んだら、椅子の前に男性が膝をついても汚れないようにタオルを敷き、白いテーブルクロスを敷いたテーブルの上に花束とシャンパンを置き、タキシードを着てお客様を待っていた”とか、“宿泊予定で荷物も送っていた老夫婦の自宅に強盗が入りそうになり、宿泊を急遽キャンセル。幸い問題は無かったが、その夜リッツから夫婦に荷物が届き、中を開けてみると焼きたてのクッキーとグラス、シャンパンと共にバスローブが二枚……「結婚三十周年おめでとうございます。お二人の力になればと思い、お祝いをお届けします。」とメッセージが添えられていた”とか。
「サービスを超える瞬間」を著した元日本支社長の高野登氏は、「サービスによって満足は伝わるが“感動”は伝わらない」と語る。その“感動を伝える”従業員はサービスの基本精神が書かれている「クレド(credo)」というカードを常に携帯している。また、従業員自らの判断で1日2,000米ドルまでの決裁権が認められている。
従業員を採用する際にも、ザ・リッツ・カールトン独自の人材採用システムを用いている。経歴や経験ではなく素質を重視した面接を行うため、採用までに長期に渡って時間をかける。これは、ザ・リッツ・カールトンの社風などをきちんと理解できた人が入社するというメリットがある反面、アルバイト・契約社員を採用する際も同じ面接を行うのでコストが掛かりすぎるデメリットもある。リッツ・カールトンは自らを取り巻く社会を3つの層で捉えている。「社員とその家族」が最も重要で、次に「パートナーとその家族」、最後に「お客様」なのだ。高野氏はこう語る。「「ザ・リッツ・カールトンは、お客様にわくわく感動してもらいたいと常に願っています。ただ、お客様の感動というものは、社員が働く中で抱く感動を超えることはないと考えています。そのため、このような優先順位となっているのです。」


出典:「リッツ・カールトンが大切にするサービスを超える瞬間」高野登著 かんき出版

出典:「サービスを超える瞬間」の実現──ザ・リッツ・カールトンの経営理念と哲学」ITmediaエグゼクティブ (2011.2.8)

これ、なんかナットクしちゃうなー。「感動して働ける社員だけが感動を届けられる」って話だね。
爺: 「お客様第一」を掲げる会社は多いが、実際はそうでないことが多いからのう。従業員を第一に考えた上で“顧客への感動を届ける”を徹底して実践している姿勢は見事じゃの。
もしかして、“従業員が満足していなければブランドは構築できない”ってことなのかしら?
カンナちゃん、そのとおりなんじゃよ。ブランドを継続的に育成するためには社員が誇りを持って働ける環境づくりが重要なんじゃ。ブラック企業にブランドは定着せん。例えば、次のようなミッションを行動規範として全社員や関係者に徹底させると良いのじゃ※4。このような行動規範を明示すると同時に、従業員の待遇を改善しパートナーと捉えることによって、業務遂行の意欲を向上させることが、ブランド育成には有効なんじゃよ。

1.社員は互いに尊敬し合う。
2. 多様性を受け容れる
3. 最高のレベルを目指す
4.顧客が心から満足する製品を提供する
5.地域と環境を守る
6.利益を上げることは社会に貢献することでもある

難しそうだけど、大切なことだよね。
ブランド構築の奥深さが理解できました!
そうか、それは良かった。では、次回はブランドと関係のある「顧客経験価値マーケティング」に進んでいくかの。
またまた楽しみにしてるよ!

※4 出典:「ビジネスQ&A J-Net21 http://j-net21.smrj.go.jp/well/qa/entry/314.html
(つづく)

※図1, 図2 出典:Keller, Kevin Lane(2013), Strategic Brand Management: Building, Measuring, and Managing Brand Equity. 4th ed. Upper Saddle River, NJ: Pearson /Prentice Hall.(翻訳:筆者)

ITエンジニアのためのマーケティング入門 第16回 (vol.39掲載)

投稿日:2017.06.6 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.39は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第16回 マーケティングの実践 – その4 –

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。マーケティングの基本について一通り学び終え、これから会社の後輩カンナちゃんと一緒にマーケティングの実践方法を学んでいこうと考えています。前回は「ファネルマーケティング」の話でしたが、今回は「競合優位追求型マーケティング」のお話です。

今日は「競合優位のマーケティング」の話をするかの。
競合優位って、ライバルがたくさんいる中で抜きんでることだよね。
その競合優位ってなんじゃろか?
ライバルの品物より品質が良い、価格が安い、性能が良いとかでしょ?
そんなふうに誰もが思っている場合にシェアが大きくなって競合優位になるんじゃないの?
カンナちゃん、それは良いところに気付いたの。“だれもが思っている”というところが肝心なんじゃ。競合優位性を簡単な絵にすると、このようになる(図1)。

図1

1つはコスト優位性じゃ。コストが低ければ安く市場に供給できる。安さは誰でも魅力じゃからの。もう1つは差別化優位性じゃ。「差別化」と括ってしまったが、この中にはいろいろある。
性能や品質とかデザインとかだよね。4Pの時に習ったよー。
そうじゃ。おいそれとライバルが真似しにくい特性を数多く持つことが肝心なんじゃ。
時間をかけて技術を磨いてきた企業が結局競合優位になりえる、って聞いたことがあるわ。
そうじゃ。ではまず競争戦略の基本をおさらいしてみるか。
マーケティングじゃなくて戦略の話なの?
タケシや。マーケティングを考えるときに登場する主体は何じゃった?
えーと、市場のお客さんと、自社と競合の3Cだったよね?
そうじゃ。競争戦略に登場するのも実はいっしょじゃ。じゃから競争戦略はマーケティング戦略に包含されるともいえるんじゃ!
えーっ?それ反対じゃないの?
それはどちらでも良いのじゃ!
マーケティングはマネジメントそのものっていう意味なのかしら?
カンナちゃん、ビンゴじゃ!マーケティングの大家、P.コトラーは、“競争優位という概念はM.ポーターが提唱した。しかし、マーケティングは昔から競争を意識してきた。顧客を獲得する、顧客を維持するというのは、競争するという事と同じ意味だ。競争を優勢に進めるためには、必然的に他との違いを強調する。つまり競争優位を実現し演出する。”といっておるぞよ※1

※1 出典:「コトラーのマーケティング戦略 最強の顧客満足経営をキーワードで読み解く」多田正行 PHP。?https://www.php.co.jp/books/detail.php?isbn=4-569-63636-5

お客さんを獲得し続けることが会社を発展させるためには必要ってことね?
これが米国のポーターという経営学の大先生が提示した競争基本戦略の絵じゃ(図2)。どこかで見たことがあるじゃろ。表1は図2の意味じゃ。

図2

表1 出典:M.E.ポーター『競争の戦略』ダイヤモンド社

なるほど、集中戦略が低コストと特異性の両方をカバーしているっていう意味がわかったよ。
②と③は大きな市場シェアを狙いに行かない(シェアを諦める)代わりに非価格競争に持ち込める、という点が大きなメリットであることを見逃さぬようにな。
勝算の不確かな低コストの追求ではなくて、特徴を磨くことで活路を見出しているのね。
そういうことじゃ。これは今でも通用する基本的な原則といえるんじゃが、かなり前の文献じゃから、現実に合わなくなってきた面もあるんじゃ。さて、日本の実態はどうなっておるかの? 表2に整理してみたが、日本はやはり「集中化戦略」の得意な企業が多いようじゃの。

表2 日本企業の競争基本戦略

トヨタやホンダはわかるけど、そんなに世界的な企業が多いの?
バカもん!これを見てみよ!

事例26:世界シェアトップの日本企業まとめ

日本には世界シェアトップの企業が数多く存在する。ソニー(ビデオカメラ)、ミネベア(小型ベアリング)、日亜化学(白色LED)、JUKI(工業用ミシン)、日本精機(2輪車用計器)、日東電工(液晶用光学フィルム)、日立金属(高機能ネオジム磁石)、ホンダ(自動二輪)、ナブテスコ(産業用精密減速機)、日本セラミック(赤外線センサー)、SHOEI(高級ヘルメット)、マブチモーター(小型モーター)、任天堂(ゲーム機)、ワコム(ペンタブ)、ディスコ(半導体切削機)、シマノ(自転車部品)、村田製作所(セラミックコンデンサ)、浜松ホトニクス(光電子増倍管)、ファナック(工作機械用NC)、日本電産(精密小型モーター)、信越化学工業(半導体シリコンウエハ)、日本ガイシ(碍子)…
以上すべて世界シェア一位企業である。トヨタも2015年生産台数世界一に返り咲いた。
このように産業用素材や加工機械、計測機器などが多く、細かくて精密な分野は日本人の気質にマッチしているらしい。ホンダや任天堂などコンシューマ企業もあるが、その多くは歴史あるBtoB企業という点も興味深い。
出典「国内/世界シェア1位企業」NAVERまとめ http://matome.naver.jp/odai/2133603554882742001
参考「隠れた日本企業のチカラ」Nikkei http://vdata.nikkei.com/prj2/ft-jpglobal-c

こちらも世界シェア1位企業一覧。ニッチの宝庫。大多数の企業は大企業ではなく、一般的知名度も高くない。しかし定評ある日本の工業製品力はこうした企業が支えている。

へーっ!結構たくさんあるんだね。知らない会社ばかりだけど、ボクが乗ってるロードバイクの変速機はシマノ製だよ!確かに世界中のスポーツ車の変速機はだいたいシマノのパーツがついてるんだよなぁ。やっぱ、世界一なのか…。
お得意の自転車の話じゃな?ハッハ。
そう言えば、ノーベル物理学賞を受賞した小柴先生や梶田先生のニュートリノの業績も、スーパーカミオカンデに設置されている浜松ホトニクスの光電管が貢献しているってニュースで見たことあるわ。
この例で挙げた以外にもまだまだたくさんあるんじゃ。さて、こうした世界的なシェアを確保した企業は、ニッチではあるがその分野のリーダー企業なんじゃ。じゃから、こうした企業のマーケティングは自然と2つの方向に向かうことになる。
2つの方向?
1つはシェアの維持と拡大、もう1つは市場の拡大じゃ。
やっぱりそうなるんだよね、簡単ではなさそうだけど。
その通りじゃ。かなり有名な事例じゃが、格好の題材があるぞよ。

事例27:ゼロからのスタートでシェア20%

格安海外航空券で一世を風靡し、今や国内外旅行会社の大手となったH.I.S。創業は1980年で運輸大臣の認可を受けられたのはその翌年だった。H.I.Sの取締役だった大野尚氏が入社したのは1984年、福岡営業所だった。社員はたった二人、机が一つしか無く、「やむを得ず自分の机や椅子・電話回線等までも持ってきた。しかし社長の澤田さんは”世界一になるよ、航空会社も作るよ。”と言っていた。最初は“ホラ吹きだなぁ。”とか“騙された”と感じたが、彼のオーラに引きこまれた。仕事は毎日チラシ配りだけだった。しかし諦めず目の前のできることを続けた結果、福岡市内で一番綺麗なオフィスと良い挨拶でお客さまを迎えられる旅行会社になった。」と語る。
H.I.Sは現在年商5,374億円(平成27年10月期)の大企業となり、2016年2月には国内主要49社でシェア19.6%(売上高比)を達成している。ハウステンボスを傘下に収めたほか、今後訪日外国人向けのインバウンド市場拡大のために海外店舗を増やしており、既に200店舗を超えている。

出典  ベンチャー企業HISの成功方法「ゼロからの挑戦」FUKUOKA成長塾 http://www.fukuokajuku.jp/archive/past8.html
H.I.S IR情報ほか http://his.co.jp/ir/

H.I.Sって、ウワサでは聞いたことあるけどホント急成長したんだね。スゴイなー。
旅行業界は古い業者さんが数多くいるらしいから、並大抵の努力ではなかったでしょうね。
ワシも若い頃に街で単色刷りの粗末なチラシを何度ももらったことがあるが、その航空券の激安ぶりには驚いたのー。それで何度か使わせてもらったんじゃ。
おか婆さんと海外旅行に行ったんでしょ?
バカモーン!ノーコメントじゃ!

 

ITエンジニアのためのマーケティング入門 第17回 (vol.40掲載)

【今回の用語まとめ】

ポーターの競争戦略

米国の競争戦略論の大家、M.E.ポーター(Michael Eugene Porter)が発表した経営戦略論。多くの戦略に関する著作があるが、代表作『競争の戦略』は経営戦略論の古典として今日でも多くの経営者や、経営学を学ぶ学生の間で利用されている。「3つの競争基本戦略」のほか、「5つの競争要因」という“顧客の価格引き下げ圧力、新規参入者の脅威、代替品出現の脅威、供給事業者の価格交渉力、競合者間の敵対関係の5要素のうち、どれか1つでも強くなると競争環境が変わる”とする5フォース分析やバリュー・チェーンなどの考え方を広めた。
その後多くのポーター理論への批判があり、

1. 顧客の視点がほとんど含まれていないこと
2. 自社対競合などの、自社以外の存在との関係性を重視するが、企業自身の内部的特性や潜在的強み(後にコア・コンピータンス理論に繋がる)が考慮されないこと

などが批判の対象となった。「できるだけ競争しないのが競争戦略」と揶揄されたが、名著の誉は今日でも揺るぎなく、MBA学生や経営者の必読書となっている。

ITエンジニアのためのマーケティング入門 第14回 (vol.37掲載)

投稿日:2017.06.6 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.37は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第14回 マーケティングの実践 – その2 –

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。マーケティングの基本について一通り学び終え、前回からは会社の後輩カンナちゃんも一緒にマーケティングの実践方法を学んでいこうと考えています。

さて、普通の会社にとって最も重要な目的はなんじゃろ?
うーん、良い商品やサービスを出し続けて利益を上げることかな?
お客さまをできるだけ多く集めてファンになってもらうことじゃないかしら?
タケシ、イマイチじゃな。カンナちゃんが正解じゃ!
わーいっ!
でも、お客さんを集めただけじゃ利益がでるかわからないよね?
タケシや、お客さんが大勢いるのにつぶれた会社はないんじゃ。たいてい、お客さんが減って立ち行かなくなって会社を維持できなくなるんじゃ。
確かに最近そうした例が多いかもね。
前に紹介したことのあるドラッカー先生の話では、「企業の目的は一つしかない。それは“顧客の創造”であり、さらに“企業=営利組織ではない”として、“企業とは何か”を決めるのは顧客以外には存在せず、だから基本的な企業の機能は“マーケティングとイノベーションだけである”。」と説いているんじゃよ※1

※1 ドラッカーは第1章「企業の成果」の冒頭で“企業=営利組織ではない”とし、古典派経済学への批判とともに、利益は大切だが利益動機なるものは無意味であり存在することさえ怪しい、と指摘している。
出典:『エッセンシャル版 マネジメント 基本と原則』P.F.ドラッカー著 上田惇生編訳 ダイヤモンド社

そうか。企業は「利益目標」を達成することが使命のように思っていたけどなぁ。
それは企業の存在意義を考えてみれば目的にはならんことがすぐわかるじゃろ。確かに利益も必要ではあるが、それは“目的ではなく条件”なんじゃ。さて、カンナちゃん、会社ではどうやってお客さんを見つけるのかな?
昔は雑誌広告が多かったらしいんですけど、あまり効果がないらしくて。今はホームページと展示会がメインみたいです。時々セミナーも開催しているようです。
なるほど。BtoB企業が普通によくやる手段じゃな。
新しいお客さんを見つけるのが、やっぱり会社でも課題になっているみたいだよー。
そうじゃろ。ま、BtoBの話は後回しにして、まずはファネルマーケティングの話からするかの。
ファネルマーケティング?
要するに“じょうご(漏斗)”のようなものじゃよ。
元が広くて先が細いあのじょうご?
お客さんと何か関係があるのかしら?
図1をみてみぃ。ある商品に、まずは大勢の潜在的なお客さんが気付く(Attention)、次に気付いたお客さんの中で興味を持った人たち(Interest)が“欲しいなー”と考える(Desire)、次にこれが意識の中に記憶され(Memory)、最後に購買行動に出る(Action)、そしてお客さんになる…。

図1 Purchase Funnel
AIDMA(アイドマ)っていうのかしら?
そうじゃ。今から100年近く前にアメリカの広告研究家が発案して世界に広まったんじゃな。海外ではPurchase Funnelと呼ばれておる。一つ一つ関門を突破してくれた潜在顧客が最終的に購買に至るという意味があるんじゃ。
へーっ。商品を知らない人がお客さんになるまでのプロセスを示してるんだね?
その通りじゃ。これは消費者購買モデルとして古くから研究されておるから、調べてみるとよい。では、事例を一つ見てみようかの。これは誰もが知る事例かもしれん。

事例23:アマゾン「ワン・クリック」の発明

1997年、J.ベゾスは二人の若いエンジニアと一緒にランチをとっていた時、「できる限り簡単に買い物ができるようにしたい」とつぶやいた。この願いを叶えたのが、あらかじめ顧客住所とカード情報をデータベースに登録しておき、サインインした顧客がボタンを一回クリックするだけで注文が完了するシステム「ワン・クリック」の仕組みだった。顧客の買い物の手間を少しでも減らせば売上が増え、競合相手を出し抜けると考えたのだ。
今でこそ、なんの変哲もないシステムだが、当時としては新しく、「通信ネットワーク経由で購入注文を実現する方法とシステム」として特許出願され商標登録も行った。これはビジネスモデル特許のさきがけになった。
『ジェフ・ベゾス果てなき野望』?ブラッド・ストーン著 井口耕二訳 日経BP社 ほか https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=201443070

ふーん、確かにこれ便利だよね。
一度利用すると、IDが登録されて次回からワンクリックでオーダーできるのね。
すると、次回も使おうという事になる。さらにプライム客には基本送料無料にしたからリピートされる。これがインターネットの隆盛とタイミングが一致したので、爆発的に客が増えたとも考えられるんじゃ。これをAIDMAに沿って説明したのが表1じゃ。

表1

なるほど、あるある!
実は、この最後の「Action=購入する」という関門が「最後のひと押し」といって一番難儀なんじゃよ。「カゴ落ち」といって、カートに入れたまま注文されない商品が結構あるんじゃ。これを「ワン・クリック」という技で敷居を極限まで低くしたところがミソなんじゃ。
価格が安めに設定されているし送料も無料で早く届くから、衝動買いもしやすくなっているのよね。
次のもあることがきっかけで売上を大きく伸ばした事例じゃ。

事例24:機能性表示で大復活したカゴメトマトジュース

カゴメの定番商品「トマトジュース」が“血中コレステロールが気になる方に”という表示を2016年2月2日に開始した結果、前年対比出荷実績が328%に達したと発表。これは2015年4月から消費者庁による「機能性表示食品制度」が開始され、従来の「特定保健用食品(トクホ)」と「栄養機能食品」に加え、新たに科学的根拠に基づく有効性を表示できる「機能性表示食品」というカテゴリーが加えられたことに対応したもの。
カゴメは、新しい価値“リコピンが血中HDL(善玉)コレステロールを増やす”という効果が受け入れられた、と自己評価している。
実は2014年夏、カゴメはトマトなどの原材料費高騰や消費税引き上げに伴う需要減で国内飲料事業が15%も落ち込み、2014年12月期 業績予想を下方修正していたのだ。制度変更を上手に捉えた製品戦略で大きく復活した好事例となった。トクホの指定を受けるよりもハードルが低いため、現在カゴメ以外に200以上の商品が指定を受けている。
参考:「機能性表示食品カゴメトマトジュース売上好調のお知らせ出荷前年比328%を達成」カゴメニュースリリース 2016年2月22日 http://www.kagome.co.jp/company/news/2016/02/002602.html

「機能性表示食品制度がはじまります」消費者庁 平成27年4月 http://www.caa.go.jp/foods/pdf/syokuhin1443.pdf

前年比3倍以上の伸びって、スゴクない?
私も特にコレステロールが高いわけではないけれど、“体に良い”という安心感が無意識に働いちゃったのか、買ったことあるわ。
日本では心疾患や脳血管疾患が原因で亡くなる人の割合が25%以上と言われており※2、その原因の一つが悪玉コレステロールによる動脈硬化だという常識が広まっているから、潜在顧客層は膨大な数になるじゃろ。そこにコレステロール低下に効果があるといった表示をしたんで一挙に注意(Attention)、関心(Interest)を飛び越えてAction(購買)に結びついたお客さんが多かったんじゃな。
※2 出典:「病気の知識」シオノギ製薬 http://www.shionogi.co.jp/wellness/diseases/dyslipidemia.html

値段も手ごろだし食塩無添加の商品も分かりやすくなっているから、つい買っちゃうのかも。
これは肝心の中身は何も変わってないのに、表示を変えただけで売上が大きく伸びたというところが面白いのう。
これがマーケティングの威力なのか…。
ハッハッハ。そう捉えてもよかろう。重要なことは、Attention→Interest→Desire→Memory→Actionのそれぞれの関門の間際でお客さんをできるだけ逃がさない工夫をし続けることなんじゃ。
逃さない工夫って?
それはメッセージだったり、印象的な画像だったり、オトクなキャンペーンだったり、メールニュースだったり、手段やタイミングはいろいろ考えられるじゃろ。
お客さんが興味を持ってくれたら、それが薄れないうちに背中を押してあげるようなアクションをとるべきなのね。
そういうことじゃ。では次回はBtoBについて考えてみるかの。

【今回の用語まとめ】

消費者購買モデル

消費者が商品やサービスを初めて認知してから購買するまでのプロセスを説明するモデル。購買意思決定プロセスともいう。様々な考え方が存在し、最近はSNS拡大を意識した購買後の情報シェアまで考慮に入れたものも存在する。特に大手広告代理店の電通が提唱し登録商標にもなっているAISAS(アイサス)が有名。
【保存版】「消費者購買行動モデル」まとめ NAVERまとめ http://matome.naver.jp/odai/2132383210009786701

カゴ落ち

ECサイトなどで、いったんカートに入れた商品を結局買わずに放置する(される)こと。カート離脱率(放棄率)として認識され、平均60-70%が放棄されているといわれる。これはEC先進国米国をはじめ世界的な傾向でもあり、大きな課題になっている。カート放棄の原因は、購買までの手続きが複雑、入力すべき個人情報が多すぎる、決済手段の選択肢が限られる、配送料が高い、返品やキャンセルなどの情報がわかりにくい、などがあるとされる。

ITエンジニアのためのマーケティング入門 第13回 (vol.36掲載)

投稿日:2017.06.6 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.36は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第13回 マーケティングの実践 – その1 –

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについて学んでいます。前回までマーケティングの基本的知識「STP」や「4P+4C」などを一通り学びました。これからはマーケティングの実践方法を学んで行こうと考えています。今回、おか爺の話を聞いて興味を持った後輩のカンナちゃんを連れてきました。

こんにちはー、おか爺。今日はお客さんを連れてきたよ!
初めまして、カンナといいます。タケシ先輩からおか爺さんの話を聞いて、私も聞きたくなって連れてきてもらいました!
それは、熱心なことじゃのう。これからタケシと遠慮なく遊びにおいで。それで今はどんな仕事を?
広報部に配属されたんですけど、入ったばかりでまだ仕事がよくわからなくて…。
広報部か?それは良かったのう。タケシにも参考になる経験がこれからたくさんできるじゃろ。ワシも少しは役に立てればよいがの。
はいっ!いろいろ教えてくださいね!
ところで、広報部は一般的にPRをやる部署なんじゃが、タケシ、PRの意味は分かっているかの?
PRって、文字通りプロパガンダ(PRopagada=宣伝)のことでしょ?…まてよ、プロモーション(PRomotion)のことだったかな?
プレスリリース(Press Release)の略なんじゃないかしら?
とほほ…残念ながら、二人とも間違いじゃ!PRはパブリック・リレーションズ(Public Relations)のことなんじゃよ。
パブリック・リレーションズ?なんか初めて聞いたなぁ…。
それも止むを得ん。世の中、「宣伝=PR」と認識している人が大部分じゃからの。その道の専門家でもこのように考えている輩がおる。これは勘違いなんじゃ。
そうだったのー!?
PRは20世紀のはじめ頃からアメリカで発展した考え方なんじゃが、「企業などの組織とその利害関係者(個人や集団、社会)と望ましい関係を構築するためのもの」というのが基本理念なんじゃ。ところが、日本に戦後導入された際に、民間企業で“PR”と略されたんで宣伝とほとんど同じ意味でしか使われなかったという経緯があるんじゃな。
広告会社をPR会社と言うのも、そういう事情だったのね。
PRで一般的に使われるのが「プレスリリース」で、これは新聞社など報道機関向けに記事にしてもらうことを期待して情報を配信するんじゃが、なかなか記事にしてもらえないのが実態じゃった。ところが、最近はWEBが発達したから、企業が「プレスリリース」と同時に「ニュースリリース」といった形で自社サイトで公式に発表することが多くなったのう。何より新しい商品を知る場としての報道機関の重要性が低下してしまったからの。
記者室向けに発表するなんて、まぁ時代遅れかもしれないよねー。

※1 パブリックリレーションズ(PR)広報と訳される。「組織体とその存続を左右するパブリックとの間に、相互に利益をもたらす関係性を構築し、維持するマネジメント機能(米国PRの教科書『Effective Public Relations』(邦訳名『体系パブリック・リレーションズ』カトリップ、センター、ブルーム3氏による)」と定義されている。さらに日本PR協会では、「企業、行政、学校、NPOなどあらゆる組織体が、それを取り巻く多様な人々(今日ではその組織となんらかの利害関係がある人々をステークホルダーと呼ぶ)との間に継続的な“信頼関係”を築いていくための思考・行動である」と補足されている。
公益社団法人日本パブリックリレーションズ協会 http://prsj.or.jp/shiraberu/aboutpr

最近の企業の「ニュースリリース」はかなり充実しておる。次のは、いい例かもしれん。

事例21:マツダのニュースリリースサイト

マツダの「ニュースリリース」サイトでは、2008年からニュース毎に写真のアイコンを入れ始め、最新ニュースへの誘因を促すアイキャッチとしている。ブランドサイトとしての一貫性が図られ、通常IR情報(株主や投資家向け情報)に属する情報へもこのページから直接アクセスできるように工夫している。

参考:http://www2.mazda.com/ja/publicity/release/2016/index.html

広報のページって堅苦しいイメージがあるけど、これはなんかカッコいいね。
綺麗にまとめられていて、思わずクリックしたくなる作りなのね。
北米で先に販売する新車のニュースが載っておるの。このページを訪れれば、たいていの最新情報にすぐにアクセスできるから、訪問者にとっては使いやすいサイトといえるじゃろ。では、“広報と広告の違い”はわかるかな?
うーん、広告はお金をかけるけど、広報はお金をかけないってことなんじゃないかな?
宣伝目的が広告、正確なニュースを周知するのが広報なんじゃないかしら?
うーん、まぁどちらも正解でよいじゃろ。PRの機能については?社会との共生、?企業の社会的認知の促進、?社会からの要望の採取、?自社を取り巻く社会環境の把握、?企業文化の構築と改革、といったものがあるんじゃが※1、分かりやすいように、広告とPRの違いを簡単にまとめておいた。参考になればよいがの。

表1:広告とPRの違い

なるほど。広告の浸透力が弱いっていうのは、すぐに忘れられやすいってことなのかしら?
そうじゃ。世の中広告があふれているからの。その一方でPRには信用度と客観性があるから、いったん注目されると印象に残りやすい面があるんじゃ。
たしかにそんな気もするよね。
さて、もう一つ事例を見てみようかの。

事例22:積極的なニュースリリースで過去最高の志願者数を獲得した近畿大学

近畿大学は2015年3月、「平成27年度一般入試志願者数確定過去最高の11万3,704人」というニュースをリリースした。これがプレスリリース配信サービス「News2u」社の月間ベストネットPR賞を受賞した。この背景には、「近大マグロの研究成果」をはじめ「完全ネット出願」、「教科書販売をAmazonと提携」、「初の女子応援部団長誕生」などメディアの興味を喚起するニュースリリースを配信し続けている地道な努力があった。時間をかけた継続的なニュース配信が過去最高の志願者数という成果につながった。その数は2015年度約360本。決め手は平成27年度入学式を近畿大OB、つんく♂がプロデュースしたことだった。その後入学式における「つんく♂無言の理由」が明らかになり、これも大きなニュースになった。平成28年度の入学式も“つんく♂プロデュース”が予定されている。

参考:月間ベストネットPR賞。2015年3月は「価値あるニュースを作り出し、オンラインで発信を続ける」近畿大学のネットPR事例が受賞!担当者からの受賞コメントを公開http://netpr.jp/netpr/models/17123/

これ、大学の入学式の案内?華やかで楽しそうだねー。
女子志願者も3万人を超えて過去最高になったのね。
ボクの大学生活は暗かったな…。
はっはっはっ!女子の前で何を言うとる!これから明るくしていけば遅くはないぞよ、タケシ!
うーん、そうだね。
さて、PRの話を見たところで、これからマーケティングをどう実践していくかといった話をしていこうかの。マーケティングの考え方を応用する方法には様々な考え方がある。いくつか代表的なものを事例とともに見ていくことにしよう。
それは勉強になります。楽しみっ!
「マーケティングの始め方」で習ったことが出てくるわけだね?
そうじゃな。新しい用語も出てくるじゃろ。前回までの話を縦糸とすれば、実践方法は横糸といったところかの。
ボクも楽しみにしてるよ!

 

ITエンジニアのためのマーケティング入門 第14回 (vol.37掲載)

ITエンジニアのためのマーケティング入門 第17回 (vol.40掲載)

投稿日:2017.06.6 | カテゴリー: 記事

Written by 水間 丈博

本記事掲載のシェルスクリプトマガジンvol.40は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

第17回 マーケティングの実践 – その5-

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろ知識を吸収しています。マーケティングの基本について一通り学び終え、これから会社の後輩カンナちゃんと一緒にマーケティングの実践方法を学んで行こうと考えています。前回からは「競合優位追求型マーケティング」のお話で、今回はその後編です。

この前はポーター先生の3つの競争戦略(①低コスト戦略②差別化戦略③集中化戦略)からマーケティングを考えながら、日本の隠れた世界的企業を見てきたが、どうじゃったかな?
世界で活躍する日本の機械屋さんが数多くあって驚いたね。
日本の製造業は衰えたって聞くけど、まだまだ力強い会社が多くて層の厚さを感じたわね。
それでは一つ問題じゃ。この例はどの戦略をとったんじゃろか?

事例28:世界最大のEMS鴻海精密工業

鴻海精密工業(鴻海科技集団:ホンハイ)は1874年台湾で創業した世界最大のEMS(電子機器受託生産:Electronics Manufacturing Service)企業、フォックスコン・テクノロジー・グループ(Foxconn Technology Group)の中核会社。当初は白黒テレビ用のプラスチック部品を下請けで製造する従業員10名だけの小企業だった。1981年にコンピュータ用コネクタ製造を開始し、創業者郭氏(現会長)の熱心な米国営業行脚が功を奏してインテル社などのPCのマザーボート用コネクターに採用されて急拡大、1993年には中国に最初の製造ラインを設置した。1990年代末にはPC本体製造も手掛ける。当時DellやHPがPC製造をBTO(Build to Order)方式に移行したのに伴い更に急成長し、中国本土の工場を拡大していった。米国にも営業拠点やR&Dセンターを設立、欧州にも進出した。その頃には液晶パネルやDVDなどパソコンの重要部品のほとんどを自社で製造できるようになった。2000年以降は携帯電話モジュールの製造に着手、その後iPod,iPhoneの世界拡大に歩調を合わせ、年商の4割がApple向けに。数々のM&Aを手掛けてきたが2016年3月にシャープを買収、かつての下請企業が注文主企業を併呑するにいたった。
現在世界14か国に製造拠点を設け、グループ売上高約14兆円(2014)、従業員130万人(2015)の巨大企業グループとなった。

出典 http://www.foxconn.com/

さて、この事例を見ると、ホンハイは当初TV用プラスチック部品という狭い分野からスタートし、次にコンピュータのコネクターという地味なパーツを手掛けた(集中化)。さらに中国大陸に進出して低労働コストを生かしてPC部品を大量かつ廉価に供給できるようになり(低コスト)、やがてスマートフォンの大量受託、迅速な納品ができるようになったので(差別化)世界的にシェアを伸ばした、といったように見えるのう。
なかなか競争戦略のどれかの枠にはまりそうもないわね。
企業が成長すると共に採りえる戦略が違うってことなのかなー。
まぁそう無理に当てはめる必要もないぞな。
自社の製造能力と世界の顧客の動向を見て、いち早く有利な分野の技術と生産能力を磨いたのかも…。
おお、かんなちゃん、相変わらず目の付け所が良いな。そういうことなんじゃ。それではもう一つ別の戦略を紹介しておこう。アメリカのJ.バーニーという経営学者の唱えた企業戦略論における「リソース・ベースト・ビュー理論」、略してRBV理論じゃ。
RBV?RPGと紛らわしいよね?
バカモン!ちっとも紛らわしくないわ!
フフッ。おか爺さん、タケシさんは今“ドラゴンプロジェクト”ゲームにハマってるんですよー。
どうせ、そんなところじゃろうて。良いか?前回、ポーター先生の競争戦略論が“自社以外の存在との関係性を重視し、内部の特性や潜在的強みが考慮されない”と学んだところじゃが、バーニー先生のRBVはポーター理論に真っ向から反論して、企業競争力の優位性を企業内部の経営資源に求めた考え方なんじゃ。この考え方のフレームワークを通称「VRIOフレームワーク」というんじゃよ。
ヴリオ?またそれ何の略?
表1の4つの項目を自身に問うてみるのじゃ。

表1 VRIOフレームワーク


外の競合企業とか、お客さんとかではなくて、まずは企業自身で内的に競合優位性を検証してみるってことなのね?
そうじゃ。競合優位は外部環境による影響ももちろん大きんじゃが、何よりも企業内部で蓄積した価値を持続的に発揮できるかどうかにかかっているというわけじゃ。
言われてみれば当然のような気もするよねー。
順番に問うてみた結果、判明する競合優位性を絵にするとこんなふうになる(図1)。

図1:VRIO分析図※1

※1 出典:「《ミドルのための実践的戦略思考》ジェイ・B・バーニーの『企業戦略論 競争優位の構築と持続』で読み解く金属製品メーカーの人事課長・岩岡の悩み」東洋経済ONLINE 2012年5月11日 http://toyokeizai.net/articles/-/9120
バーニー先生は最後(④のところ)で、実は“持続可能性(Sustainability)”が重要だと説いているんじゃ。競合優位性を、企業の価値を軽視した一過性の施策で獲得できるようなものではないと言うとるんじゃな。
希少性があるだけでは優位性も一時的になってしまう可能性があるのね。
そうなんじゃ。では、ホンハイの事例に戻って考えてみようかの。こうまとめられるじゃろ。

表2 ホンハイのVRIOフレームワーク


ふーん、一応今は持続的競争優位ではあるけれど、最大限ではないってところなのか。競合優位ってやっぱりすぐにできるものじゃないってことがよくわかったよ。
Wikiで調べたら、ソフトバンクのPepperくんを作っているのもホンハイなのね。
実はこのRBVはポーター戦略に対抗した理論として有名で、さらにRBVの中でも経営学の大論争になっていて、決着がついておらんのじゃ。このほかにもマーケティングと切ってもきれない経営戦略の理論はたくさんあるから、勉強してみると面白いぞよ。
はいっ!勉強してみます!
マーケティングを学ぶのに経営学も必要なのかー。ヤレヤレ…。
では、最後に“戦略なくして競合優位を築いた事例”があるから見てみようかの。
戦略が無いのに競合優位?
そうじゃよ。実は、世の中そんな例の方が多いんじゃよ。“戦略ありき”で成功した事例は少ないのじゃ。成功企業は何かしらの戦略があった風な成功譚になりがちじゃからの。これもMBA教育の“悪しき影響”かもしれんなー。

事例29:新市場を開拓し生産台数世界一 HONDAスーパーカブ

ホンダが戦後原動機付自転車を開発し、1949年の1200台から1959年28万台へ販売量を増やし、国内に確固とした地位を確立した。次に目指したのはアメリカだった。しかし当時の北米バイク市場規模は年間6万台たらず。大型で馬力のあるBMWやハーレーなどの独壇場だった。すでに自動車社会だったのだ。ここにホンダは自ら市場を開拓しようと、250ccの“ドリーム”を持ち込んだ。しかし、ほとんどのバイク・ディーラーに敗戦国の小型バイクは見向きもされず、初年度売上はたった170台だった。ホンダの駐在社員は気晴らしに休日、日本から持ち込んだ仕事用のスーパーカブでロサンゼルス郊外のダートを走り回っていた。ところが、現地の人々から「その小さなバイクはどこで買えるのか?」と尋ねられ、日本に特別注文する羽目になった。その後この小さなバイクでダートを走る人々が増え、まったく新しい市場を予感する。結局大型バイクの販売をいったん諦め、スーパーカブに注力することにした。販売店はディーラーではなくスポーツショップだった。UCLAの学生が“You meet the nicest people on a Honda”というコピーを広告代理店に持ち込んだところ、採用され人気に火をつけた(この広告はやがて広告賞を受賞する)。このホンダの50ccバイクは米国にとっては破壊的技術だった。スーパーカブは世界で累計8,700万台(2014年)も売れる商品となった。

出典『イノベーションのジレンマ』クレイトン・クリステンセン 翔泳社?http://www.shoeisha.co.jp/book/detail/9784798100234

結局、最初は失敗だったってこと?
そうじゃな。クレイトン先生も「ホンダが北米やヨーロッパ市場を支配したのは、“明確な戦略的思考と積極的で首尾一貫した実行力が成しえた生産戦略と見事な広告戦略の勝利”と語られるが、現実はまったく違っていた」と記しているぞよ。
それでも市場では高名なBMWやハーレー・ダビッドソンに勝っちゃったのね?
実は、この後ハーレーも小型バイク市場に参入したのじゃよ。しかし、それは完全な失敗に終わってしまったんじゃ。
えっ?!どうして?
ディーラーが反対したからじゃ。大型バイクを扱い慣れたディーラーにしてみれば、小型バイクは利幅も薄いし手間がかかる。それに既存顧客が持つブランドイメージを壊してしまうと考えたのじゃ。
ナルホドねー。
それで高級バイク路線で生き残っておる。燃費は悪そうじゃがな。
へーっ、そんな歴史があるんだね。
やはり、いったん大きなものを手掛けて成功すると、小さなことに情熱が持てなくなるのかしら?
ハッハッハ。それが“ジレンマ”なんじゃ!さて、競合優位のマーケティングと題したが、マーケティングだけで競合優位を確立する方法はなく、組織全体として常にお客さんの顔を見ながら拡大のチャンスを耽々と狙い、チャンスがあったら素早く行動する、という活動を地道に続けるしか無いんじゃな。
マーケティングと経営が切り離せないってそういうことかー。
少しは理解したかの?ドラゴンちゃん!
ちょっちょっと、やめてよっ!

【今回の用語まとめ】

バーニーの企業戦略論

米国オハイオ州立大学の経営学者J.B.バーニー(J.B.Barney)が1996年に発表した「企業戦略論」で論じた企業の戦略優位性を企業内部のリソース(資源)に求めた理論。M.E.ポーターの経営戦略論では、競争優位性を市場と競合環境の綿密な分析により最も有利な位置を取ることによって生み出すと考える、いわゆるポジショニング理論であった。これに対し、企業内部の経営資源(リソース)にその源泉を求め、競争優位の要因は業界の特徴にあるのではなく、その企業自身が持つケイパビリティ(能力)にあるとした。VRIO分析で示される4つの条件を満たす企業が持続的な競合優位性を獲得できるとした。
参考:「Firm Resources and Sustained Competitive Advantage」 Jay Barney Journal of Management Vol.17 1996
http://www.business.illinois.edu/josephm/BA545_Fall%202015/Barney%20(1991).pdf
参考:「世界の経営学者はいま何を考えているのか」 入山章栄 (英治出版, 2012年)
参考:「はじめての経営学」 野中郁治郎, 楠木 健(東洋経済新報社, 2013年)

ITエンジニアのためのマーケティング入門 第24回 (vol.48掲載)

投稿日:2017.06.6 | カテゴリー: 記事

Written by 水間 丈博

本記事は、「ITエンジニアのためのマーケティング入門 マーケティングの実践編」のまとめ記事です。

関連する過去の連載記事も公開しています。以下のリンクからご参照ください。

ITエンジニアのためのマーケティング入門 第13回 (vol.36掲載)

ITエンジニアのためのマーケティング入門 第14回 (vol.37掲載)

ITエンジニアのためのマーケティング入門 第16回 (vol.39掲載)

ITエンジニアのためのマーケティング入門 第17回 (vol.40掲載)

ITエンジニアのためのマーケティング入門 第18回 (vol.41掲載)

ITエンジニアのためのマーケティング入門 第21回 (vol.44掲載)

ITエンジニアのためのマーケティング入門 第22回 (vol.45掲載)

本記事掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

おか爺:昔システム会社の役員をやっていたらしい。好奇心旺盛で意外とモノ知り。趣味は音楽(クラシックからJPOPまで!)と囲碁(有段者)。ちょっとした丘の上に住んでいるので「おか爺」と呼ばれている。やや奇怪な老人。

タケシ:工業大学でITを学び、小さなIT会社に就職したITエンジニアの卵。社長に「マーケティングを学んでおけ」と言われている。近くにある母方の祖父、おか爺の家に時々遊びに行く。趣味はサイクリング。まだ彼女はいない。

カンナ:タケシの後輩。大学では文学部で日本史を学ぶ。会社では広報部に配属された。

 

第24回 マーケティングの実践 その12

前回までのあらすじ

エンジニアのタケシは、社長からマーケティングを学ぶように言われ、近くに住む祖父「おか爺」の家に通い、マーケティングについていろいろな知識を吸収しています。マーケティングの基本について一通り学び終えた後は、会社の後輩カンナちゃんと一緒にマーケティングの実践方法を学んできました。今回は2016年4月から始まった「マーケティングの実践」のまとめです。

さて、第13回から前回の第23回まで11回にわたって「マーケティングの実践」というテーマで様々な考え方や事例を見てきたわけじゃが、どうじゃったかの?
いろいろな事例が出てきて面白かったですねー。
なんだか盛りだくさんで、ちょっと難しかったなー。
そうじゃろな。では今回は、復習と補足を兼ねてこれまで学んだことをまとめてみることにしよう。
取り上げたテーマはこのような流れじゃった。

①「PR」は広告宣伝ではない
②企業の目的は顧客の創造
③競合優位とマーケティング戦略
④グローバル・マーケティング
⑤ブランディング
⑥顧客経験価値マーケティング

それでは順に振り返ってみるかの。

 

①「PRは広告宣伝ではない」

詳しくは→?ITエンジニアのためのマーケティング入門 第13回 (vol.36掲載)

PRとは元来「Public Relations」の略語で、一般的には「広報」と訳されておるが、「組織体とその存続を左右するパブリックとの間に、相互に利益をもたらす関係性を構築・維持するマネジメント機能」という定義じゃった
「パブリック」というのは市場のお客さんのことだから、ここでは企業とお客さんが対等の関係で理解を促進することが目的なんだね。
私も誤解していましたけど、「PR」にはまったく「売り込む」といった概念はないんですね。
その通り。「Public Relations」は宣伝や広告のニオイがしないのが正しいんじゃ。様々な製品やサービスを提供する側(企業)と、それを受け止めて利用する人々(顧客)の間に関係を作り出し、「相互に利益(顧客にとっては便益、企業にとっては売上)が存在すること」を認識させる機能が、PRの本来の意味なんじゃった。この定義は米国版PRの教科書を翻訳したものなんじゃが、「組織体の存続を左右する」とさりげなく入っているコワイ言葉が、「顧客を創造し続けなければ企業は存続が不可能になる」ことを明示しておるんじゃな。なんで実は大変重要な機能なんじゃ。それで「企業の目的」に繋がっていくんだの。

 

②企業の目的は顧客の創造

詳しくは→?ITエンジニアのためのマーケティング入門 第14回 (vol.37掲載)

「企業の目的は顧客の創造」って言い切っているところが、スゴク分かりやすいかもね。
「企業とは何か、を決めるのは顧客のみである」のところと、「企業の基本的機能=マーケティングとイノベーションだけである」は忘れないようにしますね。
それは良い心掛けじゃの。
「顧客を創り出す」ってことで、「アイドマ(AIDMA理論)」なんだね。

図1 Purchase Funnel(第14回より再掲)
「ファネルマーケティング」という表現を使ったが、とにかく新たなお客さんを探し出すことに知恵を絞らないといかん。多くの潜在顧客の中から、自社の特徴を一番理解し魅力を感じてくれるお客さんを見つけ出すのがファネルマーケティングじゃ。B2CでもB2Bでも世の中の顧客獲得手段はほとんどこの考え方でできておるんで、是非覚えてほしかったんじゃ。
今、流行っている「マーケティング・オートメーション」もこの考え方を応用しているんでしたね。

 

③競合優位とマーケティング戦略

詳しくは→?ITエンジニアのためのマーケティング入門 第16回 (vol.39掲載)?ITエンジニアのためのマーケティング入門 第16回 (vol.40掲載)

ここでは著名なM.ポーター先生の「企業戦略論」とJ.バーニー先生の「RBV(リソースベーストビュー)理論」とを対比し、競合優位を勝ち取る幾つかの方法と、競争力には企業内部の経営資源(リソース)と持続性が重要である、という考え方に触れてみたんじゃが、難しかったかの?
ここ難しかったなー。2つの理論が対立しているって言うけど、結局どちらが適切なんだろう?
以前話した「3C(自社:Company 市場の顧客:Customer 競合:Competitor)」を思い出してみるとよかろう(シェルマガvol.34掲載の第11回にて解説)。

図2 マーケティングの検討要素(3C) (第11回より再掲)

それぞれを分析するのはマーケティングの基本じゃった。これらの環境の中で自分が最も有利な立ち位置を選んで戦うことが競合優位に繋がる、という考え方がポーター先生の経営戦略理論で、だから「ポジショニング理論」と言われておったんじゃ。しかし、ここには従業員の創意工夫とか切磋琢磨、努力して熟達度や能力を上げるといった概念が存在しない。そこでバーニー先生の企業戦略論では、競争優位の源泉はこうした業界環境やポジショニングではなくて、企業内部の「ケイパビリティ(能力)」に着目したところが画期的だったわけじゃ。

それなら内部の能力を向上させようとする意識が芽生えてきますよね。
そうなんじゃが、ポーター先生の戦略論は「外部的な要因に注目」していて、バーニー先生の戦略論は「内部的な要因に注目」している。ということで両者補完関係にある、と考えておくのがオススメなんじゃな。

④グローバル・マーケティング

詳しくは→?ITエンジニアのためのマーケティング入門 第18回 (vol.41掲載)

ここでは企業がグローバルに進出する背景と、幾つかの成功例、失敗例に触れて海外で成功するポイントを考えてみたわけじゃ。海外では著名グローバルブランド(コカ・コーラやP&Gなど古くから世界的に事業展開している企業)が先行し、歴史の浅い日本ではこれらの企業を規範として手探りで海外展開してきた企業が多いんじゃ。
でも海外でもトップシェアの会社も多かったよね。
確かに、それこそ他社が簡単に追随できない技術で高いシェアを獲得した企業が多いことに触れたわけじゃが、その半面失敗例もあるから、「①訴求ある独自製品」、「②価値とコンセプトを伝える」、「③技術信仰の打破」、「④販売志向からの脱却」、「⑤ブランディング」の5つを成功のポイントとして挙げたの。
この5つを実践しながら、米国のIT企業のように起業時点から海外展開を当然と考えられれば、成功する可能性が高まるのかもしれませんね。
そうじゃのー。じゃが、日本企業もゆっくり海外展開していられない状況になってきたのかもしれん。
なんで?
中国の「BAT(百度 Baidu,阿里巴巴 Alibaba,騰訊 Tengxun)」と呼ばれる三大ネット企業が米国の先進スタートアップ企業を爆買いしておるというんじゃ。*1

*1:出典:「中国の3大ネット企業が米ハイテク企業を爆買い」週間東洋経済 2017年4月8日号
中国の「BAT(百度 Baidu,阿里巴巴 Alibaba,騰訊 Tengxun)」に通販大手の京東集団を加えた4社が過去2年間米国ハイテクベンチャーへ投資した額は56億ドルに達し、シリコンバレーを含むカリフォルニア州では総額の4分の3以上を占めた。投資先はAR(仮想現実)、SNS、サービス、モバイルセキュリティなど多岐にわたり、米テスラにも18億ドルを投資。中国で成功した企業がイノベーションを吸収し、いずれ先進国企業を追い抜くかもしれないと予想する専門家もいるという。

今度は米国で企業を爆買いかー。お金持ちなんだなー。
M&Aで技術と人材を一手にする戦略ですね?
中国にも起業時点で世界を視野に置いている会社が多くなっておるようじゃの。多額の投資が奏功するかはわからんが、たしかにグローバル化のスピードも早くなっておるようじゃ。

⑤ブランディング

詳しくは→?ITエンジニアのためのマーケティング入門 第21回 (vol.44掲載)

ここでは「ブランド」を確立するとどんな効果があるのか、さらに「ブランド構築のプロセス」にはどんな考え方があるのかを紹介したの。ブランド価値を、顧客だけでなく関係する従業員にも浸透させることの重要性にも触れてみた。
「①ブランドポジショニング」、「②ブランドマーケティングプログラム」、「③ブランドパフォーマンス測定」、「④ブランド・エクイティの育成と維持」の4段階で進めるのでしたね。

図3 ブランド構築のプロセス(第21回より再掲)
ここで最も大切なことは「ブランディングは、トップが強い意思と長期的な展望を持って実行すること」なんじゃよ。
「市場における自社ブランドの価値と存在意義をしっかり提示する」のが社長の役割でしたね?
ところが、ほとんどの日本企業ではこの大切な仕事を、マーケティング部門や広報部門などの一部の部門に任せてしまっているのが、残念ながら現実なんじゃな。
ブランド価値を社員に浸透させる教育や組織づくりも考えないといけないんだったね。

⑥顧客経験価値マーケティング

詳しくは→?ITエンジニアのためのマーケティング入門 第22回 (vol.45掲載)

現在盛んに言われ始めた「顧客経験価値(CX)」がなぜ重視されているのか、顧客経験価値はどのように分類できるのか、さらにマーケティングに顧客経験価値を取り入れる方法について事例とともに紹介してみたの。タケシ、なぜ顧客の経験価値が重視され始めたのか理解したかな?
「モノより感動体験」でしょ!?
ハッハッ、一言でいえばそうなるわな。
前回やったばかりだからね!
以前にも触れたが今は「モノ余り時代」と言われてからかなり経つし、特に最近の若い者は物欲が乏しいとも言われておる。これも経験的ベネフィットが注目される背景になっておるようじゃ。
今「断捨離」する人も多いっていいますしね。
ボクなんか欲しいモノたくさんあるけどなー。
そして経験価値マネジメントのフレームワークを紹介したぞな。
「①顧客の経験価値世界を分析」、「②経験価値プラットフォーム構築」、「③ブランド経験価値のデザイン」、「④顧客インタフェースの構築」、「⑤継続的イノベーションに取り組む」、この5つのステップでしたね。
事例は興味深かったけど、「問題発見力」を養うことと、常日頃から「深く考える」習慣が必要なんだよねー。ボクはあまり得意じゃないなー。
バカモン!両方なければIT技術者として生き残れんぞなー。
フッフ、おか爺さん大丈夫ですよ、この前の新人歓迎会の余興はタケシさんがリーダーですごく考えて大好評だったんですよー!
ハッハッハ、それはイノベーティブだったんじゃの!良かったのー。
カンナちゃん、それは内緒!
さて、日本では一般的に「イノベーション」は「技術開発」と同等のもの、と誤解されていることが多いことは知っておるの。もちろん技術開発の結果がイノベーションに繋がることもあるんじゃが、イコールではない。そして「イノベーション」は企業の内部から生み出すものではなくて、顧客が意識しているしていないを問わず、「顧客の問題を解決した結果」がイノベーション、ということを忘れないように。
「マーケティングもイノベーションも顧客が起点」でしたね!
そうじゃ、カンナちゃんだけ合格!
ちょ、それはないでしょ!
次回からは「デジタル・マーケティング」について様々な
トピックを紹介していく予定です。お楽しみに!

バーティカル・マイスターの修行時代 その1

投稿日:2017.05.30 | カテゴリー: 記事

written by シェルスクリプトマガジン編集部

この記事は、シェルマガvol.48掲載「バーティカルバーの極意」第二回の、いわゆる「やってみた記事」です。
シェルマガ本誌と一緒にご覧頂けると、よりお楽しみいただけます。

はじめに

よちよち歩きで運用を開始した、Web版シェルスクリプトマガジン shell-mag.com 。

更新のたびにFacebookやTwitterなどのSNSに投稿をしてお知らせしていますが、当然お知らせがどれだけの人に届いたか、気になるものです。

たとえばこちらの投稿。

「さて、この投稿のリーチ(投稿が見られた数)は……ええー、たったの70?(しょんぼり)」

たとえばFacebookでは、これまでにリーチが1000近くまで伸びた投稿もあるので、100以下はちょっと堪えます。

まだまだ記事数こそ少ないですが、面白おかしく役に立つ記事を揃えていると自負していますから、せっかく更新した記事が人の目にも触れないと、こちらとしては面白くありません。
なんとかFBでもリーチ数を稼がねば。

Facebookのアルゴリズムではリアクションが多くついた投稿ほど頻繁に表示されるらしいので、リーチを伸ばす正攻法は、まずはキャッチーな、「いいね」をもらいやすい投稿をすることです。
とはいえ、「いいね」をもらえるかどうかはなかなか水物です。なんとか確実にリーチ数を稼ぐ方法はないものか。

そこで、わたくし考えました。

シェルマガの読者さんは皆さま品行方正でしょうから、わたくし編集Kみたいに昼間からSNSに入り浸ったりはせずに、仕事に疲れ、傷つき、リラックスしたい時間だけSNSにアクセスしているはず。
だとすれば、多くの人が休憩をとる、リーチが伸びやすい時間帯があるはずです。

その時間を狙って更新情報を投稿するように心がければ

→自動的にshell-mag.comの利用が増える

→満足した読者さんの口コミでサイトの知名度が上がる

→シェルマガ本誌も売上が伸びる

→編集Kの給料も上がる

と、おお、これはいいことづくめだ!すぐにでも解析をせねば。

……と考えていたところに、前号から始まった、飯尾淳先生による「バーティカルバーの極意」第2回の原稿が届きます。早速確認してみると、おあつらえ向きに「Facebookの投稿をヒストグラムで分析する」内容ではないですか。

「これは使えるぞ!」と、ピーンと来た編集K。
記事のコードチェックも兼ねて、Facebookへの投稿の解析を試みることにしたのでした。

シェルマガvol.48に掲載された「バーティカルバーの極意」第二回では、どの時間帯に飯尾先生がFacebookに投稿しているのか、ヒストグラムで可視化をしていましたが、私の目的である「どの時間帯に投稿すればリーチが伸びるのか」を分析するためには、ヒストグラムよりも散布図のほうが役に立つはずです。

理想的には、例えば下の図のように、「昼休みに入る12時前後と定時の18時前後の投稿は、他の時間帯に比べてリーチ数が伸びやすい」のような傾向が見て取れるはず。

(Excelでちまちまつくりました)

善は急げ。早速Facebookからデータを取得して、解析してみましょう!

苦闘の記録

手元には飯尾先生のお手本があるから、今回の解析は簡単にできるはず……との目論見は、初っ端から崩れます。ビジネスアカウントでは、投稿情報の取得の際に、なんと28日しか遡れないのです。その間の投稿数は10程度。とても、議論ができるサンプル数ではありません。

しょうがないので、投稿日時とリーチ数が表示されるページから、マウスで選択してコピペする原始的な方法でテキストデータを引っ張ってきます。

原始的な方法でデータを取得するの図。ビーッと引っ張ってきます。

さて、取得したデータをテキストにペーストしてみると……

……あれ?

飯尾先生の記事では「データがすべて横に並んでいたので改行コードを挿入して扱いやすいデータにする」というストーリーでしたが、私が取得したデータは、逆にすべて縦に並んでいます。これは困ったなぁ。

困ったときは相談だ。というわけで、隣の席のエンジニアに助け舟を出してもらいます。

編集K「ねぇねぇ、この全部縦に連なったデータを、常識的な並び方に直すにはどうしたらいいかねぇ」
エンジニア「そりゃ、一度全部横にしてから、適当な改行コードを入れるしかないでしょ(編:だよねぇ~)。そういうときはyarrコマンドを使ったらいいんだよ」

yarr(横アレイ)!!ここでまさかのTukubaiコマンド登場です。そりゃまぁ、Tukubaiコマンドを使っていかに楽をしてシステムを組み立てるかを日夜考えている、うちのエンジニアに聞いたら当然そういう答えが返ってきますよね。
注:Tukubaiコマンドは、シェルマガの発行元USP研究所が開発しているUNIXコマンド群。シェルマガ著者の今泉光之さん曰く「便利すぎて考えなくて済むから、エンジニアが馬鹿になる」とのこと個人用Tukubaiのご購入はこちら

オーケーオーケー。他のサイトならまだしも、ここはshell-mag.com 。ユニケージの広報サイトでユニケージのために開発されたコマンドを使って何が悪い。ちょっとズルいですが、Tukubaiコマンドを使っちゃいましょう。
yarrは、縦に並んだデータを横に並び替えるコマンドです。こんなこともあろうかと優しい誰かが作ってくれていたのでしょう。
sedで半角スペースを適当な文字列に変換してから、yarrコマンドでデータの縦横を入れ替えます。

2017年5月31日追記:飯尾先生から「標準的なコマンドだけでも、pasteを使えば同じことができるよ」とご指摘をいただきました。yarrをpasteに置き換え、以下のようにオプションを使えば同じ出力が得られます。

で、こいつをcatで開いてみると……

あれ、縦のまんまだ?どういうことよ。(注:pasteコマンドを使っても結果は同じです)

Vimで開いてみると

おお、紫でハイライトされている^Mの改行コードが残っているんですな。こいつもsedで取ってやりましょう。

ただし、この制御コードの^Mは、素直に「はっと・えむ」とキーを打ってもsedで認識してくれません。キー入力としては、Ctrl-v Ctrl-mと入力すると制御コードの^Mと認識されるので、入力の際には

とタイプしてください。さらっと流しましたが、これを調べるのに20分かかりました。

さて、無事にデータが横一行に並んだので、飯尾先生の教えの通り、sedを使って特定のテキストを改行コードに置き換え、データを扱いやすい形に整えます。今回は、各投稿の最後に「投稿の広告を出す」という一文が必ず入っているので、これを改行コードに書き換えました。

ここもさらっと流していますが、編集Kの使っているMacのOSのバージョンが古かったのか、改行コードを改行コードとして認識してもらえませんでした。再度隣席のエンジニアに頼み、彼のMacで同じコマンドを打ってもらったところ、想定通り改行されましたので、読者の皆さまは安心して記事のコードを使ってください。

さて、こうやって加工したデータですが、まだ行頭に空白があったり、最終行に空行が入っていたりと、まだ形を整える必要があります。AWKとかを使うのがめんどくさいので、再度Tukubaiコマンドを使って加工します。末尾の行を削って、余分な空白をとって、日付と時間とリーチのフィールドを取り出します。

ctail :ファイルの末尾指定行を削って出力

self : 指定したフィールドのデータを取り出す。連続した空白をひとつに削ることができる。

こうやって、弊社のプロダクトを自然にステマしながら加工したデータがこちらになります。

おお、綺麗になった。でもリーチ(第3フィールド)に3桁ごとのカンマが残ってますね。これもsedで消してしまいましょう。ついでにhourとminuteの間のコロンを空白に変えて、それぞれを独立したフィールドにしてしまいます。で、minuteの方を60進法から10進法に直して、hourと合計を出します。

これで、プロットする元データが加工できました。第1フィールドが時刻、第2フィールドがリーチ数です。

さて、元記事に倣って、これをRでグラフにしてみます。

飯尾先生の記事ではhist関数を使っていますが、今回つくるのはヒストグラムではなく散布図なので、plot関数を使います。最初に横軸と縦軸を指定します。$V1、$V2は、それぞれ何フィールド目かを表します。小室哲哉とYOSHIKIが組んだユニットではありませんし、も出てきません。何の話だ。グラフの範囲をxlim、ylimで指定、xlab、ylabでそれぞれ軸のラベルを指定します。

完成!

で、ここまで3時間ほど苦闘した末、完成した散布図がこちらになります。

(縦軸がリーチ数、横軸が投稿時刻になります)

お、おう……。

正直、傾向はよくわかりませんな。当初は12時と18時前後に投稿するとリーチが増えるんじゃないかと考えていましたが、別段そんなこともない。強いて言えば、15時頃はリーチが安定して見えますが、これもサンプル数が少なくて確実とはいえんなぁ……。

とりあえずの結論としては
「投稿の時間帯だけでリーチ数をコントロールしようとするのは無理がある」
ということですね。やはり正攻法で、キャッチーな投稿を心がけねば。

 

というわけで、皆さまもどうぞシェルマガの記事を自分なりに試して楽しんでくださいね!
当サイト掲載のコードもコピペなどにどうぞご利用ください。

今回の記事の元ネタ「バーティカルバーの極意 第二回」のコードはこちら。コピペなどにご利用ください。
解説はシェルマガ本誌をご参照くださいませ。

(次回、「バーティカル・マイスターの遍歴時代」に続く……のか?)

Vol.48

投稿日:2017.05.24 | カテゴリー: バックナンバー

金沢大学・大野先生が、シェルスクリプトを活用した電子工作を伝授する「電子工作塾」。
今回は「回路を設計するより前に」、世界の電気街として名を轟かせる深センにマイ基盤を発注してしまいます。

すずきひろのぶ氏による人気連載「スズラボ通信」では、IFTTTを利用して「ボタンを押せばLINEにメッセージが届くIoTなアレ」をつくる方法を紹介します。

その他にも、業界を代表するスターエンジニア、伊藤直也さんと柄沢聡太郎さんが「エンジニアの生存戦略」を熱く語ったトークライブイベント「TechLION vol.29」の再録記事や、
UMLによる設計記述と導入として、ロバストネス分析とシーケンス図の利用法を紹介した「オレとRubyプログラミング」など、

強くしなやかなITエンジニアを今月も全力で応援するシェルスクリプトマガジン vol.48。
お見逃しなく! !

漢のUNIX ライブラリをつくってみよう! #その5(vol.48掲載)

投稿日:2017.05.23 | カテゴリー: 記事

著者:後藤大地
前回は静的ライブラリを作る方法を取り上げた。.cのファイルを.oのファイルへコンパイルし、それらをまとめて静的ライブラリとする。静的ライブラリはいわば部品の集まりで、コンパイル時にこの静的ライブラリから必要な部品を持ってきて利用することになる。コンパイルごとに静的ライブラリから部品がコピーされ、生成されるバイナリファイルへ含まれることになる。

ライブラリにはもうひとつ「共有ライブラリ」というものがある。動的ライブラリと呼ばれることもある。共有ライブラリの方はバイナリファイル生成時に指定はするものの、ここから部品をコピーしてバイナリに組み込むといったことはしない。生成したバイナリを実行するときにリアルタイムに共有ライブラリを見に行って、そのときに使われる。

記事本文掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

 

40歳から始める、オレとRubyプログラミング(vol.48掲載)

投稿日:2017.05.23 | カテゴリー: 未分類,記事

著者:しょっさん

 前回、ページ数が増えたことに増長して、ソースコードをたくさん載せたはいいのですが、それを説明する余白がありませんでした。今回は、前回掲載したソースコードについて、新しく使いはじめた部分を中心に説明します。
 その前に、連載を通じて少しずつではありますが、プログラムが拡張してきましたので、プログラム全体がどのような構成になっているかを、一度立ち返って見直してみます。ある程度の開発規模になってくると、設計図なく開発をすることは困難になってきます。今後のさらなる拡張と改良もふまえて、設計図を作って開発を進めていきます。

記事本文掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

UNIXネイティブの電子工作塾 vol.48掲載

投稿日:2017.05.23 | カテゴリー: 記事

著者:金沢大学 教授 大野浩之

さて、UNIXネイティブの電子工作塾 e-Badge編第2回ですが、少しだけ回り道をすることにました。今回は e-Badge(電子名札) のためのプリント基板(PCB)作りに着手する予定でしたが、その前にお話しておくべきことがありました。まず、PCB設計に用いるソフトウェア “Fritzing” の特徴をお伝えしたいと思います。それから、Fritzing で作成したPCBデータがどのようなもので、 これをどこにどうやって発注するのか、といったノウハウもお伝えしたいと思います。
そこで今回は、e-Badge の製作をはじめる前に、よりシンプルで汎用的な基板を作ることにしました。

本記事掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

ユニケージ開発手法 コードレビュー vol.37(本誌vol.48掲載)

投稿日:2017.05.23 | カテゴリー: 記事

著者:USP研究所技術研究員 新美勇一

今回は、業務システムの処理に見立てた簡単な例題で2つ実装例を挙げ、レビューを行いたいと思います。

本記事掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。
USP研究所 通販サイトでは、個人用uspTukubaiのご購入も可能です。

バーティカルバーの極意 第二回 (vol.48掲載)

投稿日:2017.05.23 | カテゴリー: 記事

著者:中央大学 教授 飯尾淳

 バーティカルバーの極意、連載2回めの今回は、対象とするバーティカルバーとして「棒グラフ」を取り上げます。より正確にいえば、棒グラフのなかでも、ヒストグラムとよばれる種類の棒グラフです。ヒストグラムを柱状グラフと呼ぶこともあります。一般的に、柱はまっすぐ垂直に立てられるものです。この名称ひとつとっても、ヒストグラムをバーティカルバーの一族と考えてかまわないでしょう。

記事本文掲載のシェルスクリプトマガジンvol.48は以下リンク先でご購入できます。

/'”${LF}”‘/g’ | \ > grep ‘^20[01][0-9]年’ | grep UTC | \ > grep ‘日 [234]:’ | less

逆に、Tukubaiコマンドをシェルスクリプトで実装してみる 後編 (vol.48掲載)

投稿日:2017.05.23 | カテゴリー: 記事

著者:今泉光之 (Twitter: @bsdhack)

Open usp Tukubai は Python により実装されているので Python が動作する環境であればインストール可能です。
公式の配布サイトからソースを取得して展開し make install するだけで Open usp Tukubai は利用可能となります。
ここでは Open usp Tukubai のコマンドを解説します。
ただし以下のように Open usp Tukubai だけでも 55 コマンドも提供されており、その全てを解説するのは無理なので、
特に有用で興味深いコマンドを厳選して紹介します。

前回紹介したcalclock、comma、getlast、ketaに続き、今回はmojihame、self、sm2の3つのコマンドを紹介し、シェルスクリプトでの再現を試みます。
但し今回は紙面と時間の都合で一部の機能やオプションなど実装できていない部分も多いです。
また、動作の把握とメイン処理の実装のみに絞ったので、エラー処理などはまったく実施していません。
そのために実際の業務などには殆ど利用できない実験的なスクリプトとなっています。

mojihame

mojihameとは

テンプレート中に埋め込まれたキーワードをデータに置換して出力します。
キーワードは %数字 の形式で指定し、データ中に出現した順番にテンプレート中の %1、%2 …と置換されます。
データ中の @ はヌル文字として扱われ空文字列に置換されますが -d オプションで @ を別の文字に変更できます。
データ中の _ はスペースに変換して出力されます。_ を出力したい場合は \_ の様に指定します。

-l オプションは行単位での置換処理が実施されます。
入力データは行単位に読み込まれ、入力データの次の行が読み込まれるとテンプレートは先頭から再利用されます。

-l オプションではラベルを指定することができます。
ラベルが指定された場合、テンプレート中でラベルの間に書かれたキーワードのみが置換の対象となります。なおラベルはテンプレート中で2回 (開始と終了) しか書くことができません。
(-h による階層構造に関しては説明が複雑なのでここでは省略します)

mojihameを作ってみよう

基本的な機能は全て awk(1) の組み込み関数で実装しました。
通常モードでは、 awk(1) の BEGIN 処理でデータを全て読み込み配列 data に格納した後で _ の置換処理を行っています。
メイン処理ではテンプレートファイルを読み込み、 match 関数を利用して %数字 のラベルを探して gsub 関数で置換しています。

行モードでは、 BEGIN 処理でテンプレートを全て読み込みハッシュ template に格納しています。
メイン処理では、データを読み込み index 関数を利用して %数字 のラベルが存在する間テンプレートを置換します。
テンプレートに数字のラベルが見付からない場合は、テンプレートの次の行をハッシュ template から取得して処理を続けます。

今回紹介した Tukubai コマンドの中では、これが一番多機能なコマンドでした。非常に複雑で多機能なので、通常モードと行モードの基本的なテンプレート置換機能しか実装しておらず、-l オプションのラベル指定、-h オプションによる階層構造テンプレートなどは実装していません。

self

selfとは

入力データ(ファイルや標準出力)の指定されたフィールドのみを出力します。

フィールドの指定時のオプションで、開始文字と文字列長が指定できます。
例えば 4.3 とした場合は第 4 フィールドの 3 文字目から出力され、5.5.4 とした場合は第 5 フィールドの 5 文字目から 2 文字が出力されます。
マルチバイトの文字の場合、開始文字と文字列長はそれぞれ 1 文字を 2 として計算する必要があり、
マルチバイト文字を文字の中間で分割する様な指定された場合はエラーとなります。

フィールド指定の 0 は全フィールドを表します。
フィールド指定で n/m (n と m はそれぞれ整数) とすることで n 番目から m 番目のフィールドを出力できます。
フィールド指定の NF は現在行のフィールド数に置き換えられ NF-3 (最後から3番目のフィールド) や 2/NF などの利用が可能です。

-d オプションは引数で指定した文字列を区切ることができます。

selfを作ってみよう

self コマンド自体が awk(1) と似ているので、多少冗長になってしまいましたが awk(1) の機能だけで殆ど実装できました。フィールド指定、NF による相対的なフィールド指定、NF からの相対位置による指定、n/m 指定などが動作しています。
ただし OS X 標準の awk(1) はマルチバイト文字には対応していないのでマルチバイト文字を扱うことができません。
Linux で標準的に利用されている GNU awk の場合はマルチバイト文字に対応していますので、今回作成した self コマンドも正しく動作しています。

(次ページに続く)

もしインターネットの1秒が1年だったら 第1回(vol.47掲載)

投稿日:2017.05.16 | カテゴリー: 記事

written by hakatashi・Mine02C4

編注:本記事は「SunPro 2016 技術書典」で発表された記事に説明・イラストを追加し、シェルマガvol.47に掲載したものです。
以下リンク先で、オリジナル版の全文が公開されています。
https://sunpro.io/techbookfest/

インターネットが日本中のあらゆる人間に行き渡るようになってから、すでに10年単位の時間が経過しています。今日においてインターネットを支えるネットワーク技術が重要であることは言うまでもありませんが、実際にネットワークでどのタイミングで何が起こり、どれくらいの時間が費やされるのかということを身を持って体感している人は、たとえネットワークに精通している人でも少ないのではないでしょうか? この記事では、1 秒というわずかな時間を1年にまで拡大し、ネットワーク上で何が起こっているかを人間スケールでざっくりと解説していきます。

はじめに

こんにちは。先号まで石川啄木を蘇らせようとしていた博多市(@hakatashi) です。今回から、2016年の技術書典にSunProとして発表した「インターネットの1秒がもし1年だったら」というだいぶ抽象的で怪しい記事を、シェルスクリプトマガジン向けに再構成してお届けします。
インターネットというのは光の速さを身をもって感じることができるメディアです。先日、Hiraku Nakanoさんの「composerの遅さをまじめに考える」というスライド*1を拝見したのですが、そこではPHPのパッケージマネージャーであるcomposerが遅い原因として、「光の速さが遅すぎる」という理由が挙げられていました。
ユニークな考え方ですが言われてればたしかに道理で、日本からアメリカのサーバーまでハンドシェイクで何度も往復していると、確かに光といえど100ミリ秒単位で時間を浪費しています。
サーバーが近ければ通信は早いというのは誰もが知っていることですが、光の速度のせいだと言われるとなにやら圧倒されるものがあります。
この記事では、そんなネットワークの微視的な時間スケールについて徹底的に解剖します。一回の通信を解析し、それぞれ時系列順に細かく分解し、それぞれの操作でどれくらいの時間が費やされ、どんなイベントがいつ発生するのかを逐一追っていきたいと思います。
とはいえ、ネットワーク通信における時間経過はミリ秒単位で数えられます。今回は、そんな微細な時間の移り変わりをなるべくわかりやすくするため、通信上の1秒という時間を1年にまで引き伸ばし、約3000万倍の時間スケールでネットワークのイベントを追跡してみます。

*1 http://www.slideshare.net/hinakano/composer-phpstudy

共著者について

本記事の筆頭筆者はhakatashiですが、今回の記事を書くにあたり、同じSunProメンバーでありネットワークスペシャリスト取得者のMine02C4*2から、企画段階からの多大な協力と大幅な加筆を得ることができました。
ネットワーク知識不足のhakatashiにパケット解析を指南し、本記事では特にTLS 関連の項目の執筆、および全体のレビューを担当しています。共著者として名を連ねていますが、彼の協力なしでは本記事は恐ろしくクオリティの低いものになったであろうことは疑いようがなく、その貢献度に関しては計り知れません。どうぞお見知り置きください。

*2 HP: http://mine02c4.nagoya/, Twitter: @mine_studio

シチュエーション

今回解剖する対象の通信として、HTTPSによる通信をメインに解析しました。ふだん我々がブラウザから毎日使っているプロトコルなのは言うまでもなく、SSL/TLSの処理を挟むので、それなりに面白い結果になるのではないでしょうか。
また、HTTPS通信を行う際に必要となるARPやDNS通信についても述べていきます。さらに、通信を行うサーバーとクライアントの場所ですが、今回は、技術書典の会場でもある東京のインターネット環境から、さくらインターネットが誇る、北海道の石狩データセンターまでの通信を行います。
Googleマップによると、東京から、石狩データセンターがある石狩市新港中央までは1177.3km。光ファイバーに用いられる石英ガラスの屈折率は1.50程度*3なので、光は約20万km/sでこの距離を移動します。つまり、東京から石狩までの物理的な片道時間は約5.9ミリ秒となります。瞬く間もないほどの時間ですが、時間スケールを1年に引き伸ばすと2日と3時間半もかかります。往復で4日と7時間。石狩までぶらり旅といった感じですね。

*3 光学ガラス材料- シグマ光機株式会社

1秒 → 1年

1秒が1年になった世界の様子をもう少し見てみましょう。
真空中の光は時速34kmで移動します。先ほど出てきた光ファイバー中の光速は時速23km程度になるので、自転車か、休憩しながらのドライブ旅程度の速さになります。ちなみに男子マラソンの世界記録は時速20.6kmです。*4*5
3GHzのCPUは、こんな世界でも1秒間に95回という高橋名人の6倍のクロックを刻みます。PC3-12800のメモリーの転送速度は、もはやダイアルアップ接続よりも遥かにナローバンドですが、最大で1秒間に3200ビットの情報を読み出すことができます。

*4 2014年ベルリンマラソンのデニス・キメット選手の記録、2時間2分57秒より。
*5 ただし、この速度で走行するとこの世界では体重が26% 増えるのでオススメしない。

制約など

今回パケットを解析する上で、話を簡便化するためにいくつかの制約を加えています。
● DNSのシステムを明確に示すため、ローカルホストにDNSサーバーを置き、そこからリクエストのたびにルートDNSサーバーからアドレスを引いています。
● 複雑かつ時間がかかりすぎるため、ネームサーバーでのDNSSECの検証処理は無効化しています。
● SSL/TLSの証明書検証処理は無効化しています。

測定環境

測定には、ラップトップマシン上のUbuntuの仮想環境を使用しました。一回の測定ごとにDNSキャッシュとARPキャッシュをクリアし、なるべくクリーンな状態で測定を行いました。
また、先程も述べたとおりDNSサーバーはローカルホストに設置し、そこから外部に向けてアドレスを引くようにしました。
サーバーは先ほど述べたさくらの石狩データセンターへのアクセスを確実に測定するため、今回の記事のためにさくらVPSの石狩リージョンのサーバーを調達しました。OSはさくらVPSの初期OSであるCentOS 6.8で、デフォルトのApache 2.2.15をほとんどそのまま使用しました。SSL は自己署名証明書で通信し、証明書の検証は無効化してあります。
クライアントは、Windows上の仮想マシンのUbuntu 14.04.4を用いました。クライアントアプリケーションはcURLを用いています。ネームサーバーはローカルホストにBIND 9.9.5を立て、キャッシュを無効化した上でルートサーバーからアドレスを引くよう設定してあります。
通信内容は、100KB(102400 バイト)のバイナリファイルをGETリクエストで取得するもので、HTTPパラメータはほぼcURLのデフォルトを使用しています。
パケットキャプチャはクライアント側とサーバー側で同時に行い、tcpdumpで同じ通信を2度キャプチャして解析しています。時刻に関しては毎度NTPで時刻補正しましたが精度が得られなかったのでサーバー側とクライアント側の測定値を見て適当に補正を行いました。
今回記事中で使用した数字は、以上の条件のもとに行った10回の測定結果の平均値をもとにしています。

サーバーちゃんとクライアントちゃん

サーバーちゃん   クライアントちゃん

今回、せっかく時間軸を人間スケールで語るので、通信処理の登場人物も人間という体で解説していきます。
この話の主人公は「クライアントちゃん」と「サーバーちゃん」です。クライアントちゃんは東京で悠々とした生活を送っている普通の女の子であり、趣味は暗号と文通です。一方サーバーちゃんは石狩のデータセンターで、ひしめき合うたくさんのサーバーとともに、Webサーバーとして多忙な毎日を送っています。
こんな対称的な2人が、今回は年明けと同時に通信を開始します。さらに、通信は手紙のやり取り、IPアドレスは住所、ルーターは郵便ポスト……というように、適宜シチュエーションに合わせた読み替えを行っていきます。あくまで例えですので、あまり正確ではないかもしれませんが、今回の目的はあくまで通信処理の全貌をふわっと理解することなので、あまり厳密に考えず、空っぽの頭で読んでください。
また、今回解説する通信処理の概略を、簡単なシーケンスダイアグラムで示します。通信処理の主役は情報をやり取りするサーバーちゃんとクライアントちゃんなのですが、第1回は2人の通信が開始するまでの準備作業が主となり、サーバーちゃんはまだ登場しません。インターネット通信において目的のサーバーのアドレスを見つけるためにどのような処理が行われているのかを一段階ずつ検証していきます。


それでは、クライアントちゃんとサーバーちゃんの通信の始まりです。

 

ルーターのアドレス解決

1月1日 午前0時0分 ARPリクエスト送信

あけましておめでとうございます。NHKの「ゆく年くる年」を見ながらインターネットの年が明けます。
この瞬間、東京でまったりと紅白歌合戦を見ていたクライアントちゃんは、石狩にいるサーバーちゃんに聞きたいことがあるのを思い出しました。長い長い通信の始まりです。
さっそくクライアントちゃんはサーバーちゃんに手紙を書くことにしました。
クライアントちゃんは何もわかりません。郵便ポスト(ルーター) の場所も、サーバーちゃんの住所(IPアドレス) も、いつも使っていた住所録(DNSサーバー) の場所も覚えていません。
キャッシュを削除したクライアントちゃんは記憶を失ってしまったのです。
覚えているのは、ただ石狩にいるはずのサーバーちゃんのことだけ……。
困ったクライアントちゃんは、まずは郵便ポスト(ルーター) を探すことにしました。家の中や向こう三軒両隣のことならともかく、遠く石狩に住むサーバーちゃんに手紙を届けるには、何よりポストがなければ話が始まりません。
クライアントちゃんはもうネットワークに接続しているので、ルーターのIPアドレスはすでに分かっています。しかし実際にルーターと通信するには、ルーターのMACアドレスが必要です。これを引くために、ARP(Address Resolution Protocol)と呼ばれるプロトコルを用います。
ARPリクエストはIPアドレスに対応するMACアドレスを検索するリクエストです。MACアドレスのプロードキャストアドレス(FF:FF:FF:FF:FF:FF) に向けて発信することで、同一ネットワーク内のすべての機器にこのリクエストを送信することができます。クライアントちゃんは街中に響く声でポストの場所を尋ねました。

「郵便ポストはどこですかぁぁぁぁ??!!」

1月1日 午前3時26分 ARPレスポンス受信

いったい今何時だと思っているんでしょうか。クライアントちゃんの声は街中に響き渡り、近隣住民からたいへん大目玉を食らいましたが、努力の甲斐あって、3時間半後に親切な人がポストの場所を教えてくれました。
ARPは、ブロードキャストでネットワーク全体に配信されたイーサネットフレームに対して、尋ねられているIPアドレスが自分のものであればMACアドレスを応答するというシンプルな仕組みで動作します。
今回は事前にARPキャッシュを削除してから通信を行ったので、通信前に必ずARPの問い合わせが走るようにして計測したのですが、そもそもARPは頻繁にキャッシュを消去します。*6クライアントちゃんはとても忘れっぽいのです。

*6 Ubuntu の場合、キャッシュの有効時間は15 分程度。

DNS解決

1月1日 午前5時7分 DNSクエリ送信 1回目

親切なおじさんのおかげで、クライアントちゃんは郵便ポストの場所を知ることができました。
またすぐ忘れてしまうのですが、この世界では約900年後のことなので、特に気にすることはありません。
となると次にクライアントちゃんが知るべきはサーバーちゃんの住所(=IPアドレス) です。郵便ポストを見つけても相手の住所がわからないと手紙は送れません。サーバーちゃんの住所を知るために、クライアントちゃんはルートサーバーに住所を問い合わせることにしました。
電話番号に電話番号問い合わせサービスがあるように、ネットワークの世界にも、ドメイン名から相手のアドレスを問い合わせるためのDNS(Domain Name Service)があります。
電話番号の場合は104番という番号を知っていれば他の番号を問い合わせることができます。
インターネットにおける“104”は、世界に13個存在するルートサーバーのアドレスです。今回は、13個の中で唯一日本の団体が管理している、Mルートサーバーに問い合わせるようにルートサーバーの設定を変更しています。*7
サーバーちゃんの住所を一秒でも早く正確に知りたいクライアントちゃんは、世界中に数あるDNSサーバーの中でも最も権威あるルートサーバーに一筆したためることにしました。あらゆるキャッシュを削除したクライアントちゃんも、一番大事なルートサーバーの住所は覚えています。
あれこれ悩んで手紙を書き、ようやく完成したのはそれから1時間半後のことでした。早朝の冷たい冬風が骨身に染みます。クライアントちゃんはコートを厚めに羽織ってポストに手紙を投函しに行きました。
一刻も早く返事が帰ってくることを願って……。

「うぅっ、さぶっ。早くお返事来るといいなぁ」

*7 もっとも、ルートサーバーはクラスタ構成になっており国単位で分散しているため、必ずしも問い合わせたマシンが日本に存在するかどうかは保証されないのですが…。

1月14日 午前3時57分 DNSレスポンス受信 1回目

最初に手紙を送ってから2週間が経過しました。冬休みも終わって正月気分もようやく抜けてくる頃です。もうこの時点で直接会いに行ったほうが手っ取り早いんじゃないかという気がしますが、石狩は遠いのです。そんな気軽に会いに行けないのです。たぶん。

ともあれ、ルートサーバーからようやく返事が帰ってきました。郵便局が怠慢なのかルートサーバーがお役所仕事をしてるのか知りませんが、とにかくこれでサーバーちゃんの住所を知ることができた……というわけではありません。
ルートサーバーは世界中のすべてのマシンのIPアドレスを記録しているわけではありません。
ドメイン名を問い合わせられたDNSサーバーは、自らが委任するDNSゾーンのネームサーバーの情報を返します。今回問い合わせたドメイン名はさくらのVPSサーバーにデフォルトで割り当てられたドメイン*8なので、ルートサーバーはjpサブドメイン*9のネームサーバー*10を返してきました。つまりjpドメインのことはjpドメインの担当者に聞けということです。

「えー……」

*8 .vs.sakura.ne.jp で終わるドメイン名
*9 .jp はTLD(Top Level Domain) なのでサブドメインと呼んでいいか微妙ですが……
*10 a.dns.jp, b.dns.jp, c.dns.jp, d.dns.jp, e.dns.jp, f.dns.jp, g.dns.jp の7 つ

1月14日 午前9時52分 DNSクエリ送信 2回目

jp ドメインの担当者というのは要はJPRS(日本レジストリサービス)のことです。サーバーちゃんの住所を聞き出す手がかりを得たクライアントちゃんは、夜が明けるのを待ってから今度はJPRSのDNSサーバーに対して手紙を書きました。
実を言うと、jpドメインのネームサーバーを管理しているのはJPRSその人ですが、実際の運用は、JPRSを含めた5つの独立した組織によって行われています。これはルートサーバーが世界に13個あるのと同じく、ネームサーバーがダウンした際のリスクを可能な限り最小限に抑えるためです。
2 回目のDNSレイヤーの内容は、トランザクションIDを除いて前回ルートサーバーに対して送ったのと全く同じ内容です。DNSはなるべく高速に動作するように簡明に設計されているため、このようにパケットの内容を容易に再利用できるようになっています。決してクライアントちゃんがサボっているわけではありません。

1月27日 午後2時30分 DNSレスポンス受信 2回目

ふたたび待つこと2週間。すでに1月が終わりに近づいてきました。
クライアントちゃんの元にJPRSからの返信が届きました。サーバーちゃんの住所はまだわかりません。今度はsakura.ne.jpの権威サーバーである、さくらインターネットのネームサーバー*11の情報が返ってきました。

「……またかよ」

ここに来てようやくさくらインターネットの影に辿り着きました。サーバーちゃんの住所ゲットまであと一息です。

*11  ns1.dns.ne.jp, ns2.dns.ne.jp

1月27日 午後6時56分 DNSクエリ送信3回目

同じやり取りも3回繰り返すと飽きてしまいますね。けれどクライアントちゃんはサーバーちゃんに手紙を届けるために、めげずにDNSのパケットを送り続けます。今度は先ほど入手したさくらインターネットのネームサーバーの住所に対して、みたびサーバーちゃんの住所を尋ねる手紙を出します。
ところで、先ほどからクライアントちゃんは気軽にあちこちにDNSパケットを送ったり受け取ったりしていますが、これはDNSがUDPプロトコルの上で動作しているからです*12。UDPは、後ほど解説するTCPと異なり、相手のマシンとの接続を確立する必要がないため、気軽に任意のアドレスにいきなりデータを送りつけることができます。
逆に言うと、TCPのような再送要求やエラー訂正などの機能を持たないため、伝送経路のどこかでパケットが損失した場合、クライアントちゃんは返事を待ちぼうけということになってしまいます。
もっとも、それもタイムアウトするまでですが。

*12 DNS自体はTCP上でも動作することが義務付けられています。

2月10日 午前9時35分 DNSレスポンス受信 3回目

2月に突入しました。幸い3度目のクエリも待って待って待ちぼうけという事にはならず、ポストに投函してから2週間経って再び返事が帰ってきました。そこには待ち望んでいたサーバーちゃんの住所がくっきりと書かれています。
これにて名前解決完了。ようやくサーバーちゃんに対してパケットを送りつけることができるようになります。もうあちこちのネームサーバーとパケットをやりとりする必要はありません。年が明けてから41日間、実時間にして110ミリ秒が経過しました。この調子で年内にサーバーちゃんとの通信を終えることができるのでしょうか。クライアントちゃんの通信はまだまだこれからです。

「この続きはシェルマガvol.48、またはオリジナル版掲載サイトを見てねっ!」

本記事掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

漢のUNIX ライブラリをつくってみよう! #その3(vol.46掲載)

投稿日:2017.05.9 | カテゴリー: 記事

著者:後藤大地

今回は分割したファイルが実際にどのように処理され、最終的にバイナリ形式の実装ファイルに変換されるのかといった過程を、もうちょっと詳しく紹介していこうと思う。実際にどのように処理が進むのか知ることで、コーディング中の頭の中にどのように処理されるのか地図が浮かんでくるようになり、より効率が良く見通しの良いソースコードを記述できるようになる。その内側を調べていこう。

 

記事本文掲載のシェルスクリプトマガジンvol.46は以下リンク先でご購入できます。

 

 

ユニケージ開発手法 コードレビュー vol.35(vol.46掲載)

投稿日:2017.05.9 | カテゴリー: 記事

著者:USP研究所技術研究員 青木剛理

今回は、無意識にシェルを書くと計算誤りが発生しやすい、ゼロとヌルの違いについて説明します。

本記事掲載のシェルスクリプトマガジンvol.46は以下リンク先でご購入できます。
USP研究所 通販サイトでは、個人用uspTukubaiのご購入も可能です。

 

機械学習で石川啄木を蘇らせる 最終回(vol.46掲載)

投稿日:2017.04.25 | カテゴリー: 記事

written by 高橋光輝

様々なアルゴリズム・機械学習をスマートに組み合わせて未完の短歌の補完を目指した人気連載「機械学習で石川啄木を蘇らせる」。シェルマガでは同人誌から手法を発展させ、新たに記事を書き起こしてもらいました。

連載全体を俯瞰するまとめ回となった最終回を公開します。ぜひお楽しみください!

本連載のもとになった同人誌の内容は、以下のURLから閲覧が可能です。(編集部)
https://sunpro.io/c89/pub/hakatashi/introduction

遂に、機械学習で石川啄木が帰り来れり

こんにちは。高橋光輝(HN:博多市)です。今回は連載「機械学習で石川啄木を蘇らせる」の最終回として、今までに生成した、「啄木の短歌」と「ダミーの短歌」の素性ベクトルをもとに、「啄木らしさ」を学習します。その後前々回作成した「最後の一首」候補の短歌を分類器にかけ、最も「啄木らしさ」の高い一首を、復元された「最後の一首」とします。
さて、前回までの作業で「啄木の短歌」と「ダミーの短歌」の素性ベクトルを抽出し、それぞれの短歌が持つ特徴を100次元のベクトルデータに変換することができました。このように入力データを正規化し形式を揃えることによって、機械学習にとって扱いやすいデータになります。今回は「啄木の短歌」と「ダミーの短歌」を正確に分類できる分類器を作成することによって、擬似的に「啄木らしさ」の学習を行っていきます。
以前お話したとおり、分類問題は機械学習の最も基本的なタスクです。機械学習の草創期から現在に至るまで非常に多くのモデルが提唱されてきました。この連載のもととなった記事では多項ナイーブベイズ分類器を用いて分類を行いましたが、今回の連載では線形サポートベクトルマシンを用いた分類器を使用することにしました。一般に機械学習においてどのようなタスクにどのような手法が向いているのかというのを理論的に示すのは難しく、パラメーターの調整次第でいくらでも性能が変化しうるというのが機械学習の難しい部分です。今回の場合も理論的にどうこうというよりは試行錯誤を重ねたうえでの選択となっていますので、このあたりの説明の足りない点はどうかご容赦ください。

SVMをこのごろ気になる

さて、サポートベクトルマシン、略してSVMというのは少しでも機械学習を齧ったことがある方なら一度は聞いたことのある名前でしょうが、あらためて軽く解説を行いたいと思います。
SVMはおそらく、数ある機械学習のモデルの中でも特に直感的に理解しやすいモデルです。図1のように、ベクトル空間上に分類したい2種類のデータが点在する状況を考えます。これらのデータを元に未知のデータに対して分類を行うには、ベクトル空間のどの部分がどの種類のデータの領域なのかを定める境界面、つまり識別面が必要になります。

図1:SVMによる識別面の設定
SVMはこの識別面を、それぞれのクラス中で最も識別面に近いデータまでの距離、つまりマージンが最大化されるように線を引きます。この識別面の具体的な引き方を計算するには線形代数の知識が必要であるためここでは省略しますが、通常のデータでは入力されたデータからこのような識別面の解を一意に求めることができます。これが線形サポートベクトルマシンにおける「学習」です。
こんな単純なモデルで本当に「啄木らしさ」が学習できるのかと疑問に思うかもしれません。実際、線形SVMによる分類は名前の通り線形であり、非線形な処理を含まないため単体では表現力に乏しいとされています。しかし、今回分類するデータは、word2vecとsentence2vecを用いてベクトルに落とし込む段階ですでに言語の意味論的な部分をベクトル空間上に抽象化していると考えられるでしょう。word2vecによる事前学習を行ったデータがSVMやK-meansなどの比較的単純な手法でも非常に高いスコアを上げることはword2vecを提唱した論文でも示されており、これが今回のケースにも当てはまります。つまり、単語からベクトル空間へのよく学習された写像関係においては、たかだか100程度の次元で言語が持つ複雑な意味論的モデルを十分に表現できるということであり、この点からもword2vecの優秀さを伺うことができます。

SVMにさはりてみるかな

さて、話は脱線しましたが、ここからは実際にSVMを用いて「啄木の短歌」と「ダミーの短歌」を分類する分類器の学習を行いましょう。今回はscikit-learnというライブラリを使用します。scikit-learnは、機械学習の様々なモデルや、機械学習をする上で便利なツールが1つのパッケージに実装したライブラリであり、多種多様な機械学習を手軽に試せるため、機械学習の定番的なライブラリとなっています。一方、速度などの点では他のライブラリにやや劣っていますが、今回は学習するデータ数が比較的少ないため問題にはならないでしょう。
scikit-learnをインストールするために、次のコマンドを打ち込んでください。

 

では、コードを書いていきます。いつも通り、Makefileの最初にリスト1のような行を加えてください。

そして、predict_takuboku_tanka.pyというファイルを作成し、次のように記述します。

ここで、分割交差検定と呼ばれる方法を用いてSVMの精度を測定しています。分類器の精度とはすなわち分類の正確さであり、既知のデータに対してどれだけ正確に分類を行えるかを計測することによって測定できますが、このとき学習に用いたデータを測定に使用しないよう注意が必要です。学習に用いたデータは学習機にとっても既知のデータであり、正確に分類を行えるのはある意味当然であるので、精度測定が不正確になるおそれがあります。そのため、通常はデータセットを学習用のデータとテスト用のデータに分割して使用するのですが、このときの分割の仕方によって精度測定に影響が出る可能性があるため、学習用のデータとテスト用のデータを互いに入れ替えながら何度も測定を行うことがあります。これが分割交差検定です。


図2:5分割交差検定の例

今回の測定では5分割の交差検定を行っています。つまり、入力データの5分の1をテストデータに使用する測定を5回行っているということです。この測定結果は環境や乱数によって多少変動するでしょうが、おおむね97~98%程度の数値が出ると思われます。これはこの連載の元となった記事での93.3%という精度と比較しても非常に高いスコアであり、「啄木の短歌」と「ダミーデータ」との違いがよく学習ができていることが期待されます。
プログラムではその後、あらためてすべての入力データを用いてSVMの学習を行い、本命の「最後の一首」の候補を分類するための分類器を学習します。そして、それが終わったら実際にこれまでの連載で作成してきた「最後の一首」候補の短歌のベクトルデータを分類器に入力し、「啄木の短歌らしさ」の数値を推定します。これによって最もスコアが高かったものが、復元された「啄木の最後の一首」ということになります。

大跨に椽側を歩けば……

長い道のりでしたが、ようやく復元結果の発表です。それではもったいぶらずに発表しましょう。機械学習の力を借りて現代に蘇った石川啄木の最後の一首、その内容はこちらに決定しました。

大跨に椽側を歩けば、
うしなひしをさなき心
寄する日ながし。

……いかがでしょうか? 実のところ生成時に関係するさまざまな環境や乱数によって生成される短歌が異なる可能性があるので、これが唯一の解答というわけではありません。読者の皆さんが試した結果はこれとは異なる可能性があります。それぞれにそれぞれの復元結果があるということです。
「啄木らしさ」が高いと判定された短歌がどのようなものか確認するために、スコアの高かった上位30件を順に見てみましょう。

 

全体としての印象は、「かなしき」「うしなひし」「むなしき」「痛く」「冷たし」といった陰的な形容が目立ちます。この点は非常に興味深いです。以前紹介した復元結果「大跨に椽側を歩けば、板軋む。/かへりけるかな――/道広くなりき。」では「椽側を歩く」という表現から「板軋む」「道広く」といった意味的な共起表現を拾っており、この点で以前の結果は優れていましたが、一方で詩的表現の手段としての言語をあまりにも字句的に捉えすぎているという指摘も受けました。今回の結果は前回よく見られたような「板」や「道」のような前半と関連する表現は見受けられませんが、代わりにこのような精神的な表現の傾向が陽に現れたことは、ある種前回の壁を乗り越えられたといえるのではないでしょうか。
また、「眼閉ぢ眼をとづ」や「軽くかろく眺むる」といった同じ単語の繰り返しのパターンが現れているのも興味深いです。三十一文字の中で同じ表現や単語を繰り返すのは特に前期啄木に見られる技法であり、「なみだなみだ/不思議なるかな/それをもて洗へば心戯けたくなれり」「はたらけど/はたらけど猶わが生活楽にならざり/ぢっと手を見る」といった歌にみることができます。この結果に出てきている用例はかなり露骨でありあまり高く評価はできませんが、もしかしたらこのような表現パターンを入力データから学習しているのかもしれません。
というわけで、今回の復元結果はこのようになりましたが、この結果は学習のパラメータや手法次第で大きく変わる可能性があります。読者の皆さんはぜひ、各種パラメーターを変更して、より望ましい結果が得られるように調整してみてください。たとえば、

・形態素解析に用いる辞書データの変更
・RNNLMやマルコフ連鎖で生成する短歌の数の変更
・マルコフ連鎖で用いるn-gram辞書のnの値の変更
・RNNLMに渡す各種パラメーター
・分類器のパラメーターの変更、もしくは探索※2

などは試してみる価値があると思います。

ひよつとした事が、思ひ出の種にまたなる

さて、こうして無事石川啄木の最後の一首を復元することができたので、おさらいをする意味も込めて本連載の流れをもう一度最初から振り返ってみましょう。


第1回(編:本誌 vol.38掲載)では、イントロダクションとして、本連載の中心人物である石川啄木の紹介、そして石川啄木の未完の「最後の一首」の解説を行いました。
第2回(vol.39)では「最後の一首」復元の第一歩として、青空文庫から原本となる啄木のテキストを取得し、短歌の部分を切り出してパースする処理を行いました。
第3回(vol.40)では、第2回でパースしたデータを形態素解析にかけ、短歌がどのような語句で構成されているのかを解析しました。
第4回(vol.41)では、第3回で形態素解析したデータを元にマルコフ連鎖を行い、文章としての繋がりを重視するプローチから「最後の一首」候補を作成しました。
第5回(vol.42)は第4回と並行する形で、今度はRNNLMを用いて「最後の一首」候補を作成しました。こちらはどちらかというと文脈を重視したアプローチになります。
第6回(vol.43)では、第4回と第5回で作成した「最後の一首」候補から、短歌の形式をとっているものをフィルタリングする処理を行いました。ここで単語列を文節に分けるテクニックを解説しました。
第7回(vol.44)では、短歌形式を取っている「最後の一首」候補を、word2vecとsentence2vecを用いて素性ベクトルに変換し、機械学習で扱いやすい形に変換しました。
第8回(vol.45)では機械学習による分類を行うための前準備として、「石川啄木らしくないデータ」、つまりダミーデータを生成する処理を行いました。また実装は行いませんでしたが、類似技術であるGANについても同時に解説を行いました。
そして第9回となる今回では、第8回で生成したダミーデータと啄木の短歌を正確に分類するSVMを学習し、それを用いて第7回で生成した啄木の「最後の一首」候補の「啄木らしさ」を推定し、もっとも「啄木らしさ」の高い一首を復元された「最後の一首」としました。

こうしてみると、「石川啄木の最後の一首を復元する」という一つのタスクに対して、様々な技術が複雑に関係していることがわかります。啄木の歌集の校訂者に端を発し、形態素解析器、マルコフ連鎖、RNNLM、word2vec、SVMと、どれも偉大な先人が築き上げてきた技術の集大成です。現代に生きる我々の使命は、折りに触れてなるべく広範な知識を身に着け、こうして巨人の肩の上に立ち、その上でどれだけ新しい価値を生み出せるかということに懸かっていると思って止みません。みなさんもこの連載記事を通じて、石川啄木や自然言語処理、さらに機械学習に興味を持って頂けると幸いです。
それでは、以上で連載「機械学習で石川啄木を蘇らせる」最終回とさせていただきます。9回の長い間お付き合いくださりありがとうございました。また機会があればどこかで会いましょう。

あなたにとっての技術が、物語のよき隣人でありますように。

 

本記事は、シェルスクリプトマガジンvol.38~vol.46に掲載された連載の最終回です。それぞれの技術の詳細については、該当のバックナンバーをご参照ください。(編集部)

ITエンジニアのサボりに強い味方現る!シェルスクリプト製ライフゲーム

投稿日:2017.04.18 | カテゴリー: 記事


written by シェルスクリプトマガジン編集部

(本記事はWeb版シェルスクリプトマガジン独自記事です)

USP研究所技術研究員 ナカムラ氏謹製の、シェルスクリプト製 ライフゲーム・シミュレータをご紹介します。
インストール・設定・操作・実行のすべてがターミナル画面上で完結するので、上司の目が厳しいエンジニアの皆さまも、いかにも「仕事中です」という顔をしながら暇つぶしに勤しめます。

ライフゲームとは

ライフゲームは、1970年にJohn Horton Conwayが発明したコンピュータ・ゲームです。
マス目(セル)のオンオフを生命(例えばシャーレ上に培養される微生物)に見立て、単純な規則により時間経過による生命の繁殖を表現します。
自分の周り八方のセルの密度が適度なら次のターンに培養される、過疎もしくは過密の場合は死滅します。

ルールは簡単ですが、初期状態からは想像もつかない形へと発展していく面白さがあります。。

例:代表的なパターン「グライダー」。 4世代ごとに縦横1マスずつ移動しながら元の形に戻ります。

→ 

 

ライフゲームのルール(引用元:「ライフゲイムの宇宙 新装版」ウィリアム・パウンドストーン著 有澤誠訳、日本評論社)

Wikipedia「ライフゲーム」などもご参照ください。

 

遊び方

インストール

コードはGitHub上に公開されています。

https://github.com/kaznak/ConwayGoL.sh

ターミナル画面上で $ git clone https://github.com/kaznak/ConwayGoL.sh.git とすることでインストールできます。

ConwayGOL.sh/ のディレクトリに移動し、初期化コマンド . rc を打ち込むことで準備が整います。

 

サンプルパターンを実行してみよう

ライフゲームの面白さは、初期のセル配置パターンからは想像もつかない発展をとげることです。

ConwayGoL.sh/example-pattern/ に、特定の動きをする代表的なパターンが収録されています。

まずはそれらのサンプルパターンを実行してみましょう。

例えばさきほど紹介した「グライダー」を見たいときは、 ConwayGoL.sh/ ディレクトリで以下のコマンドを実行します。

上司に見つかりそうになったら Ctrl-C を長押しすれば終了できます。

また、一世代ごとの移り変わりを確認したいときには、conwaygolコマンドにオプションをつけます。

conwaygolの後に続くオプションのうち、

最初の「2」は初期状態から2世代後まで(計3世代)を表示することを示します。

後ろの 10 10 は、セル全体の大きさの指定を示します。

 

自分で作ったパターンを実行してみよう

サンプルパターンを動かしてみたら、いよいよ自分で初期パターンを作り、実行してみましょう。

まずはテキストエディタを使って、ConwayGoL.sh/example-pattern/ に初期状態のファイルをつくってみましょう。

オンのセルはX(半角の大文字X)で、オフのセルは半角スペースで打ち込みます。

それではこいつを実行してみます。

題して、「ライフゲームで占うシェルマガの未来」。

(GIFファイルです)

実行当初からどんどん形が崩れていきます。あははは、これは愉快だ。

途中からは、文字の区切りの痕跡すら残っていません。

(GIFでは飛び飛びですが)約300世代後、ふたつのパターンを繰り返す定常状態になりました。

シェルマガがこれからどんどん広まり、vol.300近くまで続くというお告げでしょうか。素晴らしい。

 

おわりに

というわけで、USP研究所ナカムラ氏謹製 シェルスクリプト版ライフゲームのご紹介でした。

みなさまの、仕事してるフリをしながら適度にサボる、豊かなITエンジニア・ライフのお役に立てますと幸いです。

詳しい操作の仕方については、インストール後 readme もご参照ください。

 

シェルスクリプトマガジンは、明日すぐには役立たないけれども数年後の自分の血となり肉となる、ITエンジニアの教養満載でお届けしています。

データ分析、IoT、PM、ネットワークなど、新しい勉強を始める春にぴったり!最新号vol.47はこちらから!

 

「無意味な行動をとらせる力」を使え! 環境ITベンチャー ピリカのつくりかた

投稿日:2017.04.4 | カテゴリー: 記事

本記事は、シェルスクリプトマガジンvol.47掲載「技術者哲学 ピリカのつくりかた」のダイジェスト版です。

株式会社ピリカは、『科学技術の力であらゆる環境題を克服する』と謳い、ポイ捨ての解決をビジネスにしているITベンチャーです。
実際に彼らのゴミ拾いアプリ【ピリカ】を使ってみると……

 「ゴミが落ちてるぞ!」

「拾って写メを撮って…」

「ピリカに投稿だ」

「拾ったゴミはゴミ箱へ」

(数時間後)「お、【ありがとう】がたくさんついてる。いいことした気分!またゴミが拾いたくなってきた」

 

と、一見結びつきそうにない【IT】と【環境問題】と【ビジネス】が、たしかに融合していました。

この秘密を探るべく、編集部は開発元の株式会社ピリカを訪れました。

インタビューに応えてくれたのは代表の小嶌不二夫さんとCTOの高橋直也さん。起業に至った経緯、環境問題にIT技術ができる貢献、そして今後の展望を伺ってきました。
(聞き手・まとめ シェルスクリプトマガジン編集部)

 

ピリカができるまで

―今日はよろしくお願いします。まずは、小嶌さんが「IT技術で環境問題を解決するビジネス」を始めるに至った経緯を聞かせていただけますか。

小嶌:僕が環境問題に興味を持ったのは、小2のときに読んだ、ポプラ社の「地球の環境問題」シリーズがきっかけです。図書室の隅っこにあったこのシリーズに異常にハマって、同じ本を何度も借り直した記憶があります。その頃の僕は「大きな問題を解決する」ことに魅力を感じたのでしょう。もちろん、大人になってから勉強し直すと当時とは状況が変わっているわけですが、最初のきっかけはこのシリーズでした。

 

―環境問題の解決に取り組むうえで、起業という形をとったのは何故ですか?

小嶌:大学に入った頃は研究者を希望していました。でも、学部四年で研究室に配属になったら、二週間くらいで「これ、全然面白くないな」と思ってしまい、そこで研究者の道は諦めました。割り当てられた研究が合わなかったということもありますし、「研究者として」環境問題にアプローチするのは、自分の場合はちょっと違う、とも思い始めたからです。当時の僕の視点からは、研究とは「人生を賭けてひとつのテーマをひたすら深掘りする」ものに見えたのですが、そうすると、僕が小学生の頃読んだ本の「一冊分」は解けるかもしれないけれども、「残りの分」が解けないじゃないですか。

―たしかにそうですね。

小嶌:一方で、「お金」だったら全てのことに使えますよね。ひとつの事業で得たお金を他の分野に転用していくことができますから。そこで、学部四年で「研究面白くないぞ」と感じてからは、自分で事業を立ち上げるのか、それとも仕事を学ぶためにまずは企業に就職するのか、大学院でのモラトリアムの間に自分の道を決めることにしたんです。だから、大学院に入ってからは海外で働いてみたり、色々な国を旅してみたりしました。

―なんとなく大学院に進んでモラトリアムを過ごす、という人は多いですが、小嶌さんは環境問題にどう取り組むべきか見定めるために、モラトリアムを「積極的に取りにいった」わけですね。その結果「ゴミ問題」を選んだのは何故ですか?

小嶌:ひとつはお金の問題です。環境問題の範囲はとても広いわけですが、多くの問題は解決に莫大なお金がかかりますよね。浄化フィルターひとつ開発するのにも何千万円もかかってしまう。だから「安く始められること」が絶対条件だったんです。
一方で、安く始められたとしても「汚染を除去するフィルターの、この一部分だけを作りました」で終わっては悲しいですし、全体の問題の解決には到底達しません。そこで、「将来的には大きな広がりを持っているけど、入り口は小さい」テーマとして、ゴミ問題に取り組むことにしたわけです。

―なるほど。

小嶌:世界一周旅行をしていた当時、100くらいアイデアをメモ帳に書きためたんですが、結局「これだったらいけるかもしれない」と思えたアイデアは、その中の3つくらいを組み合わせた1つだけでした。
それは「Googleマップのような地図に、色々な環境問題の情報を載せ込む」ことです。
これまでにも、様々な自治体さんや団体さんが地域の問題解決をしようと努力されていますが、その中には、「『○○川を綺麗にしよう』という活動が盛んだが、実際にはその隣の川の方が汚い」のような状況が結構ありますよね。そういう状況に対して、位置情報付きで環境問題の見える化をすることで、環境問題を解決しようとしている人の行動を最適化したり、関わる人を増やしたりできるのではないかと思ったんです。

―最初のアイデアは「環境問題のマッピング」だったんですね。スマホにピリカをインストールすると、道端でゴミを見つけたときに自ずと拾いたくなってしまうので、よく出来た仕組みだと感心しています。この効果は狙って設計したんですか?

小嶌:まさに、世界の国を旅している間にそれと同じ体験をしたんです。iPhoneを持って旅に出たんですが、スマホの位置情報をオンにして写真を撮ると、現在地がマップにピン留めされるじゃないですか。アフリカの街にいるときに、ピンがもう世界を半周していることに気がついて、「おっ、これは面白いな」と思ったんです。なにか、色々な街を征服したみたいで。そこからは無意識に、新しい街についたら意味もなく、位置情報をオンにした状態で写真を撮るようになっていきました。部屋の隅とかでもとりあえず撮るんですよ、位置情報を刺したいから。

―「ピンを刺すこと」自体が目的になってしまったんですね。

小嶌:後から振り返ってみると、「なにこの無意味な写真」って思うわけですが、これって、要はゲーム性とか面白さによって人に「無意味な行動」をとらせているってことですよね。

―たしかにそうです!

小嶌:人にこういう無価値な行動をとらせられるなら、もしかしたら情報くらい送ってくれるかもしれないし、ゴミくらい拾ってくれるかもしれない。「位置情報付きで写真を撮ること」にそういう力があるのなら、これを使って面白いことができるかもしれないと思ったんです。

 

環境問題をビジネスにする

―大学院での経験をヒントにして始まったピリカですが、株式会社ピリカが現在展開されている事業を紹介していただけますか?

小嶌:現在はスマホアプリ「ピリカ」を使ったゴミ拾い支援事業と、画像認識システム「タカノメ」を使ったポイ捨て調査事業の二本立てです。ゴミ拾い事業の収益は、様々な企業さんからの広告・協賛と、ピリカの仕組みを使ってくださる地方自治体さんからのシステム利用料です。タカノメによる調査では、案件ごとに調査面積に比例した調査費用を頂き、得られたデータを基にした研究成果に対しても研究費用を頂いています。

―どんな組織がタカノメによる調査・研究のクライアントになるのですか?

小嶌:協賛企業でもあるJTさんを例に挙げて説明しましょう。タバコのポイ捨てはJTさんにとってもデメリットですよね。ポイ捨てがあまりに酷いとクレームが来たり、場合によっては自治体に喫煙所を作らせてもらえなくなったりしますから。ですから、喫煙所をどうデザインすれば地域のポイ捨てを抑制できるのか、喫煙者・非喫煙者双方にとって暮らしやすい町や制度を作れるか、ということを研究する動機がJTさんにはあるわけです。このケースでは、自治体・JT・ピリカで協定を結び、データと費用を頂いて調査を行っています。

―タカノメによる調査費用は調査面積に比例するとのことですが、どのようにサービスの価格を決めたのですか?

高橋:タカノメに関しては、面積に原価が比例するのでそこに値段つけたということですね。

小嶌:買い手のことを考えると、自ずと売り方が決まってくるという面もあります。環境問題のビジネスとしての特殊性は、直接的なお客さんであるゴミや大気、川や海からはお金をとれないことですよね。

―そうですね。

小嶌:だからその代わりに、問題を抱えている「人の問題」として売るしかない。「ポイ捨ての問題」では売れないので、見方を変えて「地域の美化」の問題として扱って自治体の地域美化の担当者さんに買ってもらう、河川の問題として切り分けて、喫煙所の問題として切り分けて……という発想に、どうしてもなります。そこで、ときには相手に尋ねながら「買ってくれる方法」を探すわけです。例えば自治体を相手にするなら、議会を回さずに使える予算はそれぞれの市区町村によって違いますから、それらに柔軟に対応でき、なおかつ予算に合わせて調査規模を拡大できるような売り方になります。

 

環境ベンチャーのエンジニア

―現在CTOとして開発を担当されている高橋さんは、どのような経緯でピリカにエンジニアとして参加されたのですか?

小嶌:システム開発の会社に就職した大学時代の友人に「ピリカを作っていく上でどうしてもエンジニアが必要なので、周りで一番優秀な人を紹介してもらえないか」と頼んだら、その場で電話をかけて、同僚だった高橋さんを紹介してもらったんです。

―え、そんな簡単に決まったんですか?

高橋:参加といっても、最初の3年間は週に2時間くらいでした。普段の仕事とは別のことに関わっていたいという希望はその前から持っていましたし、実際にピリカに関わる2時間がいい気分転換になって、普段の仕事でも楽しくいられたんです。ピリカをやっている間にも、もう一社並行でやっていたこともあります。ピリカにフルタイムで関わるようになったのは、私も東京に出て来てからですね。

小嶌:高橋が参加した当時は二人とも関西にいましたが、それからすぐ僕は東京に出て来ました。なので、遠隔でのやりとりの期間が長かったですね。現在でも、当時の高橋のように他の仕事をしながら関わってくださる方や、北海道やアメリカなど遠隔で関わってくれる方がいまして、30名近い方の力を借りて事業を行っています。

―アイデアを出す小嶌さんと、それをシステムで実現する高橋さんは、どういう関係で仕事を進めているのでしょうか?

高橋:自分が関わる部分については、割とやりたいようにやらせてもらっています。基本的に、作りたくないものを作ったことはないはずで、「何を作るか」を決める時点で自分の意見をある程度反映させています。

小嶌:例えばタカノメは、そもそものサービスの構想自体が高橋の発案です。私が持っていたのは「ゴミの種類と数を、安く、正確に、そして様々な場所で同じ基準を適用して調査したい」という方針だけでした。それを人力でやるにはお金もかかるし、限界もある。なによりも面倒な作業ですから、やる方が幸せになれないですよね。その解決のために「スマホで写真を撮って、画像解析でゴミを見つける」というシステムの大枠を考えたのは高橋なんですよ。

 

 

シェルスクリプトマガジンvol.47に掲載の本記事ロング・バージョンでは、科学技術・ITが環境問題にできる貢献について小嶌さんが考える「ピリカの基にある哲学」を、よりつっこんで伺っています。

 

 

ユニケージ開発手法 コードレビュー vol.36(本誌vol.47掲載)

投稿日:2017.03.31 | カテゴリー: 記事

著者:USP研究所技術研究員 岡田健

 今回は、シェルスクリプトのデバッグを行いたい時、処理の途中or一部だけに限定して実行出来る uspTukubai のコマンド「run」を紹介します。

本記事掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。
USP研究所 通販サイトでは、個人用uspTukubaiのご購入も可能です。

 

香川大学SLPからお届け!(vol.47掲載)

投稿日:2017.03.28 | カテゴリー: 記事

著者:石井怜央(香川大学SLP)

 前回は、OSC広島の前日に行われた学生LT大会の様子を紹介し、その中で僕が発表した、サークルで開発を行ったメール管理システムについて触れました。
 今回はその開発で使用した、Sinatraやmail gemについて紹介し、それらを組み合わせて簡単なWebアプリケーションを作成したいと思います。

記事本文掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

40歳から始める、オレとRubyプログラミング(vol.47掲載)

投稿日:2017.03.24 | カテゴリー: 記事

著者:しょっさん

 最近、自宅で二酸化炭素濃度をはかるようになりました。 予想していた以上に、家の中の空気が汚染されていることがわかって、衝撃を受けています。部屋が暖かいから眠くなるんだなー…なんて考えていましたが、暖かいんじゃなくて二酸化濃度が高いからという可能性が高いです。
 二酸化炭素濃度を下げるには、換気をすることが基本ですが、この濃度を下げてからというもの、家での活動がとてもスムーズになり眠くなることが減りました。
 なんでこんなことしてるのかって? もちろん、クリアーな頭の状態でプログラミングするため。さぁ今月も頑張っていきましょう!

記事本文掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

リスト6-a、6-bは本来ひとつのコードですが、本Webサイトの文法に抵触するため分割して掲載します。

バーティカルバーの極意 第一回 (vol.47掲載)

投稿日:2017.03.24 | カテゴリー: 記事

著者:中央大学 教授 飯尾淳

 この連載では、バーティカルバー、あるいは、縦棒で表される記号(|)や縦棒そのものを中心として、話題を展開しようと試みます。毎回、どんなバーティカルバーが現れるか、楽しみにしていてください。…といいつつ、第1回めの今回は、皆さんおなじみ、Unixにおけるパイプ(|)を扱います。ベタでどうもすみません。

記事本文掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

無料無線公衆LANスポットのCSVファイル URL
http://www.data.go.jp/data/dataset/mlit_20160325_0037

逆に、Tukubaiコマンドをシェルスクリプトで実装してみる 前編 (vol.47掲載)

投稿日:2017.03.24 | カテゴリー: 記事

著者:今泉光之 (Twitter: @bsdhack)

 

1 usp Tukubai とは?

usp Tukubai は ユニバーサル・シェル・プログラミング研究所が開発・提供している一連のコマンド群で、商用製品として様々な分野の数多くのプロダクトとして利用されているソフトウェア製品です。
usp Tukubai はコマンド群として提供されており、通常の UNIX コマンドの様に複数のコマンドを繋ぎ合わせて使うことでシステムを構築することができます。
usp Tukubai で提供されるコマンドを使いこなすと、端末だけで集計処理ができたり、ファイルだけでDBを組んだり、ウェブシステムを組んだりと、シェルあるいはシェルスクリプトでできることが飛躍的に増えます。
特に製品版として開発されている usp Tukubaiはソースコードのレベルからチューニングされているので、非常に高速に動作するので大規模なエンタープライズシステムでの使用にも十分に対応できる性能となっています。

2  ユニケージ開発手法とは?

ユニケージ開発手法はユニバーサル・シェル・プログラミング研究所によって開発された、短期間低コストで企業システムを構築するための開発手法です。
小さなコマンドを組み合わせて問題を解決することを目的とした開発手法やコマンドに関する研究開発に取り組んでいるユニバーサル・シェル・プログラミング研究所が、そうした研究開発の成果をまとめた開発手法がユニケージ開発手法です。
本稿で扱う usp Tukubai はユニケージ開発手法を実践するための手段として開発されたコマンド群です。
ユニケージ開発手法に基づいて usp Tukubai コマンドを利用することで、数十行のプログラムでアプリケーションを記述できたり、データベースを使わずにテキストファイルのみでデータ処理が可能となります。実際にユニケージ開発手法に基づくシステム開発は小売業を中心に基幹業務システム、情報分析システム、データバッチ処理、高速検索システム、勘定系システムなど様々な分野で活用されていて、特にシステムの内製化を進める企業において採用されています。

3 Personal Tukubai とは

usp Tukubaiを試用目的で利用できるようにしたバージョンで、商用利用はできません。
Windows、Linux、OS Xでそれぞれ動作するので usp Tukubai による業務システムの開発を実際に体験できます。
期間限定のライセンスで、ダウンロードした月から 6ヶ月後の月末まで使用可能となっているので、十分に usp Tukubai の機能を調べることができると思います。

4 Open usp Tukubai とは

usp Tukubai コマンドのうち、利用頻度の高いコマンドを厳選して Python により実装しなおし、MIT ライセンスの下でオープンソースソフトウェアとして提供されているのが Open usp Tukubaiです。
製品版の usp Tukubai と比較すると一部実装されていないコマンドがあったり、性能にある程度の差は出てしまいますが、それでも usp Tukubai の便利な機能を知るためには十分に有用だと思います。
本稿では、Open usp Tukubai についての解説となります。

Tukubai 各コマンドの機能の紹介と簡単な解説

1 Open usp Tukubai のインストール方法

Open usp Tukubai は Python により実装されているので Python が動作する環境であればインストール可能です。
公式の配布サイトからソースを取得して展開し make install するだけで Open usp Tukubai は利用可能となります。
OS X 11.6 (OS X El Capitan) では以下のコマンドでインストールできます。
$ curl ‘https://uec.usp-lab.com/TUKUBAI/DOWNLOAD/open-usp-tukubai-2014061402.tar.bz2’ -o open-usp-tukubai-2014061402.tar.bz2 $ tar zf open-usp-tukubai-2014061402.tar.bz2 $ cd open-usp-tukubai-2014061402 $ sudo make install

2 Open usp Tukubai コマンドの解説

ここでは Open usp Tukubai のコマンドを解説します。
ただし以下のように Open usp Tukubai だけでも 55 コマンドも提供されており、その全てを解説するのは無理なので、
特に有用で興味深いコマンドを厳選して紹介します。

また、シェルスクリプトマガジンに掲載の記事なので、シェルスクリプトで Open usp Tukubai コマンドを実装してみたいと思います。今回は、calclock、comma、getlast、ketaの4つのコマンドを紹介し、シェルスクリプトでの再現を試みます。
但し今回は紙面と時間の都合で一部の機能やオプションなど実装できていない部分も多いです。
また、動作の把握とメイン処理の実装のみに絞ったので、エラー処理などはまったく実施していません。
そのために実際の業務などには殆ど利用できない実験的なスクリプトとなっています。

calclock

1 calclock とは

オンラインコマンドマニュアルはこちら

入力データ(ファイルや標準入力)の指定されたフィールドのデータを Epoch *1からの秒数に変換してフィールドの隣に出力します。
ファイル名に – が指定された場合は一般的な UNIX の流儀にのっとり標準入力を入力として利用します。
入力データは年月日(yyyymmdd形式)、時間(HHMMSS形式)、年月日時間(yyyymmddHHMMSS)を自動で検出します。
例えば以下の様なフォーマットのシステムへの接続ログから接続時間を取得する処理などを簡単に作ることができます。

*1 Epoch とは UNIX で一般的に利用されている時刻表現で、協定世界時(UTC)での1970年1月1日午前0時0分0秒の時刻からの形式的な経過秒数です。

calclock 唯一のオプションは -r で、これを指定すると入力データは Epoch からの秒数として解釈され出力は年月日時間(yyyymmddHHMMSS)となります。

2 calclockを作ってみよう

シェル組み込みのコマンドと date(1) を駆使して、何とか似た機能は実現できました。
引数で指定されたフィールドを変数 fields に格納しておき、read(1) で入力した行データ毎に fields に格納されたフィールドから date(1) で秒数を取得し、取得できた秒を変数 v数字 (数字はフィールド番号) に格納しています。指定された全フィールドの処理が終わると、入力データと取得した秒数を出力します。入力データの指定されたフィールド形式などのチェックしていないので、入力データに不正な値があると正しく動作しません。また、今回は -r オプションに関して実装しておらず、入力データも標準入力のみとなっています。

comma

1 comma とは

オンラインコマンドマニュアルはこちら

入力データ(ファイルや標準入力)の指定されたフィールドのデータを「カンマ区切り」にします。帳票データなどの最終的な出力に適用すると、金額などの可読性が向上します。
指定したフィールドに数字以外のデータが入力された場合はエラーとなります。

+hオプションはヘッダ行をスキップするための指定で、指定された行(デフォルトは1行)をヘッダ行としてスキップします。

d オプションは引数で指定した文字列をカンマ区切りにします。

-4 オプションは 4 桁区切りにします。

2 commaを作ってみよう

メインのロジックは awk(1) を利用することで何とか実装できました。
awk(1) の substr 関数を利用して文字列の後ろから指定された桁数で文字列を切り出し、切り出した文字列の先頭に , を付けることでカンマ区切りを実現しています。
今回は -d オプションに関して実装しておらず、入力データも標準入力のみとなっています。また Open usp Tukubai の comma では桁区切りするフィールドのデータをチェックしていて、データが数字以外の場合はエラーメッセージを出力していますが、こちらのスクリプトではその様なエラー処理をしていません。
ちなみに 3 桁区切りだけでよければ printf(1) の %’ を利用することでも殆どの場合実現可能ですが、printf(1) の %’ は現時点では非標準なので全ての環境で利用できる保証はなく、また、区切りを 4桁にする機能は対応していないので、独自に実装する必要があります。

getlast

1  getlastとは

オンラインコマンドマニュアルはこちら

入力データ(ファイルや標準出力)の指定されたフィールドの値が最後に出現した行を出力します。

同一のフィールドを指定することで単一のキーフィールドの指定も可能です。
以下の例だと第1フィールドの値のみで抽出しています。

+ng オプションは同じ値を持つ最後の行以外を出力します。

2 getlastを作ってみよう

メインのロジックは awk(1) のハッシュ (連想配列) を利用することで実装しました。
指定されたフィールドの値をそのまま連結してハッシュのキーとして利用することで、最新の行内容がハッシュに格納されます。
awk(1) の仕様としてハッシュの順番はランダムになりますので、
順番を維持するためにハッシュに格納する行データに行番号を付与して、出力したデータを sort(1) を利用して行番号でソートして正しい順番に並べ替えた後で、cut(1) で追加した行番号を削除して出力しています。
メインのロジックは awk(1) の機能をそのまま利用することで実現できたので、今回実装したコマンドの中では一番短く単純なスクリプトになっています。
+ng オプションは実装していません。

keta

1 keta とは

オンラインコマンドマニュアルはこちら

入力データ(ファイルや標準出力)の指定されたフィールドの桁数を揃えて、右詰で出力します。
表示するための最大幅は自動で計算されます。

— オプションは左詰で出力されます。

フィールド毎に出力する桁数を数字で指定することができ、指定する数字に – を付けることで左詰を指定することもできます。
出力する桁数は半角文字の表示幅を 1 としているので全角文字の場合は 1 文字を 2 とする必要があります。

2  ketaを作ってみよう

基本的な機能は全て awk(1) の組み込み関数で実装しました。
入力データは行番号とフィールド番号をキーとしたハッシュ dataに格納し、同時にフィールドの文字列長の最大値を別のハッシュ max に格納しています。
出力は、 awk(1) に組み込みの printf の %*s 指示子を利用することで出力幅を指定しています。

マルチバイトの文字列には対応していないので、入力データにマルチバイト文字があると正しく出力できません。
非英語圏でマルチバイト文字が正しく扱えないことは致命的ですので、業務には利用できません。

UTF-8 では、マルチバイト文字は多くの場合 3 バイトかそれ以上のバイト数を必要としていますが、OS X 標準の awk(1) の lengthコマンドは文字列のバイト数を取得しますので、例えば length(“あ”) は 3 となります。
Linux で標準的に利用されている GNU awk の場合はマルチバイト文字に対応していますので、マルチバイト文字を含む文字列の長さは正しい文字数を取得することができ、length(“あ”) は 1 となります。
しかしマルチバイト文字は 2 バイト相当の表示幅となりますので、どちらの場合でもマルチバイト文字を含む文字列の長さと表示幅は合致しません。
そのためにマルチバイト文字を含む文字列を表示する幅を正しく制御するのは非常に困難となります。

-v オプションは実装していません。

5/25発売のシェルマガvol.48では、さらなるTukubaiコマンドに挑みます
Web版シェルマガにも公開しますので、どうぞお楽しみに!

本記事掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。
USP研究所 通販サイトでは、個人用uspTukubaiのご購入も可能です。

漢のUNIX 静的ライブラリをつくってみよう (vol.47掲載)

投稿日:2017.03.24 | カテゴリー: 記事

著者:後藤大地

 前回の記事では、実装を複数の.c ファイルに分けて作成し、それらをコンパイルして.o ファイルに変更し、その.o ファイルを組み合わせてバイナリファイルを生成することを説明した。
 .o ファイルはバイナリファイルのパーツのようになっており、これらを組み上げることで実装に動作するバイナリファイルを作ることができる。

記事本文掲載のシェルスクリプトマガジンvol.47は以下リンク先でご購入できます。

Vol.47

投稿日:2017.03.24 | カテゴリー: バックナンバー

●UNIXコマンド~シェルスクリプトを「データ処理ツール」として使うためのイロハを学べる、新連載「バーティカルバーの極意」
 普段は文系の大学生にデータ処理を教えている中央大学・飯尾先生が、データ処理の理論から実習まで、余すところなく伝授します。

●通信の仕組みをざっくり理解できる新連載、「もし、インターネットの1秒が1年だったら」。
 引き伸ばされた時間軸の上で、擬人化されたクライアントとサーバーによるインターネットの通信を小説仕立てでお届けします。
 
●久しぶりの連載再開となる「スズラボ通信」と「UNIXネイティブの電子工作塾」。
 「スズラボ」ではIFTTTを利用したIoTを、「電子工作塾」ではシェルスクリプトを使った基盤づくりからの電光掲示板製作をとりあげます。

●街のポイ捨てゴミを拾いたい何十万人もの人々をサポートしてきた、ゴミ拾いSNSアプリ「ピリカ」。
 今回の「技術者哲学」では、アプリ開発まで物語や、裏にある哲学、そして環境問題をビジネスにする企業のあり方について、株式会社ピリカにお話を伺ってきました。

Vol.46

投稿日:2017.01.30 | カテゴリー: バックナンバー

●シェルスクリプトマガジンは次号から、Webと紙のハイブリッド・メディアへとリニューアルします!リニューアル直前企画では、人気の高かった記事を通じてこれまでのシェルマガの足跡を振り返ります。

●さくらインターネットやDMM.makeなどを立ち上げてきた小笠原治さん、HTML5 Experts.jp編集長の白石俊平さん、コワーキングスペース茅場町Co-Edoオーナーの田中弘治さんをゲストにお迎えした”TechLION vol.28″。2017年そしてその先に来るIT/ネットの未来を熱く語ったトークイベントの模様を、ダイジェストでお届けします。

●機械学習を使って、「一握の砂」に収録された”未完の短歌”「大跨に椽側を歩けば」の補完を目指した連載「機械学習で石川啄木を蘇らせる」もいよいよ最終回!”啄木らしさ分類器”によって、遂に石川啄木が蘇ります。

Vol.45

投稿日:2016.12.27 | カテゴリー: バックナンバー

2016年8月のWindows 10 Anniversary Updateで、ついにWindowsでもbashが動くようになりました。
嬉しいニュースだった一方で、これまでのMicrosoftのイメージからすると驚きだったことも事実。
というわけで、IT界の巨人Microsoftの変化について、MSの「それプロ」もといIT Professionalのエバンジェリスト、山本美穂さんと一緒に考えてみませんか?
新連載の初回となる今回は、話題のWindows Subsystem for Linuxに実装された技術を、これまでのWindowsとUNIX系システムの関係の歴史を交えて解説します。
「Bash on Windowsを使ってみた」を超えて、実装された技術の「そもそもの話」を知りたい硬派な読者さんに、愛をこめて贈ります!
 
その他にも、ITエンジニアは顧客に「どんな喜びを与えるべきか」、それを考えるためのストラテジーを紹介する「マーケティング入門」や、
一見誰でも出来そうな「一時ファイルの生成」を、本質から捉え直す「POSIX原理主義」シーズン1最終回などなど
強く、しなやかなITエンジニアを今月も全力で応援するシェルスクリプトマガジン vol.45。

Vol.44

投稿日:2016.11.29 | カテゴリー: バックナンバー

データ分析の分野で、いま最もアツいツール・Python。
特集記事では、プログラミング言語としてだけでなく、MathematicaやMatlabのような科学技術計算ツールとしてPythonを利用する方法や便利なライブラリについて、東京農工大学の石井先生がご紹介します!

名前はよく聞くし、理念も理想的……なのだけれども、いざ実践するにはハードルが高いアジャイルソフトウェア開発。
新連載「アジャイル開発 Let’ Practice!」では、個々のプラクティスを紐解き、開発に成功するチームのあり方に実践的な視点から切り込んでいきます。
連載初回は、日本にアジャイルが普及しない、そもそもの理由を分析します。

その他にも、北の地に生きるITエンジニア達が、自分の土地での仕事そしてコミュニティにあり方を熱く語ったトークライブイベント「TechLION vol.27 みちのくのテクノロジー・エンジニアリング事情の今」の誌上レポートや、
システム管理者がまず抑えるべきネットワークの知識を、著者の失敗談を基に懇切丁寧に解説する「中小企業手作りIT化奮戦記」などなど、
強くしなやかなITエンジニアを今月も全力で応援するシェルスクリプトマガジン vol.44。
お見逃しなく!!

Vol.43

投稿日:2016.10.24 | カテゴリー: バックナンバー

Rapsberry Pi meets Shell script !
金沢大学の大野浩之先生が提唱する「ものグラミング」では、なんとラズパイまでシェルスクリプトで動かします。
シェルスクリプトがものづくりにどう貢献していくのか興味津々の編集部は、早速お話を伺ってきました。

先月号では特集「自分のシェルを造る」が反響を呼んだ連載「漢のUNIX」。
前回はFreeBSDのシェルの書き換えをしましたが、今回はそのLinux編。
「シェルそのものの構造」に親しんでいきたいエンジニア必見です。

その他にも、現在進行形でIT業界を生きる女性を中心にしたLTイベント”TechGIRL”のレポートや、
IoTがもっと身近になる未来を目指す青年社長のインタビューなど、
今月も内容盛りだくさんのシェルマガvol.43。
お見逃しなく!

Vol.42

投稿日:2016.09.26 | カテゴリー: バックナンバー

シェルの役に立つ使い方について、これまでも様々な角度から提案をしてきたシェルスクリプトマガジンですが、今回の特集ではいよいよ「シェルそのものを自分の欲しいように作り替える」方法に迫ります。
手始めに、FreeBSDのシェルを自分好みに書き換えてみましょう!
連載「円滑コミュニケーションが世界を救う!」では、チームで仕事をするときの「あるある」、自分の指示が相手には見当違いに伝わってしまうケースを防ぐための最終手段「IPO」をご紹介します。

Vol.41

投稿日:2016.08.25 | カテゴリー: バックナンバー

UNIXベースで開発されたMacとして2001年に発売されたOS X。今月号の特集では、Macに眠るUNIXを目覚めさせる第一歩として、パッケージ管理システムであるMacPortsの基本的な使い方を解説します。
そして、遂に今年、Windows10でBashが使えるようになりました!シェルスクリプトマガジンとしてはこのニュースを見逃すわけにはいきません。連載「POSIX原理主義」では、Bash on Windows上のシェルスクリプトによって拡がるWindowsの可能性について検討していきます。
ぜひお見逃しなく。

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門

投稿日:2016.07.26 | カテゴリー: 推薦図書

本書ではUNIXのシェルスクリプトを用いて、Webサイトを作成して、Twitterにツイートしたりログを集計したり、WordPressからデータを抜き取ったりするなど、実用的なアプリケーションを短時間に開発する手法を解説します。
PCやOS、サーバ等の設定や、Open usp Tukubaiコマンドのインストール方法なども詳しく書かれ、非常に実践的な内容です。
※本書は、2014年7月にアスキー・メディアワークス(現KADOKAWA)より出版されたものです。

目次

第1章 はじめに

1.1 経緯と対応、起こった問題
1.2 シェルスクリプトで解決を図る
1.3 本書のねらい
1.4 対象となる読者・レベル
1.5 本書の背景・周辺
1.6 補足
1.7 本書の構成

第2章 環境の準備

2.1 構成の概要
2.2 使うマシン(環境)選びと環境の設定
2.3 通信の諸設定
2.4 ドメインの取得・ホスト名の設定
2.5 コマンドまわりの整備
2.6 補足

第3章 文章管理の仕組みを作る

3.1 データの整理の前に頭を整理する
3.2 データ構造を作る
3.3 便利コマンドを作る・使う(その1)
3.4 便利コマンドを作る・使う(その2)
3.5 補足

第4章 ウェブサイトを作る

4.1 Apacheを設定してCGIシェルスクリプトを動かす
4.2 記事の表示
4.3 ログを記録する
4.4 記事の選択機能をつける
4.5 パスを書き換える
4.6 前後の日記記事に移動できるようにする
4.7 記事の属性を埋め込む
4.8 体裁を整える
4.9 ナビゲーション機能を強化する
4.10 プレビュー機能をつける
4.11 処理時間を計測してみましょう
4.12 補足

第5章 ウェブサイトを外部とつなぐ

5.1 タイトルに記事名を入れる
5.2 RSSを作成する
5.3 ソーシャルボタン・広告を表示する
5.4 シェルスクリプトでTwitterに記事のタイトルとURLをツイート

第6章 シェル芸でログの集計

6.1 logrotateの設定
6.2 ログを眺める
6.3 日付の変換
6.4 主要な指標を端末で取得
6.5 もっと凝った出力を作る
6.6 補足

第7章 おわりに

付録A WordPress(MySQL)からデータを抜き取る

A.1 mysqlコマンドを使う
A.2 SQLではなくてシェルスクリプトでデータを整理
A.3 画像等を記事ディレクトリに放り込む
A.4 htmlファイルのリンクを修正
A.5 カテゴリを抜き出す
A.6 記事ディレクトリに時刻を入れる
A.7 アップロードと確認

プログラミング言語AWK

投稿日:2016.07.26 | カテゴリー: 推薦図書

1989年に初めての邦訳が刊行され、その後何回か絶版の憂き目にあいつつも、不死鳥のごとく蘇り、様々な出版社から復刊を果たしている「プログラミング言語AWK」。この度、awkファンの熱い声に支えられ、USP出版から3回目の復刊を果たします。
テキスト処理と演算に絶大な効果を発揮する「awk」は、開発当時の1970年代から、開発者たちによって「30年後に真価がわかるだろう」と予言されていたといいます。
本書は、テキスト処理スクリプト言語の原点「awk」開発者たちによる、多種多様な例題を収録した読み応えたっぷりの解説書です。この本でしか味わえない、原著の奥深さを味わってください。

目次

第1章 AWK入門

 1-1 手はじめに

  AWKプログラムの構造
  AWKプログラムの実行
  エラー

 1-2 単純な出力

  全部の行の印字
  特定の欄の印字
  欄の数のNF
  計算と印字
  行番号の印字
  文章の出力

 1-3 凝った出力

  欄の模様がえ
  出力の整列

 1-4 選択

  比較による選択
  計算による選択
  文の中身による選択
  パターンの組み合わせ
  データの検証
  BEGINとEND

 1-5 AWKによる計算

  数え上げ
  和と平均の計算
  文章の操作
  文字列の隣接
  最後の入力行の印字
  組み込み関数
  行数,単語数,文字数の数え上げ

 1-6 制御文

  If-Else文
  While文
  For文

 1-7 配列

 1-8 便利な「一行野郎」たち

 1-9 お次は何?

 

第2章 AWK言語

  入力ファイルcontries
  プログラムの書式

 2-1 パターン

  BEGINとEND
  パターンとしての式
  文字列照合パターン
  正規表現
  複合パターン
  範囲を示すパターン
  パターンのまとめ

 2-2 アクション

  式
  制御文
  空文
  配列

 2-3 ユーザ定義関数

 2-4 出力

  print文
  出力区切子
  printf文
  ファイルへの出力
  パイプへの出力
  ファイルとパイプの閉鎖

 2-5 入力

  入力区切子
  副行レコード
  getline関数
  コマンド行での変数への代入
  コマンド行引数

 2-6 他のプログラムとの組み合わせ

  system関数
  AWKプログラムをシェル・コマンドに

 2-7 まとめ

 

第3章 データ処理

 3-1 データ変換と導出

  コラムの和
  百分率と分位の計算
  コンマつきの数
  固定欄入力
  プログラムの相互参照検査
  書式付出力

 3-2 データの検証

  対応の取れた区切り子
  パスワード・ファイルの検査
  データ検証プログラムの生成
  どっち版のAWK?

 3-3 BUndleとunbndle

 3-4 複行レコード

  空行で区切られたレコード
  複行レコードの処理
  ヘッダとトレイラつきのレコード
  名前と値からなるデータ

 3-5 まとめ

 

第4章 レポートとデータベース

 4-1 レコードの生成

  単純なレポート
  もう少し複雑なレポート

 4-2 パッケージ化された質問とレポート

  定型書簡

 4-3 関係データベース・システム

  自然和
  relfile
  AWKもどきの問い合わせ言語q
  qからawkへの翻訳プログラムqawk

 4-4 まとめ

 

第5章 語句処理

 5-1 文章の無作為生成

  無作為選択
  決まり文句の生成
  乱れ文

 5-2 対話的文章操作

  能力テスト:算数
  能力テスト:クイズ

 5-3 文章処理

  単語の数え上げ
  文書整形
  相互参照の一貫性保持
  KWIC検索の生成
  索引の生成

 5-5 まとめ

 

第6章 小さな言語

 6-1 アセンブラとインタープリタ

 6-2 グラフ生成言語

 6-3 整列生成プログラム

 6-4 逆ポーランド電卓

 6-5 普通の電卓

 6-7 まとめ

 

第7章 アルゴリズムの実験

 7-1 整列

  挿入法
  分割法
  整列2分木法

 7-2 輪郭分析

 7-3 位相整列

  広さ優先の位相整列
  深さ優先の探索
  深さ優先の位相整列

 7-4 Make:ファイル更新プログラム

 7-5 まとめ

 

第8章 エピローグ

 8-1 言語としてのAWK

 8-2 効率

 8-3 結論

 

付録A AWKのまとめ

 

付録B 演習問題回答

伽藍とバザール

投稿日:2016.07.26 | カテゴリー: 推薦図書

Linux、オープンソース(OSS)関係者必読の書。OSSソフトウェア開発の実態と、そのコミュニティ、そしてハッカーたちの価値観を、オープンソースのエバンジェリスト、ESRことエリック・スティーブン・レイモンドが可視化する。
なぜハッカーたちは無償でソフトウェア開発に携わるのか? Linuxが成功した理由とは? OSSの所有権とは? OSSとコミュニティを理解するために避けて通ることができない一冊です。
※本書は1999年に出版されたものを、USP出版より再出版したものです。

目次

第1章 伽藍とバザール

 1 伽藍方式とバザール方式
 2 なにはともあれメールは通せ
 3 ユーザは大事な財産
 4 はやめのリリース、しょっちゅうリリース
 5 バラがバラでないのは?
 6 Popclient からFetchmail へ
 7 Fetchmail の成長
 8 続・Fetchmail の教訓
 9 バザール方式の前提条件とは
 10 フリーソフト/オープンソースの社会的な意義
 11 マネジメントとマジノ線について
 12 謝辞
 13 もっと考えたい人のための文献リスト
 14 エピローグ:Netscape もバザール方式を受け入れる
 15 原注
 

第2章 ノウアスフィアの開墾

 1 そもそもの矛盾
 2 ハッカーイデオロギーのさまざま
 3 放縦な理論と純潔な実践
 4 所有権とオープンソース
 5 ロックと土地所有権
 6 贈与経済としてのハッカー文化
 7 ハッキングのよろこび
 8 評判のさまざまな相貌
 9 所有権と評判によるインセンティブ
 10 エゴの問題
 11 謙虚さの美徳
 12 評判ゲームモデルが持つ分野全体としての意義
 13 どれほどすばらしい贈り物?
 14 ノウアスフィア的所有権となわばりの動物行動学
 15 紛争の原因
 16 プロジェクト構造と所有権
 17 紛争とその解決
 18 文化への順応過程とアカデミズムとの関連
 19 結論:慣習から慣習法へ
 20 これからの研究の課題
 21 原注、書誌
 22 謝辞
 

第3章 魔法のおなべ

 1 魔法と区別がつかない
 2 贈与するおたくたちを超えて
 3 製造業的な誤解
 4 「情報はフリーになりたがっている」というのはウソだ。
 5 逆転した共有地
 6 ソース非公開にする理由
 7 利用価値による開発費用手当
 8 販売価値の困るところ
 9 間接販売価値モデル
 10 オープンにするとき、クローズドにするとき
 11 オープンソースのビジネス生態学
 12 成功に対処する
 13 オープンR&D とパトロン制の再発明
 14 目標到達までの道のり
 15 結論:革命のあとの人生
 16 謝辞
 17 補遺:なぜドライバをクローズドにするとベンダーは損をするのか
 

第4章 エリック・S・レイモンド大いに語る

 

第5章 ノウアスフィアはぼくたちの開墾を待っている

 

第6章 訳者あとがき

覚えて便利 いますぐ使える! シェルスクリプトシンプルレシピ54

投稿日:2016.07.26 | カテゴリー: 推薦図書

シェルスクリプトを習得するにあたって、越えなければならないいくつかの壁があります。
本書は、変数、数値、文字列、ファイル操作…様々な局面において壁にぶつかったとき、それを乗り越えるための本質的な回答を54本収録したレシピ集です。
本書には、初心者を卒業し、シェルスクリプトの匠を目指す人であれば学んでおきたいノウハウが、薄い本の中にこれでもか!と詰まっています。
収録されている54のレシピを習得すれば、シェルスクリプトの世界がそれを足がかりに広がっていくことを感じられるはずです。
シェルの深みを知り、より高みを目指したいあなたにこそ、手にとっていただきたい一冊です。

目次

第1章 基本的な作業

レシピ1-1 C言語のようなforループ
レシピ1-2 C言語のようなforループ―その2―(ムダ知識編)
レシピ1-3 誤作動しない正しい文字列評価のしかた
レシピ1-4 対話的な入力受けつけ
レシピ1-5 標準エラー出力を使うプログラムの扱い
レシピ1-6 標準エラー出力を自ら使う

第2章 変数操作

レシピ2-1 変数名の記述ミスへの対策
レシピ2-2 変数を未定義化する
レシピ2-3 変数が未定義かどうか判別する
レシピ2-4 子プロセスへの変数渡し
レシピ2-5 親プロセスへの変数渡し
レシピ2-6 配列変数を使う
レシピ2-7 連想配列を使う

第3章 数値操作

レシピ3-1 Basic並の高度な計算をする
レシピ3-2 四捨五入する
レシピ3-3 乱数を得る
レシピ3-4 10進数⇔16進数および10進数⇔8進数変換
レシピ3-5 10進数⇔2進数変換
レシピ3-6 数字として扱える文字列かどうかの判定

第4章 文字列操作

レシピ4-1 文字列の長さを知る(len)
レシピ4-2 文字列の一部を抽出する(left$,mid$,right$)
レシピ4-3 大文字⇔小文字変換
レシピ4-4 ASCIIコード⇔キャラクタ変換(asc,chr$)
レシピ4-5 正規表現でマッチした文字列の取り出し
レシピ4-6 特定文字のトリミング
レシピ4-7 パス名中のファイル名・ディレクトリ名を抽出する
レシピ4-8 ランダムな文字列の作成

第5章 フィールド・ライン処理

レシピ5-1 コマンド引数を処理する
レシピ5-2 最後からn番目のフィールドを得る
レシピ5-3 特定の業を出力する
レシピ5-4 1行ごとに処理をする―その1―
レシピ5-5 1行ごとに処理をする―その2~4―
レシピ5-6 並べ替え(ソート)をする
レシピ5-7 CSV形式のデータの処理
レシピ5-8 1列ごとに処理をする

第6章 ファイル操作

レシピ6-1 詳細なファイル情報を知る
レシピ6-2 タイムスタンプを変更する
レシピ6-3 指定ディレクトリ以下のファイルの総サイズを知る
レシピ6-4 指定ディレクトリ以下の特定のファイルを操作する
レシピ6-5 安全にテンポラリファイルを作る
レシピ6-6 デッドリンク(無効なシンボリックリンク)を消す
レシピ6-7 外部ファイルのヒアドキュメント

第7章 システム情報収集

レシピ7-1 OSの種類を知る
レシピ7-2 自分のファイルパスを知る
レシピ7-3 自分のプロセスIDを知る
レシピ7-4 現在のプロセス数を知る
レシピ7-5 自ホストのIPアドレスを知る
レシピ7-6 絶対パスを知る
レシピ7-7 多重起動チェック

第8章 デバッグに役立つレシピ

レシピ8-1 実行の様子をトレースする
レシピ8-2 デバッグメッセージを分離する
レシピ8-3 パイプ(標準入出力)の中身を覗き見る
レシピ8-4 パイプ(標準入出力)をゆっくり流す

第9章 シェルスクリプトの応用例

実践ユニケージ開発手法02 シェルスクリプト学習編

投稿日:2016.07.26 | カテゴリー: 推薦図書

本書は、独特な方法でシステムを構築するユニケージ開発手法の基本を理解し、習得するための実践教材です。
対象となる読者は、基本的なUNIX/Linux の知識(端末、コマンド、ファイルの概念、パスなど)があること、 また、「ユニケージ開発手法01 コマンド学習編」の内容を理解している方です。
ここでは、「コマンド学習編」で学んだコマンドを組み合わせて、データ処理を行うシェルスクリプトの作成に必要なbashの文法や機能について学習し、ユニケージの作法にしたがってシェルスクリプトでプログラミングを行う練習も行います。

目次

第1章 はじめに

1.1 通常のプログラミングとの違い

第2章 シェルスクリプト

2.1 シェルスクリプトの書き方と役割
2.2 ちょっとしたルール

第3章 ファイル展開(ワイルドカード)

第4章 ブレース展開

第5章 リダイレクト

5.1 ファイル記述子
5.2 記号

第6章 追記・ヒアドキュメント

第7章 パイプ(パイプライン)の動作

第8章 シェル変数

8.1 定義と代入
8.2 変数の生存期間
8.3 予約シェル変数・特殊なシェル変数
8.4 配列
8.5 コマンド置換

第9章 クォートとエスケープ

第10章 終了ステータスとパイプステータス

第11章 AND演算子とOR演算子

第12章 テストコマンド(test, [)

12.1 テストコマンドの書式
12.2 テストコマンドの機能
12.3 PIPESTATUSとエラー処理

第13章 制御構文

13.1 if文
13.2 for文
13.3 while文
13.4 case文
13.5 パイプでつなげたwhile文、for文は要注意!

第14章 帳票出力(ITEMRANKING)

14.1 ディレクトリとデータ準備
14.2 データを見る
14.3 出力のイメージ
14.4 シェルスクリプトの記述
14.5 引数の受け入れ
14.6 項目間演算

第15章 POMPAの作成(POMPASAKUSEI)

15.1 想定するアプリケーション
15.2 データ
15.3 URIAGE_TENPO
15.4 URIAGE_HINBETU
15.5 【TRY】

第16章 時系列データの帳票(BUMONTREND)

16.1 記述
16.2 解答例

第17章 履歴マスタの扱い

17.1 販売履歴(HANBAI_RIREKI)
17.2 実装

Vol.40

投稿日:2016.07.22 | カテゴリー: バックナンバー

今月号の特集では、シェルスクリプトでログを高速処理します。ログというと、Webサーバーのアクセスログ、Syslog、イベントログなど多岐に渡りますが、データ量が膨大だと処理に時間がかかりすぎるという問題があります。それを解決したのが「Tukubai」を用いたユニケージ開発手法です。筆者の実体験をもとに、解析時間が千分の一になった全貌をご紹介します。
巻末資料(6ページ)には、「シェルスクリプトで高速処理! Personal Tukubaiでログを分析しよう! 」「漢のUNIX」「Personal Tukubaiを使ってみた」の3記事で登場した、Tukubaiコマンドの解説集を収録。
ぜひお見逃しなく。

Vol.39

投稿日:2016.06.16 | カテゴリー: バックナンバー

毎月25日発売『シェルスクリプトマガジン』は、日本で唯一のシェルスクリプト総合誌。
最新号 7月号(vol.39)の特集は、「コマンドを作りながら覚えるAWK入門」。日本GNU AWKユーザー会の斉藤氏から、AWKの練習方法を解説していただきます。UNIX系OSに搭載されているコマンド群を、AWKの「一行野郎」で実装していくことで、その習得を目指します。
新連載「Personal Tukubaiを使ってみた 前編」では、USP研究所の独自コマンド「mojihamaコマンド」を使ってお手軽メタプログラミングに挑戦。シェルスクリプトで高速処理が可能になる実例を紹介します。
また、5周年を迎えたエンジニアたちのトークライブ「TechLION vol.25」再録版を収録! IT/Web業界が幸せになるには何が必要なのか、コミュニティ運営・若手育成・キャリア・電子書籍について4人の猛者が登壇しました。残念ながら当日足を運べなかった方は、ぜひお見逃しなく!

Vol.38

投稿日:2016.06.16 | カテゴリー: バックナンバー

今月の特集は、新連載「機械学習で石川啄木を蘇らせる」。
『一握の砂』で有名な石川啄木。彼の作品には「未完の短歌」があるのをご存知でしょうか?たった31音を読み切らずに途中で筆を擱いてしまった末句の生成 に、機械学習で挑戦します。著者は東京大学の学生さんです。機械学習の手法だけでなく、本文の端々に現れる石川啄木を愛する言葉にも注目です!
他、新連載「ConoHaでIP電話を使ってみよう!」がスタート!御影けい氏が、IP電話の交換器(IP-PBX)をConoHa上の仮想サーバ (VPS)に構築し、簡単な自動応答システム(IVR)を作れるように解説。また、香川大学の学生さんが執筆する「SLPからお届け!」では、Swift でiOSゲームアプリ開発に挑戦します!

Vol.37

投稿日:2016.05.23 | カテゴリー: バックナンバー

巻頭は、「Angular2でHello world !」。
JavaScript フレームワークAngular2 を利用してモダンウェブアプリケーションを作成します。前半では開発環境を設定し、後半では「Hello World」的なとても簡単なアプリケーションを作っていきます。「シェルスクリプトマガジン」の読者にはあまり馴染みのないテーマかもしれません。
しかし、アプリケーション開発はシェルスクリプトのみで行うにはどうしても限界があります。むしろ、
違う言語とシェルスクリプトが共存する新たな事例が出るヒントになれば幸いです。
また、特集はUSP研究所より Personal Tukubai について取り上げています。弊所がシステム開発で使っている独自コマンド usp Tukubai と、同等の機能を持つ Personal Tukubai はどんなことができるのか、インターン生が企画部長にインタビュー。また、「ユニケージ開発手法コードレビュー」では、プロトタイプや POC を行う際に本番データを用意できないとき、本番と同等量のダミーデータを作成する方法について解説します。
他、人気連載「漢のUNIX」では、後藤氏がfishのプロンプトをカスタマイズする方法を紹介。

シェルプログラミング実用テクニック

投稿日:2016.04.19 | カテゴリー: 推薦図書

Linux/UNIXのコマンドは単独で使うよりも、複数のコマンドを組み合わせてこそ真価を発揮します。テキストデータの検索/置換/並べ替え、ファイルのバックアップや削除、数値や日付の計算など活用範囲は無限大。端末にコマンドを入力してすぐに実行できるのも良いところ。その場かぎりの作業にこそ、シェルプログラミングが使えると便利です。
本書のいくつもの実例を順に見ていけば、コマンドを自在に組み合わせるために必要なシェルの機能と考え方が身につきます。
※本書はSoftwareDesign誌(技術評論社刊)の連載記事「開眼シェルスクリプト」を大幅に加筆修正し、同社から発行されたものです。

目次

第1章 準備運動

1.1 UNIXとは何者なのか?

1.1.1 McIlroyによるパイプの提案
1.1.2 grep,sedの誕生
1.1.3 「ソフトウェアツール」という言葉の誕生
1.1.4 考えられた「もう1つの選択肢」
1.1.5 GancarzのUNIX哲学

1.2 OSや環境について

1.2.1 想定する利用シーン
1.2.2 Ubuntu 14.04 LTS

1.3 基本操作

1.3.1 端末とシェルを開く
1.3.2 シェルにコマンドを入力する
1.3.3 manを使う
1.3.4 ファイルやコマンドの出力を眺める
1.3.5 ディレクトリを理解する
1.3.6 ディレクトリを移動する
1.3.7 ワイルドカードで一度に複数ファイルを指定する
1.3.8 パイプでコマンドをつなぐ
1.3.9 シェルスクリプトを書いて実行する
1.3.10 ファイルを読み書きする
1.3.11 出力を捨てる
1.3.12 日本語と英語を切り替える(ロケール)
1.3.13 パーミッションを理解する
1.3.14 制御構文を使う
1.3.15 その他の文法

1.4 AWKとsed

1.4.1 AWKを使う
1.4.2 sedを使う

1.5 使用するコマンドのインストール

1.5.1 GNU Awkの確認/インストール
1.5.2 Open usp Tukubaiのインストール

1.6 本書におけるPOSIXに対する立場

第2章 不定型な文章や設定ファイルの検索と加工

2.1 テキストの検索

2.1.1 文字列を検索する
2.1.2 複数のファイルから検索する
2.1.3 調査したいファイル一覧を作ってから検索する
2.1.4 ファイル名を検索する
2.1.5 検索対象の前後の行を抽出する
2.1.6 検索語句を含むファイルのリストを作る

2.2 単語や文字の数え上げ

2.2.1 文字数を数える
2.2.2 単語や語句を数える
2.2.3 文字の出現頻度を数える
2.2.4 斉藤さんの数を数える

2.3 テキストの比較

2.3.1 2つのテキストファイルを比較する
2.3.2 ディレクトリのファイルを比較する
2.3.3 ファイルが同じだったら/違ったら××する

2.4 文章の校正

2.4.1 特定の語句を置き換える
2.4.2 複数のファイルで特定の語句を置き換える
2.4.3 表記揺れや記号の不統一をチェックする
2.4.4 スペルチェックを行う
2.4.5 変なバイナリが混入していないか調査する
2.4.6 長い行を折り返す
2.4.7 不必要なマークアップ/コメント/スペースを消す
2.4.8 マークアップ/スペースをあとから差し込む
2.4.9 特定のフォーマットにデータを流し込む

2.5 その他テキストを扱うときの小技

2.5.1 Vimでコマンドを使う
2.5.2 カタカナや数字の全角/半角を相互変換する

第3章 ファイルの取り扱いとシステムの操作

3.1 バックアップ/同期

3.1.1 ディレクトリをバックアップする
3.1.2 2つのディレクトリを同期する
3.1.3 最新ファイルを古いファイルで上書きしないように同期を行う

3.2 圧縮されたファイルの操作

3.2.1 gzip圧縮されたファイルを圧縮されたまま使う
3.2.2 アーカイブの中から特定のファイルだけを抜き出す

3.3 ファイルの整理

3.3.1 重複したファイルを消す
3.3.2 ディレクトリの古いファイルを整理する
3.3.3 複数のテキストファイルを圧縮しないで1つにまとめる

3.4 ファイルの暗号化

3.4.1 ファイルを公開鍵暗号方式で暗号化する
3.4.2 パスワード方式の暗号化を行う/破る

3.5 自動化

3.5.1 プログラムを定期的に自動実行する
3.5.2 ファイルが変更されたらアクションを起こす
3.5.3 service(1)で自作のプログラムを起動/停止する
3.5.4 OS起動時に自作のプログラムを走らせる

3.6 ログからの情報抽出と活用

3.6.1 検索する
3.6.2 日付を正規化する
3.6.3 Apacheのログ(不定長データ)をスペース区切りに整形する
3.6.4 データをキーバリュー形式に整形する

3.7 プロセスに関する注意点

3.7.1 多数のプロセスから1つのファイルにレコードを書き込む
3.7.2 制御構文が動作するプロセスについて

第4章 ファイルシステムをデータベースにする

4.1 データの置き方

4.1.1 RDBで言うところのテーブルを作る
4.1.2 テキスト以外のデータの置き方を決める
4.1.3 データに対するテストを書く

4.2 データの連結や集計

4.2.1 マスタとトランザクションを結合する
4.2.2 集計する

4.3 データの更新

4.3.1 レコードを手動/半自動で追加する
4.3.2 レコードを自動で追加する(排他処理を行う)
4.3.3 レコードを変更する

4.4 データの印刷/アウトプット

4.4.1 住所録を印刷用にフォーマットする
4.4.2 バーコード/QRコードを印刷する

4.5 補足

4.5.1 ダミーデータを作る
4.5.2 別のデータの持ち方を検討する

第5章 大きなデータを処理する

5.1 マシンスペックの調査

5.1.1 CPUの周波数や個数などを調査する
5.1.2 DRAMの量と読み書きの速度を調査する
5.1.3 HDDの容量と読み込み速度,その他の情報を調査する

5.2 マルチスレッド/マルチプロセス

5.2.1 sortを使いこなす
5.2.2 パイプで並列計算する
5.2.3 バックグラウンド処理で並列化する
5.2.4 xargsで並列化する

5.3 計算の効率化

5.3.1 GNU grepに仕事をさせる
5.3.2 ページキャッシュを有効利用する
5.3.3 並列処理時のページキャッシュの効果
5.3.4 圧縮してキャッシュにのせて処理する(場合によっては有効)
5.3.5 ファイルを分割しておく

第6章 画像,表計算ソフト,その他特殊なデータを扱う

6.1 バイナリの読み書き

6.1.1 バイナリを閲覧する
6.1.2 バイナリを編集する

6.2 画像処理

6.2.1 画像のデータ形式/サイズ/向きを変える
6.2.2 アニメーションGIFを作る
6.2.3 画像をテキストにして正規化する
6.2.4 画像の一部分を切り出す
6.2.5 ネガを作る
6.2.6 画像を合成する
6.2.7 画像の情報を調査する
6.2.8 SVG画像を作る

6.3 フォーマットの変換

6.3.1 CSVをパースして読み込む
6.3.2 CSVをパースしないで読み込む
6.3.3 固定長のデータをスペース区切り(SSV)にする
6.3.4 PDFファイルを端末で読む

6.4 オフィススイートとの連携

6.4.1 Excelファイルからデータを抽出する
6.4.2 Word,PowerPointのデータを抽出する
6.4.3 Excel,Word,PowerPointファイルの中を検索する
6.4.4 少しずつ違うWordファイルを大量生成する

第7章 CLI的インターネットとの付き合い方

7.1 Webサイトの活用

7.1.1 Web APIを使う
7.1.2 Webサイトを丸ごとダウンロードする

7.2 HTML文書の加工に特定の要素を抜き出す

7.2.2 マークアップの重複がないかを確認する
7.2.3 リンク切れを見つける

7.3 サーバをまたいだ処理

7.3.1 ポートを操作する
7.3.2 鍵認証でsshを使う
7.3.3 ログインせずにリモートのコンピュータを操作する
7.3.4 リモートの計算リソースを利用する
7.3.5 sshを使わないでデータをやりとりする

7.4 電子メールの活用

7.4.1 電子メールの原本を読む
7.4.2 ファイル名から受信処理時間を抽出する
7.4.3 添付ファイルを抽出する

7.5 IPアドレスの取り扱い

7.5.1 IPv6のIPアドレスを処理する
7.5.2 IPv4のIPアドレスをソートする

第8章 計算

8.1 基本的な計算

8.1.1 端末を電卓代わりにする
8.1.2 文章の中から数字を抽出して計算する
8.1.3 「桁落ち」「丸め誤差」を気にしながら計算する
8.1.4 n進数とm進数を変換する

8.2 日付の計算

8.2.1 各月の最終日を求める
8.2.2 2つの日付の差を計算する
8.2.3 その年の第何週かを求める
8.2.4 n営業日後の日付を求める
8.2.5 西暦/和暦を変換する

8.3 科学計算

8.3.1 一様乱数を作る
8.3.2 ガウス分布に従う乱数を作る
8.3.3 数値積分を行う
8.3.4 数列を作る

8.4 実験データの処理

8.4.1 データのばらつきを評価する
8.4.2 最小二乗法でデータに直線を当てはめる
8.4.3 相関係数を求める
8.4.4 グラフを描く

付録

A.1 Upstart
A.2 Ubuntuの設定メモ
A.2.1 日本語パッケージをインストールする
A.2.2 wkhtmltopdfをインストールする
A.3 cgroupsの設定
A.4 いたずら
A.4.1 見かけよりも大きなファイルを作る(疑似デバイスを使う)
A.4.2 他人の端末に字を送り込む(デバイスファイルを使う)
A.4.3 どうでもよいファイルをダウンロードさせる(拡張子について)
A.4.4 きわどい名前のファイルやディレクトリを作る(ミスでできたファイルの二次被害防止)
A.4.5 ハト語に変換する(シグナル処理)

すべてのUNIXで20年動くプログラムはどう書くべきか

投稿日:2016.04.19 | カテゴリー: 推薦図書

プログラミング上よくある課題を、極力POSIXの範囲で、かつUNIX哲学的アプローチで解決したシェルスクリプトを多数例示し、高い可搬性・可用性を実現しつつ実用的なプログラムを書く方法を紹介しています。

下記のような内容を満載しています。

環境に依存せず、長持ちするプログラムの書き方(環境依存を引き起こす落とし穴)
環境に依存しない正規表現の書き方
シェルスクリプトで処理を行うための、たくさんの小技(レシピ)
シェルスクリプトは意外に速くて機能も豊富という事実
プログラム制作で参考になるUNIX哲学

※本書は同人誌として発行されたものを、再編集してC&R研究所より出版されたものです。

目次

序章 POSIX原理主義:その本質と可能性、実践方法を理解する

第1章 どの環境でも使えるシェルスクリプトを書く …… 文法・変数編

1-1 環境変数などの初期化
1-2 シェル変数
1-3 スコープ
1-4 正規表現
1-5 文字クラス
1-6 乱数
1-7 ロケール
1-8 $(( 式 ))
1-9 case文/if 文
1-10 local修飾子
1-11 PIPESTATUS変数

第2章 どの環境でも使えるシェルスクリプトを書く …… 正規表現編

2-1 知っておくべきメタ文字セットは3つ
2-2 BRE(基本正規表現)メタ文字セット
2-3 ERE(拡張正規表現)メタ文字セット
2-4 AWKで使えるメタ文字セット

第3章 どの環境でも使えるシェルスクリプトを書く …… コマンド編

3-1 「[」コマンド
3-2 AWKコマンド
3-3 dateコマンド
3-4 duコマンド
3-5 echoコマンド
3-6 execコマンド
3-7 foldコマンド
3-8 grepコマンド
3-9 headコマンド
3-10 ifconfigコマンド
3-11 killコマンド
3-12 mktempコマンド
3-13 nlコマンド
3-14 printfコマンド
3-15 psコマンド
3-16 readlinkコマンド
3-17 sedコマンド
3-18 sortコマンド
3-19 tacコマンド/tailコマンド+ -rオプションによる逆順出力
3-20 test([)コマンド
3-21 trコマンド
3-22 trapコマンド
3-23 whichコマンド
3-24 xargsコマンド
3-25 zcatコマンド

第4章 Hors d’oeuvre:ちょっとうれしいレシピ

4-1 sedによる改行文字への置換を、キレイに書く
4-2 grepに対するfgrepのような素直なsed
4-3 mkfifoコマンドの活用
4-4 一時ファイルを作らずファイルを更新する
4-5 テキストデータの最後の行を消す
4-6 改行なしの終端テキストを扱う
4-7 IPアドレスを調べる(IPv6も)
4-8 YYYYMMDDhhmmssを年月日時分秒に簡単分離する
4-9 祝日を取得する
4-10 ブラックリスト入りした100件を1万件の名簿から除去する

第5章 POSIX原理主義テクニック

5-1 PIPESTATUSさようなら
5-2 Apacheのcombined形式ログを扱いやすくする
5-3 シェルスクリプトで時間計算を一人前にこなす
5-4 findコマンドで秒単位にタイムスタンプ比較する
5-5 CSVファイルを読み込む
5-6 JSONファイルを読み込む
5-7 XML、HTMLファイルを読み込む
5-8 全角・半角文字の相互変換
5-9 ひらがな・カタカナの相互変換
5-10 バイナリデータを扱う
5-11 ロック(排他・共有)とセマフォ
5-12 デバッグってどうやってるの?

第6章 POSIX原理主義テクニック …… Web編

6-1 URLデコードする
6-2 URLエンコードする
6-3 Base64エンコード・デコードする
6-4 CGI変数の取得(GETメソッド編)
6-5 CGI変数の取得(POSTメソッド編)
6-6 Webブラウザーからのファイルアップロード
6-7 Ajaxで画面更新したい
6-8 シェルスクリプトでメール送信
6-9 メールマガジンを送る
6-10 HTMLテーブルを簡単キレイに生成する
6-11 シェルスクリプトおばさんの手づくりCookie(読み取り編)
6-12 シェルスクリプトおばさんの手づくりCookie(書き込み編)
6-13 シェルスクリプトによるHTTPセッション管理

第7章 知らないとハマるさまざまな落とし穴

7-1 名前付きパイプからリダイレクトするときの落とし穴
7-2 全角文字に対する正規表現の扱い
7-3 sortコマンドの基本と応用と落とし穴
7-4 sedのNコマンドの動きが何かおかしい
7-5 標準入力以外からAWKに正しく文字列を渡す
7-6 AWKの連想配列が読み込むだけで変わる落とし穴
7-7 whlie readで文字列が正しく渡せない
7-8 あなたはいくつ問題点を見つけられるか?

付録 レシピを駆使した調理例

郵便番号から住所欄を満たすアレをシェルスクリプトで

実践ユニケージ開発手法01 コマンド学習編

投稿日:2016.04.19 | カテゴリー: 推薦図書

本書は、独特な方法でシステムを構築するユニケージ開発手法の基本を理解し、習得するための実践教材です。

対象となる読者は、基本的なUNIX/Linux の知識(端末、コマンド、ファイルの概念、パス、標準入出力、リダイレクションなど)がある方です。

ここでは、ユニケージ開発手法において使用頻度の高いコマンドの使い方、とくに、高速なテキスト検索ができるgrep コマンド、テキスト置換ができるsed コマンド、高度なテキスト処理ができるawk コマンドをはじめとした基本的なUNIX コマンド、usp Tukubai コマンド(ユニケージコマンド)について詳しく解説します。豊富な練習問題で効果的にコマンド操作を体得できます。

目次

第1章 はじめに

1.1 コマンドの機能と役割
1.2 凡例

第2章 AWK

2.1 AWKとは何か
2.2 手を動かす
2.3 フィールド・レコード/パターン・アクション
2.4 レコードの選択
2.5 文字列の出力
2.6 演算
2.7 三項演算子
2.8 変数
2.9 BEGINパターン、ENDパターン
2.10 便利な関数
2.11 AWKの制御文

第3章 sort, msort*, uniq

3.1 sort
3.2 msort
3.3 uniq

第4章 head, tail, ctail*, gyo, retu*

4.1 head・tail
4.2 ctail
4.3 gyo
4.4 retu

第5章 self*, delf*

5.1 フィールド形式とキー
5.2 selfによるフィールドの並び替え
5.3 delfによる

第6章 sm2*, sm4*, sm5*

6.1 sm2
6.2 sm4
6.3 sm5

第7章 ysum*, kasan*, ratio*

7.1 ysum
7.2 kasan
7.3 ratio

第8章 join0*, join1*, join2*, loopj*

8.1 マスタとトランザクション
8.2 join0
8.3 join1
8.4 join2
8.5 loopj

第9章 getfirst*, getlast*, up3*

9.1 getfirst, getlast
9.2 up3

第10章 tarr*, yarr*

10.1 基本的な使い方
10.2 応用

第11章 count*, juni*

11.1 count
11.2 juni

第12章 map*, tateyoko*

12.1 フィールド形式ファイルのxy展開
12.2 より複雑な展開

第13章 marume*, divsen*, comma*, keta*

13.1 marume
13.2 divsen
13.3 comma
13.4 keta

第14章 grepと正規表現

14.1 grep
14.2 正規表現

第15章 tr, sed, calsed*, fsed*

15.1 tr
15.2 sed
15.3 calsed
15.4 fsed

第16章 han*, zen*

第17章 mojihame*

第18章 keycut*

第19章 その他コマンド

19.1 mdate
19.2 dayslash
19.3 lcalc
19.4 nkf, iconv
19.5 tagシリーズ

Vol.36

投稿日:2016.04.11 | カテゴリー: バックナンバー

毎月25日発売『シェルスクリプトマガジン』は、日本で唯一のシェルスクリプト総合誌。
最新号 2016 年4月号(vol.36)の特集は、「Mac OS XでUNIXを使い倒す!」。
Mac OS はバージョン10になってDarwinというUNIXがベースになったのをご存知ですか?
Mac OS Xを使っているけど、UNIXの部分をあまり使いこなせていない、UNIX自体よく知らないでMac OS Xを使っている。そんなMacユーザーの方へ、新しい発見がありますように!
その他、熊野氏の「未来に活きる!現場で使える!データモデリング」ではイベントの流れから業務を読み解くポイントを解説!すずきひろのぶ氏の「スズラボ通信」では、クラウド体温計を使ってIoT的なものづくりをします!
どうぞ、お見逃しなく!

Vol.35

投稿日:2016.04.11 | カテゴリー: バックナンバー

毎月25日発売『シェルスクリプトマガジン』は、日本で唯一のシェルスクリプト総合誌。
最新号 2016 March(vol.35)の特集は、「シェルスクリプトでTwitterを制す!」。 Twitter上のつぶやきや位置情報などのビックデータから、情報を整理・分析して、ドラマを掘り出してみます!つぶやきからどのような人間の行動予測が読み取れるのでしょうか?昨年12月のコミケツイートから、ジブリ作品「天空の城ラピュタ」のアノつぶやきまで、シェルスクリプトで収集します!
その他、「香川大学 SLPからお届け!」ではReactを使ってネイティブアプリ開発に挑戦!しょっさんの「40歳から始める、オレとRubyプログラミング」では、開発には欠かせないオブジェクト指向をわかりやすく解説!
今月号も、お見逃しなく!

Vol.34

投稿日:2016.04.11 | カテゴリー: バックナンバー

毎月25日発売『シェルスクリプトマガジン』は、日本で唯一のシェルスクリプト総合誌。

最新号 2016 February(vol.34)の巻頭は「技術者哲学」です。はやぶさプロジェクトに携わった、UNIX大好き人間の 寺薗淳也 先生をクローズアップ!ばりばり の技術者が広報として、はやぶさプロジェクトに関わり、先進的なコンピュータ教育で有名な会津大学で、どのようなことを教えているのか。UNIXの出会いから、読者へのメッセージまで、8ページにわたって詳しくお話していただきます。

その他、人気連載、波田野さんの「IPv6新時代を体感しよう!」が最終回!共感覚ってなんだろう?いつも奥の深い「人間とコンピュータの可能性」、現場目線のアツい連載「中小企業手作りIT化奮戦記」も収録!お見逃しなく!

Vol.33

投稿日:2016.04.11 | カテゴリー: バックナンバー

『シェルスクリプトマガジン』(毎月25日発売)は日本で唯一のシェルスクリプト総合誌。
最新号 2015 January(vol.33)の巻頭特集は、「10年後の生活を支える最新IT動向」。エンジニアのトークイベントTechLIONの再録拡大版をお届けしています!IT業界の中でも、IoTのエッジに携わっている猛者4名をゲストに、「10年後実現してほしいことは?」「機械学習・AIはどこまで進むのか?」等について白熱したトークが繰り広げられました!
その他、人気連載「めざせシェル女子!」「漢のUNIX」「ユニケージ開発コードレビュー」も収録!お見逃しなく!

Vol.32

投稿日:2016.04.11 | カテゴリー: バックナンバー

『シェルスクリプトマガジン』(毎月25日発売)は日本で唯一のシェルスクリプト総合誌。
最新号 2015 December(vol.32)の巻頭特集は、「慶応義塾大学名誉教授 小檜山賢二先生に訊く、技術者哲学」。60年続けてきたのは虫を撮影すること。全てコンピュータ任せでなく、必ず人間を介在させると語る小檜山先生。その理由とは?

そして新連載は、「香川大学SLPからお届け!」と題して、香川大学SLPの学生さんたちが毎号技術的な取り組みについて紹介してくれます。今月号は「イマドキ☆サーバ監視のゆくえ」です!

その他、人気連載「スズラボ通信」「40歳から始める、オレとRubyプログラミング」「ユニケージエンジニアの作法(最終回!)」なども収録!

Vol.31

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 November(vol.31)の巻頭特集は、とがったエンジニアのイベント「TechLION再録拡大版」をお届け!
今回は、関西を舞台に活躍する4名の猛者たちが登壇。優秀なエンジニアを輩出する京大マイコンクラブの逸話から、噂の社員総出ガチインターン裏話、『まに フェス』発起人からイベント開催のコツまでお聞きします!そして、ついに始まったマイナンバー、本当に怖いのは何なのか、個人情報と絡めて伝授!エンジニ アに必要なこととは……!?ぜひお見逃しなく!!

人気連載「漢のUNIX」では、ハイスピードなls(1)コマンドをつくっちゃいます!
さあ、コマンドを極めるその先へ……

Vol.30

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 October(vol.30)の巻頭新連載は「POSIX原理主義の逆襲」!!
連載一回目は、「東京五輪まで動くプログラム、書けますか?」バージョンアップやサポート打ち切りのたびに涙をのんでいた私たち…10年、20年もの間、動き続けると期待が持てるものとは?実は書き捨てられてきたあの言語の中にあった!
他にも30回目の大台に突入した大人気連載「人間とコンピュータの可能性」。「ITエンジニアのためのマーケティング入門」、漫画「めざせシェル女子!」なども収録!

Vol.29

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 September(vol.29)の巻頭新連載は「40歳から始める、オレとRubyプログラミング」!!
連載一回目は「Infrastructure as Code」という文化の紹介、インフラ管理のコード化の利点や、今回どうしてRubyを採用したのかについての説明から、実際にRubyを使うための環境の準備までを丁寧に解説。
“時代の流れにしたがって生きるのは、将来を担うエンジニアには必要不可欠です。”
他にも大人気連載「スズラボ通信」や「ユニケージ開発手法コードレビュー」「めざせシェル女子!」なども収録!

Vol.28

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 August(vol.28)はTechLION vol.21の再録記事を拡大版で収録。テコラス株式会社の伊勢幸一さんの語る、次世代データセンターのあり方とは?そして運用エンジニアをなくしていくために設立された日本MSP協会とは?第二部、第三部ではゲームをとりまくインフラ技術について、熱いトークが繰り広げられました!
白羽さんの「縁の木、育てよう」では前回に引き続きCMSコミュニケーションズの寺田さんのお話。コミュニティ活動を中心にお話を伺いました。そんな寺田さんがPlone Anbassadorとして携わっているCMS「Plone」について、アジア初開催のイベント「Plone Symposium Tokyo 2015」で聞いてきたお話も同時掲載しています。
他にも大人気連載「めざせシェル女子!」や「人間とコンピュータの可能性」「IPv6新時代を体感しよう!」なども収録!

Vol.27

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 July(vol.27)は「セキュリティ」に注目。話題のセキュコミュ勉強会CTF for GIRLSに編集部が潜入してきました!そしてShellShockとVENOMについて、スズラボ通信好評連載中のすずきひろのぶさんが解説!大事なのは脆弱性の「名前」ではなくて「評価値」。
よしおかさんのIT散歩日記は今回海を越えてアメリカへ!サンフランシスコで行われたMicrosoft社のカンファレンス「Build 2015」のお話です。
ITエンジニアのためのマーケティング入門、今回は「マーケティングって、どうやって始めるの?」というテーマ。確かにわからないかも・・・おか爺がたのしく解説してくれます。
他にも好評連載「漢のUNIX」や「縁の木、育てよう」「姐のBENTO」「Tech数独」など見所満載です!

Vol.26

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 June(vol.26)特集は「中小企業手作りIT化奮戦記 C言語のススメ」
好評連載中の菅さんの連載、「中小企業手作りIT化奮戦記」が巻頭に登場!C言語を触ったことが無い人向けに、システム管理をする上で持っておいた方がよい知識として、C言語の概略を解説していただきます。
3月24日に開催されたTechLION vol.20 の再録記事も掲載!櫻庭祐一さん、堂前清隆さん、松本直人さんの3名をお招きして、20年のITの歴史を熱く語り合っていただきました。
友の会会長 上田さんの「Haskellでやってはいかんのか?」では前回から作成しているHaskell版mojihameコマンドを完成させます。
他にも好評連載「IPv6新時代を体感しよう!」や「ユニケージ開発手法コードレビュー」「円滑コミュニケーションが世界を救う!」など見所満載です!

Vol.25

投稿日:2016.04.11 | カテゴリー: バックナンバー

最新号 2015 May(vol.25)特集は「シェルのプロが語る、make ~電車で剛!makefileを実行してみよう!~」
2月末に行われたOSCでのセミナーの再録です!二人のシェルのプロがmakeで成せる技の魅力を語ります。
そしてEjectコマンドユーザー会のあっきぃさんの「電子工作ができなくても大丈夫!CD-ROMドライブではじめるかんたんIoT」も掲載。レッツEjectコマンド工作!カーテン開けるよ!ウィーン!
5月号には詩も掲載。谷川俊太郎さんとも競演されている、現代をロックに生きる詩人、桑原滝弥さんのご寄稿。背景の絵がステキだにゃ~。
他にも好評連載!Twitterで話題沸騰中!「めざせシェル女子!~貝殻高校、パソコン部の日常~」や「ユニケージ開発手法コードレビュー」など見所満載です!

Vol.24

投稿日:2016.04.11 | カテゴリー: バックナンバー

月刊化2年目突入!!最新号 2015 April(vol.24)巻頭はなんと漫画でスタート!「めざせシェル女子!~貝殻高校、パソコン部の日常~」楽しくかわいくプログラミングを学ぼう!
もうひとつの新連載は「ITエンジニアのためのマーケティング入門」。おか爺とタケシくんが、愉快にマーケティングの面白さについて解説してくれます。
スズラボ通信の今回のテーマはシェルスクリプトでプログラミング!「作って使う俺シェルプログラム」とは…!?
他にも好評連載「Haskellでやってはいかんのか?」や「人間とコンピュータの可能性」など見所満載です!

Vol.23

投稿日:2016.04.7 | カテゴリー: バックナンバー

最新号 2015 March(vol.23)の特集は「円滑コミュニケーションが世界を救う!中小企業診断士が解説する、超実践的な会話術!」。ビジネスで使えるコミュニケーション術を、中小企業診断士の濱口さんが楽しく解説!
そして!新連載「よしおかひろたかのIT散歩日記」がスタート!ぶらぶらとお散歩しながら、色々なことをのんびりつづっていただきます。
TechLION vol.19再録記事も収録!テーマはセキュリティ大特集!昨年は本当に色々なことがありましたね・・・。
他にも好評連載「リナ女のたしなみ」や「ユニケージ開発手法コードレビュー」など見所満載です!

Vol.22

投稿日:2016.04.7 | カテゴリー: バックナンバー

『シェルスクリプトマガジン』(毎月25日発売)は日本で唯一のシェルスクリプト総合誌。
最新号 2015 February(vol.22)の特集は「北のDC探訪記!&USP友の会出張一撃勉強会レポ」。友の会の濱田さんが、さくらインターネットの石狩データセンターを取材!札幌で開催した一撃勉強会のレポートも収録。
船橋情報ビジネス専門学校の鳥居校長先生の新連載「UNIX大好き人間はどう育つ?」がスタート!UNIXの魅力についてつづっていただきます。
スズラボ通信では、プログラミング初心者へのProcessingのススメ。プログラミングで雪の結晶を降らせてみよう!
他にも好評連載「漢のUNIX」や「ユニケージ開発手法コードレビュー」など見所満載です!

Vol.21

投稿日:2016.04.7 | カテゴリー: バックナンバー

新年最初の特集は「こんなシェルスクリプト、書いちゃダメだ。」漢のUNIXでお馴染みの後藤大地さんが、ダメシェルスクリプトを斬ります!
新連載は、クラウディアさんこと戸倉彩さんのコミケ紹介記事「戸倉彩の2.5次元の世界」。冬コミ前にコミケ知識を勉強しましょう!
「TechLION再録」では、9月に開催されたvol.18を収録。「未来のライフスタイルとテクノロジー」をテーマに熱いトークが繰り広げられました。
「GNU AWK処方箋」の第4回はなんと最終回……! 従来のAWKではできなかったGNU AWKならではの拡張機能について解説します。
他にも「IT美女図鑑」や「Haskellでやってはいかんのか?」など好評連載中です!

Vol.20

投稿日:2016.04.7 | カテゴリー: バックナンバー

最新号 2014 December(Vol.20)はクリスマス全開の表紙が目印!特集は「エンジニアになりたい!新人の為のUNIX基礎講座」。
そもそもパソコンってなんなのか?いまさら聞けない基礎知識を、USPエンジニアがわかりやすく解説。

大岩先生の「人間とコンピュータの可能性」では、エンジニアの抽象化能力に着目。
菅さんの「中小企業手作りIT化奮戦記」では仮想化環境の導入でサーバの集約に挑みます。

他にも「ユニケージ開発手法 コードレビュー」や「組織文化を変える汗と涙の物語 アジャイル改善塾」など好評連載中です!

Vol.19

投稿日:2016.04.7 | カテゴリー: バックナンバー

最新号 2014 November(Vol.19)の 巻頭特集は特別対談「熟年エンジニア2人が語る 若手エンジニアに伝えたいこと」。
エンジニアにもっと幸せになってもらいたい、それには何が必要か。過去・現在・未来の視点からこれまでとこれからのITについて語っていただきました。

平さんの「リナ女のたしなみ」では、Amazon Glacierを利用した、写真のバックアップをご紹介。
そして長谷川さんの「うにっくすなやつら」がシェルスクリプトネタでゆるふわ復活!

GNU AWK処方箋第2回はレイアウトデザインを一新。たくさんのオオウミガラスと共にGNU拡張された関数を盛りだくさんの内容でご紹介いたします。
他にも「ユニケージ開発手法 コードレビュー」や「漢のUNIX」など好評連載中です!

Vol.18

投稿日:2016.04.7 | カテゴリー: バックナンバー

最新号 2014 October(Vol.18)はロゴデザインを大幅にリニューアル!「シェルスクリプト」という言葉をより強調したインパクトのあるロゴデザインになりました。
雑誌名はこれまで通り「USP MAGAZINE」で、番号も通し番号で変更ありません。

巻頭特集は「インフラエンジニアのおしごと」。
「サーバー運用お助けTips」の濱田さんが、冒頭と連載を特別執筆。キーワードは”がんばらない運用”です。
また、6月に行われた、インフラエンジニア向けのイベント、July Tech Festaのレポート記事も収録。

AWK処方箋は10月号から「GNU AWK 処方箋」としてスタート!GNU拡張で便利になった点を解説いたします。
他にも「ユニケージ開発手法 コードレビュー」や、新デザインでお届けする「Haskellでやってはいかんのか?」など好評連載中です!

Vol.17

投稿日:2016.04.7 | カテゴリー: バックナンバー

小学生達の夏休みはもうすぐおしまい。
宿題に追われていたあの頃が懐かしいなと思いきや、
えー!今どきは宿題代行業者があるんですか……
いいなぁ、納期直前開発代行業者とかないかな。

なんて冗談はさておいても、時代が進むと共に常識を覆す新しいものが次々現れますね。
本誌も新しい知見を届けられるように、今後ますます頑張ります。

Vol.16

投稿日:2016.04.7 | カテゴリー: バックナンバー

照りつける日射し!
暑い暑いといってクーラーの効いた部屋に閉じこもりがちですが、
犬はやはり散歩が好きなようで、近所の河川敷を元気に散歩していました。

いやいや、人間だってそんなことないか。夏はイベント目白押しですからね。
今年の夏はどんな計画を立てていますか?

Vol.15

投稿日:2016.04.7 | カテゴリー: バックナンバー

雷雨になれば梅雨明け間近といいますが、
今年の雷雨は嵐に雹に手厳しいですね。

ものづくりも、だいたい完成間近に大きな試練が待ち構えてるものですよね。
それを何とか乗り越えて、大きな花火を打ち上げたいものです。
ところで今月号の表紙、右下で主役を下支えするちんじゅうちゃんがいい味出してます。

Vol.14

投稿日:2016.04.7 | カテゴリー: バックナンバー

まだ過ごしやすい日和が続いてますけど
もうすぐ、梅雨が訪れてしまうんですかねぇ。

でも、そんな時こそじっくり物事に取り組むチャンスですよ。
それぞれの道を究めるプロフェッショナルの話に耳を傾け、
そして手を動かして、プログラミングに精進しようと思います。

Vol.13

投稿日:2016.04.7 | カテゴリー: バックナンバー

新装刊2号目。
5月病になる暇もなく、体当たりで作っております。(←まだ4月ですね)
徐々にペースを掴んでこなれてきたら、もっといろいろなこと仕掛けたいです。

初めは体を慣らす期間。
でも、いよいよこれから、本番が始まる季節ですね。

Vol.12

投稿日:2016.04.7 | カテゴリー: バックナンバー

for the sophisticated shell scripters
(洗練されたシェルスクリプト愛好家達へ)

そんなコンセプトで誕生したシェルスクリプト総合誌が、おかげさまで三周年。
いやぁ、よくネタが尽きずに生き延びたと我ながら感心しておりますが、なんと
今回から月刊化してしまいました! (ホントに尽きてしまわぬよう頑張ります)

今日はそんな月刊化第一号の発売日。桜の開花より一足早く(高知を除く)、
新たなUSP MAGAZINEが今日から始まります。今後ともよろしくお願いします。

もっと見る

新しい記事一覧へ戻る

  • -->