kvm

なんとか 7 は今日出たようだ。
Mac も新機種が出てソッチ系サイトのライター達は忙しいようだ。
が私のお目当てな Linux はまだ出ない、で今頃見つけたが

DistroWatch.com: Put the fun back into computing. Use Linux, BSD.

Mandriva 2010 は 2009-11-03 か、Ubuntu 9.10 のほうが少し早く出るのね。
んーどっちにしよう、プロプライエタリの ATI ドライバでどうなるかで決めるんだが。
Ubuntu 8.10 の時は 3D で動画がチカチカだったし 9.04 では真っ黒になってしまったし。
Mandriva は標準で fglrx 入りだから安定動作はかなり期待できるわけで。

よく考えれば Fedora も KVM による仮想化なんかで魅力がある。
と思っていたけど KVM は Ubuntu でも使えるらしい。

kvmを仮想マシンマネージャ(GUI)で動かす。荒削りだけど動作は軽快! | Viva! Ubuntu!!

VirtualBox もイマイチ GUI 関連が遅いので試してみよう。
CPU 速度は VirtualBox でもホスト OS と大差無いが GUI 動作をなんとかしたいし。
インストール方法はリンク先をそのままやって Mandriva の iso を指定。

kvm_linux_select

Linux の選択肢はチト古め、てゆーかこれだけ…
しかたがないから Generic 2.6 を選択。
イザ、ライブ CD の起動!ができないやん。
一旦 CD-R に焼いてドライブ指定、で、なんとかライブの起動ができたので即インストール。

英語だが Ctrl+Alt でホストとの切り替えというダイアログが出る。
なるほど、マウス統合を行わない VMware と同じってことね。

使ってみる。

GUI 描写が死ぬほど重い、誰が見ても解るくらい遅い。
ウインドウを動かすとゴミが残る場合がある。
マウスカーソルさえガクガク、というより位置判定が不安定でマウスが使い物にならない。
リンク先は動作が早いと書いているけど VirtualBox 上との性能差が私には体感出来ない。
やはり選択肢に無い OS だと全然ダメダメなのか?
と思っていたら暴走、kill コマンドでも強制終了できないので OS ごと再起動。
…今後に期待だこりゃ。

VMware や VirtualBox のビデオドライバがどんだけよく出来ているか思い知った。
新しい OS への対応とかバグ修正はプロプライエタリのほうが期待が持てるんだよね。

FizzBuzz

どうしてプログラマに・・・プログラムが書けないのか?

Python でやってみた。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

for i in range(100):
    j = i + 1
    if j % 3 == 0:
        if j % 5 == 0:
            print "FizzBuzz"
        else:
            print "Fizz"
    elif j % 5 == 0:
        print "Buzz"
    else:
        print j

何のヒネリも無いコードで 6 分も掛かった、私はこの人の会社にはいけないようだ。
というか後で気がついたが

for j in range(1, 101):

と書けばいいことを忘れていた、しょんぼり。

Fizz Buzz – Wikipedia

リンク先を見ると本当に日本人はワンライナーが大好きなんだなーと思う。
海外で FizzBuzz を探すとだいたいどの言語でもこんな感じなんですけどね。

Geek School ? Get Hired With FizzBuzz

実際の話、ワンライナーで書けたところで実践に役立つとは思えない。
剰余(%記号等)を用いないなんて何が目的なのかさえ解らないのだが。
そんなことよりユーザー入力がまったく無いプログラムに凝ってどうするの?と。

まず fizz と buzz という整数を保持する変数を用意してユーザーに数値を入力させる。
fizz の倍数のときは数の代わりに「Fizz」
buzz の倍数のときは「Buzz」
fizz, buzz 両方の倍数の場合には「FizzBuzz」
どちらにも該当しないなら数値そのままの文字列
の値を返す関数を使って 1 から 100 までの数をプリントするプログラムを書け。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

print "\nFizz と Buzz の値を指定してください"
fizz = input("Fizz=")
buzz = input("Buzz=")

def fizzbuzz(n):
    if n % fizz == 0:
        if n % buzz == 0:
            return "FizzBuzz"
        else:
            return "Fizz"
    elif n % buzz == 0:
        return "Buzz"
    return str(n)

for i in range(1, 101):
    print fizzbuzz(i)

みたいな感じのほうが実践的かなと。
初めはつい関数の最後で else を入れちゃうんだよね、いらないのに。

PCLinux OS GNOME 版にクラクラ

OS のインストールばかりやってどうする?
と自分でも思うのだが PCLinux OS なんてのを VirtualBox で試すことにした。
下記のサイトを見つけたものでもしかしたら凄く良いかもと思ったので。

完成度の高いMandrake Linux派生ディストリビューション「PCLinux OS 2009.2」レビュー – SourceForge.JP Magazine

PC Linux Gnome 2009は、とってもカルカッタ! 128MBでもイケそう!! | Viva! Ubuntu!!

RedHat 派生である Mandrake の更に派生ディストリビューションってことなのか。
つまり KDE が基本だが Nautilus が使いたいので最初から GNOME 版で試すことにする。

インストールや初期設定、見た目画像は上記リンク先で。
RedHat 派生に apt-get は変な気分、ちなみに初期状態では日本語入力できない。

上記リンク先にも書いているがとにかく Updata が死ぬほど遅い。
私の環境では一通りの Update が終わったら何も動かなくなった。
ホストに戻って VirtualBox から Ctrl+Alt+BackSpace を送り halt コマンド。
でやっと使えるようになった。

Fedora なんて可愛く思えるほど大半が英語表記のままなのは別にいい。
そんなことよりデフォルトで入っているアプリを見てクラクラした。

internet

sound_video

コレがデフォルト…
驚くことに Evolution や Eye of GNOME や Totem 等が本当に入っていない。
珍しいことに OpenOffice.org がデフォルトでは入っておらず Abiword がある。
mono が入っていないことを笑ってもいいのだろうか。

no_app

独特といえば独特だが何か違う気がしてならない、いかにも個人製作物という感じ。
少なくとも私は拒絶反応しか出ない、これ一応 GNOME なんですけど。
nano や Tomboy が無い Mandriva もどうかと思ったけどそんなレベルじゃない。

つか su から Nautilus も警告無しで起動できるし gksu も最初から入っている。
Mandrake 派生なのに使用感や見た目は Mandriva と同じ所を探すほうが難しい。

KDE がメインのディストリビューションだからこうなるのは解らなくもないが。
なので KDE 版も試してみたいが又あの Update の待ち時間に耐えるのは嫌だ。

いや、Ubuntu をこんな感じにしている人って結構多いだろう。
他に巷で人気のフリーソフトを最初からブチ込んでほしい人もいなくはない。

そんな人にはイイかも、Linux でマルチメディアにはもしかして最強ではないですか。
雑誌のライターお勧めディストリビューションここにあり!
Ubuntu なんか勧めている場合じゃないですよ、ほらほらこんなにオイシイよ。

Totem をガン無視なんかして Nautilus の動画サムネイルができるのかな?
Opera は多分 Mandriva 用 RPM でイケると思うけど。
そういえば Apache なんかは…
試す気力が出ない、そういう使い方をするディストリではなさそうだ。

PCLinux OS は KDE3 版を選んだほうがいいと思う。

GtkAspectFrame shadow_type

最近 PyGtk ネタを書いていないことに気がつく。
てかセ CULV セレロンの検索で何人も来ているという始末。

culva

やっぱり需要の高そうなネタに終始したほうが…とか思ってしまいます。

ということで Y901x の現状。
Mandriva で Y901x を使うと GtkAspectFrame に枠が入ってしまう件はなんとか解決。

gtk.Frame

GtkAspectFrame の set_shadow_type メソッドで gtk.SHADOW_NONE にするだけ。
つまり Ubuntu で使っているテーマでは影が元々まっ黒だっただけということかな?
後はとにかく Compiz 有効にできる HDD インストールを行って試してから更新の予定。
2010.0 は 15 日だったような覚えがあるんだけど…気のせいだったか。

DistroWatch.com: Put the fun back into computing. Use Linux, BSD.

それとずっと解らないこと。
Compiz 無効の 2D 描写時はリストグリップのラインが再描写で上手く描写されない。
expose-event ってどうも Windows の WM_PAINT のように完璧にはいかないようだ。

ダブルバッファリングを無効にすると少しマシだがダメな場合もある。
そういえば Windows では DC に線を書くより画像を表示したほうが負荷が軽い。
ならば画像でやってみよう、self.grip_pix という変数に GtkPixbuf を格納し

def __on_expose_event(self, widget, event):
    # GetDC()(Windows)
    gc = widget.style.fg_gc[gtk.STATE_NORMAL]
    # Draw Vertical Line
    area = widget.window
    area.draw_pixbuf(gc,
                    self.grip_pix.scale_simple(event.area.width, event.area.height, gtk.gdk.INTERP_NEAREST),
                    0, 0, 0, 0)

もっと負荷が大きくなった…
てか pixbuf を引き伸ばして描写するにはこういう方法しか無いのだろうか?
Win32API の BitBlt みたいな転送方法があると思うんだけど今は解らない。

いっそ GtkImage で…こいつは GtkEventBox が必要になるので嫌だし引き延ばしが無理そう。
おまけにやっぱり上手くいかない、3D で使えば何も問題無いので放置のままかな。

しかしちっとも需要が無い GStreamer Player の更新を続けてどうする…
だが Windows でソレをやり続けたから Linux でもアプリが作れるようになったのだからね。

Mandriva に nano とか

Mandriva を色々試しているけどやはり Ubuntu に比べるとチト不便。
su で root になって gedit なんかを使うと警告を吐くとか。

端末内なら問題なく編集可能かな?と nano を導入、そう vi が解らないんです。
てゆーか nano はデフォルトでは入っていないのか…
結果 OK、システムファイルのテキスト編集はこれでいいかな。

検索すると Nautilus は su からは開けないとか見つかった、本当だ。
なら gksu を入れてみる。

gksu_mandriva

なんかやはり警告が、Ubuntu でも違うメッセージだけど出るけどね。
これで GUI にてファイル操作は問題なくできるので別に気にしなくてもいいと思う。
システムファイルは移動なんかしないし削除とかも端末で十分だけど一応入れておくか。

端末内なら普通に su で管理者になれるので sudo は必要無い。
一応書くけど nautilus-gksu なんてモンはありませんから自分でスクリプトを書こう。
でも gksu gnome-open ができないや、gksu gedit とか指定すれば開けるんだが。

Nautilus をスクリプトで拡張

追記

admin

orz

追記おしまい

gcc は gcc だけだと c++ は入らないようだ。
gcc-c++ にチェックすれば C++ のコンパイルも可能になるようだ。

gcc_mandriva

色々揃えると今の Ubuntu 環境とあまり違いが出なくなるような。
でもそれじゃないと困る、いきなり違う環境に移行なんてできないよ。

Mandriva ならでは利用方法は HDD インストールをしてからだ。
気がついたけど tomboy が入っていない、何故 mono は入っているのだ?