2005年8月30日火曜日

Unicodeに参考にされた規格

参考
unicode.org
JIS X 0221 附属書M (参考) 文字の出所

00-1F C0 Control Codes (ASCII C0) / ISO 6429:1992 IRV(国際標準版)
7F DELETE
80-9F C1 Control Codes / ISO 6429:1992

20-7E ISO 646 (ASCII)

==
00A0- ISO 8859-1 (Latin-1)
0100- ISO 8859-2, -3, -4, -9 (European Latin)
0370- ISO 8859-7 (Greek)
0400- ISO 8859-5 (Cyrillic)
05D0- ISO 8859-8 (Hebrew)
0600- ISO 8859-6 (Arabic)

==
0901- ISCII 1988 (Devanagari)
0E01- TIS 620-2529 (Thai)

==
2700- ITC Zapf Dingbats Series 100
2380-238C 2396-239A ISO 9995-7 Keyboard Symbols
238D-2394 IR 181 Electrotechnical Symbols


==
3040- JIS X 0208 ひらがな
30A0- JIS X 0208 カタカナ
3100- GB 2312 CNS 11643 Bapomofo
3130- KS X 1001 Hangul Jamo

===
F900-FA0B KS X 1001:1998 異体字
FA0C-FA0D Big 5 複製
FA0E-FA2D IBM互換文字 32字
FA30-FA6A JIS X 0213 互換文字
FA70-FAD9 DPRK 互換文字

===
2F800- CNS 11643 ?

下書きのまま(2008/09)

2005年8月29日月曜日

欧州で利用されているUnicodeサブセット

参考
Diffuse(日本語版) 文字セットガイド
http://www.iecapc.jp/06/diffusenew/guide/charguide.html
JIS規格・TRの閲覧はJISCのデータベース検索で
http://www.jisc.go.jp/

言語の日本語名
JIS X 0412を参照

Unicode中のヨーロッパ多言語サブセット (MES-1, MES-2, MES-3)
Multilingual European Subsets in ISO/IEC 10646-1 (Unicode)
http://www.cenorm.be/cenorm/businessdomains/businessdomains/isss/cwa/multilingual+eur+subsets.asp
CEN (European Committee for Standardization) Workshop Agreements (CWAs)
http://www.cenorm.be/cenorm/businessdomains/businessdomains/isss/cwa/downloadarea.asp

ヨーロッパ言語内の単語の順序付け規則
European Ordering Rules(EOR) ENV 13710:2002
(draft) http://anubis.dkuug.dk/CEN/TC304/EOR/eorhome.html
CEN/TC304 (情報通信技術分野の欧州におけるローカライゼーションに関する分科会?)
http://anubis.dkuug.dk/CEN/TC304/PT.html

(Unicode以外で)ヨーロッパ向けに標準化されたキャラクタセットの比較
Comparisons of standardized character sets for Europe (2000)
http://www.statskontoret.se/statskontoret/templates/Page____1738.aspx
STATSKONTORET (Swedish Agency for Public Management)
http://www.statskontoret.se/

JIS X 0212-1990 参考1 (P.33)
ラテン系アルファベット及びダイアクリティカルマーク付きラテンアルファベットの使用言語表

IANA Charset Registration
http://www.iana.org/numbers.html#C
Unicode Mappings
ftp://unicode.org/Public/MAPPINGS/ ISO8859/

2005年8月28日日曜日

pdcursesをpython(MSC on win32版)で使う

pdcursesにないものでpython cursesで利用されている関数



curses(XPG4.2)にある関数
color_content color

filter util
getwin util
putwin util
use_env util

noqiflush inopts
qiflush inopts
wtimeout inopts

putp terminfo
setupterm terminfo
tigetflag terminfo
tigetnum terminfo
tigetstr terminfo
tparm terminfo

mvwgetnstr getstr

ncurses独自実装の関数?
has_key /* ncurses getch*/

過去のcurses(SYSV)との互換
getattrs /* old SYSV */

エクスポートしてない定数
_ISPAD
ncurses:curses.hに公開 "#define _ISPAD 0x10"
pdcurses:cursespriv.hにあり非公開 ただし"#define _PAD 0x10"になっている。
使用例:
WINDOW *win;
if (win._flag==_ISPAD) return(OK);

ncursesでの実装


#define getattrs(win)  ((win)?(win)->_attrs:A_NORMAL)


実装のしかた


#define _ISPAD          0x10

#define mvwgetnstr(w,y,x,str,n) (wmove(w,y,x)==ERR?ERR:wgetnstr(w,str,n))


下書きのまま(2008/09)

2005年8月26日金曜日

*cursesの差異とドキュメント配布場所

ソースファイルと一緒に配られているしっかりした解説が、ネット上ではあまり参照できない。
ただし、一次配布元からは参照できるようだ。
また、Wikipediaにもリンク集がある。

ncurses:

オフィシャル
http://invisible-island.net/ncurses/
http://dickey.his.com/ncurses/ (同じサーバ)
http://www.gnu.org/software/ncurses/ (情報が古め)

NCURSES FAQ
http://invisible-island.net/ncurses/ncurses.faq.html

ソースに同梱されている重要な書類
Writing Programs with NCURSES (116.55 KB)
html/ncurses-intro.html
http://invisible-island.net/ncurses/ncurses-intro.html

A Hacker's Guide to Ncurses Internals (32.97 KB)
html/hackguide.html
http://invisible-island.net/ncurses/hackguide.html

ncurses (3x) ― man2html
html/man/ncurses.3x.html
http://invisible-island.net/ncurses/man/ncurses.3x.html

その他の解説
ncurses Programming HOWTO
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

wikipediaにもリンク集がある。
http://en.wikipedia.org/wiki/Ncurses

pdcurses:

Windowsにも対応している。

オフィシャル
http://pdcurses.sourceforge.net/
実装
http://pdcurses.sourceforge.net/doc/PDCurses.txt

python cursesパッケージ:

MSC on win32版では動かない。


python curses over pdcurses on windows:

pdcursesだけでは動かない
http://gnuwin32.sourceforge.net/packages/pdcurses.htm
http://gnuwin32.sourceforge.net/packages/termcap.htm
あとの足りない関数を補う必要がある。

下書きのまま(2008/09)

2005年8月21日日曜日

ringサーバ上のcygwinパッケージ更新状況

3.結果: 更新頻度が高めなサーバ
ring.data-hotel.net, ring.riken.jp, ring.yamanashi.ac.jp, ring.atr.jp, ring.ocn.ad.jp, ring.astem.or.jp, ring.asahi-net.or.jp, ring.ip-kyoto.ad.jp, ring.tains.tohoku.ac.jp, ring.edogawa-u.ac.jp, ring.maffin.ad.jp, ring.wakwak.com, ring.hosei.ac.jp, ring.k-opti.com, ring.sakura.ad.jp, ring.airnet.ne.jp, ring.toyama-ix.net

1.一次調査: 2005/08/20 04:00 JSTの更新状況
古い

10060, Operation timed out
ring.csi.ad.jp, maeda.ring.gr.jp, ring.qgpop.net, ring.jah.ne.jp

10061, Connection refused
aist.ring.gr.jp, ring.toyama-u.ac.jp

setup-version 2.457.2.1
setup-timestamp 1113364212, 2005/04/13 12:50 ― 4ヶ月更新無し
ring.so-net.ne.jp

setup-version 2.457.2.2
setup-timestamp 1120206053, 2005/06/01 17:20 ― 2ヶ月更新無し
ring.dcs.pref.mie.jp

setup-timestamp 1123753839, 2005/08/11 18:50 ― 1週間更新無し
ring.fujixerox.co.jp, ring.nict.go.jp

setup-timestamp 1124121008, 2005/08/16 00:50
ring.htcn.ne.jp

更新頻度高め
setup-timestamp:1124293820
ring.shibaura-it.ac.jp, ring.toyama-ix.net, ring.pwd.ne.jp

setup-timestamp:1124368849
ring.nihon-u.ac.jp, ring.hosei.ac.jp, ring.wakwak.com, ring.maffin.ad.jp, ring.sakura.ad.jp, ring.airnet.ne.jp, ring.k-opti.com, ring.edogawa-u.ac.jp, ring.ocn.ad.jp, ring.ip-kyoto.ad.jp, ring.asahi-net.or.jp, ring.astem.or.jp, ring.tains.tohoku.ac.jp

setup-timestamp 1124458820
ring.atr.jp, ring.yamanashi.ac.jp, ring.data-hotel.net, ring.riken.jp

新しい


◊2.二次調査: 2005/08/21 02:03 JSTの更新状況

"HTTP Error 403: Forbidden"
ring.nihon-u.ac.jp

setup-timestamp:1124293820, 16-Aug-2005 00:50
ring.pwd.ne.jp, ring.shibaura-it.ac.jp

以下更新頻度多め
setup-timestamp:1124458820, 2005/08/19 22:40
ring.astem.or.jp, ring.riken.jp, ring.asahi-net.or.jp, ring.ip-kyoto.ad.jp, ring.yamanashi.ac.jp, ring.atr.jp, ring.tains.tohoku.ac.jp, ring.edogawa-u.ac.jp, ring.maffin.ad.jp, ring.wakwak.com, ring.hosei.ac.jp, ring.toyama-ix.net, ring.k-opti.com, ring.sakura.ad.jp, ring.airnet.ne.jp

setup-timestamp:1124479216, 2005/08/20 04:20 JST
ring.data-hotel.net, ring.ocn.ad.jp

2005年8月16日火曜日

コンソールとエスケープシーケンス

escape sequence エスケープシークエンスとも言う

MS-DOS ansi.sys
http://www.microsoft.com/technet/archive/msdos/comm1.mspx

Linux
http://www.linux.or.jp/JM/html/LDP_man-pages/man4/console_codes.4.html

Windowsのコンソール(cmd.exe)では効かない。
BCC conio, wincon
MSC wincon
MSYS, MinGW wincon
CYGWIN stty, ioctl, curses
を使う。

下書きのまま(2008/09)

unixやcygwinのコンソール操作

unix系
GNU coreutils stty

http://www.bookshelf.jp/texi/coreutils/coreutils-ja_19.html#SEC119
http://www.gnu.org/software/coreutils/manual/html_chapter/coreutils_19.html#SEC115
http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/stty.1.html

下書きのまま(2008/09)

conio.hに見るCランタイム コンソール関数のサポート状況

MSC

C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\conio.h
C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\libc.lib
C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\msvcr71.dll
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_console_and_port_i.2f.o.asp

関数:
_cgets, _cgetws
_cprintf, _cwprintf
_cputs
_cscanf, _cwscanf
_getch, _getwch
_getche, _getwche
_kbhit
_putch, _putwch
_ungetch, _ungetwch

定数:
なし

MinGW, cygwin-mingw

C:\MinGW\include\conio.h, C:\MinGW\lib\libmsvcrt.a
C:\cygwin\usr\include\mingw\conio.h, c:\cygwin\lib\mingw\libmsvcrt.a

関数:
_getch(), _getche(), _kbhit(), _putch(), _ungetch()
_cgets(), _cprintf(), _cputs(), _cscanf()

変数:
なし

BCC5.5

C:\Borland\bcc55\Include\conio.h
C:\Borland\bcc55\Lib\cw32.lib
C:\Borland\bcc55\Lib\cw32i.lib, C:\Borland\bcc55\Lib\import32.lib, C:\Borland\bcc55\Bin\cc3250.dll

関数:
getpass()
getch(), getche(), kbhit(), putch(), ungetch() / _getch()
cgets(), cprintf(), cputs(), cscanf()
gotoxy(), wherex(), wherey()
gettext(), movetext(), puttext()
highviedo(), normvideo(), lowvideo()
clreol(), clrscr()
delline(),insline()
textattr(), textcolor(), textbackground(), textmode()
_setcursortype()
__flush_win95_keyup_events()
window()
gettextinfo()

変数:
グローバル変数 directvideo, _wscroll
グローバル定数 _NOCURSER, _SOLIDCURSER, _NORMALCURSER, BLINK, PASS_MAX
構造体 text_info
列挙子 text_modes, COLORS

DJGPP

C:\DJGPP\include\conio.h
C:\DJGPP\lib\libc.a

関数:
getch(), getche(), kbhit(), putch(), ungetch() / _conio_kbhit()
cgets(), cprintf(), cputs(), cscanf()
gotoxy(), wherex(), wherey()
gettext(), movetext(), puttext()
blinkvideo(), highviedo(), normvideo(), lowvideo(), intensevideo()
clreol(), clrscr()
delline(), insline()
textattr(), textcolor(), textbackground(), textmode()
_setcursortype(), _set_screen_lines()
gppconio_init()
window()
gettextinfo()

変数:
グローバル変数 directvideo, _wscroll
グローバル定数 _NOCURSER, _SOLIDCURSER, _NORMALCURSER, BLINK
構造体 text_info
列挙子 text_modes, COLORS

Windowsのコンソール入出力

主にWindowsのコマンドプロンプトの操作に使われる
(MS Visual)Cランタイムライブラリに含まれるコンソール入出力関数
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_console_and_port_i.2f.o.asp
#include <conio.h>
  • _getch()
  • _getche()
  • _kbhit()
  • _ungetch()
  • _putch()
  • など


アンダバーが付かないgetch()などのANSI Cに準拠しない古い関数名でも使える。


MinGWとcygwin-mingwのgccは、MS Cランタイム(msvcrt.dll)にリンクされるので、
MSVCと同じ関数が使える。
DJGPPv2、BCC5.5では、独自のCランタイムライブラリとヘッダファイルが用意されているので、MS Cと同じ関数の他に、DOS系で利用されていた関数が使える。
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq3.html

cygwin版gccは、cygwin?.dllにリンクされるが、Cランタイムのコンソール操作関数は
含まれていないのでcygwinからリンクする場合、-mno-cygwinを付けないと利用出来ない。

MSVCのコンソール入出力には、色を変えたりカーソルを移動する操作は用意されていないので、必要な場合はWindowsAPIに用意されているコンソール入出力関数(wincon.h)で行なう。
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_setconsolecursorposition.asp


コンソール関数
conio.h ― Cランタイムライブラリ ヘッダ
wincon.h ― WindowsAPI, プラットフォームライブラリ ヘッダ

シリアル(COM Port)操作関数
conio.h ― Cランタイムライブラリ ヘッダ
winbase.h ― WindowsAPI, プラットフォームライブラリ ヘッダ


(MS Visual)Cランタイムライブラリ
msvcrt.lib libc.lib ― スタティックライブラリ
msvcrtd.lib libcd.lib ― msvcrt.dll用インポートライブラリ
msvcrt{,20,40}.dll, msvcr{70,71}.dll ― ダイナミックライブラリ

(Windows)プラットフォーム(SDK)ライブラリ
kernel32.lib ― kernel32.dll用インポートライブラリ
kernel32.dll ― ランタイムDLLファイル

Borand Cランタイムライブラリ
cw32.lib ― スタティクライブラリ
cw32i.lib ― Importライブラリ
cc3250.dll ― ランタイムDLL

DJGPP Cランタイムライブラリ
libc.a ― スタティクライブラリ

MinGW Cランタイムライブラリ
libmsvcrt.a

sRGBを中心とした色空間とその変換

http://gonbee.blogspot.com/2006/04/srgb.htmlへ更新

sRGB CRTで表示できる範囲を8bit表示で色誤差が最小となるように定めた色空間(8bit)
http://www.w3.org/Graphics/Color/sRGB
sYCC RGB変換先をsRGBに合うように定めたYCbCrの色空間(8bit)
http://www.color.org/sycc.pdf
bg-sRGB sRGBの外へ拡大した色空間(10bit)
http://www.color.org/bgsrgb.pdf
scRGB sRGBをbg-sRGBよりさらに拡大したガンマ変換しない比例した色空間(16bit)
修正1 http://www.iec.ch/cgi-bin/getcorr.pl/iec61966-2-2-cor1{ed1.0}en.pdf?file=iec61966-2-2-cor1{ed1.0}en.pdf
http://www.extremetech.com/article2/0,1697,1176921,00.asp
sRGB64 scRGBになる前の名称
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/parts/part2-2/
IECドラフト(案) 100/PT61966(PL)103
HDR色空間 (High Dinamicrange) 広い濃度の表現力を持つ色空間を指す。
OpenEXRなど、指数表現を持ちscRGB(10の3.5乗)のダイナミックレンジより広いものが多い。
http://www.anyhere.com/gward/hdrenc/Encodings.pdf

R,G,Bbg-sRGB(10) = ( R,G,BsRGB(8) x 2) + 384
R,G,BsRGB(8) = ( R,G,Bbg-sRGB(10) -384 ) /2 の切り捨て


RscRGB3.240625-1.537208-0.498629X
GscRGB=(-0.9689311.8757560.041518Y
BscRGB0.055710-0.2040211.056996Z

http://www2.nict.go.jp/tao/kenkyu/itakua/seika/60/60yokou.pdf より引用

ICC 色空間レジストリ
http://www.color.org/rgbchardata.html

IEC TC 100/TA 2
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/
IEC TC 100/TA 2の進行状況 (最終更新日:2003月1月5日)
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/parts/

標準リスト (最終更新日:2002年4月9日)
http://www.iecapc.jp/06/diffusenew/standards/standards.html

2005年8月13日土曜日

Windows上のPython GUIパッケージ

Pythonパッケージ
日本Pythonユーザ会(PyJUG) http://www.python.jp/Zope/

◊ PyGTK

必要なもの:Pythonパッケージ、PyGTKパッケージ、GTKパッケージ

組み合わせ:
Python2.3, PyGTK2.4, GTK+2.4
Python2.3, PyGTK2.6, GTK+2.6
Python2.4, PyGTK2.4, GTK+2.4
Python2.4, PyGTK2.6, GTK+2.6

◊ PyQt Non-commercial version on Qt v2.3.0

必要なもの:Pythonパッケージ、PyQtパッケージ、Qtランタイム

必要なもの(詳細):
Python2.3,
Non-commercial version of PyQt v3.13 for Windows and Python v2.3 (PyQt-win-nc-msvc-3.13.exe),
non-commercial version of Qt v2.3.0 for Windows (qt-mt230nc.dll)
C:\Python23\Lib\site-packages に入れる。

◊ PyQt GPLed version on Qt3

必要なもの:Pythonパッケージ、Cコンパイラ(Bcc5.5, MINGW, VC, VC.net)、Qt 3/Win Freeソース、SIPとPyQtソース

wxPython

http://www.wxpython.org/
Unicode版とANSI版がある。
必要なもの:Pythonパッケージ、wxPythonパッケージ
組み合わせ:
Python2.3, wxPython2.6 (ANSI or Unicode)
Python2.4, wxPython2.6 (ANSI or Unicode)

2005年8月12日金曜日

Pythonのグラフィカルユーザーインターフェースパッケージ

Tkinter

http://www.python.jp/
Pythonライブラリに用意されているインターフェース

ライブラリリファレンス http://www.python.jp/doc/release/lib/tkinter.html
An Introduction to Tkinter http://www.pythonware.com/library/
Wiki http://wiki.python.org/moin/TkInter

PyGTK

http://www.pygtk.org/

Tutrial http://www.pygtk.org/pygtk2tutorial/
GTKチュートリアルに沿った内容
Reference http://www.pygtk.org/reference.html
Articles & Tutorials http://www.pygtk.org/articles.html

PyQt

http://www.riverbankcomputing.co.uk/pyqt/

GUI Programming with Python: QT Edition http://www.opendocs.org/pyqt/
Errata http://www.valdyas.org/python/book.html
Python Bindings for Qt http://www.river-bank.demon.co.uk/docs/pyqt/PyQt.html
Articles http://www.riverbankcomputing.co.uk/articles.php
Wiki http://www.diotavelli.net/PyQtWiki

wxPython

http://www.wxpython.org/

How to Learn wxPython
http://wiki.wxpython.org/index.cgi/How_20to_20Learn_20wxPython
Tutorial http://wxpython.org/tutorial.php

その他

16.6 他のグラフィカルユーザインタフェースパッケージ ― Python ライブラリリファレンス
http://www.python.jp/doc/release/lib/other-gui-packages.html

2005年8月5日金曜日

Windows XPのConsoleフォントを変更する

バックアップを取った後、regedit,regedt32などでレジストリを編集する。
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
"932"

*MS ゴシック
*MS Gothic


*NFモトヤアポロ1等幅
*NfMotoyaAporo W1 mono
*MS ゴシック
*MS Gothic

などに変更してコンピュータを再起動する。

コマンドプロンプトを開き、タイトルバーの左端のアイコンを左クリックして、
フォントタブを開き変更する。

2005年8月2日火曜日

50年代に登場したIBMタイプライターにちなんだ固定幅欧文フォント

タイプボールといってフォントが彫られたボールを交換することが出来た

IBM
Prestige Elite, Howard Kettler,1953
Kettler, Howard Ketter, 1955
Courier, Howard Kettler, 1956
Letter Gothic, Roger Roberson, 1956

Bitstreamから現在コンピュータフォントとして出ているもの
Courier (10 Pitch)
Pica (10 Pitch)
Letter Gothic (12 Pitch)
Prestage (12 Pitch)
Script (12 Pitch)
Orator (15 Pitch), John Scheppler