2009-01-01から1年間の記事一覧

KAKASIでファイルのリネーム

日本語の名前がついているmp3やoggファイルを他のPCで再生しようとしたら ファイル名が文字化けして読めませんでした。 ファイル名の文字コードを変換してもいいのだけれど、 それだと行ったり来たりするたびに変換しないといけなくなる、ということで、 多…

ブログの次・前・古い・新しい

ブログのエントリーを連続して読むとき 「次の5日分」とか「前の5日分」とかあるけどこれが分かりにくい。 特に時系列を遡っているようなとき 次の5日分 前の5日分 が並んでいるとついつい 次の5日分 をクリックしてしまって既読のページに戻ってしまっ…

単語登録

文章作成中にF12を押すと 単語登録の「霞」が起動する。 登録ファイルは ~/.anthy/private_words_dafault gedit と OpenOffice ワープロ、AbiWord、 FireFoxの入力フォームで確認。 Ubuntu 8.10にて キーボード掃除してたら気がついた。

USBメモリフォーマット

以前にUbuntuをインストールして使っていたUSBメモリを普通使いにもどしたところ GRUBが残っていたらしく このUSBメモリを差しっぱなしにして起動すると GRUB loading Error 17 が出てしまっていた。 それを改善しようとGRUBをいじったりなんだりしていたら…

キー配列をカスタマイズする

キー配列をいじった時のメモCapsLockとCtrlを入れ替えるといったキーカスタマイズはメニューから行うことが出来るが、 「無変換をBackSpaceに 変換をReturnに」 といったあまりにも独特な変更はしてくれない。 ネットで調べてみると、 /usr/share/xmodmap以…

post-installation script エラー

Ubuntu 8.10 をクリーンインストールして、大量のアップデートをしたところ、 console-setup 1.25 ubuntu4のインストールに失敗しました。 というメッセージが出た。 無視して、環境の構築を進めようとしたら、 synapticパッケージマネージャでエラーが出る…

Ubuntu 9.04を入れてみた

早速 Ubuntu 9.04 Desktop 日本語 Remix を入れてみました。 いつも通りさくさくっとドライバなども認識してくれました。使って気づいた変更点は 起動中やログインの画面がちょっとかっこよくなった USBメモリ中のAutorun.infに記述されたアイコンが表示され…

設定ファイルの編集

ところで、皆さんはroot権限が必要なファイルの編集はどうしていますか? 私はいつも$sudo vi ファイル名で編集しています。 いつもはviを使わないのでぎこちない操作になってしまいますが。 最近では、 IPv6を停止するために$ sudo vi /etc/modprobe.d/alia…

オブジェクト指向でなぜつくるのか

オブジェクト指向でなぜつくるのか—知っておきたいプログラミング、UML、設計の基礎知識 平澤 章 (著) 出版社: 日経BP社 (2004/6/3) ISBN-10: 4822281957 ISBN-13: 978-4822281953 プログラミングとは、人間世界とコンピュータ世界を行ったり来たりしながら…

システムトレイをいじってみる 3/3

システムトレイからメニューを表示出来るようにしてみます。 完成図 (クリックした状態でのスクリーンショットの方法が分からなかったのでデジカメで撮りました ^^;) tray.cにこのコードを追加します。 void on_item1_activate (GtkMenuItem *menuitem, gp…

システムトレイをいじってみる 2/3

左クリックでアイコンの点滅をon/off、 右クリックでアプリ終了、 という機能を追加してみます。 シグナル "activate"が アイコン上での左クリック シグナル "popup-menu"が アイコン上での右クリック に対応しているようです。 tray.c#include static gbool…

システムトレイをいじってみる 1/3

システムトレイをいじってみようと思います。 Windowsではタスクトレイですが、 Linuxではシステムトレイという呼称が一般的なようです。 GTKではGtkStatusIconというオブジェクトで扱うようですが、 StatusIconはそれなりに新しいGTK(2.10以降?)でないと対…

ドラッグ&ドロップ

GUIの真骨頂とも言える(?)ドラッグ&ドロップをやってみます。 ウィンドウ(正しくはGtkLabel)にドロップされたファイルのパスを表示させるという簡単なもの。 今回はGladeは使わず、1ファイルでケリをつけています。 DnD.c#include #define DND_INFO_TEXT_…

項目の使用可能・不可能を切り替える

チェックボタンなどの状態に応じて、項目の使用可能・不可能を切り替えるやり方 ↑こんな場合このようにしたい時は、 gtk_widget_set_sensitive関数を使って、 チェックボタンのtoggledシグナルとconnectすればいいでしょう。 参考資料 GtkWidget gtk-widget-…

MailPad開発記 とりあえずまとめ

SSL関連の問題にしばらくかかりそうなので、 ひとまず打ちきりとします。 DAY 0 設計 DAY 1 GladeでUI作成 DAY 2 下準備 DAY 3 コード作成とコンパイル DAY 4 アカウントの生成 DAY 5 送信用MHファイルの作成 DAY 6 POP3認証 DAY 7 SMTP認証とメール送信 DAY…

MailPad開発記 DAY 9 - CcBcc機能

なかなかSTARTTLSコマンドを最初に発信する方法がわからない... ということで、今日はCcBccに対応させてみます。 libsylphに添付されているドキュメントのcompose.txtを見てみると、 gint compose_set_headers (ComposeInfo *compose, const gchar *to, cons…

MailPad開発記 DAY 8 - さて

さて、ひとまずメール送信に成功しました。 ここまで何のつまづきもなく来れたのはひとえにlibsylphの力によるものです。感謝!さて、次は何をしましょうか。 SSLに対応させる CcBcc機能を作る Send Copy to myself機能を作る が、SSL送信はいまだに成功して…

MailPad開発記 DAY 7 - SMTP認証とメール送信

1.アカウント作成 2.送信用MHファイル作成 3.(POP3で認証)-----現在ここまで 4.(SMTP認証+)送信 いよいよ送信の部分を作ります(っても改変コピペですが)。 /* こんなんでいいのか?と思う人もいるかと思いますが、 まずは自分の作ったプログラムでメー…

MailPad開発記 DAY 6 - POP3認証

1.アカウント作成 2.送信用MHファイル作成-----現在ここまで 3.(POP3で認証) 4.(SMTP認証+)送信3.のPOP3認証はカッコ付きですが、(理屈からいうと、送信には必要ない) SSLを使用しない場合、たいていPOP before SMTPをすることになっているので、今日…

MailPad開発記 DAY 5 - 送信用MHファイルの作成

ここで一度、メール送信の流れを整理してみると、 1.アカウント作成 2.送信用MHファイル作成 3.(POP3で認証) 4.(SMTP認証+)送信 となります。 2.は~/lisylph/examples/libsylph-compose.cに 3.は~/lisylph/examples/libsylph-pop.cに 4.は~/lisylph/exam…

MailPad開発記 DAY 4 - アカウントの作成

さて、libsylphと一緒に配布してくれているサンプルプログラムのlibsylph-send.cを見てみます。 このプログラムは、 $ libsylph-send message-file hogehoge@foo.comというように、message-fileと宛先をパラメータで指定するようになっています。 message-fi…

MailPad開発記 DAY 3 - コード生成とコンパイル

SimpleText DAY 2と同じ手順でソースコードを出力します。 Gladeが吐き出してくれたコードをMakeするのですが、 libsylphを使うので、MakefileはSimpleTextで使ったものに多少手を加えないといけません。 (まだlibsylphを使ったコードを書いていないので、…

MailPad開発記 DAY 2 - 下準備

libsylphのインストール Ubuntuなら、Synapticパッケージ・マネージャからlibsylph-devをインストールすればいいので簡単。 その他の環境の人は各自でがんばってください。 Glibのインストール 2.4.0以降が必要とのこと。新しいディストリビューションなら最…

MailPad開発記 DAY 1 - GladeでUI作成

今回もGlade2を使います。 だいたい大丈夫かとは思いますが、メモを書き散らしておくので参考までに。 SMTP Portのデフォルトは25、POP3は110(「プロパティ」ウィンドウの「ウィジット」タブの「テキスト」を利用) パスワード欄は、「表示可否」を「いいえ…

MailPad開発記 DAY 0 - ソフト設計

新しいシリーズに入らせていただきます。 無謀かもしれないけどメールソフトを作ってみよう! ということで。 一から作るのは大変なので、libsylphを使います。ソフト名 Ugly Mail Pad - C2 (略して UMPC)機能 例によって1ウィンドウ完結アプリ 送信だけ …

コードはコピペしろ!

さて、Gtkを使ってのプログラミングを開始してまだまだ日が浅いのですが、 最近気づいたことがあります。 気づいたと言うよりは、考え方が変わったと言うべきか。 大げさに言うならパラダイムシフトがあったのです。 それ以降、プログラミングの効率が大幅に…

SimpleText開発記 - まとめ

SimpleText 完成! このシンプルなインターフェイス!今やこれがメインエディタです(ウソ)開発記 DAY 10 - テキストを保存する DAY 9 - statusbarに文字を表示させてみる DAY 8 - テキスト読み込み機能の手直し その2 DAY 7 - テキスト読み込み機能の手直…

SimpleText DAY 10 - テキストを保存する

今日はテキストを保存する機能を付け加えましょう。 なお、このプログラムで大切なデータを消してしまったとしても、責任はとれません。callbacks.cのon_button_save_clickedを見てください。 callbacks.cvoid on_button_save_clicked( GtkButton *button, g…

SimpleText DAY 9 - statusbarに文字を表示させてみる

今日は、statusbarに文字を表示させてみましょう。 entryに入力されたファイルがあるかどうかを調べて、 あれば 「Open File / Save Mode」 なければ「New File / Save as Mode」 と表示させてみます。(今のところプログラムと同じフォルダにあるファイルを…

SimpleText DAY 8 - テキスト読み込み機能の手直し その2

今日は、指定したファイルが存在しない状況への対処を追加しましょう。 ファイルが存在しない場合、g_io_channel_new_fileからNULLが返されるのでそれを利用します。 callbacks.cvoid on_button_open_clicked ( GtkButton *button, gpointer user_data) { Gt…