金曜日, 2月 12, 2010

iTunes

今日はちょっとしたAppleScriptを載せておきます。
iTunesのウインドウを最大化するためのスクリプトです。MacのiTunesはディスプレイサイズが変わったときにウインドウサイズが適切な大きさにならずにサイズを変更できなくなるので作りました。

tell application "Finder"
set displayBounds to bounds of window of desktop
end tell
set winBounds to bounds of window 1 of application "iTunes"
set item 2 of displayBounds to 22
set bounds of window 1 of application "iTunes" to displayBounds
"iTunes"になっている部分を他のソフトウエアの名前に変えればそのまま動く気がします。

それはそうとQt-BSch3Vのリリース版でツールバーの挙動がおかしいですね。デバッグ中には正常に動いているので気づきませんでした。どうもQtをStatic Linkすると駄目なようです。次のリリースでは直したいところですが、うまい解決法が思いつかないので少々お待ちください。

火曜日, 2月 09, 2010

開発中

右上が新しいプロジェクトを作って始めたもの、右下は現行のQtBSch3V Modifiedで左はWineで動くBSch3V 20100204です。けっこうWineで動いてしまうもんですね。次いでだからQtCreaterもWineで入れてみようとしたらインストールはできたもののきちんと動きませんでした。
なお、英語表示なのは仕様です。

新しいプロジェクトを作った方が、、

Qt-BSch3Vですが新しいプロジェクトを作って全面的に書き換えた方が良い気がしてきました。現在C++で書かれている部分もフォームエディタ等を使うように書き換えた方がメンテナンス性もよく、コードが短くなります。一般的にコードが短い=バグが少ない、ですのでこのほうが良さそうですね。問題は作業量がものすごく増えることですが、とりあえず試すだけ試していけそうならその方向で試してみようと思います。

月曜日, 2月 08, 2010

Qt-BSch3V 0.47.002

ライブラリエディタ等を含んだVersion 0.47.002が本日公開予定です。ライブラリエディタ等がこのBlogのスクリーンショットにあるようなバージョンではなく、挙動がおかしな部分もありますが、とりあえずつかえるバージョンをリリースすることにしました。Version 0.47.003は再来週には公開したいですね。そのときまでに、挙動がおかしな部分を地道に直しておきたいと思います。

QtでSheet

賛否両論ありそうですが各種ダイアログをSheet化しています。いままでだとコメント挿入時にフォント選択ダイアログで難があったのですが、これで解決されました。問題はダイアログを移動できないので回路図を見ながら文字を書き込めないことですね。

ついでですのでQ3MainWindowとQ3ToolBarの除去が終わったQt-LCoVのスクリーンショットも公開しておきます。こっちも可能な限りSheet化して行く予定です。あと、BSch3Vと色を合わせた方が良さそうですね。

日曜日, 2月 07, 2010

Qt-LCoVのQt3Support排除中

現在Qt-LCoVからQt3Support依存を排除中です。現在Vectorに公開依頼中のVersion 0.47.002は水魚堂さんで頒布されているソースのごくごく一部を改変したもので外見がQt-BSch3Vにマッチしていません。

Qt3Supportを排除する上で面倒なのがQ3ToolbarとQ3ScrollView。この二つはアーキテクチャが大きく変わっており単純にQToolbarとQScrollViewに置き換えて一部を直すだけでは使えません。Qtのドキュメントとデモを参照しつつ試行錯誤しながら試すしかありません。なお、Qt-BSch3Vは、この影響でスクロールの挙動が少し変わりました。以前は部品を隅っこまで持って行けば自動スクロールしたのですが、現在はその機能がありません。そのうち実装したいと思いますが今はまだBSch3Vの全容を理解していないのでまだまだかかりそうです。

とりあえず開発目標は以下の通りです。
  1. Q3Supportの排除
  2. Windows版のBSch3Vで作ったファイルを読めるようにする。
  3. Macにあわせた挙動にする。
まだまだしばらくかかりそうですね。いつまでモチベーションが続くか分かりませんが、続く限り開発して行こうと思います。

ffmpegによるオーディオ変換

つまらないShell Scriptですが、いくつか変換用スクリプトを載せておきます。FFmpegは複雑すぎてよく分かりませんね。

  • FLVやMP4の動画から音楽ファイルをそのまま取り出す。
#!/bin/bash

if [ $# -ne 2 ]; then
echo "extractaudio [input] [output]"
exit 1
fi

ffmpeg -i "${1}" -acodec copy "${2}"

  • iPodやiTunesで再生可能な音楽ファイル(AAC)に変換する。
#!/bin/bash

if [ $# -ne 2 ]; then
echo "${0} [input] [output]"
exit 1
fi

ffmpeg -i "${1}" -vn -acodec libfaac -ac 2 -ar 44100 -ab 128k "${2}"

しかし、シェルスクリプトはこういうときに便利ですね。PerlやPythonを使うまでもないけどAliasじゃ無理な場合に重宝します

土曜日, 2月 06, 2010

累計ダウンロード数

いままでStork Labで公開してきたソフトウエアの累計ダウンロード数です。ときどき跳ね上がっているのは新しいソフトウエアをリリースした月ですね。今月はQt-BSch3Vをリリースしましたので、また跳ね上がってくれることを期待したいですね。Export for WebmailとRemovable Disk Cleanerもアップデートすればさらに跳ね上がってくれると思いますが、そこまで手が出るかは分かりません。

木曜日, 2月 04, 2010

Qt-BSch3V Modified 0.47.002

インストーラー化は諦めてQtをstatic linkすることにしました。ファイルサイズは大きくなりますが、Macの単純コピーでインストールできる利点を生かすにはStatic Linkしかありませんので。

という訳で0.47.002をVectorに公開申請しました。今度はライブラリエディタ等を含んだバージョンです。まだ、ライブラリエディタ等は手を入れていないので直すべき点が多くありますが、ライブラリエディタがないと使いにくいソフトですので早急にリリースすることにしました。ついでにBSch3Vにおいてコマンドキーを押すと選択が解除され、コピーができない問題にも対処しました。

そういえば更新回数がすでに去年と一昨年の回数を上回っていますね。

水曜日, 2月 03, 2010

インストーラー

現在インストーラーの作成に苦戦しています。Qtのライブラリを配置する都合上、インストーラーが必要なのですが、上手くインストールができません。OSのバージョンがあがるたびにツールもアップデートされているので過去のBlog記事もあてにならず、苦戦しています。

火曜日, 2月 02, 2010

Qt-BSch3V Modified 周辺ソフトウエア

周辺ソフトウエアもとりあえずビルドは通りました。アイコンを設定したくらいしか変更は入れてないませんけどね。ソースコードを整理してBSch3Vのコマンドキーで選択が解除される問題の解決版と一緒にリリースしたいと思います。
もし、ソースからビルドできる場合はapplications.cppの778行目の関数を以下のように訂正していただければなおります。
void ApplicationWindow::keyPressEvent ( QKeyEvent * e )
{
switch(e->key()){
case Qt::Key_S:
ToolSelector();
break;
default:
break;
}
}



日曜日, 1月 31, 2010

BSch3Vの周辺ソフトウエア





まだ、コードを書いていないのにアイコンから作ってます。しかし、Macのオンラインウエアの作者はどうやってアイコンを作っているのだろう。どれもきれいなアイコンばかりで私にはまねできません。どれも曲線を使わずにすむ記号ばかり使いました。

木曜日, 1月 28, 2010

Qt-BSch3V Modified

先ほどVectorに公開依頼をしました。なんとファイルサイズはBZip2圧縮で168.4MBもあります。そのうち150MBはQtのソースコードで15MBはQtのバイナリファイルだと思われます。別に欲しい人はメールで問い合わせてもらうことにしてもGPL的には構わないはずですが、一番確実な方法にしておきました。

iPad

Mac OS XではなくiPhone OSが来るだろうと思っていたら、やっぱりiPhone OSでした。このままMac OS 11はiPhone OSベースにでもなるんでしょうかね。さすがにパーソナルコンピュータのくくりではマルチタスクがないと無理でしょうけど。
私は今、iPod touchを音楽を聴く用途よりもドキュメントビューワーやWebブラウザとして使うことの方が多いので、私の用途にはマッチしそうです。それでも、まだまだ2年前に買った初代iPod touchが現役なので買うつもりはありませんが(当時5万円もしましたし)、これが寿命を迎えた頃に買いたいと思います。

火曜日, 1月 26, 2010

リリースしたいけど




Qt-BSch3Vですが、Vectorに公開申請してからQtのソースコード入れていないことに気づきました。GPLのため含めないとまずいので公開までしばしお待ちください。Qtのライセンスの確認しておきます。初回はQt-BSch3Vだけでライブラリエディタ等は含まれない予定です。含めていたらいつまでも公開できない気がするので。

しかし、QtをDynamic Linkすると、結構ファイルサイズが大きいですね。サイズが44MBほどあります。回路図エディタだけなら、全部一つのパッケージに入れてしまえばいいですが、ライブラリエディタもリリースしたときには共有した方が良さそうです。インストーラー付きにするかもしれません。もしくはQtは各自ダウンロードしてもらうようにするかですね。

日曜日, 1月 17, 2010

再びQt-Bsch

Qt4.6でビルドできない問題が解決しました。ただ単にリンク時に-framework Carbonを追加するだけで解決です。でもいずれCocoaなQtが主流になったら書き換えないといけないな。
いったん、どこかで開発途上版をリリースするつもりです。そうでないといつまでも公開できそうにありませんですので。

水曜日, 1月 06, 2010

Cocoa と Apple Event

Apple Eventを使おうと思ったのですが、Apple Scriptとの対応関係がよくわかりません。ならば直接Apple Scriptを実行してしまえとNSAppleScriptなんていうクラスを利用しています。AppleScriptとAppleEventはどこへ向かうのでしょうかね。Apple製ソフトウエアでもAppleScript非対応なんて言うのもありますし。もちろんUI Scriptingなんて方法があるのは知っていますけど。

火曜日, 12月 15, 2009

Emacs 23

最近Cocoa Emacs 23 (CVS HEAD)を使い始めました。

とりあえずつまづいた点。

1.64bitビルドではインラインパッチがあたらない。
32bitビルドでも良いが、せっかく64bitでコンパイルできるので適当に直してコンパイル。もうちょっとまともに動くようになったらパッチでも載せておきます。Emacsのデバッグってどうやってやればいいのだろう。日本語/英語の切り替えが上手く行かない場合がある。

2.M-x gdbがうまく動かない。
M-x gud-gdbとするのが正解のようです。

とりあえず.emacsをさらしておきます。フォント関連はMacEmacsから拾ってきたものです。
(setq load-path (append load-path "~/Documents/Emacs/lisp/"))

;; for cocoa emacs
(when (>= emacs-major-version 23)
(if (eq window-system 'ns)
(setq default-input-method "MacOSX"))
(define-key global-map [ns-drag-file] 'ns-find-file)
)

(if (eq window-system 'w32)
(setq default-frame-alist
(append (list
'(alpha . (100 80))
'(font . "MS ゴシック")
) default-frame-alist))
)

(if (eq window-system 'ns) ; for Cocoa Emacs (progn (tool-bar-mode t) (setq initial-frame-alist (append (list '(top . 200) '(left . 300) ) initial-frame-alist)) (setq default-frame-alist (append (list '(alpha . (100 80)) ) default-frame-alist)) ) )

;; misc
(require 'jaspace) ; 全角スペースを表示
(require 'redo+) ; redo
(setq inhibit-startup-message t) ; うるさい
(display-time-mode 1) ;; show time
;(display-battery-mode 1) ;; show battery

;; Backup files
(setq make-backup-files t)
(setq backup-directory-alist
(cons (cons "\\.*$" (expand-file-name "~/Documents/Emacs/Backups"))
backup-directory-alist))

;; Font Setting
(if (eq window-system 'w32) ;; for NTEmacs
(progn
(set-default-font "MS ゴシック")
))

(when (= emacs-major-version 22) ;; for carbon emacs
(if (eq window-system 'mac)
(progn
(require 'carbon-font)
(fixed-width-set-fontset "hirakaku_w3" 12))))

(when (>= emacs-major-version 23) ;; for cocoa emacs
(if (eq window-system 'ns)
(progn
(setq fixed-width-use-QuickDraw-for-ascii t)
(setq mac-allow-anti-aliasing t)
(set-face-attribute 'default nil
:family "monaco"
:height 120)
(set-fontset-font
(frame-parameter nil 'font)
'japanese-jisx0208
'("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font
(frame-parameter nil 'font)
'japanese-jisx0212
'("Hiragino Kaku Gothic Pro" . "iso10646-1"))
;;; Unicode フォント
(set-fontset-font
(frame-parameter nil 'font)
'mule-unicode-0100-24ff
'("monaco" . "iso10646-1"))
;;; キリル,ギリシア文字設定
;;; 注意: この設定だけでは古代ギリシア文字、コプト文字は表示できない
;;; http://socrates.berkeley.edu/~pinax/greekkeys/NAUdownload.html が必要
;;; キリル文字
(set-fontset-font
(frame-parameter nil 'font)
'cyrillic-iso8859-5
'("monaco" . "iso10646-1"))
;;; ギリシア文字
(set-fontset-font
(frame-parameter nil 'font)
'greek-iso8859-7
'("monaco" . "iso10646-1"))
(setq face-font-rescale-alist
'(("^-apple-hiragino.*" . 1.2)
(".*osaka-bold.*" . 1.2)
(".*osaka-medium.*" . 1.2)
(".*courier-bold-.*-mac-roman" . 1.0)
(".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
(".*monaco-bold-.*-mac-roman" . 0.9)
("-cdac$" . 1.3))))))
;; Font Configuration -- ここまで

;;Auto Complete
(require 'auto-complete)
(when (>= emacs-major-version 23)
(require 'auto-complete-extension)
(define-key ac-complete-mode-map "\C-n" 'ac-next)
(define-key ac-complete-mode-map "\C-p" 'ac-previous)
(global-auto-complete-mode t)
)

;(setq TeX-default-mode 'japanese-latex-mode)
(if window-system (server-start))

;; Yatex Support
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

;; octave
(autoload 'octave-mode "octave-mod" nil t)
(setq auto-mode-alist
(cons '("¥¥.m$" . octave-mode) auto-mode-alist))
(add-hook 'octave-mode-hook
(lambda ()
(abbrev-mode 1)
(auto-fill-mode 1)
(if (eq window-system 'x)
(font-lock-mode 1))))

;; Indent
;(setq c-auto-newline t)
(setq c-default-style
'((java-mode . "java") (other . "cc-mode")))

;; Gauche
(modify-coding-system-alist 'process "gosh" '(utf-8 . utf-8))

(setq scheme-program-name "gosh -i")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)

(defun scheme-other-window ()
"Run scheme on other window"
(interactive)
(switch-to-buffer-other-window
(get-buffer-create "*scheme*"))
(run-scheme scheme-program-name))

(define-key global-map
"\C-cs" 'scheme-other-window)
ちょっと整理が必要ですね。

それはそうとQt-Bschは放置中です。Qt-4.6にしたらビルドが通らなくなりました。どうもCarbon APIを呼んでいた部分が駄目になったようです。

水曜日, 10月 14, 2009

Qt-BSch3V


Qt-BSch3VからQ3Support排除にむけて作業中

日曜日, 8月 30, 2009

64bit Safari

Snow LeopardではSafariが64bitになってプラグインのクラッシュから保護されるようですが、どうも32bitモードでは効かないよう。アクティビティモニターではプラグインは32bitの様だから、64bitブラウザで32bitプラグインを動かそうと、別プロセスにしたら、たまたま保護されるようになっただけではないだろうか。