Powered By Blogger

Wednesday, November 4, 2009

The Benefit of Web 2.0 from Social Perspectives

I. What are they?
Internet has become so familiar. With chatting and email, people can contact others from far away immediately. Moreover, many people use internet for looking for specified information or reading news. There are also millions of web pages that contain many kinds of information. It’s normal for someone to have their own webpages. And web is still in its endless development to become better, more useful and friendlier. This essay will talk about an upgraded version of web - Web 2.0, what it is and what benefit it brings to the social networking.


1. What is Web 2.0:
Web 2.0 is second generation of web that allows users interact and share information with other users more widely and easily. In addition, new technologies like Asynchronous JavaScript and XML (AJAX) or Flash can also be used to make the web be faster and more user-friendly. Moreover, Web 2.0 also contains online applications which users can work with directly on the internet and there’s no need for installing anything but internet and web browser.


These websites could represent Web 2.0:
a. The biggest multilingual free-content online dictionary: Wikipedia (wikipedia.org).
b. The most popular social networking site: MySpace (myspace.com).
c. The service with interact maps: Google Maps (maps.google.com)


Some of Web 2.0’s particular points:
a. Web 2.0 is always a beta version. That means it’s always changing. There’ll never be a full version or complete version of Web.
b. Web 2.0 allows users to customize and operate the web’s content as their will.
c. Web 2.0 is based on community intellect and the wisdom of crowds. Everyone can share their own information and knowledge with others.
(O'Reilly, 2005)

In conclusion, with Web 2.0, people are not just able to read information but they can also add their own information.


2. Blogs and wikis:
Blogs and wikis are two familiar contents of Web 2.0. They allow people to express themselves more easily and freely. People now can reach many people from many places they’ve never known before.

Blog is shortening of “web log”. It is like an online personal diary or journal. People normally use blogs to share their personal or professional opinions with others with the same interest. The readers are informed about new entry through RSS and can comment to show their own ideas. Blogs are connected to each other and can be found using search engines.

Why are people using blogs? First, most of them are free. Moreover, blog users can easily create and maintain blogs without knowing anything about something like HyperText Markup Language (HTML). Finally, it’s easy to connect to other people through blogs. That’s why the number of blogs has doubled every 5 months. (Vossen and Hagemann, 2007)

What’s about Wikis? Wikis are web pages using wiki software which enable anyone to create and edit the wikis’s content just using web browser. They are places where everyone can come to read, search for information and share their own. In other words, normal users now can be both reader and author. The word “wiki” is from the Hawaiian word “wikiwiki” which means “fast”. Wikipedia (wikipedia.org) is one of the best-known wikis, and there’s also WikiHow (wikihow.com), WikiMapia (wikimapia.org)…

Since everyone can add, edit, delete wikis’s contents maybe without registration, wikis’s accuracy is based on community intellect. It has been proven that wikis are not flawless. For example, Wikipedia has 3.86 mistakes per article on average. (Vossen and Hagemann, 2007)

Like blogs, most wikis are free to use; sometime people are not even required to register. It’s also simple to create or edit wiki’s articles. And wikis content links that connect to other pages or wikis.


II. What am I going to talk about?
Web 2.0’s got a very important role in building online social network. According to Zimmer (2008), data strongly flow from site to site, from people to people through Web 2.0. He also said “Everyone can and should use new Internet technologies to organize and share information, to interact within communities, and to express themselves”. As a matter of fact, people now can connect to others with the same interest simply and easily.

For example, 43 things (43things.com) is a social networking site that allows everyone to create accounts and then talk about their hopes and what they want to do. Other members can discuss and share their own opinions about how to achieve the goal.

Another popular social networking site is MySpace with more than 100.000.000 registered user (2006). MySpace provides an interactive network for people internationally where they can share profile, photos, music and videos.

Web 2.0 enables people to express themselves, connects them to others, and provides them online applications that they can use directly. But is it totally good? It is; even there are many opposing ideas about it.

According to Gorman (2007), “a world in which everyone is an expert is a world devoid of expertise”. Gorman also said that it’s not like a book; a web article can come to the community directly without any checking and editing, and even if it’s a bad one, many people will be able to read it before it goes off. And many people also prefer reading Wikipedia than a published book (Gorman, 2007). However, the readers have their own knowledge and experiments too. And the real editors are also using the internet. What are the differences between editing a book and correcting a web article? Why do e-books become so popular? Because people get used to reading from their computer or pocket devices which have internet connection, and it’s really a quick way to get the newest information. Finally, wikis are not perfect, their contents do have mistakes, but there’re professors from around the world who are able to correct those mistakes.

Gorman (2007) said “Do we entrust the education of children to self-selected ‘experts’ without any known authority or credentials”. For example, creators and editors of a Wikipedia’s entries are usually unknown; they can actually be anyone without any advance degrees. It’s even worse that they can claim about being professionals and who’ll know (Gorman, 2007). Actually, most of Wikipedia’s entries are summarized from multi sources by different creators and editors; they usually have citations and references so they can be verified if necessary. Moreover, Wikipedia doesn’t mean to be a replacement of the existing resource system, it’s an addition. One of Wikipedia’s important notes is:
“Most educators and professionals do not consider it appropriate to use tertiary sources such as encyclopedias as a sole source for any information — citing an encyclopedia as an important reference in footnotes or bibliographies may result in censure or a failing grade. Wikipedia articles should be used for background information, as a reference for correct terminology and search terms, and as a starting point for further research”.
(http://en.wikipedia.org/wiki/Special:Cite?page=none)
Wikipedia itself asks people not to cite from it but check the references. Its entries shouldn’t be use as references for academic purpose but they provide general and background knowledge.

Zimmer (2007) said that the increased flow of information across networks is a fear. People who want to search for information will be overwhelmed by the huge data on the internet (Mann, 2007). However, those huge online resources lead to a new way of learning. They get the newest and then let everyone see it. In reality, people are always thirsty for information; they want to know not just about their own major but also about how to have a better life, how to make their wives happy, how to fix the broken washing machine… If they plan to travel to Australia, they will want to know how that country is like, how the weather is, when the earliest plane will depart and which hotel is the cheapest… With Web 2.0, they can not only get the information they need, but also find other ideas along with it. It’s like learning the same thing but from many teachers with many different views. They can choose the most suitable one or even create their new way and share it with others. Moreover, the information can be updated endlessly by people from the whole world.

Another opposing idea is if everyone can be author, then who will be the audience? Who is going to read and listen and watch? (The Good, the Bad and the Web 2.0) It can be seen that with Web 2.0, people now can be both author and reader. If someone is a real author; it doesn’t mean he or she will never read another author’s books. In addition, Web 2.0 give people space to express themselves, to get along with other people with the same interest, not to become a big star. People do not only want to view art from famous artists, they also want to view common thing like how others live, how the world looks from other views.


III. So?
The importance of Web 2.0 in social networks is clear. It allows people to explore the world from many views just with their computers. It is people, the way people look at it is also the way they look at themselves. Web 2.0 is improving endlessly; it’s always changing to be better but there will never be a perfect Web 2.0. And like a coin, Web 2.0 has 2 faces: a bad one and a good one. It’s not good or bad entirely but it depends which face is being looked at.


References:

• ‘The Good, the Bad and the Web 2.0’, 2007, The Wall Street Journal

• Gorman, Michael, 12 June 2007, ‘Web 2.0: The Sleep of Reason’, viewed 4 July 2008, .

• Mann, Thomas, 27 June 2007, ‘Brave New (Digital) World, Part II: Foolishness 2.0?’, viewed 4 July 2008, .

• O'Reilly, Tim 2005 ‘What Is Web 2.0? Design Patterns and Business Models for the Next Generation of Software’, viewed 1 July 2008,
<>

• Vossen, Gottfried & Hagemann, Stephan 2007, Unleashing Web 2.0 from Concepts to Creativity, Morgan Kaufmann

• Zimmer, Michael 2008, ‘Preface: Critical Perspectives on Web 2.0’, First Monday, vol. 13, no. 3


Wednesday, October 21, 2009

Re: To refactor or not to refactor

From Programmer to Programmer

Re: To refactor or not to refactor by KAMIL MANOJKUMAR DHULESHIA and To refactor or not to refactor by YU HONG TAN

Refactoring is changing an application’s or a bunch of code’s internal implementation while keeping its external functionalities.

Refactoring is to improve code’s quality, readability, understandability etc.

Refactoring is an important part in TDD when all the tests are written first, and then code is altered/refactored to pass all the tests.

So to refactor or not to refactor? My answer is YES

Why programmers refactor their code? Well, I believe no programmers like their code to be smelly.

Kamil said refactoring is not an ideal thing to do 5 minutes before deadline. I agree. Refactoring is time consuming, and it is too risky to alter to code at the last moment. It is better to leave it for the next release.

But Kamil also said when to refactor is when you need to fix a bug. It’s not right my friend, a bug is what causes your code to work incorrectly. Fixing a bug is not refactoring. The only exception is when you are doing TDD, while you write your unit tests first.

Another thing I don't agree with Kamil is when to refactor is when adding function. Kamil himself just said in his blog “Refactoring does not add any functionality to the code but it does make the code more efficient”. Did he confused himself? Modifying the code to add a function is not called refactor. Functionalities are to be kept unchanged while refactoring.

Refactoring is simply a process to eliminate repetitive code in a software system without changing the behavior of the actual system – Yu Hong said. It’s not completely wrong, but refactor is not that simple. How's about making your code more readable and understandale?

I strongly disagree with Yu Hong saying “There are times that the code for that system that is being refactored is too complex; it is not worth the time and money to process any further refactoring the code”. More complex the code is, more likely it needs refactor. After all, a complex code is made up from many simple one. Refactor helps simplifying the code, give it a better shape, which is ready for being reused and maintained.

There’s one important thing that both Kamil and Yu Hong missed, automated tests are essential and perquisites while refactoring. Tests guarantee refactoring won’t break the code, or make sure the code’s functionalities unchanged.

Bibliography

1. What is Refactoring http://c2.com/cgi/wiki?WhatIsRefactoring
2. Software Refactoring http://www.refactoring.be/talks/tom-mens/refactoring.pdf

Thursday, October 1, 2009

TDD When to and When not to

TDD When to and When not to
From Programmer to Programmer

1. What is TDD?
TDD is Test Driven Development, a software development technique that relies on the repetition of a very short development cycle: First the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards. (http://en.wikipedia.org/wiki/Test-driven_development)

2. When to use TDD
2.1 Productivity and Quality are must-have
TDD is a way to design software for testability. TDD ensures all code is covered by tests. Moreover, testing and debugging each small part is easier than testing and debugging the whole system.

With TDD, developers spend more time for testing, and less time for coding. As developers write unit tests for their own code, and only the necessary codes are written to pass the test, TDD means quicker, goal-oriented, cleaner and simpler coding. In addition, developers are kept on track.

Well-written unit tests can be used as an important part of documentation ? reduces document.

So, TDD makes software more stable, reliable and testable.

2.2 Goals and Requirements are clear and fixed at the beginning, or rarely and slightly change
In TDD, developers refactor their code to improve it while keeping the functionalities. If there is no clear goal or requirement, it is not only troublesome to decide with test should be used, but refactoring may also be a nightmare when functionalities are totally changed.

With TDD, when there’s a new implementation, the first thing to be considered is how it will be used, not how to build it nor how to implement it ? more user-oriented. However, a clear goal with detailed requirements is preferred. If how user interacts with the new implementation is unknown, we can not use TDD.

2.3 Developers are experienced in testing
One good thing about TDD is that developers must fully understand requirements to write tests.

Another good thing about TDD is that there are many testing tools that help developers save time and effort.

3. When not to use TDD

3.1 Experimentation and thrown-away products, they are for understanding, learning new things or getting feedbacks
Application Development is driven by Test, not by Usability or Scalability… while they may be things that we want to get feedbacks.

TDD slows down the process as many refactoring have to be done during developing. In case of experimental products, time and effort are essential.

3.2 Agile Development, when there are a lot of unknown
Changes of UI and API often cause tests to fail.

TDD requires a clear goal, but in Agile Development, requirements are unclear and often change. Therefore, every time requirements are changed, tests need to be rewritten.

3.3 Developers have no or few experiences in testing
If developers have no skill in testing, it may happen that unnecessary tests are written, or the whole system is not test-covered. And both cases promise no good things.

It is nearly impossible to measure how many tests are enough or how to 100% tests the system. Poor design will lead unnecessary tests. It is a waste of time, money and effort.

Integrated (and complicated) test must be also considered. Other while, all parts may pass the test but the whole system does not.

It is hard to write test for Interface, Database, and Concurrent Programming.

Good unit tests require testing skills and experiences. Testing a whole system need various testing techniques and testing tools.




Bibliography


1. Functional Test Driven Development, http://bizdriven.blogspot.com/2005/11/functional-test-driven-development.html
2. If you do Test Driven Development all the time, you’re doing something wrong, http://www.thekua.com/atwork/2008/02/if-you-do-test-driven-development-all-the-time-youre-doing-something-wrong
3. Introduction to Test Driven Design, http://www.agiledata.org/essays/tdd.html
4. Kiessig, R. (2007). Companywide cumulative Test­Driven Development.
5. Sinaalto, M. (2006). The impact of test-driven development on design quality.
6. Test Driven Development - Is it good or bad?, http://msmvps.com/blogs/paulomorgado/archive/2007/03/29/test-driven-development-is-it-good-or-bad.aspx
7. Test Driven Development, http://pooya.khamooshi.com/Pages/MyArticles/TDD.aspx
8. What’s the best argument to convince developers to learn TDD?, http://stackoverflow.com/questions/913458/whats-the-best-argument-to-convince-developers-to-learn-tdd
9. When TDD Goes Bad #1, http://weblogs.asp.net/jsgreenwood/archive/2004/11/26/270503.aspx
10. When TDD Goes Bad #2, http://weblogs.asp.net/jsgreenwood/archive/2004/12/29/343963.aspx
11. Y. Dubinsky and O. Hazzan. (2007). Measured Test-Driven Development: Using Measures to Monitor and Control the Unit Development. Journal of Computer Science

Monday, July 20, 2009

Great power comes with great responsibility


I've just watched Spider Man 2 and 3 again.
I really like part 2 which portrait a very human Spider Man.
Even Peter Parker/Spider Man has super power, he is still like any normal young man.
He has to go to school, has to do research, has to work and earn money to live, and has a girl that he is ready to die for.
His super power is also his problem, like a man in the movie said: "Great power comes with great responsibility", Spider Man is responsible for using his power to help people.
When he is in his costume, when he is Spider Man, he is a hero, people love him.
But when he is back to Peter Parker, he does not have enough time to take care of his own life. He misses classes, he is late to work and lose his job, he can not come to see his girlfriend. Someone may say "What a loser" and I may agree.
And that is when Spider Man asks himself "Should I continue?"

I think many people must have the same feeling some times in their lives. Have you ever wondered why you are working so hard for? Do you get paid enough for what you are doing? Do you deserve more than that?

Which one is more important, your responsibility or yourself?
Do what you should do or what you want to do?
Or try to want to do what you should do?

I have to answer those questions myself many times.
And I still wonder what the right answers are?

Wednesday, June 17, 2009

Winter Break Starts

I have finished the last exam this morning. Not so good, not so bad.
Enterprise Java, I love the subject but I hate the lecturer.

Now I have 7 weeks plus 3 days until next semester. 52 days. 1248 hours. Wow.
My first plan is traveling around Melbourne. I have been here for more than 1 year and spent most of the time with my laptop. It's so embarrassing.
I wanna go to Sydney and Tasmania as well. But money could be a problem.
At least I'll try to go in the next two years.

Another thing I wanna do is improving my own softwares that I have been working on.
Create some design documents, separate the old codes to many tiers, apply what I have studied in the last semester... Time-consuming but interesting things.
I also plan to post them here someday.

Have a good winter time, my friends.

Thursday, April 23, 2009

I love you Mom

Last Sunday was my Mom's birthday. My phone card which I had used to call to my country was expired so I sent my Mom an email. I said happy birthday to Mom and asked her if anything happened at home. I also wished her good health, and told she to take care of herself. Well, I and my sister are far away, my Dad is so busy with his business and he is not at home often, so my Mom must feel very sad and lonely. Fortunately, my girlfriend is able to come by sometimes, and I hope it helps.

My Mom sent me a reply two days later. Of course she said something that a mother usually says to her son. But there was one thing that I haven't heard from her for a long time: she said "I love you". Even I know that deeply, I still love to hear those words. They make me feel so warm.

I do not really know how to show it either but I love you too, Mom.

Tuesday, April 14, 2009

Let's start

Finally, I have some free time to start making my new blog more alive.
This one is my 2nd blog, my first one is on Yahoo!360 which is dying.
The difference about this new blog is that it will be in English only.
First of all, I want my blog to be read by other than just my Vietnamese friends.
Second, even I have been in Australia for months, my English writing skill has not improved much, so I want to practice more.
Well, I have been so busy with many assignments in Swinburne. They are all big and time-consuming. In addition, my girlfriend is coming soon, that makes me cannot completely concentrate in studying - I guess it is one of my greatest weakness.

I went to BVRC this morning looking a some voluntary jobs. There are some really cool positions.
I like the one which works at Swinburne as it is convenient. Maybe they prefer an native English speaker. But, well, you will never know until you try and it doesn't hurt to try.

I will try to finish the assignment about Java Spring Framework within the next two days. It has taken me so much time. I still need to complete the cover letter for CIC subject and study for the test next Tuesday as well. So tiring they are. If I am hard-working enough, maybe I will have some time for new posts. Yeah, I have been thinking about some topics that are related to programming.

OK, see you soon.