โพสต์

กำลังแสดงโพสต์จาก ตุลาคม, 2008

BAD Application Design ตอน 1

รูปภาพ
ลองเขียน column แบบเป็น series ดูบ้าง เลียนแบบ "นั่งเทียน ของ punneng" สำหรับตอนแรกขอเริ่มจาก โปรแกรม "FileZilla" ก่อน เจ้าโปรแกรมนี้เอาไว้ช่วยในการย้ายไฟล์ระหว่างเครื่องผ่าน protocal FTP, SFTP, FTPS จะเรียกว่า "โปรแกรม FTP" ก็ได้ หน้าตาของโปรแกรมเป็นประมาณนี้ โปรแกรมนี้ออกแบบได้ดีในเรื่องของ Flow การทำงาน ผู้ใช้จะเริ่มจากบนสุดลงไปล่างสุด ไม่สับสนขึ้นๆ ลงๆ แบบหลายๆ โปรแกรม ไว้จะยกตัวอย่างในตอนถัดไป แต่สำหรับ FileZilla ต้องชมว่าทำได้ดี โปรแกรม เริ่มจาก (1) ผู้ใช้เลือก Server ที่ต้องการจะ upload หรือ download ไฟล์ ผลการเชื่อมต่อ จะอยู่ถัดลงมาให้เห็นทันที (2) หลังจากเชื่อมต่อได้ (3) โปรแกรมจะให้ผู้ใช้เลือก Folder ที่ต้องการ (4) โปรแกรมแสดง File และ Folder ที่อยู่ใน Folder ที่ผู้ใช้กำลังเลือกอยู่ เมื่อสั่ง copy ไฟล์เรียบร้อยแล้วถัดลงมา (5) โปรแกรมจะแสดงสถานะการโอนไฟล์ทันที ปัญหาของการออกแบบโปรแกรมนี้มีสองจุดใหญ่ๆ คือในขณะที่เรากำลังสนใจขั้นตอนที่ (1),(2) เนื้อที่ส่วน (3),(4),(5) จะกินหน้าจอของไปกว่าครึ่งให้เราเหลือที่ดู log ไฟล์ แค่นิดเดียว นอกจากนั้นย

ความสวยงาม ที่ Linux ไม่ให้ความสำคัญ

รูปภาพ
ผมยอมรับว่าการเก็บรายละเอียดเล็กๆ น้อยๆ เป็นเรื่องยากมากเมื่อไม่มีคนบังคับให้ทำ การทำด้วยใจก็มีขีดจำกัดในระดับหนึ่ง ยิ่งการรักษาให้ดีสม่ำเสมอยิ่งยากขึ้นไปอีก ดูอย่าง short cut bar ของ linux เป็นต้น ubuntu 7.04 ubuntu 8.04 ubuntu 8.10 ปัญหาที่เกิดขื้นคือการวาง icon บน bar มันแย่ลงเรื่อยๆ จากเดิมบน 7.04 icon ลอยอยู่ตรงกลางใน task bar แม้ว่าจะเยื้องขึ้นข้างบน แต่ก็ถือว่าอยู่ตรงกลาง แต่พอมาถึง 8.04 แทนที่จะจัดให้อยู่ตรงกลาง กลายเป็น icon ติดขอบข้างบน และเลวร้ายลงกว่าเดิมใน 8.10 icon อยู่ชิดกับขอบทั้งบนและล่าง ทำให้รู้สึกอึดอัดแทน icon firefox เป็นยิ่งนัก ผมคิดว่าปัญหาไม่ได้เป็นเรื่องทางเทคนิค หรือเรื่องการออกแบบ แต่เป็นเพราะไม่ได้มีการกำหนดเอาไว้ก่อน ทำให้การเก็บรายละเอียดทำได้ยากขึ้นคนที่ออกแบบมันต้องมีหลุดบ้างอยู่แล้ว ถ้าเราวางกรอบไว้แต่แรก ทุกคนจะสามารถช่วยกันตรวจสอบแก้ไขได้ ทำให้ทุกงานออกแบบไปในแนวเดียวกัน ผมลองเขียนดูว่า ถ้าเราต้องการกำหนด interface guide line ตรงส่วนนี้จะต้องกำหนดช่องไฟตรงไหนบ้าง A คือช่องไฟระหว่างชุดของ component เช่นระยะระหว่าง icon ubuntu กับขอบซ้าย หร

พัฒนา Cocoa Application ด้วย MacRuby

รูปภาพ
ทุกวันนี้เราใช้ภาษา Ruby สร้าง Mac Application ผ่าน "RubyCocoa" ได้อยู่แล้ว แต่วันนี้มีดีกว่า ถ้าย้อนไปที่ "RubyCocoa" หรือย้อนไปสมัย "JavaCocoa" การเชื่อมต่อภาษาทั้งสองเข้ากับ Objective-C (ภาษาหลักบน OS X) เป็นวิธีเดียวที่จะทำให้ภาษาอื่นๆ สามารถควบคุม Object ต่างๆ ที่สร้างขึ้นด้วยภาษา Objective-C ทุกครั้งที่มีการเรียก object ข้ามภาษา ทุก object จะถูกแปลงจากระบบหนึ่งไปอีกระบบเสมอ และเป็นเหตุให้โปรแกรมทำงานช้าถ้าต้องเชื่อมกันบ่อยๆ "MacRuby" เข้ามาแก้ปัญหาของ "RubyCocoa" โดย Apple พัฒนา Ruby ขึ้นมาใหม่บน CoreFoundation ของเทคโนโลยี Mac OS X เช่น Objective-C runtime และระบบ Gabage Collector ดังนั้น ทุก Class ทุก method และ ทุก object จะเป็น Objective-C ทั้งหมด ทำให้ปัญหาเรื่องการเชื่อมต่อหมดไป MacRuby ก็เข้าทางเดียวกับ jruby พวก data type ต่างๆ อย่าง String, Array หรือ Hash จะถูกทำใหม่อยู่บน CoreFoundation อย่าง CFString, CFArray และ CFDictionary ดังนั้นพฤติกรรมของ string จึงเป็นแบบ C หรือ Objective-C แทน หวังว่าจะไม่มีปัญหาการต่อกั

การให้ความสำคัญต่อพื้นที่ใช้งานของ Win, Mac, Linux

รูปภาพ
ไหนๆ จะเป็นกระทู้เปิดตัว usability66 ขอเริ่มต้นด้วยการวิเคราะห์ เรื่อง "พื้นที่ ที่เหลือให้ใช้" แม้ว่าเราจะชอบให้พื้นที่ทำงานของเราใหญ่ที่สุด แต่เราก็ต้องการให้สิ่งที่ใช้บ่อยๆ อยู่ใกล้มือเสมอ เช่น menu, short cut, status, calendar, recycle bin, battery life เราต้องการให้สิ่งเหล่านี้ปรากฏอยู่เสมอบนจอภาพ เพียงแค่ชำเรื่องตาไปดูก็มองเห็นได้ทันที หรือสามารถเรียกใช้ได้ตลอดโดยการ click เพียงครั้งเดียว ปัญหาอยู่ที่ความสมดุลย์ระหว่าง "พื้นที่วางของใช้บ่อย" กับ "พื้นที่ที่เหลือให้ใช้งาน" สองอย่างนี้ในแต่ละ platform จะให้ความสำคัญไม่เหมือนกัน ขึ้นอยู่กับกลุ่มเป้าหมาย และความฉลาดในการออกแบบของ platform นั้นๆ เริ่มจาก windows ก่อน พื้นที่ ที่เหลือให้ใช้งานคิดตามแนวตั้งแบบง่ายได้ 7 ส่วนจาก 10 ส่วน หากคิดว่าหน้าจอเดียวนี้เป็นแนวกว้างซะส่วนใหญ่ พื้นที่ที่เสียไปในแนวตั้งจะมีผลอย่างมากทีเดียว ในรูปพื้นที่สีขาวคือ menu ส่วนสีฟ้าคือ title bar แม้ว่า windows vista จะพยายามกำจัด menu ทิ้งแต่ application ส่วนใหญ่ก็ยังใช้ menu อยู่ดี ปัญหาที่เกิดขึ้นคือ task bar ด้านล่างต้อง

I love this wide

รูปภาพ
search หา m4p ของ keynote ตัวล่าสุด ดันไปเจอรูปนี้เข้า โดนใจมากๆ ที่มา จริงๆ แล้วจอยิ่งยาวก็ทำอะไรได้มากขึ้น usability ก็ปรับได้อีกหลายแบบ ทำให้มองเห็นอนาคตของ Android ไปไกลน่าดู (ความหลากหลายก็เป็นพลัง อย่างหนึ่ง) ปล. ตอนนี้เจอ m4p แล้วครับ download ได้ที่ movie.apple.com

count down xubuntu

รูปภาพ
ร่วม countdown ไปกับเค้าด้วย

ติดตั้ง Rails Mongrel Cluster บน Ubuntu Hardy (8.04)

ทดลองมาหลาย solution สุดท้ายมาได้เป็น solution ง่ายๆ แบบนี้ครับ ![web_solution](/downloads/web_solution.png) การ Deploy เราค่อยๆ ทำตามลำดับดังนี้ 1. ติดตั้ง Application ของเราบน mongrel ให้ขึ้นได้ก่อน ============================ **Adduser** สร้าง user สำหรับ run mongrel เวลากำหนดสิทธิ์จะได้ง่ายหน่อย สำหรับ Ubuntu sudo /usr/sbin/adduser mongrel สำหรับ Redhat, "-r" คือไม่ต้องสร้าง home ไม่ต้องมี attribute มากมายให้ user sudo /usr/sbin/adduser -r mongrel **Deploy application** ติดตั้ง application ของเราไว้ที่ /var/www/ sudo mkdir /var/www sudo mkdir /var/www/application_name sudo chown -R mongrel:mongrel /var/www/application_name เอา application ของเรามาใส่ไว้ในที่ๆ เตรียมไว้ จะเอาออกมาจาก svn หรือ copy มาใส่ก็ได้ ไว้ตอนต่อไปเราค่อยมา set capistano กัน svn export svn://svn_server.com/application_name/trunk/ --username name --password pass . rake db:create:all rake db:migrate RAILS_ENV="production" ทดลอง run ดูก่อนว่าทำงานได้หรือเปล่า ./script

มองวิกฤตการณ์เมืองให้เป็นโอกาส

มองอีกมุมหนึ่งการเมืองตอนนี้ไม่ใช่การถอยหลัง แต่เป็นทางบังคับที่ต้องผ่านไปให้ได้ ผมมองเห็นความเปลี่ยนแปลงของทางบ้าน ที่เกิดขึ้นจากการกระตุ้นของกระแสการเมืองที่รุนแรง การกระตุ้นที่บอกว่า "ประชาชนเป็นเจ้าของประเทศ" ไม่ใช่รอให้ใครข้างบนมาสั่ง หรือปล่อยไปมันก็ดีเอง ตอนนี้ที่บ้านต่างจังหวัดเริ่มมีการเปลียนแปลงในหน่วยย่อยของสังคม * อาจารย์ของราชภัฏเริ่มรู้สึกว่าหน่วยงานเป็นของเรา ไม่ต้องรอให้ผู้บริหารมาสั่ง * ครูเริ่มมีส่วนกำหนดความเป็นไปของโรงเรียน ไม่ใช่รอแต่ครู่ใหญ่ * นักเรียนเริ่มกำหนดสิ่งที่ตัวเองอยากเรียน ไม่ใช่รอคำสั่งครู * เด็กมีความรับผิดชอบในบ้านมากขึ้น ไม่ปล่อยให้เป็นความรับผิดชอบของพ่อแม่อย่างเดียว ความเปลี่ยนแปลงเกิดขึ้นในหน่วยที่เล็กที่สุดของสังคมทีเดียว ซึ่งเป็นเรื่องที่ดีมากๆ ทำให้เกิดความสามัคคีและช่วยกันสร้างสรรค์บ้านเมือง * อาจารย์คิดเองเป็นทำงานแบบ parallel เพราะอาจารย์ใกล้ชิดนักศึกษา และสังคมจึงรู้ว่าควรสอนอะไร * ครูสามารถปรับปรุงการสอนไปตามความนักเรียน * นักเรียนมีส่วนในกิจกรรมของโรงเรียน เพราะรู้สึกเป็นเจ้าของโรงเรียน * เด็กเก็บขยะในบ้าน เพราะบ้านเป็นของต

ปรับ font ภาษาไทยบน gnome

รูปภาพ
ทนใช้ตัวอักษรภาษาไทยแบบไม่สวยมานาน วันนี้มาใช้ linux thai เพราะเริ่มแปล ubuntu เลยทนไม่ไหวกับตัวอักษรไม่สวยมากมายบนหน้าจอ ทำให้ต้องพยายามตั้งค่าตัวอักษรกันหน่อย สุดท้ายวิธีการเป็นดังรูปครับ เลือก main menu -> ระบบ -> ปรับแต่งพื้นโต๊ะ -> รูปโฉม From software ในรูปจะเห็นว่า "การวาด" ถูกเลือกทุกอันเลย ซึ่งมันทำไม่ได้ ให้เรากด "รายละเอียด" แล้วตั้งค่าตามรูปที่หน้าแรกจะกลายเป็นเลือกทุกช่องไปเอง From software เสร็จแล้วกดปิดให้หมด เป็นอันเสร็จสินครับ