compact, extract ใน PHP

ปกติส่งตัวแปรหลายๆ ตัวข้าม function ใน PHP ผมจะสร้าง array แล้วโยนไปโยนมาครับ

เมื่อคืนเกิดสงสัยว่ามันจะมีอะไรเจ๋งๆ ช่วยเรามั้ยน๊า ไปเปิด PHP Doc ดูก็เจอ compact กับ extract ครับ

ไม่พูดพร่ำทำเพรงให้เยิ่นเย้อ… ดูตัวอย่างโค้ดเลยดีกว่า

function get_something()
{
    $id = 10;
    $foo = "bar";
    return compact('id', 'foo');
}
 
extract(get_something());
echo $id;              // ได้ผลลัพธ์เป็น 10
echo $foo;            // ได้ผลลัพธ์เป็น bar

อธิบายสั้นๆ

compact – สร้าง array จากตัวแปรที่กำหนด ในตัวอย่างจะได้ array ที่มีเนื้อหาดังนี้

(
   'id' => ค่าที่อยู่ในตัวแปร $id, 
   'foo' => ค่าที่อยู่ในตัวแปร $foo    
)

extract – ทำตรงกันข้ามกับ compact (ขี้เกียจเขียนล่ะ 555)

หัวแตกเพราะ MS-DOS

ตอนอยู่อนุบาล 2 พ่อสอนว่าถ้าอยากเล่นเกม Mickey Mouse ให้ใส่แผ่น แล้วพิมพ์คำสั่งตามนี้

B: [enter]
mickey [enter]

800px-Floppy_disk_2009_G1
พอเล่นเกมเสร็จ ผมก็อยากจะออกจาก MS-DOS กลับไปเข้า Windows 3.11 ปกติผมจะจิ้มปุ่ม Power ปิดเปิดเครื่องใหม่ (หนูๆ ทางบ้านโปรดอย่าลอกเลียนแบบ)

วันนั้นผมกลับเป็นเจ้าหนูจำไม อยากรู้อย่างแรงว่า วิธีที่ถูกต้องควรทำยังไง เลยวิ่งลงบันไดจะไปถามพ่อ (พ่อกำลังตรวจคนไข้อยู่ข้างล่าง เหตุการณ์ทั้งหมดเกิดขึ้นในคลินิกแห่งหนึ่งแถวกระทุ่มแบนครับ)

ปรากฏว่า มีน้ำหกอยู่ตรงหน้าบันได ผมก็ลื่นปรืี๊ดกลิ้งกลุกๆๆๆ ลงไปตามบันได+เอาหน้าผากทักทายกับขอบเหล็กของบันได ~ 20 ขั้น

พอถึงชั้นล่าง ผมก็ความจำเสื่อม จำคนรักไม่ได้…. เย้ย!… ผมก็นอนแอ้งแม้ง มึน! ครับ

(เวลาผ่านไป) พี่ชายสงสัยว่า เอ๊ะ.. ทำไมผมหายไปนานจัง เลยเดินออกมาดู เห็นผมนอนอยู่ตรงบันได ก็งงว่าผมเล่นอะไร ทำไมหน้าผากเลอะไปหมด… พอพี่มาดูใกล้ๆ ก็เห็นว่าเป็น “เลือด” ด้วยความตกใจ พี่ชายเลยอุ้มผมขึ้นไปหาแม่… แม่ก็อุ้มผมลงไปหาพ่อ….

พ่อก็ฉีดยาชาที่หน้าผาก แล้วก็เย็บให้ 3 เข็ม เป็นอันเสร็จ (หัวแตกตรงกลางระหว่างคิ้วพอดีเลย… ไม่เชื่อไปถามพ่อดูจิ)

สรุปว่าตอนอนุบาล 2 ผมก็ยังไม่รู้อยู่ดีว่าจะออกจาก MS-DOS ยังไง

ตอนนี้รู้แล้วครับ

exit

ปล. เคยเล่นเกมส์อะไรกันบ้างครับ เล่าให้ฟังหน่อย (เผื่อจะเดาอายุถูก อิๆ)

รวม Quote จาก อ.เฉลิมศักดิ์

  • “เวลา present โปรแกรม อย่าโชว์ algorithm แต่ให้โชว์ data structure แล้วทำตัวเป็น algorithm”
  • “พิธีกรรมเป็นเพียงข้อแก้ตัว ใช้พิธีไหว้ครูขอโทษครูวันเดียว แล้วทำให้ครูไม่สบายใจไปอีก 364 วัน”
  • “โปรแกรมยาวขึ้นตั้งไบต์นึง ทำให้เปลืองทรัพยากรของโลก”
  • “ข้อสอบวันนี้คุณไม่ได้เป็นคนเลย คุณได้เป็น computer, compiler, assembler, และ loader เพราะงั้นรีบๆ ทำให้เสร็จคุณจะได้กลับเป็นคนซักที”
  • “คุณต้องเสแสร้งอยากทำ assembler นะครับ เพราะถ้าคุณไม่อยากทำก็ไม่เหลือใครในโลกอยากทำแล้ว”
  • “เหมือนจักรพรรดิ (OS Kernel) จะเข้า ขันที (loader) ต้องวิ่งพล่านเลย”
  • “ความตั้งใจเป็นของคน ความสำเร็จขึ้นอยู่กับฟ้า”
  • “ตอนนี้ประเทศเราอยู่ในช่วง bootstrap และก็ยังคงอยู่ในช่วง bootstrap ต่อไป”

ขอขอบคุณ อ.เฉลิมศักด์ สำหรับ quote ดีๆ มา ณ ที่นี้ด้วยครับ

OpenKiosk Extension : ตู้ประชาสัมพันธ์ง่ายๆ ด้วย Firefox

ตัวอย่างตู้ Kiosk ของ US Army (ภาพจาก http://www.army.mil)

ตัวอย่างตู้ Kiosk ของ US Army (ภาพจาก http://www.army.mil)

ไปแข่ง linux (NLC10 – การแข่งขันระบบปฏิบัติการลินุกซ์แห่งประเทศไทย) มา เขามีโจทย์ให้เลือก 5 ข้อ กลุ่มผมเลือกทำข้อง่ายสุดคือ “เตรียมเครื่อง linux สำหรับเป็นตู้ Interactive Kiosk สำหรับสนามบินแห่งชาติ” (ขอเรียก Interactive Kiosk สั้นๆ ว่า Kiosk ละกันนะครับ)

ถ้างงว่าตู้ Kiosk คืออะไร

ให้นึกถึงจอ Touchscreen ใหญ่ๆ ตามห้างครับ ที่เราเข้าไปจิ้มๆ หาข้อมูลได้ว่าร้านกระเป๋าหลุยส์ติงต๊อง อยู่ชั้นไหนโซนไหน จะได้เดินไปซื้อได้ถูก เจ้าจอ Touchscreen ใหญ่ๆ นี่แหละครับเรียกว่าตู้ Kiosk หรือตู้ประชาสัมพันธ์

คุณสมบัติที่สำคัญของตู้ Kiosk คือ

ดูเว็บ/ใช้โปรแกรมประชาสัมพันธ์ได้อย่างเดียว ไม่มีสามารถหลบไปเล่นเกมกู้ระเบิด (Minesweeper), ถอดไพ่ (Solitare) หรือใช้งานโปรแกรมอื่นๆ

ทำยังไงให้คอมธรรมดา กลายเป็นตู้ Kiosk

  1. ติดตั้ง ระบบปฏิบัติการตามใจชอบ จะ Windows หรือ Linux ก็ได้
  2. ติดตั้ง Mozilla Firefox, jsLib และ OpenKiosk จากเว็บ Brooklyn Museum Kiosk Client
  3. เมื่อติดตั้งเสร็จแล้วให้ปิด firefox แล้วเปิดจาก Command line ดังนี้ (เพื่อเปิดใช้ Kiosk แบบเต็มจอ)
    mozilla -kiosk
  4. นอกจากนี้เรายังสามารถตั้งค่า Firefox ด้วย OpenKiosk ได้อีกมากมาย อ่านรายละเอียดได้จาก https://mozdevgroup.com/clients/bm/ ครับ

ตอนแข่งผมก็นั่งแก้ GUI ของ firefox เอง (firefox มันใช้ XUL ทำ GUI ครับ แก้ไขได้อิสระมากๆ) แต่พอค้นดีๆ เจอ OpenKiosk แล้ว โฮกกกก…. รู้งี้โหลดมาใช้ตั้งนานแล้ว

เล็บยาว พิมพ์ช้า จริงเหรอ?

“เล็บยาว พิมพ์ไม่ถนัดเลย ช้าด้วย” จริงเหรอ?

วันนี้เล็บยาว (ปลายเล็บส่วนที่เป็นสีขาวยาว ~3mm) เลยลองทดสอบความเร็วที่เว็บ TypeOnline.co.uk ดูปรากฏว่า:

  • ก่อนตัดวัดได้ 88 wpm (88 คำต่อนาที)
  • หลังตัดวัดได้ 89 wpm

สรุปว่า “เล็บยาว พิมพ์ไม่ถนัดเลย” เป็นจริง รู้สึกเสียวมาก ว่าเล็บจะฉีก จะหัก
แต่ “ช้าด้วย” นี่ไม่น่าจะจริงครับ (ความเร็วต่างกันแค่คำเดียวเอง)

ผมหัดพิมพ์สัมผัสยังไง?

  • ตอน ป.1 เรียนคอมพิวเตอร์ แล้วครูสอนพิมพ์สัมผัส

    • ครูให้วางนิ้วก้อย นาง กลาง ชี้ ที่ a s d f และ j k l ; ตามลำดับ
    • ครูสั่งให้เปิด notepad ขึ้นมา หลับตา และพิมพ์ตามที่ครูพูด a s d f j k l ; a s d f j k l ; a a s d f ฯลฯ
    • ลืมตาขึ้นมา –> โฮก… ผิดไปหลายตัวเลย
  • ใช้โปรแกรมฝึกพิมพ์ จะได้รู้ว่าปุ่มไหนใช้นิ้วไหนกด (จำชื่อโปรแกรมตอนสมัย Windows 3.11 ไม่ได้เล้ว)
  • ช่วยพิมพ์รายงานให้พ่อ ให้พี่ชาย (เก็บ exp)
  • ใช้คีย์บอร์ดแบบนี้:
  • Das Keyboard Ultimate (จาก thinkgeek.com)

    Das Keyboard Ultimate (จาก thinkgeek.com)

^_^ และ ^_____^

pm_abhisit
pm_abhisit2
เห็น ^_^ แล้วประทับใจ หะๆ

หน้าล็อกอินใช้เน็ต

มาดูหน้าล็อกอินของแต่ละมหาวิทยาลัยดีว่า (คลิกที่รูปเพื่อดูรูปใหญ่)

CU

หน้าล็อกอิน CU

KMUTT

หน้าล็อกอิน KMUTT

KU

หน้าล็อกอิน KU

ความเห็นของผม

ผมคิดว่า หน้าล็อกอิน มีหน้าที่คือ “ให้ผู้ใช้กรอก Username และ Password เพื่อเข้าสู่ระบบได้อย่างรวดเร็ว”
การประชาสัมพันธ์ข่าวสาร ควรใช้เว็บที่มีหน้าที่นี้โดยตรง เช่น http://www.ku.ac.th

ตอนนี้ http://login1.ku.ac.th มีโฆษณา “KITS ครบรอบ 4 ปี” ผมเชื่อว่าอีกไม่นาน คงมีโฆษณาอื่นๆ ตามมาอีกตรึม!

มาวิจารณ์กันเถอะ ว่าหน้าล็อกอินแบบไหนเวิร์คสุด?

ใครอยู่มหาวิทยาลัยอื่นและอยากโชว์หน้าล็อกอิน ช่วยแปะลิงค์ไว้ด้วยนะครับ ;)

ขอบคุณ น้องป้อม (JSTP11) พี่ @teerapapc และพี่ @m3rlinez สำหรับ screenshot หน้าล็อกอินครับ

ล็อกอินเข้า Ubuntu ด้วยลายนิ้วมือ

เปลี่ยนมาใช้ Ubuntu ได้พักใหญ่ ไม่ค่อยได้สัมผัส fingerprint sensor ที่ติดมากับเครื่องเลย (เพราะไม่มีโปรแกรมที่ใช้มัน)

ก่อนหน้านี้เคยโหลด fprint มาใช้ แต่มันไม่ค่อยเวิร์คตรงที่ ต้องพิมพ์ Username ก่อน แล้วสแกนนิ้ว (มันไม่สะดวกเลยแฮะ ต้องพิมพ์แล้วสแกน)

วันนี้เลยลองค้นเน็ตใหม่อีกรอบ อยากได้โปรแกรมที่ แค่รูด ก็เปิดเครื่องได้ ก็ไปเจอ FingerprintGUI

พอติดตั้ง (อย่างถูกวิธี)แล้ว ที่หน้าล็อกอินจะปรากฏหน้าต่างแบบนี้
fingerprintgui

แค่รูด ก็เปิดเครื่องได้…. เวิร์คเหมือนโปรแกรมบนวินโดวส์เลยครับ! (แต่รูปนิ้วอาจจะสวยไม่เท่า แค่นั้นเอง)

สร้าง Histogram ใน OpenOffice.org Calc หรือ Microsoft Excel

Histogram in OO.org Read the rest of this entry »

Twitter Down?

ใช้เว็บ DownForEveryOneOrJustMe เช็ค Twitter ปรากฏว่า “Twitter ดาวน์จริงๆ ที่ฝั่งนู้น”

ไม่รู้ว่าเป็น Down ตามกำหนดการรึเปล่า แต่ผม tweet ไม่ได้ อ๊าก….

มาบ่นใน blog นี้แทนดีกว่า หะๆ

ปล. สงสัยมันจะดาวน์เพราะอยากให้เราตั้งใจอ่านหนังสือสอบ Prob Stat แน่เลย
ปล2. แถมอีกเว็บ เด็ดดวงมาก… http://istwitterdown.com/ ตอบว่า “yes”