2011年4月13日水曜日

SEには常識な作業効率化の小ネタを公開しようぜ【その1】(改行置換)

SE風味なことをやっていると、設計したり調整したりドキュメント書いたりダラダラ打ち合わせwする以外にも、障害発生時にDBでデータの調査をしたり、バックアップを取ったり、依頼を受けて簡単なスクリプト作ったり、あるいはソース書いたり、いろいろとありますよね。

で、そんな時SE風な人たちは至極面倒な作業であっても、それが「定型作業の繰り返し」であれば、ちょこちょこっと工夫して効率よくこなすことができますよね。
それ、隠してないで皆に公開しようぜっ!という話。
だから、SE風味なアナタはもう普段やっていることなので、「あぁ、改行置換の話ね」とスルーして仕事に戻ってください。

「改行」を置換して一気に整形

たとえばOracleで、テーブルの中身を項目指定して取得して、結果をCSV形式で保存したいようなシーンってよくありますよね?ね?「ある」って言いなさい。
(ごめん、ちょっと良い例がすぐ思いつかなくて)

さぁ!そんな時の作業手順としては、
(1)取得項目をズラズラっと列挙したSELECT文を書いて、
(2)SELECTの結果がCSV形式になるようにSELECT文に小細工して、
(3)SQL*Plusで実行(spoolで保存)
といった感じでしょうか。

このSQL文をなるべく効率よく作る時のようなシーンで活躍するのが、「改行」の置換です。よね?ね?

まずは、SELECT文で使用する取得項目を列挙するためにDESCRIBE。
例)
SQL> desc sample_tbl
USERID    CHAR(10)
NAME      VARCHAR2(80)
BIRTHDAY  DATE
SEX       NUMBER(1)
AGE       NUMBER(3)
NICKNAME  VARCHAR2(40)
上記の結果を矩形コピーして(Ctrl押しながら、あるいはAlt押しながら範囲選択すれば大抵できる)、項目だけをテキストエディタにコピペしたらCSVに出力したい項目だけ残して消します。

例A
USERID
NAME
BIRTHDAY
NICKNAME
これがSELECTで取得する項目になるわけですが、取得した結果がCSVとなるようにちょっと編集したい(上記(2)の作業)。
項目の間に「,」(カンマ)を入れ、Excelで開いても崩れないようにするために各項目を「"」(ダブルクォート)で囲うようにします。
要は、最終的にこんなSELECT文にしたい。

例B
SELECT
'"' || USERID || '",'
|| '"' || NAME || '",'
|| '"' || BIRTHDAY || '",'
|| '"' || NICKNAME '"'
FROM sample_tbl;

例Aから例Bをいかにサクっと作るか、そこで改行変換を活用。

例Aに対してザックリと以下のようにすれば例Bに近いものが出来上がりそうです。
・各行の終わりに『 || '",'』をくっつける
・各行の先頭に『|| '"' || 』をくっつける

つまり、各行の改行の前に『 || '",'』、改行の後ろに『|| '"' || 』をくっつければ良いわけです。
ではテキストエディタを使ってそのように変換しましょう。

秀丸、EmEditorといった定番テキストエディタに例Aが貼りつけられた状態で、「置換」(Ctrl+R)。
表示されたダイアログで検索(置換前)文字に『\n』、置換後の文字に『 || '",'\n|| '"' || 』を入れます。
「正規表現」にチェックを入れるのを忘れずに。

秀丸の例

これで「全置換」すると、あっという間に以下のようになります。
USERID|| '",'
|| '"' ||NAME|| '",'
|| '"' ||BIRTHDAY|| '",'
|| '"' ||NICKNAME|| '",'
|| '"' ||
ただ、このやり方だとこんな風に1行目と最終行が意図したものとは異なってしまうので、そこだけはチョチョイと手で編集(オイッ
後は先頭に「SELECT」、後ろに「FROM sample_tbl;」と付け足せば例BのSELECT文が完成。
たった4行だと手でやるのとあんまり変わりませんが、これが数十行、数百行単位になってくると効果絶大です。

ちなみにちょっと説明を付け足しておくと(SEさんには常識ですが)、「\n」というのがつまり「改行」を表しています。
その他、「\t」=「TAB」というのも結構使います(Excelのデータをテキストエディタにコピペすると、TAB区切りになりますからね)。



まぁ、さすがにちょっと例(OracleからCSV云々)がマニアックな内容だと思いますが、「改行を置換できる」ってことを覚えておくと役立つ場面は多いと思いますので、「なんだかマニアックだなぁ」とか思わずに、知らない人は是非一度お試しあれ。


次回は「Excelはコードエディタです」でも紹介しましょうか。

2011年4月4日月曜日

【読書】キュレーションの時代

キュレーションの時代 「つながり」の情報革命が始まる (ちくま新書)
「夜、寝る前に、明日の仕事のやり方を考える。その時に、『あの人だったらどうするだろうか』『この人だったらどういう風に考えるだろうか』と、自分が尊敬している人や憧れている人の立場にたって、その人の頭になって考えてみる。そうやって、いろんな人の考え方をインストールしておくと、不測の事態にも対応できるようになる」

これは、かつて1年足らずの間だけボクの営業のお師匠さまだった人が教えてくれたことの中の1つで、かつ、一番よく覚えている話。当時のボクはこの話を聞いて「なるほど」を連発していた記憶がある。連発したくなるほどに、その考え方が当時の自分にビビっと突き刺さった。

なぜ突き刺さったのかと考えると、それはおそらく「『自分の考え』に対する自信の無さ」だったのかもしれない。
さらに言うと、そもそも『自分の考え』というものの捉え方が(いまだに)はっきりしていなくて、例えば「このことに対してどうすべきだと思うか?」と問われたときに、自分の知識や経験から答えを導き出して答えるわけだけど、そもそもその知識の源泉は、それまで受けてきた教育や、親や先輩、同僚から教わってきた「外から入ってきた考え」。
従って、基本的にはそれらのピースを自分なりに組み合わせて出てきたものと、自身のそれまでの経験を混ぜ合わせるわけだけど、果たしてそれが「自分の考え」なのかと言うと、「あの人とこの人とその人の話と、あの本とこの本の内容と、あとは、先人に比べればちっぽけ過ぎる自分自身の経験が少々」が正解なんじゃないか、と。

冒頭の言葉は、そんなゴチャゴチャした悩みを抱えたボクに、「なるほど、それでもいいのか」と肯定してくれた内容に思えたことが、とても突き刺さった原因だと思う。

と、前置きが長くなってしまったけど、そんなことをツラツラと日々考えているボクにとって、本書で丁寧に説明されている「視座にチェックインする」(第3章)という表現と切り取り方に、非常に共感した。
本文中でも紹介されているわかりやすい例で言うと、例えばNHKの「ブラタモリ」(P.196)。タモリさんが東京の街を歩きながら街の魅力を再発見する、という人気番組で、ボクも録画して観るほどに大好きなんだが、まさにあの番組は「タモリさんの視点を通して街を見る」ことによって、新たな出会いや発見を求める作りになっている。
視座とは、どのような位置と方角と価値観によってものごとを見るのかという、そのわくぐみのこと(P.195)で、視座を提供する人のことをキュレーターと言う。この場合、タモリさんがキュレーターだ。そして、キュレーターが行う「視座の提供」がキュレーション(P.210)。
もっと具体的にどういったことかを手っ取り早く知るなら、とりあえず著者である@sasakitoshinaoさんをフォローして、午前中のツイートをチェック。

旧態依然として完全に出遅れた日本の映画界や音楽業界の敗因が詳しく解説され、同じくWEBをいまだに理解できていない一部マスコミに対しストレートに批判をぶつけつつ、この新しいパラダイムについて非常に丁寧に説明されている。読み進めながら、確かに自身の最近の情報との接し方を振り返ってみても納得のいくことが多く、かつ、では自分たちがどうやって情報を発信していくか、ということを考えさせられる。

この本を読んで思い出すのは、『ストーリーテリングは、最も過小評価されているビジネススキルである。』というゲイリーの言葉。本書でも、物語の重要性がコンテンツとコンテキストという枠組みでしっかりと語られている。
(今、次に読み始めている本なんて、まさにそのまんま・・・ストーリーとしての競争戦略 ―優れた戦略の条件 (Hitotsubashi Business Review Books)

全体的に、ちょっと芸術面(音楽や絵画等)の例が長々と続いて読むのが重たい部分もあったが、いずれもエピソードとしては面白く、おそらくこれも著者である佐々木さんが読者に対してセレンディピティ(偶然の幸福な出会い)を狙ったのかな、と思ったり。
自分に入ってくる雑多な情報をフィルタリングすることと、フィルタリングによる「タコツボ化」。この相反する状態を、キュレーションという機能がどう解消していくのか。「今」そして「これから」の情報との接し方について考えさせられる、
とても勉強になる本でした。

2011年4月1日金曜日

【読書】Twitter社会論(…えぇ、今さらですが)

Twitter社会論 ~新たなリアルタイム・ウェブの潮流 (新書y)
今回の震災で、電話より、メールより、Twitterが(使える人にとっては)最も優れた通信手段となったことを実感した方も多いんじゃないでしょうか。
ボクは、布袋ファンを20年近くやってまして、そんな布袋さんが、フォロワーから依頼された安否情報を積極的にRTしていて、そのおかげで「無事連絡が取れた」というシーンも何度もTLで目撃しました。フォロワー数が多いとそれだけ多くの人にリーチできる可能性が高まる、というシンプルながら強力なパワーを目の当たりにして、「これがTwitterの底力か…」と思い知った気がしています。


と、言うようなことは既に1年半前に津田さんが「社会論」としてまとめてくれています。
実は、いつ頃だったか、AppStoreでiPad対応Delux版なるものが半額以下(350円)で叩き売りされていることを津田さんのツイートで見つけたので勢い買ってみたんだけど、なかなか読む時間もなく、そうこうしているうちに今回の震災。少し落ち着き始めた頃に、仕事場へ向かう電車内で読み始めたらあっという間に読み終えたんだけど、このタイミングで読むと完全に「これは預言書?」と思ってしまう。
中国の四川大地震でTwitterがその威力を発揮したエピソードを題材にしているから、っていうのもあるけど、「今」とリンクしすぎていて一種の気味悪さすら感じてしまいました。

とはいえ、内容としてはビジネス面、政治面等におけるTwitter活用事例と展開案、活用にあたって注意すべき点などが提示されていて、いやはや、見事に「社会論」としてうまくまとまっているように思いました。

それから、Delux版だけなのかな、おまけがボリューム満点で、これで350円はかなりお得。東浩紀さんの解説とか、噛みごたえあります。
あと、読み終わった後、なんか津田さんのこと好きになってますw(個人差あり)。



余談だけど、特に震災で一気にTwitterが膨れ上がった時、よく著名人に絡む完全に頭おかしいツイートをしてる人が以前に増してワラワラと出てきた印象があるんだけど、そういう「よくわかってない人」が目に付くようになってくると「いよいよキャズム超えたな」って思いますね。

ところで、わけのわからない絡み方をしている人のプロフィールとかをチラチラと見ると大抵、「フォロー数:フォロワー数=3:2」ぐらいの感じで、フォロー数は50前後が多いような気がします。そういう人を見かけたら、ちょっと気を付けた方がいいかもね・・・
ってアレ?
それ、俺のコト!?


それにしても、この大量アクセスが続く中、全然サーバー落ちないよね、Twitter。
それがすごい。ありがとうTwitter(話をそらす)。