Sunday, November 09, 2008
ว่ากันด้วยปัญหาของการประกันราคาสินค้า
การประกันราคาสินค้าเป็นเรื่องที่ซับซ้อน เพราะถ้าหากเราประกันไว้ที่ประเทศไทยโดยรัฐจ่ายเงินชดเชยให้ ก็อาจจะมีสินค้าจากประเทศเพื่อนบ้านทะลักเข้ามาเพื่อจะขายเอากำไรจากส่วนต่าง สูบเงินจากนโยบายประกันราคาของรัฐบาลไป ดังที่จะเห็นได้จากตัวอย่างการประกันราคาปาล์มข้างล่างนี้
จาก ประชาชาติธุรกิจ วันที่ 10 พฤศจิกายน พ.ศ. 2551 ปีที่ 32 ฉบับที่ 4052
"ไชยา"ทุ่ม3,300ล้านประกันปาล์ม ตลาดปั่นป่วน-รง.ชะลอซื้อขายหวังรอราคาใหม่
วง การปาล์มน้ำมันปั่นป่วน หลัง "ไชยา" ประกาศแทรกแซงตลาดปาล์มน้ำมันด้วยการประกันราคาผลปาล์มสดสูงถึง ก.ก.ละ 3.50 บาท น้ำมันปาล์มดิบที่ ก.ก.ละ 22.50 บาท ส่งผลตลาดหยุดชะงักรอ "ส่วนต่าง" ราคาทำกำไรทันที เพราะเหตุไม่มีการตรวจสต๊อกน้ำมันปาล์ม คาดมีน้ำมันปาล์มล้นเกินอยู่ไม่ต่ำกว่า 300,000 ตัน ซื้อเสร็จแล้วไม่รู้จะระบายไปที่ไหน ขณะที่ราคาน้ำมันปาล์มมาเลเซียตก ก.ก.ละ 16-17 บาท รอการทะลักเข้าประเทศตามแนวชายแดน
(อ่านเพิ่มเติมได้ที่ http://www.matichon.co.th/prachachat/prachachat_detail.php?s_tag=02inv06101151&day=2008-11-10§ionid=0203)
YouTube Downloader and Video Converter
Jua, my roommate, asked me to help download YouTube videos about electronic stability control. I tried two software and the winner is YouTube Downloader
http://youtubedownload.altervista.org/
The tool not only downloads a flash video, but also converts it to various format. You gotta find it useful if you are still looking for a good YouTube downloading program.
Friday, October 31, 2008
How to ask professors to serve on Ph.D. committee
===========================================================
The format is
Hello Dr. [professor to ask],
I am a Ph.D. student working with Dr. [my advisor]. My work focuses on [very compact description of your thesis]. I was going through your research interests and found out about your expertise in [related expertise of professor to ask]. I would very much appreciate if you would agree to serve on my Ph.D. committee and guide me in my research. Would it be possible for you to serve on my PhD committee?
I look forward to your positive response.
Sincerely,
[my name]
===========================================================
Monday, October 27, 2008
Open Error Search Dialog in WinEdt
I closed WinEdt's error dialog at one time and could not find a way to open it again. After spending quite some times, I finally found the way. In WinEdt 5.5, go to Options->Settings. Then, we will see the 'Errors' tab. There are three things we need to check
- C++ style errors
- Extended TeX Messages
- TeX Source Tracking.
Sunday, May 25, 2008
Eclipse CDT + MinGW + FreeGLUT
Eclipse CDT + MinGW + FreeGLUT
(May 24, 2008)
Today, I tried to use Eclipse CDT + MinGW + FreeGLUT to study OpenGL to build my skill for current research and future career development. This note is created to show how I could get everything done and perhaps, it can be useful for other people.
I started with installing MinGW version 3.4.5 on Windows XP service pack 2. During installation, we need to install only g++ to get C/C++ compiler. We should not include the MinGW make tool if we want to make things easier when we work with source base derived from the Unix world. In such a case, we should use MSYS (Minimal SYStem), instead [1]. However, if you want to use Eclipse CDT's make system, you have no need to worry about this. It is interesting to note that MinGW already contains GL header files right from its package. This makes thing very simple for those who want to quickly set things up.
Next, I installed Eclipse CDT. It is worth noting that we can have multiple Eclipse copies in a single machine. We can even have each copy of Eclipse associated with one task (project or solution). If we do not have any specific reason to share this Eclipse CDT copy with other tasks, we can just download a new copy to get only Eclipse CDT. This can reduce complexity and confusion in the tool as well. The figure below shows Eclipse features I used. You can see that it is very lean because it contains only relevant features for C/C++ development.
Now, we are close to the last step: getting FreeGLUT up and running with Eclipse CDT and MinGW. I suggest you obtain a compiled DLL from 'Temp Variable's Blog' [2]. The compiled package also comes with necessary header files, so we don't need to go else where, including the official FreeGLUT web site. If you need to build Free Glut from scratch or need another version, please see the 'update' note at the bottom of this page. Next, we are ready to create an Eclipse project with a very simple OpenGL program. This is just for testing the software configuration. To avoid confusion, I break the process down to steps:
1. Create an Eclipse project with MinGW compiler
Figure 2: When we choose to create a C or C++ project, we need to choose a compiler / toolchain we want to use.
2. Once the project is created, we probably see the default list of included files related to MinGW in the Eclipse project view. Check if its main include folder has GL header files. If not, we probably did something wrong.
Figure 3: Default MinGW include paths, including GL header files
3. We have to place FreeGLUT header files in an appropriate place. We may choose to put them in the GL folder shown above, in an Eclipse project folder, or in a shared folder (so that you can have only one FreeGLUT header copy in your system). If we choose the last choice (I chose this one too), we have to add an include directory containing FreeGLUT header files. To do this, right click on the project item in Eclipse and select Properties. Then, add an include directory as shown in Figure 4.
Figure 4: 'Adding include directories' can be done in C/C++ Build -> Settings -> GCC C++ Compiler -> Directories
By the way, it is interesting to note that, even if we are working on Windows 64-bit version, we still use opengl32, NOT opengl64. This may sound odd, but it makes things easier since programs from a 32-bit world can be run seamlessly on Windows 64-bit version without any recompilation. And for programmers, they don't need to change OpenGL configuration much; Windows will handle it by connecting to an appropriate video driver.
6. Build a project (press Ctrl + B or click the hammer button).
7. Try running your application. You may find that there is nothing happens. Your program just terminated. When you try to debug it, you will see only an error message that "there is an error occurred", but no other clue. This problem arises from a missing DLL. It is important to know that the executable file we get will not try to search for libraries specified in the Eclipse settings. Thus, we need to put the DLL in the executable folder (or in a system one if you prefer). Make sure that you have DLL copies in both Debug and Release folders. Anyway, if you encounter 'silent errors' like this in Eclipse CDT, I recommend you run an executable file from the Windows command prompt; Windows may give you more information than Eclipse CDT.
Note: if you are new to Eclipse CDT, you may wonder how to run a program in a Debug or Release mode as you wish. From the beginning, it will run solely in a Debug mode, even when you set the active configuration to Release. To change the default running mode, you have to do it in the 'Run Dialog'. It can be found from the menu bar on the top of Eclipse as shown in Figure 6. When you go there, you may find two configurations you can choose, but still have no idea which one is Release (I had this problem before). You can differentiate it by its location. From the main tab, you can see a project name and 'C/C++ Application'. The latter will tell you about an application location as shown in Figure 7. Notice the release folder name before an executable file name.
Figure 6: 'Run Dialog' can be accessed from the menu bar. Note: click on the arrow beside the green Run button, not the Run button itself.
References:
1. Eclipse CDT: Before You Begin, http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_before_you_begin.htm2. Temp Variable's Blog: Installing freeglut on Visual Studio 2008, http://tempvariable.blogspot.com/2008/02/installing-freeglut-on-visual-studio.html
3. E. Angel, Interactive Computer Graphics, A Top-Down Approach with OpenGL, Third Edition, Addison-Wesley Longman, 2003. (a portion of source code in the book is obtained from http://www.box.net/shared/u2o7k31ogc)
Pinyo Taeprasartsit
(May 2008, May 2010, Oct 2011)
This document can be viewed at my blog and my Google docs. Questions, comments, and suggestions are welcomed. Please leave a message in my blog if you have any. Thank you.
=======
Update: [May 2010] I now have a few other documents that closely related to this one. They discuss how to compile FreeGlut for both 32 and 64-bit applications and using more recent versions of MinGW, including the 64-bit version. Check them out if you are interested:
- Eclipse CDT with MinGW x64. If you want to use MinGW 64-bit with Eclipse, this is a document for you.
- Build FreeGlut 2.6.0 with MinGW in both 32 and 64 bit. Pre-compiled binary packages are also available. This package is newer than the one discussed in this document and come with both static and dynamic library. Very handy if you need one.
- Eclipse CDT + MinGW + FreeGlut (2). This adds information about 64-bit version of MinGW and FreeGlut. It shows you how to use both static and dynamic library versions of FreeGlut. Also, if you need to easily download MinGW 4.5.0 32-bit without bothering with wget and bash as mentioned in MinGW web site. The package provided in this document will help you with that. This should be helpful until MinGW comes with a more polished installer.
This document can be viewed at my blog and my Google docs. Questions, comments, and suggestions are welcomed. Please leave a message in my blog if you have any. Thank you.
Sunday, May 18, 2008
Enable mouse scrolling in Ubuntu 8.04 on VMWare 6.0.3
Last night, I installed Ubuntu 8.04 on VMWare 6.0.3 and mouse scroll did not work, even after VMWare tools were installed. My friend, P' Moo+, told me to update Ubuntu, install VMWare and do some X config. I am, however, too lazy to revert my VM to previous snapshot, so I searched Internet for a solution.
I found a topic "How To Enable Mouse Wheel Scrolling in Ubuntu 8.04 on VMware" on http://www.windowsvistaplace.com/how-to-enable-mouse-wheel-scrolling-in-ubuntu-804-on-vmware/othersoftware
This solution does help (my host machine is Windows XP, the author's is Mac OS X). In short, I have to replace
Section "InputDevice"
Identifier "Configured Mouse"
Driver "vmmouse"
[.. blah blah blah ..]
EndSection
with
Section "InputDevice"
Identifier "Configured Mouse"
Driver "vmmouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
Many thanks to 'computerboom' (the author of the article I found).
Friday, April 04, 2008
OOXML as an ISO standard. What a joke.
Recently, OOXML was approved as an ISO standard. At first, I thought it's okay, even though it might increase cost for software development to support two standards at the same time. However, once I found this article: http://www.robweir.com/blog/2008/03/disharmony-of-ooxml.html, I think it is really embarrassing to have OOXML as an ISO standard for document. This implies that even Microsoft itself cannot enforce reasonable standards among its own products and it did impose difficulty in software development to itself and the outside world.
I really wonder what the committee was thinking during ballot casting.
Saturday, March 22, 2008
Math Object Wrap Space in OpenOffice.org's Writer
By default, math object wrap space in OO.o's Writer is pretty annoying. If a math object is at the end of a sentence and follows by a foot stop, the foot stop will be put too far from the math object. Earlier, I needed to put it inside the problematic math object. Although the printing output was fine, it changed semantics of the math object.
OO.o, however, has a solution for this. In case we want to change a specific wrap space for a specific math object, we can right click on the math object, go to 'Option', then 'Wrap', and set 'Spacing' to zero as shown in figures below.


In case we want to set zero space as a default setting, we can use 'Styles and Formatting'. Formula setting can be accessed from 'Frame Styles' as shown below.

Reference:
http://documentation.openoffice.org/faqs/formula/016.html
Wednesday, March 19, 2008
Importance of WINVER definition in Visual Studio 2008
Recently, MIPL starts to port stuff to VS 2008. It turns out that code compiled on Vista worked 100% correct only on Vista, but on Windows XP, it showed some glitches.
This is because the default WINVER in VS 2008 is 0x0600 (Vista). Thus, when we build our code, it will perform some Vista specific links, and an executable file may not work correctly on XP.
To solve this problem, just go to StdAfx.h and put the definition of WINVER to XP:
#define WINVER 0x0501
With this definition, built executable files should work on both XP and Vista.
Tuesday, March 18, 2008
เรื่องงงๆ ใน OpenOffice
พยายามใช้ Style and Formatting ใน OpenOffice แล้วปรากฎว่าเวลาเปลี่ยนไสตล์แล้วรูปแบบตัวอักษรมันไม่ได้เปลี่ยนไปด้วยเลย ทั้งที่แต่ก่อนมันก็เปลี่ยนให้เราเอง พยายามยังไงมันก็ยังไม่ยอมเปลี่ยนให้แบบอัตโนมัติเหมือนเคย
แต่ยังไงเราก็พบว่าถ้าเราไฮไลต์มันแล้วคลิกขวา จากนั้นก็เลือก Default formatting มันก็จะจัดรูปแบบให้เราตามที่เรากำหนดไว้ ถ้าไม่อยากใช้เมาส์ จะกด Ctrl+Shft+Space ก็ได้
Alias can be a tricky problem in C++'s STL vector
(Mar 14, 2008)
Alias can be a tricky problem in C++'s STL vector.
Sometimes, I don't want to write an awkward code such as willFail.m_vecProblematic[0] all the time, so I create an alias (prob1 in this example). This alias will work fine until we push or pop elements in a vector to a certain number and the vector is needed to reallocate.
Problematic* prob1 = &( willFail.m_vecProblematic[0] );
prob1->m_vec2.push_back( 55 );
prob1->m_vec1.push_back( 11111 );
// Push an element to a vector may cause a vector to reallocate.
willFail.m_vecProblematic.push_back( Problematic );
// prob1 may not point to a correct storage, but this value assignment
// may not cause a program to crash instantly.
prob1->i = 24;
// prob1 may not point to a correct storage, and such object
// operation usually cause a program to crash
prob1->m_vec2.push_back( 66 );
Note: simple value assignment to an invalid place may not cause a program to crash so easily, but calling a method from an invalid object pointer will cause a program to crash very easily since the method table of an object is already messed up. If we want to find where a program goes wrong, we may try to call a method of a suspecious object pointer.
Tuesday, February 26, 2008
Apache + SSL + SVN
(previous posts:
1. Apache+OpenSSL
2. SVN + Apache
)
From my two previous posts above, I discussed about SVN + Apache and Apache + OpenSSL separately. Now, it's time to put things together.
There are two possibilities for doing this. First, we may allow users to use SVN in both secure and insecure manners. Second, we may force users to only use SVN in a secure manner.
If we want to allow both, we put SVN configuration outside secured virtual host. If we want to enforce secured SVN, just move the SVN configuration inside secured virtual host configuration.
Note: the SVN configuration I mentioned is
<Location /super_angel>
DAV svn
SVNPath E:/svn_repos/super_angel
AuthType Basic
AuthName "Subversion Super-Angel repository"
AuthUserFile c:/etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile c:/etc/svn-acl
</location>
OpenSSL กับ Apache
สำหรับการติดตั้ง Apache 2.0 บน Windows ที่เราต้องการทำ self-signed certificate เราควรจะเริ่มจากการดาวน์โหลดแพคเกจ OpenSSL สำหรับนักพัฒนามาจาก http://www.slproweb.com/products/Win32OpenSSL.html
(ที่ต้องใช้แบบนักพัฒนาก็เพราะว่าเราต้องการที่จะ sign certificate เอง ถ้าดาวน์โหลดแบบ light เราจะ sign ไม่ได้
Note: if we do not use a developer package from http://www.slproweb.com/products/Win32OpenSSL.html, we might encounter a problem when we want to sign a certificate since it will look for a file bss_file.c in ./crypto/bio ... which is not available in a light package.
)
หลังจากนั้นเราก็สร้าง key กับ sign certificate ด้วยตัวเองด้วยคำสั่ง
openssl genrsa -out server.key 1024
openssl req -new -sha1 -x509 -key ca-key.pem -out server.crt -days 365
(เลขที่อยู่ด้านหลังสุดบอกจำนวนวันก่อนที่ certificate จะหมดอายุ)
เมื่อเราคัดลอกไฟล์ server.key กัล server.crt ไปไว้ในที่ๆ เหมาะสมแล้ว ก็ถึงคราวที่เราจะต้องไปแก้ไฟล์ httpd.conf ของ Apache
ขั้นแรกก็ต้อง uncomment บรรทัด LoadModule ssl_module modules/mod_ssl.so
จากนั้นไปที่ด้านท้ายของไฟล์ เราก็จะเห็น
# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
ให้เรา uncomment บรรทัด Include conf/extra/httpd-ssl.conf ออกตามระเบียบ แล้วก็เข้าไปแก้ไฟล์ httpd-ssl.conf ซึ่งจุดสำคัญมีดังนี้
1. บรรทัด SSLMutex ควรแก้จากตำแหน่งไฟล์เป็น default
2. ตำแหน่ง certificate file (ดูบรรทัดที่มี SSLCertificateFile)
3. ตำแหน่ง key file (ดูบรรทัดที่มี SSLCertificateKeyFile)
4. DocumentRoot
5. ServerName
6. ServerAdmin
Tuesday, February 19, 2008
Set SVN server with Apache on Windows
We can download subversion zip package and just expand it some where. Then, copy mod_dav_svn.so to Apache's module directory. To prevent confusion, I copied it to modules/svn directory. Next, add this line to httpd.conf
LoadModule dav_svn_module modules/svn/mod_dav_svn.so
LoadModule authz_svn_module modules/svn/mod_authz_svn.so
Finally, uncomment this line in the config file to allow dav. Note that this line must come before dav_svn_module line
LoadModule dav_module modules/mod_dav.so
But wait, this just makes Apache load itself with SVN capability. We need to config SVN server and create repository too. Also note that we should not assign the document root to the root of repository to avoid name conflicts. If name conflicts occur, we will normally get Error 301.
The best practice of configure SVN server is at http://svn.spears.at/. I claimed it the best practice since it elegantly separate SVN configuration from other of Apache by using an Include command :
Include c:/etc/subversion.conf
In subversion.conf, we may enter some thing like this:
<Location /super_angel>
DAV svn
SVNPath E:/svn_repos/super_angel
AuthType Basic
AuthName "Subversion Super-Angel repository"
AuthUserFile c:/etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile c:/etc/svn-acl
</Location>
This will create a virtual address at localhost:8080/super_angel. This virtual address will be mapped to E:/svn_repos/super_angel, which is an actual repository for a project. Thus, we need to create a repository there using a command:
svnadmin create --fs-type bdb E:/svn_repos/super_angel
Next, we need to create an authentication password file. If the file is to be a brand new one, the command will have a c flag:
htpasswd -cm C:\etc\svn-auth-file john
For additional users, a command will be
htpasswd -m C:\etc\svn-auth-file Jane
Finally, we need to assign usage rights and groups for users in svn-acl file. The content of the file will look like this.
#
# specify groups here
#
[groups]
team1 = moo, pinyotae
#
# team1 group has a read/write access to project1 repository
# all subdirectories
# all others have read access only
#
[super_angel:/]
@team1 = rw
* = r
This will ready our Apache. We just need to restart it and access our repository at the virtual address we specify earlier.
Note: svn-acl is actually flexible. Please refer to http://svn.spears.at/ for more details.
Monday, February 18, 2008
Special Olympics Oath
Wednesday, February 13, 2008
Good and Free Utility Software
(references
Free Commander: http://www.freecommander.com/
FileAnt: http://www.fileant.com/
Capivara: http://capivara.sourceforge.net/
There are some software I expect to use often in the near future. First, I need a better file manager able to view Thai file names. Second, I need a software to synchronize my local folder with an FTP server.
For the file manger, there are two good candidates that catch my attention. The first one is 'FileAnt' and the second is 'Free Commander'. I have used FileAnt for a while and I like it. It has a unique feature--double click to go up one level. In details, if we double click on an empty space of a folder, we will go out of the current folder. This is very handy and make navigation fast. FileAnt, however, cannot view Thai file names.
So, I looked for another candidate and end up with Free Commander (http://www.freecommander.com/). Its user interface looks good and can view Thai file names. It has a shortcut to a favorite folder. If we set up favorite folders, ctrl-shift+1 (or 2, 3, 4, ..) will take us to a favorite folder. In fact, the shortcut can be set to a pair of folders. Namely, if we enter a shortcut, it will change an active panel to a folder and an inactive one to another folder we set. This should be very convenient when we need to transfer files between two specific folders often to back up data, for example.
For file synchronization, I chose Capivara (http://capivara.sourceforge.net/) since it has all features I need. These features are SFTP support and file change detection (the second is a must for file synchronizer). Its user interface is very intuitive too. With Capivara, we can have files at three places: home, office, and central server. We can choose to work at an office and just synchronize to the server when we are done. Then, we can retrieve updated files at home from the server to continue our work and synchronize again when we finish. This scenario will make every thing handy and safe (unless we force overwriting a newer files carelessly).
Monday, February 04, 2008
Tex2Im Tool
Today, Roger's Online Equation (http://rogercortesi.com/eqn/) almost put me in trouble when my friend used it and could not make it work on his equation with norm:
d_{S} = 2d_{D} + \left|\left|\left[\Delta x,\Delta y,\Delta z\right]^{T}\right|\right|
I don't know why it did not work in Roger's Online Equation Server. Perhaps, it does not have some important packages. Thus, I tried using tex2im locally.
I downloaded it from http://www.nought.de/tex2im.html
Since I already had LaTex tool on my Cygwin already, I could just copy tex2im directly to Cygwin's bin directory. Next, create a test.tex file with the equation above. Then, generate the output file with resolution 600 x 600, white text, black background, with transparency, without antialias. The above task can be done with the following command:
tex2im -r "600x600" -t "white" -b "black" -z test.tex
Note if we use the -z option, the anti-alias option will be disabled by default, but if we don't use the -z option, the anti-alias option will be enabled by default.
Saturday, February 02, 2008
AMD Stream Processing
AMD recently announced its first stream processing board. Although it tried to promote and talked only about its flagship, AMD Firestream 9170 with 320 stream cores, from documents related to CAL requirements, we need only ATI Radeon HD2400 or better. This is good, but I'm sure that not many documents are around, and there must be some unseen issues waiting for me if I jump into stream processing stuff.
I think I should wait a year or two so that the platform will be matured.
Reference: http://ati.amd.com/technology/streamcomputing/
VirtaulBox
พอดีผ่านไปเจอ น่าสนใจดีเหมือนกัน น่าจะมาลองใช้ดูในอนาคต คงจะช่วยทำให้เรามี clean system ไว้ทดสอบการติดตั้งโปรแกรมเหมือนกัน วิธีติดตั้งก็ดูได้จากหมอนี่ http://linux.sothorn.org/node/258
พวกระบบแบบนี้น่าสนใจตรงที่ว่า ถ้าหากเรามี clean system มันก็จะทำให้เราช่วยทำ "Core Load" ได้ คือว่าถ้าเก็บ snapshot ของระบบเปล่าๆ พร้อมซอฟต์แวร์ที่จำเป็นสำหรับองค์กรเราแล้ว เราก็เติมซอฟต์แวร์เพิ่ม แล้วทำ snapshot อีก ก็จะได้สามารถขยาย Core system ที่เราคิดจะติดตั้งได้ง่ายๆ
อ่อ Virtual Box อันนี้รันได้ทั้งบน Linux, Windows และ Mac นะครับ เรียกได้เลยว่าครบเครื่อง พอๆ กับ VM Ware สนใจดูได้ที่ http://www.virtualbox.org/
Update (Feb 13, 2008): ไปเจอลิงค์รีวิวเปรียบเทียบโปรแกรม virtualization นี้มาจากเว็บคุณโสธร http://www.techthrob.com/tech/linux_virtualization.php พบว่า VirtualBox ดีจริง ทำงานเร็วปรี๊ดเทียบเท่า VMWare และมีปัญหาไม่มากนักด้วย
Friday, February 01, 2008
Suppressing First-chance Exception in Visual C++ 2005
I encountered a lot first-chance exceptions in my program when I debugged my program in Visual C++ 2005. Exception messages in the output window can be annoying if they cloud other important messages. After searching the Internet for a while, I found a simple solution about this on http://www.helixoft.com/blog/archives/24 . I can tell a window output not to show 'exception messages' by right clicking within the output window and uncheck 'Exeption Messages'.
If you want to know more about first-chance exceptions, follow links in the http://www.helixoft.com/blog/archives/24
Thursday, January 31, 2008
Plotting big and small data in the same graph
Today, I helped Justin to help his friend (Jen Han?) to plot an Excel diagram with big and small data. If we use default settings, small data will just lie on the x-axis. To solve this, we need to add a secondary axis. We can do it as follows.
From a chart with default settings, try selecting a small data series. If we cannot select it, just select any thing in the chart and keep pressing arrow keys up or down to circulate highlight until we reach the small data series. Then, right click and choose 'Format Data Series...'. Next, look for an axis option and plot the small series on a secondary axis.
We will get a result like what I show below

Wednesday, January 30, 2008
We should try to reduce initialization task ourselves
I tried implement an efficient way to build an isotropic image. For a long time, I thought a compiler optimization will handle initialization overhead automatically, but for Visual C++ 2005, it does not.
Consider the following code:
for( int z = 0; z < y =" 0;" x =" 0;"> arVoxels[8];
NVImage_t arValues[8]; // keep H.U. values of relevant voxels
In fact, we can move all declarations outside the most outer loop (z) as follows:
float fX, fY, fZ; // for true position
float fa, fb, fc; // relative voxel distance as in 2.1.
NVVoxel
NVImage_t arValues[8]; // keep H.U. values of relevant voxels
for( int z = 0; z < y =" 0;" x =" 0;" z =" 0;" y =" 0;" x =" 0;"> arVoxels[8];
NVImage_t arValues[8]; // keep H.U. values of relevant voxels
We can see that for each z, there will be two threads. Hence, if we move declarations to the most outer loop, two threads will use the same variable storage, and that is not correct. What we should do is moving these declarations just one step outer as shown below:
#pragma omp parallel
for( int z = 0; z < y =" 0;"> arVoxels[8];
NVImage_t arValues[8]; // keep H.U. values of relevant voxels
for( int x = 0; x < nNewSizeX-2; x++ ) {
From my experiment, this makes things much faster since array initialization is expensive. Note: we can even reduce initialization further if we divide the loop ourselves and create 'multiple sections'. For each section, declare its own variables. I, however, will not do this since the code will be clutter, and we have to know the number of sections before hand, which is normally equal to the number of physical cores in a system. Thus, changing CPU may cause some performance issue. Using OpenMP in this way, nonetheless, is very flexible regarding to system configurations.
Associativity in Modern CPU Cache
Recently, I have used OpenMP to perform multi-processing a lot. However, OpenMP may cause 'false share' often if we are not careful. False share is a situation that two threads write in a different memory locations, but unfortunately, the two memory locations are assigned the same cache slot. If this situation happens, performance will be degraded significantly.
Cache associativity will play an important role on this issue, especially if we have 8 cores or more.
So, let's look at cache associativity for some modern CPUs.
AMD Athlon 64 X2 has 2-way associative L1 cache and 16-way for L2 cache (ref).
AMD Phenom has 2-way associative L1 cache, 16-way for L2 and 32-way for L3 cache s (ref-page 4)
Intel Core 2 E4000 and E6000 series: 8-way associative L1 cache (ref-page 9) and from what I got from CPU-Z, it has 16-way associative L2 cache.
Intel Core 2 E8000 series: 8-way associative L1 cache and 24-way associative L2 cache (from CPU-Z).
So, I think CPUs from both manufactures should do well in scaling, but from what I got from Tom's hardware, Phenom scales very well and better than Core 2 Quad. I, however, cannot confirm this until both platform are more matured and more serious evaluation are available.
Tuesday, January 29, 2008
New line positioning problem in Visual Studio 2005
I encountered a curious problem about new line positioning in Visual Studio 2005, specifically Visual C++, from time to time. The issue is when I press enter to insert a new line. The cursor will not move down to a new line, but stick to the same line.
Today, I noticed that code folding may cause some issue about this. If the last function in a file is folded, this problem may occur.
(see Processor3.cpp)
Friday, January 25, 2008
Display ampersand in MFC controls
I tried to display an ampersand (&) in MFC controls (Visual C++ 2005), specifically tab controls. The problem is a literal "A & B" was displayed "A B" in MFC controls.
To fix this, we have to replace & with &&. Namely, use "A && B", instead of "A & B".
source: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1597754&SiteID=1
Wednesday, January 23, 2008
How to fix "Insufficient system resources to complete the API"
There is a blog complaining about this. It shows some reasons that this issue is a major problem for a laptop. I agree with him, although mine is a desktop.
As of Jan 23, 2008, Microsoft does not have a patch for this issue, but hotfix is available from here
Mysterious MFC Compile Error
I got a mysterious compile error today. It said one of a resource ID, IDD_SUP_VENA_CAVA is not defined / declared in this line:
// Dialog Data
enum { IDD = IDD_SUP_VENA_CAVA };
Dr. Yu suggested me include resource.h. I did and it worked fine, but I really don't understand why I don't need such includes in other places. That's why I think it's mysterious.
Saturday, January 19, 2008
MFC: Practice using tab control
After try using MFC's tab control (CTabCtrl) from http://www.forteach.net/Programming/c/26492.html
and
http://www.ucancode.net/faq/CTabCtrl-VC-SetWindowPos.htm
The first one seems to give more concise and be easier to follow.
There are also some important points I'd like to note:
1. Do not forget to change 'style' of a tab sheet from 'popup' to 'child'. If you do not make such change, the position of a tab sheet may be at the top left corner of the screen.
2. Tab sheet should be set to have no border (Border = none).
3. CTabCtrl must be derived. It seems there is no simpler way for this, although initialization code for our derived class may be very common as used in http://www.forteach.net/Programming/c/26492.html
4. Tab control must have this message map,
ON_NOTIFY_REFLECT(TCN_SELCHANGE, OnSelchange).
Otherwise, changing tab is impossible.
5. As usual before a dialog which has a derived tab control in it can be shown, we need to 'Create' it. Declaration does not mean 'Create' at all.
m_myDialog.Create( IDD_MAIN_DLG );
m_myDialog.ShowWindow( SW_SHOW );
6. Properties for a common tab sheet are shown in the following images:


Private copy: http://docs.google.com/Doc?id=dggq8h5d_38hbbr8bcb
Monday, January 14, 2008
Blood system in the mediastinum
I found an image of major blood vessels in mediastinum. It tells me about the names of blood vessels I want to know, especially, azygos vein, right and left innominate veins.
By the way, I'd like visualization in this page
(http://seram2006.pulso.com/modules.php?name=posters&idcongresssection=&d_op=viewposter&sec=&idpaper=880&part=2&full=&papertype=2&haveportada=1&viewposter=1)
Sunday, January 13, 2008
Folder Listing in Apache
Options FollowSymLinks
We can change it to
Options Indexes FollowSymLinks
And, directory listing will work just fine. Note: 'Deny from all' directive may still prevent us from viewing a page. We can delete or comment out the directive to view contents.
To make folder listing looks better, we should also employ fancy style by uncomment the second following line:
# Fancy directory listings
#Include conf/extra/httpd-autoindex.conf
Please consult http://httpd.apache.org/docs/1.3/mod/core.html#options for details.
Saturday, January 12, 2008
Web folder ของ Thai Club
And of Thai Club, the path is /:/services/www/clubs/wwwroot/up/thai
Tuesday, January 01, 2008
เพลงสู้ต่อไป
(keywords ที่ใช้ค้นแล้วเจอคือ มองไม่เห็นทาง โลกสลัว
แต่ก่อนเราค้นด้วยคำว่า 'แม้จะมองไม่เห็นทาง' และ/หรือ 'โลกสลัวไร้แสงสว่าง' แต่ก็ค้นไม่เจอ
วันปีใหม่นี้ลองค้นอีกทีด้วยตัดคำโน้นคำนี้ออก สุดท้ายก็ค้นเจอ งงเหมือนกันว่ากูเกิลทำดัชนีการค้นหายังไงกันแน่)
ขอคัดลอกเนื้อร้องไว้สักหน่อย กลับไทยไปแล้วคิดว่าจะหามาซื้อเก็บไว้เหมือนกัน นาน ๆ ถึงจะมีเพลงที่เราคิดถึงอยู่บ่อย ๆ
สู้ต่อไป
ร้อง : ชาร์ค (Shark)
เนื้อเร้อง : ชาร์ค
ทำนอง : ชาร์ค & กันต์
โปรดิวเซอร์ : พลรักษ์ โอชกะ
สังกัด : ไนน์ตี้ไนน์ โปรโมชั่น
********************
เดินก้าวไปบนทาง ที่แสนลำบาก
ใจและกายเหนื่อยจน หมดแรงอ่อนล้า
จำต้องทนฝืนทุกข์ตรม ไม่หมดลมหายใจต้องสู้
สู้ต่อไป..สู้ต่อ..ฮ้าฮา
เดินต่อไปเถอะเดิน แม้ไม่เห็นทาง
อะไรกีดขวางบอกใจ ต้องข้ามให้ไหว
แม้อาจล้มลุกคลุกคลาน ไม่ว่านานแสนนานจะสู้
ก็รู้ทั้งรู้ไม่สู้ ไม่เหลืออะไร
แม้จะมองไม่เห็นทาง โลกสลัวไร้แสงสว่าง
ไร้คนช่วยนำทาง..ฮ้าฮา
แต่ใจบอกตัวไม่ต้องกลัว เกิดเป็นคนชีวิตต้องสู้
สู้จนยิบตา ดูให้ดี
จะมองแต่โลกในแง่ดี ชีวิตนี้แสนมีคุณค่า
ที่ผ่านมายิ่งทำให้เรา แกร่งแข็ง
สักวันชะตาต้องหมุนเวียน เปลี่ยนแปรผันทุกข์ตรมคลี่คลาย
และฝันที่เราฝันใฝ่ จะกลายเป็นจริง
Monday, November 26, 2007
Server-Side Include in Apache
I tried using server-side include (SSI) feature in Apache 2.2.6. I followed all steps in its documents. These are:
1. use Options +Include in
2. use AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
within mime_module (just uncomment these two lines in httpd.conf)
3. use an include element, such as
However, it turned out that my stuff did not work. I spent about two hours to figure this out. Finally, I knew that .shtml did not mean a file to be included., but .shtml meant a file that included other files. Namely, I just renamed a 'master' file, menu.html, to menu.shtml, and every thing worked fine.
Moreover, a file to be included can be .html, no need to make it .shtml.
Note: although it is possible that we can allow .html to be a master file in the same way by adding AddOutputFilter INCLUDES .html, I will not do this since 3rd party server may not allow us to do this (I think it might slow down the web server).
Friday, November 23, 2007
หัดใช้ SSE
Today, I tried using vector instructions (SSE2 to be specific) in Visual C++ 2003. There are something worth noting:
1. we might always want to use _mm_malloc( data_size, 16 ) in place of new operator to make sure that our dynamically array will be aligned at 16 bytes (this is a restriction for many operations in SSE2; otherwise we will get memory exception). More details can be found at http://www.x86.org/articles/sse_pt3/simd3.htm and http://www.tacc.utexas.edu/resources/user_guides/intel/c_ug/linux117.htm
Remember that, to free the allocated memory, use _mm_free.
2. For those using Visual C++, they have alternatives when they want to aligned data. For example,
__declspec(align(16)) float m_fArray[ARRAY_SIZE];
andm_fArray = (float*) _aligned_malloc(ARRAY_SIZE * sizeof(float), 16);
Please see more info at http://www.codeproject.com/cpp/sseintro.asp
3. As can be seen from 2, it is desirable to align our floating-point array as well since this will allow us to cast-and-use the floating-point array.
4. There are interesting classes which are suitable for vector instructions: vector3D and 4x4 Matrix. Please see http://www.x86.org/articles/sse_pt3/simd3.htm (near the page bottom).
More may be available at http://www.codeproject.com/useritems/SSE_optimized_2D_vector.asp (see the source code package).
5. Examples in using add, mul, and sqrt via SSE: http://www.codeproject.com/cpp/sseintro.asp
6. memcpy and _mm_loadu_ps will play an important role to increase speed for convolution since SSE needs to align data at 16 bits, but we want to move convolution window little by little (4 bytes). However, if we interleavedly process data, we need to perform memory move / copy only four times. This should be good for performance improvement.
There is a website about fast factor 2 resampling using SSE at http://mail.gnome.org/archives/beast/2006-March/msg00001.html. I don't know if it does show something related to my convolution problem, but I will one day take a look at it seriously.
7. Very simple example of SSE in GCC: http://www.tuleriit.ee/progs/rexample.php
Thursday, November 08, 2007
Deprecated String-Conversion Macro
Today, I spent a lot of time trying to nicely rid of some warning messages:
warning C4995: 'gets': name was marked as #pragma deprecated
warning C4995: 'sprintf': name was marked as #pragma deprecated
warning C4995: 'vsprintf': name was marked as #pragma deprecated
warning C4995: 'strcat': name was marked as #pragma deprecated
warning C4995: 'strcpy': name was marked as #pragma deprecated
warning C4995: 'swprintf': name was marked as #pragma deprecated
warning C4995: 'vswprintf': name was marked as #pragma deprecated
warning C4995: 'wcscat': name was marked as #pragma deprecated
warning C4995: 'wcscpy': name was marked as #pragma deprecated
These seems to happen when I try to employ some ATL stuff along with its string conversion features in Visual C++ 2005. Although, I used ATL 7.0 which should not be deprecated, these warning messages still haunted my compile message.
For some unknown reasons, I found that including iostream would automatically be removed. I don't know why, but it does do a trick.
Update: these warning occurs because those deprecated functions are called internally in conversion macros. If we include iostream, some function calls in these macros may be different. Also note that if we explicitly call those deprecated functions, including iostream will do nothing, and we need to explicitly use secured functions, such as sprintf_s instead.
Thursday, October 25, 2007
ITK กับโครงสร้างการพัฒนาซอฟต์แวร์เสรี
ได้ไปเยี่ยมชมเว็บ ITK เพื่อดูความสามารถของชุดเครื่องมืออันนี้ พบว่ามันเป็นเครื่องมือที่น่าสนใจมากทั้งในแง่ของความสามารถ ระบบการพัฒนาแบบเปิด และ ลิขสิทธ์ที่เลือกใช้ แต่จุดที่จะพูดในบล็อกนี้ก็คือเรื่องโครงสร้างการพัฒนาซอฟต์แวร์เสรีที่เค้าใช้ และเครื่องมือในการพัฒนาต่างๆ
จากการสังเกตพบว่าทางองค์กรที่จัดตั้งขึ้นมาเพื่อดูแลเรื่องนี้ มีจุดมุ่งหมายที่ผูกไว้กับโครงการที่ค่อนข้างใหญ่คือ The Visible Human Project ทำให้เป้าหมายในการพัฒนาค่อนข้างชัดเจน พร้อมๆกับสามารถเอื้อประโยชน์ให้กับโครงการอื่นที่ต้องการทำอะไรคล้ายๆกันด้วย นอกจากนี้ทางฝ่ายพัฒนาก็ยังได้เลือกใช้เครื่องมือต่างๆ รวมถึงวิธีการเขียนโปรแกรมที่เปิดโอกาสให้มันสามารถใช้งานได้แทบจะในทุกแพล็ตฟอร์ม นับตั้งแต่เรื่องของ multi-threading ที่เลือกใช้ POSIX การพยายามใช้ generic programming ให้มากที่สุดทำให้เป็นไลบรารีที่ยืดหยุ่นมาก การใช้ Doxygen เพื่อสร้างเอกสารของนักพัฒนา การใช้ CMAKE เพื่อให้คนอื่นเอาไปคอมไพล์เองบนแพลตฟอร์มที่ต้องการได้ไม่ยากนัก การใช้ Dart เพื่อทดสอบและรักษาคุณภาพของซอฟต์แวร์ ตลอดจนการใช้ Mantis เป็นตัวตัดตามข้อผิดพลาดและปัญหาต่างๆ ในซอฟต์แวร์ (หลายตัวมีกล่าวถึงไว้ในหน้า Related Software)
เราคิดว่ามันน่าจะเป็นสิ่งที่ดีที่เราจะศึกษาไว้เพื่อที่จะสร้างซอฟต์แวร์เสรีที่ค่อนข้างจะซับซ้อน และต้องอาศัยความร่วมมือจากหลายๆ ฝ่าย วิธีที่ ITK ใช้อยู่น่าจะเป็นหนึ่งในทางเลือกที่ดีที่จะทำให้โครงการอยู่รอดและก้าวหน้าไปสร้างประโยชน์สืบๆ ไปได้ในระยาว
Friday, September 21, 2007
Precompiled header does not exist
I wasted about 20 minutes to figure out how to solve this compile error: precompiled header does not exist. I performed rebuild the entire solution with the hope that the precompiled header will be recreated.
Finally, I found that we could explicitly tell Visual Studio to create a precompiled header as shown in the figure below. After a successful compilation, Visual Studio will automatically change the 'Create' option to 'Use' option instead.

Sunday, September 16, 2007
Visual C++ and LNK2005 Problem
Today, I badly got strucked with LNK2005 error in Visual C++. According to linking error messages, it was a conflict between nafxcwd.lib and uafxcwd.lib. This issue will arise if one module (library or executable) "Use Unicode Character Set" and another "Use Multi-Byte Character Set".
It is important to note that LNK2005 normally arises because of two or more projects are set differently. There are two spots worth looking:


2. Code Generation Setting
Notice that there is nothing to do with linking setting, although this issue is linking problem.
More info at:
http://www.velocityreviews.com/forums/t285209-lnk2005error-in-visual-c-v-60.html
http://support.microsoft.com/kb/q148652/
Saturday, September 15, 2007
LaTex Equation Editor on the web
There is an interesting work on the web, and it's free. It is LaTex Equation Editor, http://test.izyba.com/equationeditor/equationeditor.php. This tool creates an image with transparent background, making it easy to embed in other software such as MS PowerPoint.
The drawbacks are:
1. Text in the equation cannot be changed. If we need white text, we will find ourselves in trouble.
2. Text size is a bit too small. I like it bigger in many situations.
Note: if you know a way to handle these problems, please leave a comment in this blog.
Many thanks
Update (Oct 28, 2007): I found a better one. It is Roger's Online Equation Editor at http://rogercortesi.com/eqn/index.php#note. It can generate transparent background. Plus, we can increase resolution of an output to suit our work.
Texmaker: Free cross-platform LaTeX editor
Texmaker (http://www.xm1math.net/texmaker/) seems to be a very good LaTex editor tool. I used it once a long time ago. It's pretty impressive, and I think it is better than TeXnicCenter (http://www.texniccenter.org/). The tool has no more update for more than a year). However, Texmaker does not have some cool features in WinEdt such as DVI search.
FYI: DVI search is a feature in WinEdt helping a user to find a portion in DVI document corresponding to a target text in the editor. You can try it by ctrl-shift-s in a WinEdt editor. If your DVI file is open, it will jump to the corresponding text.
FYI: there is a forum about LaTex and its editors at forum http://latex-community.org/. This forum has dedicated sections for TeXnicCenter, Texmaker, and WinEdt. Sounds interesting.
Aurora: Embedding LaTex Math into MS Office
A few days ago, I found an interesting (but not free) tool for embedding LaTex Math into MS PowerPoint. Its name is Aurora, http://elevatorlady.ca/. Interestingly, this tool works in other MS Office tools, including Word, Excel, and Visio.
I have not tried it yet, but I will surely take a look at it when I have more time.
Sunday, September 09, 2007
ว่าด้วยเรื่องของ JFileSync
ยังไงก็ตามด้วยความง่ายและเพียงพอต่อความต้องการเราก็พบว่ามันน่าพอใจแล้วสำหรับซอฟต์แวร์ฟรีตัวนี้
http://jfilesync.sourceforge.net/
Wednesday, August 08, 2007
การใช้ฟอนต์ที่ลิขสิทธิ์ไม่ได้ติดมากับวินโดวส์
การจะใช้ฟอนต์ไทยในระบบปฏิบัติการอื่นนั้น แต่ก่อนเรามักจะคัดลอกฟ้อนต์จากวินโดวส์ไปใส่ ซึ่งหากเราไม่ได้มีวินโดวส์อย่างถูกกฎหมาย การคัดลอกฟอนต์ก็มักจะไม่ถูกกฎหมายตามไปด้วย วิธีแก้ปัญหานี้ก็คือใช้ฟอนต์ไทยที่ได้เค้าแจกให้เราใช้กันได้อย่างอิสระ เช่น ฟอนต์จากเนคเทค และ http://f0nt.com/ (หลังตัว f ที่จริงเป็นเลขศูนย์ ไม่ใช่ตัวโอ) เป็นต้น
ส่วนเรื่องที่จะเขียนในที่นี้ จะเจาะจงการใช้ฟอนต์การูด้า (Garuda) ซึ่งเป็นฟอนต์ที่หน่วยงานราชการไทยเลือกใช้ และฟอนต์ Tlwg Typist ซึ่งเป็นฟอนต์แบบความกว้างคงที่ทั้งสองภาษา (ใช้งานได้ฟรีเช่นกัน) และเราก็สามารถไปดาวน์โหลดได้จาก http://linux.thai.net/ (ดูตรงหัวข้อ ThaiFonts-Scaleable)
หลังจากทดลองใช้ในการพิมพ์ในไมโครซอฟต์เวิร์ดดูก็พบว่า ขนาดฟ้อนต์การูด้าที่ควรใช้คือ 12 เพราะขนาดจะกำลังค่อนข้างใหญ่ อ่านง่าย ดูเป็นมิตร แต่ถ้าต้องการให้มันดูเป็นวิชาการมากขึ้นก็ควรลดขนาดลงเหลือ 10 ส่วนขนาดฟอนต์ของ Tlwg Typist นั้นถ้าจะให้จับคู่กับการูด้าขนาด 12 ก็ควรจะเป็นขนาด 14 เพราะฟอนต์ Tlwg Typist นั้นเล็กกว่าการูด้าเล็กน้อย (ประมาณสองจุด) และถ้าจะให้จับคู่กับฟอนต์การูด้าขนาด 10 ก็ควรจะเลือกใช้ฟอนต์ Tlwg Typist ขนาด 12
สำหรับการเซ็ตขนาดฟอนต์เพื่อใช้พิมพ์ในเวิร์ด เราก็ควรทำในลักษณะรูปแบบแม่แบบ (Template Style) ซึ่งก็ทำได้จาก Format->Styles and Formatting จากนั้นก็ให้เลือก New Style ... และกำหนดให้ Save to Template เพื่อสร้างรูปแบบแม่แบบที่ต้องการไว้ใช้ในคราวต่อๆไปด้วย
สำหรับการเซ็ตขนาดฟอนต์เพื่อใช้พิมพ์ในโอเพนออฟฟิศ เราควรตรวจดูก่อนว่า CTL ที่เห็นเป็นภาษาไทยหรือเปล่า ซึ่งทำได้ที่ Tools->Options::Language Setting->Languages เมื่อทุกอย่างพร้อมแล้วก็ให้ไปที่ Tools->Options::OpenOffice.org Writer->Basic Fonts (CTL) นอกจากนี้หากเราต้องการตั้งค่าต่างๆให้เป็นรูปแบบแม่แบบเช่นเดียวกับที่ทำในเวิร์ด เราก็ทำได้ที่ Format->Styles and Formatting ที่แถบเมนูข้างบนในลักษณะเดียวกับที่เราทำในเวิร์ด
Wednesday, May 30, 2007
Adobe Contribute 3 and PSAPI.DLL problem
Monday, April 16, 2007
valarray problem in Visual Studio
I tried to use valarray in Visual Studio and got some compile errors and warnings:
"warning C4003: not enough actual parameters for macro 'min'
warning C4003: not enough actual parameters for macro 'max'
error C2059: syntax error : ')'
c:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\include\valarray(427) : see reference to class template instantiation 'std::valarray<_ty>' being compiled
error C2334: unexpected token(s) preceding ':'; skipping apparent function body
...
"
These problem will occur only when we try to use statically linked MFC library. In http://www.codeguru.com/forum/archive/index.php/t-342787.html, Paul suggested that we need to make sure that valarray is included before afx stuff. This is because MS implements min and max macro and defines them in afx pre-compile header file. Any class that has min and max will have this problem.
However, if I switch the order, it seems that all declaration of valarray will be removed and I just got other compiler errors. It seems that the solution from Paul could not work for my situation.
After trying for a while, I finally decided to rename valarray.h to valarray_mod.h and change the function names from min and max to minimum and maximum instead.
Wednesday, March 28, 2007
Pilgrimage
1 หลวงปู่ทา วัดถ้ำซับมืด ปากช่อง
2 หลวงพ่ออุทัย วัดเขาใหญ่เจริญธรรม ปากช่อง (แผนที่ http://larndham.net/index.php?showtopic=25059)
3 หลวงปู่บุญฤทธิ์ สวนทิพย์ นนทบุรี (แผนที่ http://www.suanthip.com/contact/images/bmap.gif)
4 วัดสนามใน (ไม่รู้มีใครอยู่หรือไม่) นนทบุรี
5 วัดกระโจมทอง หลวงพ่อสุทัศน์ นนทบุรี
6 หลวงพ่อปราโมทย์ สวนสันติธรรม
7 หลวงพ่ออัครเดช (ตั๋น) วัดบุญญาวาส ชลบุรี (แผนที่ http://www.palungjit.com/club/kondee/)
8 วัดป่าอัมพวัน อ.เมือง จ. ชลบุรี เดินทางสายมอเตอร์เวย์มาจากกรุงเทพ ฯ
- ป้ายบอกทางเลี้ยวซ้ายไป อำเภอบ้านบึง
- ให้ท่านเลี้ยวซ้ายตามป้ายบอกทางถึงถนนสายบ้านบึง ประมาณ 500 เมตร จะเห็นสพานลอยคนข้ามถนน - ให้ท่านชิดขวา เลี้ยวรถกลับ ประมาณ 50 เมตร จะเห็นป้ายบอก วัดหนองรี และ วัดป่าอัมพวัน
- ขับตรงไป ประมาณ3 ก.ม มีป้ายบอกชี้ไปทางซ้าย ตรงไปอีก 2 - 3 ก.ม
- มีป้ายบอก วัดป่าอัมพวัน อ่างเก็บน้ำช่องมะเฟือง เลี้ยวขวา ไปตามเส็นทางนี้ จนสุดสาย 2 ก.ม
ชีวประวัติหลวงปู่มหาเจิม ปญฺญาพโล
ชีวประวัติหลวงปู่มหาเจิม ปญฺญาพโล
หลวงปู่มหาเจิม นามเดิม เจิม วรรณโมฬี เกิดที่บ้านหนองแหน ต.เมืองใหม่ อ.พนมสารคาม(ปัจจุบันเป็น อ.ราชสาสน์) จ.ฉะเชิงเทรา เมื่อวันที่ ๑๒ ตุลาคม พ.ศ. ๒๔๕๙ ตรงกับวันแรม ๑ ค่ำ เดือน ๑๑ ปีมะโรง บิดามีนามว่า นายหรุ่น วรรณโมฬี มารดามีนามว่า นางม้วน วรรณโมฬี มีพี่น้องทั้งหมด ๖ คน เป็นผู้ชาย ๔ คน ผู้หญิง ๒ คน ได้เสียชีวิตแล้วทั้งหมด ๕ คน ที่มีชีวิตอยู่ปัจจุบันเหลือหลวงปู่เพียงองค์เดียว
การศึกษาของหลวงปู่ในวัยเด็กต้องศึกษากับวัดที่อยู่ใกล้บ้าน โดยเรียนหนังสือมูลบทบรรพกิจของพระยาศรีสุนทรโวหาร(น้อย อาจารยาง***ร)พออ่านออกเขียนได้เท่านั้น เพราะยังไม่มีโรงเรียนประชาบาลตั้งอยู่ในวัดสมัยนั้น และยังต้องย้ายออกจากบ้าน ห่างจากบิดามารดาและญาติพี่น้องมาอยู่ที่วัดตั้งแต่อายุประมาณ ๘ ขวบ
หลวงปู่ได้บรรพชาเป็นสามเฌร เมื่อปี พ.ศ. ๒๔๗๐ อายุได้ ๑๒ ขวบ กับหลวงพ่อทองซึ่งเป็นเจ้าอาวาสวัดแสนภุมมาวาส และได้อยู่กับท่าน ๑ พรรษา ในปี พ.ศ. ๒๔๗๑ หลวงปู่ได้เดินทางเข้ามาในกรุงเทพฯ และมาอยู่ที่วัดบรมนิวาส ถนนรองเมือง เขตปทุมวัน กรุงเทพมหานคร โดยคุณย่าอิ่ม รัดสกุล เป็นผู้นำมาฝากฝังกับท่านเจ้าคุณพระอุบาลีคุณูปมาจารย์ (จันทร์ สิริจันโท) และได้ญัตติเป็นธรรมยุต กับท่านเจ้าคุณพระอุบาลีคุณูปมาจารย์ อีกด้วย
การศึกษาบาลีและนักธรรม ได้เริ่มศึกษาเมื่อปี พ.ศ. ๒๔๗๑ หลวงปู่สอบบาลีไวยากรณ์ได้ที่ ๔ เมื่อปี พ.ศ. ๒๔๗๒ และ ในปี พ.ศ. ๒๔๗๗ สอบได้นักธรรมเอก และหลวงปู่ยังสามารถสอบได้เปรียญธรรม ๕ ประโยค ได้ในปีเดียวกัน
เมื่อหลวงปู่อายุครบ ๒๐ ปี บริบูรณ์ จึงได้เข้าพิธีอุปสมบทเป็นพระภิกษุ เมื่อปี พ.ศ. ๒๔๘๐ ณ พระอุโบสถวัดบรมนิวาส โดยมีพระพรหมมุนี (ติสโส อ้วน) เป็นพระอุปัชฌาย์ พระครูพินิจ วิหารการ (ขำ) เป็นพระกรรมวาจาจารย์ พระครูวินัยธรดำ เป็นพระอนุสาวนาจารย์
ปี พ.ศ. ๒๔๘๔ หลวงปู่ได้ออกปฏิบัติ โดยเดินทางขึ้นสู่ภาคเหนือ ได้จำพรรษาที่วัดเจดีย์หลวง อ.เมือง จ.เชียงใหม่ ๑ พรรษา
ปี พ.ศ. ๒๔๘๒ – พ.ศ. ๒๔๘๗ จำพรรษาที่วัดป่าโรงธรรมสามัคคี อ.สันกำแพง จ.เชียงใหม่
ปี พ.ศ. ๒๔๘๘ จำพรรษาที่วัดทิพย์วนาราม อ.แม่แตง จ.เชียงใหม่
ปี พ.ศ. ๒๔๘๙ ได้กลับมาจำพรรษาที่ วัดป่าโรงธรรมสามัคคี อีกครั้ง
ปี พ.ศ. ๒๔๙๐ ลงมาอยู่ภาคกลาง ได้ลงไปจำพรรษาที่อ่าวยาง จ.จันทบุรี เพียงรูปเดียว
ปี พ.ศ. ๒๔๙๑ ได้ไปจำพรรษาที่อ่าวหมู กับ พระอาจารย์น้อย เกตุโร อยู่ ๑ พรรษา และได้เดินทางลงไปจำพรรษาที่ปักษ์ใต้ โดยได้ไปอยู่กับหลวงปู่เทสก์ เทสรังสี (พระราชนิโรธรังสีคัมคีร์ปัญญาวิศิษฏ์) ที่จังหวัดภูเก็ต
ปี พ.ศ. ๒๔๙๕ จำพรรษาที่อ่าวลึก จ.กระบี่ กับอาจารย์พรหมมา
ปี พ.ศ. ๒๔๙๖ – พ.ศ. ๒๔๙๘ ได้อยูจำพรรษาที่คลองช่องลม อ.อ่าวลึก จ.กระบี่
ปี พ.ศ. ๒๔๙๙ กลับมาจำพรรษาที่วัดแสนภุมมาวาส อันเป็นบ้านเกิด เพื่อเยี่ยมโปรดโยมบิดา โยมมารดา
ปี พ.ศ. ๒๕๐๐ กลับลงไปภาวนาที่ภาคใต้อีกครั้ง โดยจำพรราที่อ่าวลึก จ.กระบี่ ได้ ๑ พรรษา
ปี พ.ศ. ๒๕๐๓ จำพรรษาที่วัดอรัญญบรรพต จ.หนองคาย กับหลวงปู่เหรียญ วรลาโภ (พระสุธรรมคณาจารย์)
ปี พ.ศ. ๒๕๐๔ – พ.ศ. ๒๕๐๗ จำพรรษาที่วัดเขาแก้ว จ.จันทบุรี
ปี พ.ศ. ๒๕๐๘ – พ.ศ. ๒๕๑๗ จำพรรษาที่วัดป่าคลองกุ้ง จ.จันทบุรี
ปี พ.ศ. ๒๕๑๘ กลับไปวัดเขาช่องลม อ.อ่าวลึก จ.กระบี่อีกครั้ง และได้รับแต่งตั้งให้เป็นเจ้าอาวาส จนถึงปี พ.ศ. ๒๕๑๙ – พ.ศ. ๒๕๓๑ และในระหว่างนั้นหลวงปู่ได้ปฏิเสธที่จะรับตำแหน่งเจ้าคณะจังหวัดกระบี่ และ พังงา
ต่อมาท่านได้มาอยู่ที่มูลนิธิพระอาจารย์มั่น ภูริทัตโต ซอยจรัลสนิทวงค์ ๓๗ เขตบางกอกน้อย กรุงเทพมหานคร.
เพื่อรักาอาการอาพาธ และมาพักอยู่กับ หลวงปู่เจี๊ยะ จุนโท (พระครูสุทธิธรรมรังษี) ที่วัดป่าภูริทัตตปฏิปทาราม อ.สามโคก จ.ปทุมธานี
ปี พ.ศ. ๒๕๓๓ – ปัจจุบัน หลวงปู่ได้รับอารธนานิมนต์มาเป็นประธานสงฆ์ วัดสระมงคล อ.กำแพงแสน จ.นครปฐม ซึ่งเดิมมีพื้นที่เป็นป่าช้าเก่า
ชมภาพงานฉลองอายุ ๙๐ ปี หลวงปู่มหาเจิม ปญฺญาพโล ได้ที่
www.watpa.com
ข้อความที่ 11 ล ืมบอกไปครับว่าทางไปวัดไปง่ายมากครับ คือหากไปทางนครปฐมก็ให้ไปต่อทางอ.กำแพงแสน จากนั้นวิ่งเลยไปทางสุพรรณบุรี เลยม.เกษตรกำแพงแสนไปไม่น่าถีง7-8ก.ม. สังเกตป้ายบอกว่าตลาดพงนกหรืออะไรทำนองนี้ มองทางขวามือมีแยกใกล้ๆสะพานลอยให้ไปกลับรถแล้วมาใช้เส้นทางที่ว่า วิ่งไปอีนิดหน่อยจะไปเจอแยกขวาก็วิ่งเข้าไป วัดอยู่ไม่ไกลครับจากแยกนี้ ไปง่ายไม่ยากครับ ไปกันนะครับผม ไปไหว้หลวงปู่ของพวกเรา |
จากคุณ นายพงศ์ เมื่อวันที่ 28/12/2549 19:21:38 |
http://www.watpa.com/board_detail.asp?board_id=754
Friday, March 23, 2007
เบอร์โทรไป Airticket Agency
1800-875-9988 คุณแดง
2. Airticket USA
1888-888-7157 คุณคำหล้า
Friday, May 26, 2006
Tech: Open HTML Help via Network
I used doxygen to generate HTML help files from MS Visual Studio by using Kings' tool download from Code Project website, but when I put the outputs to the network and opened the help file, it said "Action Cancelled". This happened because Windows does not allow opening a network HTML help file, unless we specifically allow the file.
To solve the problem, we need to register the help file. This can be done intuitively by HHReg software, which is freely available at http://www.freedownloadmanager.org/downloads/make_chm_files_info/.
References:
http://www.codeproject.com/macro/KingsTools.asp, Kings' tool download page.
Monday, May 22, 2006
Pending Note: May 22-31
Matlab plotting capability:
We can now set aspect ratio, and when we want to export sth., Matlab 7.1 will capture the screen to reflect the current aspect ratio for us.
http://www.csc.fi/visualization/intensk99/matlab/
Linking problem in C++:
I got weird linking problem from template functions today. When I moved those functions from one class to another, linker did not work properly. Justin told me that we need to move its implementation to header files. Yeah, his suggestion did work.
Programming:: King's Tool--Doxygen for MS Visual Studio
More info and download link are available at:
http://www.codeproject.com/macro/KingsTools.asp
Matlab:: Matlab Links
http://www.csc.fi/visualization/intensk99/matlab/
For Reference:
Quick Ref: http://web.cz3.nus.edu.sg/~bao/teach/cz2105/matqkref.pdf
Sunday, May 21, 2006
Where are my files?
1. Massive Backup เช่น Drive MAIN_MAXTOR หรือว่า output จาก master thesis ให้เก็บไว้ที่ Clemente W
2. Active Work (Esp. src code) ให้เก็บไว้ที่ Hornsby Z
3. Active Outputs ให้เก็บไว้ที่ไดร์ฟเราเองเพื่อใ้ห้โหลดได้เร็วๆ จะมีปัญหาเล็กน้อยตรงที่อักษรไดร์ฟอาจจะเปลี่ยนได้ระหว่างเครื่อง ดังนั้นเราอาจจะต้องทำฟังก์ชันไว้ให้เปลี่ยนไดร์ฟได้ง่ายๆ
Sunday, May 14, 2006
Pending Note: May 1 - 15, 2006
extern function to organize global function highly related to a specific class
(http://www.accu.org/begincpp/public/disc_topics/extern.html)
1. Declare a function as an extern in .h class
2. Implement it in .cpp class
May 9, 2006
Memory leakage due to CWinThread.
Memory leakage due to newVolume method in perform method.
Circular heading file when organizing the code is very hard to find.
Constructor inheritance ( : super_class_name() ) -> http://www.ugrad.cs.ubc.ca/~cs260/chnotes/ch4/Ch4Cov02.html.
Elusive memory leakage is now known. It is from NVVolume. Its destructor does not work properly.
However, I don't know what the if structure in NVVolume.h shown below for.
After I commented it out, every thing is still okay.
for (k=0; k \lessthan m_nslices; m_pdata = 0) delete k=
May 14
Default setting for inline expansion in debug mode is disabled in VS.Net 2003. To enable it, do as follows
1. right click and invoke project properties
2Go to c++ :: General
3. Change 'Debug Information Format' to 'Program Database (/Zi)'. We cannot use 'Program Database Edit & Continue (/ZI)' because it is incompatible with inline expansion feature.
4. Go to 'C/C++ :: Optimization'.
5. Change 'Inline Function Expansion' to 'Only __inline (/Ob1)'.
May 15, 2006
A. Mysterious subnet mask problem with CSE servers.
B. Mysterious rebuild and memory leak stuff. If you found memory leak in NVKernel, perhaps, you need to rebuild each project one by one. I think it is a linking problem. Oh, maybe, I actaully need to rebuild the release version of it. :: No, just rebuild each project, except the NVKernel itself.
C. virtaul inline function: if an inline function is inherited, it's must also the virtaul function, or its implementation in a subclass will not exist and linking problem occurs.
May 16, 2006
A. OpenOffice can export large poster to PDF accurately. Even better than Adobe Acrobat!!!
B. Project dependency may not be saved in a project file. Namely, if we remove a project and add it again to our solution, dependency information will lose and we need to configure it again.
May 17, 2006
A. Do what is correct and consistent with your style, although it may not the fastest. Consistency is very important to build a reliable multi-processing software. If Big-O complexity is the same, choose straightforward and consistent style.
B. A large, tall male subject :: we do not use ' large and tall' since it means two subjects, one is tall and another is large.
Saturday, May 13, 2006
คำอวยพรเนื่องในวันวิสาขบูชา
คิดว่าเราน่าจะหาคำอวยพรเนื่องในวันวิสาขบูชามั่ง ก็คิดได้ดังนี้
ขอให้ความสงบใจจงเกิด ขอให้ศีลธรรมจงงอกงาม ขอให้ปัญญาจงสว่างไสว :)
Saturday, April 29, 2006
Prog: CPP Sensitivity
I learned that sometimes we just can't transfer our C++ VS solution to a new machine and use it. For some unknown reason, function calls were messed up in my case. I called wrong functions; for example, my code called the function A(), but when I ran and debugged, it called B() instead. If we encounter the similar case, just try recompiling each project one by one.
Wednesday, April 12, 2006
This Week: April 10 - 16, 2006
Tuesday: Learn how to read data from binary file and learn how to save binary data to file. In reading, we cannot flush the buffer, just read again and overwrite the old data. In writing, it is much faster to perform large write (write multiple bytes). Moreover, we don't need to flush data. See Convolver class (xConvolve function).
I also learn that casting is a time consuming task. If we can provide compatible variable types, we might want to consider provide one as much as we can. It reduces running time significantly.
Wednesday: I encountered a strange problem. I cannot promote a protected member function to a public one. It causes linking problem in other projects using a library with the promoted function. I have to avoid the problem by deriving the class and build an interface to provide a way to call the protected member as a public one. I did it in VesselTreeUtilities by providing the same function name and signature. To create the function we can do it as follows:
float***
VesselTreeUtilities::init3DArrayFloat( int nNumSlc, int nNumRow, int nNumCol ) {
return CommonCore::init3DArrayFloat( nNumSlc, nNumRow, nNumCol );
}
Tuesday, April 04, 2006
Tech: Shear Transformation in Illustrator
I tried to use draw an isometric grid with some text in it. Kun-Chang suggested me to use Illustrator to draw a grid, but he did not know how to call shear transformation feature in it. In short, we want to draw a rectangular grid and shear transform it to an isometric one.
To draw a rectangular grid:
- Show a grid (in top menu bar)
- Snap to grid (in top menu bar as well)
- Draw a grid easily as you want
When export it for later use with other document, we'd better use somewhat high resolution to do that job.
Monday, April 03, 2006
Latex: \left\{ and \right.
ปัญหาแบบนี้แก้ได้ด้วยการใช้คำสั่ง \right. เพื่อเป็นการแจ้งกับ LaTex ว่าเราไม่ได้ลืมปิด แต่เราไม่ต้องการใส่มันเข้าไปจริงๆ
Thursday, March 23, 2006
Latex: {\tiny ... } and \begin{spacing}{1.0}
Today, I learned two new LaTex command: {\tiny ... } and \begin{spacing}{1.0} \end{spacing}
\tiny is used to make the font in the bracket specifically small.
spacing environment specifies line spacing within the environment. 1.0 is actually the default line spacing. If you want double space, say {2.0} instead.
Saturday, March 18, 2006
Latex: align and equation environments
1. ใช้ \begin{equation} \end{equation} นำ
2. ตามด้วยการใช้ \begin{aligned} \end{aligned} ไว้ที่ด้านใน
3. ใส่สมการไว้ภายใน aligned environmentg
\begin{equation}
\begin{aligned}
%Your equation is here
\end{aligned}
\end{equation}
น่าจะใช้ gather ได้แต่ไม่รู้่ว่าใช้ไงกันแน่ ถ้าใครรู้แล้วบังเอิญผ่านมาบล็อกนี้พอดีก็บอกด้วยนะ
Sunday, February 05, 2006
Friday, February 03, 2006
Study: Curve Fitting in Matlab
However, one of the major problems even when we know the formal form is that we can't arrange our term properly. In such a situation, many people try to use the generalized curve fitting capability in Matlab instead. However, it converges slower than it should be. For example, if we are going to fit hyperbolic function: y = a/(x-b), if we do not notice that this is actually a simplified version of rational form (http://www.mathworks.com/access/helpdesk/help/toolbox/curvefit/ch_fit10.html), we may resort to use general equation (http://www.mathworks.com/access/helpdesk/help/toolbox/curvefit/ch_fitt7.html#69221) . Although it is easier, it tends to converges slowly.
In case that we do not have the curve fitting toolbox, we may use an optimization toolbox instead. In fact, general equations defined in the curve fitting toolbox relies on the optimization toolbox. However, using the optimization toolbox requires more complicated management of data array.
Document on the optimization toolbox can be found at
http://www.mathworks.com/access/helpdesk/help/toolbox/optim/optim.html?BB=1.
And the most relevant page in the document is at
http://www.mathworks.com/access/helpdesk/help/toolbox/optim/ug/f3204.html#f1974
In summary, if we have a curve fitting toolbox, our curve fitting tasks will be very easy. But only optimization toolbox is sufficient. Please note that the curve fitting toolbox do not work independently; you need to have statistics and optimization toolboxes as well.
FYI:
http://www.mathworks.com/access/helpdesk/help/toolbox/curvefit/
http://www.mathworks.com/access/helpdesk/help/toolbox/optim/ug/
http://eng.usna.navy.mil/~mecheng/DESIGN/CAD/MATLAB/matlab/matlabl8.html
http://www.mathworks.com/access/helpdesk/help/toolbox/curvefit/ch_fit10.html
http://www.zoo.ufl.edu/bolker/emd-2000/lect4.html
Thursday, February 02, 2006
English: What I learned from the first draft
- Don't mention a thing that we will not talk about it later. Although it may look good for an introduction, it actually not good for reader at all. Try to find a new way for introduction is a better choice.
- When we say "the problem" for the first time, it is better to include a good adjective representing "the problem'. For example, "to alleviate the computational complexity problem". Plus, it is generally better if we show an example of a problem in the first time we mention that problem (show the computation complexity).
- There may be parts that are off-topic due to the scope of our article. Try to get rid of them as much as possible. Always remind ourselves that we have a specific goal, not a general goal, in every writing.
Saturday, January 14, 2006
Computer: Batch Conversion of Legacy Docs to OOo
http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html
Monday, December 26, 2005
Dharma: Offering and Vow before Meal
I make offerings to the Dharma.
I make offerings to the Sangha.
I make offerings to all sentient beings.
I vow to deliver numerable sentient beings.
I vow to cut off endless vexation.
I vow to master the limitedless approaches to Dharma.
I vow to attain supreme buddhahood.
Computer: Testing drive compression on Windows XP
I am testing drive compression on my new Hitachi hard drive. At this moment, I found that it works quite well and very efficiently.
I copy 2.53GB of data from my trusty Maxtor to the new Hitachi drives. The size on the uncompressed Maxtor drive is 2.57GB (Figure 1), but the size on the compressed Hitachi drive is only 2.22GB (Figure 2). The side effect is the cost for CPU overhead. During copying, CPU usage is virtually 100%. The drive with compression will be shown with blue label, while the common ones are in the block label (See figure 3).
Experiment about copying time was conducted too. I copied about 2.53 GB of data from an USB uncompressed hard drive to a Firewire hard drive. The Firewire drive was uncompressed for the first phase of copying experiment. Then the same Firewire drive was compressed to perform the second phase of copying experiment. The first phase of copying finished in 5:01 minutes, while the second phase spended up to 6:29 minutes. The space was saved by 13.6%, but writing time increased by 29.2%. This implies that for the test data, it is not a big deal to use compressed volume to save disk space unless we are really run out of space.
I may stop using this feature if I am going to use the new hard drive as a main one. At this point, I am testing the new drive, along with its Firewire interface, to find if the new solution is reliable, but is faster than my old solution. A faster hard drive, will be the main one, and the slower one will be a backup one.
Computer: Enclosure Issues
I obtained a new Syba enclosure a few days before, and it causes so many problems First, it corrupts data on my trusty Maxtor hard disk. Second, the fan is surprisingly noisy. I found out later that the fan itself is not very noisy, but the fan along with airflow rushing into the enclosure is very noisy. Third, LEDs do not work. Again, I found out later that workers at assembly lines do something wrong or document is not accurate, since I need to flip the direction of LED power line to make it works correctly.
I need to go back to use the old enclosure for my trusty hard drive.
At this moment, I bought a new Hitashi Deskstar 7K250 hard drive (160GB/IDE interface) to use with the new enclosure. I am testing if it can work correctly with my new hard drive. My trusty Maxtor might not work with this new Syba enclosure just because I enabled delayed write feature for it. I need to wait and see.
Dec 26, 2005:
Okay, I now realize that the issue about delayed write of this enclosure persists and I need to switch to use quick removal optimization mode. The performance is dropped by about 20%. Referred by my next post, a test on the same data takes 6:26 minutes for uncompressed volume with no delayed write.
So, the new hard drive will be used as a backup volume. I also plan to make it a CVS repository.
At this point, I have two things to do with my hard drive before building a ghost image for a hard drive:
1. Install Matlab toolbox.
2. Get key for dictionary.
Friday, December 23, 2005
Study: Going to finish Exam A preparation
- Algorithm part
- ศึกษาปัญหาของ dynamic programming ตรงส่วนที่เป็น final exam อีกครั้งแล้วบันทึกบทสรุปออกมา
- ศึกษาคุณสมบัติของกราฟอัลกอริทึมแบบต่างๆ โดยเฉพาะ running time และเงื่อนไขของ applicability ของแต่ละอัลกอริทึม
- ศึกษาปัญหาของ dynamic programming ตรงส่วนที่เป็น final exam อีกครั้งแล้วบันทึกบทสรุปออกมา
- Programming language part
- Lamda calculus
- Function activation record mechanism
- Concurrency in Java
Monday, December 19, 2005
Life: ไปให้ถึงที่สุดของความอดกลั้น
เรานึกถึงเรื่องราวของตัวเองที่ Retreat Center แล้วเราพบว่า เพราะตอนนั้นเราไปถึงที่สุดของความอดทน ทำให้เราได้ของขวัญมาอย่างหนึ่งคือความไม่เมื่อยล้าในเวลานั่ง. ทำให้ในเวลานี้เรานึกเพิ่มเติมต่อไปว่าถ้าเราจะไปให้ถึงที่สุดของความอดกลั้ นคือความละเว้นจากความบันเทิงทั้งมวลและการเสพสุขทั้งมวลแล้วเราจะได้อะไรเป ็นของขวัญ เราจะลองทำดู ในเมื่อพระพุทธเจ้าบอกไม่ให้เสพกามเราก็จะลองทำดู ที่ retreat center เราอดทนด้วยศรัทธาอันแรงกล้า ในเวลนี้เราก็จะอดกลั้นด้วยศรัทธาอันแรงกล้าเช่นกัน. อันปัญญาของเรามีเพียงเท่าเศษธุลีอวกาศ เราคงต้องดันตัวเองจากความเชื่อก่อนไม่งั้นคงไปได้ไม่ไกลนัก.
(หมายเหตุ กามหมายความรวมคือ รูป รส กลิ่น เสียง สัมผัส ไม่ได้เจาะจงอยู่ที่เรื่องเพศเท่านั้น)
Computer: Software in my Computers
ตอนนี้คิดจะทำการฟอร์แมตเครื่องเพื่อล้างวินโดวส์ใหม่ ก็เลยต้องการทำรายการซอฟต์แวร์ที่ต้องลงแน่ๆ พร้อมๆกับหมวดหมู่ของซอฟต์แวร์ต่างๆในเครื่อง พร้อมๆกับรายการแบ็คอัพ เราจะทำการเปลี่ยนโครงสร้างพาร์ติชันของฮาร์ดดิสก์ให้เป็นแบบพาร์ติชันเดียว แล้ว เพราะพาร์ติชันอันที่สองที่สามก็มีอยู่ที่ฮาร์ดิสก์แบบภายนอก
- รายการแบ็คอัพ
- Mail and favorites in Mozilla
- Thesis (this portion will not be formatted though)
- Personal Web
- Thai Student Association Web
- My Documents
- Testing Ground
- Work Partition
- Droplet Recognition
- VFX
- Candidacy Note (included in Personal Web Actually)
- Files for Prolog and ML
- Java project files
- รายการซอฟต์แวร์แบ่งตามหมวดหมู่
- Dictionaries
- Stedman's medical dictionary
- Cambridge's advanced learner dictionary
- Longman's dictionary of contemporary English
- Random house
- So Sethabutr's dictionary
- WordWeb
- Communication
- Secure Shell Client
- Mozilla
- Firefox Thai
- MSN
- Cisco VPN
- Filezilla
- Humming Bird
- Cygwin
- Programming and Research
- Studio (3D Viewer)
- Virtual Navigator and ROI Surface Writer
- Studio 8 (Macromedia's)
- Visual Studio .Net 2003
- Eclipse
- CVS (not now, use unmanaged snapshot may be better)
- jEdit
- Apache Webserver
- PHP engine
- Prolog
- ML
- Entertainment
- Napster
- Windows media player latest version
- iTune
- Arcsoft Showbiz
- QuickTime
- Power DVD
- Document Tools
- WinEdt and MikTex
- OpenOffice.org 2.0
- Microsoft Office 2003
- GIMP
- Dia
- PDF Creator
- PDF 995
- PDF Blender
- GhostScript
- GhostView
- Adobe Acrobat (via Adobe Creative Suite 2)
- Doxygen
- WinEdt and MikTex
- Utilities
- DVD Writer
- FileAnt (File Explorer)
- NetAnt
- GetLeft
- 7-zip
- Samsung driver and utilities
- Dictionaries
Computer: Firewire Enclousure
The bottom line is if your enclousure has Firewire interface, you can use it as a Firewire convertor as well. This can add value to your enclosure.
Today (Sunday Dec 18, 2005), I just bought a new enclosure for my hard disk to give it Firewire interface instead of USB 2.0, because Firewire gives more bandwidth, even though its theoretical bandwith is lower than USB 2.0. I think I will connect my devices-- hard drive and DVD drive-- through Firewire instead.
Computer: Disc Publisher

I got an advertisement about Disc publisher (CD/DVDs copier and printer) from Rimage. It is quite interesting product, esp. for a small software company or any organization that may publish some media at small scale (less than 1000 copies). Their products offer all-in-one solution--duplicator and printer (both text and images). Plus, we can input them 100 discs for a single job. Hmm, it's a good idea to use it for public presentation.
Tuesday, December 06, 2005
Study: News about CAS
http://manager.co.th/QOL/ViewNews.aspx?NewsID=9480000167345
Saturday, December 03, 2005
ชีวิต: เรื่อง รถโฆษณาในรัฐพ่อค้า โดย นิธิ เอียวศรีวงศ์
ในบทความกล่าวเกี่ยวกับรถโฆษณาที่วิ่งช้าๆบนถนน มันถูกกระทำเพื่อประโยชน์ของพ่อค้า แต่ทำให้สังคมเสียผลประโยชน์ทั้งทางด้านเวลา และค่าน้ำมันที่ทุกวันนับแต่จะแพงขึ้นทุกทีๆ แต่เรากลับปล่อยให้กลุ่มพ่อค้าที่เป็นคนได้ประโยชน์จากรถโฆษณานั้นกระทำการต ่อไปเรื่อยๆโดยที่เราไม่ยอมปริปากออกมาคัดค้านกันเลย
เช่นเดียวกับคำ ขู่ของรํฐบาลที่ตำหนิคำวินิจฉัยของศาลตุลาการเกี่ยวกับการระง ับการขายหุ้น กฟผ. ว่าทำให้ตลาดหุ้นซบเซา แต่แท้จริงแล้วคนไทยที่อยู่ในตลาดหุ้นตามบทความของอาจารย์นิธินั้นมีน้อยกว่ า 0.25% ยิ่งไปกว่านั้น ความซบเซามันมาจากการที่พวกเก็งกำไรในระยะสั้นถอนหุ้นออกไป ซึ่งหุ้นพวกนั้นไม่ได้สร้างความแข็งแกร่งอะไรให้กับบริษัทหรือโรงงานเลย การที่คนพวกนั้นถอนหุ้นออกไปที่แท้ก็จะไม่กระทบกับภาพรวมทางเศรษฐกิจเลย แต่หลายคนในประเทศเรากับมาพะวงสนใจกับผลประโยชน์อันไม่ยั่งยีนของคนเพียง 0.25% โดยไม่คำนึงถึงผลกระทบกับสังคมโดยรวมเลย
ส่วนที่สำคัญอีกอย่าง ของบทความก็คือ การพูดถึงการรักษาความเป็นชุมชนของชาวเชียงใหม่ที่นับวันจะหลงทางไปทุกที พวกเค้าพยายามรักษารถโฆษณาที่ไม่เข้ากับสภาพเศรษฐกิจในปัจจุบัน แต่กลับไม่รักษาพวกประเพณียี่เป็ง งานปีใหม่ งานสวดมหาชาติ ให้เป็นของชุมชน กลับปล่อยให้มันกลายเป็นงานของ ททท. เพื่อผลประโยชน์ทางการค้าอีกเช่นเคย เรื่องนี้เราก็พึ่งสังเกตว่าคนต่างชาติจะเข้าใจว่าของพวกนี้เป็นวิถีชีวิตขอ งชาวท้องถิ่น แต่ที่จริงความเป็นส่วนหนึ่งของชีวิตคนในชุมชนมันจางหายไปหมดด้วยการที่ประเ พณีถูกทำให้เป็นเพียงส่วนหนึ่งของการค้าและการท่องเที่ยวเท่านั้น
อ้างอิง
นิธี เอียวศรีวงศ์ มติชนสุดสัปดาห์ 2 ธ.ค. 2548 ฉบับที่ 1320 http://www.matichon.co.th/weekly/weekly.php?srctag=0414021248&srcday=2005/12/02&search=no