The Awesome Robots VS Transformo - A Geeky Movie, Done Right.

Jun
20
2008
Published by admin under General | 59 comments

Recently on Reel Connect, one the websites I maintain, a film was posted called The Awesome Robots VS Transformo. It tells the story of three comic book writers who try living the life of superheros and villains to gain inspiration for their first issue. Although openly geeky, this short independent film was well shot and done and had me laughing harder than I had for a while. Before continuing below, I suggest you watch the film for yourself.

Click here to watch The Awesome Robots VS Transformo

Although the film is obviously low budget, the right choice of actors, combined with some good cinematography, makes this film entertaining to watch. I particularly enjoyed the part of the movie where Transformo, ‘transforms’ through a series of short but well-executed camera shots. Aaron Peterson, the producer, did a great job of taking a unique concept, and bringing it to life with the right cast and crew. I think his efforts and those of the cast and crew have created something unique and innovative. I hope you enjoyed it as much as I did.

A Change of Course

May
30
2008
Published by admin under General | 54 comments

Its been several months since I lasted posted. Since my last post, I’ve graduated with a bachelor’s degree in Computer Science and have decided to form my own company, Reel Connect.

In an effort to update this blog more regularly and keep writing on a more regular basis, I’ve decided to write about innovative ideas in general, not just computer programming ones. As I’ve been building web applications that bring innovative ideas from many people together. As I continue to build sites that stimulate innovation and allow people to share their innovative ideas, I will be highlighting other people’s innovative contributions as well as my own ideas, which are hopefully innovative.

The Quest for Excellence

Dec
13
2007
Published by admin under General | 74 comments

Excellence should be the goal of every software engineer and programmer. We should seek to build good software that makes meaningful contributions to society. We should seek to constantly improve our talents and skills to be able to design better, program more effectively and become the best that we can. In our desire for excellence however, we should always consider at the cost of becoming better in our field and how it will effect our life.

There are many at the top of their fields, who are very successful in their careers but whose lives lack meaning and substance. We should not neglect family and friendships or compromise our health or our integrity to make it “to the top”. True success is the measure of one’s life, not just one’s career. It is better to be a good person and an average programmer than to be an exceptional programmer and a lousy person. It is however, better to be both.

Achieving the best of both your professional and personal life is hard, but trying to achieve your greatest potential in your career while failing in other areas in life is harder in the long run and very unsatisfying. The trick to achieving excellence in both is to make a balanced effort all around. This requires planning, preparation and keeping our priorities what they should be. It may mean turning down good opportunities in order to give time to more important things. It also means that we will have to give up what we want now, for what we want in the long run.

Acheiving excellence is a process, something we must constantly work on and improve. We must give the best of ourselves, day after day to the things that really matter. By so doing, we can live a more full life, satisfying and meaningful in all aspects.

 

Improving the Software Development Process

Dec
12
2007
Published by admin under General | 5 comments

Improving the software development process is vital to creating good products. The best products are those that become better in multiple areas, without becoming worse in others. Increasing the speed of a program, while also increasing the amount of memory it takes to run really isn’t making it better, just faster. While sometimes these tradeoffs are acceptable, we should strive to make improvements to our programs without introducing any negative side effects. There are many ways we can make these kinds of improvements in programming. We can fix bugs, improve a program structure and design, implement better algorithms and work together better in teams.

The less bugs a program has, the better it will be. In fixing bugs however, there exists the potential to create additional ones, which makes things worse. By performing regression tests you can avoid this hazard. By using good coding style and following good programming practices you can find bugs faster and stop some from happening in the first place.

Many software bugs and glitches are evidence of poor program design and structure, something that cannot be solved through simple bug fixes. Although proper planning and good requirements documentation can solve some of these problems, there are times we must go back to the drawing board and completely restructure a program. Unseen problems, additional features or misunderstandings can all justify restructuring part or all of a program. We should look at software as a constantly evolving organism that must be refactored in order to survive. Design flaws that are allowed to propagate through multiple iterations of a product will either require many hours to fix or cause the project to fail altogether.

Even the best structured projects will not perform well if they don’t contain good algorithms. Good algorithmic thinking and creation requires research, planning and time. With the proper education and research skills, existing algorithms can be fitted to work in your program, saving you time, money, and frustration. Sometimes a problem is unique enough, however that we must come up a good way of solving it on our own. Again education and critical thinking are invaluable in this process, but we must realize that good algorithms take time to create. Most aren’t thought up in just a few minutes, but take several hours or even days to conceptualize, refine and implement.

When used correctly, teams make these things easier to accomplish. Aristotle corrected stated that the “whole is greater than the sum of its parts”. Good teams notice and fix bugs earlier and they use their collective knowledge to come up with designs and algorithms that would be impossible to create individually. Effective teamwork gets a project done quicker and better and is worth the extra effort it takes to manage and maintain.

Improving the software development process is about facilitating the improvement of the things mentioned above. It requires additional effort and planning, but the investments made early on in a project result in long-term gains. Productivity and efficiency are improved, along with employee satisfaction. Projects that would otherwise fail are made possible. You are able to take on new projects and challenges that you wouldn’t have considered before. Endless bug fixing, slipping deadlines and complaining are replaced with excitement and better products that get finished on-time. Improving the software process isn’t easy, but it’s a sacrifice worth making.

Wasting Your Life Away - The Danger of Online Addictions

Dec
06
2007
Published by admin under General | 50 comments

The Internet has great potential for productivity, but also holds the possibility of harm and addiction. We should be careful when using the internet to maximize its benefits while minimizing its negative aspects.

Here are a few potential online addictions that should be used with caution or avoided altogether:

Pornography - It warps people’s perception of women and love and has contributed to the disintegration of the family and the demoralization of society. Sadly, both women and men are being affected. Its changing men’s perceptions and making them want something that is fake and lacking substance. Women are trying to live up to these unrealistic expectations by changing the way they look, act and dress. Both end up dissatisfied and hurt. Its a dangerous and real addiction for millions of people world-wide and should be avoided at all costs.

Online Gaming - Many computer games are creating virtual worlds when different people around the globe can interact. Many of these massive multi-player games have almost never ending goals that force their users to spend countless hours trying to reach them. Additionally, your virtual character’s is constantly interacting with people who portray what they want to be, not necessarily who they are.

Social Networking/Texting/Instant Messaging - Although these can be good ways to keep in touch with people you know and keep up-to-date on what they are doing, they can be distracting and cause you to not spend as much time as you should forming new relationships or spending real time, not virtual time, with your friends.

The main problem with these addictions is they warp the way you see the world or facilitate living a virtual life, instead of a real one. They can waste your life away by encouraging you to work towards achieving goals that are meaningless or unachievable. It is possible to find good entertainment on the internet, we just need to make sure our lives aren’t consumed by it. By trying to find productive ways to use the internet and by limiting the time we use it for entertainment, we can use this virtual world to enhance our real lives, not replace them.