Archive for the ‘Community’ Category
Google Objective-C coding standard
I am not sure what coding standard you follow, but I usually follow the Objective-C coding standard of Google for code formatting:
Spacing And Formatting
- or + and the return type, and no spacing in the parameter list except between parameters.@public and @private access modifiers should be indented by 1 space.@ label on its own line and a space between the @ label and the opening brace ({), as well as between the @catch and the caught object declaration.Me in RMIT and Vietnamese Newspaper
You can read the Vietnamese version here
Many software engineers and IT professionals dream of developing a ‘killer App’ for popular products like the iPhone, which will make them rich. Other people dream of one day having a book published. Not many achieve either – and even fewer do so in their early 20s. But Vo Duy Khang (formerly student 3184092), an alumnus of RMIT Vietnam’s Bachelor of Information Technology program, has hit the jackpot with success in both of these areas – and now has the makings of a successful business spanning both Vietnam and Australia. Khang graduated from RMIT Vietnam in November 2010 and travelled to Adelaide, Australia, where he is now completing a Master of Information Technology with Carnegie Mellon University, under a full scholarship. With the benefit of the scholarship, Khang has been freed up to apply his own financial resources fully to get a small business off the ground while he also continues his studies. His hard work and talent have been recognised Khang’s creativity and expertise has also been applied to a new business start-up in this field which already has five people on staff in Australia. Khang has been visiting Vietnam in the past month seeking further talent from Vietnam to join his operation. Almost all his development team to date are RMIT students or graduates. “They speak English well, and they all have a good understanding of what is needed,” Khang says. According to Khang, the basis of a good user experience of any iPhone or iPad App is good performance. There is enormous potential in helping social networking applications such as Facebook to provide a better user experience by moving data in a quicker and smarter way over the net. Apress has been impressed by his thinking in this area, as shown on his own website and as shared amongst the online community overseas. One of Khang’s mentors has been Barend Scholtus, Academic Services Manager for the Bachelor of IT program, and the two continue to discuss shared interests regularly. “We hope – in fact we are pretty sure – that Khang’s learning experiences at RMIT Vietnam have made contributions to his achievements to date, and we hope the best is yet to come.”
![]() Khang (sitting) sharing knowledge with friends in Barcamp 2011
Khang’s book on Amazon: http://www.amazon.com/Apps-Performance-Optimization-Professional-Apress/dp/1430237171/ref=sr_1_1?ie=UTF8&qid=1321662306&sr=8-1 Facebook page: http://www.facebook.com/vodkhang
|
iTunes U – a great learning hub
It would be so surprised for me that very few people ever knew about iTunes U. Come on, what’s wrong here? It is a great place for you to study through Harvard, Yale, MIT, Stanford and Carnegie Mellon. And all courses are free. Many people dream about these universities, so I think it is worth my efforts giving an advertisement and some introduction.
1/ Open iTunes and choose iTunesU
2/ Select the university you want to learn
3/ iTunesU has a lot of cool universities: Harvard, MIT, Stanford, CMU
4/ Courses at Yale
5/ Download the video you like
High Risk – High Return
People always say about how passion can make you successful, and there are plenty of books around that topic. So for now, I will just look at the problem by some limited financial perspective: High Risk, High Return. Well, all financial guys know this theory, huh? So, I just try to see what I did and achieved in these terms.
Since I was in high school, I started thinking about what would motivate me, what would make me feel good when I did something. I preferred taking risks to get a really good outcome rather than staying and following a safe path since my high school. Until some recent days, I recognized that this is the only way for me to get an excellent outcome in a short time. High Risk means High Return.
The Safe Zone
There is not much fun and passion if I just stay in my safe zone. Everybody does that, there is a safe way for you to go. And most of the time, I feel bored with going that safe way. Passion is important, but I feel that if I don’t go further and take some risks doing what I love, I don’t love it enough. Is it so much fun if you always know how the future works?
Passion will always give you to the edge of the safe zone, you can understand and see further than other people. Now, the thing is that you need to step out of that safe zone and take risks. If you are really passionate about something, do you want to see it become a huge success. If yes, make it! make the future!
The best way to predict the future is to create it.
Since the beginning of my career, I started asking myself “What to learn next in the IT career?” and how I can predict the future of this IT industry. And then, the more I move forward into the career, the more I know that the best way to predict the future is to create it. That’s why I get more involved in what I love and believe, joining open source community, try some start-up and cutting edge technologies.
No surprising, one of the most risky situation in IT is to try to invent some new product. People may or may not adopt your product, you may not find any users. And nobody may believe in your idea except yourself.
Robocode New Beta Release
Robocode has released a beta version for 1.7.3.0, I am happy to contribute 1 feature and 1 bug fix in this release. Please download, test it and tell us any bugs you found
Reference:
New Twitter XAuth and Sharing on iPhone
This Twitter sharing library for iPhone has a great User Interface, comparing to my current library for Twitter Sharing, the only problem is that it does not work with new XAuth project. So, I decided to take that UI and merge into my existing codebase for twitter xauth and sharing. The new library allow you to login, share and logout
https://github.com/vodkhang/Twitter-XAuth-and-Sharing
And here is the result. It looks great and really like the UIAlertView in iPhone
http://amanpages.com/sample-iphone-example-project/multiple-login-for-twitteragent/
Remote working and management
Working as a freelancer, I have to deal with many remote works, including working remotely with my customer, my colleagues and my employees and it certainly has some different difficulties from other sitting together jobs. Here are lessons that I have been learning from these jobs:
Communication
Our good tool for communication is skype, IM and teamviewer. We try to keep a good and frequent communication with clients before our approach is too far from what they expect, or in case they want to change their requirement frequently.
As other oursourcing jobs, it is normal that we have to wake up early or sleep lately to match clients’ time as well as developers’time. Communication requires lots of patient and understanding from both sides. Many clients told me that they never meet a software developer like me, who can sit down, listen and talk with them about what they need, how to improve their app’s qualities. I am happy with this commendation. Sometimes, I even do not need to ask for bonus, but they are generous to give me more bonus to reward my efforts working for them.
Trust
Remote management requires trust on your employee. I am never a fan of a strict manager. My strategy is to manage adult, not manage children; therefore, we have to trust them working hard and passionate. We try to hire best developers that we can, and they should do their jobs automatically with integrity without any strict control from managers.
People may keep asking me how I manage my employees when I am in Australia, how to prevent them from cheating me. I do understand that with a loose management like this, it is hard to ensure 100% no cheating but whenever I hire a best developer with high motivation, they will just work on it themselves. An important part of managing is to foresee, to plan over the next few months to few years strategies not to just stand behind every developer to make sure they do not cheat. Trust and integrity are important.
This reminds me the time working at MultiNC, my first job. My boss was never in office, rarely asked us where the project was going on. What we, as developers do, is to try our best to create a best application based on the strategy that we set up. We frequently brought the products to the manager and asked for feedback.
Self-motivation
Trust will relate to self-motivation. You can only motivate yourself when you know that your managers trust you and you feel happy and freedom about your work. I would not be surprised when many developers feel bad about their jobs and think that they just do low level jobs. Because managers treat them as resources, give them low level jobs and never trust them in doing their jobs best. Money is not enough to motivate people. For me, people are motivated by giving them enough money, enough challenge and enough respect to do what they love doing.
My book: Community and Opportunities
I am happy to announce that I encountered a book contract with Apress to write about iphone development. This will be a great opportunity and new experience for me when I have never written a real book before.
That is just part of the main content of this blog, I want to share my own thought over community support (as I already said at this blog post about Community Support) and how it would help me to reach this kind of opportunities. An Apress staff contacted me after he read my blog series about iphone development. This helps me to restate again that if you do good thing for other people, chance will come back. Real chance, real value, not an artificial reputation.
Supporting community and make lives better is my personal long-term goal as well as my company’s long-term goal.
Advertising:
Visit vworker to hire best employees
Why should we join and support community?
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.
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.
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
Windows Phone 7 v.s iPhone Presentation in Barcampsaigon
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
















