Tuesday, August 31, 2010

12 Things to Consider When Shopping for a Laptop

Laptops are everyday items for business, home, and study use. If you haven't ventured into purchasing one for yourself yet, do you feel confident enough to work out what type will best suit your needs? After all, they come in many different sizes, colors, and types, making it a challenging choice to find the "right one". This article is aimed at walking you through the key considerations prior to purchasing a laptop, to ensure that you end up with one that will serve your needs well.


  1. Consider whether a laptop has the advantages you're looking for. If you haven't had a laptop before, it can be a good idea to consider the possible benefits of owning one. When compared with a desktop, laptops have the following advantages (and disadvantages):
    • You can take a laptop with you wherever you go, even abroad provided that you take a power adapter as well.
    • Laptops are now more affordable and competitive in their pricing.
    • Many laptops can do what we expect most desktops to do.
    • Laptops save on space and are easy to move out of the way.
    • There are a few negatives: Laptops are easy to steal if you forget to take care when traveling with them. Their battery life isn't extraordinarily long and can be frustrating if you want to work without electricity for a long period of time, such as on a plane or sitting at the shore near your vacation cottage. The average lifetime of laptops is also significantly lower than for desktop computers. If you plan on using your laptop exclusively, you will probably have to upgrade after two years. Due to the proprietary nature of laptop hardware, even something as silly as a broken mouse button or gummed up keyboard can't be fixed without mailing the laptop back to the manufacturer, usually at cost to you. 

Wednesday, August 25, 2010

20 Things I've Learned From Traveling Around the World for Three Years

On March 13, 2007, I handed over the keys to my house, put my possessions in storage and headed out to travel around the world with nothing but a backpack, my laptop and a camera.

Three and a half years and 70 countries later, I've gotten the equivalent of a Ph.D in general knowledge about the people and places of Planet Earth.

Here are some of the things I've learned:

1) People are generally good. Many people are afraid of the world beyond their door, yet the vast majority of humans are not thieves, murderers or rapists. They are people just like you and me who are trying to get by, to help their families and go about living their lives. There is no race, religion or nationality that is exempt from this rule. How they go about living their lives might be different, but their general goals are the same.

2) The media lies. If you only learned about other countries from the news, you'd think the world was a horrible place. The media will always sensationalize and simplify a story. I was in East Timor when the assassination attempts on President José Ramos-Horta, and Prime Minister Xanana Gusmão in 2008. The stories in the news the next day were filed from Jakarta or Kuala Lumpur, not Dili. It was all secondhand news. I was in Bangkok during the political protests this year, but you'd never have any idea they were taking places if you were not in the immediate area where the protests were taking place. The media makes us scared of the rest of the world, and we shouldn't be.

3) The world is boring. If there isn't a natural disaster or an armed conflict, most places will never even be mentioned in the news. When is the last time you've heard Laos or Oman mentioned in a news story? What makes for good news are exceptional events, not ordinary events. Most of the world, just like your neighborhood, is pretty boring. It can be amazingly interesting, but to the locals, they just go about living their lives.

Tuesday, August 24, 2010

Manually installing the JDK 6.

Setting up the JAVA_HOME and PATH variables:
 Copy 2 dong nay xuong cuoi file .bashrc
export JAVA_HOME=/home/hvnsweeting/jdk1.6.0_21/bin/java
export PATH=$PATH:/home/hvnsweeting/jdk1.6.0_21/bin
Setting up the default JRE
root:~$ sudo update-alternatives --install "/usr/bin/java" "java" "/home/hvnsweeting/jdk1.6.0_21/jre/bin/java" 1
root:~$ sudo update-alternatives --set java /home/hvnsweeting/jdk1.6.0_21/jre/bin/java

Is Oracle Becoming the New Microsoft?

Is Oracle Becoming the New Microsoft?

In the span of just one week, Oracle made two major moves that sent open source aficionados into fits: It sued Google over alleged misuse of Java and shut the door on OpenSolaris. "Oracle is an enemy of everyone," said blogger Martin Espinoza. "It is in their best interest to keep their fork of MySQL weak, and indeed to do anything they can to sell seats of Oracle, the world's most overpriced RDBMS."

"Oracles are dumb," the great John Milton once wrote, and though it may not be the meaning he intended, that's a fair description of the prevailing sentiment in the Linux blogosphere these days.
It's a single Oracle (Nasdaq: ORCL) being referred to today, of course -- Oracle Corporation, that is, owner of Sun, jealous protector of Java and Solaris, and just possibly the most widely despised company in the FOSS arena of late, excepting of course Microsoft (Nasdaq: MSFT).
Is it any surprise? Between its little lawsuit against Google (Nasdaq: GOOG) and its decision to pull the plug on OpenSolaris, it surely must have expected at least a little Linuxy wrath.
Let's just say it can't be disappointed.

'The New Darth Vader?'

"Is Oracle becoming an 'evil empire?'" was the headline over at ZDNet, for example.
"Oracle: The New Darth Vader?" was the question asked at PCWorld.
"Oracle is appearing to become more and more of a roadblock to Linux development," wrote helios on LXer, meanwhile. "If it can be used to make their stockholders happy, then we're in good shape, otherwise, don't look to Oracle for any altruistic behavior on the FOSS front."
Comparably dark thoughts were being expressed about the company by bloggers far and wide, so Linux Girl knew it was time to dig deeper.

'An Enemy of Everyone'

"Oracle is an enemy of everyone," Hyperlogos blogger Martin Espinoza told LinuxInsider. "It is in their best interest to keep their fork of MySQL weak, and indeed to do anything they can to sell seats of Oracle, the world's most overpriced RDBMS."
Sun was "buying companies and firing the knowledgeable -- and thus expensive -- employees as fast as it could, and then it was bought by Oracle, which can only mean that those purchased products will go downhill even faster," Espinoza added. "Many of them are things which businesses depend on, and which were good products before they were purchased by Sun and it became impossible to get support On-demand Remote Support - Free Trial from LogMeIn Rescue: Fast, secure solution for today's most popular platforms..
"I can only imagine that Oracle sees itself as a sort of future Computer Associates, except more successful," he concluded. "I see them as eventually becoming more of the same."

Feeling Unsafe About http://

On the WebSockets mailing list, there is a heated discussion going on about whether or not WebSockets should be deployed over TLS (aka “https”) or not.  The common misconceptions about TLS arise, of course.  But it has become increasingly clear that most people view protocol security completely backwards, because of HTTP.  (Thanks to Jim Roskind for crystallizing this)
Today, we view the web as two protocols:unlocked
  • HTTP:  The protocol of the web
  • HTTPS: The secure version of HTTP.  Cool!
But we should think of it like this:
  • HTTPS: The protocol of the web
  • HTTP: The insecure version of HTTPS.  Yikes!
We shouldn’t feel safe when we use https.  We should feel unsafe when we use http.
Our vantage point is backwards because we started with the notion that security is an “add on”.  In today’s hostile networking environment, nothing could be further from the truth.  Security is not a feature, but a requirement.  Offering an “insecure” version for those that want to play risky should be the optional feature.  This just becomes more true when you think of the fact that new protocols will be in use 10 years from now…

[IMG]The Programmer Hierarchy [Funny]

[IMG] Slow motion Karate chop

Friday, August 20, 2010

Why That Girl in the Bar Looks Hotter After You've Had Five Beers

"Everyone looks better after you've tipped back a pint or two, and now we may know why. It turns out that alcohol dulls our ability to recognize cockeyed, asymmetrical faces, according to researchers." Discovery News 08/17/10

What advice would you give to a graphic design student?

 Design does not equal client work.
It’s hard to make purple work in a design. The things your teachers tell you in class are not gospel. You will get conflicting information. It means that both are wrong. Or both are true. This never stops. Most decisions are gray, and everything lives on a spectrum of correctness and suitability.
Look people in the eyes when you are talking or listening to them. The best teachers are the ones who treat their classrooms like a workplace, and the worst ones are the ones who treat their classroom like a classroom as we’ve come to expect it. Eat breakfast. Realize that you are learning a trade, so craft matters more than most say. Realize that design is also a liberal art. Quiet is always an option, even if everyone is yelling. Libraries are a good place. The books are free there, and it smells great.
If you can’t draw as well as someone, or use the software as well, or if you do not have as much money to buy supplies, or if you do not have access to the tools they have, beat them by being more thoughtful. Thoughtfulness is free and burns on time and empathy.
The best communicators are gift-givers.
Don’t become dependent on having other people pull it out of you while you’re in school. If you do, you’re hosed once you graduate. Keep two books on your nightstand at all times: one fiction, one non-fiction.
Buy lightly used. Patina is a pretty word, and a beautiful concept.
Develop a point of view. Think about what experiences you have that many others do not. Then, think of what experiences you have that almost everyone else has. Then, mix those two things and try to make someone cry or laugh or feel understood.

Design doesn’t have to sell. Although, that’s usually its job.
Think of every project as an opportunity to learn, but also an opportunity to teach. Univers is a great typeface and white usually works and grids are nice and usually necessary, but they’re not a style. Helvetica is nice too, but it won’t turn water to wine.
Take things away until you cry. Accept most things, and reject most of your initial ideas. Print it out, chop it up, put it back together. When you’re aimlessly pushing things around on a computer screen, print it out and push it around in real space. Change contexts when you’re stuck. Draw wrong-handed and upside down and backwards. Find a good seat outside.

[IMG]History of the Internet


Thursday, August 12, 2010

10 dự án lập trình viên PHP nên trải qua

Đối với một lập trình viên PHP bạn luôn hiểu rằng PHP là một ngôn ngữ phổ biến và có một lượng khổng lồ mã nguồn để tham khảo, đa số các thành phần của một Website đã được phát triển dưới dạng nguồn mở việc sử dụng nó yêu cầu tuân thủ theo giấy phép của tác giả đôi khi không bao gồm sự ràng buộc nào.
Việc mở mã nguồn mang lại rất nhiều lợi ích so với việc bạn giữ mã nguồn của mình trừ trường hợp thương mại hóa sản phẩm, đơn cử như:
  • Mã nguồn mở được đóng góp bởi nhiều người, kết quả của sản phẩm được làm bởi nhiều người sẽ tốt hơn rất nhiều so với việc bạn phát triển một mình.
  • Dễ dàng cập nhật tính năng mới dựa trên sự đóng góp mã nguồn của các nhà phát triển khác nhau.
  • Giảm thời gian phát triển, giảm giá thành sản phẩm...
  • và nhiều lợi ích khác nữa... :)
Tớ đã làm việc với PHP trong khoảng 4 năm trở lại đây, bản thân là một Freelance Developer nên không tự cho rằng mình là Master PHP bởi tớ luôn sử dụng PHP như một thành phần phát triển theo ý thích chứ không tâm niệm mình phải làm chủ được ngôn ngữ đó :D Những dự án dưới đây là những thành phần phổ biến của một Website, tính thông dụng của nó như là một bắt buộc phải biết đối với Web Developer.
  • Gửi eMail: Đây là tính năng phổ biến nhất của mọi Website, hàm mail(); là đủ cho hầu hết các yêu cầu khác nhau của người dùng, ngoài ra PHP còn hỗ trợ một số hàm khác nếu bạn muốn đính kèm tập tin hay gửi mail của SMTP server để có thể dễ dàng tạo một chương trình gửi eMail.
  • Hỗ trợ người dùng: cho phép cá nhân hóa nội dung Website, có thể đa sở hữu, phân cấp quyền quản lý thông tin của cá nhân cũng như các nội dung khác. Tính năng chính của thành phần này hỗ trợ việc đăng nhập, truy vấn sửa đổi cơ sở dữ liệu, phiên làm việc...
  • Tạo RSS, tin rút gọn Feeds: Thời điểm hiện tại Website của bạn sẽ được đánh giá là tụt hậu nếu không hỗ trợ Feed trong việc cung cấp thông tin, lấy tin bằng Feed cho phép người dùng đơn giản hóa việc theo dõi nội dung của một Website nào đó. Tớ sử dụng Magpie RSS trong phần lớn các dự án của mình.
  • Xác định vị trí: xác định vị trí địa lý của người dùng đơn giản nhằm thống kê lượng người truy cập nội dung từ nước nào để có thể phục vụ tốt hơn, tính năng này không thật sự quan trọng nhưng đôi khi lại khá hiệu quả nếu bạn muốn biết người của nước nào hay vào Website mình nhất :D
  • Lấy thông tin từ xa: truy vấn thông tin từ nhiều nguồn khác nhau, thích hợp với một cổng thông tin tổng hợp, các nội dung này được lưu vào cơ sở dữ liệu.
  • Lưu tạm dữ liệu {Cache data}: giảm truy vấn tới cơ sở dữ liệu, tránh quá tải hệ thống do phần lớn các dự án cá nhân không được tối ưu về mã nguồn cũng như hiệu xuất làm việc, lưu tạm dữ liệu là một giải pháp đơn giản đề tối ưu hệ thống Website có thể hoạt động ổn định.
  • Hệ thống giao diện: Dễ dàng thay đổi giao diện Website, đơn giản hóa quá trình thiết kế, giảm công sức tạo lập Website mới. Một hệ thống giao diện tốt không có nghĩa là phải đầy đủ tính năng mà chỉ cần đáp ứng được đúng nhu cầu sử dụng, tốt nhất là bạn nên tự viết sẽ hoàn hảo hơn sử dụng của người khác, theo tớ thì Hệ thống giao diện gần như là nhân {core} của một hệ thống quản lý nội dung. Tiêu biểu như Smarty của PHP
  • BBcode: Tính năng thường thấy của các diễn đàn, nó đơn giản hóa việc trình bày nội dung giúp người sử dụng thông thường có thể tạo một văn bản chuyên nghiệp mà không cần biết về mã HTML, khách hàng của bạn sẽ dễ dàng sử dụng nó như một ứng dụng văn phòng mà thôi. Hãy thử StringParser_BBcode vì nó rất dễ tùy biến theo ý muốn của bạn.
  • Hệ thống truy vấn cơ sở dữ liệu: Cơ sở dữ liệu là phương án tối ưu nhất để lưu trữ dữ liệu của bạn, dữ liệu của bạn có thể lưu trong một hệ CSDL lớn như Mysql hay đơn giản như là một Text file thì hệ thống truy vấn cơ sở dữ liệu sẽ hỗ trợ việc truy vấn dữ liệu, đơn giản và giản lược mã nguồn đi rất nhiều, giảm bớt công sức viết mã nguồn. Cũng như hệ thống giao diện nó là một trong những thành phần quan trọng nhất của tớ khi viết một dự án Web. Hãy thử ezSQL để giảm bớt khai báo truy vấn cho từng query của bạn.
  • Môi trường nhập liệu văn bản: Về cơ bản nó là một dạng xử lý nội dung form được hỗ trợ bở Javascript và kết hợp BBCode nhằm phục vụ người dùng một cách tốt nhất có thể, mục đích của nó là cố gắng mô phỏng môi trường làm việc như các ứng dụng văn phòng. FCKEditor là một ví dụ đơn giản nhất :)
Mỗi người một quan điểm khác nhau nhưng ít nhiều ai cũng từng phải làm việc qua một trong những dự án trên, 10 thành phần đó không phải là toàn bộ mà chỉ là thông dụng thôi.

Huyền thoại Ruby on Rails đã sụp đổ nhờ PHP

Cách đây 3 năm Ruby on Rails bắt đầu tấn công vào cộng đồng Java nhờ những lời lẽ khoa trương về sức mạnh của nó. Dereck của CDbaby đã bị xao động và quyết định viết lại website của ông ta dựa trên Rails sau khi tuyển mộ một trong các nhân vật chủ chốt của cộng đồng Rails. Hai năm sau đó Dereck đã thấm đòn: Ruby và Rails không phải là viên đạn bạc cho các ứng dụng web.
Ông ta đã tiến hành viết lại site của mình bằng PHP trong 2 tháng và giảm số dòng code từ 90 000 dòng Ruby/Rails xuống còn 12 000 dòng PHP với những bài học rút ra được từ cách tổ chức ứng dụng theo tinh thần của Rails. Những gì ông ta có được đều rất đáng kể: tốc độ, khả năng bảo trì của ứng dụng, không còn ác mộng về Rails.

Monday, August 9, 2010

Kế hoạch tốt nhất là không có kế hoạch ?!

Cuối tuần trước, tôi trở lại ĐH Princeton, nơi tôi từng theo học hơn 20 năm về trước, để thuyết giảng. Khi đi ngang qua sân trường, tôi chợt nhớ về một nỗi băn khoăn đã ám ảnh tôi một vài tháng trước khi kết thúc quãng đời sinh viên: ra trường tôi sẽ làm gì, giờ thì sao nhỉ?
Tôi đã không nhận được câu trả lời nào. Tôi không có một công việc. Tôi không có một kế hoạch.
Nhưng, hóa ra không có kế hoạch nào lại có vẻ là kế hoạch tốt hơn cả.
Mark Zuckerberg và các bạn cùng phòng chính là những sinh viên nghiên cứu ngành khoa học máy tính không sở hữu một kế hoạch cụ thể nào. Họ phát triển mạng xã hội Facebook đơn giản vì nó rất vui nhộn, thử nghiệm tài năng của bản thân, và tạo ra một cách liên lạc mới lạ cho các sinh viên ĐH Harvard và các cựu học sinh.
Zuckerberg không bao giờ có thể ngờ rằng số lượng thành viên tham gia mạng xã hội này có thể lên đến hơn 400 triệu. Nhưng Zuckerberg cũng chưa có ý tưởng kiếm tiền từ trang mạng này. Tuy nhiên cậu vẫn duy trì trang mạng đến năm 2007, khi mà Facebook cho phép các nhà lập trình khác thiết kế các ứng dụng, và các nhà lập trình trò chơi mua các quảng cáo trên Facebook để thu hút người chơi. Khó có thể nói rằng chiến lược của Zuckerberg bắt đầu từ năm 2004, khi cậu phát triển trang mạng này.

Mini Cannon Firing and Destroying Targets (Among the world's smallest guns)

[IMG] Eye of nature

Sunday, August 8, 2010

Bermuda Triangle Mystery Solved

Computer studies of ocean floors around the world, particularly the area known as The Bermuda Triangle, reveal evidence of massive methane explosions in the past. For years, believers in the paranormal, aliens, and other outlandish theories pointed to the the disappearance of ships and aircraft as an indicator of mysterious forces at work in the “Devil’s triangle.” Scientists have finally pointed the rest of us to a more plausible cause.
The presence of methane hydrates indicates enormous eruptions of methane bubbles that would swamp a ship, and projected high into the air- take out flying airplanes, as well.
Any ships caught within the methane mega-bubble immediately lose all buoyancy and sink to the bottom of the ocean. If the bubbles are big enough and possess a high enough density they can also knock aircraft out of the sky with little or no warning. Aircraft falling victim to these methane bubbles will lose their engines-perhaps igniting the methane surrounding them-and immediately lose their lift as well, ending their flights by diving into the ocean and swiftly plummeting.

Bermuda Triangle Mystery Solved

Thursday, August 5, 2010

Corny , Phoney

Trong tiếng Anh, corn là bắp, nhưng corny không có nghĩa là “rất bắp”! Corny có nghĩa là nhàm, là nhàu nhĩ. Nếu xem American Idol, bạn sẽ để ý thấy giám khảo Simon Cowell hay dùng từ này.

Trong Catcher in the Rye (Bắt trẻ đồng xanh), có một từ rất hay là phoney. Phoney có nghĩa là giả, không chân thành.
Từ corny đến phoney, khoảng cách không quá xa.

Leanr PHP & Python

PHP For the Absolute Beginner

The Python Tutorial


Wednesday, August 4, 2010

7 Reasons Why You Are Time Poor

It is a common complaint, “I don’t have enough time.” In fact, I'd bet that you said these exact words in the last 48 hours.

“I don’t have enough time to...

...finish my work,
...get in shape,
...start a hobby,
...spend with my family.”

While we all have the same amount of time in the day, why is it that some people seem to accomplish a ton more than you? From the President to the postman, people all have the same time frame but accomplish loads more than in a single day that you seem to accomplish in a week.

Why is this? Why do some struggle and drown in their obligations, while others make the impossible seem effortless? Why are some people time poor while others are rich? Which are you?

The only difference is how you choose to spend your time. Here are some things to consider so that your days are loaded with accomplishments.
  1. You Don’t Say No
    One of the biggest mistakes people make is to take on burdens that do not belong to them. When you don’t say no, you find yourself doing other people’s work. This happens both in the workplace and in day-to-day life. Ever find yourself doing someone else’s job simply because you couldn’t say no?
  2. You Don’t Know Your Obligations
    How can you tell if you are going to overflow your bucket if you don’t know how full it is? It is common to over commit your time if you are not aware of all your obligations. You need to make a commitment list. List out and budget all of your commitments from work, life, and community. Only then can you know your remaining time balance.
  3. You Have Too Much Life Friction
    Life Friction is self-inflicted time management. In other words, you create your own crises by your own actions and disorganization. Life friction means extra re-work, increased stress, and wasted time. Ever get back from running errands and realize you have to go back out because you forgot something?
  4. You Lolly-gag
    It is amazing that some of the same people that complain they don’t have enough time are the same ones that lolly-gag and waste it. Ever see that person who arrives late to work and then spends the next hour and 15 minutes getting ready to start working? You don’t need to spend every second of the day under a stopwatch, but be aware of when you waste time whether it is gossiping, surfing the Internet, or recapping the weekend for the third time.
  5. You Don’t Put Your Priorities First
    Ever finish a busy workday only to think to yourself that you didn’t get anything important done? If you don’t put your priorities first, it won’t matter how fast you work, you may never get to what is important.

    You have to be able to say, “I am not going to do this, because something else is more important.”
  6. You Try to Do Everything Yourself
    We all have the same number of seconds in the day. At a certain point, the only way to get more done is to have someone help. But, some people have trouble letting others do work because they feel that no one can do it as well as they can.

    This can be particularly troublesome when a leader will not let their team do their duties and instead tries to take on everything themselves.
  7. You Don’t Finish Things
    When you don’t finish tasks, you are only creating more work for yourself. Tasks undone actually create more work for you. They take more time to pick back up when you return to them. They create unnecessary complications when you leave them to the last minute.

    Ever leave an expense report undone for a long period of time? It ends up taking 5X’s as long to complete compared to if you had done it right away.
What habits or behaviors do you have that keep you time poor?

Monday, August 2, 2010


  1. No shortage of things to do. We have hundreds of open tickets, with difficulty that varies from trivial fixes to substantial new systems.
  2. Extensive feedback on every contribution. You'll learn a lot about how to write better code.
  3. Thousands of unit tests, run on lots of different platforms. You'll learn how to write good tests and keep your code portable.
And of course, being an open source project we're always looking for more contributors, so we will be happy to have any help you would be inclined to give.