火曜日, 6月 30, 2009

さらば、ム社

昨日、6月30日ム社に退社しました。98年11月上旬から、2009年6月30日まで、大変楽しい日々を過ごしてきまして、S部長をはじめとして、皆様に心から感謝します。大変ありがとうございました。

この十数年間、気まぐれに仕事をしてきました。あの意味で、自己流になってしまったことを許してくれて、B血型の人にとって、何よりも、とってもありがたいです。

日本にA血型の人数は圧倒的に多くて、40%以上超えているといわれました。AとB血型が犬猿の仲みたいだと世の中に噂されていますが、それにしても、僕を嫌う方々にも、感謝の気持ちを送りたいと思っています。

ありがとうございました。皆様、これからも頑張ってください。

Display OpenCV's IplImage into Gtk

Display IplImage into Gtk

金曜日, 6月 26, 2009

manual pagesから見えた世界

プログラマの教養は manual pages に宿る(1,2,3,4,5,6,7,8)

日頃に、こんな面白くて、雑談のような文書を読んで、遊び半分、勉強半分で過ごすのは、自分に合う生活だと自覚しているなので、果たして、これでいいなのか自分もわからないです。

木曜日, 6月 25, 2009

Javascript Madness: Introduction

Javascript Madness: Introduction

マウスの座標を取得する











Internet ExplorerFirefoxSafariOpera
x,y×
pageX,Y×
layerX,Y××
clientX,Y
screenX,Y
pageXOffset,Y×
offsetX,offsetY×

水曜日, 6月 24, 2009

wxWidget GUI Programming Using XRC File

  • Python wxWidget Programming Using XRC File
    XRC Tutorial
    XRC is a method of defining the layout of a GUI application in a separate XML file rather than as wxPython code within the program itself.
    For More Information See wxPyWiki

  • C/C++ wxWidget Programming Using XRC File
    XML-based resource system overview


wxPythonとXRCとAUIの関係

XRC Internationalization

Internationalization

  • wxPython and Python have different ways of handling i18n
  • Luckily both use GNU gettext files.
  • See the documentation for Python's gettext module for help doing i18n with basic Python
  • wxPython passes all strings for labels, captions, etc, through the wxLocale if it's been instantiated.
    • Which means no changes to our XRC
    • Only need to load the message catalogs before loading the XRC

The Message Catalog

  • Python includes tools for extracting messages from Python code, but not XRC
  • So we use xrc_pot.py to generate the template file.
  • By default gettext and wxPython look for catalogs in [workingdir]/locale/[code].
  • Need to use msgfmt.py to compile .po to .mo files before this will work.

Loading the Catalog

    def initI18n(self):
# initialize the wxPython translation interface
i18n_path = os.path.join(os.getcwd(), 'locale')

wx.Locale.AddCatalogLookupPathPrefix(i18n_path)
self.i18n = wx.Locale(wx.LANGUAGE_DEFAULT)

self.i18n.AddCatalog('converter')

# initialize the gettext interface
gettext.install('converter', os.path.join(os.getcwd(), 'locale'), unicode=True)



wxWidgets でクロスプラットフォーム GUIアプリを作ろう

Main GUI Tools Ride on Linux and Windows

Display dialog boxes from shell scripts



Parasite is a debugging and development tool that runs inside your GTK+ application's process.It is sort of Spy++ on Microsoft Windows

gTweakUI
This is a fairly simple project. A collection of simple dialogs as a front end to GConf. We will provide extra configuration settings for GNOME that power users have been requesting since the release of GNOME 2.0.

火曜日, 6月 23, 2009

GCC Built-in Functions and Visual C++ Intrinsic Functions

GCC Built-in Functions
Visual C++ Intrinsic Functions

gcc attribute overview
Pragmas Accepted by GCC

World Radio Live

World Radio Live
广播电台
RadioBeta - Your tune to the world

Codecs On Linux

Add Windows media support to your Linux box

Compiling & Debugging

  1. Compiling & Debugging Coming From App

    • Debugging with GDB (HTML)
      Open-source document that explains how to use GDB to debug programs.
    • GDB Internals (HTML)
      Open-source document that explains the GDB implementation.
    • GNU C 4.2 Preprocessor Internals (HTML)
    • GNU Compiler Collection (GCC) 4.2 Internals (HTML)
    • GNU Compiler Collection (GCC) Internals (HTML)
    • User's Guide to gperf 3.0.1 (HTML)
    • GCC Porting Guide (HTML) (PDF)
      Provides guidance on how to migrate projects to new GCC releases.
    • C++ Runtime Environment Programming Guide (HTML) (PDF)
      Provides information about how to create and deploy C++ binaries.

  2. Red Hat Enterprise Linux Documentation

月曜日, 6月 22, 2009

よく使うソフトウェア

Softwares I use everyday

インターネット・メッセンジャー
Pidgin


ウェブブラウザ
Firefox


テクストエディタ
vi
Geany
Emacs


ファイル比較ソフトウェア
meld


エミュレータ
bochs
Virtual Box
Qemu


デバッグ
GDB
DDD
Insight


PythonのGUIデバッグ
PyScripter
Eric Python IDE
Winpdb
SPE


GUIデザインツール
Glade
wxGlade


文書プロセッサ
LyX


デスクトップパブリッシング
Scribus


ベクターグラフィックスエディタ
Inkscape


画像処理
ImageJ
Gimp


画像処理、画像認識ライブラリ
Opencv


ダウンロードマネージャ
MultiGet


日曜日, 6月 21, 2009

javascript call print preview

javascript call print preview


<html>
<head>
<title>Print Preview</title>
<script>
function printpr()
{
var OLECMDID = 7;
/* OLECMDID values:
* 6 – print
* 7 – print preview
* 1 – open window
* 4 – Save As
*/

var PROMPT = 1; // 2 DONTPROMPTUSER
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);

WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = "";
}
</script>
</head>
<body>
<form>
<input type='button' value="Print Preview" onclick="printpr();">
</form>
</body>
</html>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>

<style type="text/css">

@page {
margin-left: 13cm;
}
</style>

</head>

<script language="javascript">

// ====================================================================
// Original post: Unkown person - I lost my notes on who did this first
// Unkown source
// Modified by: Walter Torres <walter@torres.ws> [www.torres.ws]
// 2001/04/29
// I found the secret to remove the prompt!
// Original post did not have this gem to it.
//
// This accesses a built-in Windows command that can perform Magic!
// And yes, this is a Windows ONLY solution.
// In fact, it only works in IE. :(
//
// This still doesn't work with Frames! :(
//
// INPUT: intOLEcmd = integer between 1 and 37, only a few are of use
// intOLEparam = parameter integer for function - optional
// OUTPUT: none
// DEPENDANCIES: none
//
// NOTE: intOLEparam is not optional in the Object call,
// I just made it optional here to make life easier.
// All command values use '1' execept print, thus my reasoning.
//
// EXAMPLE: // This prints given window/frame WITHOUT prompt!
// objWinName.ieExecWB(6, -1)
//
// // This prints given window/frame WITH prompt!
// objWinName.ieExecWB(6)

// // This will display the Print Preview window
// objWinName.ieExecWB(7)
//
// VALUES: intOLEcmd has these possible values
// OLECMDID_OPEN = 1
// OLECMDID_NEW = 2 warning, this kills IE windows!
// OLECMDID_SAVE = 3
// OLECMDID_SAVEAS = 4
// OLECMDID_SAVECOPYAS = 5 note: does nothing in IE
// OLECMDID_PRINT = 6 note: give '-1' as param - no prompt!
// OLECMDID_PRINTPREVIEW = 7
// OLECMDID_PAGESETUP = 8
// Others have no use in IE

function ieExecWB( intOLEcmd, intOLEparam )
{
// Create OLE Object
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';

// Place Object on page
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);

// if intOLEparam is not defined, set it
if ( ( ! intOLEparam ) || ( intOLEparam < -1 ) || ( intOLEparam > 1 ) )
intOLEparam = 1;

// Execute Object
WebBrowser1.ExecWB( intOLEcmd, intOLEparam );

// Destroy Object
WebBrowser1.outerHTML = "";
}

</script>

<script>

function saveAsMe (filename)
{
document.execCommand('SaveAs',null,filename)
}
</script>

<body>

This is so cool!!!!!!!!!!!!

<p>

<input type=button value="print preview" onclick="window.ieExecWB(7);">

<input type=button value="page setup" onclick="window.ieExecWB(8);">
<p>
<input type=button value="print page w Prompt" onclick="window.ieExecWB(6);">

<input type=button value="print page w/o Prompt"
onclick="window.ieExecWB(6, -1);">

<p>
<input type=button value="Save As" onclick="saveAsMe('ww.txt');">

<input type=button value="Save Copy" onclick="window.ieExecWB(5);">

</body>
</html>


Printing Templates Guide

using css to force Landscape Print in IE

木曜日, 6月 18, 2009

Download Fedora source file

taRgreyによるスパム対策に書かれた内容を参考に、Fedoraソースのインストール仕方の覚書をします。

# yum -y install yum-utils ← yumでSRPMをダウンロードするyumdownloaderを含むyum-utilsをインストール
# yumdownloader --noplugins --source postfix ← PostfixのSRPMダウンロード
# rpm -ivh postfix-2.5.1-2.fc9.src.rpm ← PostfixのSRPM展開
# cd rpmbuild/SOURCES/ ← PostfixのSRPM展開先ディレクトリへ移動※F10,F11の場合
# cd /usr/src/redhat/SOURCES/ ← PostfixのSRPM展開先ディレクトリへ移動※F9の場合
# tar zxvf postfix-2.5.1.tar.gz ← Postfixソース展開


How To Download a RPM Package Using yum Command Without Installing On Linux
# yum update httpd -y --downloadonly --downloaddir=/opt

水曜日, 6月 17, 2009

自転車での違法行為

自転車での違法行為
  • 飲酒運転
  • 2人乗りなどの定員外乗車
  • 携帯電話の使用
  • 傘を差す
  • 横に並んで走行する
  • 無灯火運転
  • 携帯電話の使用
  • ヘッドフォンで音楽を聴く
  • 手やハンドルに荷物を掛けて運転する
  • ベルで歩行者を避けようとする


僕も知らなかった人の一人でした。

bash's I/O Redirection and exec Usage

Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting

コマンドの出力をファイルや別のコマンドに振り分ける
この文に例をあげて説明する形を取っていたので、とてもわかりやすかった。

Nautilus Side Pane Missing

Nautilus Side Pane Missing

Run gconf-editor again and go to the Nautilus Preferences. Make sure you have the "always_use_browser" check box checked.

Vim case insensitive search

A per search way is this:
/pattern\c

future searches case insensitive
:set ci or :set caseinsensitive

Smart case-insensitive, incremental search using vim

Smart case-insensitive

:set ignorecase (and hit return)
:set smartcase (and hit return)


With both ignorecase and smartcase turned on, a search is case-insensitive if the search string is in ALL lower case. For example, searching for apple will find Apple and APPLE.


Incremental search

:set incsearch (and hit return)

incsearch stands for incremental search. It means that you will see what vim matches as you type in each letter of your search string (without having to hit return before search is even attempted).

How do I get the UDP buffer size?

How do I get the UDP buffer size?

Emacs 電子書棚

Emacs 電子書棚

GNU Emacs Manual
A guided tour of Emacs

M-x ediff : compare two files and highlight their differences
M-x dired : file manager
C-x C-q (or M-x wdired-change-to-wdired-mode) : switches to Editable Dired mode
M-x gnus : read news, mail, and RSS feeds
M-x tetris : play tetris
C-h t : run the tutorial

pkg-configとは

pkg-configとは
pkg-configは/usr/lib/pkgconfigに指定した該当の'xxx.pc'を参照して、--cflags或いは--libsを返ってきます。自己流でインストールしたライブラリの場合、.bash_profile等のファイルに環境変数PKG_CONFIG_PATHを設定する必要があります。例として
export PKG_CONFIG_PATH=$HOME/lib/pkgconfig


geanyに例contours.cをビルドすると、
cc `pkg-config --cflags opencv`   `pkg-config --libs opencv`   contours.c   -o contours
を実行してくれて、不思議だと思っています。contours.cがopencv関連のファイルなのだと自動的に識別くれるのはなぜなのか、教えてください。結局、自分の勘違いで、元々Fedora上のopencvサンプルディレクトリにGNUmakefileが有って、makeを実行すると、GNUmakefileを探して、自動で実行してくれます。ちなみに、Mandrivaのopencvサンプルディレクトリにbuild_all.shを使って、コンパイルを行います。

build_all.sh in Mandriva OpenCV C Sample Directory

#!/bin/sh
if [[ $# > 0 ]] ; then
base=`basename $1 .c`
echo "compiling $base"
gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base
else
for i in *.c; do
echo "compiling $i"
gcc -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv`;
done
for i in *.cpp; do
echo "compiling $i"
g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv`;
done
fi

月曜日, 6月 15, 2009

SSH tunneling

RPM Fusion

RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship.

What package is that file in on linux?

What package is that file in ?

Fedora
$ yum search #search for a file in any package (installed or not)
$ rpm -qf /path/to/file #installed package a file belongs to


Ubuntu
$ apt-file search autoexpect #search for a file in any package (installed or not)
$ dpkg -S #installed package a file belongs to


Mandriva
$ urpmf #search for a file in any package (installed or not)
$ rpm -qf /path/to/file #installed package a file belongs to




List package contents
Fedora
$ rpm -ql package #installed package

Ubuntu
$ dpkg -L package #installed package

Mandriva
$ rpm -ql package #installed package



参照:
Mandriva Package Management
Various Linux Package Operations

土曜日, 6月 13, 2009

lsの苦悩

List only the directories
  • echo */
  • echo */ ” ” | sed “s/\/ /\n/g” #throw trailing “/”
  • find . -type d -maxdepth 1 -mindepth 1
  • find . -type d -printf ‘%P\b’ #just directory names
  • find . -maxdepth 1 -mindepth 1 -type d -printf %P\\n #Print directory names one line at a time, without any other characters
  • ls -d */
  • ls -d .*/ #see hidden directories
  • ls -d */ | xargs -l basename #just directory namestree -d -L 1
  • ls -l | grep “^d”
  • tree -fid



List only file and not directory - ls command

金曜日, 6月 12, 2009

The Quick Guide to Python Eggs

The Quick Guide to Python Eggs

.eggのインストール法

Pygame Binaries and Documents for Windows

Orange is a component-based data mining software.

matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers, and six graphical user interface toolkits.

木曜日, 6月 11, 2009

CHM viewers for Linux

CHM viewers for Linux

Autoten

Autoten rpm for quick, easy installation of those extra bits. 独学Linuxの説明通り、DVDやMP3のコーデック、Skype、Google Desktop、Picasa、VirtualBoxなど有用なアプリケーションをワンクリックで導入することができます。

#rpm -Uvh http://dnmouse.org/autoten-4-1.fc11.noarch.rpm
#rpm --import http://dnmouse.org/RPM-GPG-KEY-dnmouse



There are may beautiful Dangermouse's Gallery

水曜日, 6月 10, 2009

yumによるパッケージ管理

yumによるパッケージ管理,中にyumがアクセスするサーバを指定する内容が有ります。


# yum install パッケージ名
ソフトウェアをインストールする
# yum remove パッケージ名
削除する場
# yum check-update
前もってアップデートパッケージがあるかどうかを確認する
# yum update
インストールされているパッケージ全てをまとめてアップデートする
# yum -y update
-y オプションをつけると途中で現れるメッセージに対して全て「Yes」で答えるようになります
# yum update telnet
特定のパッケージのみをアップデートする
# yum clean
yum のキャッシュをクリアする
# yum search samba
パッケージの検索を行う。検索の対象となるは、RPMファイルの「Name」、「Packager」、「Dummary」、「Description」の各フィールドです。
# yum list
利用可能なパッケージの一覧を表示する
# yum list installed
インストール済みのパッケージ一覧を表示する
# yum list available
インストール可能なパッケージのリストを表示する
# yum list updates
アップデート可能なパッケージのリストを表示する
# yum list recent
最近追加されたパッケージのリストを表示する
# yum info openssh
パッケージの情報を表示する
# yum info
利用可能な全パッケージの情報を全て表示する
# yum info available
インストール可能なパッケージのリストを表示する
# yum info updates
アップデート可能なパッケージのリストを表示する
# yum info recent
最近追加されたパッケージのリストを表示する
# yum provides libg2c.so.0
特定のファイルが提供されているパッケージ名を調べ



ディスククォータを設定する
リモートのXプログラムを実行する

Fedora,Ubuntu のディレクトリが日本語にするか、英語にするか

LANG=C xdg-user-dirs-gtk-update で変更

Portland Project - XdgUtils
Xdg-utils is a set of command line tools that assist applications with a variety of desktop integration tasks.

火曜日, 6月 09, 2009

Keeping console window open

Keeping console window open


...
if __name__ == '__main__':
main()

into:
...
if __name__ == '__main__':
try:
main()
except Exception, why:
print 'Failed:', why
import sys, traceback
traceback.print_tb(sys.exc_info()[2])
raw_input('Leaving: ')

月曜日, 6月 08, 2009

カナダへ移民しようよ

移民しちゃいました

MinWGでRubyのビルド

Rubyのビルド
$ ./configure && make


拡張ライブラリの確認
$ find . -name *.so


拡張ライブラリの有無の確認のために、ext/以下のディレクトリの確認
$ find ext/ -type d -maxdepth 1 -mindepth 1


拡張ライブラリの作り方に関しては前田修吾氏 *4の「第1回 拡張ライブラリの作成(1), (2)」が詳しい。

拡張ライブラリビルドための必要なライブラリ
  • jarp Porting Libraries to Win32 ( http://jarp.does.notwork.org/win32/ )
    gdbm, openssl, pdcurses(curses), readline, zlib
  • GnuWin32 ( http://gnuwin32.sourceforge.net/ )
    上記 + GNUを中心としたツールライブラリ。結構新しめ。


詳細はbuild Ruby on Windows 【第 2 回】

Windows版最新リリース

RDEはスクリプト言語Rubyの専用開発環境です。

Ruby用例

  1. 逆引きRuby
  2. why’s (poignant) guide to ruby
    • Learning to Program
      • A very basic, ground-level tutorial for the beginner to Ruby. By Chris Pine.
    • Programming Ruby
      • The original tome and complete reference for Ruby. By Dave Thomas and Andy Hunt (also known as The Pickaxe)
    • A Little Ruby, A Lot of Objects
      • Lovely little in-progress work to teach Ruby purely with simple code examples. By Brian Marick.
    • Ruby User’s Guide
      • A guide to learning Ruby (with code examples). By Matz, the creator of Ruby. Translated into English.

火曜日, 6月 02, 2009