Windows 8 に備えて (1)

Windows 8に備えて256GBのSSDを購入した。14,900円。
今Windows 7で使っている128GBのSSDを去年買った時の値段もそれくらいだったと思う。
一緒に購入した2.5インチのHDDは1TBで6,848円。
データファイルやバックアップを置くのに使おうと思う。

ところで、いざPCを分解してディスクを装着しようと思ったら、SATAの電源コネクタが太すぎて隣のディスクと干渉したり、プラグがL字型でシャーシとぶつかったりで、想定外の事態が発生。
とりあえずHDDだけケーブル差して、SSDは諦めた。
すぐAmazonにアクセスして、必要なケーブル、いつか必要になりそうなケーブル、まとめて注文した。
PC強化は続く。

ConEmu

最近お気に入りのWindowsソフトであるConEmuを紹介する。
ConEmuはWindowsのコンソールエミュレータで、コマンドプロンプトやPuTTY等ターミナルソフトのコンソールアプリケーションをラップして実行する為のソフト。
同様のソフトにConsole2があるけれども、以下の点でConEmuが優れている。

・ジャンプリストにタスクを追加出来る。Windows7が出てもう3年も経って、未だにジャンプリストをサポートしないConsole2は使えない。
・UAC権限昇格してシェルウィンドウを開ける。
・まさに待望の、キーボードでスクロールバックが出来る。
・まるで夢のような、矩形選択コピーが出来る。

と、それ以外にもいろいろあるけど、最大のオススメポイントは、開発が非常に活発である事。
ConEmuは2012年9月現在、毎日のように新しいビルドが出来てる。
一方でConsole2は新しいリリースが2年半ほどない。
古いものは新しいものに劣るのがコンピュータの世界。がんばれConEmu・・・、お前がナンバー1だ、と。

Kindle

KindleでJavaの本を買ってみた。
KindleはAmazon社が提供している電子書籍サービスで、同名の専用端末を持って無くても、PCやiPadに専用アプリを入れる事で読む事が出来る。
日本ではまだサービスを展開してないけれど、アメリカのAmazonのウェブサイトにアクセスすれば簡単に書籍の購入ができた。
Javaの本なので、PCで本を読みつつ、Eclipseを起動してサンプルコードをコピーアンドペースとしようと…しても出来ない。
電子書籍だからテキストをコピー出来なくなっている。
コード部分だけでもコピー出来るといいんだけど、仕方ない。
スクリーンキャプチャは撮られた。

MacOS X 10.7 – Lion

今更ながらにうちのMacBookProを10.6から10.7にしてみた。
ちょっと感想を述べてみる。

最初に気づいたのが、スクロールが逆になった事。トラックパッド(あるいはマウスのホイール)を下にスクロールさせると、画面は上にスクロールするという動作。
慣れればこれでも良いかもしれないけど、Windowsや10.6までのMacと併用する場合、致命的に使いづらい。
なので、すぐに設定を変更して、これまで通りの動作に戻した。

次に気づいたのが、Aquaインターフェイスの水色のスクロールバーが変更された事。スクロールアロー(上下の矢印)が消えて、細いグレーのバーだけになってる。
前々からAquaの水滴っぽいアピアランスはくどくて格好悪いと思っていたので、それはいいんだけど、スクロールアローまでなくしたのは疑問に思う。
トラックパッド操作ならスクロールバーを使う事は少ないけど、マウス操作の場合は横スクロールするのにスクロールバーを使う必要がある。

他に気になったのは、フルスクリーン機能。ウィンドウ右上のボタンを押すと、メニューバーが消えて、ウィンドウが画面全体に広がり、アプリケーションがいわゆる全画面表示になる。
これってどういう時に使うんだろう?
Macのアプリケーションはメニューバーの文化だから、メニューバーが消えるのは操作性に大きく影響を与える。
Windowsのウィンドウ最大化みたいに、普通にウィンドウが画面いっぱいに広がるだけにした方が素直に使いやすいと思うのだけど。

ところで、10.7で一番楽しみにしてたのが、ターミナルの256色対応。
ターミナルを起動して、vimのカラースキームを256色に変えてみると、確かに対応してる。綺麗になった。
なんだけど、vsplitで画面を縦分割すると、スクロールが遅い!しばらく上下にスクロールさせつつ考えてみたけど、これはダメだ。
自分の場合、ターミナル上のvimがもっともよく使うアプリケーションなので、これは致命的にダメ。
絶望的な気持ちで、なんとかならないかとフリーウェアのiTerm2をインストールしてみたら、あれ、案外スクロール速い?
以前iTerm2を試用した時はスクロール遅くてダメだなと思ったんだけど、いつの間にか改善されてる。
10.6までのターミナルほど速くはないけど、これならなんとか我慢出来る。

というわけで、10.7を総評すると、微妙な出来かな。
自分は旧MacOSのSystem7の頃からMacを使ってて、最初のOSXを見て、Macはガラリと変わったなと思ったんだけど、それと比べても10.7は随分違ったものになったと思う。
AppleにとってメインストリームはiPhoneであって、Macじゃないんだと思う。
MacはiOS寄りになっていってる。スクロールが逆になったり、スクロールバーが変わったり、フルスクリーン機能だったりは、全部iOSの文化。
普段使ってるデジタルデバイスがiPhoneで、たまにパソコンも使うという人には、10.7は良い物なんだろうと思う。

Excel列名変換問題 – SQL編

ここにExcel列名変換問題というのがあって、内容は下のようなもの。

問題1: Excel列名変換問題
仕様
入力されたアルファベットを数字に変換する。
変換ルールはExcelの列名と同等。
例) A=1、B=2、Z=26、AA=27、XFD=16384
起動時引数
[0] アルファベット (A~ZZZZ…[上限なし])*2
実行例
ExcelColConv.pl A → 1
ExcelColConv.pl AA → 27

で、SQLで考えてみた。PostgreSQLのバージョン9以降。
(generate_series()が必要なので。MySQLなんかだとピボットテーブルが必要。)
SQL上手い人はもっといい解法をいくらでも思いつくんだろう。
入れ子集合モデルとか眩しすぎる。
自分には一生かかっても思いつきそうにない。

#!/bin/sh

str=$1
SQL="
SELECT SUM(y.num) AS result
  FROM (
    SELECT x.*, __indexes.n * (26 ^ (x.pos - 1)) AS num
      FROM (
        SELECT substr(_chars.chars, _chars.n, 1) AS c, length(_chars.chars) - _chars.n + 1 AS pos
          FROM (
            SELECT generate_series(1, length(chars.chars)) AS n, chars.chars
              FROM (
                SELECT '$str'::text AS chars
                 ) chars
             ) _chars
         ) AS x
      JOIN (
        SELECT _indexes.n, _indexes.c
          FROM (
            SELECT n, chr(indexes.n + 64) as c
              FROM (
                SELECT generate_series(1, 26) AS n
                 ) indexes
             ) AS _indexes
         ) AS __indexes
     USING (c)
     ) y;
"
echo "$SQL" | psql