Linux Console Command Part1

Posted by AnnoMundi on August 08, 2008

ช่วงนี้ใช้งาน Linux Console บ่อยและด้วยความที่ขี้เกียจคำสั่งที่เคยพิมพ์ไปแล้ว และจำได้ว่ามันมี command ที่ใช้รันคำสั่งที่เราเคยพิมพ์ไปแล้ว ปกติผมจะใช้ปุ่มลูกศรขึ้นลงเพื่อเลือกคำสั่งที่ผ่านๆมา แต่มันไม่สะดวกเพราะคำสั่งที่เคยพิมพ์ๆไปมันอาจพิมพ์ไปนานแล้ว ก็เลยลอง Search ดูก็เจอคำสั่งที่จะช่วยให้ประหยัดเวลาในการทำงาน

คำสั่งแรกเลย history

history

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

history 10

จะเป็นการลิสท์คำสั่ง 10 คำสั่งสุดท้ายออกมา
เราสารถใช้คำสั่ง ! เพ่ือทำการรันคำสั่งนั้นอีกครั้ง เช่น

annomundi@develone:~$ history
55  history
56  pwd
57  ls
58  cd ~
59  history
annomundi@develone:~$ !57
ls
MyThread.class  mbox  rails-projects  sources  www
annomundi@develone:~$

จะเห็นว่าคำสั่ง !57 จะสั่งรันคำสั่ง ls นอกจากนี้เราสามารถใช้คำสั่ง

!!

เพื่อรันคำสั่งก่อนหน้านี้
นอกจากนี้ก็มีคำสั่ง !$ จะหมายถึงข้อความที่ตามหลังคำสั่งที่แล้ว เช่น

ls /etc/hosts
vi !$

คำสั่งหลังก็คือคำสั่ง vi /etc/host นั่นเอง
คำสั่ง !<start of command> เป็นการรันคำสั่งหลังสุดที่ขุึ้นต้นด้วย <start of command> เช่น

pwd
ls -la
cd www
!ls

คำสั่ง !ls จะเป็นการรันคำสั่ง ls -la อีกครั้งนึงนั่นเอง
คำสั่ง !-<number> จะเป็นการรันคำสั่งที่ <number> ก่อนหน้านี้ เช่น

pwd
ls -la
cd www
!ls
!-4

คำส่ัง !-4 จะเป็นการรันคำสั่ง pwd อีกครั้งนึง

สำหรับคำสั่งพวกนี้บางคนอาจคุ้นเคยแล้ว แต่ผมเองเคยเห็นเพื่อนๆใช้กันแกต่ไม่ค่อยได้จำและเอามาใช้สักที เลยต้อง search หาเอามาใช้ซะหน่อยจะได้ประหยัดเวลาการพิมพ์คำสั่งบนคอนโซล ^^ ไว้อาจมีต่อภาค 2 เพราะผมยังไม่แม่นเรื่อง command parameter เท่าไหร่

How to disable Tab Scrolling in FireFox 2.0

Posted by AnnoMundi on October 26, 2006

FireFox 2.0 เปิดตัวอย่างเป็นทางการแล้วนะครับเมื่อวานนี้ 25 ต.ค. ความจริงแล้ว
ผมได้ทดลองใช้มาตั้งแต่ตอนรุ่น RC3 แล้วก็รู้สุกหงุดหงิดกับระบบ Tab Scrolling มาก
ระบบที่ว่านี้คือเมื่อเราเปิด Tab มาจนมันมากเกิน มันจะซ่อน Tab ใหม่ไว้ เราต้องคลิ๊กที่
ตรองปุ่มลูกศรด้านข้างเพื่อเลื่อนดู Tab ที่ถูกซ่อนไว้ ซึ่งระบบนี้สร้่างความรำคาญให้
กับผมมากเพราะปกติเวลาผมเข้าเว็ปที่เข้าไปอ่านประจำทุกวันผมจะ คลิ๊กๆลิ้งก์ต่างๆ
ให้มันเปิดใน Tab ใหม่ จากนั้นค่อยไล่คลิ๊กอ่านที่ล่ะ Tab แต่เพราะระบบ Scrolling นี่
ทำให้บางทีผมลืมว่าคลิ๊กเปิดไปกี่ Tab แล้ว -*-

สำหรับการ Disable Tab Scrolling ใน FireFox 2.0 นั้น พอดีผมไปเจอมาที่เว็ปด้านล่างนี้
Top Firefox 2 config tweaks

วิธีก็คือพิมพ์ about:config ในช่องใส่ URL เว็ปแล้ว Enter มันจะขึ้นหน้าที่ใช้สำหรับปรับ
Config ต่างๆของ FireFox ให้เราพิมพ์ browser.tab ในของ Filter แล้วให้มองหา
Key : browser.tabs.tabMinWidth
ก็ให้เราเปลี่ยนค่าของ Key นี้เป็น 0 ซะจากนั้นปิด FireFox แล้วเปิดใหม่ เป็นอันเสร็จครับ ^^”

วิธีแก้ปัญหา PHP ส่งอีเมล์ไม่ได้บน Windows

Posted by AnnoMundi on October 18, 2006

ช่วงหลังๆมานี่ผมกลับมาใช้ Windows ในการทำงาน และในการเขียน PHP
ปัญหาอย่างนึงที่น่ารำคาญคือส่ง email ไม่ออกมีปัญหากับ SMTP Server
ซึ่งผมก็ลง IIS และเป็น SMTP service ไว้ด้วยแต่ก็ส่งอีเมล์ไม่ออก แต่พอดีผม

ไม่ค่อยได้สนใจในส่วนนี้เท่าไหร่ เลยหยวนๆข้ามๆมันไปเขียนโปรแกรมทำส่วนอื่น
แต่พอดีช่วงนี้กำลังเขียนโมดูลของ Drupal และ่ต้องมีการส่ง email เลยจำต้องหา
วิธีทำให้มันใช้งานได้ ซึ่งจะอัพโหลดไปทดสอบบน Server ก็ลำบากในการแก้ไข
และ debug โปรแกรม ก็เลยลองๆ Search ดูก็เจอวิธีตาม Link ด้านล่าง

http://drupal.org/node/30079

ถ้าลิ้งก์เสียก็ตามล่างนี้เลย แต่อย่าลืมว่า Windows ต้องลง IIS ก่อนนะครับ

1) Go to: start > settings > control panel > Administrative Tools > Internet Information Services
2) Expand the ” (local computer)” node
3) Right click on your SMTP server > go to “Properties”
4) Click “Access” tab
5) Under Relay Restrictions, click the “Relay” button
6) Click “Add”
7) Select “Single Computer” and enter IP address 127.0.0.1
8) Hit OK, OK, OK (until the properties dialog is closed)

หลังจากเซ็ตตามด้านบนแล้วสคริปต์ PHP เราก็จะส่งอีเมล์ออกไปได้ตามปกติ
เพียงแต่อาจมีปัญหา email ที่ถูกส่งไปอาจถูกปลายทางส่งเข้า Junk/Spam/Bulk Folder
ก็ต้องคอยเช็คดูให้ดีๆ

อ้างอิง : http://drupal.org/node/30079

3 วิธีง่ายๆในการหลีกเลี่ยงปัญหา Memory Leak ใน JavaScript

Posted by AnnoMundi on October 06, 2006

บทความเกี่ยวกับการหลีกเลี่ยงเขียน Javascript แล้วทำให้เกิด Memory Leak
หลักที่ผู้เขียนเขาแนะนำคือ

3. Set your XMLHttpRequest onreadystatechange handlers to null when you are done with them.

I use YAHOO.util.Connect for all my XHR connections and it uses a
polling mechanism instead of readstate, so I don’t need to do this
anymore. If you can switch to YAHOO.util.Connect (or
YAHOO.ext.UpdateManager built on top of it), I’d recommend it.

2. Clean up all your DOM event handlers on unload if there’s a chance they could reference a DOM object.

There’s no reason to manually do this when there are libraries that
do it automatically. I use YAHOO.util.Event for all my event handlers,
it handles this for me automagically. Other libraries (prototype, dojo,
etc) have some sort of mechanism to do the same thing, although I’m not
sure how effective they are. If you look at the leak images above once
again, you will notice almost all of them are in event related code of
those libraries.

1. Never put anything in a DOM expando or property other than a primitive value unless you plan on cleaning it up.

This is the most important rule of all. It may seem convenient to
put your JS object in a DOM expando, so you can $() and get it, but
don’t do it. Sure, I know what you are thinking, I am being a little
paranoid. There are lots of instances where putting a JS Object in a
DOM expando won’t cause a leak. That’s true, but there are also
many that will… some which are not so easy to detect (i.e. closures).
So to avoid the possibility all together, I follow this simple rule.

อ้างอิง: 3 Easy Steps to Avoid JavaScript Memory Leaks