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

test

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はドラマしか見てないかも。

  • shell-mag ブログの 2017年8月 のアーカイブを表示しています。

  • -->