- CVS: Si Vi Ếch
- SVN: Si Vi Nhái
Sunday, July 29, 2007
Monday, July 16, 2007
Sunday, June 03, 2007
Nghỉ Pyco
(This entry was closed due to unnecessary quotes in other websites. The comments are still there for you in case you want to read)
Monday, May 14, 2007
There is only one word about the pidgin logo
ugly!
http://pidgin.im/~seanegan/pidgin.png
it's pidgin but it doesn't mean that you have you put that ugly pigeon in your logo x-(
http://pidgin.im/~seanegan/pidgin.png
it's pidgin but it doesn't mean that you have you put that ugly pigeon in your logo x-(
Pidgin for Fedora Core 4, 5, 6 users
At your root shell:
# cd cd /etc/yum.repos.d/
# wget http://garimbo.org/rpms/fedora/pidgin.repo
# yum -y install pidgin
# cd cd /etc/yum.repos.d/
# wget http://garimbo.org/rpms/fedora/pidgin.repo
# yum -y install pidgin
Wednesday, April 18, 2007
How Windows Vista was coded
/**
* (c) 2007 Micro$oft Corp.
* All rights reserved :-w
*/
#include "osx_tiger_features.h";
class WindowsVista extends WindowsXP implement Nothing {
boolean beta = true;
WindowsVista() {
checkIfHardwareIsCompatible();
/*
* OK. The idiot seems to have
* some high end hardware.
* Let make his life miserable >:)
*/
runInternetExplorer7();
}
void checkIfHardwareIsCompatible() {
/*
* Lets make sure that half the world
* cannot run this OS while
* we fix all the bugs
*/
if ((installedRam < 2GB) || (processorSpeed < 4GHz)) {
MessageBox("Your system does not seem
to be capable of running zero err.. aero glass
and the like. Please upgrade
the hardware and try again.");
WaitTillPoorGuyReadsTheMessage();
bsod();
}
}
void runInternetExplorer7() {
IE7 ie7 = new IE6();
ie7.featureSet = firefox_features
+ safari_features
+ opeara_features
+ lot_of_bugs;
ie7.run();
WaitWileThePoorGuyLooksAtTheNewInterface();
bsod();
}
}
//thanks mr. tom for sharing this :p
Monday, April 09, 2007
Friday, April 06, 2007
Friday, March 23, 2007
Enjoying the last night
before sending the mail.
being early or being late, it should be done, monkey!
give up fighting and start thinking about yourself first :)
being early or being late, it should be done, monkey!
give up fighting and start thinking about yourself first :)
Sunday, March 11, 2007
Nhiều kết nối hơn
Trong bài viết trước về kết nối từ xa giải pháp kết nối ngược dùng SSH đã được đưa ra. Tuy nhiên, đó chưa là tất cả.
Thứ nhất, nếu tận dụng công cụ netcat (nc) thì không những chỉ TCP connnection được tunneling mà cả UDP connection cũng được tunneling dễ dàng. Nếu tốc độ của kết nối đủ cao, thực hiện tunneling cho 2 port 27015 TCP và UDP qua SSH là bạn có thể chơi được Mini-dust-pro từ xa :D
Thứ hai, nếu không phải dùng một SSH Server, một SSH client mà là 2 SSH client thì sao? Kết hợp 2 lần tunneling liên tiếp bạn có thể là cho 2 máy workstation không có IP thật kết nối TCP được với nhau. Khi đó, bạn có thể đi xa, mang theo laptop, dùng kết nối Internet của khách sạn chẳng hạn mà vẫn có thể điều khiển được workstation trong công ty.
Thứ nhất, nếu tận dụng công cụ netcat (nc) thì không những chỉ TCP connnection được tunneling mà cả UDP connection cũng được tunneling dễ dàng. Nếu tốc độ của kết nối đủ cao, thực hiện tunneling cho 2 port 27015 TCP và UDP qua SSH là bạn có thể chơi được Mini-dust-pro từ xa :D
Thứ hai, nếu không phải dùng một SSH Server, một SSH client mà là 2 SSH client thì sao? Kết hợp 2 lần tunneling liên tiếp bạn có thể là cho 2 máy workstation không có IP thật kết nối TCP được với nhau. Khi đó, bạn có thể đi xa, mang theo laptop, dùng kết nối Internet của khách sạn chẳng hạn mà vẫn có thể điều khiển được workstation trong công ty.
Kết nối
Tình huống và nhu cầu
Trong công việc của một developer, mọi người rất dễ gặp tình huống làm việc từ xa. Mỗi developer thường có một workstation trong công ty và một máy tính ở nhà với kết nối ADSL hoặc dialup. Nhu cầu nảy sinh trong làm việc từ xa là làm sao có thể "truy cập" vào máy tính trong công ty từ máy tính ở nhà. Truy cập ở đây có nghĩa rộng, nó bao gồm hầu hết các loại kết nối có thông dụng, như kết nối Remote Desktop thông qua RDP, kết nối X server, kết nối VNC, kết nối để truyền nhận file...
Giải pháp có sẵn
Nhu cầu này không hề mới và có nhiều giải pháp được đưa ra để dùng, trong đó có:
Lật ngược suy nghĩ
Tuy nhiên, nếu nhìn lại kỹ hơn, bạn có thể thấy rằng những điểm sau đây đã bị bỏ qua:
?!?
Hoàn toàn có thể được mà lại đạt được nhiều thứ:
Nhưng bên trong nó ẩn chứa vấn đề:
Không!
Rõ ràng là làm được!
Nhưng vấn đề là phải code :(
Phải chăng, cái đầu của developer nó vậy? Nghĩ đâu rồi cuối cùng cũng quay về với code.
Trong công việc của một developer, mọi người rất dễ gặp tình huống làm việc từ xa. Mỗi developer thường có một workstation trong công ty và một máy tính ở nhà với kết nối ADSL hoặc dialup. Nhu cầu nảy sinh trong làm việc từ xa là làm sao có thể "truy cập" vào máy tính trong công ty từ máy tính ở nhà. Truy cập ở đây có nghĩa rộng, nó bao gồm hầu hết các loại kết nối có thông dụng, như kết nối Remote Desktop thông qua RDP, kết nối X server, kết nối VNC, kết nối để truyền nhận file...
Giải pháp có sẵn
Nhu cầu này không hề mới và có nhiều giải pháp được đưa ra để dùng, trong đó có:
- VPN: Hoàn toàn có thể tạo ra VPN dễ dàng với một front gateway dùng Windows Server hoặc một hiện thực PPTP nào đó trên Linux, đây là cách cung cấp nhiều tiện lợi nhất. Tuy nhiên, có nhiều nhược điểm phát sinh:
- Cần phải có một Windows Server làm front gateway; chi phí không phải thấp. Hơn nữa, M$ nổi tiếng là bèo nhèo về security và dùng Windows làm Gateway trong quan điểm của tôi là không thích hợp. Nếu mua thêm một ISA server nữa thì quả là quá tốn kém.
- Cần phải được cài đặt, cấu hình bởi quản trị hệ thống và phải nằm trong chính sách/quy định của công ty. Việc này không phải là khả thi với tất cả mọi nhân viên.
- Incoming SSH Tunneling: Cũng có thể được tạo ra và sử dụng một cách dễ dàng, bảo mật. Một điểm quan trọng là giải pháp này đòi hỏi hầu như là $0 chi phí phần mềm vì hoàn toàn có thể dùng một Unix/Linux server làm front gateway vì trên các hệ nền này đã có sẵn SSHD. Hơn nữa Unix/Linux nhìn chung vẫn ổn định và an toàn hơn Windows, lại hoàn toàn miễn phí. Tuy nhiên nó cũng có nhược điểm:
- Nó vẫn đòi hỏi sự cài đặt của quản trị hệ thống và phải nằm trong chính sách/quy định của công ty.
- Vẫn phải tốn kém ít nhất một máy chủ để chạy SSHD
- Các dịch vụ kết nối từ xa: có nhiều dịch vụ trực tuyến hỗ trợ việc này, chẳng hạn LogMeIn, pcAnyWhere... Các dịch vụ này có cả ưu điểm lẫn nhược điểm:
- Ưu điểm: Máy làm việc và máy ở nhà đều không cần có IP thật, dễ cấu hình, hầu hết có thể dùng trình duyệt web để điều khiển
- Nhược điểm: Khá nhiều. Đa phần đều là dich vụ phải trả tiền nếu không thì kết nối không phải là dạng kết nối bảo mật. Đa phần sử dụng Java Applet. Người dùng luôn phải lệ thuộc vào sự tồn tại của dịch vụ online này. Một số dịch vụ đòi hỏi máy từ xa phải là máy Windows và điều này là vô cùng đáng ghét. Kết nối chậm vì phải thông qua máy chủ của nhà cung cấp dịch vụ (thường là ở nước ngoài, trong khi văn phòng công ty và nhà đều nằm trong nước và thậm chí còn nằm chung trong mạng khi sử dụng cùng nhà cung cấp dịch vụ Internet)
Lật ngược suy nghĩ
Tuy nhiên, nếu nhìn lại kỹ hơn, bạn có thể thấy rằng những điểm sau đây đã bị bỏ qua:
- Nếu máy ở nhà dùng ADSL hay dialup thì hầu hết đều có IP thật, tuy có thể động. Việc này có thể dàn xếp tốt bằng cách dùng các dịch vụ dynamic DNS.
- SSH Tunneling là 2 chiều. Nếu dùng Local Forwarding thì chỉ mới tận dụng được một nửa sức mạnh tunneling của SSH mà thôi.
?!?
Hoàn toàn có thể được mà lại đạt được nhiều thứ:
- Không cần phải có bất cứ thiết lập nào của công ty, máy làm việc trong công ty chỉ cần kết nối được ra internet không thông qua proxy (hầu hết các cty đều cho phép việc này.)
- Không tốn bất cứ chi phí phần mềm nào (SSHD trên Unix/Linux thì có sẵn, trên Windows thì có FreeSSHD và OpenSSH chạy với Cygwin). SSH Client thì rất nhiều và cái free chạy tốt hơn cái phải trả tiền.
- Không bị ràng buộc bởi hệ điều hành. Không có chuyện anh phải là Windows User (hừ!)
- Có thể thực hiện rất nhiều loại kết nối, không riêng gì các kết nối để điều khiển từ xa
- Thậm chí có thể kết nối đến máy khác trong công ty (ặc ặc, vụ này căng à nha)
- Kết nối hoàn toàn bảo mật, thậm chí bảo mật hơn khi dùng public key authentication
- Kết nối là trực tiếp từ máy ở nhà đến máy công ty, không thông qua hay lệ thuộc một dịch vụ trực tuyến nào (bạn có thể không đồng ý vì vẫn lệ thuộc các dịch vụ DNS động, tuy nhiên cái này hoàn toàn có thể vượt qua được nếu chịu khó tự lập trình. Khi đó, chẳng cần ai bên ngoài cung cấp dịch vụ cả.) Và khi đó, bạn tự vận hành dịch vụ cho chính mình, không lệ thuộc ai cả.
Nhưng bên trong nó ẩn chứa vấn đề:
- Nếu máy trong cty là client, bạn không có trong cty, ai vận hành chương trình client? Bạn cần phải kết nối vào được thì mới tự tay vận hành được, nhưng phải vận hành được thì mới kết nối vào được chứ! Ặc ặc, trứng và gà.
Không!
- Nếu mình không tự tay vận hành được thì mình sẽ để chương trình client đó... tự vận hành mà cung cấp thông tin từ xa để nó biết nên vận hành thế nào! (Nghe hơi giống IoC nhể :D)
- Mà như vậy thì chương trình client đó không thể là các SSH client bình thường được. Cũng chẳng sao. Java có JSCH. Chạy tuyệt vời. Tại sao không tự viết một SSH client chỉ cần tunneling và khả năng tự vận hành theo chỉ thị từ xa? (thông qua HTTP connect chẳng hạn ?!?!)
Rõ ràng là làm được!
Nhưng vấn đề là phải code :(
Phải chăng, cái đầu của developer nó vậy? Nghĩ đâu rồi cuối cùng cũng quay về với code.
Thursday, February 15, 2007
Tất niên
Cuối năm, anh Lâm và BoBo bệnh nặng, cả hai bé bị "nhốt" ở nhà buồn hiu...
Tối. Lòng vòng mua mấy món đồ. Vác một chai Gold như anh Phước dặn về nhà. Chai Gold này để dành mai đón Gấu :). Này Gấu nhá, mai tớ cho cậu chít nhá >:)
Mai Gấu về, vui thật nhưng nếu có BoBo và anh Lâm chắc là vui hơn nhiều lắm...
Tối. Lòng vòng mua mấy món đồ. Vác một chai Gold như anh Phước dặn về nhà. Chai Gold này để dành mai đón Gấu :). Này Gấu nhá, mai tớ cho cậu chít nhá >:)
Mai Gấu về, vui thật nhưng nếu có BoBo và anh Lâm chắc là vui hơn nhiều lắm...
Sunday, January 28, 2007
Running more than one Firefox instance in the same X
It's sometimes really handy to run two or more Firefox instances simultaneously for testing purposes or the likes. This seems to be impossible since Firefox allows only one instance of it per user session. Running multiple "firefox" commands just creates new windows which share the same session data (cookies, authenticated sessions...)
Thanks to Linux, SSH and the X architecture which together make running multiple instances of Firefox in the same screen possible.
Step 1: Start your X and login with an account, start the first Firefox instance.
Step 3: Start the second Firefox instance by invoking "firefox". Enjoy :)
Thanks to Linux, SSH and the X architecture which together make running multiple instances of Firefox in the same screen possible.
Step 1: Start your X and login with an account, start the first Firefox instance.
[dgthanhan@localhost ~]$ firefox&
Step 2: SSH to your own localhost using another account with X tunneled[dgthanhan@localhost ~]$ ssh -X monkeya@localhost
monkeya@localhost's password:
Last login: Sat Jan 13 02:11:45 2007
/usr/bin/xauth: creating new authority file /monkeya/.Xauthority
monkeya@localhost's password:
Last login: Sat Jan 13 02:11:45 2007
/usr/bin/xauth: creating new authority file /monkeya/.Xauthority
Step 3: Start the second Firefox instance by invoking "firefox". Enjoy :)
[monkeya@localhost ~]# firefox&
(Note: This guide is only for *nix user)
Wednesday, January 24, 2007
Friday, January 12, 2007
Thursday, January 11, 2007
Testing the Ad for Picscout
Hic hic, hôm nay phải viết một chương trình "demo" cho Picscout để thử khả năng post quảng cáo trực tiếp vào các dịch vụ Blog. Mình post thử cái này lên để thử nghiệm..
Không biết có chạy được hông nữa :-s
Còn đây là cái quảng cáo tạo ra từ Javascript. Cái này là căng thẳng nhất nè. Hy vọng chạy được :-ss
Chạy được hông ta...
Không biết có chạy được hông nữa :-s
Còn đây là cái quảng cáo tạo ra từ Javascript. Cái này là căng thẳng nhất nè. Hy vọng chạy được :-ss
Chạy được hông ta...
Subscribe to:
Posts (Atom)