Showing posts with label Miscellaneous. Show all posts
Showing posts with label Miscellaneous. Show all posts

February 14, 2012

misc: เวลาในระบบคอมพิวเตอร์

เมื่อพูดถึงเวลาในคอมพิวเตอร์นั้น เวลา Unix มักถูกอ้างอิงใช้เป็นมาตรฐานมากที่สุด มันคือเวลาเป็นวินาทีนับจากเที่ยงคืนของวันที่ 1 มกราคม 1970 ตามเวลาสากล UTC มาจนถึงปัจจุบัน

สำหรับระบบที่ implement มันแบบ 32 บิท อาจพบปัญหาได้ในปี 2038 เนื่องจากเลขที่ใช้ overflow ครับ



แม้ว่าจะเราจะสามารถเรียกเวลา Unix มาดูได้ แต่มันคงไร้ประโยชน์ถ้าไม่สามารถเปลี่ยนให้อยู่ในรูปแบบที่สื่อสารกับคนทั่วไปได้รู้เรื่อง

รูปแบบข้างล่างนี้ถือเป็นมาตรฐานการเขียนแทนเวลาของระบบ Unix ที่สามารถเรียกใช้ได้จากโปรแกรมต่างๆ ครับ

รูปแบบตัวเลข0 นำหน้าชื่อเต็มชื่อย่อ
วันของสัปดาห์%u%a%A
วันของเดือน%e%d
วันของปี%j
สัปดาห์%V
เดือน%m%b%B
ปี%y%Y
เขตเวลา%z%Z
12 ชั่วโมง%l%I%p
24 ชั่วโมง%k%H
นาที%M
วินาที%S

นอกจากนี้ ยังมีรูปแบบที่ใช้บ่อยๆ ที่ถูกเก็บเป็นตัวย่อไว้ให้เรียกใช้ ดังนี้

%s = เวลา Unix
%D = %m/%d/%y
%F = %Y-%m-%d
%r = %I:%M:%S %p
%R = %H:%M
%T = %H:%M:%S
%c = %a %b %d %H:%M:%S %Y

สำหรับค่าเริ่มต้นเมื่อไม่ได้กำหนดรูปแบบเป็นพิเศษ จะได้รูปแบบเป็น %c เช่น Tue Feb 14 16:03:42 2012 ครับ

อย่างไรก็ตาม โปรแกรมต่างๆ อาจมีวิธีเรียกใช้ค่าเหล่านี้แตกต่างกันไปบ้าง อย่าลืมเช็คกับเอกสารประจำโปรแกรมนั้นๆ ด้วยนะครับ

ปล. ไหนๆ วันนี้ก็วันแห่งความรักทั้งที รู้จักเวลา Unix ไปแล้ว ก็อย่าลืมแบ่งเวลาไปใส่ใจเธอด้วยนะครับ :P

November 17, 2011

misc: นิพจน์ปรกติ (เรกูลาร์เอ็กเพรสชัน)

นิพจน์ปรกติ (regular expression นิยมย่อว่า regex) คือ pattern matching สำหรับข้อความชนิดหนึ่ง เรามักเจอการมันโดยทั่วไปเวลาทำงานเกี่ยวกับการ search/replace ข้อความ

กฏโดยทั่วไปของมันคือ (ในที่นี้สนเฉพาะภาษาอังกฤษก่อนนะ)

Pattern
Sample Pattern
Match Where
อธิบาย
alphanumeric
hell
hell, hello, neohellenic
เลือกคำนั้นไม่ว่าจะปรากฏที่ไหนในข้อความก็ตาม
42
42, 1342, 86420
.
hi.
him, hire, this, hi5, hi.
แทน . ด้วยอะไรก็ได้ (ยกเว้น \r, \n)
^
^hell
hell, hello ted
ขึ้นต้น/ลงท้ายบรรทัดนี้ด้วย (ตามลำดับ)
$
hell$
go hell, shell
|
ha|is
has, his, this
เลือกอันไหนก็ได้ระหว่าง | มา 1 ตัว
(some)
h(ea|il)l
hill, heal
ไว้ใช้จัดกลุ่มของคำเพื่อให้เลือก/ทำซ้ำได้ง่ายขึ้น
[some]
h[aeiou]l
hal9000, hell, alcohol
เลือกอันไหนก็ได้ใน [...]
h[a-z]l
shall, hcl, hyline
เลือกอักษรตัวไหนก็ได้ใน [...] ตั้งแต่ตัวแรกถึงตัวสุดท้าย (เรียงตามลำดับด้วย ASCII)
h[a-]l
hall, h-l
เมื่อเอา - ไว้สุดท้าย คือเลือกเครื่องหมาย - ด้วย
[^some]
h[^abc]l
hell, alcohol
เลือกอันไหนก็ได้ ที่ไม่อยู่ใน [...]
?
hello?
hell, hello
มีหรือไม่มีตัวก่อนหน้า ? ก็ได้
(toget)?her
together, her
+
hel+
hel, hell, helll
มีตัวก่อนหน้า + อย่างน้อย 1 ตัว
*
s*he
he, she, sshe
มีตัวก่อนหน้า * อย่างน้อย 0 ตัว (คือมีหรือไม่มีก็ได้ คล้ายๆ ? แต่อันนั้นจำกัดมีแค่ตัวเดียว)
{n,m}
hel{2}
hell
มีตัวที่เลือกจำนวนเท่านั้นพอดี แต่ถ้าเว้นตัวใดตัวหนึ่งไว้ หมายถึงขอบเขตด้านนั้นเป็นเท่าไหร่ก็ได้
hi{2,3}
hihi, hihihi
e{2,}
ee, eee, eeee
ok{,2}
ok, ok, okk
\
hi\.
hi.
escape char สำหรับยกเลิกความหมายอักขระพิเศษครั้งละตัว
"some"
"where?"
where?
ยกเลิกความหมายของอักขระพิเศษทั้งประโยค

หมายเหตุว่าจะเอาไปใช้ที่ใด ก็ลองดูกฏย่อยๆ ประจำที่อีกทีนึงนะครับ

November 2, 2011

misc: ความแตกต่างระหว่างวินโดวส์กับลินุกซ์

ในโลกคอมพิวเตอร์เล็กๆ ใบนี้ ถ้าคุณเชี่ยวชาญ Windows ก็เหมือนคนพูดภาษาไทยคล่อง คุยกับคนรอบตัวได้รู้เรื่อง และถ้าคุณชำนาญ Linux (Unix) ก็เหมือนมีความรู้ภาษาอังกฤษติดตัว แม้ว่าอาจจะใช้กับคนรอบตัวได้ไม่มากเท่าไหร่ แต่เมื่อเจอฝรั่งกล้ามใหญ่แล้ว คุณก็สามารถสื่อสารกับเค้าได้เข้าใจทันที

ขึ้นชื่อว่าเป็นโปรแกรมเมอร์แล้ว อย่าพูดเป็นแค่ภาษาแม่ภาษาเดียว และก็อย่ากระแดะพูดฝรั่งกรอกหูเพื่อนครับ

เรามาดูดีกว่า ว่าความแตกต่างระหว่าง Windows กับ Linux มีอะไรบ้าง


WindowsLinux
ขึ้นบรรทัดใหม่ CR+LF (\r\n)LF (\n)
เส้นคั่นโฟลเดอร์\ (backslash)/ (slash)
โฟลเดอร์รากไม่มี (อาจถือว่าคือ C:\)/
โฟลเดอร์ส่วนตัวC:\users\usrname/home/usrname
ชื่อไฟล์case insensitivecase sensitive
ไฟล์ที่ซ่อนตั้งค่าที่ propertyเพิ่ม . (จุด) ไว้หน้าชื่อไฟล์
option argument/ เช่น shutdown /s- เช่น shutdown -h
แทรก EOFCtrl + Z + EnterCtrl + D
ขนาด tab4 ตัวอักษร8 ตัวอักษร