Ubuntu 9.04 そのさん

さて Ubuntu 9.04 をインストールいたしました、更に続き。

何か忘れているなぁ?と思いながら Y901x の開発再開をしようとする。

…Glade をインストールしてねぇ!

ということで毎度のように追加と削除から。
あれ?こんなにサイズがデカかったかな…落とすのにえらく時間が掛かるような。
とにかくインストール完了した時点でバージョン確認のために起動。

ちょー!メチャメチャ変わっている!!!

glade_a

v3.4.5 → v3.6.1 なんだがマイナーチェンジに見えないわ。
一応今までに作った y901window.glade は開けるが古さを感じてしまった。
GtkBuilder と Libglade が選択できるのは解っていたが進化が早すぎ、、、、、

GtkBuilder 形式って GtkListStore や GtkTextBuffer も含められるのか。
View と Data をまとめようってこと?それ WPF と真逆だと思うんですけど。
なんかいっぱいウイジェットが増えているし、ガンマ曲線とかって何よ?

他やれることが至れり尽くせりに、旧バージョンはいったいなんだったの。
「展張」とか意味不明すぎる日本語訳はそのままだけど。

せっかくだから UI Mnager を使いたいが使い方がイマイチ解らない。
ググるも見当たらず、又自分で弄くり回して覚書を作るしかないか。
あぁせっかく書いた PyGtk+Glade 覚書は早くも過去の遺物になった。

同時に入る DevHelp もボリュームたっぷりに進化。
Evolution や Totem の Core API まで解説とは…サイズがデカいわけだ。
そうそう、何故か巨大だった文字サイズは普通になった。

devhelp1

Glade 関連だけで長くなりそうなので以後まとめページを作るとして。
開発繋がりで MonoDevelop を少し試してみます。

前回書いたとおり 9.04 では MonoDevelop のみインストールすれば全部揃う。
早速 C# 3.0 仕様に対応しているか簡単に試してみます。

using System;

namespace hello
{
    class Cls
    {
        public string s{get; set;}
        public void write(string t)
        {
            Console.WriteLine(t + s);
        }
    }

    delegate string Delgt(string t, string u);

    /// <summary>
    /// エントリポイント
    /// </summary>
    class MainClass
    {
        private static void DTest(string t, string u, Delgt d)
        {
            Console.WriteLine( d(t, u) );
        }

        public static void Main(string[] args)
        {
            // var が使えるか test
            var s = "あいうえお";
            Console.WriteLine("{0}_かきくけこ", s);

            // 省略プロパティ test
            var ss = new Cls();
            ss.s = "たちつてと";
            ss.write("さしすせそ_");

            // 匿名メソッド test
            DTest("匿名メソッド", "の出力", delegate(string t, string u) {return t+u;});

            // ラムダ式 test
            DTest("の出力", "ラムダ式", (t, u) => u+t);
        }
    }
}

mono_hello

おぉ動く動く。
他人が読みにくいコードを書いて悦に浸りたいなら C# は最強だね。

MonoDevelop の全置換って Tab の正規表現 \t が使えないんですけどぉ、、、、、
gEdit で置換しました。

ん?標準で作成するソースに utf-8 の BOM が付かなくなった。
IDE からソース追加すると元々付かなかったんだが、無しに統一かな。
MSBuild 形式になった sln ファイルには付いている。

bom

Visual Studio は全ファイルに BOM を付けているはずなんだけーが。
てか sln だけ改行が CRLF だよ、ややこしいったらありゃしない。
BOM という概念は撤廃してくれよ、必要なのはもはや MS 関連のみなんだから。

コード保管は随分賢くなったなぁ、リファクタリングはさすがにまだ無いか。
これも長くなりそうなので以後まとめページを作る。

今回は「追加と削除」から手に入る最新開発環境の簡単な紹介でした。

Ubuntu 9.04 そのに

さて Ubuntu 9.04 をインストールいたしました、続き。

ちょー!
Totem に flv や wmv を放り込んで codec を入れていたんだが…
得に怪しいこともしていないのに RealMedia がサムネイルされていた…
当然 GStreamer から普通に RealMedia が再生できるんですけど…
ライセンスはいいのだろうか?某社はもう諦めたのだろうか。

まあソレはソレとして。
コレがなくては不便なので入れるアプリの覚書。

Opera ブラウザ
VirtualBox 仮想マシン
Sylpheed メーラー
Hex Editor バイナリエディタ
KeePassX パスワード管理
Apache2、PHP、MySql ローカルサーバー
MonoDevelop C# と C/C++ 開発手抜き用
flashplugin-installer、lha-sjis 日本語環境セットアップヘルパから
gcc は後述
自作アプリと自作 gEdit プラグインと自作シェルスクリプトもろもろ。

後は最初から入っているアプリで全部まかなえる。
アプリやサイトを作って遊ぶか YouTube かしかやっていないような…
パーソナルユースなんて人それぞれだい。

以前は nautilus-gksu とかがありがたかったけど慣れると端末のほうが融通が効く。
つかクソ長いパスでも端末に sudo gedit とか打ってファイルをドロップすればいいんだし。
mono アプリも mono って打ってドロップ、覚えておくと便利だよ。
ま、今は Tab キー使うけど。

気がついたが Gtk アプリの GtkHScale とかにフォーカスが移ると網掛けが入る。
ATI だったので 8.10 まで 2D で使っていたのだが前からこうなのかな?
Totem のシークバーとかでウザいんだが、当然 Y901x もそうなるが。

前回書き忘れたが ATI でも 3D で動画がチカチカしなくなっているよ。
逆に本家ドライバーを入れるとどうなるか解らない。

あれ? build-essential は入れていないのに gcc や libc6 が既に入っているぞ
Ubuntu のポリシーからして最初から入っているなんて思えないんだが。

Ubuntu — Details of package monodevelop in jaunty

MonoDevelop を導入した時に同梱されていたようで。
前のパッケージは C# コンパイラさえ別配布だったのに親切になったものだ。
gmcs とかは書いていないけど入っていた。

それよりやっぱり gEdit がおかしい。
smart_home_end を BEFORE にしても AFTER のままな動きになったり。
その場はよいのだがログアウトするとダメになったり、よーわからん。
スニペットの $0 指定が効かないのは $1 に書き換えればとりあえず動く。

snip

これじゃ標準のも書き換えせにゃならんわ、まいった。

Ubuntu 9.04 そのいち

さて Ubuntu 9.04 をインストールいたしました。

まず Vista からデータの引越し、は一ヶ月しか使っていないので簡単。
Ubuntu の HDD に戻し細々したものをバックアップ、よしやるぞ。

普通に CD を焼いて 8.10 を入れてあった HDD に上書きしようと思ったら

install1

あらら、以前のバージョンとデュアルブート可能なんですね。
よく考えたら Windows とデュアルブートできるんだから当然かも。
でも旧バージョンは VirtualBox で使う予定なので上書きで行った。

完了したところで再起動。
うわ!本当に OS の機動が早い、噂は本当だった。

外観の設置に Dust Sand とかいうのが追加されている。
こんな感じ、どこかに似たような OS がありますね。

macimg

又 gEdit は上記画像のようにステータスバーからタブ幅が変更可能になった。
gEdit の変更はそれくらいか、微妙、ルーラーは付かないのかな?
あれ?スニペットが $0 指定位置にいかないんだけど…バグ?

ところで私のグラフィックカードは AMD 690G チップセット内臓品。
9.04 は ATI ドライバーを導入せずとも初回からエフェクトが可能になっている。
動画を少し再生してみましたがアクセラレーションも効いているようです。
只この状態だと Alt+PrtSc でタイトルバーが含まれないんだよなぁ…どうしよう。

sylpheed,flashplugin,lha-sjis を日本語セットアップヘルパから導入。
追加と削除にはやはり Opera が無いので公式から導入、8.10 用でイケた。
FTP や SSH は Nautirus でいいや。

そういえば Nautirus の D&D 移動は色が付いて解りやすくなっている。
あの妙に大きかったタスクバーのサイズが Windows XP と同じくらいなサイズに。
おぉ、キーボード設定のリピートキー間隔設定がキチンと摘要されるようになった。
地味に使いやすく進化しているね。

VirtualBox は何故か追加と削除に2つある。
とりあえずいままでどうりに ose 版を導入しておこう。

vboxgtk

Python は 2.6.2
Mono は 2.0.1
Perl は 5.10.0
Ruby は相変わらず無し

PyGtk は 2.14.1 になっている、少し嬉しい。
とにかく Python 関連は OS が依存しているからヘタに変更できないのよね。

MonoDevelop は追加と削除から 2.0 が導入できるようになった。
これについては後日、デバッガ内臓になったらしいから少し期待。
Linux もすっかり .NET になっていっているなぁと…
IronPython は端末からインストールできます。
でも 1.1.1 だ…2.0 は Linq やその他が無いとやらで動かなかったわ。

desktop

Y901x や SeeMe for Linux は問題なく動く、よしよし。
わざわざ 9.04 をクリーンインストールする理由は自アプリチェックだもの。

Ubuntu 8.04 での LANPP 環境構築

コレもまだまだこのままでよさそうだ。
他細かいコトは次回に続く。

アルファベットが文字化け

前回の Python 3 で decode メソッドが上手くいかない件。
そういえばと思い ignore オプションを付けて無理矢理出力してみる。

ffb

アルファベットなのに化けるって…つーか ffb って何よ。
どうやら文字コードは全然関係無なさそうだなこりゃ。

まさか decode バッファをココで使い果たしたとか…
3.0 はまだ不安定?色々試しているけど今の私ではお手上げだ。
てかあんまりコッチに手間を掛けたくないし。

とにかく何を行うのも ctypes 利用になったり別途モジュールが必要になる。
つまらん、IronPython のほうが Windows では圧倒的に面白い。
遅いけど…

ということで Ubuntu 9.04 日本語 Remix が公開されています。

Home | Ubuntu Japanese Team

いまダウンロード中、インストールは明日。
違いを確かめたいのでクリーンインストールする。
別個 HDD を買っても余るから 8.10 に上書きする予定。

あぁさらば安定した Windows 用 Opera よ…

読めない UTF-8

IronPython URLs: WPF on IronPython: Windows and Dispatching

日本語は読めないようなのによくココなんて見つけたもんだ。
というか英語ページにこういうのは無いのだろうか?

まあ WPF=3D みたいな雰囲気ができあがってしまったし。

PyGtk のようにもっと普通に GUI 部品として使う発想があってもいいのに。
せっかく元々が .NET な IronPython なんだから抵抗も少ないのだし。
でも逆に Linux にて PyGtk を経験していないと思いつきもしないのかも。

Emerge Technology: Pythonで隠しファイルかどうかってどうやって確認するだっけ?

うっ!そういえばできない。
普通に win32file を import とか書いてあって少し心配なんだが。
下記モジュールを導入しないと存在しないんですけど。

SourceForge.net: Python for Windows extensions

PLATLIB\win32\lib\win32con.py で定数はほとんど定義済みなのが嬉しい。
しかし外部依存ファイルに頼るとアプリの配布はどうすんの?になるんだが。

それよりWindowsAPI を使うなら VC++ で作ったほうがケタ違いに楽なんだが。
API 関数も定義済みヘッダが揃っている、配布もランタイムのリンクをすれば一つですむ。
スクリプト言語のほうが生産効率が悪いなんてギャグにもならない。

やっぱり Windows で Python ってイマイチだ。
もうすぐ Ubuntu 9.04 が出るから Linux へ戻るとするか。

その前に

decode

少し前の行でも同じエラーになったんだが…
もちろん UTF-8 だ、適当なサイトで試したらなんともなかった。

まさかと思い秀丸でまったく同じ文字列をトレースしたら直った。
何故?Linux と Windows では吐く UTF-8 が違うのだろうか。

んでこの行は同じようにやっても直らない、もうわけがわからん。

UNICODE の解釈がおかしいみたいな。
中国語として扱われているとかするんかなぁ?
Opera はチョン語だったとか色々あるし…
単に私の理解不足だろうと思うけど解らないや。