月別アーカイブ: 2010年2月

y901x-0.2.1

y901x-0.2.1 を誰も待っていないだろうけど更新しました。

やっと compiz 3D 無効状態でリストサイズ変更グリップラインが崩れるのを修正できた!
3D で使えば問題無いけど実はずっと気にしていた私であった。

def __on_expose_event(self, widget, event):
    # GetDC()(Windows)
    gc = widget.style.fg_gc[gtk.STATE_NORMAL]
    # Draw Vertical Line
    for i in range(10):
        if i%3 == 0:
            widget.window.draw_line(
                gc,
                event.area.x+i,
                event.area.y,
                event.area.x+i,
                event.area.height)

とやっていたのを

def __on_expose_event(self, widget, event):
    # GetDC()(Windows)
    gc = widget.style.fg_gc[gtk.STATE_NORMAL]
    # Draw Vertical Line
    for i in range(10):
        if i%3 == 0:
            widget.window.draw_line(gc, i, 0, i, widget.allocation.height)

に変更したらアッサリと。
つまり引数で渡される event.area から得られる値は 2D 状態ではアテにならないぞと。
widget から直接大きさを調べて計算すれば 2D でも 3D でも対応できるね。

今まで表示されない部分に一生懸命ラインを引いていたってことか、あーあ、早く気がつけ俺。
他にステータスグリップ描写が変な位置になる不具合も同じ理由だった。

他、覚書ページ作りで思いついたことを地味に導入して本サイトにて公開中。
しかし三ヶ月も放置したのに毎月ダウンロード数が地味に増えているのは何故だろう?
といってもたった二百程度なんだが、Linux 専用だし需要は微妙だしこんなものだろう。

どうでもいいけど本サイトトップページのスクリーンショットは取っ払った。
BlackBerry で見てみたら…まぁそういうわけで。
今後はサイトデザインもスマートフォンを考慮したほうがいいかもね。

BlackBerry Multimedia

動画や音楽を BlackBerry に入れてみようと考えた。

何故だか BlackBerry Desktop Manager が aspire 1410 にインストールできない。
インストーラが Windows 7 未対応なのか 64bit 未対応なのか CD 自体が不良品か?

そんなことより…
実は私はマルチメディア関連は Mandriva Linux にしか入れていない。
一度 Windows 7 ミニノートに移して転送なんてメンドクセェ!

どうせ microSD 経由なんだから Linux でも直接転送できるはずだ。
ということでやってみた。

BlackBerry にまず空の microSD を突っ込む。
一度裏蓋を外して押し込まないと認識できない。
んでテキトーにカメラで写真を撮影して microSD に保存。

microSD を外す、毛抜きでも使わないと外せないぞこのやろう。
ソレを Linux に持っていって Nautilus で開いてみる

見事標準ディレクトリが全部作成されているので適材適所にファイルを放り込む。
BlackBerry に microSD を戻して、おぉそれだけでファイルを認識し一覧に現れるヤン。
当然普通に再生できる、H.264 は再生できないファイルもあったが aac や wmv は完璧。
なんだよ、こういう転送だけなら Desktop Manager いらないやん。

ちなみに Mandriva にて BlackBerry で撮影した 3gp 動画を再生するには

を PLF リポジトリから入れる必要があった。
とにかくスマートフォンは着信音が自由に選べるのがいいね。

BlackBerry は腕時計代用には辛い

最近の若い奴は大半が腕時計をしていない。

「時間の確認なんてケータイで十分ヤン」

と何度も聞いた。
私自身さえも以前は便利を否定する発言の意味すら理解できなかった。

しかし最近解った。
何年かぶりにロレックスをあーだこーだ言う人に出会ってしまったから。
その手の興味が薄い私より知識が浅いんですけど本当にロレックスの良さを理解しているの?

その人とは別人だが以前 BMW は素晴らしいと宣って実際に乗っている知り合いがいた。
BMW は妥協の塊である Z シリーズを除き必ず着座位置が前後タイヤの中心になるよう設計している。
ちなみに日本車でソレをやっているのは私の知る限り RX-7 という古い車ただ一つである。
だから素晴らしい、基本ボディ剛性の高さを含めてドライバーズセダンという表元は正しい。
彼が運転する BMW の後ろの席に座った時に意地悪で

「このタイヤハウスの出っ張りのせいで狭いんだけーが」

と言ってみたらキレられてしまったw
何故後席が異様に狭いのかを説明すらできないのに BMW を絶賛してやんの!
ドライバーズシートを後ろに下げた結果で後席がタイヤハウス直近までに押しやられてしまったんだよ!
はいはい、値段が高いもの、もしくは皆がイイというものは「素晴らしいもの」なんですね。

何を言いたいか解るとおり高級車や腕時計から若者が離れたのは「高級感」より実益にシフトしたこと。
知識の無い大人が根拠の無い高級感だけで「イイ」というものに若者が拒否反応をした結果が今。
だって少し検索すれば本当のレビューなんて腐るほど見つかる時代なんだもの。
そんな「知識が無い大人」に限って声がデカいから尚更だ、不景気なんて都合がいい言い訳にすぎない。

と、長い前置きはこれくらいにして。

BlackBerry は腕時計の代わりにポケットから出してサッと時間確認には超辛い。
でもこれは iPhone やストレート式及びスライド式全般にも言えるかも。
ガラパゴスケータイだからこその折りたたみ式ばかりだったからである利用方法の極みかも。

少なくとも
メニュー→オプション→画面/キーボード
から左右サイドボタンは両方「なし」に変更しないとポケットの中で知らぬ間にカメラになってしまう。

ブラックベリーボールドの「時計」 – BlackBerry な毎日

これで好みの表示形式に変更はできるけど使いにくいのは変わらない、デスクトップ時計は小さいし。
私自身もケータイ時計は利用するようになってしまったんだけーがなぁ…

gtk.EntryCompletion

gtk.Entry と gtk.EntryCompletion の覚書はこんなもんでいいだろう。
デフォルト機能でココまで至れり尽くせりにしなくてもいいと思うのだが。
gtk.Entry and gtk.EntryCompletion

前回はコード保管と書いたけど入力支援と書くほうが正しかったね。

他に ConfigParser と自作クラス覚書をまとめたり地味に書き換えや追記とかしているんだが…
相変わらず C# と Ubuntu の覚書ばかりアクセスされているままである、まぁそんなもんだろう。

しかし覚書ページばかり弄くっても Blog 更新が滞るばかりだ。
ということで何を考えたかケータイを BlackBerry Bold に変えた(関係無い!
本当は iPhone が欲しかったが色々な理由でコレにしたけど想像以上に面白い。
もう少し使い込んだら Blog はこのネタになるかもしれない。

BlackBerryアプリ開発講座 記事一覧 – できるネット+(できるネットプラス)

java か…

GtkEntry でコード保管

今日は gtk.Entry の覚書を作っていたんだが。

gtk.Entry

gtk.Entry.set_completion メソッドって何だ?
Windows の CreateWindow() で指定する EDIT のような感覚で今まで利用していたんだが。

GtkEntryCompletion

英語ではよく解らないから日本語で探してみた、C の書き方で探せばなんとか見つかるなと。
そうか、ようするにいわゆるコード保管機能が標準装備ってことなのね。

説明だけではイマイチ解らないので実験コードを書いてみる。
とにかく GtkListStore をモデルとしてセットしてコレに文字列を詰め込みすればいいみたい。
追記、ちょっと書き換えと自動昇順ソート追加

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

import gtk

slist = [
"abc",
"aaa",
"aab",
"bbbbb",
"あぁん",
"あっはーん",
"あん、あっあーん"
]

class Win(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self)
        self.connect("delete-event", gtk.main_quit)
        # Entry
        entry = gtk.Entry()
        # completion
        completion = gtk.EntryCompletion()
        entry.set_completion(completion)
        liststore = gtk.ListStore(str)
        completion.set_model(liststore)
        # ascending sort set
        liststore.set_sort_column_id(0, gtk.SORT_ASCENDING)
        # set the completion
        completion.set_text_column(0)
        # load up the liststore with string
        for item in slist:
            liststore.append([item])
        # pack
        vbox = gtk.VBox()
        vbox.pack_start(entry, False)
        self.add(vbox)
        self.set_size_request(300, -1)
        self.show_all()

if __name__ == "__main__":
    w = Win()
    gtk.main()

日本語でも保管が通るのかも兼ねて「あ」と打ち込んで確定してみる。

マジですか、こんな手抜き臭いコードで日本語対応のコード保管ができてしまった。
他に match-selected シグナルを利用する方法もあるようだ、動的に行うのも楽そうだ。
もう少し調べると面白そう、やはりこういうまとめページは作っておくべきかなと思った。