Monday, June 30, 2008

การติดตั้ง add-ons รุ่นเก่ากับ Firefox 3

Install old extension to Firefox 3.

# ติดตั้งได้นะ แต่อาจใช้งาน เกิดบัก หรือ ไม่ก็ใช้งานไม่ได้เลยบางตัว

# ขั้นตอนดังนี้

1. ดาวน์โหลด ไฟล์ add-ons มา ซึ่งจะได้ xpi

2. rename เปลี่ยนนามสกุลมันเป็น zip

3. มองหาไฟล์ชื่อ install.rdf (เปิดกะ Editor ตัวใหนก็ได้)

4. มองหาบรรทัดประมาณเนี๋ย maxVersion

5. เปลียนเวอร์ชั่นมันซะ ^^'

7. ลากไฟล์ install.rdf กลับเข้าไปยัง zip ไฟล์เหมือนเดิม เปลี่ยนนามสกุล กลับเป็น xpi

8. ติดตั้งมัน ด้วยการลาก xpi ปล่อยใส่ Firefox เลย

9. ถ้ามันขึ้นประมาณ Icompatible extension ไม่ต้องตกใจ

10. ที่ช่อง address bar ให้พิมพ์ about:config

11. คลิกขวา New -> Boolean จะขึ้น popup ให้เรากรอก extensions.checkUpdateSecurity

12. ให้เราตั
้ง default value เป็น false

13. แล้วลองลาก xpi ทำเหมือน ขั้นตอนที่ 8 อีกที

# ที่มา : จากเว็บต่างประเทศ แต่ จำไม่ได้แหละ

Thursday, June 26, 2008

โค้ด single instance ใน C#

Only run one instance C#

# ขอบคุณ เพื่อน เกียรติ เด็ก มอ อุบล สำหรับโค้ดนี้

# single instance คือ เมื่อเราเปิดโปรแกรมไปแล้วจะไม่สามารถเปิด โปรแกรมตัวนั้นได้อีก

# ต้องปิดมันก่อนถึงจะเปิดใหม่ได้

# ฝั่ง java เคยทำนะ ด้วย install4j หรือ exe4j หว่า ^^' (สักตัวอ่ะ) ตอนทำตัวติดตั้งอ่ะ ตั้งค่าแบบนี้ได้เลย

using System;
using System.Windows.Forms;
using System.Threading;

class App : Form
{
Mutex mutex;

App()
{
Text = "Single Instance!";
mutex = new Mutex(false, "SINGLE_INSTANCE_MUTEX");
if (!mutex.WaitOne(0, false))
{
mutex.Close();
mutex = null;
}
}

protected override void Dispose(bool disposing)
{
if (disposing)
mutex.ReleaseMutex();
base.Dispose(disposing);
}

static void Main()
{
App app = new App();
if (app.mutex != null)
Application.Run(app);
else
MessageBox.Show("Instance already running");
}

}

Monday, June 23, 2008

ต่อเน็ตด้วย Nokia บน Ubuntu 8.04

Connection internet by Nokia mobile with EDGE or GPRS.

# Enviroment

- OS: Ubuntu 8.04

- Mobile: Nokia 6120 Classic

- SIM Operator: AIS One2Call สมัคร Mobile Net กด *138 หรือ เช็คยอดนาทีที่เหลือ กด *139#

- Connection Type: Nokia USB Cable


# ขั้นตอนดังนี้

1. ต่อสาย usb มือถือเข้า pc ซึ่งในมือถือ จะมีอาไรให้เราเลือก เราก็เลือก pc suite ซะ

2. เปิด terminal พิมพ์คำสั่ง

$ sudo wvdialconf /etc/wvdial.conf

# ลีนุกซ์ก็สแกนหาโทรศัพท์ รอจนกว่าจะสแกนเสร็จ

3. ต้องเข้าไปแก้ไขค่าบางอย่างก่อน

sudo gedit /etc/wvdial.conf

4. ในไฟล์ wvdial.conf จะพบข้อความประมาณนี้

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
; Phone =
; Password =
; Username =

5. ให้เราทำการแก้ไขเป็น

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
ISDN = 0
Modem = /dev/ttyACM0
Phone = *99# หรือ *99***1# <- แนะนำ
*99***1#
Username = '' <- มันคือ
ฟันหนูเดี่ยวๆ 2 อัน
Password = ''

Stupid Mode = 1


# ถ้าเราแก้เสร็จก็จะเป็นประมาณเนี๋ย

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
ISDN = 0
Modem = /dev/ttyACM0
Phone = *99***1#
Username = ''
Password = ''

Stupid Mode = 1


# แก้เสร็จแหละ ก็ทำการ save ซะ

6. ทำการต่อเน็ตผ่าน Nokia ด้วยคำสั่ง

$ sudo wvdial

7. ถ้าไม่มีอะไรผิดพลาด ผลลัพท์ได้ประมาณนี้

sunback@sunback-pc:~$ sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sun Jun 8 23:55:27 2008
--> Pid of pppd: 6370
--> Using interface ppp0
--> pppd: 06][08]
--> pppd: 06][08]
--> local IP address 10.175.26.252
--> pppd: 06][08]
--> primary DNS address 203.146.237.237
--> pppd: 06][08]

8. จากนั้นก็ลองเปิด browser firefox ติ๊กเอา work offline ออกด้วยก็ใช้ได้แหละ

ที่มา : ubuntuclub.com

กู้ไฟล์ด้วย foremost ใน Ubuntu

Recover file in linux (Ubuntu).

# ติดตั้งโปรแกรม foremost ก่อนเลย

$ sudo apt-get install foremost

# หรือ ติดตั้งด้วย Sysnaptic

# สร้างไฟล์ img สำหรับจะนำมากู้

# เช่น เราต้องการกู้ไฟล์จาก flash drive เราก็ต้องสร้างไฟล์ img จากมัน

# พาธ storage ที่ใช้เก็บไฟล์ต่างๆ

- cdrom=/dev/cdrom

- usb=/dev/sda

- hdd=/dev/hda

- card mmc=/dev/mmcblk0

# หรือ เราสามารถรู้พาธของอุปกรณ์ต่อพ่วงได้จาก System Monitor แท๊บ File Systems

# สมมุติต้องการกู้ไฟล์จาก mmc card และจะทำการสร้าง img ไว้ที่ Desktop ครับ เราต้องใช้คำสั่ง

$ dd if=/dev/mmcblk0 of=~/Desktop/mmc.img

# สร้าง folder เปล่าขึ้นมาครับ เค้าเขียนย้ำนะครับว่าต้อง ว่างเปล่า

$ mkdir ~/Desktop/Recovery

# ทำการกู้ข้อมูล ด้วยคำสั่ง

$ foremost -o ~/Desktop/Recovery -t all -i ~/Desktop/mmc.img

# รอจน คำสั่งทำงานเสร็จ แล้วเข้าไปดูใน ~/Desktop/Recovery

# จะได้ folder ที่แยกตากประเภทไฟล์

# ทดสอบบน Ubuntu 8.04 ใช้ได้เลยแฮะ ^^'

# ที่มา : bluestulip.blogspot.com

# วีดีโอสอน : metacafe.com

Wednesday, June 18, 2008

การนำเข้า Form จากโปรเจคอื่นๆ ใน C#

# สมมุติ เราต้องการนำ Form จาก Project ซึ่งอยู่ใน Solution อื่น เข้า Project ที่เราสร้างใหม่

# ที่ Solution ที่เราสร้างใหม่ คลิกขวา Add -> Existing Project... หา Project ที่เราต้องการนำเข้า

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

# คลิกขวาที่ โปรเจคของเรา Paste..

# Remove โปรเจคที่เราเพิ่มเข้ามาเมื่อตะกี้เพราะเราไม่ต้องการมันแหละ เราต้องการแค่ Form ในโปรเจค

การแชร์ไฟล์ใน Vista

Sharing file in vista.
  • ปกติเมื่อทำการลงระบบ vista เราต้องทำพาร์ทิชั่นให้เป็น NTFS
  • ซื่งเป็นรูปแบบที่ค่อนข้างเข้มงวดเรื่องความปลอดภัยพอสมควร
  • เมื่อเราต้องการ share folder ซักอันเราก็ทำเหมือน xp ครับแต่มันจะแจ้งประมาณว่าให้ไปที่ " Network and Sharing Center." เพื่อ ปลดล็อครหัส ในการเข้าถึงไฟล์ที่ vista แชร์ไว้
  • ซึ่งเราสามารถ disable password protected sharing ได้โดย

- Control panel -> Network and Sharing Center
- มองหาที่ Password protected sharing (on ซะ) และfirewall














- เพิ่ม guest ให้เป็น co-owner สำหรับให้คนอื่นทำทุกอย่างได้เหมือนกัน

เปลี่ยน Layout Keyboard แบบ manual

# เราต้องแก้ไขไฟล์ /etc/X11/xorg.conf

# กันเหนียว backup xorg.conf ไว้ก่อน

$ cp xorg.conf xorg.conf.old

# การเปลียนภาษาบน ubuntu 8.04 โดยใช้ alt + shift แบบ manaul
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,th"
Option "XkbVariant" ","
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Tuesday, June 17, 2008

StarDict ดิกชั่นนารี น่าใช้ บน Ubuntu

Stardict dictionary in linux support thai by base on lexitron.
  • โหลดโปรแกรมได้จาก click
  • อันนี้ดีมากเลย บนระบบ windows ก็ใช้ได้

ความสามารถ
  • แปลศัพท์จาก clipboard ได้ คือ เมื่อ stardict มันอยู่ system tray panel เปิดให้มัน scan(default มันเปิดอยู่แล้ว) สมมุติเรา ไฮไลคำศัพท์ใน firefox มันก็จะแปลให้เราเลย จนบางครั้งน่ารำคาญเหมือนกันนะ ก็มันดีเกินไปอ่ะ ถ้าไม่ต้องการให้มันแปลเอง เราก็ไม่เลือก Scan

  • เพิ่มฐานข้อมูลคำศัพท์ได้ง่ายมาก ๆ และ รองรับหลายภาษา
  • ออกเสียงคำเหมือน Talking Dict ได้ด้วยล่ะ อันนี้ชอบอ่ะ (อ้างอิงบน Intrepid-Ibex)
  • แปลประโยคยาวๆ ได้แต่ต้องอาศัย อินเทอร์เน็ต เพราะมันใช้บริการ translate ของเว็บคนอื่นเค้าอย่างเช่น Yahoo (babel fish) , และก็ของ Google translator แต่เสียอย่างไม่มีแปล To Thai - -'

วิธีติดตั้ง
$ sudo apt-get install stardict
  • หรือ ใช้ synaptic ก็ได้ง่ายดี ค้นหาด้วยคำว่า stardict ก็เจอ
  • หรือที่นี้เลย http://stardict.sourceforge.net/

วิธีเพิ่มคำศัพท์ให้ stardict
  • โหลด คำศัพท์จาก lexitron dictinary ได้จาก dict มันจะคลิกได้เฉพาะ tarball
English-Thai Lexitron Dictionary
  • จะได้ชื่อเนี๋ย stardict-lexitron-et-2.4.2
Thai-English Lexitron Dictionary
  • อีก folder ก็ได้ชื่อเนี่ย stardict-lexitron-te-2.4.2
  • ซื่งเราต้องนำ folder เนี๋ยอ่ะ ไปว่างไว้ใน /usr/share/stardict/dic
  • ถ้าไม่มี folder dic เราก็สร้างให้เลยก็น่าจะได้
  • หรือ แตกไฟล์ไปวางที่ปลายทางด้วยคำสั่ง
sudo tar xvfj stardict-lexitron-te-2.4.2.tar.bz2 -C /usr/share/stardict/dic/
sudo tar xvfj stardict-lexitron-et-2.4.2.tar.bz2 -C /usr/share/stardict/dic/

Note:
  • ไมเวลาเราเปิด xmms แล้วให้ stardict ออกเสียง มันจะไม่ได้อ่ะ ไม่รู้เป็นไร

Thursday, June 5, 2008

"SqlTransaction it is no longer usable exception" exception

System.InvalidOperationException:
This SqlTransaction has completed; it is no longer usable.


Example :
insert into testTable(id, name) values('id','name')
update testTable set id = 'newid' ) delete from testTable

  • ซื่งจะเห็นว่าประโยค insert กับ delete syntax ถูกต้อง
  • มีเพียง update ที่มีเครื่องหมาย ) เข้ามาซึ่งผิด
  • การ execute มันทำได้แต่ประโยคแรก insert พอถึงการ update มันทำไม่ได้
  • ทำให้เกิด Exception นี้
  • ซึ่งทำให้ Transaction rollback() ไม่ได้ แต่ก็ไม่เป็นไร ยังไงมันก็ยังไม่ commit() ^^'

เพิ่มเติม
  • อันนี้เป็นสาเหตุหนึ่ง
  • อาจจะมีสาเหตุอื่นที่ทำให้เกิด exception แบบนี้ที่ยังไม่พบก็เป็นได้
  • เช่น insert file ขนาดใหญ่ เข้า sql server column image type