Skip to main content

ล้าง Extended Attribute ใน Mac OS X Leopard และ Snow Leopard

Submitted by ezybzy on

เมื่อเราใช้คำสั่ง ls -l ใน Mac OS X Leopard เราจะพบกับ permission bits ตามปกติ แต่เราอาจจะเจอสัญลักษณ์พิเศษด้านหลังคือ @ เช่น

-rw-r--r--@

(บิทแรกเป็นบอกชนิด ถ้าเป็น d คือ Directory, l คือ Symbolic link)

ทีนี้ปัญหากวนใจที่ผมพบเมื่อเปิดโปรแกรมบางตัวคือ เวลามันทำ Font index ภายในโปรแกรมมันเอง (มีซักกี่ตัวที่มีระบบจัดการฟอนต์เป็นพิเศษเพื่อตัวมันเองหนอ?) มันจะมีไดอะล็อกเด้งขึ้นมากวนใจผมว่า “โปรแกรม___จะทำการใช้งานฟอนต์___ซึ่งดาวน์โหลดมาจากอินเตอร์เน็ต อนุญาตให้โปรแกรม___ใช้งานฟอนต์ตัวนี้ไหม?” โอเคถ้าแค่ฟอนต์ตัวเดียวก็คงไม่มีปัญหาอะไร แต่ถ้ามันเด้งแบบนี้ซักร้อยทีล่ะ กด Allow กันมือหงิกเลย แถมถ้าต่างโปรแกรมมันก็จะถามคำถามนี้อีก โอ้ยใครจะไปกดไหว สาเหตุจริงๆ เกิดจากการที่ Mac OS X เริ่มจะฉลาดคือเริ่มหยั่งรู้ว่าไฟล์บางไฟล์ถูกดาวน์โหลดผ่านบราวเซอร์และทำการ Mark ค่าบางอย่างคือ com.apple.quarantine ไว้บนไฟล์นั้น เมื่อทำการเปิดไฟล์ดังกล่าวและทำการติดตั้งไฟล์เหล่านั้นลงในเครื่อง (เช่นลากโปรแกรมออกจาก Disk Image) ค่านี้ก็จะตามไปด้วยแล้วทำให้เกิดคำถามในครั้งแรกที่เปิดเรียกใช้งานไฟล์/โปรแกรมที่ติดตั้งไปว่า “โปรแกรม___ถูกดาวน์โหลดจากอินเตอร์เน็ตด้วย___เมื่อ___ จะเปิดใช้งานไหม?” ซึ่งเมื่อกดยอมรับ โปรแกรมก็จะเปิดใช้งานได้และจะไม่ถามคำถามนี้อีกเลยจนกว่าจะถูกติดตั้งเวอร์ชั่นใหม่ทับด้วยวิธีเดิม

วิธีแก้ใช้คำสั่ง xattr ตามด้วยพารามิเตอร์ -d com.apple.quarantine ตามด้วยชื่อไฟล์ที่ต้องการลบค่านี้ออก อาจจะเพิ่ม -R ไว้หลัง -d เพื่อจะ recursive เข้าไปในไดเรคตอรี่ที่ต้องการลบค่าด้วย

ไม่รู้ชอบดีไหม?

Submitted by ezybzy on

เห็นคนในจินตนาการบางคนชอบกฎหมายเยอรมัน แต่ที่นี่เว็บไหนที่ไม่สมควรจะเข้าได้ เขาแปะหน้าขาวไปเลย ไอ้เราก็ไม่รู้หรอกว่าเว็บมันบังเอิญมีปัญหารึเปล่า พอวิ่งผ่าน proxy ถึงเพิ่งจะรู้นี่แหละว่ามันก็ยังเข้าได้ไม่มีปัญหา

ไม่รู้ว่าการกระทำอย่างนี้มันต่างจากดวงตาโซรอนแห่งประเทศสารขัณฑ์อย่างไร ไม่รู้ว่าว่าคนในจินตนาการบางคนจะเคยสำเหนียกข้อเท็จจริงแบบนี้บ้างไหม? รับข้อเท็จจริงนี้ได้บ้างไหม?

ปล. BitTorrent สำหรับการละเมิดลิขสิทธิ์ผิดกฎหมายประเทศนี้นะ แต่ก็ยังเห็นวัยรุ่นเขาหาทางโหลดกันได้ไม่แคร์สื่อ!

Tags

จบดราม่า!

Submitted by ezybzy on

นั่งฟังคำตัดสินคดีประวัติศาสตร์ของไทยอีกคดีหนึ่ง

ฟังตั้งแต่เจ็ดโมงครึ่งที่นี่ จบบ่ายสามกว่าๆ กี่ชั่วโมงเนี่ย ยาวใช้ได้ (ไม่ได้ฟังตลอดนะ เพราะมีต้องเดินทาง, ทานข้าวด้วย)

ฟังจบก็ไปสำรวจความเห็น บางคนก็ยังดราม่าได้เหมือนเดิม บางคนในอุดมคติก็ยังอยู่ในอุดมคติได้เหมือนเดิม (ฮา)

กลับไปทำอะไรที่เราควรทำกันเถอะ นั่งเล่นนอนเล่นเยอะไปแล้ว!

Tags

ทำ Carrier Logo อย่างง่ายด้วย ImageMagick

Submitted by ezybzy on

ได้เขียนบทความส่งไปที่ Siampod เรื่องเกี่ยวกับ ipcc แต่ไม่ได้กล่าวถึงวิธีทำ Carrier logo เลยเอามาต่อที่นี่แล้วกันเพื่อไม่ให้ยืดยาวเกินไป

ด้วยระบบการแสดงผลบน iPhone ทาง Apple แบ่ง Carrier logo ออกเป็นสองชนิดคือ ชนิดสำหรับหน้าจอพื้นใส (เช่นใน Springboard มีชื่อไฟล์ Default_CARRIER_ชื่อเครือข่าย.png) และชนิดสำหรับหน้าจอพื้นทึบ (เช่นใน Settings มีชื่อไฟล์ FSO_CARRIER_ชื่อเครือข่าย.png) ซึ่งมีขนาดความสูง 20px และไม่ควรมีความกว้างเกิน 80px หากเกินกว่านั้นเข้าใจว่าระบบจะสามารถเลื่อนเป็น marquee ให้ได้เพียงหนึ่งครั้งก่อนที่จะค้างอยู่ที่ความกว้าง 80px

ถ้านิยมโลโก้รูปภาพ เราก็เพียงแค่เอาโลโก้ของค่ายต่างๆ มาจัดให้อยู่บนพื้นที่ขนาดนี้ แต่สำหรับคนที่อยากจะทำโลโก้ที่มีเป็นข้อความเหมือนกับ Apple จะทำอย่างไรดี?

ก่อนอื่นก็ทดลองก่อนว่าใช้ฟอนต์อะไรดีขนาดเท่าไรดีสีอะไรดี เราก็ได้ข้อสรุปมาว่า ใช้ Helvetica ความหนาเป็นปกติ ขนาด 14 point สีขาวและดำ (ขึ้นกับประเภทการแสดงผล) ขั้นต่อไปคือเอาชื่อของ Carrier ไปวางบนไฟล์ภาพ เอ๊ะใช้โปรแกรมอะไรดีนะ??? เอา Photoshop แล้วกัน แต่เอ๊ะเราจะใช้โปรแกรมราคาหลายหมื่นเพื่อแก้รูปขนาดแค่นี้จริงหรือ? แล้วเราจะเล็งตำแหน่งการวางชื่อ Carrier ได้ทุกครั้งจริงเหรอ? แล้วถ้าเราต้องทำไฟล์รูปสำหรับหลายร้อย Carrier แบบ Apple ทาง Apple จะให้นักออกแบบมาเปิด Photoshop แก้ขนาดนี้เชียวหรือ???

ใช่ครับ Apple ก็คงไม่ได้ทำอย่างนั้นแน่ๆ ทุกครั้งที่มีการสร้าง ipcc ไฟล์พวกนี้ก็จะถูกสร้างขึ้นมาพร้อมๆ กันก่อนจะถูกจับรวมเป็นไฟล์ ipcc ให้เราใช้งานได้ง่ายๆ ผมไม่ทราบว่า Apple จะใช้ Tool ตัวไหนในการสร้างไฟล์รูปเหล่านี้ แต่ตัวที่ใช้งานง่ายๆ และพอจะเป็นไปได้ที่ Apple จะเลือกใช้ น่าจะเป็น ImageMagick ซึ่งเป็น Opensource และมีการผลิตขึ้นมาให้ใช้งานได้หลากหลาย Platform (ซึ่งรวมถึง Mac OS X)

จริงๆ ความสามารถหลักของโปรแกรมนี้คือการแต่งภาพครับ ใส่พวก effect ต่างๆ กับรูปภาพของเรา แปลงไฟล์ภาพได้ รวมถึงสามารถสร้างรูปภาพที่เป็นข้อความได้ ที่สำคัญคือใช้งานง่ายเพียงสั่งผ่าน Command line เท่านั้น ซึ่งจากคุณสมบัตินี้ก็ดูจะเป็นเรื่องที่เข้าท่าที่ทาง Apple จะเลือกใช้โปรแกรมนี้

ตัวที่ผมใช้งาน ผมใช้ตัวที่ถูกติดตั้งมาพร้อมกับ TeXLive 2009 แหล่งอื่นๆ นอกจากนี้เช่น Fink หรือ Macports หรือจากตัวเว็บของโครงการนี้เอง แต่ปัญหาที่พบคือ ผมพบ Warning ที่ไม่แน่ใจว่าจะแก้ไขมันอย่างไร ซึ่งค่อนข้างทำให้รำคาญพอสมควรว่าตกลงเราจะได้ไฟล์ออกมาไหมเนี่ย แต่สุดท้ายเพียงเพิ่ม Arugument ชื่อ quiet เข้าไปก็ทำให้ข้อความเตือนเหล่านั้นหายไป รวมถึงผมไม่สามารถใช้ฟอนต์ Helvetica ได้ทันทีจากฟอนต์ของระบบเนื่องจากยังไม่มีการ Mapping ให้ ทำให้ต้องสกัดเอาฟอนต์ตัวนี้ออกมาจาก iPhone OS อีกที

สำหรับรูปแบบการใช้งานคำสั่งผมจะไม่อธิบาย (ให้ลองอ่านจาก Tutorial ในเว็บได้เลย) แต่มาดูคำสั่งที่ผมใช้เลยแล้วกัน

convert -quiet -size x20 -background transparent -fill black -font Helvetica.ttf -pointsize 14 -gravity center \
    label:'CarrierName' Default_CARRIER_CarrierName.png
convert -quiet -size x20 -background transparent -fill white -font Helvetica.ttf -pointsize 14 -gravity center \
    label:'CarrierName' FSO_CARRIER_CarrierName.png

ตรงชื่อไฟล์ (Argument ท้ายสุดของคำสั่ง) หากต้องการใส่เครื่องหมายพิเศษหรือเว้นวรรคก็สามารถทำได้ตามรูปแบบที่ระบบปฏิบัติการเหมือน UNIX ทั้งหลายทำ (ใส่ \ ตามด้วยสิ่งที่ต้องการนั่นแหละ) คำสั่งแรกสร้างข้อความสีดำไว้ใช้สำหรับหน้าจอปกติที่แถบสถานะเป็นพื้นขาว ส่วนอีกคำสั่งสร้างข้อความสีขาวไว้ใช้สำหรับหน้าจอที่แถบสถานะเป็นสีใส ชื่อไฟล์ที่ตั้งเป็นแค่แนวทาง ไม่จำเป็นต้องตั้งตามแบบนี้ก็ได้ เพียงแต่ต้องไปแก้ไขเพิ่มเติมใน carrier.plist ให้ถูกต้องด้วย

ทีนี้ตอนลองก็พบว่าถ้าไม่ตั้ง gravity มันจะหลุดกรอบร่วงลงมาด้านล่างเลย ก็เลยตั้งค่านี้แล้วก็พบว่ามันออกมาพอดีเลย ยังมีจุดที่น่าสนใจอีกจุดคือ ในโลโก้ชื่อเครือข่ายจริงๆ จะมีเงาๆ บางอย่างด้วย (ทำเหมือนตัวเจาะหรือล้อมกรอบ) แต่ด้วยคำสั่งข้างต้นยังไม่สามารถทำให้เกิดข้อความในลักษณะดังกล่าวได้ พยายามปรับแต่งพอสมควร แต่ก็พบข้อผิดพลาดในคำสั่งใช้งาน เลยไม่นำมาเสนอในนี้

เพียงเท่านี้เราก็จะได้ Carrier logo ของค่ายโทรศัพท์มือถือที่เราต้องการแล้ว ในรูปแบบเดียวกันกับที่ Apple ใช้

Custom IPCC ทำพิษ

Submitted by ezybzy on

เมื่อวาน Apple ปล่อย iPhone OS 3.1.3 ออกมา ในฐานะไม่ได้ใช้เครื่อง Jailbreak และเป็นเครื่องปลดก็เลยอัพซะเลย ก็ดูไม่มีอะไรผิดปกตินะ

แต่มาทราบภายหลังว่า มันยอมให้กรอกค่า APN ของ Tethering เองแล้ว (เย้!) แต่พอมาลองดูในเครื่องของตัวเอง มันกลับไม่มีช่องให้กรอกค่าพวกนั้นเลย เอาหล่ะงานเข้าแล้ว สงสัยเพราะ IPCC ที่ทำใช้เองแน่เลย เอ้าแล้วทำอย่างไรดีล่ะ ถ้า Restore แล้วมันจะล้างค่า IPCC พวกนี้ทิ้งไปไหมนะ???

ก็เลยลอง Restore ก็พบว่าเครื่องกลับมาใช้ Unknown Carrier ดั่งเดิม แม้จะ Restore from Backup ข้อมูลกลับมาก็ตาม (ถือว่าโชคดีนะที่มันไม่ได้ถูก Backup ไปด้วย)

ตอนนี้ก็เหลือปัญหาว่า Custom IPCC ที่ไม่มี signature check เนี่ย จะสามารถทำ Internet Tethering ได้ไหม เพราะถ้ามองตามตรรกะแล้ว ที่มีตัวนี้ก็เพราะไม่อยากจะให้ไปแก้ค่า Setting ของ Carrier ที่ตั้งมา ถ้าเกิดการปลอมแปลงมันก็แค่ใช้การไม่ได้ คนที่ไม่ได้ใช้ Carrier ที่เป็นพันธมิตรก็ใช้ช่องทางปกติคือกรอกค่าทุกอย่างเองหมด

หลังจากลองแล้วพบว่าโกง Custom IPCC ให้มี Internet Tethering ไม่ได้แฮะ

UPDATE: มีคนโกง มีคนโกงด้วยการเอาคัดลอกแถบ MandatoryVerify จาก Unknown.bundle มาใส่แล้วก็ใช้ได้เลยแฮะ เดี๋ยวมีเวลาค่อยลองทำแล้วกันนะ

Tags

iPad Keyboard Dock

Submitted by ezybzy on

ดูรูป Accessories ของ iPad มีตัวที่ผมสนใจก็เจ้านี่แหละ Keyboard Dock

จริงๆ จะใช้ Apple Wireless Keyboard ที่มีก็ได้ แต่มาดูฟังก์ชั่นพิเศษบนแป้นพิมพ์นี้ดีกว่า

  • ปุ่ม Home แทนที่ตำแหน่ง Esc
  • ปุ่ม Spotlight
  • ปุ่มปรับแสงสว่างขยับให้ Spotlight หนึ่งตำแหน่ง
  • ปุ่มเปิดโปรแกรมแสดงภาพ (แสดงเป็นกรอบรูปดิจิตอล)
  • ปุ่มแสดง/ซ่อนคีย์บอร์ดบนหน้าจอ สำหรับโปรแกรมที่ต้องการแป้นพิมพ์แบบพิเศษ เช่น แป้นตัวเลขของ Number
  • เว้นไว้หนึ่งตำแหน่ง ที่เหลือเป็นปุ่มสำหรับ iTunes และปุ่มปรับเสียง (มี Mute ด้วยแฮะ)
  • ปุ่ม Lock เครื่อง

ไม่แน่ใจว่าจะ Map กับปุ่มบน Apple Wireless Keyboard ไหม ถ้าสามารถทำได้เหมือนกันก็ดีนะ

ปล. ปุ่มบนแป้นพิมพ์รุ่นนี้มีน้อยกว่าแป้นพิมพ์ปกติ 1 ปุ่มนะ นึกถึงปุ่มของ iBook เลยแฮะ

Tags