Pages

Saturday, January 10, 2009

KBird goes back to Ubuntu

Today, I decide to go back to Ubuntu again. Before, I've installed Ubuntu on VMWare on my Windows OS. However, that's not a good choice. I can not understand deeply about this OS if I can go back to Windows at anytime I want. So, I install it directly on my computer on another partition.

After installing, I found that I have to face to many other problems:
1. I have to find the solution to develop my .NET projects. Currently, I choose Mono and MonoDevelop to solve this. However, Mono currently does not support features in .NET 3.5. I will think about this carefully. Maybe, I will use my Windows to do that
2. Ubuntu does not support popular codec (same to RedHat). However, we can install its additional packages. You can use this command line to download and install necessary codec to play your video/music files.
sudo apt-get install ubuntu-restricted-extras
3. Install package to type Vietnamese. I am using x-unikey. You can search on Internet to install it. However, I need to warn you that installing software in Linux system is not easy for newbie. Most of them require you compile and install from source code. So, to prevent issues from compiling, I recommend you to run this command to download all necessary packages for compilation:
$ sudo apt-get install build-essential
$ sudo apt-get install xorg-dev

4. I usually work remotely from home at night. So, I need to install a VPN client on my Ubuntu to connect to VPN of my company. I choose network-manager-vpnc for this. To install it, please use below command:
apt-get install network-manager-vpnc
After installing, please configure your VPN connection properly and use Terminal Server client (a built-in package in Ubuntu) to do remote desktop.

5. For a long time, I haven't used Linux system. So I have to remember some common commands. I list some good commands that we should know as below

Command

Description
Add & character at the end of your commandRun command in background
dfCheck your free disk space
lsb_release -a  Check your Ubuntu version and code name
dpkg --list | grep linux-image Check Linux kernel on Ubuntu
freeCheck your free memory
vi View a file using VIM editor. However, on Ubuntu, you can use gedit as alternative solution
mount
Mount a device. Fortunately, in Ubuntu we do not need to use this command frequently. The system can help us to mount device automatically.
tar / bzip2 / bunzip2commands using for zip and unzip files.
rpm / dpkgcommands for upgrade/install software packages. In Ubuntu you can use Synaptic to do this.
I will update this list when I remember more.
You also should read this link after installing Ubuntu
13 things you should do immediately after installing Ubuntu

6. Install messengers/skype for communication:
Pidgin is an package available in Ubuntu. You can use this to chat with MSN, Yahoo Messenger, ... However, it does not support us advanced features like: webcam, voice conf, ...

+ Skype is a necessary tool for voice conference. You can download skype from:
http://www.skype.com/go/getskype-linux-ubuntu
Double click on downloaded file to install.
+ MSN: you can use aMSN or kMess. To install them, please download the package from this link:
http://www.amsn-project.net/
http://www.kmess.org/
Note: the package file of aMSN is in autopackage format. To run this type of package file, please read this link: http://www.autopackage.org/docs/howto-install/


7. Capture video on Ubuntu: I usually capture screen as video for demo. So, I have to find a screen video capturing software. In the past, I used Wink on Windows. This program allows us to capture screen as video and export to swf file. I love it. Fortunately, this software has a version to run on Linux system. To install it to Ubuntu, use this command:
sudo apt-get install wink
To run it, open terminal and type: wink. However, you can create an shortcut on desktop to run it for more convenient
To create shortcuts on desktop in Ubuntu: using Launcher.
See this video to understand how to do this.
YouTube - How to Create Shortcuts in Ubuntu

You can find more software for video capturing on this link:
Linux Video capture software
8. I am a fan of Total Commander. This software helps me to copy files/folder faster than File Explore in windows. I find an alternative solution for this: gnome-commander. To get it, use this command to download and install:
sudo apt-get install gnome-commander
9. Mind map tools: Mind map is tool that I usually use in brainstorming and taking note / ideas. In Ubuntu, I use freemind to do this. To install freemind, use this command to install

sudo apt-get install freemind

10. Gantt chart tool: I often use Gantt chart to draw and show planning for my teams. So, I need a tool to do that on Ubuntu. Currently, I am using GanttChart. You can get it here:
http://www.ganttproject.biz/download.php
You only need to download the package for linux (all-dept) to your computer and double click. Ubuntu will do the rest.


I will update this article if I found more cool things in Ubuntu.
Thanks for reading!

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.