[ANDROID] – Error generating final archive: Debug certificate expired
วันนี้ลอง Hello Droid ซักหน่อย ด้วย MODODEV Studio for Android เขียนเสร็จ Build ไม่ผ่าน error ตามนี้
Error generating final archive: Debug certificate expired on dd/MM/yyyy
อะไรของมัน
หาวิธีแก้ไปมาใน google ก็ได้ solution ดังนี้
- ปิด IDE ให้หมดก่อน
- เข้าไปที่ %USER_HOME%\.android
- ลบไฟล์ debug.keystore ทิ้งไปซะ
- สร้างไฟล์ debug.keystore ขึ้นมาใหม่ ด้วยคำสั่ง
%JAVA_HOME%\bin\keytool -genkey -keypass android -keystore debug.keystore -alias androiddebugkey -storepass android -validity 100000 -dname "CN=Android Debug,O=Android,C=US"
สังเกตุตรง -validity ตอนแรกผมเซ็ตค่าเป็น 1000 ก็ยังไม่ผ่าน error เหมือนเดิม expire ปี 2499 ผมเลยใส่เป็น 100000 ไปซะเลย ผ่าน!!! ไม่รู้ค่านี้มัน expire ปีไหน - สุดท้าย เปิด IDE ตัวเก่งขึ้นมา clean & build ทาดา...
เอวัง
[WMP12] ทำไมมันฟังเพลงผ่านเน็ตไม่ได้ฟ่ะ
ไม่ได้จดบันทึกซะตั้งนาน เพราะ ขี้เกียจ เนื่องจากบันทึกที่ตั้งใจจะจดแต่ล่ะอันนั้น ช่างยาวและรูปเยอะเหลือเกิน วันนี้มีเรื่องสั้นๆ เข้ามา ก็เลย เอาซะหน่อย
สองสามวันก่อน ไม่รู้เกิดอะไรขึ้นกับ Windows Media Player 12 บน Windows 7 ที่ใช้งานอยู่ เพราะเปิดวิทยุ online ไม่ได้เลยซักสถานีเดียว กดไปแล้วมันก็จะขึ้น error แบบนี้
Windows Media Player cannot play the file because the specified protocol is not supported. If you typed a URL in the Open URL dialog box, try using a different transport protocol (for example, "http:" or "rtsp:").
หรือ แบบรูปนี้

ค้น google อยู่หลายวัน เพราะค้นไม่ถูกจุด แต่วันนี้ไม่รู้เป็นอะไร ดันเกาไปตรงจุดพอดี ก็ได้วิธีแก้ดังนี้
ปิด Windows Media Player จากนั้นเปิดไปที่
C:\Users\magicbank\AppData\Local\Microsoft\Windows Media
ในนั้นจะเห็น folder 12.0 อยู่อันหนึ่ง ถ้ามั่นใจในฝีมือก็ลบทิ้งไปเลย แต่ถ้าไม่ก็ rename ไปก่อนน่ะจ๊ะ เสร็จแล้วก็เปิด Windows Media Player ขึ้นมา มันจะสร้าง folder 12.0 ขึ้นมาใหม่ ให้ลองเปิดวิทยุ online ดู มันจะต้องกลับมาเล่นได้ แต่ถ้ายังเล่นไม่ได้ก็ ก็... ลบแล้วลงใหม่ดีกว่าน่ะเธอว์
[JAVA] Could Not Start Tomcat Service on Windows Server 2003
เมื่อต้นเดือนตุลาคม ได้มีโอกาศสังคยานาเครื่องที่ทำเป็น web server ใหม่ โดยเปลี่ยนจาก Debian เป็น Windows Server 2003 R2 ก็เลยถือโอกาศ ลง JAVA, OracleXE และ Tomcat เอาไว้ทำเป็น Project Demo Server ซะเลย แต่บุญไม่ถึง มีเจ้ากรรมนายเวรอันใดมาขวางกั้นก็ไม่ทราบ ทำให้ Apache Tomcat ที่ลงไปนั้น Start Service ไม่ได้ซะงั้น นั้งหาวิธีอยู่พักใหญ่ว่าองค์อันใดลงสถิต ก็เลยฉุดคิดได้ว่า ทำไม ตรูไม่เข้าไปดูใน log ฟ่ะ คิดได้ดังนั้น เปิดเข้าไป มี error ตามนี้
[2009-10-06 13:17:29] [info] Procrun (2.0.4.0) started [2009-10-06 13:17:29] [info] Running Service... [2009-10-06 13:17:29] [info] Starting service... [2009-10-06 13:17:29] [174 javajni.c] [error] The specified module could not be found. [2009-10-06 13:17:29] [994 prunsrv.c] [error] Failed creating java C:\Program Files\Java\jre6\bin\client\jvm.dll [2009-10-06 13:17:29] [1269 prunsrv.c] [error] ServiceStart returned 1 [2009-10-06 13:17:29] [info] Run service finished. [2009-10-06 13:17:29] [info] Procrun finished.
วรนุชอะไรของมันฟ่ะเนี้ย
Google โดยพลัน ได้คำตอบมาว่า ตัว jvm.dll มันหาไฟล์ msvcr71.dll ไม่เจอ เพราะ Windows Server 2003 R2 มันไม่มีไฟล์นี้มาให้ใน Windows\System32 (ปกติ มันจะมีให้หรือเปล่าหว่า... ช่างแม่)
ต้องหา download มาลงสิครับงานนี้ คุ้ย Google อีกครั้งเป็นการใหญ่ ได้แหล่งวัตถุดิบมาเป็นโหล เลือกผู้เข้ารอบมา 1 อัน ระหว่างรอมัน download ด้วย speed เท่ากับทากเดินอยู่นั้น ก็มีพรายมากระซิบที่ข้างหูว่า มันน่าจะมีใน %JAVA_HOME% น่ะ ด้วยความสงสัย เปิดเข้าไปดูใน %JAVA_HOME\bin% อ้าว ไอ้ควาย มีอยู่นี่ก็ไม่บอก หลอกให้กรุ download อยู่ได้ ไม่รอช้า aboard download task ทันใด แล้ว copy ไฟล์จาก %JAVA_HOME\bin\msvcr71.dll% ไปไว้ที่ Windows\System32\msvcr71.dll จากนั้นก็ลอง start tomcat service นั้งลุ้นอยู่ 1 วินาที service started โอว์มายก้อด บทมันจะง่ายก็ง่ายเหลือเชื่อ
จบไปอีก 1 กรรม
[JAVA] Java 6 Update 17
ออกบ่อยมาก update environment กันแทบไม่ทันเลยทีเดียว
JDK แก้ Bug 3 ตัว
- Issue 6829112: An unexpected file folder appears in the JavaFX installer.
- Issue 6829015: An error occurs when you cancel the installation.
- Issue 6828488: The JDK and JavaFX installers open at the same time.
@kiattikhun บอกว่า ไม่น่าสนใจ
JRE น่า update เป็นอย่างยิ่ง
- 2d
- awt
- lang
- sound
- swing
- i18n
- imageIO
- install
- deployment
- system
- runtime
- logging
- parse
[TIPS] Could Not Delete Zombie File In Windows 7
วันก่อน โหลดไฟล์มาจาก Gmail แล้วมันเกิดผีเข้าอะไรก็ไม่รู้ ทำให้ไฟล์เสีย มองเห็นไฟล์ใน Explorer มันมีตัวตนขนาด 0 byte แต่ครั้นจะลบมัน มันดันลบไม่ได้ ขึ้น error ประมาณว่า "File no longer located in < ???> Verify the the item location and try again." งานเข้าแล้วไง ทำไงดี

ปัญหานี้ เดาว่า คงเป็นเพราะมี error ตอนบันทึกข้อมูล ทำให้ Header ของไฟล์ ลงไปอยู่ใน Location Table ของ HDD แล้ว แต่ตัว Data ดันไม่มีการบันทึก หรือบันทึกไม่ตรงกับ Sector ที่ระบุไว้ใน Header เลยทำให้หาข้อมูลไม่เจอ
นั้งงมหอยหาข้อมูลแบบไม่จริงจัง 2 อาทิตย์ แล้วมาหาแบบจริงจังอีก 10 นาที เจอวิธีแก้ เข้า command line ก่อนเลย
cd PATH/TO/PROBLEM dir /a /x /p del XXX~1.XXX
พูดง่ายๆ สั่งลบไฟล์โดยระบุชื่อไฟล์แบบ 8.3 file name โดยชือไฟล์แบบ 8.3 นั้น ก็ดูจากคำสั่ง dir ที่ให้พิมพ์ไปนั้นล่ะ
จบไปอีก 1 งาน
[DESIGN] 10 Useful Usability Findings and Guidelines
แปลมาจาก ตรงนี้ ผ่านทางความขี้เกียจของคุณ Mk ตรงนี้
10 เรื่องควรรู้ ในการออกแบบ website ที่ผ่านการศึกษามาแล้ว
1. label ของ field ควรอยู่ด้านบนของ field นั้นๆ เป็นเรื่องจริงที่คนส่วนใหญ่ จะมองจากด้านบนลงด้านล่าง และจากประสพการณ์ส่วนตัว ผู้ใช้งานชอบที่จะ input ข้อมูลลง field จากด้านบนลงด้านล่างด้วย แม้ว่า field นั้นจะมี 2 คอลัมเรียงกันก็ตาม

ภาพจาก wordpress.com
2. คนส่วนใหญ่ จะ focus ไปที่ภาพหน้าคนก่อนเสมอ จากนั้นจึง focus ไปที่จุดที่ภาพนั้นมองอยู่ ดังนั้น ถ้าเราต้องการให้อะไรมันเด่นขึ้นมา ก็ควรจะมีรูปหน้าคนมองมันอยู่น่ะ

ภาพจาก usableworld.com.au
3. ไม่ว่าของที่เราต้องการนำเสนอนั้นจะดูธรรมดาสักแค่ไหน ถ้าเราออกแบบหน้าตาการนำเสนอให้ดี ของสิ่งนั้นก็จะดูดีไปเอง

ภาพจาก feedafever
4. คนส่วนใหญ่ ไม่ชอบเลื่อนหน้าจอดูเนื้อหาส่วนที่ถูกซ่อนอยู่ ดังนั้น ถ้าต้องการจะ present อะไร ก็จงจับให้มันอยู่ในส่วนหัวของหน้าจอแรกซะ

ภาพจาก basecamphq
5. สีฟ้า เป็นสีที่ดีที่สุดที่จะใช้เป็นสีของ link เพราะมันเป็นค่ามาตรฐานมาตั้งแต่ browser ยุคแรก และคนส่วนใหญ่รู้จักดี หรือถ้าต้องการความแตกต่าง สีของ link ก็ควรเป็นสีที่ตัดกับสีของพื้นหลัง และไม่อยู่ในเฉดสีเดียวกับข้อความทั่วไป

ภาพจาก google
6. ความกว้างของช่องค้นหาที่ดีควรกว้าง 27 ตัวอักษร เพราะมีการศึกษามาแล้วว่า ตัวอักษร 27 ตัว เป็นจำนวนที่เหมาะสมที่สุด และสามารถค้นหาสิ่งที่ต้องการได้ถึง 90% แต่จงจำไว้ว่า ควรใช้ em ในการกำหนดความกว้างแทน pixel เพราะ 1 em เท่ากับความกว้างของตัวอักษร "M" 1 ตัว
7. การกำหนดให้มีพื้นที่ว่างระหว่าง content ต่างๆ จะช่วยเพิ่มความเข้าใจให้ผู้ใช้งานได้ว่า อะไร อยู่ในกลุ่มไหน ทำให้เราไม่ต้องใช้เส้นแบ่งให้ลายตาเล่นกันอีกเลย

ภาพจาก thenetsetter
8. ไม่จำเป็นต้องใช้คนเป็นร้อยเป็นพัน ในการทดสอบการใช้งานเลย คนแค่ไม่กี่คนก็ค้นพบปัญหาได้เกือบทั้งหมดแล้ว

ภาพจาก useit
9. หน้าแสดงข้อมูลของสินค้าที่ละเอียดครบถ้วน จะช่วยเพิ่มยอดขายของเราให้ได้มากมาย เคยไหมที่ต้องการซื้ออะไรซักอย่าง แต่พอเข้าไปดูที่ website ผู้ผลิตแล้ว กลับไม่มีข้อมูลอะไรที่มีประโยชน์ มีแค่รูป 2 รูป กับคำอธิบาย 2 บรรทัด มันทำให้เราตัดสินใจได้ง่ายมากว่า "กุไม่ซื้อก็ได้ว่ะ"

ภาพจาก apple
10. ผู้ใช้ส่วนใหญ่ "ตาบอด" กับโฆษณา ต้องใช้คำว่าตาบอด เพราะเมื่อใดก็ตามที่ผู้ใช้มองเห็นอะไรที่ดูเหมือนโฆษณา ผู้ใช้จะไม่สนใจมันในทันที แม้ว่าสิ่งนั้นจะไม่ใช่โฆษณาเลยก็ตาม ดังนั้น จงระวังอย่าทำอะไรให้มันดูเหมือนโฆษณา
แถมท้าย ข้อมูลการออกแบบจากกรณีศึกษา ที่คนส่วนใหญ่ใช้กัน แยกตามประเภท
typography design
- ความสูงของบรรทัด หาร ความสูงของตัวอักษร จะมีค่าประมาณ 1.5
- ความยาวของบรรทัด หาร ความสูงของบรรทัด จะมีค่าประมาณ 28
- ความสูงของช่องว่างระหว่างย่อหน้า หาร ความสูงของบรรทัด จะมีค่าประมาณ 0.8
- จำนวนตัวอักษรใน 1 บรรทัด จะมีค่าประมาณ 80 ตัวอักษร
blog design
- โครงสร้างส่วนใหญ่ เป็นแบบ fix width และจัดตำแหน่งแบบกึ่งกลาง โดยมีความกว้างประมาณ 975 พิกเซล
- หน้าแรกของ website จะแสดงเนื้อหาประมาณ 15 บทความ
- กว่าครึ่งของ layout ทั้งหมด ใช้ในการแสดงเนื้อหาหลัก
web form design
- ปุ่ม "ลงทะเบียน" ส่วนใหญ่ ใช้คำว่า "sign up" และติดอยู่บริเวณมุมขวาบน
- แบบฟอร์มลงทะเบียนมี layout แบบง่ายๆ เพื่อป้องกันความสับสนของผู้ใช้
- label ของ input field เป็นตัวหนา และ field มีการเรียงลำดับในแนวตั้งมากกว่าแนวนอน
- ค่านิยมของนักออกแบบส่วนใหญ่ มักจะออกแบบให้มี field แบบบังคับให้ใส่ข้อมูลอยู่ 2-3 field และแบบใส่ก็ได้ไม่ใส่ก็ได้อีก 2-3 field
- ส่วนใหญ่จะไม่มีการตรวจสอบความถูกต้องของ email แต่การตรวจสอบความถูกต้องของ password นั้นจะมีกันเกือบทั้งหมด
- ปุ่ม "submit" นั้น ส่วนใหญ่จะมีการจัดตำแหน่งแบบ ชิดซ้าย หรือไม่ก็ กึ่งกลาง
portfolio design
- layout ส่วนใหญ่ จะจัดตำแหน่งแบบกึ่งกลาง และมี navigation menu แนวนอนขนาดใหญ่
- เกือบครึ่งใช้ website แบบ dynamic page ที่เหลือเป็น static page
- มากกว่าครึ่ง มีหน้าแสดงรายล่ะเอียดของแต่ล่ะ project ซึ่งรวมถึง กรณีศึกษา, ความเห็นจากผู้ใช้, รูปตัวอย่าง และแบบร่าง
- หน้าข้อมูลสำหรับการติดต่อมักจะมี แผนที่, หมายเลขโทรศัพท์, email, ที่อยู่, นามบัตร และ contact form
[SVN] svnsync
บันทึกการ synchronize ระหว่า svn server สองตัว
พอดี วันนี้ตัดสินใจแล้วว่า เอา code project ที่เก็บไว้บน host ส่วนตัว ไปเก็บไว้บน googlecode.com จะดีกว่า หลังจากที่เจอกับปัญหา host ล่มวันเว้นวันมา 2 อาทิตย์แล้ว ไว้ใจไม่ได้เลย ถึงจะถูกบังคับให้ opensource แต่ว่าอย่างน้อย ตัว host มันก็เข้าถึงได้ตลอดเวลาแน่นอน
อย่างแรกเลย ไปเปิด project ที่ googlecode ไว้ซะ จากนั้นก็สั่ง reset revision ให้เป็น revision 0 ไว้รอเลย แต่จำไว้ว่า การกระทำนี้ จะทำให้ข้อมูลทุกอย่าง revision ก่อนหน้า รวมทั้ง document ที่สร้างเอาไว้นั้น หายไปตลอดกาล
เสร็จจากข้างบนแล้ว ก็ remote เข้าไปยัง host ที่เก็บ project ตัวปัจจุบันไว้อยู่ แต่ถ้า project เก็บไว้ที่เครื่องนั้นอยู่แล้วก็เข้า command line ได้เลย
ตาม document ของ google ให้พิมพ์ตามนี้
$ svnsync init --username USERNAME https://PROJECTNAME.googlecode.com/svn file:///PATH/TO/LOCAL/REPOSITORY Copied properties for revision 0.</p> <p>$ svnsync sync --username USERNAME https://PROJECTNAME.googlecode.com/svn Committed revision 1. Copied properties for revision 1. Committed revision 2. Copied properties for revision 2. ...
จากนั้นก็รอจนกว่าจะครบทุก revision
แต่ ที่ทำนี่ 400 revision มันนานมาก...
[VMWare] Config Virtual Network
[color="#FF0000"]ฉบับร่าง ยังเขียนไม่เสร็จ[/color]
[img]http://note.elevenroom.com/wp-gallery/vmware/001.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/002.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/003.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/004.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/005.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/006.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/007.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/008.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/009.png[/img]
[img]http://note.elevenroom.com/wp-gallery/vmware/010.png[/img]
[NetBeans] Server Config for Tomcat
บันทึกย่อ - การเพิ่ม Tomcat ให้ netbeans
ตามสัญญาน่ะ อันที่จริง รูปมันก็ capture ไว้พร้อมกะตอนที่ทำ Installation Instruction นั้นแหละ เหอะๆ ทำไมไม่เขียนพร้อมกันไปเลยล่ะ -> ขี้เกียจไง ก่อนจะทำตามขั้นตอนนี้ ต้องลง Tomcat ให้เรียบร้อยก่อนน่ะ ไม่งั้นจะทำไปเพื่ออะไร
ขั้นแรก เปิด netbeans ขึ้นมาก่อน แล้วไปที่ Tools -> Servers [img]http://note.elevenroom.com/wp-gallery/netbeans/014.png[/img]
ถ้ายังไม่เคยเพิ่ม server อะไรเข้าไป จะเห็นเป็นหน้าว่างๆ อย่างนี้ ก็ให้กดปุ่ม Add Server ซะ [img]http://note.elevenroom.com/wp-gallery/netbeans/015.png[/img]
จะเห็นรายการ server มากมาย เลือกชนิด และ version ของ server ให้ตรงกับ server ที่จะเพิ่มเข้าไปด้วย อันนี้ สำคัญ เพราะ netbeans มันจะมี handle ที่ใช้ควบคุม server แต่ละตัวไม่เหมือนกัน จากตัวอย่าง เป็น Tomcat 6.0 ก็ต้องเลือก Tomcat 6.0 เมื่อเลือกได้แล้ว กด Next [img]http://note.elevenroom.com/wp-gallery/netbeans/016.png[/img]
จะได้หน้าตาแบบนี้ ให้ระบุ path ของ server ลงไปในช่อง Catalina Home หรือจะ Browse เอาก็ได้ โดยระบุไปที่ folder ของ tomcat ที่มี folder \bin, \conf, \lib และอื่นๆ อยู่ข้างใน จากนั้นก็ระบุ username และ password ของ admin ลงไปในช่อง Username และช่อง Password แล้วติ๊กถูกที่ Create user if it dose not exist ด้วย มันจะได้สร้างให้เรา ถ้าที่เราระบุไปมันไม่มีใน \conf\tomcat-users.xml ของ tomcat เสร็จแล้วกด Finish [img]http://note.elevenroom.com/wp-gallery/netbeans/017.png[/img]
เสร็จแล้ว กด Close ใช้ได้ทันที ไม่ต้อง restart netbeans [img]http://note.elevenroom.com/wp-gallery/netbeans/018.png[/img]
เอวัง
ปล. ถ้าไม่ขี้เกียจ จะบันทึกวิธีการลง Tomcat มาให้
[NETBEANS] Install Instruction
บันทึกย่อ - วิธีการลง NetBeans อย่างถูกวิธี
ไฟล์ที่ใช้ลง - netbeans-6.5-ml-java-windows.exe
ขนาด - 211 MB ใหญ่ฉิบหาย นับวันมันยิ่งใหญ่เข้าไปเรื่อยๆ ไม่รู้ว่า 5 ปีข้างหน้ามันจะมีขนาด 1 GB เลยหรือเปล่า
เมื่อเริ่มรันไฟล์ข้างบน จะได้ตามรูป ให้กดปุ่ม Customize เพื่อแก้ไขค่า

กด Customize แล้ว จะได้หน้าต่างตามรูปนี้ ติ๊กเครื่องหมายถูกในส่วนของ Runtimes ออกให้หมด ไม่ต้องการ รก หามาเพิ่มเองทีหลังได้

กด ok จากหน้าที่แล้วจะเจอหน้านี้ ก็ accept ไปซะ

กด Next ก็จะได้หน้าต่างนี้มา ให้ระบุ path ที่จะลง netbeans พร้อมกับระบุ java home ของ JDK ซึ่งถ้าลงแบบ windows setup มันจะมี default ขึ้นให้ แต่ถ้าลงแบบ zip package หรือ มี JDK หลายตัว ก็ให้ระบุ path ไปซะ

กด Next ได้หน้า summary กด Install

แล้ว ก็... รอ...

เสร็จแล้วจะขึ้นหน้า post install ติ๊กเครื่องหมายถูกออกให้หมด เพราะกุเลว จะไม่ทำอะไรให้ทั้งนั้น

จะเจอ short cut ที่ desktop รันมันขึ้นมา ก็จะเห็น loading screen รุ่นนี้มาโทนสีฟ้าแฮะ สีโปรด

เข้าโปรแกรมได้ครั้งแรก ยังตามมาหลอกหลอน ถามซ้ำอีก รำคาญ กด ไม่, ขอบคุณ ไปซะ

จะเจอหน้า welcome screen ขึ้นมาแสดงเป็น default ให้ติ๊กเครื่องหมายถูกที่ด้านล่างของหน้านี้ออกไปซะ เวลารัน netbeans คราวหน้า มันจะได้ไม่ขึ้นมาให้เป็นตัวถ่วง

ต่อไป ไปที่ Tools - Plugins

จะได้หน้าจอนี้มา ให้ไปที่แท็ป Settings ตรง Automatically Check for Updates ให้เลือกเป็น Never มันจะได้ไม่ตรวจสอบ update ให้เปลือง bandwidth และ cpu usage เวลารัน netbeans

จากนั้นไปที่แท็ป Updates ถ้าเน็ตเร็วพอ มันจะมี Updates ขึ้นมา แต่ถ้าเน็ตช้า ก็รอสักครู่ มันมีเรื่องให้ Updates แน่นอน เวลาลง netbeans ใหม่ๆ เมื่อรายการ Updates ขึ้นมาแล้วก็ให้กดปุ่ม Update ไป แล้วก็หาอะไรทำรอได้เลย ไฟล์ 10-20 เม็ก รอกันเป็นชาติ แต่ถ้าเน็ตดีๆ ก็อาจจะเร็วหน่อย

เมื่อ update process เสร็จเรียบร้อยแล้ว ก็ให้ปิด netbeans และเปิดมันขึ้นมาใหม่อีกครั้ง เพียงเท่านี้ netbeans ของแกก็พร้อมที่จะสร้างงานร้อยล้านแล้ว
