Sunday, February 27, 2005

[PSU] DNS of CSE Windows Lab

130.203.4.14
130.203.4.15

That's it.

[Tech] พิมพ์เอกสารออกมาเป็นไฟล์รูปภาพ

เรายังไม่เจอเครื่องมือในการทำงานนี้แบบฟรีๆสักอัน กล่าวคือวิธีเรายังต้องใช้ MS Office 2003 เวอร์ชัน Profession ในการพิมพ์เอกสารออกมาก่อน ซึ่งวิธีการก็สรุปได้ดังนี้
1. เวลาจะพิมพ์งานก็ให้เลือกเครื่องพิมพ์เป็น Microsoft Office Image Document Writer
2. ภาพที่ได้จะอยู่ในรูป mdi (Microsoft Document Image มั้ง) ซึ่งไม่มีใครเปิดได้นอกจากคนที่มีเครื่องมือตัวนั้น วิธีแก้ก็คือ ให้เราใช้โปรแกรมนั้นแหละ convert มันเป็น tif และการแปลงภาพนั้นจะต้องไปเซ็ตค่าเพิ่มเติมเพื่อให้รูปที่ได้มีความเข้ากันได้กับโปรแกรมอื่น (increase compatibility)
3. เมื่อได้ภาพมาแล้ว ก็ให้ใช้โปรแกรมพวก Gimp หรือไม่ก็ Macromedia Fireworks จัดการแปลงภาพ ในกรณีที่เราใช้โปรแกรม Fireworks นั้น ขอให้สังเกตด้วยว่าปรกติเราจะ export ภาพไปเป็นแบบอื่นด้วยคำสั่ง Export ... ไม่ได้นอกจากฟอร์แมตที่เป็นค่า default ที่ขึ้นมาให้ วิธีแก้ก็คือให้ใช้คำสั่ง Export Wizard แทน ซึ่งจะทำให้กำหนดรูปแบบได้หลากหลายขึ้น

เอ่อ ถ้าใครรู้โปรแกรมที่ทำให้พิมพ์งานออกมาเป็นไฟล์รูปภาพได้ช่วยบอกด้วยนะ (จะมีใครมาอ่ารบล็อกเรามั้ยเนี่ย) บางทีเราไม่ต้องการให้มันออกมาเป็น pdf น่ะ ต้องการได้ที่เป็นรูปเลย เอาที่เป็นโปรแกรมฟรีนะ

Thursday, February 24, 2005

[PSU] Reserved Time for Room 220

Monday 10.00-11.00
Tuesday 12.00-14.30
Wednesday 10.00-11.30
and 13.00-15.30
Thursday 10.00-14.30
Friday 10.00-11.00

[Tech] บทเรียนการเขียนโปรแกรมเมื่อวาน

1. To define a static array in C++, we must not make it too large, ie int[512*512], because the simple memory allocation cannot do that.

2. To work with matlab compiler, make sure that we include libraries that corresponding to our compiler version. Matlab prepares libraries for every famouse compilers and we need to recompile the old .m file as well.

3. Suffering from using C++ is common if we do not sacrifice some performance for flexibility and convenience by using STL. Study it and use it in regular basis. The loss of performance will not hurt you as much as the loss of time.

Wednesday, February 23, 2005

[Tech] Restore MS Windows Important Files

พอดีพบว่า Explorer ตัวเองมีปัญหาก็เลยจัดการหาวิธีบนอิตเตอร์เนตดูก็ไปพบที่ดูแล้วน่าจะเกี่ยวข้องก็คือ
http://www.windowsbbs.com/showthread.php?t=41007

และคำสั่งที่สำคัญก็คือ

sfc /scannow

แต่พอลองทำดูก็กลัวเหมือนกันว่ามันจะไปแก้ไฟล์ที่ได้มาจากการอัพเดตพวก service pack ไปแล้วทำให้เกิดเรื่องไม่ดีขึ้น ต้องลองใช้ต่อไป

Tuesday, February 22, 2005

[Tech] อีกวันกับ CVS

ก็ศึกษาต่อกันมาเรื่อยๆก็พบว่ามีฟีทเจอร์ที่น่่าสนใจอยู่นั่นก็คือ
1. Add Contents
2. Tagging
3. Braching
4. Merge from branches
5. Revision number control
6. Annotate

1. Add Contents
Starting from adding a directory to CVS, we can add all of its contents recursively to ourCVS repository buy using 'Add Contents' in Tortoise CVS interface.

2. Tagging
I guess this is for naming and clarification purpose only. The result, however, will appear in a revision graph and look really nice. One of the main use is to make a tag to several files at the same time. This can make a meaningful custom revision number. For example, if we have three files: file1, file2 and file3 and their revision number 1.11, 1.5 and 1.4 respectively and we want to make note that those three files with the revision numbers are in the same release or at the same milestone in our development, we can issue the same tagg to all the three files.

Note for TortoiseCVS: If we want to update by tag name reference, we sometimes need to update the tag lists before it's available in the GUI. To get the copy by another method such as graph or history, 'update list' is generally unnecessary.

3. Annotate
I am still unable to fully understand it, but this can show us history of each line!!! It displays developer's name whose contributes to each line and revision number that makes the latest change on the line.

4. Branching/Merging
This feature is so confusing. But the guideline of usage is that we can create a branch and then merge it back and commit. If we commit before merging, it will go to the main development line (line before we make a branch). I, however, cannot stop branching and merge everything back to the HEAD development line. In addition, the revision number counting is strange. It show four numbers, not three. Sth. must wrong.

Hey, after some study, I found that the number is correct. If we make a brach from revision 1.5, we will get a branch with revision number 1.5.2.1. The number is in this way because there is internal running number too (main version may be 1.5.1.1).

Another noteworthy stuff is that if we make a mistake about a file and cannot do anything useful with that, we can delete it and use cvs update in the directory to get the file back with fresh start. If the result from the update is not satisfactory, we may use 'update spacial' to specify a branch name for that file. BEWARE: If we use update special to a directory with 'clean copy' option, every file that is not related to the branch in update special command will be deleted.

Then, how to go back to the main development line? When we finish doing something in a branch, we want to go back and make a new revison in the main line. To go back, first make sure we commit any good change to the repository. Second, use 'update special' to get the main branch copy. Third, merge the branch and solve conflict if any. Then, we will see that the file is modified after the merge. If everything is okay, we can commit the change safely. Note that if we make a merge when we are on the branch, the later commit will appear on the branch, not on the main line. In other word, if we want to make new revision at any development line, use update special to get the line and issue commit when appropriate.

Sunday, February 20, 2005

[Tech] วันนี้กับ CVS (โปรแกรมนะ ไม่ใช่ร้านยา)

วันนี้ทดลองใช้ระบบกู้คืนข้อมูล ของ cvs ดูพบว่าทำได้ดีมาก เราสามารถที่จะเลือกกู้จากจุดใดก็ได้ที่เคย commit ไว้ ไม่จำเป็นต้องเป็นจุดล่าสุด ซึ่งทำได้ดังนี้
1. Right click at the file we want to restore, go to cvs menu and choose 'history'.
2. Dialog will pop up and we will see every revision we commited. Right click on a revision we prefer to get a pop up menu. Please read 3 before you move on.
3. There are 'Get this revision (sticky)' and 'Get clean copy of this revision (sticky)'. If we select the first option, we will get the mixture of our current uncommitted edition and the committed one (if no conflict involved). If we choose the second option, we can obtain the fresh start over (or fresh new version).

Explaination: The first option is designed for update/merge, not start over. For example, someone may check out the same file and commit new version. If we want to get the new version without manual copy-paste for update, we can try the first choice. Note that manual copy-paste may be required if there is conflict between committed and uncommitted one.

For second option, we can make a start over at our current option. In case somebody committed new version and we want to retrieve the new one, if we want to throw our uncomitted change away, choose the second option. That's why I said we can both restore or get new version.

Saturday, February 12, 2005

[Tech] Install Large External HD (200GB)

เขียนขึ้นมาเพราะอยากมีอะไรเขียนมั่งเท่านั้นเองฮะ

วันนี้ไอ้ฮาร์ดดิสก์กับ enclosure ที่สั่งซื้อไปจาก newegg.com มาใหม่ๆ เป็น Maxtor DimondMax ( MX 200GB 7200 8M ATA133 6B200P0 ) และ ENCLOSE ADI | 3.5 USB HD-360U RT

เพราะว่าเครื่องเป็น service pack 2 มั้งก็เลยไม่ต้องทำอะไรเพิ่มเลย เริ่มมาก็วิ่งไปที่ control panel -> admistrative tools -> computer management -> storage -> disk management
พอไปถึงก็จะตกใจว่า disk ไม่ได้ initialized แล้วก็ไม่รู้จะทำไงดี เพราะคลิกไปที่ properties ของพื้นที่ที่เป็น 'unallocated' ก็ทำอะไรไม่ได้

วิธีแก้ก็คือ ให้ไปคลิกไอคอนที่อยู่ข้างซ้ายของพื้นที่นั้นแล้วก็ init ซะ จากนั้นก็หมดปัญหาแล้ว ต้องทำที่เหลือได้แน่ๆ