Thursday, December 30, 2010

Cách vào Facebook ở Vietnam

Như chúng ta đã biết, một vài nhà cung cấp dịch vụ Internet ở VN lại chặn trang web facebook.com 1 lần nữa. vài ngày nay
Đây là một trong những cách đơn giản nhưng hiệu quả để vào facebook

Nếu bạn không rành về computer network, chỉ cần làm theo 3 bước sau:



  • Bước 3: Mở web browser lên, giữ phím Ctrl, và bấm phím F5. Rồi vào facebook  http://www.facebook.com

Hi vọng mọi người thành công.


Giải thích thêm 1 tí về kĩ thuật:


Họ chặn facebook bằng cách nào ?
Vài ISP như VNPT, Viettel, FPT kiểm soát đường mạng Internet nội bộ  VN với mạng Internet toàn cầu.
Họ thêm vào trong cái blacklist của firewall (danh sách đen để chặn trang web) với format *.facebook.com

Vì sao cách phía trên sẽ work ?
Nó chuyển domain facebook.com thành IP, 1 con số (153.16.15.71) địa chỉ máy chủ của facebook. Neu dung tool nay check (http://whatismyipaddress.com/ip/153.16.15.71), ta se thay thong tin sau:

General IP Information

Hostname:www.lisp4.facebook.com
ISP:Usenix/UUNET Technology Incorporated





Tuesday, September 14, 2010

The Law of the Negation of the Negation - Mobile App Programming




The history of young Software Engineering is just in 65 years.

  1. Big Mainframe in big room -> 
  2. Personal Computer at your personal workspace -> 
  3. Mobile (Smartphone) in your hand -> ...

Seem I have to back to 2004, when I first learn How to program for "computer" again. The Android phones, iPhone is just a kind of computer.


Step 1: Find some textbooks, both printed and ebook.
Step 2: Write down a Information Tree for easy learning 
Step 3: Take a class lectures (Now I call video lectures on Internet)
Step 4: Use the philosophy of IBM "THINK" means 




READ - LISTEN - DISCUSS - OBSERVE - THINK


Step 5: Do exercises, "Practice Makes Perfect"


Cool Ebooks:

Programming in Objective-C 2.0 (2nd Edition)

Learn Objective-C for Java Developers


Friday, September 10, 2010

When 2 becomes 1 ?








1) On January 24, 1984, Apple Computer Inc. (now Apple Inc.) introduced the Macintosh personal computer, with the Macintosh 128K model, which came bundled with what was later renamed the Mac OS operating system.

from http://en.wikipedia.org/wiki/History_of_Mac_OS
2) The first independent version of Microsoft Windows, version 1.0, released on 20 November 1985, achieved little popularity. It was originally going to be called "Interface Manager" but Rowland Hanson, the head of marketing at Microsoft, convinced the company that the name Windows would be more appealing to consumers.
=> Nowadays, Windows OS is number 1.
Thanks Mr.Gates. Without him, I can not study computing, because in 2002, I do not have money to buy the toys of Apple.
The first PC, I assembled. Cool!


1) In 1995, the AltaVista is launched, a web search engine owned by Yahoo!. AltaVista was once one of the most popular search engines at this time. (http://en.wikipedia.org/wiki/AltaVista)
2) September 15, 1997, the Google is born.
=> I can not imagine in someday when Google is die. How does the Internet look like ?
But I remember that how I learned how to Google before how to use chat softwares like Yahoo Messenger.


1) 2007, the World is known what the iPhone is, how is it cool, innovation, blah .. blah ...
2) Android has been available as open source since 21 October 2008


My first Android smartphone
And I still believe Android Will Become Number One , yes. from the first time I known.


From the source:
http://www.readwriteweb.com/archives/android_will_be_number_2_mobile_operating_system_worldwide_by_2010.php





Every people can choose the "High Tech Religion" for their belief. Democracy, yeah ...

Wednesday, May 5, 2010

How to write a Hello World program for multi-billion users



1 - Some current news, some inspirations

http://www.forbes.com/2010/04/29/moores-law-computing-processing-opinions-contributors-bill-dally.html


2 - Some technical viewpoints




" Functional programming - treats computation as the evaluation of mathematical functions and avoids state and mutable data. "

So what am I thinking? The mutable data means, you have to or "must" control which function takes this data first if there are some functions concurrently refer to it.
E.g:
Normal case:
Integer n = 1;
n = n + 1;
System.out.print(n);
You get 2
Concurrent case:
Integer n = 1;
A thread do n = n + 1;
A another thread do n = n - 1;
2 threads use the shared object "Integer n".

2.1 - The waiting for your dinner

  • What happens when you share a fork with your friend. You have to wait him.
  • Yes, you must use a lot techniques to solve some classic multi-process synchronization problems.
  • One of them is the dining philosophers problem(http://en.wikipedia.org/wiki/Dining_philosophers_problem)
  • I notice the deadlock happens as it describes "The philosophers never speak to each other, which creates a dangerous possibility of deadlock when every philosopher holds a left fork and waits perpetually for a right fork (or vice versa).
  • The cause of this problem is "the shared resources" , here is the fork. We have 5 philosophers , and just 5 forks for them.
  • If each philosopher has 2 forks, so nothing to share, and everyone can take his dinner independently.

2.2 - How to write a Hello World program for multi-billion users

In practice, what happens when you develop a system for multi-billion users. If you use the Google, you will understand what I mean.


View more presentations from xlight