Pages

Thursday, November 27, 2008

Thoughts about [clean code] from famous persons

I am reading the book: "Clean code - a handbook of agile software craftsmanship" - Robert C. Martin. In the first chapter, I found some interesting thoughts about "clean code" of famous persons in Software Engineering. I post them here. Hope you like these thoughts.



Bjarne Stroustrup, inventor of C++ and author of The C++ Programming Language


I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled
optimizations. Clean code does one thing well.


Grady Booch, author of Object Oriented Analysis and Design with Applications

Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer’s intent but rather is full of crisp abstractions and straightforward lines of control.


"Big" Dave Thomas, founder of OTI, godfather of the Eclipse strategy

Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. Code should be literate since depending on the language, not all necessary information can be expressed clearly in code alone.


Michael Feathers, author of Working Effectively with Legacy Code

I could list all of the qualities that I notice in clean code, but there is one overarching quality that leads to all of them. Clean code always looks like it was written by someone who cares. There is nothing obvious that you can do to
make it better
. All of those things were thought about by the code’s author, and if you try to imagine improvements, you’re led back to where you are, sitting in appreciation of the code someone left for you—code left by someone who cares deeply about the craft.


Ward Cunningham

Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming. Motive force behind Design Patterns. Smalltalk and OO thought leader. The godfather of all those who care about code.




You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the code also makes it look like the language was made for the problem.



If you are a developer, I advice that you should read this book. This is a very exciting book!

My poem - kiss

I like poems and I do poetry (just in Vietnamese) sometimes. Today, I have a strange thought: why I don't try to translate one of my poems into English? I hope it is still poem in English also. Ha ha.
This is the original Vietnamese version (hope you like it). In this poem, I wrote about a kiss.

Nụ hôn
Bóng tối chập chùng em và tôi
Phập phồng hơi thở cháy bờ môi
Tóc em xõa lấp màn đêm giá
Phủ cả hồn ta kín mất rồi



Translate into English:

Kiss
Is the dark moving or
... you and I?
Hurry in breath, lips are fire
Your hair is so black, cover the dark
Cover my soul... and my life

Do you have any idea about this translation? Is the translated version a poem in English?

Tuesday, November 25, 2008

Gift for you - my favorite VN song collection

I like music, especially songs of Pham Duy, Trinh Cong Son. In VN, we called these songs "Golden songs".
I posted a lot of my favorite songs in another blog: http://baihatvang.blogspot.com
I hope you like them also.
Pham DuyImage via Wikipedia

Monday, November 24, 2008

Open source collaborative working solutions

My girl friend is working in a perfume company (an inter-continent company). The CEO of this company wanted to find a solution to help his workers work in a collaborative environment with highest efficiency. They also need a Customer relationship management system to keep track of their customers information and their business goal. He asked the IT staff to do it.
As the result, they choose 2 software: Highrise for CRM and TeamworkLive for collaborative working system.

I do not have any idea about their choosing. However, I asked myself: what are alternative open source solutions for these needs. Actually, I am interested in collaborative working model. For a long time ago, I've had an idea about creating a software solution for collaborative working, but I do not have enough time to research carefully about this idea at that time.
In this topic, I only show you some open source solutions for collaborative working model that are available on Internet. I haven't had a detail look on these solutions. I hope you can. If you have more helpful information about these solutions or other solutions, please share to me also.



MindQuarry :
Mindquarry is an Open Source collaborative software platform for file sharing (documents, images, media files, etc.), task and project management, team collaboration and Wiki editing that meshes simplicity and functionality. As a result, knowledge workers are able to connect with team members and share information from wherever they are, effectively improving team-work and increasing productivity within the company.








Teamwork

Teamwork is a proven, reliable and friendly web based software solution for managing work and communication in any field. Groupware and project management features are used in an integrated environment, from which you can coordinate and manage hundreds of projects at once. It offers us some cool features for: Project management, Issues tracking, Document managing, Work logging, Smart features (shared calendar, prioritize assignment, ...)
Teamwork has an open source version (written on Java, Database independent). I downloaded it but not deployed yet. I will update you if I have any more information.







Dimdim:
Dimdim is the leading provider of open source web meeting software.
Dimdim is a free web conferencing service where you can share your desktop, show slides, collaborate, chat, talk and broadcast via webcam with absolutely no download required for attendees. It also offers us an open source version. We can customize it as our real needs.









kablink

A single Integrated Collaboration Environment that establishes a collaborative group workspace of people, teams, functions, tasks and content all working together to drive effective teamwork to the next level.

Kaplink is built from Java with Hibernate, Liferay portal and use Lucene as the Full text search solution behind.



If you have any other open source solutions for this, please share to me!
My slogan: Share to get more. I like this.

Sunday, November 16, 2008

livemocha - a success story of social network + e-learning

Image representing LiveMocha as depicted in Cr...
Recently, social network is emerging as a new trend. You can see a lot of social networks over the world: MySpace, Facebook, ... They appear like stars after Big Bang. Each social network has its mission in the real world (not only on Internet). The strength of social network is its community. When you have a big community, that means you have a big chance to get more money!

Actually, social network is only a type of model (a social model on Internet). If you can find a good idea to apply into a social network, that means you created a new model. For a long time, I tried my best to do that (invent new thing with social network). When researching, I found some of my "new" ideas exists in the real world. One of them is: combine social network with e-learning.

This type of social network appear recently. I strongly believe that this is a good model for e-learning. One of success web site applied this model is:

http://www.livemocha.com

The idea behind is very simple: "learning new language by friends over the world".
It creates a big community who wants to learn language by communication directly.

I found a very interesting analyzing in the CEO's blog of livemocha

Based on various research reports that I have seen, this is a market that is well over $20 billion in size with over 350 million people all over the globe learning a variety of different languages. In many countries, people can double their income by learning English because they can get more attractive jobs in industry. And the need has become even stronger given increasing trends towards globalization, immigration and travel.


Currently, Livemocha secures $6 million in funding led by Maveron.
Do you think this idea is interesting?