Research, Dev, Share

Moving My Blog

Posted in Software Development by Khang Vo on March 21, 2011

Hi all,

I finished all my blogs/posts/comments to my new blog: vodkhang.com

Please visit me at that address

Thanks for following my blog

Freelancer Lessons and Strategies

Posted in Career, Freelance, Learning, Management, Programming Language, Software Development by Khang Vo on January 23, 2011
freelancer jobs

freelancer jobs

As my plan in Adelaide, I want to get some job to earn money as well as keep me up to date with industry technologies. However, this turns out to be much harder than I believe when Adelaide is such a small city that does not have many IT companies here.
Then, I started my second option in my plan to looking for freelancer jobs and going to websites that offer freelancer jobs to see what I can get from there, and things are growing up fast enough and I learnt some key lessons over the my new job.

 

Price

Price was my first concern over deals and bid to get accepted a project. However, I can see that most of times, price is not the top priority for employers. What they care is they can have a high quality product in a short amount of time with a reasonable price. My strategy is to pick a fixed hourly rate for myself when competing and then just calculating over the number of hours I need to work and give them a general price.
I try to convince people about quality, in many terms: communication and product. I think it is true for any work with clients to try to exceed their expectations, try to understand their problems well and do exactly what solves their problems. The price can be higher but we can save time, money and make people feel safe, they would hire us. So, don’t aim for only price. Put one that is reasonable and prove clients that it is worth every penny

Outsourcing

This is always a way to cut down the business cost. People hire me because they want to look for more reasonable price with the same quality. And I can make another step to outsource them back to Vietnam developers. It cut down the price for me and the client and I can save my time to more important jobs, such as studying in my university🙂 (Supposed to be the most important one)

There are certainly more aspects about management when you have to do outsource and communication with customers when both of these are remote only. I don’t forget about technology lessons that I learnt and expect to learn and work over these freelancer works. These will be shared on the next entry.

References:

Image source: http://freelancejobfeed.blogspot.com/

Why should we join and support community?

Posted in Community, Competition, Learning, Open Source by Khang Vo on January 15, 2011

There are always people keep asking me the same question: “Why do I actively join free community like Stackoverflow/BarcampSaigon/MobileDevCamp/My Blog/Top Coder? What is the value and the benefit?”. It is nice that people ask this question and actually think about it. And I hope that I can answer them fully with this post somehow.


vodkhang on stackoverflow

1/ Fun.

It is fun. Really? Yeah, it is actually fun. Wait a little bit, why is it fun for working? I love playing game, I love to see my level going up and my mark changes everyday, I love beating the top challenging problem. It is just so fun there. If you still suspect this for somehow, I would rather ask you why you play football and play guitar in the church outside of working time. If you think this is not a good example because people don’t have headache over those things, then we take a look at some others. Do you play chess? Why do people play chess and what is the value and benefit when playing chess? If you can figure out the answer at this point of time, then we are done. It is fun, that should be it.

At this point of time, if you still don’t feel anything fun to do so, I don’t know if you should continue reading about other benefits: brand advertising, learning and contributing. If you don’t get fun out of the work, especially the overtime work, it is hard to persuade the goal just by other visible benefits. Moreover, these benefits are only long-term seeing and require lots efforts and time.

2/ Brand Advertising/Social Networking & Trust.

Brand Advertising and Social Networking is important. When you actively join communities, you get to know more people and more people get to know about you. Nobody knows if these people turn out to be your next employer or your next friend that can help you out in the difficult situations.

I partly believe in the theory that sometimes, we should hire people that we are familiar and can trust rather than hiring some talented stranger. So, when people can see how you engage to help the community, people started to trust you. The more people know about you, the more people may trust you. And when people can trust you, they can give you the chance to work together or hire you as an employee or even work for you.

Moreover, these things are not built overnight, there is no overnight success. It may take you couple of months, or even years to write a blog and only your friends read it. It is the same with answering on stackoverflow, topcoder. It takes years for you to reach to an acceptable point that people start to recognize your name/your company’s name.

3/ Learning & Contributing.

Open Source

Now, we go to the last reason. It is the last not because it is the least important reason, it may be the most important reason for many people. However, many people want to see the something visible, something that either gives them lots of money or reputation to move forward to their career first. So, I just leave them read things they want to read first.

It is so obvious. When you answer something in stackoverflow, it is either help you to solid your knowledge or help you to think deeply to debug. I really like debugging on stackoverflow, it is challenging. You have to find the bug as soon as possible, and sometimes, you don’t have debugger, you don’t even have IDE to help you. You just read over the code, verify each line of the code and try your best to guess the part that can create the bug. That’s challenging and fun, actually.

References:

http://iphonedevelopment.blogspot.com/2010/12/non-deterministic-problems-aka-finding.html

Image Sources:

http://stackoverflow.com/users/flair/227698.png

http://en.flossmanuals.net/floss/publish/WordPress/rsrc/WordPress/Introduction/icon_big.png

http://t0.gstatic.com/images?q=tbn:ANd9GcQj7UR1webcv1NlEzFaRpAUeudZjWyOYYAA27iiaxot4X9vdDa2

Happy New Year – New year with new chances and success

Posted in Wishes by Khang Vo on January 1, 2011

Happy New Year

 

Happy new year to everybody. Hope you all have a year of happiness with friends and families and a year of successes.

I am really looking forward to new opportunities in CMU (Carnegie Mellon University), working in Australian and American company as well as freelance iPhone development job.

Thank everybody for a year reading my blog and I feel so good about this. I always have a good feeling when my contribution to the community gets better and better and brings real value to you, readers.

 

Tagged with: , , ,

Applyzer – more statistics for iPhone Apps

Posted in Iphone, Statistics by Khang Vo on December 19, 2010

 


Review example from Good Reader

Review example from Good Reader

Just a quick note and introduction over Applyzer : a website that gather all reviews from all countries and rankings of your app in those countries. This is a good thing because iTune does not allow you to view all reviews at the same time and switching the country is so painful that nobody will ever do it. The ranking is also good that let you decide to focus on some countries rather than others if your app requires a little bit localization

 

Windows Phone 7 v.s iPhone Presentation in Barcampsaigon

Posted in C#, Iphone, Objective-C, Software Development, Windows Phone by Khang Vo on December 12, 2010
Windows Phone 7 and iPhone Presentation

Windows Phone 7 and iPhone Presentation

Here is my presentation with Nghia Dang on the topic comparing the differences between Windows Phone 7 and iPhone Development. I share it here for others who cannot come. Contact me (vodkhang@gmail.com) or Nghia (nghiadang@kms-technology.com) if you have any questions:

Kms-Technology

Trying, Running, Failing and Motivation

Posted in Career, Learning, Motivation by Khang Vo on December 10, 2010
Running And Failing

Running And Failing

I am extremely happy these days, I got a full scholarship of CMU – the first one I got after, uhm…, 10 or more scholarship submissions. This one goes by some luck. You may not believe in that, I don’t either till it happens. I started applying and the decision is out for less than 2 weeks and I had no plan for this scholarship until the chances come and I took it seriously. Here are 3 things I learnt from this happy event.

1/ Keep trying, you do not know what happens next.

Some people love perfection and are scared of failures to try. In many cases, trying does not cost you much except, some money and efforts and in some cases, it is free to try. One important decision I made is to talk and then email CMU representatives to ask some information about my specific case with important background. That let me know some important information about the admission process and I took advantage of it successfully.

For things that are uncertain, the only way you can be sure about is to try it. Start up, scholarships and R&D job is like this. Sometimes, things go out of your hand and strategy, then you just keep moving fast to the next goal.

2/ Everything you do, either success or failure make you one step further

I am happy that I tried to apply for President Award of RMIT Vietnam although I didn’t get it. It was a huge step preparation for me for the scholarship. There is no way that I can prepare all documents like transcripts, recommendation letter in around 3 days without any earlier work.

Another thing that I learnt from the failure of President Award is that my approach is kind of not correct. I tried a with a crazy approach in the award essay just to see what happens. And, I think the result gives me some feedback over the approach for the next one.

3/ Fail and run again

I mean RUN, actually run not just to go ahead step by step. I am willing to fail while I am running than moving slowly to the goal without any failure. For some people, failure is not an option, you are not allowed to fail. However, in my opinion, passionate is necessary but not enough for people to be successful; sometimes what matters is to keep the highest motivation for long time. Only challenges keep me motivated and moving with my best skills and efforts. That’s why I love the Google quote: “65% of impossible things is better than do 100% of possible things”. Here is what you get from that kind of fail, you know that you did a great thing, you are motivated about what you do all the time and you know you are doing something only a few, the best people can do.

And I always remember the Edison quote, you don’t fail 1000 times, you just found 1000 ways that things do not work, and I am happy to get a confirmation if a way is a fail as soon as possible.

CMU Students

CMU Students

Just some information about CMU and my courses there:

– Top 6 in 2007 in Engineering and IT QS World University Rankings

– Top 12 in 2010 in Engineering and IT QS World University Rankings

– #1 in Computer Science Schools (US News and World Reports)

I hope that this is a great step to the next big goal:)

Property, Synthesize and Dealloc – Code Generation

Posted in Iphone, Objective-C, Software Development by Khang Vo on November 25, 2010

This is my new generation script, mainly copied from here with some improvements to meet my needs:

– Change the dealloc to [self.variable release] instead of [self.variable dealloc];
– Change the @outlet variable to check for the “UI” prefix rather than letting it put IBOutlet everywhere or I have to use 2 scripts at the same time.
– Add some of my own into the assign list

XCode Code Generation

The second one is not a perfect solution for IBOutlet but considering that it doesn’t harm much except let some annoying IBOutlet out.

Twitter: XAuth + Sharing

Posted in Iphone, Open Source, Software Development, Twitter by Khang Vo on October 31, 2010

Showing a place for logging and sharing a tweet in Twitter with my new library. You now can use XAuth without even understanding about how it works and you also have a nice facebook-style pop up.

For details about XAuth and how to use the XAuth functions, you can follow this link: Aralbalkan’s blog and his feather apps.

For showing a Twitter Pop up Dialog, I appreciate the effort of DDSocialDialog and the quick image is like this:

DDSocialDialog for Twitter

My Career – A year look back and fro

Posted in Career, Intelligent System, Iphone, Software Development, Usability by Khang Vo on October 25, 2010

vodkhang's career stepIt has been almost one year from my first full time job day (4/11) and since that day I have learnt a lot of things and sharing lots of things in my blog, stackoverflow, facebook and twitter. I will try to summarize and make a general view for my career in the last year.

Web Development
My first work is Scala researching – a still hot technology and growing quickly until now.

Although currently, I do not work much in Web Development, but I will try, for sure, come back to this field again. Why? My vision about this field is still hot, highest and most challenging technology for scalable system is still here with the born of lots of things like Cloud Computing, Google App Engine, Scala, Ruby and Clojure. Maybe my next programming language for the web is Ruby. I already have the intention to jump into here. Hope that my colleagues in KMS can help me to catch up this technology fast.

The good thing about Web Development now is that we have Google App Engine and some App Store for the web is growing. With the born of Cloud OS which will happen soon, I hope that I will have the time and chance to come back, either individually or as a developer in the company.

Artificial Intelligence
This area is cool by its name and it is part of a reason I went to Melbourne last year. I had chance to work full time on it and even it was not a success, I learnt a lot from it. What I think is that I will try to focus on Computer Vision and Machine Learning (and may be Agent system) with the intention to apply them into iPhone someday. Why is iPhone? Because I still need to do something with commercial purpose and dealing with iPhone will at least give me some financial benefit in short term. And with iPhone and client technology, I don’t have to deal with massive amount of database problem which I have no chance to practice.

Related to Artificial Intelligence, I intended to take Phd from years ago. However, my decision now is something industry oriented rather than academic environment. I appreciate the academic environment, which is good to work and learn what you like but for now, I think I do not prefer it.

Mobile Development

I came to this area by luck, I didn’t really intend to jump into. iPhone programming is cool by its design, working in limited environment and dealing with memory management. There is another challenge for building iPhone app for me is how to make it the best for user, in other terms, usability.

I learnt lots of things about usability over last few months after reading some books: “Don’t make me think” and “User Interaction Design”. This viewpoint is a little bit from a designer’s perspective rather than a developer’s one. This is cool and make me understand more about users. To be honest, before I do iphone development, I am scared of designing (both in terms of graphics and interaction) and I don’t get love in it. But now, I think I can do at least interaction design well.

Other stuff
Working in iPhone let me have time to learn something else that I am scared about. Git in terminal for example. I am scared of terminal and scripting and all those administration stuff before. I am also trying to do a lot of testing in iPhone, from UI Automation Testing to Unit Testing which make me fall in love. I love the Google Testing Blog’s Term: “If it ain’t broke, you’re not trying hard enough”. Now, I feel so bad for anytime I cannot make a software crashed🙂. It is also good that I am still looking forward to improving my productivity day by day, automation process, hot keys and dual monitor was what I achieved. The next stuff will be emacs, for example.

My current love in technology can be said: “user, automate and scale”.

PS: To be honest, I hope that this is the first time I can focus 150% into working and researching. For the whole last year, I had to spend so much time in university assignments, exams and then GRE. Those things do not just take off my time but also kill my energy and passion so fast, while those things are either not challenging, boring or just I do not love it.

Follow

Get every new post delivered to your Inbox.