awkが便利だとずっと言い続けてるので取り組んでみる

awk-programing以前の仕事は小売店のネットショップを運営する部署でのちょっとシステム寄りな事を担当していました。楽天市場、ヤフーストア、自社サイト(独自)の仕様に合わせてプログラマーがカスタマイズしたシステムで連携をしていましたが、その場限りのやっつけ仕事となるとプログラミングという手間をかけるメリットは無いので、なんとかやっつける事になる訳です。そういう仕事が結構私には多かった。

幸いというか、その前にシステムの保守の仕事をしていた時から、交代制で夜勤があり、システムを管理して運用する仕事もあって、そこで通信機器のログを毎晩必ずフロッピーディスクに保存するという作業が含まれていた。そのデータはテキストデータでしたが、CSV形式ではなく、固定長のテキストデータだったので、MS-AccessやFilemakerを使って統計を出したりしていたものです。まだMS-Accessのバージョンも1.0でパソコンのOSはWindows 3.1(MS-DOS)だったと思います。

そんな頃からテキストデータの扱いを試行錯誤頭をひねりながらやって来ているので、規則性を見出すと大抵の場合はPCを使ってちょっとした繰り返し処理をさせれば実現出来るというのは体感的に学習しています。MS-AccessやFilemaker、MS-Excel、そしてMS-Wordなんてものを使い分けたり組み合わせたりしてやっつけて来ました。

そんな私にとっての画期的なツールが、awkというスクリプト言語なのですが、この感動は言葉では伝えにくいものがあります。幾度と無く「正直に書くブログ」でawkの事を取り上げてきましたが、中々伝えるというのは難しいものです。まずは実際にやっていただく事が重要なのですがそれを期待するのはかなり難しいのが現実です。

しかし私はそれでも思います。日常の業務において、規則性を持ったテキストデータを処理している方は、是非ともawkに興味を持っていただきたいと思います。awkはちょっとしたルールを覚えるだけで強力な処理を簡単に実現してくれるプログラミング言語だからです。プログラミング言語と言うと拒絶反応を示す人は多いと思います。事実私もその一人でした。しかしawkは非プログラマーに対して易しいプログラミング言語です。もう少し適切に表現するとawkという言語は、使いこなすのに100覚えなくてはならないとすると、2~3程度、基本ルールを覚えるだけで容易に結果が得られるのです。しかも非常に高速に。

Mac OS XもUNIX系ですし、Linuxも普及して来ましたから、awkという古の言語も実は多くのPCで当たり前に使用できてしまいます。しかし多くの職場ではまだWindowsをメインで使用していると思いますが、そのWindows上でawkをWindowsユーザーにも非常に使いやすくしてくれる「おーくの友だち」というアプリケーションがあります。awkは本来UNIX系のプログラムなので、コマンドを打ち込んで操作をする仕組みになっているのですが、「おーくの友だち」はそれをコマンド入力ナシにしてくれています。

もちろん、awkもプログラミング言語なので、実際の処理手順は文字入力をして組まなくてはならないのですが、たった1行、欲しい情報を取り出す記述だけでも場合によってはExcel等を使う場合とは比較にならない位の手軽さで実現出来てしまいます。テキスト処理系の仕事が多い人は使わない手は無いです。食わず嫌いせずに是非awkの凄さを見て欲しいものです。

とは言うものの、文章で書いても説得力が無いので、実際の操作を動画で録画してYouTubeにアップロードする事にしました。「ドットインストール」を参考に喋りながら録画してみようと思ったのですが、どうにもこうにもマイクの音質が悪くて全然ダメです。機材をきちんとしないと無理だと痛感しました。よって音声ナシで当分は進めます。

YouTubeに字幕を付ける機能が有ることを知ったのでこれでポイントのコメントは入れておくことにします。いちいちオーサリングソフトで字幕付けるのは流石にイヤなんですよね。

Windows7環境でPostgreSQL

PostgreSQLは今までずっとLinuxサーバー上に構築してきたので、Windows版を使った経験が無くて敬遠していた所があったのですが、EC-CUBEのテストをやりたいのでPostgreSQLをローカル環境で使いたくて試してみたところ簡単に構築出来てしまいました。

pgAdmin-IIIPostgreSQLのWindows版をインストールするのは、コレといってどうという話でも無いのですが、インストーラに「スタックビルダ」というものが付属されていて、試しにオプションを確認してみたところ、Apache/PHPという項目と、phpPgAdminという項目があるではないですか。選択するとネット経由で当該インストーラをDLしてくる仕組みらしいですが、PostgreSQLをインストールしたPATHを案内してやるだけで後はお気軽インストール。

続きを読む

Windowsシステムの復元ポイントを活用する~トラブル時に手間がかからず復旧出来る確率が高い

Windowsパソコンを使っていてトラブルに遭遇してしまい相談を受けることがあります。その様な場合に、私がまず確認するのは、そのトラブルが発生した原因と、何時からなのか?という2点です。

なぜかと言うと、Windows OSの場合、XP以降は「システムの復元」という方法でシステム的なバックアップを取る仕組みが実装されているからです。この方法を使うと直近の復元ポイントまでシステムの状態を戻す事で、PCのトラブルの原因となった事象を無かったことに出来る可能性があります。

言い換えると、Windowsのシステムを「過去の状態に戻す」機能を使います。

続きを読む

Windows7で休止状態が使用できない件

Windows7はそこそこ良くできたOSだと評価しているつもりなのですが、細部でMSのお節介が鬱陶しいことがあります。

その1つが「ハイブリッドスリープ」で、スリープと休止を合わせたような機能なんですが、要するにスリープ状態なのでPCは省電力で動作している訳ですね。PCにもよると思いますが、私のPCの場合は、ハイブリッドスリープの状態だと頻繁に電源のLEDが点滅する訳ですよ。ブルーのLEDなので夜は眩しくて特にうざい。それとマウスが少し動いただけで復帰してしまうのが非常に煩わしい(こっちの方が問題だ)。

Windows XPの頃に実装されていた「普通の休止状態」にしたいと思って、スタートメニューからシャットダウンやらスリープやらを探してみたのですが、休止状態にする操作が選べない(表示されていない)。ふざけんなよと思った訳ですが、ちょっと調べれば分かることだろうと思って調べてみたところ、MSがわざとそうしていることがわかりました。要するにハイブリッドスリープを使う代わりに休止状態が使えない仕様なんだと。

少し設定を変更して「休止状態」を使えるようにします。ハイブリッドスリープは使わないので要らないです。その手順を記します。

一応、PCが休止状態をサポートしているか調べます。
全てのプログラム-アクセサリ-コマンドプロンプトを管理者として実行します。
コマンド「powercfg /a」を入力

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\Windows\system32>powercfg /a
以下のスリープ状態がこのシステムで利用可能です:
スタンバイ ( S1 S3 ) 休止状態 ハイブリッド スリープ
以下のスリープ状態はこのシステムでは利用できません:
スタンバイ (S2)
システム ファームウェアはこのスタンバイ状態をサポートしていません。
C:\Windows\system32>

休止状態をサポートしているのが確認出来たので、この機能を有効にします。

C:\Windows\system32>powercfg /h on

/hの意味は「Hibernate」という意味になります。探究心の有る方はPOWERCFGというコマンドを調べてみましょう。/?でコマンドについてのヘルプが表示されます。

C:\Windows\system32>powercfg /?

さて、次に「ハイブリッドスリープを無効にします」
スタートボタンをクリックして、検索BOXに「電源オプション」と入力して設定画面を表示させます。そこで自分が使っている電源プラン(お気に入りプラン)から、プラン設定の変更-詳細な電源設定の変更をクリックします。

スリープ-ハイブリッドスリープを許可するを見つけ出して、オフにします。ハイブリッドスリープをオフにしないと、休止状態が使えないのが仕様らしいです。MSの考えることはよく理解出来ない事が結構あります。

これで、スタートボタンから、休止状態が選べるようになりました。より高速に復帰出来るハイブリッドスリープらしいですが、中途半端な複合機能よりはシンプルな方が私は良いと思っています。それを簡単に選べない仕様が中途半端だと思います。

MSはそういうところ結構あるんですよね昔から。OSの設定に無駄な知識が必要という。少なくともMacOSの様なユーザーフレンドリーではありませんね。まぁ、その御蔭でMS関係で飯食えるエンジニアも生業として成り立つ訳ですが。

Hibernate