วันศุกร์, ธันวาคม 09, 2548
Java : ว่าด้วยเรื่อง Inheritance, Superclass, Subclass
ในคลาสลูก การเรียก Constructor super() ของคลาสพ่อแบบ explicit กับการไม่เรียก
ให้ผลต่างกันอย่างไร?
การใช้ this กับไม่ใช้ this นั้นมีผลต่อ inheritance อย่างไร คือพอถูก subclass ไปแล้ว this ที่ในคลาสพ่อก็ยังคง refer ถึงตัวคลาสพ่ออยู่ดีใช่ป่าว?
ทั้งหมดนี้น่าจะหาำคำตอบได้ใน Java Specification Book ไว้ว่างๆ ไปเช็คแล้วจะกลับมาตอบ
วันพฤหัสบดี, ธันวาคม 01, 2548
Java : Windows Font Look And Feel
Java : เกี่ยวกับเรื่องของ ชิ้นส่วนภาชนะ Container Components
สิ่งที่ควรสำเหนียก เวลาใช้พวก class เหล่านี้คือ
- ทุก component ที่จะปรากฏบนจอ จะต้องอยู่ใน containment hierarchy---เป็นต้นไม้ของ component ซึ่งมี top-level container เป็นราก
- ทุก GUI component ถูกยัดใส่ลงภาชนะ ได้แค่ครั้งเดียว. ถ้าเราเอา component ไหนยัดลงไปใน container หนึ่งแล้ว และจับมันยัดลงไปใน container อื่นอีก, ก็หมายความว่า มันต้องถูกเอาออกมาจาก container แรกก่อนจึงถูกนำไปยัดใส่ container ที่สองได้
- ทุก top-level container มี content pane ซึ่งกล่าวอย่างคร่าวๆได้ว่า content pane นั้น บรรจุ visible components ใน GUI ของ top-level container ทั้งโดยตรงและโดยอ้อม.
- เราสามารถเลือกที่จะใส่ menu bar ไปที่ top-level container หรือไม่ก็ได้. ซึ่ง menu bar นั้นจะถูกวางอยู่ภายใน top-level container, แต่อยู่นอก content pane. ในบาง look and feels, เช่น Mac OS look and feel, มีทางเลือกให้เราวางตำแหน่งของ menu bar ที่อื่นซึ่งเหมาะสมกว่าได้, เช่นที่ส่วนบนสุดของหน้าจอ เป็นต้น. ดังภาพข้างล่าง
ตัวอย่างของ containment hierarchy ลำดับชั้นของภาชนะ
Features ของ JComponent ที่น่านำไปใช้ในโปรแกรม
- Tool tips กำหนดข้อความโดย
setToolTipText(), ช่วยบอกเวลา user เอาเมาส์มาวางไว้. ดูเพิ่มเติมได้ที่ How to Set the Look and Feel - Support for layout ใน
Componentclass แม้จะมี methods ซึ่งเอาไว้ดู layout hint เช่นgetPreferredSizeandgetAlignmentX. ทางเลือกอื่นสำหรับ set layout hints,JComponentclass เพิ่ม setter methods —setPreferredSize,setMinimumSize,setMaximumSize,setAlignmentX, andsetAlignmentY. ขึ้นมา ดูเพิ่มที่ Laying Out Components Within a Container - Key bindings ทำให้ components ตอบสนองเมื่อ user กดปุ่ม keyboard ที่กำหนดไว้. เช่นเวลาเคอร์เซอร์อยู่บนปุ่ม การกด space bar ก็เหมือนกับการกดคลิ๊กบนปุ่มนั้น. look and feel เซต bindings ของการกดและปล่อย ปุ่ม Space และส่งผลนั้นไปที่ปุ่ม. เพิ่มเติมเกี่ยวกับ key bindings ดูที่ How to Use Key Bindings
.
การใช้ Text Components
| Method | Purpose |
|---|---|
void addMouseListener(MouseListener) void removeMouseListener(MouseListener) | Add or remove a mouse listener |
void addMouseMotionListener(MouseMotionListener) void removeMouseMotionListener(MouseMotionListener) | Add or remove a mouse motion listener |
void addKeyListener(KeyListener) void removeKeyListener(KeyListener) | Add or remove a key listener |
void addComponentListener(ComponentListener) void removeComponentListener(ComponentListener) | Add or remove a component listener |
void setTransferHandler(TransferHandler) TransferHandler getTransferHandler() | Set or remove the transferHandler property. The TransferHandler supports exchanging data via cut, copy, or paste to/from a clipboard as well a drag and drop. See Drag and Drop |
boolean contains(int, int) boolean contains(Point) | Determine whether the specified point is within the component. The argument should be specified in terms of the component's coordinate system. The two int arguments specify x and y coordinates, respectively. |
Component getComponentAt(int, int)Component getComponentAt(Point) | Return the component that contains the specified x, y position. The top-most child component is returned in the case where components overlap. This is determined by finding the component closest to the index 0 that claims to contain the given point via Component.contains(). |
อ้างอิง
จาวา ติวโตเรี่ยล
วันอังคาร, พฤศจิกายน 29, 2548
Eclipse plug-in UML editors และ GUI builder
http://www.eclipseplugincentral.com
แล้ว list มาดังนี้
-- UML editors --
- UMLet ที่ http://homepage.mac.com/martin.auer/umlet/ อันนี้ฟรี
- SDE ที่ http://www.visual-paradigm.com/product/sde/ec/index.jsp อันนี้ commercials
- EclipseUML ที่ http://www.eclipseuml.com/screenshot.html ฟรีำสำหรับ non-commercial
- VE ที่ www.eclipse.org ฟรีแท้ๆ
- Jigloo ที่ http://www.cloudgarden.com/jigloo/ ฟรีสำหรับ non-commercial
วันจันทร์, พฤศจิกายน 21, 2548
โปรแกรมฟรีแวร์ สำหรับ การเงินและการบัญชี Grisbi
จะหมู่หรือจ่าเดี๋ยวต้องไปลองก่อน เขียนโน้ตไว้เฉยๆ รายละเอียดอยู่ที่ Grisbi
อื่นๆ
gnucash
finance/emma
follow up: เท่าที่ลองดูแล้วคิดว่า GnuCash น่าใช้ที่สุด
วันเสาร์, ตุลาคม 29, 2548
เข้ารหัสเสียงให้เนียนๆ
โดยแปลงจาก VOB หรือ AC3 จะทำอย่างไร. รวบรวมแหล่งข้อมูลไว้ดังนี้
FAQ เกี่ยวกับ audio ครอบคลุมทุกเรื่อง ดีใช้ได้
http://forum.doom9.org/showthread.php?s=&threadid=68300
*ฟอรัมข้างบนกล่าวว่า การจะเข้ารหัส ogg แบบ 5.1 ch นั้นจำเป็นต้อง correct channel coupling
ทำให้บิตเรตสูงและขนาดของไฟล์ผลลัพธ์จะมีขนาดเกือบเท่า AC3 ไฟล์ต้นฉบับ ดังนั้น ทำไม่คุ้ม
ฺฺBeLight GUI สำหรับ Besweet ใช้ง่ายกว่าน่าลอง
http://belight.corecodec.org/
Audio guide ของ doom9
http://www.doom9.org/index.html?/audio-guides.htm
วันอังคาร, ตุลาคม 25, 2548
ssh port forwarding
ตั้งแต่เปลี่ยนมาใช้ FreeBSD ก็พึ่งจะอยากส่งเมล์จากนอกมหาลัยเป็นครั้งแรก
ไม่รู้จะเซตยังไง เลยส่งผ่านเว็บไป.
วันนี้มาค้นๆ ดู มีสองทางออก
- ใช้ SMTP ของ localhost เพราะว่า มันรัน Sendmail อยู่แล้ว
- ใช้ ssh port forwarding ผ่าน เฟ้ป
$ ssh -L 1025:วินเมล์:25 xoguy@เฟ้ปnote:
ต้องตั้ง SMTP เซตติ้งใน thunderbird ให้มันส่งไปที่พอร์ต 1025 ด้วย
reference:
http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Port_Forwarding.html
วันศุกร์, ตุลาคม 07, 2548
Expocity: ทำ gnome windows changer ให้เป็นแบบ Mac
พอกด alt+tab ปุ๊บ มันจะขึ้นหน้าจอที่ย่อส่วนแล้วของทุกวินโด้มาให้เลือก
ก่อนอื่นก็ pkg_deinstall -fv metacity ก่อน จากนั้นจึง
portinstall -PPv expocity
แล้วก็ startx เป็นอันเรียบร้อย
วันพฤหัสบดี, ตุลาคม 06, 2548
ติดตั้ง OpenOffice.org บน FreeBSD โดยใช้ package
มาโพสต่อ ลงจาก OOopackages มันจะไม่เวิร์ค ต้องใช้ package จาก ftp.freebsd.org
ก็รันคำสั่ง pkg_add -v openoffice.org-1.1.5 ธรรมดาตรงๆ ก็เรียบร้อย
เลือกใช้ JVM ของ linux ไม่รู้ว่ามีผลรึเปล่า แต่ก็เอาวะเวิร์คก็พอละ
ติดตั้ง ORBit-0.5.X จากแพคเกจก่อน แล้วก็ ดาวน์โหลด ไฟล์ package จาก ลิ๊งค์ข้างล่างนี้
ftp://ooopackages.good-day.net/pub/OpenOffice.org/FreeBSD/1.1.5m57/FreeBSD5/
ด้วย root permission รัน pkg_install
# pkg_add -v OOo_1.1.5.20050705_FreeBSD54Intel_install.tbz
# pkgdb -u
ด้วย user permission เปลี่ยน dir ไปที่ home/Applications
$ openoffice.org-1.1.5-m57
เพื่อเรียก installer ขึ้นมา แล้วก็ตอบคำถามไปตามที่จำเป็น
วันพุธ, กันยายน 07, 2548
sig-alternative document class
- \centering
- \begin{table} \centering \caption \begin{tabular}
- \begin{table*}, \begin{figure*} สำหรับ กว้างคลุมทั้ง 2 คอลัมน์
- \epsfig, \psfig
- \newtheorem{theorem}{Theorem}
- \newdef{definition}{Definition} ใช้กับ \begin{definition}
- \secit ใช้ทำตัวเอียงสำหรับ text ที่อยู่ตรง section โดยเฉพาะ
- \ttlit สำหรับ Title
- proof environment, \begin{proof}
วันจันทร์, กันยายน 05, 2548
เปลี่ยนมาใช้ WindowMaker แทน Gnome
GNOME มันเดี้ยงๆ มาตั้งหลายวันแล้ว ไม่รู้ทำไม ก็เลยคิดจะลองเปลี่ยนมาใช้ WindowMaker ดู
แต่ว่ามีปัญหาเล็กน้อย คือติดเรื่อง การเปลี่ยนคีย์บอร์ดเลย์เอาท์ ภาษาไทย แต่วันนี้แก้ปัญหาได้แล้ว
พึ่งรู้ว่ามันง่ายขนาดนี้ แค่เติม
Option "XkbLayout" "us,th"ลงไปก็เรียบร้อย ราบรื่น. รายละเอียดก็คือ บอกว่าจะใช้ keyboard layout แบบ us กับ th,
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
แล้วก็ toggle layouts ด้วย alt+shift, ใช้ LED ของ scroll lock เป็นตัว indicator (ไฟติด
คือใช้ layout ภาษาไทย)
ไฟล์ xorg.conf ทั้งหมด ก็เป็นดังข้างล่างนี้
---------------------------------------
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/WindowsFonts/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
Section "Module"
Load "dbe"
Load "dri"
Load "extmod"
Load "glx"
Load "record"
Load "xtrap"
Load "freetype"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
#### Thai Keyboard Switching config., Added by Chaiwat ####
# Option "XkbRules" "xorg"
Option "XkbLayout" "us,th"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection
# VMware SVGA
Section "ServerFlags"
# Option NoTrapSignals
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "vmmouse"
Option "Protocol" "SysMouse"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5"
# Option "Emulate3Buttons"
# Option "Emulate3Timeout" "50"
# Option "ChordMiddle"
EndSection
Section "Monitor"
Identifier "vmware"
VendorName "VMware, Inc"
HorizSync 1-10000
VertRefresh 1-10000
ModeLine "640x480" 100 640 700 800 900 480 500 600 700
ModeLine "800x600" 100 800 900 1000 1100 600 700 800 900
ModeLine "1024x768" 100 1024 1100 1200 1300 768 800 900 1000
ModeLine "1152x864" 100 1152 1200 1300 1400 864 900 1000 1100
ModeLine "1152x900" 100 1152 1200 1300 1400 900 1000 1100 1200
ModeLine "1280x1024" 100 1280 1300 1400 1500 1024 1100 1200 1300
ModeLine "1376x1032" 100 1376 1400 1500 1600 1032 1100 1200 1300
ModeLine "1400x1050" 100 1400 1500 1600 1700 1050 1100 1200 1300
ModeLine "1600x1200" 100 1600 1700 1800 1900 1200 1300 1400 1500
ModeLine "2364x1773" 100 2364 2400 2500 2600 1773 1800 1900 2000
EndSection
Section "Device"
Identifier "VMware SVGA"
Driver "vmware"
EndSection
Section "Screen"
Identifier "Screen 1"
Device "VMware SVGA"
Monitor "vmware"
# Don't specify DefaultColorDepth unless you know what you're
# doing. It will override the driver's preferences which can
# cause the X server not to run if the host doesn't support the
# depth.
Subsection "Display"
# VGA mode: better left untouched
Depth 4
Modes "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 8
Modes "1376x1032"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 15
Modes "1376x1032"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1400x1050"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1400x1050"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
วันอังคาร, สิงหาคม 30, 2548
เวลา startx เข้า GNOME แล้วมี error message No volume control elements and/or devices found
Les Mikesell wrote:
On Thu, 2005-07-28 at 14:23, Eric Harrison wrote:
The only way I can consistently eliminate this problem is by removing
the mixer from the panel by default:rm -rf /etc/gconf/gconf.xml.defaults/apps/panel/applets/mixerAfter sleeping on it... "rm -rf" is a bit harsh, removing the
read/write/execute permissions is much less destructive:
chmod a-wrx /etc/gconf/gconf.xml.defaults/apps/panel/applets/mixer
Is there any way to turn it into what you really want instead: either
a window belonging to a local app running on the terminal or better
yet a proxy that hooks to one when needed?
วันจันทร์, สิงหาคม 29, 2548
Enable DMA mode ใน FreeBSD
เพิ่มส่วนนี้ลงไปใน /boot/loader.conf
hw.ata.atapi_dma="1"
hw.ata.ata_dma="1"
วันอาทิตย์, สิงหาคม 28, 2548
mount_smbfs จาก FreeBSD ไปยัง Win2000 ไฟล์เซิร์ฟเวอร์
อ้างอิงได้จาก web นี้:
http://www.onlamp.com/pub/a/bsd/2001/11/15/Big_Scary_Daemons.html
ไปเจอกระทู้นึง มันบอกว่า
which options did you include ?
I think you need
options LIBMCHAIN
options LIBICONV
as well as
options NETSMB #SMB/CIFS requester
and possibly
options NETSMBCRYPTO #encrypted password support for SMB
Someone please correct me if i'm wrong though, as i'm still pretty much a
FreeBSD noob.
> -----Original Message-----
> From: Jan Karabas [mailto:karabas at savbb.sk]
> Sent: 21 August 2003 11:41
> To: freebsd-questions at freebsd.org
> Subject: Samba & Iconv
>
>
> Hi, I have one small problem with mounting drives of computers
> with Winxxx.
> If I want to mount some shared drive, mount_smbfs fails with this
> message:
>
> bash-2.05b$ mount_smbfs //janci at NEDELA/TEMP ~/mnt/NEDELA/D
> mount_smbfs: can not setup kernel iconv table
> (default:tolower): syserr =
> Operation not permitted
>
> How can I set up "kernel iconv table?". Maybe I forgot
> something, when I
> compiled my kernel...
>
> Help me please. Thanks
>
วันเสาร์, สิงหาคม 13, 2548
FreeBSD printing
http://www.linuxprinting.org/cups-doc.html
1. แก้ไฟล์ /etc/make.conf
- เพิ่ม สามบรรทัดนี้
CUPS_OVERWRITE_BASE=yesเพื่อเซตเกี่ยวกับการ build package ต่างๆ ที่เกี่ยวกับ CUPS ในภายภาคหน้า
NO_LPR=yes
WITH_CUPS=yes
2. install cups
3. install gimp or gimp-print ด้วยการ make install clean จาก ports ไม่งั้นมันไม่มี driver มาให้
$ sudo cp RIIC8103.PPD /usr/local/share/cups/model/4. ไม่ต้องแก้ BrowseAddress ใน /usr/local/etc/cups/cupsd.conf
ก๊อป Ricoh C8100 PPD driver จากของเครื่อง Mac OS X ไปไว้ใน cups driver directory
* เพิ่มเติม สำหรับ Tiger (10.4) นั้นสามารถก๊อปได้จาก /etc/cups/ppd/xxxxx.ppd
5. start cupsd
cd /usr/local/etc/rc.d6. ชี้ browser ไปที่ http://localhost:631/
cp cups.sh.sample cups.sh
./cups.sh start
7. เลือก Manage Printers
8. ใส่ชื่อ แล้วเลือก LPD/LPR
9. ใส่ชื่อ เป็น lpd://ps-printer-name เลือก driver ให้เหมาะสม
10. Config printer ให้เหมาะสม เวลาสั่งพิมพ์ใช้คำสั่ง lpr -P
* หมายเหตุ application ที่มันเบสบน Linux นั้นมันจะใช้ binary ที่ /compat/linux/usr/local/bin
ซึ่งจะหา lp กับ lpr ไม่เจอ. ต้องทำลิ้งเอง
FreeBSD: multilingual input ภาษาไทยและญี่ปุ่น
แค่ไปเลือก Desktop > Preferences > Keyboard แล้ว เพิ่ม Keyboard layout ของ ภาษาไทยลงไป
แล้วไปแก้ ค่าให้เปลี่ยน layout โดยใช้ Alt+Shift แทน
สำหรับภาษาญี่ปุ่น
ซับซ้อนกว่า
1. Install anthy
2. Install uim อันนี้ควรลงจาก ports เพราะต้องเลือก Anthy support option.
3. ต้องไป enable Anthy โดย รัน uim-pref-gtk แล้วติ๊กเลือก Specific default IM แล้วเลือก
Default input method เป็น Anthy
สำหรับค่า ENVIRONMENT VARIABLE
ใน .xinitrc เพิ่ม
export GTK_IM_MODULE=uim-anthy
export XMODIFIERS="@im=uim-anthy"
uim-xim &
exec gnome-session
ใน .bashrc เพิ่ม
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
FreeBSD: Install และ upgrade อย่างง่ายๆ ด้วย package
วิธีที่รวดเร็วกว่านั้นคือการใช้ portupgrade และ portinstall แทน
- Install package ใหม่
- $ portinstall -nPPvr
- Upgrade package ที่มีอยู่แล้ว
- $ portupgrade -nPPvr
- ก่อนลง ด้วย package ควรดูก่อนว่า โปรแกรมที่เราจะลงนั้นมี option อะไรให้เลือกหรือเปล่า โดย
แต่ถ้าไม่จำเป็นก็ลงเป็น package ไปจะง่ายกว่า
- การลง package ที่เป็น localization เช่นของ japanese ports อย่าลืม ja- นำหน้าด้วย เช่นจะลง uimของ japanese ports ก็ต้อง portupgrade -nPPvr ja-uim ถ้าใช้ uim เปล่าๆ จะหาไม่เจอ
วันอาทิตย์, สิงหาคม 07, 2548
Fonts Thai ทำอย่างไรให้ไม่อุบาทว์ ใน X11 FreeBSD 5.3
เลยเอาใหม่วะ ลองดู เคยทำได้นี่หว่า
ผลลัพธ์ ออกมา โอเคเว๊ย ไม่เลว
สรุปวิธีการดังนี้
1. ก๊อปปี้ TrueType ฟอนต์ จาก Windows มา ที่ /usr/X11R6/lib/X11/fonts/WindowsFonts
*หมายเหตุ ลองดูพวก user/group และก็ permission ให้ดีๆ ด้วยว่ามันโอมั้ย! จะให้ดี
ควร run คำสั่งด้วย root จะไม่มีปัญหา
2. cd เข้าไปที่ WindowsFonts สร้างไฟล์ scalable fonts "fonts.scale" ใช้คำสั่ง
# ttmkfdir -o fonts.scale
3. สร้างไฟล์ "encoding.dir" และ "fonts.dir" ใช้คำสั่ง
# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
4. เพิ่ม FontPath ลงไป ใน /usr/X11R6/lib/X11/xorg.conf
FontPath "/usr/X11R6/lib/X11/fonts/WindowsFonts"
5. ดูให้แน่ๆว่าตรง Module มี Load "freetype" โหลดอยู่อ๊ะป่าว?
6. startx เท่านี้ก็เรียบร้อย ได้ font สวยงาม มาใช้ แล้ว
วันพุธ, สิงหาคม 03, 2548
Line Tracer Car H8 JAIST team
- เพิ่ม sensor เป็น 2 จุุด.
- Decompose and rewrite MAIN_TASK to multi tasks.
- Use interrupt if possible.
- เขียน blog และอัพรูปขึ้นมาเก็บไว้เตือนค.จำ
วันจันทร์, สิงหาคม 01, 2548
วันนี้เกิดไอเดีย กระจายเสียงแบบ wireless IEEE 802.11a/b/g
อืม ลง iTunes ที่เครื่อง Fujitsu ไว้ แต่มันก็เคลื่อนย้ายลำบาก เลยคิดว่า
น่าจะมี อะไรที่ทำให้มันไปออกลำโพงได้เป็น wireless นะ
ค้นดูที่ apple's site อ่าว มันก็มีผลิตภัณฑ์ คือ AirPort Express เป็น
อย่างที่เราต้องการเดี๊ยะเลยนี่หว่า ราคา ประมาณ 14,000 เยน
อืม ไว้ wireless station ที่ใช้เจ๊งเมื่อไหร่จะเปลี่ยนเป็นอันนี้ละกันนะ
แต่จริงๆก็อยากได้ ถ้าไอ่ T-Engine ที่ตั้งทิ้งไว้อยู่นั่น เอามาพัฒนา
เป็น AirTunes ได้ก็เยี่ยมเลยเพราะมันมี PC-Card slot เสียบ wireless
card ของ Buffalo ได้พอดี แล้วมันก็เหมือนจะมี mp3 decoder เป็น
hardware อยู่ด้วย adapter แปลง หัวเสียบ jack ก็ซื้อมาแล้ว
มีเวลาเมื่อไหร่จะลองทำดู
วันศุกร์, กรกฎาคม 29, 2548
FireFox Extensions ที่น่าสนใจ
- Mouse Gestures
- Tab Mix ถ้าเป็น Mac OS X ก็ให้ใช้ Tab Mix Plus
- FlashGot
- Down Them All
สลับปุ่ม Ctrl กับ Caps Lock
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
Config TeXlipse
ถ้าไม่คิดเรื่องภาษาญี่ปุ่น
options และค่าต่างๆ ที่ต้องตั้งเวลาลง TeXlipse
- Builder Settings: หากเราเซต PATH environment variable ของ user ให้มี TeX/bin และ อื่นๆซึ่งหาดูได้จาก อ้างอิง แล้วล่ะก็ TeXlipse จะหาค่าต่างๆ ได้เอง ยกเว้น ps2pdf ซึ่งเป็นของ Ghostscript
- Ps2pdf program () ให้ใส่ค่า $GHOSTSCRIPT_PATH\lib\ps2pdf.bat
- Arguments ใส่ค่า -dPDFsettings=/prepress %input
- Viewer Settings: ต้องตั้งค่าบางอย่างสำหรับพวก viewer ตามนี้
- acroread (C:\Program Files\...\AcroRd32.exe) ตั้ง path ของ Acrobat Reader
- gv (C:\Program Files\Ghostgum\gsview\gsview32.exe) ตั้ง path ของ Ghostview
- dviout (D:\bin\dviout\dviout.exe) แล้วเลือก file type เป็น dvi [อันนี้ต้องเพิ่มเอาเอง เพราะมันไม่ได้มีอยู่ใน default list]
- เกี่ยวกับ Ghostscript
- เกี่ยวกับ TeX
วันพฤหัสบดี, กรกฎาคม 28, 2548
XP Home to XP Pro
There is one big drawback, though. Users won't be able to install Service Pack 2, unless they integrate SP2 in the installation CD. And that's probably too much trouble for most users, who of course are better off buying a legal version anyway. It is expected that Microsoft will change the setup files soon to prevent this hack. "
วันอังคาร, กรกฎาคม 26, 2548
Mac OS X Login Hook and Logout Hook
MacOS X มี ระบบซึ่งเรียกว่า Login Hook และ Logout Hook
อ้างอิงจากอันนี้ดีที่สุด หน้านี้ และ หน้านี้
วิธีใหม่
sudo defaults write com.apple.loginwindow LoginHook /path/to/script
(where /path/to/script is the full path to the script that you want to execute when a user logs in—it doesn't have to be in the user's Home directory).
This modifies the /var/root/Library/Preferences/com.apple.loginwindow file.
วิธีเก่า
หลักๆแล้วก็คือ แก้ /private/etc/ttys โดยเพิ่ม
-LoginHook /private/mydir/myLoginHookScript -LogoutHook /private/mydir/myLogoutHookScript
เพิ่มระหว่าง console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow
-LoginHook /private/mydir/myLoginHookScript -LogoutHook /private/mydir/myLogoutHookScript vt100 on secure windows=...
วันจันทร์, กรกฎาคม 25, 2548
LaTeX กับ Mac OS X
วันเสาร์, กรกฎาคม 16, 2548
แสดงภาษาไทยและญี่ปุ่นใน xterm ของ Mac OS X แบบ そのまま
เวลาเรียก ให้เรียก uxterm แทน มันเป็น wrapper เอาไว้ห่อ xterm -u8 ซึ่งสำหรับ
รองรับ UTF-8.
เวลา ls ให้ใช้ ls -v แทน หรือจะทำเป็น alias ไว้ก็จะดี จะสามารถแสดงภาษาไทยและ
ญี่ปุ่นได้เลย ไม่ต้องยุ่งยาก. ส่วนการ input ที่ terminal นั้นก็สามารถ input ภาษาไทย
ได้เลย เนื่องจากว่า input method สำหรับภาษาไทยของ Mac นั้นเป็น Unicode อยู่แล้ว
แต่สำหรับภาษาญี่ปุ่นนั้นมันเป็น IM เฉพาะของมัน และ(คาดว่า) ไม่เป็น Unicode เพราะ
เวลาใส่อินพุตภาษาญี่ปุ่น ลงไปแล้วมันเป็นขยะไป
คาดว่าวิธีแก้สำหรับภาษาญี่ปุ่นนันน่าจะเป็นการใช้ input method สำหรับ unix เช่น kanna2
หรือว่า anthy เป็นต้น. ขี้เกียจลอง
วันศุกร์, กรกฎาคม 15, 2548
iTerm กับ terminal ที่เป็น Unicode
เหตุที่ทำให้กลับมาใช้อีกครั้งก็เพราะ 7-zip ฉบับ Mac OS X มันออกมาเฉพาะ
command-line version เท่านั้น ก็เลยต้องใช้กับ Terminal แต่ทีเด็ดของเจ้า
7-zip เนี่ยมันอยู่ตรงที่มัน fully support unicode filename ก็เลยทำให้เราสามารถ
บีบอัดทั้งไฟล์ทั้งโฟลเดอร์ที่ตั้งชื่อเป็นภาษาไทย (ซึ่งส่วนมากก็คือไอ่เพลงที่อยู่ใน
auditorium ของเรานั่นเอง) และภาษาญี่ปุ่นได้
โอ้ัโฮ ไอ่เราอยากได้มาันานแล้วไอ่โปรแกรมอย่างงี้
มีเรื่องปวดหัวหลายๆ ทีแล้ว ไอ่เรื่องชื่อไฟล์แบบ อินเตอร์แนชั่นแนล เนี่ย
เข้าพ้อยท์สำคัญเลยดีกว่า ที่มันแสดงชื่อไฟล์ภาษาไทยและญี่ปุ่นไม่ได้เวลาสั่ง ls เนี่ย
เพราะเราไม่ได้ set environment variable ที่สำคัญไปตัวหนึ่งซึ่งก็คือเจ้า LANG
$ export LANG=en_US.UTF-8 ปุ๊บก็จะแสดงได้ทันที
วันอาทิตย์, กรกฎาคม 10, 2548
ลง มีเดียวิกิ บนเครื่อง bossanova Mac OS X G5 dual เรียบร้อยแล้ว
แต่คงต้องอ่านรายละเอียดเกี่ยวกับวิธีการเขียนอีกสักหน่อย
น่าสนใจๆ
วันศุกร์, กรกฎาคม 08, 2548
ลองลง Skippy แล้วมันไม่เวิร์ค
ได้เหมือน Expose (tm) ของ Mac OS X
วันอังคาร, มิถุนายน 28, 2548
耳のことなんだけど。。。
- 耳を澄(す)ます:何かを聞こうと思って注意してじっと聞く。
- 耳につく:聞こえた音が気になって、耳から離れないような感じになる。
- 耳が遠い:聞く力が弱っていて、よく聞こえない。
- 耳を傾(かたむ)ける:何かを聞こうと思って、他人の話などを真剣に聴く。
- 例)先生のアドバイスに耳を傾けた。
...やか、「やか」が付くことば。
このblogに記述するように。
- 賑(にぎ)やか:これはもちろん最初日本語習った頃に知った言葉だ。
- 健(すこ)やか:
- 密(ひそ)やか:
- 穏(おだ)やか:
- 細(ささ)やか:tiny,small,modest
- 爽(さわ)やか:fresh,refreshing
- 豊(ゆた)やか:豊かなさま、ゆったりしたさま。
- 緩(ゆる)やか:緩いさま。ゆとりのあるさま。動きなどがゆっくりしているさま。
- 鮮(あざ)やか:ものの色彩・形などがはっきりしていて、目立つさま。
วันจันทร์, มิถุนายน 27, 2548
Mac OS X remote desktop จาก Windows XP
วันเสาร์, มิถุนายน 25, 2548
พ้อยโตะของเจซีบีเอาไปทำอะไร?
ดูแล้วของที่มันให้แลกก็ไม่ค่อยน่าสนใจเท่าไหร่. เอาพ้อยที่มีไปแลกของที่มันกำหนดไว้
นี่ก็เหมือนกับถูกบังคับยังไงไม่รู้. ไม่แลกชัวร์ๆ สู้เปลี่ยนพ้อยเป็นอย่างอื่นแล้วเอาไปใช้
เป็นส่วนลดซื้อของที่เราอยากได้ยังจะดีกว่าอีก.
ที่น่าสนใจและคุ้มๆหน่อยก็น่าจะเป็นแลกเป็นพ้อยของ "บิ๊กคาเมร่า" หรือไม่ก็ "ระคุเต็ง"
ของบิ๊กนี่มีแต้มเหลืออยู่พันกว่าๆ แลกมารวมกันน่าจะได้ซัก สี่พัน อืม ไม่เลวๆ.
แต่ของที่อยากได้ตอนนี้ที่บิ๊กคาเมร่าไม่มี คงต้องแลกเป็นของระคุเต็งแทน
อืม รวมกับพ้อยที่ได้รับมาจากอนาก็เป็นสี่พันเหมือนกัน ไม่เลวๆ ซื้อกระเป๋าใบนั้นที่อยากได้
ลงตัวคัมเปกิ
* แต่ถ้าเป็นของทสุมิโตะโมะ แลกเป็นไมล์ของอนาจะคุ้มกว่ามันแลกได้ 10 ไมล์ ต่อพอยท์
ได้เยอะกว่าพวกของระคุเต็งหรือบิ๊กสองเท่า
วันพฤหัสบดี, มิถุนายน 23, 2548
ค้นหา ebook ในกูเกิ้น
If you don't know what are the google advanced operators, visit this page:
------------------
Querys to insert in the search box of google:
Query:
+("index of") +("/ebooks"|"/book") +(chm|pdf|zip|rar) +apache
Finding particular eBooks:
Query:
allinurl: +(rar|chm|zip|pdf|tgz) TheTitle
Query:
"Book" ext:chm chm
Query:
"OReilly" ext:chm chm
Query:
"ebook" inurl:ftp intext:chm
Query:
index of /pub/* intext:chm
Query:
?intitle:index.of? ebook (or ebooks, try with different words like mp3, etc...)
Query:
inurl:OReilly filetype:chm (or pdf or html or zip or rar, etc...)
Now, this are just examples, read the google tutorials and try to build your own querys and share them here, please.
http://www.trap17.com/index.php/how-to-fin...-com_t9057.html
วันพุธ, มิถุนายน 22, 2548
วันศุกร์, มิถุนายน 17, 2548
สิ่งที่จะทำต่อไปสำหรับโปรแกรม Inventorer
แล้วก็จัดการเกี่ยวกับการ check isbn ก่อน add และแจ้งเตือน เมื่อมีการ add ซ้ำ
จะได้ดูได้จากไฟล์จริงว่าไฟล์เก่าหรือใหม่มีเนื้อหาที่เหมาะสมกับการเก็บไว้ใน
ไลบรารี่มากกว่ากัน (และ จัดการเกี่ยวกับ Interface ให้สวยงามขึ้น)
วันพฤหัสบดี, มิถุนายน 16, 2548
Eclipse LaTex Plugins
เจอ TeXlipse ค่อนข้างใหม่ แต่สมบูรณ์ คิดว่าน่าใช้ดี แต่ ดูจาก activity ใน sourceforge แล้วยังต่ำอยู่ อาจจะเป็นเพราะว่ายังใหม่ก็ได้ พึ่งลงทะเบียนกับทาง sourceforge เมื่อเดือนมีนาคมที่ผ่านมา
*DocJar เป็น plugin อีกตัวที่น่าใช้ (เอาไว้ใช้หา open source Java jar file ที่มีอยู่ในเนต)
วันพฤหัสบดี, มิถุนายน 09, 2548
บทวิเคราะห์ การทำงานของ Amazon Web Service หรือ ECS (e-commerce service)
ทำเอาไม่ได้หลับได้นอนมาหลายวัน เล่นก้ับ SOAP แบบ schemas 3
แล้วมันไม่เวิร์ค(ใช้ tools ของ sun มา gen พวก stub classes) ต้องใช้
schemas2.
หลังจากดิ้นรนจนทำให้ไม่ได้หลับได้นอนไปกับการเรียนรู้ไอ่บัด SOAP ก็ระลึกได้ว่า
เฮ้ย! REST แม่งน่าจะเวิร์คกว่าว่ะ (คิดเรื่อง flexibility portability) เพราะมันเรียกผ่าน
เว็บแล้วก็ http ไม่ได้อาศัยพวก RPC จึงน่าจะโปร่งใส ปลอดภัย จากเรื่องความแตกต่าง
ทางสถาปัตยกรรมของระบบ.
วันนี้ก็เลยหันกลับมาหา REST เริ่มต้นด้วยการผ่าตัดโปรแกรมตัวอย่างที่หาโหลดได้จาก
เว็บของ Amazon. ไม่พูดพล่ามทำเพลงแล้ว เริ่มเลย
1. เซต layout
getContentPane().setLayout( new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
2. สร้าง tabbed pane แล้วก็ add
JTabbedPane tabbedPane = new JTabbedPane();
getContentPane().add(tabbedPane);
3. สร้าง container ใหม่ เพื่อบรรจุลงใน tab ของ REST แล้วก็ add
this.xmlPane = new Container();
this.xmlPane.setLayout(new BoxLayout(this.xmlPane, BoxLayout.Y_AXIS));
tabbedPane.addTab("REST", null, this.xmlPane, "Send XML Requests");
วันพุธ, มิถุนายน 08, 2548
Tweak Windows XP สำหรับเครื่องที่มี RAM เหลือกินเหลือใช้
Disable Paging Executive:
XP pages data from RAM memory to the hard drive. We can stop this happening and keep more data in RAM, resulting in better performance. Users with a large amount of RAM (256MB+) should use this setting. The setting we change to disable the ’Paging Executive’, is DisablePagingExecutive. Changing the value of this key from 0 to 1 will de-activate memory paging.
Changing the value of the key LargeSystemCache from 0 to 1 will tell XP to allocate all but 4MB of system memory to the file system cache, allowing the XP Kernel to run in memory. The 4MB of memory left is used for disk caching, if more is needed, XP allocates more. Generally, this tweak improves performance by a fair bit but can, in some intensive applications, degrade performance. As with the previous tweak, you should have at least 256MB of RAM before attempting to enable LargeSystemCache. Input/Output Performance:
This improves performance of large file transfers. If this entry does not appear in the registry, you will have to create a REG_DWORD value called IoPageLockLimit. The data for this value is in number of bytes, and defaults to Zero which equates to 512KB on machines that have the value. Most people using this tweak have found maximum performance in the 8 to 16 megabyte range, so you will have to play around with the value to find the best performance. The value is measured in bytes, so if you want, 12MB allocated, it’s 12 * 1024 * 1024, or 12582912. As with all these memory tweaks, you should only use this if you have 256MB or more of RAM.
วันพุธ, มิถุนายน 01, 2548
Transform DOM XML document ไปเป็น file ด้วย
javax.xml.transform.sax
javax.xml.transform.stream
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
TransformerFactory xformFactory
= TransformerFactory.newInstance();
Transformer idTransform = xformFactory.newTransformer();
Source input = new DOMSource(doc);
Result output = new StreamResult(System.out);
idTransform.transform(input, output);
Java : ใช้ static block ในการ initialize ค่าเริ่มต้นให้กับตัวแปลที่เป็น static
แต่กรณีของคลาสที่มีความเป็น static สูง ต้องใช้ static block ในการ
initialize แทน เนื่องจากว่า Constructor อาจจะยังไม่เคยถูกเรียกเลยแต่ก็ดันไป
เรียกใช้ static method ของคลาสที่มีความเป็น static สูงนั้นแล้ว.
static {
initialize something here;
}
วันจันทร์, พฤษภาคม 30, 2548
ใช้อันไหนดี ArrayList, LinkedList หรือ Vector
หากต้องการ Synchronized List ก็ให้ใช้ Vector.
รายละเอียดเพิ่มเติม ที่ Performance of Java Collections that implements the List - Interface
วันอาทิตย์, พฤษภาคม 29, 2548
เกี่ยวกับJava : การประกาศ Class และ สมาชิกของ Class
Class Declaration Elements Element Function public(Optional) Class is publicly accessible.
ส่วนขยาย publicบอกว่าคลาสนี้สามารถเรียกใช้ได้จาก
คลาสอื่นๆ อย่างสาธารณะ (ต่างแพคเกจก็เรียกใช้ได้). ถ้าไม่ประกาศpublicคลาสนี้ จะสามารถเรียกใช้ได ้จากคลาสอื่นในแพรเกจเดียวกันเท่านั้น.
ดูเพิ่มเติมที่ Creating and Using Packages![]()
abstract(Optional) Class cannot be instantiated
ส่วนขยายabstractบอกว่าคลาสนี้ไม่สามารถนำไปสร้าง instance ได้. เพราะมันเป็นคลาสนามธรรม.
ดูเพิ่มเติมที่ Writing Abstract Classes and Methodsfinal(Optional) Class cannot be subclassed
สำหรับเหตุผลว่าทำไมถึงอยากให้มี final class ดูเพิ่มเติมที่
Writing Final Classes and Methodsclass NameOfClassชื่อคลาส extends Super(Optional) Superclass of the class
ส่วนขยายextendsระบุ superclass ของ class ที่ประกาศ.
คลาสที่ประกาศก็จะถูกบรรจุอยู่ในลำดับชั้นของการสืบทอดคลาส.
ดูเพิ่มเติมที่ Managing Inheritanceimplements Interfaces(Optional) Interfaces implemented by the class
ใช้คีย์เวิร์ดimplementsตามด้วยรายการชื่ของ interface ที่จะอิมพลีเมนต์ (ขั้นแต่ละชื่อด้วยคอมม่า). หลักการสร้างและการใช้ interface ดูเพิ่มเติมที่ Creating and Using Interfaces.
{
ClassBody
}Provides the class's functionality การควบคุมการแอคเซส สมาชิกของคลาส
ในทำนองเดียวกับเรื่องการประกาศคลาสข้างบน การประกาศสมาชิกของคลาส กำหนดการเข้าใช้สมาชิกของคลาสนั้น จากข้างนอก สรุปเป็นตารางสั้นๆ ดังนี้:
ข้อควรระวัง access level เป็นตัวกำหนดว่า คลาสไหน สามารถแอคเซสสมาชิกที่ ถูกโมดิฟาย นั้นได้. มิใช่ว่า อินสแตนซ์ไหน สามารถแอคเซสได้.
Access Levels Specifier Class Package Subclass World privateY N N N no specifier Y Y N N protectedY Y Y N publicY Y Y Y
ตัวอย่าง
package One;คลาส Alpha ข้างบนนั้น สามารถ อ้างถึง private member ของอินสแตนซ์ อื่นได้ เพราะมันเป็นอินสแตนซ์ของคลาสเดียวกัน. คราวนี้พิจารณาคลาส DeltaAlpha
public class Alpha {
private int iamprivate = 1;
private void privateMethod() {
System.out.println("iamprivate Method");
}
...
public boolean isEqualTo(Alpha anotherAlpha) {
if (this.iamprivate == anotherAlpha.iamprivate) {
//legal
return true;
} else {
return false;
}
}
}
package One;จะเห็นได้ว่า private member และ private method นั้น เราไม่สามารถแอคเซสได้ จากคลาสอื่นที่ไม่ใช่คลาส Alpha แต่เราสามารถแอคเซส protected member และ protected method ได้จาก DeltaAlpha เพราะว่ามันอยู่ในแพคเกจเดียวกัน
public class DeltaOne {
public static void main(String[] args) }
Alpha a = new Alpha();
//a.privateMethod(); //illegal
a.packageMethod(); //legal
a.protectedMethod(); //legal
a.publicMethod(); //legal
//System.out.println("iamprivate: "
// + a.iamprivate); //illegal
System.out.println("iampackage: "
+ a.iampackage); //legal
System.out.println("iamprotected: "
+ a.iamprotected); //legal
System.out.println("iampublic: "
+ a.iampublic); //legal
}
}
รายละเอียดเพิ่มเติมดูจาก การควบคุมการแอคเซสสมาชิกของคลาส สำหรับการใช้และสร้างแพคเกจ --> Creating and Using Packages.
วันจันทร์, พฤษภาคม 23, 2548
ปัญหา Mac OS X แชร์ไฟล์กับ Windows2000 Server และ TLS/SSL ftp
พึ่งมาเจอว่าที่ Server มันไม่ได้ enable NETBIOS over TCP/IP ไว้
เลย enable อันที่เป็น interface ที่ 2 แล้วก็แอคเซสได้ด้วย mount_smbfs
------------
หาซอฟต์แวร์ที่ทำ ftp แบบรองรับ TLS/SSL ได้. หาอยู่ตั้งนานเออ...
ส่วนมากมีแต่แชร์แวร์ ขัดกับอุดมการณ์ ก็เลย เอาวะ ลง fink ซะเลย
พอดีมันมี ftp-tls เป็น patch ของ ftp ของ OpenBSD ซึ่งทำให้รองรับ
ก็เลยลองเล่นดู. command-line เนี่ยแหละเก๋า.
แต่เวลาจะเรียกใช้กับโฮสภาคต้องให้มันใช้ TLS กับ data channel ด้วย
ต้องเรียกด้วย $ ftp -z private
วันพฤหัสบดี, พฤษภาคม 19, 2548
Eject CD tray in Mac OS X by F12 key.
เวลาจะเอา ซีดี ออกทีก็ต้องถ่อเปิด iTunes ขึ้นมาแล้วกด Winkey + E เอา.
โง่อยู่นาน... วันนี้ลอง google หาดูเออ กด F12 ก็ได้เหมือนกันนี่หว่า
แต่ว่าต้องกดค้างสัก 2 วินาทีนะ ไม่งั้นไม่เวิร์ค. โอ้ เยี่ยม จดไว้กันลืม.
วันจันทร์, พฤษภาคม 09, 2548
็็H8 interrupt ทำอย่างไร?
ก็ไปเจอ เมล์ลิ่งลิสต์ นี้เข้า
คิดว่าน่าจะใช้ได้ทีเดียว
http://www.toppers.jp/TOPPERS-USERS/200501/msg00019.html
แ่ต่มันค่อนข้างยุ่่งยาก เอาวะ ไว้วันหลัง
อันนี้ก็เป็นอีก ไซต์นึงที่เขียนเกี่ยวกับ interrupt ไว้นิดหน่อย
http://robotics.toyama-nct.ac.jp/H8/toppers/
วันนี้เหนื่อยแล้ว พอแค่นี้ก่อนเว๊ย
วันพุธ, เมษายน 20, 2548
Today's Vocab.
adj. drows·i·er, drows·i·est
1. Dull with sleepiness; sluggish.
2. Produced or characterized by sleepiness.
3. Inducing sleepiness; soporific.
----------
prose Pronunciation Key (prz) บทความ,ประโยค(การเขียนอย่างไม่ค่อยเป็นทางการ)
n.
1. Ordinary speech or writing, without metrical structure.
2. Commonplace expression or quality.
3. Roman Catholic Church. A hymn of irregular meter sung before the Gospel.
intr.v. prosed, pros·ing, pros·es
1. To write prose.
2. To speak or write in a dull, tiresome style.
----------
pro·cras·ti·nate (pr-krst-nt, pr-)
v. pro·cras·ti·nat·ed, pro·cras·ti·nat·ing, pro·cras·ti·nates
v. intr.
To put off doing something, especially out of habitual carelessness or laziness.
v. tr.
To postpone or delay needlessly.
วันศุกร์, เมษายน 15, 2548
const Pointer
const char *thing_ptr = "Seven";
THEN
thing_ptr = "Forty" /* Legal */
*thing_ptr = 'X' /* Illegal */
BECAUSE
What's thing_ptr? A pointer.
Can it be changed? Of course, it's just a pointer.
What does it point to? A const char array.
Can the data pointed to by thing_ptr be changed? No, it's a constant.
-CONSTANT POINTER-
char *const name_ptr = "Test"
name_ptr = "New"; /* Illegal */
*name_ptr = 'Q'; /* Legal */
What's name_ptr? It's a constant pointer.
Can it be changed? No, it's a constant.
What does it point to? A char.
Can the data being pointed by name_ptr be changed? Yes.
Finally, we can put const in both places.
const char *const title_ptr = "Title".
is a pointer that can't be changed and it points to a data item that can't be changed also.
Applying a command through all files in a directory recursively.
% find ./html/ | grep "\.html" | awk '{print "nkf -j -E "$1" > "$1""}' | sh
* An equivalent result can be achieved by using xargs. man xargs for more detail.
วันอังคาร, เมษายน 12, 2548
Creating Developing Environment for H8
* binutils-2.11.2
* gcc-2.95.3
* newlib-1.9.0
* gdb-5.2.1
* make
* perl
$ mkdir ~/toppers_env && cd toppers_env
$ mkdir ~/build && cd build
2. Compile and Install binutil
$ tar zxvf binutils-2.11.2.tar.gz && binutils-2.11.2
$ mkdir work && cd work
$ ../configure --target=h8300-hms --disable-nls --prefix=/opt/toppers_jsp
$ make
$ make install
$ ~/toppers_env/bin/h3800-hms-as -v
3. Compile and Install gcc
$ tar zxvf GCC.tar.gz && cd GCC
$ patch -p1 < ../gcc-2.95.3_01.patch
$ mkdir work && cd work
$ ../configure --target=h8300-hms --disable-nls --prefix=/opt/toppers_jsp \ --with-gnu-as --with-gnu-ld --with-newlib --enable-languages=c,c++ \ --with-headers=../../newlib-1.9.0/newlib/libc/include
$ make
$ make install
วันศุกร์, เมษายน 08, 2548
Input ภาษาญี่ปุ่น โดย Anthy & UIM
http://www.engr.colostate.edu/~reinholz/freebsd/japanese.htm
วันพฤหัสบดี, เมษายน 07, 2548
Mac OS X แชร์ไฟล์กับ Windows โดย SMB
smbclient //150.65.???.???/sharename -W domainname -U username
Fonts Thai ทำอย่างไรให้ไม่อุบาทว์ ใน X11 FreeBSD 5.3
เลยเอาใหม่วะ ลองดู เคยทำได้นี่หว่า
ผลลัพธ์ ออกมา โอเคเว๊ย ไม่เลว
สรุปวิธีการดังนี้
1. ก๊อปปี้ TrueType ฟอนต์ จาก Windows มา ที่ /usr/X11R6/lib/X11/fonts/jojoTrueType
*หมายเหตุ ลองดูพวก user/group และก็ permission ให้ดีๆ ด้วยว่ามันโอมั้ย!
2. สร้างไฟล์ scalable fonts "fonts.scale" ใช้คำสั่ง
# ttmkfdir > fonts.scale
3. สร้างไฟล์ encoding.dir และ fonts.dir ใช้คำสั่ง
# mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
4. เพิ่ม FontPath ลงไป ใน /etc/X11/xorg.conf
FontPath "/usr/share/fonts/TIS-620/TrueType"
5. ดูให้แน่ๆว่าตรง Module มี Load "freetype" โหลดอยู่อ๊ะป่าว?
6. startx จบ
VMware 4.5.2 กับ FreeBSD 5.3
Physical แล้วมันไม่เวิร์ค วันนี้ลองลงแบบ Virtual ว่าเป็นไง
>>> ผล ก็โอเลยทีเดียว
แต่ที่ติดปัญหานิดหน่อยคือตอนลง VMware Tools แล้ว Vmware Tools มันอนุมาน
เอาว่าเราใช้ XFree86 ซึ่งจริงๆ แล้วใน FreeBSD 5.3 มันเป็น X.org ไปแล้ว.
ดังนั้นจึงต้องมีการแก้ สคริปต์ของ VMware Tools สักเล็กน้อย
ขั้นตอนการแก้ไข
1. ถ้าลง VMware Tools ไปก่อนแล้วก็ต้อง uninstall กันก่อน
# /usr/local/bin/vmware-uninstall-tools.pl
2. เข้าไปแก้สคริปต์ของ VMware Tools ที่เราแตกไว้แล้ว สมมติว่าอยู่ที่ /tmp
# cd /tmp/vmware-tools-distrib
ณ บรรทัดที่ 2852
แก้จาก return xserver_bin (). ' /XFree86'
เป็น return xserver_bin (). ' /Xorg'
ณบรรทัดที่ 3055
แก้จาก /X.org Foundation/? ' 4.4.0' ' 0.0.0'
ไปเป็น /Release 6.7/? ' 4.3.0' ' 0.0.0'
แล้วก็เพิ่มบรรทัดสองบรรทัดข้างล้างนี้ ลงไปหลังจากบรรทัดที่ 3065
} elsif (file_name_exist ($xconfig_path. ' /xorg.conf')) {
$xconfig_file_name = ' xorg.conf' ;
3. ลง VMware Tools ด้วย สคริปต์ใหม่ที่ผ่านการแก้ไขเรียบร้อยแล้ว
4. แก้ /etc/X11/xorg.conf เป็นดังนี้
วันพุธ, มีนาคม 30, 2548
X ไม่มีปัญหา(ไม่ต้อง recompile kernel เอา agp ออกเหมือนที่ทำบนเครื่อง CF-Y2) โชคดีไป.
ลงจาก Installation CD เรียบร้อยก็ config X นิดหน่อยตาม Handbook ที่อยู่บนเว็บ
แล้วก็ Install URW ฟอนต์ กับ
TrueType ฟอนต์ (ก๊อปมาจาก C:\WINDOWS\Fonts)
แล้วก็รันคำสั่ง
#ttmkfdir > fonts.dir
วันจันทร์, มีนาคม 28, 2548
บูต FreeBSD ด้วย NTLoader ของ Windows XP
แต่ว่า boot manager มันโดนลบไป
วันนี้เลยลองแก้ให้ Boot Loader ของ Windows XP
เป็นตัวบูตให้กับ FreeBSD ดู
วิธีการก็ ตามนี้