burn a bootable (live) USB drive on Mac OS X

เบิร์นแผ่นติดตั้งอูบุนตูลงไดรฟ์ยูเอสบี ให้บูตจากยูเอสบีได้ ด้วยแมค

ผมไม่ประสบความสำเร็จในการใช้ Disk Utility (GUI) ของ Mac OS X ในการ burn bootable USB สำหรับติดตั้ง Ubuntu (เท่าที่ค้นดูในเน็ต ก็ไม่ค่อยมีใครประสบความสำเร็จ ไม่รู้ทำไม)

ถ้าอยู่บน Windows หรือ Linux จะมีโปรแกรมสุดง่าย ชื่อ UNetbootin ให้ใช้ .. แต่บน Mac มันไม่มี

เลยใช้ diskutil + dd ทางคอมมานด์ไลน์ละกัน
วิธีทั้งหมดดูได้จาก 4 ways to create bootable Live USB (Windows, Linux, Mac OS X)

  1. เตรียมแฟ้มอิมเมจมาก่อน .iso หรือ .img
  2. ที่ Terminal สั่ง
    diskutil list
    ดูว่าไดร์ฟยูเอสบีเรา mount เชื่อมอยู่ตรงไหน (เช่น /dev/disk1) – อาจจะดูจากชื่อหรือขนาด – ถ้าไม่ชัวร์ ก็ถอดยูเอสบีออกมาก่อน แล้ว diskutil list ดูทีนึง แล้วเสียบ USB เข้าไป แล้ว diskutil list ดูอีกที ดูว่ามันมีอะไรเพิ่มมา
  3. diskutil unmountDisk /dev/diskN
    (N ตัวสุดท้ายนี่ แล้วแต่ว่าไดร์ฟเราอยู่ที่ไหน)
  4. sudo dd if=/path/to/image.iso of=/dev/diskN bs=1m
    (if= คือแฟ้มอิมเมจ of= คือไดร์ฟยูเอสบี)
  5. diskutil eject /dev/diskN
    แล้วก็ถอดไดร์ฟยูเอสบีออกได้ – เสร็จ

change JRE/JDK default version in Mac OS X to Java SE 6 (1.6)

(Update 2009.05.16: add JAVA_JVM_VERSION setting)

To build Nutch 1.0, you need JDK 1.6. Unless you’ll got [javac] class file has wrong version 50.0, should be 49.0 error message.

For a system that has more than one version of JDK installed.
It is possible to change to a desired version only at the time you need it (look for j16 script in this thread). I found myself more convenient with just changed the default version.

เปลี่ยนรุ่นปริยายของ Java Runtime และ JDK ใน Mac OS X ให้เป็น Java SE 6 (1.6)

  1. Install Java SE 6 first. ก่อนอื่น ถ้ายังไม่มี Java SE 6 ในเครื่อง ก็ให้ติดตั้งก่อน.
    โดย Java SE 6 จะอยู่ใน Java for Mac OS X 10.5 Update 2, ดาวน์โหลดได้ที่เว็บไซต์ developer.apple.com/java.
    หรือจะปรับรุ่นผ่าน Software Update ก็ได้.
  2. Run Java Preferences app to set the default version. หลังจากติดตั้งเรียบร้อยแล้ว ก็เรียกโปรแกรม Java Preferences ขึ้นมา (อยู่ใน /Applications/Utilities/Java/ หรือพิมพ์ชื่อลง spotlight เลยก็ได้) เพื่อเลือกว่าจะใช้รุ่นไหนก่อนหลัง. ใช้วิธี ลาก วาง. เสร็จแล้วก็ออกจากโปรแกรม.
  3. Point CurrentJDK dynamic link to 1.6. ไปตั้ง dynamic link ของไดเรกทอรี CurrentJDK ให้ชี้ไปหารุ่นที่ต้องการด้วย. เช่น ถ้าอยากให้ 1.6 เป็นรุ่นปริยาย ก็ทำแบบนี้ :
    cd /System/Library/Frameworks/JavaVM.framework/Versions
    sudo rm CurrentJDK
    sudo ln -s 1.6 CurrentJDK
  4. Set JAVA_JVM_VERSION environment variable. ใน ~/.profile ตั้งค่าตัวแปรสภาพแวดล้อม JAVA_JVM_VERSION เป็นรุ่นที่ต้องการ โดยเพิ่มบรรทัดนี้เข้าไป :
    export JAVA_JVM_VERSION=1.6
  5. [optional ไม่ทำก็ได้] Set JAVA_HOME environment variable. ใน ~/.profile อาจจะตั้งค่าตัวแปรสภาพแวดล้อม JAVA_HOME ไว้ด้วย เพิ่มบรรทัดนี้เข้าไป :
    export JAVA_HOME=/Library/Java/Home
  6. [optional แล้วแต่] Set Applet Preferences. ถ้าอยากแก้อะไรกุ๊ก ๆ กิ๊ก ๆ เกี่ยวกับการรันแอปเพล็ต ก็เข้าไปแก้ได้ที่แฟ้ม ~/Library/Caches/Java/deployment.properties. ดูวิธีที่ Java for Mac OS X 10.5 Update 2: Setting Java Applet preferences. เช่น อาจแก้ให้ใช้ font-smoothing/anti-alias กับทุกแอปเพล็ตเลย ก็เพิ่มบรรทัดนี้เข้าไป :
    javaplugin.smoothText=true

เสร็จแว้ว

แถม : สำหรับคนที่ใช้ MacPorts, Porticus เป็น GUI ที่สะดวกดี. (ประมาณ apt กับ Synaptic Package Manager, แต่ Porticus โง่กว่านิดนึง)

technorati tags: 

modifying setup.py for libthai Python binding in MacPorts environment

(ปรับปรุง 2009.04.21 พบท่าง่ายกว่าเดิม ดูด้านล่าง)

เอา libthai Python binding ที่วีร์ทำเอาไว้มาใช้บน Mac OS X + MacPorts ต้องดัดแปลง setup script นิดนึง

เนื่องจากผมติดตั้ง libthai ผ่านทาง MacPorts (ด้วยคำสั่ง sudo port install libthai) ดังนั้นแฟ้มไลบรารี (libthai.a) กับแฟ้ม include (*.h) ทั้งหลาย จึงไม่ได้อยู่ในตำแหน่งปกติที่ apple-gcc จะวิ่งไปหา (ผมใช้ i686-apple-darwin9-gcc-4.0.1 ลองใช้ gcc-4.2, gcc-mp-4.4 ที่อยู่ในเครื่องแล้ว มันบอกไม่รู้จัก flag โน้น flag นี้ ผมก็เซ็ตไม่เป็นด้วย เลยใช้ gcc ตัวที่เขาให้มาแต่เดิมนี่แหละ) จึงจำเป็นต้องแก้ไข setup.py นิดหน่อย เพื่อบอกตำแหน่งของ include_dirs และ library_dirs ใหม่ ตามนี้ :


from distutils.core import setup, Extension

setup(name="libthai", version="0.0.1",
      ext_modules=[ 
        Extension('libthai', 
                  include_dirs = ['/opt/local/include'],
                  libraries = ['thai'],
                  library_dirs = ['/opt/local/lib'],
                  sources = ['libthai.c']
)])

ก็จะสามารถ build และ install ได้ครับ – ของใครอยู่ที่อื่น ก็แก้ไปตามนั้นครับ –
ผมดูตัวอย่างจากเอกสารหน้านี้ : 3. Building C and C++ Extensions with distutils

หมายเหตุ: libthai ที่ใช้นี้ยังเป็นรุ่น 0.1.9 อยู่ ตอนนี้รุ่นล่าสุดคือ 0.1.11 ออกมาไล่ ๆ กับ libdatrie และ swath ตัวใหม่ ติดตามข่าวได้ที่ linux.thai.net / ขอบคุณคุณวีร์ พี่เทพ และทุกท่าน


อัปเดต 2009.04.21: เพิ่งเจอท่าที่ง่ายกว่า ไม่ต้องแก้ setup.py คือเรากำหนดไดเรกทอรีได้ที่บรรทัดคำสั่งเลย ตอน build จากนั้นค่อยสั่ง install อีกที เช่น :


$ sudo python setup.py build_ext --include-dirs=/opt/local/include --library-dirs=/opt/local/lib
$ sudo python setup.py install

หรือจะกำหนดไว้ในแฟ้ม setup.cfg ก็ได้ เผื่อใช้หลายรอบ :


[build_ext]
include-dirs=/opt/local/include
library-dirs=/opt/local/lib

ทั้งหมดนี้ ดูตามเอกสาร 3. Writing the Setup Configuration File

ก่อน build อย่าลืมเปลี่ยน gcc ให้เป็นรุ่นที่เหมาะสม=ใช้แล้วคอมไพล์ผ่าน เช่นกรณีนี้ ผมต้องใช้ gcc 4.0 ก็ให้เลือกด้วย gcc_select (หรือ ln symbolic link เอาเองก็ได้)

$ sudo gcc_select gcc40

ถ้าอยากรู้ว่ามีอะไรให้เลือกบ้าง สั่ง gcc_select -l (ไม่ต้องตกใจ ถ้ามันแสดงน้อยกว่าที่เรามี gcc_select มันแสดงเฉพาะตัวที่มันหาเจอเท่านั้น ก็คือที่มี symbolic link อยู่ในไดเรกทอรีเดียวกับตัว gcc_select มันเอง … กรณีนั้น ก็ แหะ ๆ ใช้ ln ไปตามเดิมครับ – -“)

เช่นเดียวกัน ก่อน install ก็อย่าลืมเปลี่ยน Python ให้เป็นรุ่นที่เหมาะสม=รุ่นที่เราอยากจะติดตั้งตัว extension นี้เข้าไป กรณีผม ผมอยากติดตั้งลงไปใช้กับ Python 2.5 ก็คล้าย ๆ เดิม เลือกด้วย python_select (หรือ ln symbolic link เอาเองก็ได้ เช่นกัน)

$ sudo python_select python25-apple

ป.ล. อะไรคือ mp-gcc ?

technorati tags:
,
,

Open source Java port for Mac OS X

Open Source Java 6 port สำหรับ Mac OS X มาแล้ว (รุ่น Developer Preview Release 2) ใช้ได้ทั้งบน Mac OS X 10.4 และ 10.5 ทั้ง 32-bit และ 64-bit

Java 6 port สำหรับ Mac OS X ตัวนี้ ไม่ได้มาจาก Apple แต่มาจากนักพัฒนาอิสระชื่อ Landon Fuller
โดยใช้โค้ดจาก BSD Java port (Mac OS X มีหลายส่วนที่พัฒนาจาก BSD) ซึ่งใช้สัญญาอนุญาต Java Research License (มาจากเจรจาระหว่างโครงการ FreeBSD และ Sun)

Landon มีแผนจะส่งโค้ดนี้เข้าโครงการ BSD Java port ต่อไป และโครงการ BSD Java port เองก็มีเป้าหมายที่จะรวมงานของตนเข้ากับโครงการ OpenJDK
(ซึ่งใช้สัญญาอนุญาต GPLv2+Classpath Exception)

ในเว็บไซต์ของ Landon Fuller มีโชว์ Puzzle Pirates ที่รันบน Java 6 port ตัวนี้ด้วย ผมชอบเกมนี้มาก เคยติดงอมแงมอยู่พักนึง
นอกจากนี้ก็มีภาพ Eclipse (ตัวอย่างของแอพพลิเคชั่น SWT) ที่ใช้ Carbon ด้วย

Charles Nutter นักพัฒนา JRuby ได้ทดสอบ Open Source Java 6 port ตัวนี้กับ JRuby
พบว่าในการทดสอบเลขคำนวณจำนวนเต็ม (fibonacci test)
JRuby trunk บน open source Java 6 port มีประสิทธิภาพดีกว่าบน Apple JDK 6 preview และตามหลัง Ruby 1.9 (native) ไม่ไกลนัก
และหากให้ JRuby trunk บน open source Java 6 port ทำงานในโหมด frameless execution แล้วมันจะมีประสิทธิภาพดีกว่า Ruby 1.9 อยู่เล็กน้อย

ส่วนในการทดสอบ MatrixBenchmark
JRuby บน open source Java 6 port ทำงานเร็วกว่า Ruby 1.9 อยู่ราว 25%

แบบนี้นักพัฒนา (จาวา) จำนวนหนึ่งอาจจะยังใช้ Mac OS X 10.4 ต่อไปได้อีกสักพักใหญ่ ๆ เลยล่ะ ไม่ต้องง้อ Apple แล้วเรื่อง JDK — เว้นว่าถ้าอยากจะเขียนโปรแกรมที่ใช้หน้าตาแบบ Cocao ด้วย Java อันนั้นก็อีกเรื่องนึง แต่ถ้าเป็นเรื่องที่ไม่เกี่ยวกับ UI ก็สบายแล้ว

(ตะกี้ได้กิน “ก๊อบ กอบ” ครั้งแรกในรอบหลายปี ได้รสชาติที่ต่างไปจากเลย์จริง ๆ เบื่อเลย์ ตอนแรกจะหยิบเทสโต แต่เหลือบไปเห็นก๊อบ กอบ ซะก่อน ได้เยอะกว่าด้วย มากกว่าตั้ง 10 กรัม :P)

[ ลิงก์ Landon Fuller | ผ่าน Slashdot ]

technorati tags: 

Good software by design

โปรแกรมที่ดีเริ่มที่การออกแบบ โดยคุณ apirak
เกี่ยวกับการออกแบบ UI ของโปรแกรม บางอย่างอาจจะเฉพาะเจาะจงสำหรับ Mac OS X (Aqua) ไปหน่อย แต่รวม ๆ แล้วใช้ได้โดยทั่วไปครับ

tags:
|
|
|
|
|

Monolingual Mac OS X

Remove unnecessary UI languages, input methods, and architectures (in Universal Binaries) from your Mac OS X
by Monolingual (GPL) / review.

Ran this on my friend’s machine, Mac OS X 10.3.9 with lots of Adobe/Macromedia apps, keeping only English, German, and Thai interfaces + architectues up to Power G4+ … instantly saved around 1.1 GB of disk space!

tags:



Java 5 on Mac OS X 10.3

มีทางที่จะใช้ Java 5 บน Mac OS X 10.3 (Panther) ได้ป่ะ ? .. เอาแบบไม่ต้องอัพเกรดเป็น Tiger อ่ะ

Is there any way round to use Java 5 on Mac OS X 10.3 (Panther) ?

coming Eclipse 3.2 and NetBeans 5.0, both require Java 5 .. hmm…

update:

A script to install Java 5 on Panther — Java5ForPanther_v2.sh — thx, Anonymous!
I used to tried this script once with Java 5 Release 1 on Mac OS X 10.3.9 on PPC,
not every Java programs work smoothly with it. But you can try your luck 😉

ทำได้! ดาวน์โหลดสคริปต์ที่ชื่อ Java5ForPanther_v2.sh มา เอาไว้สำหรับติดตั้ง Java SE 5 บน Mac OS X 10.3 (ตัว Java SE 5 ดาวน์โหลดได้จากเว็บแอปเปิล .. เวอร์ชั่นล่าสุดเมื่อ 17 ส.ค. 49 คือ release 4 PPC Intel)
เคยลองทีนึง ไม่เวิร์กกะทุกโปรแกรมนะ ระวัง ๆ ละกัน ลองเอง

Installing PHP on Mac OS X

Soooo easy, just only few clicks! You download a dmg file, open it, double-click an installer, and that’s it! The http://127.0.0.1/~yourname/ will be there ready for a PHP scripting!

Note: this is only for Mac OS X Client (the typical one you’ll found on desktops/notebooks), not for Mac OS X Server.

ใช้เวลาลง 2 นาที – มาม่ายังไม่ทันสุก ต้องไปกินไวไวควิกหรือคัพนู้ดเดิ้ลวันแทน