[3502] サバイバルするプログラマー

投稿:  著者:  読了時間:23分(本文:約11,000文字)


《n年後に必要になることはn年前から準備する必要がある》

■データ・デザインの地平[31]
 サバイバルするプログラマー
 薬師寺 聖

■クリエイター手抜きプロジェクト[359]Illustrator CS5/CS6/CC編
 ページ内にある文字をHTMLファイルとして書き出す
 古籏一浩

--PR------------------------------------------------------------------
★DTP・印刷専門のデジタルコンテンツ販売サイト「印刷の泉」
 ≫≫≫ https://www.ddc.co.jp/estore/ ≪≪≪
 ●セミナー・勉強会を撮影した動画・スライドも好評販売中!
 ●"無料"のPhotoshopアクション・Acrobat用プリフライトもあります!
 ●編集作業の味方! PDFの違いを発見してくれるソフトを販売(体験版あり)

★電子書籍 PDF フォント 素材 スクリプト 動画を販売したい方を募集中!
-----------------------------------------------------------------PR---




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■データ・デザインの地平[31]
サバイバルするプログラマー

薬師寺 聖
< http://bn.dgcr.com/archives/20130624140200.html >
───────────────────────────────────

●コンピューターに手綱を握られないために

この数年、プログラマーを取り巻く環境は大きく変わりました。コードレス化、オフショア化、短納期低予算化が進み、検索エンジン、SNS、ブログ、クラウド・アプリ、投稿システムなど、ありとあらゆるものが無償あるいは安価で提供されています。

筆者は、2006年に書いたコラムの中で、コードレス化の時代にプログラマーが口を糊するには、「ヒトにしか出来ない、1から自分の頭を使って考えてみることが、重要になる」と述べました(※1)。

また、DTPソフトの進化によってデザイナーがDTPデザイナーとDTPオペレータに分かれたように、開発ツールの進化はプログラマーの仕事を二分すると述べました(※2)。

開発テーマや新しいアルゴリズムやプログラミング技法を考案する者と、仕様に従って実装する者に分かれ、その後、内部情報(=脳内情報)から湧くイメージを形にする者はプログラマーを継続し、論理的思考で外部情報(=技術情報)を扱う者はディレクターになると述べました。

そして、ふたたびプログラマーの仕事を問う大きなハードルが、プログラマーたちの前に立ちはだかります。

それは、自律型のコンピューターとの差別化です。

いまやネット上には、多数のサンプルコードがあります。近い将来、それらをデータベースとして蓄積し、利用できる、人工知能を持つコンピューターが現れるとき、それはユーザーのもとめに応じてカスタマイズしたコードを短時間で出力し、プログラマーの地位を脅かすことになるでしょう。

そして、お掃除ロボットが自らを充電するように、コンピューターが自らを充電し、故障したパーツを3Dプリンタで自作して自らを修理するようになれば、24時間疲れ知らずのコンピューターは、ヒトからコーディングの仕事を奪っていくでしょう。

しかしながら、次の3つの仕事は、コンピューターに奪われるとは考えられません。これらは、人間らしさを要する作業です。

(1)自律型コンピューターを開発・制御するプログラミング
(2)ユーザーとビジネスパーソンにもとめられる企画立案
(3)プログラミング入門者への対面指導

※1 2006年11月刊「Visual Studio 2005 ASP.NET 2.0 Webアプリケーション プログラミング・テクニック」付録コラム「Web 2.0以降の時代を読み解くためのヒント」(Webサイトで公開。30ページ、xps形式)Windows 8では、展開後、xpsファイル上を右クリックし「プログラムから開く/xpsビューア」を選択。
< http://www.seindesign.net/xpsData/AfterWeb20.zip >

※2 日経IT Pro連載「コラボレーションから始めよう!」第2回 生き残るWebサイト構築プロジェクトの条件(2006年6月22日)
< http://itpro.nikkeibp.co.jp/article/COLUMN/20060615/240967/ >

●「しぶくて、コア」をきわめれば、仕事には困らない

コードだけで口を糊していくには。前述の(1)のスキルを持っていれば安心です。それには、ハードウェアへの理解が必須です。ウェアラブル・コンピューターや各種センサー、ゆくゆくは量子コンピューターについても知る必要があるでしょう。

えっ、プログラマーならハードウェアを熟知しているのでは? と驚く人もいるでしょう。業界外の人は少なからず誤解しているようです。

すべてのプログラマーが計算機のしくみを知っているわけでもなく、通信技術やOSに造詣が深いわけでもなく、アルゴリズムを意識しているわけでもなく、また、計算機科学を修めているわけではなく、数学ができるわけでもありません(※3)。

文系出身のプログラマーも少なくありません。外国語で文章を書くように、プログラミング言語で作文するのです。

そもそも、優れた開発ツールがあり、ネット上のリソースも充実しているのですから、カンの良い人なら、基本的な処理は書けるのです。ここでいう「カン」とは、参考になりそうなサンプルコードを素早く見つけ、どの部分を組み合わせてどこを変更すればよいか目星を付ける能力です(※4)。

「プログラムは動いてなんぼ」といいます。それは、知識偏重への戒めであり、「処理を論理的に説明できなくても、動けばそれでいい」という意味ではないのですが(※5)、なぜか誤解されているようで、カンで継ぎ接ぎするプログラマーは今後も増え続けると思われます。

筆者は、技術を広めるには「敷居は低く、壁は高く」あるべきだと考えていますが、その壁が既に低くなっているのですから。

自律型のコンピューターが機能し始めるとき、生き残るのは、コンピューターを理解して論理的思考でプログラミングできる、しぶくてコアなプログラマーたちです。

そういった人たちは、自律型コンピューターを開発・制御するためのプログラマーに移行できます。

しぶくてコアで地味な仕事作業よりも、ビジュアルの華やかな派手な作業の方が、サバイバルできそうに思われがちですが、そんなことはありません。ホンモノのエンジニアは、時代が変わっても、社会にもとめられる人材であり続けることでしょう。

そして、その中から、コンピューターには不可能なプラトン的世界へのアクセス方法を究め、数学的発見をする人も輩出されるでしょう。

※3 スキルの高いプログラマーが「数学はできなかった」というとき、その言葉を真に受けないほうがよいでしょう。それは、本人基準であって、社会基準ではないかもしれないからです。

当人の他の得意な学科に比べれば成績が振るわなかったというだけで、世の平均に比べれば良い成績だった可能性もあります。「数学はできなかった」のではなく「数学は苦手だった」のかもしれません。

※4 サンプルの継ぎ接ぎでプログラムを作り上げているときの脳の領域は、おそらく、本来の意味でのプログラミング作業に使われる脳の領域とは異なると筆者は推測します。

※5 処理を論理的に説明できない処理は、「正常に動作しているかのように見えている」だけかもしれません。いまやプログラムは社会生活基盤を支えるものであるので、そのようなプログラムは社会のリスクになりかねません。

重大案件を受注するような企業では、レビューア(プログラムコードの査読者)がチェックして指導するので、リスクは抑えられています。また、ベンダーが公開サイトを運営しているケースでは、審査を通過しないアプリは公開されません。

●「ヒト」と「社会」のニーズに応える発想

いくらコンピューターが進化しても、「限りある」はかないヒトのもつ複雑な感情や、文化的背景に根差した美意識を満たす開発は難しいものです。ヒトを驚かせ、楽しませ、感動させるアプリやコンテンツが、この社会には必要です。

前述のような計算機科学に基づくプログラミングであり、且つ、ユーザーに喜ばれ、ビジネスシーンでも利用されるものならば、そういった企画の立案は、コンピューターが取って代わることのできないものです。

そのような性格のアプリを、筆者は、先般行われた「エイッと作ろうアプリ選手権」に見つけました(※6)。(プログラマーではない筆者が、プロのプログラマーの皆さんたちのアプリについて何か言える立場ではないのですが、この記事の説明のための例示です。※7)

それは「エッシャーパターン」というアプリで、一個のタイルの上にドローイングすると、リアルタイムでユークリッド平面をおおうかのようなイメージが表示され、さらにはビットマップ形式のファイルとして保存できるというものです。

タイリングというテーマだけみると、玄人受けしても万人受けはしないもののように思われますが、このアプリは、ユーザーにとってはお絵描き系の楽しいツールであり、テキスタイルやインテリアのデザインの現場での活用も考えられることから、ビジネスパーソンの関心もひきます(※8)。

このアプリは、これからのプログラマーとしての方向性を考えている人にとって、参考になるものだと思います。

※6 「エイッと作ろうアプリ選手権」
< http://appsomm.jp/feature/2013/06/19/65967/ >

※7 筆者は多数の技術解説書や記事を書き、いくつかのアプリも公開していますが、XMLエンジニアであって、プログラマーではありません。

※8 線の色を白にしてアルファ値を設定できるようにし、さらには背景色や画像を設定できたり、作成された図柄を再マッピングあるいは画像処理ソフトのように変形して「円の極限」のようなイメージを作成できるならば、レースのカーテンや壁紙のラフデザインにも利用しやすく、Epressiion Design などにもあるとうれしい機能だと思いました。

●「ヒト」の心を知って個別対応できるのは「ヒト」

計算機科学から離れた位置にいたり、アイデアを出すことは苦手という人が、何らかの形でプログラミングに関わる仕事を継続するには、教育に目をけるとよいのではないでしょうか。

それは、プログラミング未経験者への少人数あるいは個別ので指導です。会場を借りての定期講習だけでなく、企業への出張指導や家庭教師、自宅での塾などが考えられます。

いまや無料の講座は多数あります。大学の講義すら閲覧できます。それらの講座は増え続けるので、自学自習のできる人は指導を必要としなくなるでしょう。

しかしながら、仲間とともに学ぶ楽しさを尊ぶ人もいれば、自学自習の苦手な人もいます。特に後者にとっては、いくら無料の講座が増えても、ビデオカメラ越しの個別指導が普及しても、対面指導の必要性は残ります。

そういった人たちに寄り添うスキルを身につければ、需要はあります。つまり、多種多様な生徒に個別に寄り添い、足並みを合わせてともに成長できる教師になれるように、心理学(とくに発達心理学)やコーチングの方法を学び、「プログラミング・スキルだけでなく、人間力と指導力」を身に付けるのです。

いまやネット上には多数の無償教材があり、「自ら学ぶ」種の児童(幼稚園児や小学生)にとっては、IT教育の実施を待つまでもありません(※9)。

彼らが新しいアイデアを語る時、頭のかたい先達は、自分が想像できないからといって、「そんなことはできるはずがない」などと足を引っ張ることが少なくありません。

そういった大人たちから幼い人材を守り、自主性に任せて伸ばす教育方法を先駆けて構築できる人は、その教育システムとノウハウの伝授だけで口を糊していけるでしょう。

n年後に必要になることは、n年前から準備する必要があります。今すぐ準備を始めるのが賢明です。

※9 2007年に、筆者は、小学生も読者対象とする「実習 Windowsプログラミングはじめの一歩」という本を書きました。当時は、児童専用の楽しく平易な教育方法が散見され、筆者はそれに疑問を持っていたからです。

●究極のサバイバル・スキルとは

このような記事は、社会の大きく急速な変化に戸惑っている人には、考えたくもない将来を見せつけているように感じられるかもしれません。しかし、ヒトならではの力を発揮すれば、口を糊していく方法は必ずあるはずです。

ヘルマン・ヘッセ著「シッダールタ」(高橋健二訳)には、主人公の思索家シッダールタが、商社の経営者カーマスワーミとの面接にのぞんで、次のように自己アピールをする場面があります。

「私は考えることができます。待つことができます。断食することができます。」

そして、業績を上げて共同経営者となった後、方針の違いから(シッダールタは長期報酬系、カーマスワーミは短期報酬系)商社を去ることになる直前に、シッダールタは次のような言葉を口にします。

「私があんたから習ったのは、ひとかごの魚がいくらするか、貸した金にどのくらい利子を要求することができるか、ということだ。それがあんたの学問だ。考えることを私はあんたに学びはしなかった。カーマスワーミよ、むしろ私から考えることを学ぼうと試みるがよい。」

商社を退職して、シッダールタは無一物になりますが、生きていくのに困ることはありません。なぜなら、先にあげたスキル「考えること」と「待つこと」ができるからです。プログラマーがプログラミングに関わる仕事で生き残っていくにも、このふたつがあれば大丈夫でしょう。

ヒトでなければ考え付かない独創的な処理を考え、先見性がありすぎて先走ってしまったアイデアであっても世の中が受け入れるまで待つ姿勢、それらがあれば、未来は憂えるものではないでしょう。

我々は、新たな技術潮流に乗って、自身を変え続ける必要があるのです。、

--------------------------------------------

◆オリジナル曲、ニコニコ動画 & YouTubeで公開中。

【初音ミク 巡音ルカ デュエット】日本の、光り。(Hopeful Colors in Japan)

< http://www.nicovideo.jp/watch/sm20841807 >
< >

--------------------------------------------

【薬師寺聖/個人事業所 セイザインデザイン】
個人事業所 < http://www.seindesign.net/ >
< infosei@seindesign.net >

絵・音・詩・文・コードを扱うフリーのクリエーター、思索家。エンジニアリング会社を経てデザイン事務所に勤務後、XML1.0勧告翌月に退職して開業。科学技術や医療・福祉分野のXML案件を手がけながら、書籍や記事を多数執筆(PROJECT KySS名義)。現在は、受託業務から独自開発にシフト中。Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2013)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■クリエイター手抜きプロジェクト[359]
Illustrator CS5/CS6/CC編 ページ内にある文字をHTMLファイルとして書き出す

古籏一浩
< http://bn.dgcr.com/archives/20130624140100.html >
───────────────────────────────────
今回のスクリプトは、ページ内にある文字をHTMLファイルとして書き出すものです。Illustratorでレイアウトした位置情報と幅も書き出されます。

以下のスクリプトを実行すると、保存するHTMLファイル名を聞いてきますので入力します。これで、すぐにHTMLファイルが生成されます。

タグはHTML5にしてありますが、テキストフレーム内の改行は処理していません。単純にテキストフレームをHTMLとして書き出しているだけです。


// ページ内のテキストフレームをHTML5として出力
(function(){
var savefile = File.saveDialog("保存先とHTMLファイル名を入れてください");
if (!savefile){ return; }
var flag = savefile.open("w");
if (!flag){
alert("ファイルを保存できません");
return;
}
savefile.encoding = "utf-8";
var htmlText = '<!DOCTYPE html"><html><meta charset="utf-8"><title>';
htmlText += app.activeDocument.name+"</title></head><body>";
var tfObj = app.activeDocument.textFrames;
for(var i=0; i<tfObj.length; i++){
var text = tfObj[i].contents; // 文字を読み出し
var rect = tfObj[i].geometricBounds;
var x1 = rect[0];
var y1 = -rect[1];
var x2 = rect[2];
var y2 = -rect[3];
var w = parseInt(x2- x1);
var h = parseInt(y2 - y1);
htmlText += '<div style="position:absolute;';
htmlText += 'top:'+y1+'px;left:'+x1+'px;width:'+w+'px;height:'+h+'px;">';
for(var j=0; j<text.length; j++){
var fsize = tfObj[i].characters[j].characterAttributes.size;
var fcol = tfObj[i].characters[j].characterAttributes.fillColor;
var R = fcol.red;
var G = fcol.green;
var B = fcol.blue;
//htmlText += '<span style="font-size:'+fsize+'pt;';
//htmlText += 'color:rgb('+R+","+G+","+B+');">'+text.charAt(j)+'</span>';
htmlText += text.charAt(j);
}
htmlText += "</div>";
}
savefile.write(htmlText);
savefile.close();
alert("書き出し完了");
})();


このスクリプトでは、テキストフレームの文字サイズと色は書き出されません。サイズと色を書き出すと改行されなくなるのでコメントにしてあります。試しにやってみたい人は、以下のコードの先頭//を削除してください。

//htmlText += '<span style="font-size:'+fsize+'pt;';
//htmlText += 'color:rgb('+R+","+G+","+B+');">'+text.charAt(j)+'</span>';

CS5用に作成したものですがCS6、そして最新版のCCでも動くと思います。


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

Illustrator CC...次のバージョン名もCCなのか。それともCC2になるのか。どうなるのか分からないけど、とりあえずいつもの使い方のページを作りました。とりあえず、バージョンが一般公開された時の日付で識別するような感じでページを作成しました。

バージョンアップするにつれてキャプチャーが多くなり、今ではキャプチャー疲れ......

・Adobe Illustrator CC使い方辞典(2013年6月18日公開版)
< http://www.openspc2.org/reibun/IllustratorCC/20130618/ >

今回は自動化ネタではなくて、すでに発売されていたであろう新型タブレットenchantMoonについて書くはずだったんです。が、いろいろトラブルで製造できていない状態のようです。手元に届いたら、またレポートしたいと思います。

・enchantMOONの製造はなぜ遅れているのか
< http://d.hatena.ne.jp/shi3z/20130616/1371356641 >

・ハイビジョン映像素材集【4K素材で上高地などを追加】
< http://www.openspc2.org/HDTV/ >

・Nexus 7(アンドロイドタブレット)使い方辞典
< http://www.openspc2.org/reibun/Android/Nexus7/ >

・JavaScript逆引きハンドブック
< http://www.amazon.co.jp/dp/4863541082 >

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199 >

・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >
吉田印刷所の「印刷の泉」でも購入できるようになりました。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集後記(06/24)

●西尾幹二「中国人に対する『労働鎖国』のすすめ」の続き。驚くべき事態が怒濤のごとく到来している。国別外国人登録者数は中国が急ピッチで異様な上昇を続けており、東京都内には現在15万人以上の中国人が在住している。東京大学の中国人留学生は1000人を超えている。日本政府は中国人に対してどんどん社会をオープンにしていく政策を、無警戒にとり続けて来た。今や日本社会の奥深くに在日中国人が入り込んで定着しつつあり、事実上の移民社会が形成されている。もう手遅れかもしれない。

このまま行くと、日本で高等教育を受け、永住権を得、国籍を取得した子供たちが成長して日本の高級官僚や政治家になっていくのは確実だ。元中国人が日本の法律を作り、行政の基準を変えていく。実は永田町や地方議会には帰化を隠す新日本人(なりすまし)が今でも数多く存在する。帰化した元中国人も、中国大使館に逐一活動・交際の報告義務があるから、なりすまし議員や官僚により日本の情報がすべてが筒抜けだ。

筆者は提案する。選挙こそ国民が政治の進路を選ぶ唯一のチャンスなので、候補者についてあらゆる角度から検討する権利がある。国政に立候補する者は、すべからく何系日本人であるか三代前まで遡って戸籍を明らかにすべきだ。アメリカでは出自が何系であるか、宗教はなにかも明らかにしている。日本でもそれに倣うべきだ。賛成。加えて、高級官僚も身体検査は厳格に行うべきだ。ところで、沖縄県知事は稲嶺惠一、仲井眞弘多と2代にわたって中国帰化人の子孫である。どうりで、中国の方しか向いていない。

いま中国が描いているシナリオは、汚染の拡大などで徐々に住みにくくなった中国大陸を捨てて、人民を日本に大量流出させるという企てらしい。夥しい数のイナゴの大群が日本を目指して脱出して来る。その中国人の安全確保を名目に人民解放軍が日本に強引に侵入し、核をバックに居座る。恐ろしいことだが、考えられない事態ではない。日本への大量流民を阻止しなければならない。

中国は専制国家体制で独裁国家で共産主義の国だ。覇権主義で帝国主義指向である。自由民主主義者と同様に中国人を受け入れるのは、絶対に間違いである。今年の4月、西村康稔内閣府副大臣は、高度な能力や資質を有する外国人を10万人単位で誘致すると発表した。なんというあさはかな考えだろうか。これこそ無防備な中国人流入政策である。世界の動向は、中国人排斥政策に転じたというのに、まったくおめでたい人物が首相側近にいるもんだ。(柴田)

< http://www.amazon.co.jp/exec/obidos/ASIN/4864102341/dgcrcom-22/ >
中国人に対する「労働鎖国」のすすめ


●回転寿し。お皿のカウント方法はお店によって様々。テーブルに投入口があって、入れると自動カウントされ、枚数によっておまけがもらえる自動くじ画面になるところ、終わった後に店員さんが数えに来るところなど。一律価格ではないところだと、店員さんがお皿を並べ替えた後、客に枚数確認を求める。

先日行ったところは、重ねたお皿の上に、POSのハンドタイプ読み取り機器のようなものをかざすと、ピッという音とともに読み取り完了。価格ごとの枚数が印字されたペーパーが出てくる。これをレジに行って清算。お皿の裏には何やら丸いものが貼付けられていた。

店員さんに聞くと、これは旧式のなので4枚までしか一度に測れないんですよとの答え。新式だと旧式と同じく、一番上で機械をかざした後、一番下のお皿まで側面を移動させればいいらしい。いろいろ考えられるもんだねぇ。

この方式だと割り勘も簡単だった。お互いのお皿を別々に計測してもらうだけ。投入口方式だと誰が何枚食べたかわからなくなっちゃうもんね。まとめて後から入れればいいだけではあるが。あ、同い年同士だと完全な割り勘方式が楽。どちらが多く負担することもなく、次回という話をせずとも良い。

お店にいた3割は外国人。外国人向けに、日本語・英語・中国語・韓国語の商品名と写真がパウチされたメニューが用意されていた。隣に座っていたアジアの女の子は、最初はメニューを見て、テーブルにある注文用紙に記入しようとしていたが、注文用紙には日本語しかなくて断念。お皿の模様と価格の対比表を何度も見ては、流れてくるものを選び取っていた。(hammer.mule)