2010年12月13日月曜日

Office 2010について


Day of Office 2010 / Microsoft Sweden


数ヶ月前に発売されたOffice2010ですが、今回のバージョンには今までに無い特徴があります。
それが「Webアプリケーション版(Web版)」です。

今回のOfficeでは、今まで同様にパソコンにインストールして利用する「リッチクライアント版」に加え、Webブラウザー上で動作する「Webアプリケーション版」、携帯電話やスマートフォンなどで利用する「モバイル版」が提供されています。


Webアプリケーション版とは



Web版は企業内のサーバーにインストールして使うほか、個人向けにはマイクロソフトのWebサービス「Windows Live」を通じて提供されるそうです。
更に、最大250GBのオンラインストレージ「SkyDrive」上にOffice文書を保存してそのまま閲覧や編集が可能です。

このWeb版を利用すれば、パソコンにOfficeがインストールされていない環境でも作業ができます。
Webブラウザー上でWordやExcelでの作業が可能になり、離れた場所にいる人とのファイルの共有や共同で作業したりすることも容易になるそうです。
また、「リッチクライアント版」には「SkyDrive」上にファイルを保存する機能が搭載されているようです。


Web版だけでは・・・



ただし、Web版があるからといって「リッチクライアント版」は不要というわけではありません。
Web版は無料ということもあり「リッチクライアント版」に比べ機能が限られています。
じっくりとファイルを作成する場合は、やはり「リッチクライアント版」がいいでしょう。
携帯電話やスマートフォンなどで利用する「モバイル版」も含め、場面に応じて3種類のOfficeを使い分けることで、これまでよりも快適な作業環境が実現されるようです。

投稿者:小森谷


[google]

2010年11月22日月曜日

SASのハッシュオブジェクトを試してみた

SAS9.1からハッシュを使えるようになったみたいなので、試してみようと思います。
(実行環境SAS9.2)

ハッシュ(連想配列)とは、「キー」と「値」を1組のペアとして関連付けされた配列のことです。
配列へのアクセスキーを自分で設定でき、順序付けもされていないので、使い勝手が良いです。

「SAS認定プロフェッショナル SAS Advanced Programmer for SAS®9」の出題範囲にもなっているので、受ける方は知っておいて損はないと思います。


国名をキーとして首都名を値にもつ配列worldを作ってみました。

data _NULL_;
 * ハッシュで使用するキー変数, データ要素変数の属性を設定します。;
 length country capital $50.;

 * SAS Hash Objectのインスタンスを作成します;
 declare hash world;
 world=_new_ hash();

 * アクセスキー変数を設定します;
 world.defineKey('country');

 * データ変数を設定します;
 world.defineData('capital');

 * ハッシュオブジェクトの初期設定を完了させる;
 world.defineDone();

 * ログに以下のメッセージが表示されないようにする;
 * NOTE: 変数 country は初期化されていません。;
 * NOTE: 変数 capital は初期化されていません。;
 call missing(country, capital);

 * アクセスキーと値を代入する;
 world.add(key: '日本', data: '東京');
 world.add(key: 'アメリカ合衆国', data: 'ワシントンD.C.');
 world.add(key: '大韓民国', data: 'ソウル');

 * 値を取得してみる その1;
 world.find(key: "日本");
 put country= capital=;

 world.find(key: "アメリカ合衆国");
 put country= capital=;

 * 値を取得してみる その2;
 country="日本";
 world.find();
 put country= capital=;

 country="大韓民国";
 world.find();
 put country= capital=;
run;


↓実行ログ
country= capital=東京
country= capital=ワシントンD.C.
country=日本 capital=東京
country=大韓民国 capital=ソウル
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.07 秒
CPU 時間 0.07 秒


基本的な使い方はこんな感じだと思います。

第一印象としては、わざわざハッシュオブジェクトを呼び出したり、キーやデータ用の変数を作成したりと何かと面倒臭いっ!

ただし、参考サイトを見てるといろいろな機能があるみたいです。
機会があれば今後もう少し掘り下げて取り上げてみたいと思います。

投稿者:@Hoshi_NI


[google]

2010年11月15日月曜日

クラウドコンピューティングとは(その1)



Cloud Computing Summit Brasil 2010 10/08/10 / rafaeldesigner


クラウドという言葉が本格的に聞こえるようになってきて久しいですね。
そもそもクラウドという言葉自体は2006年にGoogle CEOのエリック・シュミット氏が用いたのが始まりと言われてます。
このクラウドという言葉、意外と広義に解釈されていて人によって捕らえ方が違っていたりします。
そこで、本日は私なりの解釈を説明してみたいと思います。

雲(Cloud)とは?



一般的によく言われているのが、以前から存在していたASPやSaaSという言葉を言い換えたもの。
要するに、インターネット上のサービスをユーザーが購入して利用するというものです。

クラウドは英語で雲(Cloud)を意味し、雲はインターネットを図示するのによく用いられますね。
インターネット上に存在するサーバーやそのアーキテクチャを雲の表記で抽象化し、ユーザーは特に意識せずに提供されたアプリケーションを利用することだけを考えれば良いというものです。

ただこの説明はあくまで利用者側の視点に立った、もしくは利用者に説明するためのクラウドであり、我々システム開発者はここからさらに踏み込まなければなりません。

では、雲の中身はどうなっているのでしょうか?
そこを語る上で重要なのはスケールアウトという言葉です。


スケールアウトという概念



Googleはサービス提供のために安価なPCを大量に使ってデータセンター作りました。
コンピュータの処理を向上させるために、より高価で高速なCPUや大容量なメモリを搭載させるスケールアップではなく、安価なPCを大量に並べて分散・並列処理をすることによって処理能力を向上させました。
PCを追加していき、その分だけリニアに処理能力を向上させていくというのがスケールアウトという考え方です。

私はGoogleが実現したこのスケーラブルな分散・並列処理システムこそが、クラウドという言葉において非常に重要と考えます。
雲の中にある大量のPCとその上で動く分散・並列処理のシステム、まさにクラウドという言葉にピッタリのイメージではないでしょうか。

現在では、このような必要に応じてリソースを追加できるという点で、スケールアウトな分散・並列処理システムは大規模なサービス提供者にとって必要不可欠な技術となっています。


ここまではクラウドのハード、そのシステム基盤的な視点からの話でした。
次はソフト、サービス的な視点から我々はクラウドで何をするのかという話をしたいと思います。
米国SASも7000万ドル規模のクラウド・コンピューティング施設を建設しているというニュースが去年ありましたね。

SAS、7,000万ドル規模のクラウド・コンピューティング施設を建設 | SAS プレスリリース


ですが今回はここまでということで・・・

次回は我々システム開発者はクラウドで何をするのか?
スケーラブルな分散・並列処理システムをもったデータセンターを作るわけじゃありませんよね。
そのクラウドの基盤の上で何をするのか?といったところに焦点を当ててあと少し説明したいと思います。

投稿者:@Miya_NI


[google]

2010年11月5日金曜日

Google Reader+iPhoneで情報収集


Information / Guillermojm


@ni_tweetsや@massu_niで日々いろいろなことをつぶやいていますが、今回はそのネタ収集方法について簡単に書いていきます。

使用しているツールはGoogle Reader+iPhone。
はっきり言ってこの2つが無かったら効率悪過ぎてやる気が出ません(笑)


Google ReaderではSASやBI市場の情報配信ブログやWebサイトを十数個購読しています。

その主なものをご紹介。



iPhoneのRSSリーダーアプリはNetNewsWireを使っています。
BylineRSS Flash g等の有名どころやその他多数のアプリを使用しましたが、個人的にはNetNewsWireが一番使いやすいです。
記事をチェックするのは主に通勤中や休憩中。


以下、その簡単なフロー。


記事のタイトルは必ず読む
   ↓
少しでも気になった記事にはスターを付ける
   ↓
一通り記事のタイトルをチェックし終わったらスターを付けた記事の抜粋だけを読む
   ↓
タイトルから想像してた内容と違っていたり、つぶやくまでの内容ではないと判断したらスターを外す
   ↓
スターを付けた記事の抜粋をチェックし終わったら、最後までスターが付いている記事を全文読む
   ↓
つぶやく


分からない英単語で記事内容でポイントになっていそうなものがあったら、辞書でなるべく調べるようにしています。
使用している辞書アプリは英辞郎 on the WEB
iPhoneならマルチタスクでサクッと調べることができるのでとても楽です。


日々新しいテクノロジーやソリューションが生まれてくるこの業界。
情報収集とその取捨選択はできるだけ効率よく行いたいものです。

投稿者:@Massu_NI


2010年10月27日水曜日

秋の夜長の読書感想文



『ウェブで学ぶ - オープンエデュケーションと知の革命』 梅田望夫 飯吉透(共著)を読んで



結論から言って、「最低でもあと2~3回は時間を掛けてじっくり読み返したいな。いや、そうしないとマズイな」と思った。

とにかく、日本の外で長く過ごしている2人の日本人が、外でギャースカ騒いでいる。

MITのOCW(オープンコースウェア)に代表されるオープンエデュケーション。
その誕生から現在に至るまでの道のりはまるで、野球で言う"ナックルボール"、サッカーで言う"無回転シュート"の軌道を想起させる。

そして、飯吉氏との対談を経て、梅田氏は「アメリカについて考える」ところに辿り着く。

一読者としても「そうだよ、なんでアメリカは…」という「何故?」に吸い込まれていく。
その「何故?」を解く先に、これからを生きるヒントが隠されていると信じて…。

同時にどういうわけか、戦前戦後あたりの歴史系の本を読み返してみたくなった。
まるで、(道に迷ったときは慌てないで、落ち着いて地図でも見よう)とでも言わんばかりに。
ん?つまり今、先が見えてないのか…

落ち着け。落ち着くんだAll my バディ。

2人の日本人の声だけが、ジンジン頭の中で響き続けている…。

(参考URL)
■梅田望夫氏BLOG
「ウェブで学ぶ」という本を書いた背景について - My Life Between Silicon Valley and Japan

■飯吉透氏BLOG
「ウェブで学ぶ」刊行に寄せて - 飯吉透オフィシャルブログ

投稿者:@Nawito_NI


2010年10月21日木曜日

データの取り出しをスムーズに進める一つのヒント。(その1)


excel_for_office_14_web / Joey DeVilla


担当者ごとの月別のデータ(Excel)があります。
どのように、担当者別の月ごとのデータを抽出しますか?

Excelのワークシートを使って簡単に取り出すにはどのようにするのが効率的でしょうか?
VLOOKUP(HLOOKUP)関数もいいですね。
ただ、その場合セルの指定などで少々面倒な思いをする場合があります。


そこで、「INDEX関数とMATCH関数」の併用です。
今回は、そのことに触れてみたいと思います。

そもそも「INDEX関数」ってなに?



行番号、列番号(データ位置の番号であってワークシート上のデータ番号ではないもの)からデータを抽出するものです。

=INDEX(配列,行番号,列番号)


配列:範囲または配列定数を指定
行番号:行位置を数値で設定
列番号:列位置を数値で設定

「数値を指定する必要があるのなら、VLOOKUP(HLOOKUP)関数と一緒では?」と思われるかと思います。
しかし、後ほど記載するMATCH関数との組み合わせでこの問題が一気に解決する(はず)です。

では、実際のデータを元に使用方法の違いを見てみましょう。



例として、上記のような表から特定月の商品別売上を求めるとします。

VLOOKUP関数であればこのようになるかと思います。

=VLOOKUP(C10,B3:G8,2,FALSE)


C10セルにある商品名「コーラ」を、B3からG8までの範囲にある中の2番目の値を返す。
という感じですね。

ただ、この場合4月はこれ、5月はこれと関数を追加をしていく必要がありますね?
特に第3引数の列番号の指定などはいちいち数を数えて入れての繰り返しになるはずです。
B10のセルにある月をプルダウン選択で月選択し、商品名も選択できると便利ですよね。
この状態でプルダウン選択を行うとプルダウン選択項目と結果が一致しません。

では、実際に同じ結果を出すためにINDEX関数を使用してみます。



=INDEX(B2:G8,MATCH(C11,B2:B8,FALSE),MATCH(B11,B2:G2,FALSE))


INDEX関数では範囲を選択し、行番号、列番号の指定をしていきます。
最初の「B2:G8」でデータの範囲を選択し、その中から、行番号(コーラの3行目)、列番号(4月の2列目)をそれぞれ選択します。

しかし、行番号、列番号をそれぞれ数値で指定してしまっては、VLOOKUP(HLOOKUP)関数の方が楽であり、とても汎用的とは言いがたいかと思います。

そこで、使用するのはMATCH関数です。

=MATCH(検査値,検査範囲,照合の型)


検査値:この場合は、「商品名(コーラ)」
検査範囲:この場合は商品名(行番号)、月(列番号)
照合の型:False(0でも可)なら完全一致のみ、True(1、-1)なら最大値(最小値)の値

このような、位置を特定するのに有益なMATCH関数を組み合わせることで、検索がスムーズになるはずです。

この組み合わせで行うと、「月」「商品名」をプルダウンリスト化することで、検索項目を入力することなくスムーズに検索する一つのツールとすることができるはずです。

ここまでであれば、「大して変わらないからVLOOKUPやHLOOKUP関数のままで良いか」と思うかもしれません。


複数月の平均を求めてみる



では、3ヶ月の平均を求める。といった場合はどうでしょうか?
4月から6月までの平均を求めるとします。

VLOOKUP関数であればそれぞれ、4月の売上、5月の売上、6月の売上を持ってくるための関数を書き、その値を元に平均を求めるという操作になるかと思います。
これをINDEX関数では1文で書き表すことができます。



F12の式は以下のようになります。
赤字が「始点」となるセル位置(この場合、4月のコーラ)
青字が「終点」となるセル位置(この場合、6月のコーラ)

=AVERAGE(
INDEX(B2:G8,MATCH(D12,B2:B8,FALSE),MATCH(B11,B2:G2,FALSE))
:INDEX(B2:G8,MATCH(D12,B2:B8,FALSE),MATCH(D11,B2:G2,FALSE))
)


INDEX関数であれば、行番号と列番号を求めるので、その求めた答えを「AVERAGE」関数に当てはめます。

AVERAGE関数で範囲を指定するように、始点となるセル位置をINDEX関数で求め、終点となる位置もINDEX関数で求めると、X月からY月までのZヶ月の平均売上といったものも求まります。
さらに、データが売上平均などとなっている場合にSUM関数やCOUNT関数などを併用しながら使えば、汎用的なワークシートの作成が可能となるはずです。

また、この場合は期間、商品をそれぞれセルに保存していますので汎用的な利用ができます。
(5月から8月のビールの売上平均など)


このように「INDEX関数(併用MATCH関数)」を使用することで他の関数の引数としての役割も果たせます。
また、INDEX関数ではシート選択(データ種類の選択)のようなこともできますが、それは今度の機会にでも。


投稿者:@DeDe_NI


2010年10月2日土曜日

Windows7の仮想機能


Danbo (heart) Windows 7 / mendhak


Windows 7には、「XP Mode」という仮想機能があります。
この機能を使うことで、Windows XPなどで使用していたアプリケーションを修正することなくWindows 7上で動作させることができます。


「XP Mode」とは



Windows 7上に仮想的なWindows XPの環境を構築し、XPでしか動かないアプリケーションを使えるようにする機能です。
従来の仮想化ソフト「Virtual PC」と基本的な仕組みは同じですが、Windows XPのライセンスが無償で付くのが利点です。
また、スタートメニューから直接Windows XP上のアプリケーションを起動できるほか、USBデバイスにも対応しています。

ただし、Windows 7には標準添付されておらず、Webサイトから「XP Mode」と「Windows Virtual PC」をダウンロードして組み込む必要がある他に、使用しているWindows 7が「Professional」「Ultimate」「Enterprise」である必要があります。
更に、CPUが仮想化技術に対応していることが必須条件ではありますが、最新のPCであればこれに関しては特に問題ない部分です。


「XP Mode」の使いどころ



例えば、Windows XP上のInternet Explorer 6を前提にした業務アプリケーションの場合、Internet Explorer 8を搭載するWindows 7では上手く動作しないケースがあります。
こんなとき「XP Mode」を使えば、あたかもWindows 7に対応したソフトのようにスタートメニューから直接起動して利用できます。


「XP Mode」の落とし穴




「XP Mode」を使うと、Windows 7、Windows XP sp3という2つのOSがPC1台で動作することになります。
その実体は、Windows 7上で動いている「Virtual PC」で更に「Windows XP sp3」を動作させ、その上で更にWindows XP用のアプリケーションを動作させている状態です。
当然、ハードウエアのリソース(CPUやメモリ)を多く使用することになり、「XP Mode」を導入したためにかえって使い勝手が悪くなることもあるそうです。



以上のように、以前から使っていたアプリケーションもそのまま使えるので便利な反面、実はPCに負担を強いるなんてこともあるようです。
利点ばかりではなく考慮すべき点にも目をむけ、必要か不必要かを見極めて、どうしても必要な場合にのみ使用するという使い方がいいのかも知れないですね。

投稿者:小森谷

2010年9月22日水曜日

禁煙のすすめ


Non smoking UK / Szilveszter Farkas


皆さんご存知だと思いますが、10月1日にタバコ税が増税されます。
今回の増税は前代未聞の大幅増税で、ついにタバコ一箱400円台の時代になります。


主な銘柄の価格改定
セブンスター&#160&#160&#160&#160&#160 300円⇒440円
マイルドセブン&#160&#160 310円⇒410円
パーラメント&#160&#160&#160&#160&#160&#160 330円⇒450円


ワンコインでタバコが買えるのは恐らく次の増税まででしょう。
さらに喫煙のできる場所も年々減少しています。
これらのことから本気で禁煙を始めようと考えている方も多いのではないでしょうか。

私自信が最近禁煙を始めたので、タバコをやめてからのメリット・デメリットを体験を踏まえて紹介していこうと思います。
(禁煙約3カ月時点での体験です。)


禁煙の一般的に言われるメリット・デメリット



メリット

1.体力が回復する
○ これは如実に現れました。禁煙する前は少し走るだけでものすごい息切れしましたが、禁煙を初めて1カ月程度で全然息切れしなくなりました。

2.肌が綺麗になる
○ 肌荒れが減りました。

3.寝起きがよくなる
? 元々寝起きが悪いのでわかりません。

4.寝つきが良くなる
○ 日付が変わる前に眠くなるようになりました。

5.味覚、嗅覚が回復する
○ 味覚の変化はあまり感じませんが、嗅覚は良くなりました。喫煙者かどうか匂いでわかるようになりました。

6.咳、痰が改善
○ 咳が減りました。

7.血圧が正常になる
? 測ってないのでわかりません。

8.食欲がでる
○ お昼御飯を待ちきれないくらいお腹が減るようになりました。

9.肩こり・腰痛・貧血・冷え症が治りやすくなる
× 今のところ効果なし。

10.肺がんになりにくくなる
? 1年後には喫煙者の半分に、10年後には10分の1以下の確立になるらしいです。


デメリット


1.イライラする
× 特に変わらず。

2.太る
○ 2か月で5キロ太りました。ビール飲みすぎたのと重なっただけかもしれません。


その他私自身が感じたメリット・デメリット



メリット

1.タバコ代が浮く
2.タバコを買いに行く手間が省ける
3.お店に入る時、喫煙席があるかどうか気にしないですむ
4.走ると肺がどんどん綺麗になるような気がして運動したくなる
5.タバコの増税日を気にしないですむ

デメリット

1.タバコを誤って吸ってしまう夢を頻繁に見るようになる
2.タバコミュニケーションが無くなる
3.8年ぶりくらいに便秘になる


このようにほとんどメリットしかありません。
これから禁煙を始めようとしている方や、禁煙中の方も一緒に頑張りましょう!

投稿者:@Hoshi_NI


[google]

2010年9月9日木曜日

SASHELPライブラリの便利なViewTableたち

Question mark
Creative Commons License photo credit: the Italian voice

ちょっとSASプログラミングに慣れた人達が上手に利用するテーブルがあります。
今回はそんなSASHELPライブラリにあるいくつかのViewtableをご紹介します。

例えば、「任意のライブラリにある全てのデータセットに対して何かをしたい」
そういった場面があったとします。

そんなときに役に立つのがSASHELP.Vmemberです。

Vmemberは、カレントSASプロセスで割当てられているライブラリと、その中に存在するデータセットやカタログ等のメンバを取得してリストで見ることができるViewtableです。

Vmemberを開くとこんな感じ↓



例えば、MYLIBライブラリにある全てのデータセットのコンテンツを取るなら。
以下のようなコードを書けばよいでしょう。


data _null_;
  set SASHELP.vmember;
  * MYLIBライブラリのDATAセットを抽出 ;
  where libname="MYLIB" and memtype="DATA";
  * DATAセット名をマクロ変数に格納 ;
  call symput("DSNAME"||compress(_N_), compress(memname));
  * DATAセットの総数をマクロ変数に格納 ;
  call symput("NUMBER", compress(_N_));
run;

%macro getContents();
  %do i=1 %to &NUMBER;
    proc contents data=MYLIB.&&DSNAME&i;
    run;
  %end;
%mend;
%getContents;


上記のコードは、vmemberから任意のライブラリにあるデータセット名を取得してマクロ変数化して使うような例ですが、SASHELPには他にも様々なviewtableが存在します。
以下がその一例です。

vtable  vmemberよりさらに詳しいデータセット情報が得られる(OBS数など)
vcolumn データセットに保持する変数情報が得られる
vmacro 現在定義されているマクロ変数情報が得られる(自動マクロ変数も)


以上、このように様々なviewtableの存在を知っておくと、色々な場面で動的な処理や、コードの簡略化に役立てることができるはずです。
知らなかった人は是非使ってみてください。

[google]

投稿者:@Miya_NI

2010年8月26日木曜日

ネイチャーインサイト真夏の採用情報!


Tokyo Sky / OiMax


暑い日が続きますね・・・
来週も30℃超の日がまだまだ続くらしいですね・・・

そんな猛暑を吹き飛ばすぐらいの勢いで、現在ネイチャーインサイトでは積極的な採用活動を行っています。



以下、求人サイトからの抜粋です。



当社のエンジニアとして更なる成長を目指してみませんか。




BIツール「SASシステム」を活用した情報系システムの設計・開発、データ分析業務をお任せします。

【少人数チームで大手のお客様に貢献】
3~5名ほどのチームを編成し、クライアント先に常駐。
ご要望のヒアリングから要件定義、設計・開発、テスト・導入まで、一貫して手がけるシステム開発やお客様のアドホックな要求に対し、データの集計・分析を行うなど業務内容は様々。

お客様は、金融機関や製薬・通信など様々な業界の大手企業が中心。
約50%の案件は当社の直接受託です。

【多彩な業務テーマに挑戦する醍醐味】
開発期間は3ヶ月~1年程度。
次々に多彩なソリューションの実現を果たす中で、スキルアップの手応えを存分に味わうことができます。

もちろん、得意な業務分野を掘り下げていくことも可能。
特定のお客様からの揺るぎない信頼をつかみ、継続的なシステム運用や追加開発を行っているクライアント先もあります。
将来性ある領域だからこそ、チャレンジの価値は十分!

BIは、企業が蓄積した膨大なデータを加工・分析して、さまざまな業務や経営判断に生かすための手法。
成長著しいBI分野、これから導入をはかる企業は一段と増えてきます。
代表的なBIツールである「SASシステム」の開発に習熟したスペシャリストに成長できれば、あなた自身の将来も必ず大きく広がっていきます!


求める人材




◎システム開発経験があり、実務レベルのプログラミング能力をお持ちの方
◎これまで経験した技術分野や言語などは問いません


こんな方なら大歓迎!




◎マーケティング分析の業務経験がある方
◎DBのスキルがある方
◎お客様折衝や上流工程の経験がある方/これから挑みたい方
◎受け身の姿勢ではなく、積極的な“お客様貢献”のマインドを発揮できる方
◎いずれはリーダーとして開発チームの先頭に立つ気概のある方
SAS特有の開発スキルは、社内教育で習得できます!

まずは当社独自の研修カリキュラムとテキストに基づき、先輩社員が講師となって、SASシステムの開発言語や機能、仕様などについての入念な社内教育を行います。約2~3ヶ月ほど講義と演習を繰り返せば、現場で活躍する十分なスキルが身につきます。その後は、あなたの経験や資質を活かせる開発チームで実践に挑んで下さい。



2010年8月17日火曜日

最近の気になる英語圏News

◇夏の風物詩といえば…、怪談? 稲川淳二先生、お願いします。


Facebook / Franco Bouly


As Older Users Join Facebook, Network Grapples With Death - NYTimes.com

今や日本でもお馴染みとなったSNS(Social Networking Service)。

プログラムによる自動抽出機能が、既に亡くなった人の情報を、生きている人と同じ様に扱ってしまうという…

アメリカにおいてSNSは、大学生の間で広まったのが元々の始まりで、天寿を全うする人についての対処はシステム的にさほど考慮する必要がなかった。

しかし、今となっては、とりわけ死亡率も高い年齢層(65歳以上)の方々の参加が、どの世代よりも増加しているのだという。
その層の参加者増分は、2010年5月単体で前年同月比300%にもなり、人の寿命に関して、早急な対応が必要になってきているのだという。

実際、既に亡くなった友人・知人の顔写真が、(誕生日のお知らせ機能などにより)自分のメインページに現れることに戸惑う利用者もいるようだ。

Facebookでは、これに対して、死亡を通知できる仕組みを作ったり、"I miss you"などの発言をシステムで自動検知させて人的な対処をするなど、より良い策を模索しているようだ。

似たような問題として、日本でも最近、亡くなった方に公的な通知が届いてしまったことがニュースで取り上げられていた。
何かとテクノロジー任せな部分が増えている現代において、こういった問題が試しているのは、システムなのか人間なのか、どちらだか分からなくなりそうだ。


続いては、こちら。


◇クラウドコンピューティング+ゲノム学の行方


Argonne's Midwest Center for Structural Genomics deposits 1,000th protein structure / Argonne National Laboratory


Combining the Cloud, Genomics to Save Lives - Global Challenges


IBMとミズーリ大学が、クラウドコンピューティングとゲノム学の融合により、癌やマラリアなど、人の死に関わる病気に対する治療の改善を目指しているという…

ミズーリ大学は、IBMの高性能コンピューティングテクノロジーを用いることで、広範囲に及ぶ遺伝子情報プロジェクトの成果を共有したり、研究者達の共同作業を推し進めることが可能になるのだという。

そして、遺伝子情報の詰まったクラウドにアクセスすることで、個々の患者の診断・医薬品の選定といった作業が更に改善されるのだという。

例えば、これまでは医師が研究施設に患者の遺伝子情報を送付し、その解析結果が戻ってくるまでに、数週間待たなければならなかった。

これが、医療現場のスタッフがパソコンでクラウドに繋ぐだけで、対象患者の遺伝子情報から、どういった病気に罹り易いかやどんな医薬品と相性がいいかということも時間をかけずに分かるようになるのだという。

日本で人気の医療ドラマ「救命病棟24時」でも、いつか進藤先生(江口洋介)があの口調で、「マウスとメスは区別するな。メスを握ったつもりでマウスを扱え。」なんてセリフを吐くときが来るのかもしれない。それはそれで楽しみだ。


では最後。


◇さて、そろそろワールドカップ前のシミュレーション結果とやらを検証しましょうか。


E3 2010 EA Sports FIFA Soccer World Cup viewing area / popculturegeek.com


2010 World Cup: And the Winner Is ・・・ - Goal Blog - NYTimes.com

この6/4の記事は、EAスポーツというビデオゲームで行った、ワールドカップ前のシミュレーション。

Finalカードはブラジル対スペインで、後半15分、ダビド・ビジャが勝負を決めるゴールを決めて、スペインが優勝~♪とのこと。

なかなかよくシミュレートできている。スペインは実際優勝したのだから。
(更に、南アフリカがホスト国として初めて1次グループリーグ敗退をすることまで当ててしまっている)

このゲームのプロデューサー、世界中から各選手の40項目以上に及ぶ特徴データを集め、それをコンピューターに入力させてやったのだから、かなり"Real"な仕上がりになっていると自信を窺わせているご様子。

しかし、日本についてはどうだったかというと…
1次グループリーグで敗退というシミュレーション予想に反して、見事な闘いぶりを見せてくれた。

どうやらデータが足りなかったらしい。くっくっ…

ただ、ブラジルやポルトガルが入ったGroup G については、得点差はともかく、試合の結果は全て当たっていて、これは見事と言う他ない。

同時に、テクノロジーはある程度までは既に、人間を"bit"に置き換えることができるんだな、という少し寂しい印象も受ける。

この先も、あらゆるものが"bit"に置き換えられ、シミュレートすれば高い確度で未来が予見できるようになるのかもしれない。

しかし、サッカーの試合が予想だにしない展開を見せるように、人間にはまだまだ未知なる何かがあるような気がしてならない。

"bit"では捕らえきれないその何かに、「人間の何たるか」を知る深い手掛かりがあるのかもしれない。

あたかも、人間をパズルの土台に見立てたとき、"bit"というピースが当てはまらないところから浮かび上がる部分の中に、何かが潜んでいるような気がするのだ。

投稿者:@Nawito_NI


[google]

2010年8月4日水曜日

プログラムの記述をちょっとだけ簡単にする2つの方法

プログラムで1つの結果を出すとき、その記述はたくさんの方法があります。
今回は、比較的よく使いそうなもので記述をちょっとだけ簡単にする方法を2つ紹介します。



%IFステートメントを使わない条件分岐




通常、マクロ内で条件分岐させるときに、

 %if ~ %then ~ ;
 %else ~ ;

のように記述します。

簡単な例として、「マクロ変数TYPEがTのときはOUT_TRUE1を出力、それ以外のときはOUT_FALSE1を出力」させる場合は、


 %Macro TEST1(TYPE=) ;

  %if &TYPE=T %then %let OUTDS1 = OUT_TRUE1 ;
  %else %let OUTDS1 = OUT_FALSE1 ;

  data &OUTDS1 ;
   x = 1 ;
  run ;

 %Mend TEST1 ;


のように書いたりします。

%TEST1(TYPE=T) ; での実行結果は以下のとおりです。


%TEST1(TYPE=F) ; での実行結果は以下のとおりです。



次のような記述でも同じ結果を出すことができます。

 %Macro TEST2(TYPE=) ;

  %let OUTDS2 = %sysfunc(ifc(&TYPE=T,OUT_TRUE2,OUT_FALSE2)) ;

  data &OUTDS2 ;
   x = 1 ;
  run ;

 %Mend TEST2 ;


IFC関数を使用して、条件分岐を1行の記述で済ませることができます。


%TEST2(TYPE=T) ; での実行結果は以下のとおりです。


%TEST2(TYPE=F) ; での実行結果は以下のとおりです。


ただしこの記述方法、お気づきの方もいるかと思いますが、真か偽の2分岐でしか使えません。

  %if ~ %then ~ ;
  %else %if ~ %then ~ ;
  %else ~ ;

のような条件分岐を作りたいときには使用できません。
あまり実用的ではないかもしれませんね・・・



=: 文字変数(文字列)の先頭○○バイトでの抽出




例えば以下のようなSASデータセットから、



変数Xの先頭1バイト目が"a"のレコードを抽出するときは、

data temp2_2 ;
  set temp1 ;
  where substr(x,1,1)="a" ;
  put x = ;
run ;

このようにSUBSTR関数を使用して記述します。

結果は以下のとおりです。


これと同様の結果を、比較演算子=:を使用すると以下のように記述できます。

data temp2_1 ;
  set temp1 ;
  where x=:"a" ;
  put x = ;
run ;


結果は以下のとおりです。



また、変数Xの先頭1バイト目が"a"または"A"のレコードを抽出するときは、


data temp3_1 ;
 set temp1 ;
 where lowcase(x)=:"a" ;
 put x = ;
run ;

のようにLOWCASE関数(またはUPCASE関数)と併用することももちろん可能です。




以上2点、記述をちょっとだけ簡単にする方法を紹介しました。

今回は、記述を簡単にするという観点だけで取り上げました。
必ずしもこの記述方法がベストだというわけではありませんので上手く使い分けてくださいね。


投稿者:@Massu_NI


[google]

ジャッジをしよう!

FGR v  AFC Wimbledon
Creative Commons License photo credit: nicksarebi

暑い日々が続いてますね!
夏休みはもう取られましたか?暑いですが頑張りどころですね。

そんな中、我がNIフットサル部は灼熱の中あえてフットサルを開催!
写真を撮るとかそんな余裕のかけらもなく、動く前から汗だくでした。

(下記は参加したウチの課長のお言葉・・・)

猛暑のなかフットサルやるとこんなに疲れるんですね(°□°;)less than a minute ago via movatwitter


暑い時期に炎天下で運動は気をつけましょう。



どうしても鈍ってしまう判断力




さて、これだけ暑いと判断力が鈍ることが多いかと。
仕事での判断力、集中力の低下は避けられないと思います。
ただし、判断力を下げてはいけない職業もあります。
つまり、ジャッジを下す人。「審判」ですね。

先のW杯でも、「誤審」という言葉を聞いたと思います。
誤審のおかげで試合が一気につまらなくなったり、集中力が切れたりと。
もちろん一瞬の出来事を判断しなければならない。
VTRで判断するとかいうが、その判断を行う時間試合が止まる。
ってことは、流れが止まるということが試合をさらにつまらなくする。


流れの中での判断




これって、何もスポーツだけのことではないと思うのです。
仕事場で、判断を待っている間、待つ時間。
その間に進められることもあると思う。

ただ、判断に時間をかければ正解が得られるというものではない。
これも、「流れを止める」ということ。
時間は止まらない。時間は流れているもの。
だからこそ、その場の流れの中での判断をする精度を高める必要がある。

しかし、一瞬の判断だけではうまくいかないこともあるはずです。。


そんな時は、経験から得たことが一つの指標になるとは思います。
ただ、パターン化することが必ずしもよいということにはならないはずです。
周りに意見を求めることも一つでしょう。
自分だけの判断で正としてしまうのも決して良くないこと。
どんな意見でも一度耳を傾けたうえでジャッジしてみよう!

投稿者:@DeDe_NI


[google]

2010年7月29日木曜日

32bit版?64bit版?

new SIMMs
Creative Commons License photo credit: jm3

昨今、Windows7もだいぶ普及し、32bit版、64bit版なんて言葉をよく目に耳にすることが増えたと思います。
また、量販店などでパソコンを購入する際には「メモリの増設をしますか?」何てこともよく聞かれます。
そこで今回は32bit版、64bit版とメモリ搭載量の違いについて簡単に触れたいと思います。


メモリ搭載量が大きく違う



まず、32bit版と64bit版では何が違うのかというとプログラムの命令拡張が違います。
これまでのコンピュータの歴史では、8bit → 16bit → 32bit ~というように拡張してきました。

命令拡張の違いとはいっても、具体的にどう違いがあるのか?
それは搭載できるメモリの最大容量です。

一般的に、32bit版では最大4GB、64bit版では無制限なんて言われ方をします。

32bit版は4GBまで搭載できますが、構成しているパーツなどの違いがあるもののデバイスが使用する領域も4GBの中に含まれるため、実質3GB~3.5GBくらいまでしか認識しません。

対して、64bit版では約172億GB(実際には制限が設けられているため4~32GB程度)です。
また、デバイスなどの使用領域はメモリへのアクセス領域とは別になっているため、物理的限界を超えない限りは搭載した分だけきっちり認識してくれます。


では、買うならどっち?



32bit版でもワープロや表計算などのビジネス用では十分なレベルです。
グラフィックスの分野でも、一般家庭用なら高性能なCPUでカバーできているので32bit版で特に問題ないかと思います。

また、64bit版はまだ完全に対応していないソフトやドライバがあります。
ソフトや周辺機器を購入の際には事前に確認する作業がまだ必要でしょう。

ただ、一方でメモリ4GB以上搭載のPCも今では主流になってきています。
これから新しくPCを買いたいと考えている方は、64bit版 を選んでみるのもいいかもしれません。

投稿者:小森谷


[google]

2010年7月19日月曜日

HTML5とは

先日、AppleがMicrosoftを抜いて世界で最も時価総額の高いテクノロジー・カンパニーとなりました。
 Apple、株式時価総額でついに Microsoftを抜く

そんなAppleの商品iPhoneやiPadがFlash非対応だということをご存知でしょうか?
業界トップのAppleのそのような背景もあり、Flashの代わりの動画再生手段としてもHTML5が注目されています。

HTML5とはHTMLの最新バージョンで、HTML4やXHTML1に代わる新たな規格になろうとしています。すでに各ブラウザも対応をし始めています。


Internet Explorer 8以降
Mozilla Firefox 3.1以降
Opera 9.6以降
Safari 3.0以降


HTML5の注目されている要素は、動画等のマルチメディアコンテンツが外部機能無しに見れるところです。
これは便利な機能です。

今まではWebサイトで動画を再生させる時は、ほとんどがFlashの動画再生機能を利用して実現していました。
しかし、HTML5では

2010年7月13日火曜日

BI関連の最近のツイート(2010/05/11~2010/06/10)

すでにみなさんご存知かと思いますが(!)、NIでは@ni_tweetsでSASの情報やBI市場の動向、その他業界全体の話題を中心に不定期に ゆる~くつぶやいてます。

今回は、そんなつぶやきの中からBIに関するつぶやきをピックアップしていくつか解説や感想を綴っていきます。

まず1つ目は、 ZDNet Japanさんの記事から。


BIツールのカタログ、意味わかりますか?--BIアーキテクチャから学ぶ初歩のBI用語 http://tinyurl.com/27qk3qkThu May 20 14:28:48 via API







BIを語るうえでも欠かせない各用語について簡潔に説明されています。

特に2ページ目からの、ETLの意味とその必要性、DWHとDMの役割りの違いについては、必要最低限のことが書いてあって分かりやすいです。








続いて同じくZDNet Japanさんの記事から。



オープンソースのBIツール「Pentaho Open BI Suite」が「Hadoop」対応へ - ソフトウェア - ZDNet Japan http://tinyurl.com/2e7mbuzWed May 26 04:48:13 via API








BIのオープンソースソフトウェアに関する話題です。

OSSのBIツール「Pentaho Open BI Suite」が、同じくOSSでApache製の分散処理システム「Hadoop」を採用したことにより、「Hadoop」をデータソースとした分析・マ イニングが可能になったということです。
国内での日本語化・ライセンス販売等のサポートは、大阪のKSKソリューションズさんが行っているそう です。








最後は、↑で紹介したHadoopに関する話題。



HadoopはBI市場の破壊的テクノロジーになる - Publickey http://tinyurl.com/3xpjcchWed Jun 02 15:04:53 via API








先ほどはOSSのBIツールとの連携でしたが、あのIBMも使用しているようです。
Hadoopを表計算のように使える「InfoSphere BigInsights」、IBMが発表


また、HadoopのBIツールへの貢献度はもちろんですが、記事後半のいわゆるBig Dataの変化に関する考察も興味深いです。

従来のトランザクションデータといえば、銀行やクレジットカード会社の金融系の取引情報、固定電話や携帯電話会社の通信情報、小売業全般のPOSデータ等 がメインでした。
それが最近では、Webでのアンケートやクチコミ等の顧客の言動を蓄積して分析することが増えてきているそうです。
Twitter等のソーシャルメディアでの発言も蓄積の対象でしょうか。

もちろんそのログは詳細であればあるほど正確な分析や予測につながるので、従来のトランザクションに匹敵するほどの膨大なデータ量になるそうです。





以上、BIに関する3つの記事を紹介させていただきました。

今回はオープンソース寄りの内容に偏ってしまいましたが、今後もBIに関する記事のツイートを続けていく予定です。
よろしければフォローもどうぞ。@ni_tweets
投稿者:@Massu_NI


[google]

2010年7月2日金曜日

COMPRESS関数の第3引数について調べてみました。(後編)

前回の「COMPRESS関数の第3引数について調べてみました。(前編)」の後編です。

前回は、アルファベット文字・数字・特殊文字を指定する場合の修飾子を紹介しました。
今回は、それ以外の第3引数について説明していきます。

■アルファベット文字・数字・記号に関する修飾子

F(またはf) アンダースコア("_")、アルファベット(A - Z, a - z)を取り除きます。
N(またはn) 数字、アンダースコア("_")、アルファベット(A - Z, a - z)を取り除きます。

実行例:

data _null_;
  x = "\123-4567_8901 B234+5678-9012 c";
  y1 = COMPRESS( x ,,"F");
  y2 = COMPRESS( x ,"1234","F");
  put y1= / y2=;
run;


実行結果:

y1=\123-45678901 234+5678-9012
y2=\-567890 +5678-90
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.00 秒
CPU 時間 0.00 秒




■機能を指定する修飾子
他の修飾子のように取り除く文字の種類を指定するのではなく、関数の機能を指定します。

I(またはi) 大文字と小文字の区別をせずに取り除くか否かを指定します。
K(またはk)関数の機能を「取り除く」から「残す」に変更します。

実行例:


data _null_;
  x = "\123-4567_8901 B234+5678-9012 c";
  y1 = COMPRESS( x ,"b","I");
  y2 = COMPRESS( x ,"1234","K");
  put y1= / y2=;
run;


実行結果:


y1=\123-4567_8901 234+5678-9012 c
y2=1234123412
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.01 秒





■修飾子の併用
修飾子は2つ以上指定することも可能です。
組み合わせを工夫することにより使い方の幅が広がるかもしれません。

例えば数字だけを残したい場合には、以下のように3種類の記述ができます。


data _null_;
  x = "2010/05/21";
  y1 = COMPRESS(x , "/"); * パターン1;
  y2 = COMPRESS(x ,,"FP"); * パターン2;
  y3 = COMPRESS(x ,,"DK"); * パターン3;
  put y1= / y2= / y3=;
run;


実行結果:


y1=20100521
y2=20100521
y3=20100521
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.00 秒
CPU 時間 0.00 秒



パターン1 : 単純に"/"を取り除きます。
パターン2 : アンダースコアと大小アルファベットを"F"で取り除き、句読点を"P"で取り除きます。
パターン3 : 数字を"D"で指定し、機能を"K"で「取り除く」から「残す」に変更します。

関数の対象となる値に、"/"だけが削除対象として入ってくる場合はパターン1でも問題ありません。
しかし、削除対象が複数ある場合や削除対象が特定できない場合など、パターン2や3が有効になるかもしれません。



以上、2回に分けてCOMPRESS関数の第3引数について解説しました。

普段使っている関数でも、使っていない機能や知らなかった機能などについて調べてみると、何かの場面で作業に活用できたりプログラミングの幅が広がるかもしれませんね。

投稿者:小森谷


[google]

2010年6月26日土曜日

祝!日本代表 FIFAワールドカップ予選リーグ突破!

やりましたね!!!
我らが日本代表がワールドカップの予選リーグ突破を決めました。
今日は寝不足で頭がボーっとしながら仕事をしている方も多いのではないでしょうか。

さて、今回はそんな日本代表デンマーク戦の選手採点を私@Miya_NIが
独断と偏見で勝手にやってしまおうと思います。
それでは早速、GKから順番に行きましょう。

GK 川島 : 7.0
安定した守り、オランダ戦スナイデルのミドルシュートの悪夢もあったが
今回はミドルシュートも位置取り良く安定してはじき返す。
PKを一旦止めたにもかかわらず押し込まれたあとの悔しがりかたがハンパない!
ドヤ顔も良すぎ。

DF 闘莉王 : 6.5
デンマーク相手でも気合の守備でボールをはじき返した。
バックラインのパス回しも安心して見れるしロングフィードも良し。

DF 中沢 : 6.0
総じて安定、要所要所でのヘディングクリアは光った。
が全盛期を過ぎているせいか、3戦を通じて若干の不安定さを感じることもある。
バックラインでのパス回しで出しどころが無い時の処理がたまに怖い。

DF 駒野 : 6.0
センタリング精度は相変わらず低い。
誰もいないゴール前にあげた時は笑った。

DF 長友 : 7.0
抜群の1対1の守備とスタミナ、Wカップ後は世界に?
今回は上がりから中央に切れ込んでのミドルも放つ。

DF 内田 : 8.0
全力で相手の裏へ駆け上がる。
日本の右サイドから世界の壁が崩れた。

MF 阿部 : 6.5
前半の序盤こそ、かく乱されたもののその後は
スペースを消す動きと寄せで活躍した。

MF 長谷部 : 6.5
どの試合でも一様な安定感を示せる中盤守備の要。
スルスルと前線に出たあとのラストパスの視野が若干狭い気もする。
デンマーク戦ではみずからスルーパスを受けシュート。

MF 遠藤 : 7.0
FKの2点目は非常に大きい。

MF 大久保 : 6.0
果敢な仕掛けから本田のFKを獲得
枠に飛ばないミドルシュートは今回キーパーの正面に変更。
狙いすぎたか?、威力もイマイチ。

MF 松井 : 6.5
得意のテクニックからチャンスを演出。
運動量も多く守備にも貢献。

MF 中村 俊輔 : 8.0
自分の役割を完璧にこなした。

FW 本田 : 8.0
日本中が鳥肌!!遂に見せたブレ球FK!
これまで、イマイチだった周囲との連携や
ボールさばきも各段に良くなり、最後は岡崎のゴールも絶妙演出。

と、いうわけで一部冗談もありますが最高の試合でしたね!
決勝トーナメントも楽しみです!

投稿者:@Miya_NI


[google]

2010年6月24日木曜日

最近の気になる英語圏News

「最近」といっても、ここ1ヶ月間くらいの鮮度ですが。

まずは、こちらから。

◇グラクソスミスクラインが、オープンソース的なやり方で新薬の開発を試みているという…

ニュースページへのリンク

従来、製薬会社はあたかもマイクロソフトにおけるソフトウェアと同様に、自社の知的財産や医薬品の開発手法を、自社独自のものとして囲い込んできた。(営利企業だから当然だけど。)

しかし、マラリアのような病気は、以外にも患者数が多くなく(おそらく世界的に見て限られた地域だけで発生しているから)、要するに、製薬企業にとって大して金儲けにはならないかもしれない分野であるという。

そこで、オープンソース的手法の出番という流れになったようだ。

グラクソと協調して働く会社に、シリコンバレーのCollaborative Drug Discovery Incという会社(おそらくベンチャー企業)がやはりオープンソース的手法で新薬開発に挑戦しているという。

さすがシリコンバレーという感じ。

もちろん製薬の工程や知的財産の取り扱いについては、超えなければならない壁はいくつもあると指摘する専門家もいるという。

確かに、オープンソース的手法は、その思想それ自体が「収益を上げること」という営利企業の根本姿勢から随分遠いところにある。

しかし、何はどうあれ、まずそこに挑戦してみるという姿勢・行動力は評価して然るべきではないだろうか。結果はどうあれ、こういう挑戦をしているグラクソとその周辺の人たちには賛辞を送りたいと思う。


次はこちら。

◆周知のことですが、こりゃまずい。原油流出事故。

ニュースページへのリンク

日本からは随分遠い海の話ではあるが、さすがにこの規模になると胸が苦しい。

現場付近には400種類ほど野生生物がいるということだし、これ以上の環境破壊は見るに耐えない。

こんなレベルだと仮にスパイダーマンがいてもどうしようもないだろう。

もう祈るしかない。早く事態が収束しますように。


続いてはこちら。

◆ちょっと意味深だと思いません?中国の工場で自殺が相次いでいるという事件。

ニュースページへのリンク

これもまた周知の事件ですが。

何とも痛ましい。
いくら労働力が安くても、別に命が安くなったわけではないから。

仕事を発注する側も、受ける側も考えねばなるまい。もちろん雇い主も従業員も。

技術革新も販売競争も大事かもしれないけど、それを下支えしている多くの人たちがいることを思うと、「豊かになるって何なんだろうね」なんてふと思ってしまった…。


では最後。

◇思いきり日本語圏ですが、この方は例外でございます。

ニュースページへのリンク

我らが総帥、梅田望夫氏(「ウェブ進化論」著者)がついにサバティカル明けだという…

待ってました!という感じ…

また、とてつもなく面白いこと(文章というコード)を書いて下さるのだろう。今から楽しみだ。

ところで、コードといえば、ガラパゴス諸島にいる「ハイブリッドイグアナ」をご存知だろうか。

結論から言うと、陸イグアナと海イグアナのハーフだ。

陸イグアナは、陸上に暮らし、陸上のサボテンなどを食べて生きる種で、海イグアナは海中の海草などを食べる種だ。

この2種が恋をして生まれたのが、ハイブリッドイグアナだ。

彼らは、海イグアナが食べれないサボテンも食べれるし、陸イグアナが食べれない海草も食べることができる。まさにハイブリッドだ。

「自然のコード」とも言うべき、生物における遺伝子という名のコードは、このように恐るべき可能性を秘めている。

ならば、技術革新やコンピューター言語(コード)がもたらす未来もまた、たくましく明るいものにならないだろうか…。

色々なNewsを見て回ったが、確かに現実は明るいものばかりではない。

社会や生物を取り巻く自然淘汰の仕組みは残酷なものだが、その先にあるはずの光明を信じたい。

自分自身が「淘汰される側」に入るかもしれないのにも関わらずそう思うのは、ひょっとしたら僕達は既に、「その覚悟」をプレインストールされているからなのかもしれない。


投稿者:@Nawito_NI

2010年6月17日木曜日

COMPRESS関数の第3引数について調べてみました。(前編)

普段から度々使うことのあるCOMPRESS関数ですが、今回は普段あまり使わない第3引数について調べてみました。
(少々記事が長くなるので前編後編の2回に分けて紹介します。)


第3引数にはキーワードとなる修飾子の文字列を指定することで動作を変更できます。

修飾子ごとにいくつか分類して説明します。

■アルファベット文字に関する修飾子

A(またはa) アルファベット (A - Z, a - z) を取り除きます。
L(またはl)小文字アルファベット (a - z) を取り除きます。
U(またはu) 大文字アルファべット (A - Z) を取り除きます。

実行例:

data _null_;
  x = "\123-4567-8901 B234-5678-9012 c";
  y1 = COMPRESS( x ,,"L") ; * 小文字アルファベットを取り除きます ;
  y2 = COMPRESS( x ,"ABCD","L") ; * "ABCD" と小文字アルファベットを取り除きます ;
  put y1= / y2= ;
run;


実行結果:

y1=\123-4567-8901 B234-5678-9012
y2=\123-4567-8901 234-5678-9012
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.34 秒
CPU 時間 0.04 秒



■数字に関する修飾子

D(またはd)数字 (0 - 9)を取り除きます。

実行例:

data _null_;
  x = "\123-4567-8901 B234-5678-9012 c";
  y1 = COMPRESS( x ,,"D") ; * 数字を取り除きます ;
  y2 = COMPRESS( x ,"ABCD","D") ; * "ABCD"と数字を取り除きます ;
  put y1= / y2=;
run;


実行結果:

y1=\-- B-- c
y2=\-- -- c
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.00 秒
CPU 時間 0.00 秒



■特殊文字に関する修飾子

P(またはp)句読点や記号など(,./\<>?_;:+*@`!"#$%&'()_-=^~\|[]{})を取り除きます。
C(またはc)制御文字を取り除きます。
S(またはs)ブランク("")、水平移動タブ("09"x)、垂直移動タブ("0B"x)、行頭復帰("0D"x)、改行("0A"x)、改ページ("0C"x)などを取り除きます。
G(またはg)図形文字を取り除きます。
W(またはw) 印字可能文字を取り除きます。

実行例:

data _null_;
  x = "1"||"09"x||"2"||"09"x||"3"||"09"x||"4"||"09"x||"5";
  y1 = COMPRESS(x,, "S"); * タブ("09"x) を取り除きます ;
  y2 = COMPRESS(x, "34", "S"); * "34" と タブ("09"x) を取り除きます ;
  put y1= / y2=;
run;


実行結果:

y1=12345
y2=125
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.00 秒




いかがでしたでしょうか?
どの修飾子の場合も第2引数との併用ができます。

その他修飾子については後編で紹介します。

投稿者:小森谷

2010年6月5日土曜日

NIフットサル再び開催!

技術的なことが続いていたので、ちょっと別のネタを。

先日5月22日に、NIフットサルを開催しました!
今シーズン3回目ともなると、みなさん動きが軽快ではたから見てるとなかなかいい動きでした。

毎回参加の社員および友人各位からは、「次回はいつ?」という声が聞こえるくらいの定例行事化しつつあり、日々のストレス発散や社内のコミュニケーションにも役立っているのではないのでしょうか?

まだ、参加したことない方も是非、一度来てみましょう!
軽くプレーするくらいならなんの問題もありませんよ!

筆者は毎回参加してますが、一つもうまくなってません(笑)
ですので、安心していらしてください!

↓試合風景1


写真を撮影しだしたころから急に曇り、天気がいいとはいえない絵になってしまってますが。

↓試合風景2


↓試合風景3


今回は動画もありますので、ごらんください。
(ただし、手ぶれが激しいのでご注意ください)

http://twitcasting.tv/dede_ni/movie/169630#

以上、課外活動の報告でした。

投稿者:@dede_NI

2010年5月26日水曜日

SAS v9.2とv9.1でのkindex関数の違いについて

v9.2 から kindex関数の仕様が変わりました。
v9.1とv9.2でのkindex関数の仕様の違い、またindex関数についても検証してみたいと思います。

まず、以下のプログラムを実行してみます。


data _NULL_;
    ni="ネイチャーインサイト";


    var1=kindex(ni, "ネイチャーインサイト"); * 検索文字列の前後に半角ブランクが無い時;
    var2=kindex(ni, " ネイチャーインサイト"); * 検索文字列の前に半角ブランクがある時;
    var3=kindex(ni, "ネイチャーインサイト "); * 検索文字列の後ろに半角ブランクがある時;
    var4=kindex(ni, " ネイチャーインサイト "); * 検索文字列の前後に半角ブランクがある時;


    length test $25;
    test="ネイチャーインサイト";


    var5=kindex(ni, test);

    put var1= / var2= / var3= / var4= / var5=;
run;


結果はこうなります。

▼v9.1の場合

var1=1
var2=0
var3=1
var4=0
var5=1
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.00 秒
CPU 時間 0.00 秒



▼v9.2の場合

var1=1
var2=0
var3=0
var4=0
var5=0
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.01 秒



var3, var5の結果が違っているのがわかります。

v9.1までのkindex関数は、検索文字である第2引数の後ろのブランクを削除した後に文字列検索をする動きになっています。
対して、v9.2からは第2引数の後ろのブランクを残したまま文字列検索を行います。

var5のパターンの場合でも、変数の長さが25バイト用意してあるため、"ネイチャーインサイト "という文字列として文字列検索を行い、アンマッチとなります。

以上の違いにより、v9.1とv9.2ではkindex関数の結果に違いが生じます。


ではindex関数はどうなっているのでしょうか。

以下のプログラムを実行してみます。


data _NULL_;
    ni="natureinsight";


    var1=index(ni, "nature");
    var2=index(ni, " nature");
    var3=index(ni, "nature ");
    var4=index(ni, " nature ");


    length test $25;
    test="nature";


    var5=index(ni, test);

    put var1= / var2= / var3= / var4= / var5=;
run;



結果はこうなります。

▼v9.1の場合

var1=1
var2=0
var3=0
var4=0
var5=0
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.01 秒



▼v9.2の場合

var1=1
var2=0
var3=0
var4=0
var5=0
NOTE: DATA ステートメント 処理 (合計処理時間):
処理時間 0.01 秒
CPU 時間 0.01 秒



どちらも同じです。

v9.2からのkindex関数のように、第2引数の後ろのブランクを削除せずに文字列検索を行っているようです。

このように、v9.2より前のSASではindex関数とkindex関数では動きが異なっていたんですね。
v9.2からのkindex関数の仕様変更により、index関数と動きが統一され分かり易くなりました。

また、このv9.2からのkindex関数の仕様は、NLSCOMPATMODEで実行、またはシステムオプションに指定することで以前の仕様に戻すことができます。


投稿者:@hoshi_NI


2010年5月19日水曜日

Twitterのアイコンを作ってみました。

NIでも以前からTwitterを始めていますが、先日アイコンを作ってみました。

アイコン変えてみました。less than a minute ago via HootSuite



ま、デザインのセンスはさておき、興味のある方はどんどんフォローしてください。
当ブログのサイドバーにもつぶやきを自動表示させています。

ちなみに、↑のTwitterのつぶやきを表示しているのは、Blackbird PieというWebサービスです。


投稿者:@massu_NI


2010年5月17日月曜日

DDEを利用したEXCEL表読込みのTips

DDEを利用したEXCELの表を取り込む際に
表の行数が何行になっても対応できる方法です。

まず下のような表があり、赤枠の部分を読込みたいとします。



この表をDDEで取り込む場合通常は以下のようにfilenameステートメントを記述します。

filename myxls dde "Excel|[Book1]Sheet1!R2C1:R3C3";

data test;
infile myxls;
input name $ sex $ age;
run;

無事にデータセット化できました。


では下の図のように表に値が追加されていった場合はどうすればよいでしょうか。
filenameの記述を毎回書き換えるのは少し面倒ですよね。


こういう場合はfilenameステートメントを次のように記述しておきます。

filename myxls dde "Excel|[Book1]Sheet1!C1:C3";

R1C1参照の部分を以下のように変更しています。

R2C1:R3C3

C1:C3


SASデータセットに取り込むプログラムは次のように変更します。

data test;
infile myxls firstobs=2;
input name $ sex $ age;
run;

firstobs=2を追加していますね。

無事にデータセット化することが出来ました。



R1C1形式の指定をカラム情報のみにすると指定したカラム範囲の全てのデータを対象にします。
(firstobs=2を追加したのは表の項目ラベルも対象範囲にはいってしまうためです)
こうしておく事でデータが随時追加されていく表に対しても
プログラムの変更なく取り込むことが出来ますので、覚えておくと便利です。

おわり


投稿者:@miya_NI


2010年5月7日金曜日

マニュアル

マニュアルによる管理は、多くの人に短時間で一定レベルの仕事をさせようとする際とても有効な手段である。
一方でイレギュラーケースに弱く、仕事に対する意識の低下を招きやすい。

毎朝のミーティングで、30秒トークという時間を設けている。その中でこんな話があった。
「夕食後の皿洗いを手伝った際、肉の脂がべっとりとこびり付いていたので、お湯で流してから洗ったらほとんど洗剤を使わずにきれいになった・・・・」
30秒程度で自由に話す内容ではあるけれど、とても考えさせる話だった。

皿洗いは手段。その目的は皿をきれいにすることである。
皿洗いという行為を知らない人に皿洗いという仕事を教える時、あなたならどんな指示を出すだろう。

A.スポンジに洗剤をつけて皿の表裏を3回以上なでた後、水ですすいで
B.使用済みの皿をきれいにすることが君の仕事だ。これまでこんな方法できれいにしてきたが、より良い方法を考えて実践してほしい。

皿洗いを長いこと続ける時、その作業を限定的に捉えるか大本の目的を達成するための1つの手段と捉えるかで得られる結果は大きく変わってくる。
A、Bそれぞれの方法を何年も繰り返し引き継いでいったとしたら・・・。
 
実際の職場では、マニュアルと目的の共有は併用されていることがほとんどだとは思う。
けれど、忙しい現場が増員を図った時など、目先の指示出しに終始し手戻りが多いと感じることはないか?
そう感じたらそれは目的の共有という基本に戻るためのチャンスだ。

2010年4月14日水曜日

iPhone用ビューのプラグイン「WPtouch」を使ってみました。

WordPressのiPhone用ビューのプラグイン「WPtouch」を使ってみました。

iPhoneからアクセスするとトップページはこんな感じで表示されます。


タグ一覧はこんな感じに。


カテゴリ一覧はこんな感じに。


記事そのものはこんな感じに表示されます。


インストールしてから設定までものの3分もかからずにできました。

ちなみに、NIでもiPhoneユーザが増えてきています(笑)


投稿者:@massu_NI


2010年4月6日火曜日

フットサルやりました

4月3日にNIのメンバーとその知人の方々でフットサルをやりました!!
実はこのフットサル、約1年ぶりだったのですが皆さん走り回って大いに汗を流して楽しみました。

NIメンバーの声掛けで集まってくれた皆様、ありがとうございました!
これを機にまた定期的に(最低月1回目標)開催していきますので今回参加できなかった皆さんも
次回は奮ってご参加下さい!



▼全員集合写真


▼試合風景-その1


▼試合風景-その2


▼ベンチ風景-その1(今回得点王の女性プレイヤー!)


▼ベンチ風景-その2

ツイート数からみる"バーチャルYouTuber"ブーム

今や YouTuber の話題の半分を占めるほどのクチコミ数に 当社が提供するソーシャルビッグデータ検索ツールの「 beInsight (ビーインサイト)」を使って、話題の「バーチャル YouTuber 」について調べてみました。 「バーチャル YouTuber...