Be A Manager and Some Qualities I Like About Management and Leadership

Update: Added the last two sections

Article Inspiration: Be A Manager and Some Qualities I Like About Them

Managers. It’s not too hard to find someone who dislikes theirs. You may not always agree with your CEO but you don’t interact with them on a daily basis. Managers, on the other hand, are people you work with almost everyday. They hold some influence on your work, promotion, career path and morale. Even if some people like the company, the team and the work they do, they still end up leaving because of their leaders (related).

I’ve always thought that the hardest and most valuable thing in work is to get a group of smart people to work together toward a common goal.

The article linked above talks about the importance of good management. It also touches on the idea that the people who should be and are more fit to be managers aren’t doing it. If you care about the people around you, have the capacity to lead, know how to be a servant-leader then maybe you are suited to be one.

In some capacity, we are all managers and leaders. I tried to reflect a bit on the qualities that I like and dislike about it. Some of the things below come from stories I read around the web, chatting and interacting with different people and some of my own experiences both in being managed and in leading in some capacity. I’m still early in my career so this may not end up being the same answers 5 years down the line.

A Genuine Interest to Help

This is probably one of the qualities I like best about some of the leaders I’ve interacted with. A genuine interest to help just shows me that you like what you do and you care about team members. You care about the success of the team, the project and each individual. In essence, you are a genuine person.

Passion and Enthusiasm

One of the things that can really bring down a team is a lack of these traits. Do you encourage the team? Do you show that you have energy in the work that you do? Do you show that you enjoy what you do? To the team, maybe it’s just a nice job title for you.You go in the office, answer emails then leave and that’s it. Why should the team be passionate if you, yourself, aren’t?

Get to know the team you lead

In sports, a good coach understands his team. He knows each player’s strengths and weaknesses. He knows who works well together and those that don’t.

If you don’t have this information then it becomes exponentially harder to build a team that’s like a well-oiled machine. You have to understand the people you lead. I think an ideal leader should be able to answer more than a few of the items below about their team members.

  • What are their strengths?
  • What about weaknesses?
  • What are they passionate about? What are their motivations?
  • What makes them go above and beyond? What makes them work harder then they should?
  • What annoys them most?
  • Are they more introverted or extraverted?
  • What type of people do they work best with?
  • What do they like outside of work?

Know How to Build a Coherent Team

With the knowledge from the item above, the next quality that good leaders do is understand how to make the team work. Coming back to the sports analogy, a group of players maybe individually good but might not necessarily work well with each other until a good coach is put in. Most of the time there is someone who’ll figure out just how to make it all fit in. Once that synergy is established, You’ll see that they will try their best to make sure the team is successful because they care about each other.

The process is different for each team and situation. To build that team you may have to go through phases. You may be switching team members on projects, providing another with more direct help, providing a forum for individuals to talk openly, giving team members a chance to bond or something completely different. I’ve seen some people understand how to just what to do through their experience while others just have a knack for it.

Interest in Forming a Bond

I’m not entirely sure if this is optional. Right now, I’m leaning to more of “no”. Once a leader understands his team and makes it work, forming a bond is another step to take. For me, once you have that bond, people will go out of their way to help you and each other out. They will help you make the team better because by then people want to be on the team. How do you build this bond? The first thing that comes to me is to be part of the team. It sounds simple and obvious but somehow I don’t see it always. You could build this bond by talking to people informally, having spontaneous coffee chats, joining team events, asking the team on after-hours events and more.

Don’t Just Delegate, Do Your Part

Yes, the majority of the job is to delegate and assign work to your team. But you don’t need to do it for every task and everything that comes your way. Is it an after work activity? Is it just holding a survey for the team? You don’t have to delegate everything. In fact, it helps the team to be even more productive if you abstract this layer.

Communication and Transparency

Don’t you just hate it when it suddenly rains? Or how about when you are stuck in traffic because there was a road closure you didn’t hear about? We would have felt much better if there was communication. Not exactly from nature but wouldn’t it have been great if a friend told you the weather was going to be bad. Wouldn’t it have been nice to see a sign that says the road closure is happening next week? We could have understood and prepared for it.

To me a good leader is one that can communicate well. Not every decision or news at work is a good one. I think it helps if this is communicated to the team (whether it is good or bad). The team will understand and be prepared for something that will come up and appreciate the heads up instead of scrambling at the last minute.

Communicate and be transparent. What’s happening? Why was this decision made? What were the options? What was the situation? What will happen? You lead a group of people. Be open about the decisions that you do for them. It’s (ideally) for the benefit of those that you lead and not just for yourself.

Related Reading: Servant Leadership

I was reading up on this term originally to see if it defined one of the qualities I wanted to get highlighted. Surprisingly, some of the things I’ve mentioned above are covered in what it means to be a servant-leader. It also holds a lot more qualities as well that I do think are present in good leaders. What is it and how is it best explained? I’ll leave it to the experts. Below are some links.

Related Reading: Other Articles on Leadership in Software Development

I added this section to add some interesting articles that are more specific to software development. The Coding Horror blog by Jeff Atwood always has some great articles on software development from both a technical and non-technical aspect. In the article linked below, he talks about leading in a software development team and how even if you have the best intentions, sometimes you look like a jerk. The other article linked is the original article that inspired the blog post.

Final Thoughts

It’s definitely hard to be a leader. I believe that there is a little bit of leadership in anyone but it takes honing, experience and more to be able to bring out a good leader. It’s way too easy to be a bad one though. If you don’t keep yourself in-check, have reviews and have someone sort of feedback with the people you lead then how can you really tell if you are doing a good job? Something that I try to adhere to is the following: If you care about what you do and if you love what you do, always keep learning and always keep improving.


Frozen: Toronto’s 2014 Ice Storm (Photo Gallery)

Note: You can click any of the photos to start the slideshow. 7 of my “highlights” from the series.

It’s been quite an interesting winter season for 2014. The weather has been brutally cold since December. How cold? It’s now normal to see -20 to -30 degrees Celsius.  Compare that to -5 to -10 of past winters and you can really tell that this is some kind of winter. Anyway, one of the most interesting things that happened this season is the ice storm during Christmas week. What’s an ice storm? It’s pretty much what it sounds like, a storm that has freezing rain. I couldn’t imagine what it would actually look like (still being relatively new to Toronto). I was quite surprised to see the after effects of such as storm. It’s like something out of a video game. Since it might not come often (I hope not), I decided to head out one afternoon and take some shots. These were the results. Not the best shots but decent enough for my freezing hands during the time.


Save Your Data: Tips for Local, Remote and Online Backup

One of the only moments that I remember to backup my data is either when I’m doing something important or (worse) when I’ve already lost some files. It’s frustrating if the second scenario happens but it’s all too common. These days data is everything. We have photos, videos, music or documents that we want to somehow always have a copy of. Different people have different strategies for backing up their data. Some people email themselves documents while others try to post every photo to Facebook. These aren’t bad solutions but the biggest weaknesses to these ones are that they are mostly only relevant for a specific type of data (photos or just documents) and you have to do it manually. I thought I’d share different backup tips to help you keep your precious data.

Just as a side note, the intended audience is the casual computer user and probably running Windows or a few portable devices (mobile phone, tablets, laptops). More technically inclined people will have probably have some backup strategy already.

Your face when you lose your files.

Your face when you lose your files.

Tip 1: Do It Right Now

I thought I would get that out of the way. The easiest thing to do is to procrastinate this. You only really remember the value of something (or someone) when it’s gone. So let’s avoid that by appreciating the value of what you have and keeping it somewhere safe and let’s do it as soon as we can. Don’t worry, we’ll keep it simple and fast so that we can get this over with.

Tip 2: Automate It!

Check your computer right now. You might have a few gigabytes or terabytes worth of stuff to backup. Can you imagine copy-pasting all that? That’ll take forever! We’ll find ways to backup our data that is automated. We’ll set it and forget it. We’d rather spend hours doing something else more productive…like checking out reddit cats.

Tip 3: Choose What You Want to Save 

The only major step that you need to do is to decide what you need to save. You don’t need to copy your whole computer’s hard drive because you don”t need all of it. What we want to do here is save your precious memories and documents.  Those folders for Windows and other applications are important but we can find a copy and reinstall applications. If you don’t backup your files, you obviously won’t find a copy ever again.

Tip 4: Choose How You Want to Save it

The next step is to choose how you want to backup your data. I’ve listed them down below along with their pros and cons. You can choose one or choose all of them. It’s really up to you and how much protection you want.

Types of Backup: Local, Remote and Online


Local: Plug in a Hard Drive

It simply means saving your files on your own machine without the need for anything more than a simple external drive. With the help of a simple application called Crashplan (detailed below), you can backup your current computer’s data easily. The advantages of this approach is that it’s simple. Buy an external drive or reuse one you have, install the software and set it up once. Done. It can’t really be simpler  than that. What about disadvantages? One of the disadvantages to this is it’s limited to one device. You can remove an external drive from a computer to another but that’s too hard. Like we said, we are lazy people. We want to set it and forget it.  The other options below are more suited if you want to save all your devices (mobile phone, tablet, laptop, other computers) data and not just one. The next disadvantage and which I think is the most important is that you are at the mercy of a hard drive. Hard drives fail. That is a fact. If you only use one hard drive to backup your data and the hard drive decides it’s time to go to gadget heaven then your backup is a waste. Luckily, this is easy to mitigate. The app I recommend using (Crashplan) allows you to store your data to multiple locations so you can plug 2 external drives and they’ll be both backed up there.


This application has saved me from headaches and disappointment countless times now. I’ve been using it for I think a few years now and I’m quite satisfied. It’s free, easy, fast and does its job well. The tool allows you to automatically backup folder and files to other devices. There is a free version and a pro version. The great thing about this is that the free version is more than enough if you want a local way of backing up your files. It also has some extra neat features like sending you an email or tweet report of a backup. For example, if you set it to backup once a week, it can email you the report of when it did it and if it was successful or not. Also, there’s encryption on the free version. Anyway, since I started using it, they’ve added a lot of new features as well. Check out the site for more information. Check it out here.

If I’ve sold you on Crashplan, check out this how-to guide from lifehacker although it’s pretty easy to just figure it out as you go.

Alternative: Cobian Backup. There are other more popular backup tools. I just happened to discover this small application a few years ago. It doesn’t have the easy of use and features of Crashplan but it can copy your folders from one location to another. You’ll have to mess around with it but it can do the job. You’ll find more info here.

Multiple Devices is suited for a NAS. Maybe not ancient devices though.

Multiple Devices is suited for a NAS. Maybe not ancient devices though.

Remote: Introduction to NAS

Remote simply means that we are saving our data to a remote location. No, not some remote island in the middle of the Pacific but something like a remote computer or device. There are a lot of different ways of doing a remote backup but one of the easiest ways is through a NAS. A Network Attached Storage (NAS), is a computer data storage device that lives on your network. It’s like your own personal “cloud”.

One of the cool things about a NAS is that you are not limited to one device. Since it lives on your network, all your devices under the network should be able to see it. This means that it doesn’t matter if you want to save a picture you took on your smartphone or a document your working on your laptop, you’ll be able save it to this NAS. There are some other features that are specific to what kind of NAS you choose to get. One very important feature I would consider is something called ‘RAID‘. RAID is storage technology intended to make multiple hard drives be faster or more redundant. The most common to find any NAS is ‘RAID 0’. It simply means that you only get to use (for example) 1 out of 2 hard drives. The second hard drive is a mirror of the first. If one of them fails (which is inevitable) then you’ll be able to salvage your data (hooray!). Of course, this only feature would only be available if your NAS has 2 or more hard drives. You can choose a NAS setup with 1, 2, 4, 8 or more hard drives. Some other neat features are mobile apps for iOS/Android to view and save files on your phones, web browser based access and print server (attach any printer and any device can now print to that printer). Some NAS also come with tools that automatically download torrents  (tv shows, movies) for you. Nifty stuff. Also, most NAS are also power efficient.

There must be a catch, right? The biggest disadvantage of doing a remote backup via a NAS is that it is expensive upfront. A NAS device which has 2 hard drive slots can come in from $150-300. That’s not too bad until you consider that you’ll be adding hard drives which would be $80-$110 each. The total cost for a simple NAS with 2 hard drive slot would be somewhere around $400-500. If you decide to get 4 or 8 slot NAS then it gets pretty expensive. It’s not that expensive if you factor in total cost of ownership over a span of let’s say 5 years (kind of like how a a TV or oven is expensive upfront). It can get more expensive with more bells and whistles but a simple  2 slot NAS is mostly good enough for a home with a few devices.Another disadvantage is natural disasters. In the event of theft or a fire, most NAS devices can’t really save your data in that situation. Some companies offer features like backing up to a device in another house but if your concern is natural disasters I’d rather do a combination of remote and cloud (discussed shortly). 

Synology DS213J

Synology DS213J

NAS to Consider: Synology DS214SE, 213J and Netgear ReadyNAS 102

After doing much research on consumer NAS devices, I came away with 3 devices that I want to purchase if I ever go this route. There are other NAS devices out there that are cheaper or more affordable but these 3 come in the sweet spot of features. They offer 2 slots for hard drives and allow mirroring so I know my data is easier to recover in case of a hard drive failure. They all offer a suite of software that is easy to setup and use. Synology has one of the most robust and feature rich software (called DSM). Besides having a ton of features, they built their software to look and feel like an operating system ala Windows or Mac that is accessible from a browser. DSM also contains “apps” that extend the functionality of your NAS like a download station for torrents. The Netgear NAS 102 comes in at a second for me. It’s not quite as feature rich as the Synology solution but it does have more than enough. Their solution is a more traditional looking website that has all the controls and functionality.

Prices and Links:

Synology DS214SE ($180)
The only difference between this one and the other Synology products below is that this is slightly less powerful hardware.
Canada (NCIX): Synology DS214SE

Synology DS212J ($210)
This is a bit older and just a little less powerful that the newer DS213J but it’s a bit cheaper and could be good enough.
Canada (Amazon): Synology DS212J Diskstation 2-Bay Diskless Network Attached Storage (White)

Synology DS213J ($240-260)
Canada (Amazon): Synology DiskStation DS213J Network Storage Server
Canada (NCIX): Synology DS213J

Netgear ReadyNAS 102 ($200)
Canada (Amazon): Netgear ReadyNAS 102 2-Bay, Diskless
Canada (NCIX): Netgear ReadyNas 102

Hard Drive to Consider: WD Red, Seagate NAS

As mentioned, you need to put a hard drive inside a NAS for it to function. There are a bunch of different hard drives. How do you choose which one to use? To make it easy, just choose a Seagate NAS branded hard drive or a Western Digital Red. Why these? They are optimized for NAS use which means they are low power. They are fast enough for most use cases. The only thing left to think about is what capacity do you want it in. They come in 1, 2, 3 or even 4 TB.

Seagate NAS:
2TB: Seagate NAS HDD 2TB SATA 6GB NCQ 64 MB Cache Bare Drive ST2000VN000
3TB: Seagate NAS HDD 3TB SATA 6GB NCQ 64 MB Cache Bare Drive ST3000VN000
4TB: Seagate NAS HDD 4TB SATA 6GB NCQ 64 MB Cache Bare Drive ST4000VN000

Western Digital (WD) Red:
1TB: Western Digital 1 TB NAS Hard Drive: 3.5-Inch, SATA III, 64 MB Cache, WD10EFRX (Red)
2TB: Western Digital 2 TB NAS Hard Drive 3.5 Inch SATA III 64 MB Cache WD20EFRX (Red)
3TB: Western Digital NAS Red 3TB

The Cloud.

The Cloud.

Online: To the Cloud!

You probably already know the term “cloud” by now. Its a buzzword which essentially mean that you are storing your sending and retrieving your data through a company. It’s the same concept as GMail, Yahoo Mail, Hotmail in that you can access it anywhere but you never really store it locally on your computer. Instead of just email though you can store almost any file. That is pretty much the biggest advantage right there. It allows you to access all your files anywhere and anytime with almost any internet connected device.  You also get don’t need to prepare for anything like a computer failure because your data is stored non-locally.

Although it looks like one of the best solution, if you dig deeper there are a lot of disadvantages. Besides the possible creepiness of three letter organizations possibly looking at your data, you are at the mercy of whichever company you use. In the unlikely event that the company shuts down, you may never get your data back. It is highly unlikely that a company such as Google would ever see this fate suddenly but it is still possible. There is the case of a company/site called “MegaUpload” which was a site where you could upload any file and share it. Without going into too much detail, the company was shut down and it was so sudden that a lot of people were never able to recover their data. Another disadvantage is the need for internet connectivity. I would like to live in a world where we are have a stable and always-on internet connection but most of us are not living in that world. Some countries and a lot of internet providers have a lovely thing called “data caps” which limits your usage especially on mobile devices. Finally, the last and easiest to overlook is the price. Different companies provide different prices but almost all of them require some sort of subscription. It maybe $10 a month but that becomes $120 a year then in 3 years becomes $360. That’s not too bad until you compare it to a $400 NAS setup with 2TB of storage. 2TB for $400 versus $460 maybe 100GB for a cloud provider.

Google Drive, Microsoft Skydrive or Dropbox or any other?

I won’t go into this in detail because the Verge has a great comparison of it already. You should check it out here. Looking at the chart at the end of the article we can see that the average “free” storage is about 5GB. That’s okay for documents but if you really want to save most of your data you’ll probably need a lot more. The price varies per company and you can check out some of the prices in this comparison from the site HongKiat. They get pretty expensive pretty fast. If you decide to choose this route, be sure to factor in price, customer support and features like mobile access, media streaming, etc.


On a personal side note, I’ve been using Dropbox for  about 5 years now. I’ve started using it before “cloud” was mainstream (insert hipster meme). My friends and I started using it as a way to collaborate for school projects but since then I’ve never stopped using it. It felt like at that time it was the only service of it’s kind. It syncs a folder on your computer and uploads all that into the cloud. You can select which folder to share with other Dropbox users. They’ll be able to add, modify and delete as you would any folder. The best part is that it never feels like it’s a service. It’s just like any other folder in your device. It works all so seamlessly. Another major feature is versioning. It essentially saves certain number of versions of your files. So if you edited a document and needed to go back 2 versions, it’s there. If you’ve accidentally deleted it, it’s easy to recover to a certain version. Although the standard “free” storage was 2GB at the time, you can send invite to other users which expands the storage. The company was also pretty fast in developing mobile clients for iOS and Android. The last innovative feature I’d like to note (that was introduced a few years back) is the “Automatic Photo Backup” available on mobile clients. Basically, once you take a photo on your phone, it’s there on your Dropbox account. No more plugging in a USB cord or  attaching it in an email or whatever you were doing before. If only they had that for my DSLR.

Closing Thoughts

Backing up nowadays is easy, companies have realized that a lot of us are too lazy to do it so they’ve crafted products to do it for us. There is almost no excuse to not backup your data. There are a lot of different ways to do it and it’s up to you which way you’d want to go. I hope with this you can make an educated decision. As I mentioned before, each way has it’s own pros and cons and the most effective way of backing up your data is to have a mixed strategy. Goodluck!


Instagram and Smartphone Challenge

So Instagram? It’s pretty easy to hate. People posting pictures of their breakfast, lunch and dinner. Photos compressed to insane levels. Hipster filters of course. Photo rights, what copyrights? Coming from a photography perspective, you would really ask why do so many people use it? Why do so many people like it? Looking at it from a programming standpoint, it’s not a overly complex application. The idea of taking photos and sharing it isn’t even new. We’ve had that from and were doing it through email, Flickr, Facebook and more.

So why is it popular? I can’t say for other people but I have been liking it a lot though. The reasons for me is simply because it’s easy. For me, they have nailed down user experience. Take a photo, add a filter (if you so choose) and it’s shared. That’s it. Your audience now has your new shot. Simple and fast. They are not trying to be anything else.

From my few years in photography, there hasn’t really been an application that allows you to do this so quickly especially on mobile. One of my first few galleries has been deviantart. It’s probably the closest and it’s still not as fluid. From what I can remember, the steps were manually transfer your photo, get it from your gallery, fill in a lot of details about your photo, choose watermarks, copyrights and it’s in your account now. It’s an unfair comparison. Instagram is a smartphone app at it’s core and the combination of it being a smartphone application and community has made it fun for me to shoot it again. It’s taken the hassle of transferring hundreds of pictures, editing them through my photography workflow, exporting and sharing. I see a scene, frame it, shoot and share. It lets me focus on what’s important, my shot.

Focusing on the Shot

In the photography world, we’ve progressed a lot. DSLR videos are so good that its being used to shoot TV shows and commercials. Megapixels are unimportant now. On higher end cameras, the low light performance is spectacular. DSLRs are now affordable to a lot more people. It’s now a lot easier to get into photography. With the focus on performance, technical specifications, expensive gear, some people forget the art in photography. I’ve always thought of it as a good photo abstracts everything else. If I see a good shot, I shouldn’t care what camera the person used. I shouldn’t care what settings or gear they had. Personally, I don’t care if it’s post-processed/”edited” or raw.

Is it a good photo? Is there a story? Does your photo convey human emotion?Does it make you feel anything? Isn’t that what matters?

The Instagram Community

Another good thing I like is the people I follow and the people who follow me. It’s a small amount of people (28 followers and following 35). But the people I choose to surround myself make me appreciate shooting even more. Most if not all are not photographers so I get to have an audience who only looks at the shot. I don’t have people who ask what camera did I shoot it in, what’s the apperture, shutter speed and so on. With the app, everyone is somewhat equal. You both get the same tools, a smartphone and the app. Can you prove you are you a better photographer?

The Smartphone Challenge

Playing around with Instagram for the past month or so has been fun. Instagram has its own challenges. You get one size, a square at what seems like a few hundred pixels. You get one shot and not a gallery. You don’t get much post-processing options. Carrying a smartphone as your primary camera has its challenges as well. Not having my camera with full-controls, not having my lenses, not having a desktop to fully look over shots and post-process them was quite limiting. I had to know the pros and cons of what I had. I have to understand the limits of my camera to get the best shot I can. I’m forced to walk around and not use zooms, think about framing, think more about lighting and time of day, color, shapes, textures and more. On the positive side, you always carry the phone around with you. It’s not bulky and hey it’s easy to share.

I don’t have the best shots granted but I enjoyed doing this challenge. Here are some of my shots.

Now I’m going back to my normal gear and hopefully improved my skills through this. Are you up to the challenge? Why don’t you try it yourself and see what you’ll come up with. I’m sure you’ll do better.

More funky acronyms: SOAP and REST.

Introduction to Web Services and REST

I’m back with a new series of tutorials! This series of posts aims to discuss web services (specifically REST). I am in no-part an expert nor do I claim to be. Feel free to reach contact me for any errors or feedback (krisviceral at gmail).

Web services are becoming more and more popular in the past few years. Why wouldn’t it be? As the past few years have showed, people have more than a few computing devices with them at any one time. No longer are people limited to desktops and laptops when they want to check their email, Facebook, etc. With that in mind, people expect different things this day and age. People expect to be able to check all these things on a series of devices from tablets to smartphones to even refrigerators.  Web services helps application developers distribute their product or content on a variety of different platforms. How? Web service decouples the data to the application. Different applications can consume the same data from a standard source.

What is a Web Service?

Wikipedia states that a “web service” is a method of communication between 2 devices over the web. Services can be accessed over a web or net address and are typically always-on. With that definition, we can grab the key terms to defining a web service are “communication”, “net address” and “always-on”.

The communication aspect of a web service means that one device is the producer (service) and the other is the requester (client). The information passed can be an XML a JSON (JavaScript Object Notation) or a media type depending on the type of web service implementation. Net address means that the service can be accessed through (you got it!) a web URL. Unlike a web application, if you access a web URL of a web service (for example REST) you are getting simply the data or resource in whatever format the service brings. It’s up to another application (a client) to transform the data and make use of it. Imagine going to and you simply get a string saying “name:Kris last name: Viceral”. Always-on as the name implies is always running. You don’t fire up a service just when you need it (ala traditional desktop application).

Note: Service refers to the web service. Client refers to the consumer of the web service. 

Service-Oriented-Architecture (SOA)

Web services are part of the design/architecture pattern called SOA that focuses on making resources accessible through (again) services. SOA handles discoverability of different services and their interaction to each other. Services under SOA are built to be unassociated and loosely coupled. This will allow you to build a complete web application by combining/integrating several of these services.

WS Example Flow. Click to enlarge.

Example Web Service and Client: Twitter

If you want to build your own Twitter application you can build it through calls through Twitter’s web service API. After you’ve built the initial UI, you can load the timeline tweets by calling their REST API by doing a “GET” call. What you’ll get is a series of objects (tweets) in JSON. A tweet object would contain the user, the tweet itself (140 chars), date and time and so on. Now since you now have the data, it’s your choice on how your application will read this and show it in the UI. The same thing goes for posting a new tweet. You send an object containing the needed to the API and it’ll take care of the rest.

Web services that are APIs are like exactly like calling a regular API except that you are doing it consuming and interacting with it through the web instead of importing a class or file in your application.


Web Services Diagram. Close enough. Click to enlarge

Advantages and Disadvantages of Web Services

For me, the 2 biggest benefits of designing an application through web services-client are platform-independence and maintainability. Building a web service first would make it easier as a developer to make your content reach different platforms. Essentially, since the generic processes and data is separate, all you need to do is to build a “view” in the native platform. Once you’ve build the service, you can reuse it on as many different platforms as you want. In this day and age of having a smartphone, computer and more, that benefit would be pretty nice to have. Another benefit is maintainability. Since the service is separate from the client, this makes it easier to maintain. If you make an update to the native application or web service client, you don’t need to touch the service at all. On the service end, if you want to make improvements to make it faster to read or process data the client doesn’t need an update to take advantage.

What are the disadvantages then?  I’ve only worked with web services and I’ve only used REST for a short time, so I haven’t really seen all or most of the roadblocks yet. For me the biggest roadblock and  the difficulty lies in remembering that it is different architecturally from a standard web mvc application. The languages you are using may be the same but the style you are building it is different. Security on a web application is different from the security you will place in your web service. Remember that you don’t have a front-end so you’ll use different things for authentication and authorization. On the testing side, you are testing the service differently from the client web application. In a web service, you are checking if the data you are producing is correct when it arrives to the client. You are also testing the consumption of data and handle incorrect parameters, data, etc. Building the web service is again more like building an API.

Does creating a web service make everything more complex? Yes. For me, it’s not too complex that it makes it seem like a herculean effort to pull off. Implement a web service using REST is not too hard. Plus, it’s fun to learn.

More funky acronyms: SOAP and REST.

More funky acronyms: SOAP and REST.

Types of Web Services Implementation

There are two types of popular implementations of web services namely SOAP and REST. SOAP stands for Structural Oriented Amnesia Pepper… okay so maybe not. It’s actually Simple Object Access Protocol. Web services can be implemented through the SOAP protocol which transfers messages through the HTTP or SMTP protocol and uses XML as its message.  SOAP itself looks like a beast with tons of things you need to understand to be able to implement. I have not worked with SOAP yet so I’ll stick with discussing REST.


REST, Something Nice To Do Right Now

REpresentation State Transfer or REST for short, is an architecture style for creating distributed systems. Why style? REST is not a protocol (it would be called RESTP if it was) nor a standard. Let’s discuss all the things about REST one by one.

Client-Server, Resources and HTTP Methods

As in the example above, there consists a client and a server (providing the service). They communicate through the HTTP methods primarily the GET, POST, PUT  and DELETE. They access “resources” on the server. In REST, everything is a resource. Not just photos, videos and files but even objects representing data is a “resource”. Think of it as being able to  access domain objects but by calling a service instead of directly creating it in your code.

If you don’t happen to know, a domain object is a plain-old-java-object (POJO, had enough acronyms yet?) that is used to represent data in the database. For example, you’ll have a USER object that contains String name, Int userId, String email, etc. In a standard web application, you would have a technology/tool called ORM so that your object will be created almost automagically using the different tables in your database.

Again, in a web service, you are calling the object though the service. You can get it through a variety of media types. Depending on the server, you can grab resources through JSON, XML, Plain ol’ HTTP Text and more.

To Be Continued…

On the next part of the series, I’ll dive in deeper to REST by discussing  JAX-RS (the java implementation of REST) along with the frameworks for building REST with Java, namely Spring and Jersey.


Laptop Buying Guide: What to Look for in a Laptop

A lot of people have asked me on recommendations on buying computers and other gadgets and I love researching cool new stuff and giving my recommendations.  Unfortunately, laptops are hard to recommend for a couple of reasons. First, for Windows based laptops, manufacturers like making laptops very diverse. What this means is that for 1 manufacturer it’s common to see 10 different laptops that don’t look any different from each other and with specifications that hardly differ either. Second, a particular laptop I may see in my local store usually isn’t available anywhere else because the same laptop has a different name in another country.

Instead of recommending particular laptops, I think it’s much better to explain what you should look for in purchasing a laptop. So let’s go that route!


  • Purpose: What will you use it for
  • Parts: How powerful do I need it to be
  • Other parts to consider
  • Apple Mac – What’s the difference
  • Brands
  • Some Laptops
Just looking for examples? Scroll down to the bottom to check out example laptops for your needs.

How do I find what’s best for me?

Simple. Let’s go through these steps. First, we need to determine what you want to use your laptop for. Then, let’s take a look at the budget ranges. After that, I’ll explain the different parts and how powerful do you need it to be. The next tasks is up to you! Take a look at your local store (online or not) and check the laptops available. You now know all you need to get your perfect laptop. Think of it as knowing what car to buy knowing there are hundreds available.

Let’s start!


What will you use it for?

Purpose and Budget: Home and Basic Office, Multimedia, Gaming or Special Cases

This is the single most important factor to consider before purchasing a laptop. Your answer here will determine all the budget to expect to spend and the specifications that would fit you best. What we want to avoid is buying something powerful and not using your machine to it’s potential. It’s like buying a sports car and just using it for grocery shopping.

So, what’s the different with the choices above?

To convert dollars to your currency of choice, simply google. Ex: 400 US dollars to Philippine peso.

Home and Basic Office: If you only want to do basic tasks, this is what’s for you. Basic tasks include light web-surfing, emails, chat and video calls and light Microsoft Office (Word, Excel and Power point). You won’t need top-of-the-line hardware if you only intend to do these tasks. You can get buy a budget laptop and still get a good experience. Normal Price Range: $350-500

Multimedia: You’re basically doing the same tasks as above but at the same time. If  you are surfing the web and  have 20+ or so websites open while listening to music and chatting with a few of your friends. In terms of hardware, you’re basically want something slightly more powerful then a laptop for home and basic office. This can be great for basic school machines. Normal Price Range: $600-750

Gaming: If you play games like Call of Duty, NBA 2k, Grand Theft Auto (GTA) and other so called “hardcore” games, you are going to need much more powerful hardware. Games like the ones mentioned above usually make your machine cry. It’s being pushed to it’s limit. Normal Price Range: $900-1,200

Special Cases: Some types of jobs use software that are very intensive to hardware. Some examples of the software include Adobe Photoshop for graphic designers, AutoCad for autocadding people, 3D rendering software for 3d artists, movie making software like Adobe Premiere and finally a suite of  software development/programming software. Usually a higher-end multimedia machine can pass as a portable laptop for these cases.

Portability: Where will you use it?

Portability is the second factor to consider. Laptops are meant to be portable you say. They are but some laptops are easier to carry-around everyday. If you’re using your machine for school for example, you don’t want to carry around 10 pounds all day. So the bigger the screen, the heavier it normally is (except for 1 rule, see below). Laptops around the 11-13″ display sizes are usually light enough to lug around everywhere. Those laptops are sometimes not too powerful though. The 14″ are supposed to be a balance of portability with enough power for greater tasks. Most 15-17″ on the other hand will probably give you back problems if you bring it everyday. They are better suited for desktop replacements at home.

Exception to the rule: Ultrabooks: Before I explain what that is, let’s explain quick laptop form-factor terminology. Netbooks refer to the lightest and least powerful machines. Notebooks refer to your standard more powerful but bulky laptop. The term “Ultrabook” sadly does not come from Ultraman but rather refers to laptops that are powerful, thin and light. If you’ve seen a Macbook Air, then that is what the “Ultrabook” term means. Ultrabooks though are relatively pricier than regular notebooks for those reasons.

The Parts: How much power do you need?

I’m not going to go in-depth on the parts because there are already tons of resources elsewhere.

Complete Gaming PC for 30k

Processor: The processor or CPU is what handles all the tasks you throw at your computer. Right now there are 2 brands to choose from, Intel and AMD.

Intel is probably the brand you’re already aware of. They have 4 “classes” which are Atom, Pentium, Core i3, i5 and i7. The least powerful is Atom and the most is Core i7. I would recommend going with the “Core” series at least. For multimedia laptops, go with either Core i3 or i5 depending on your budget. For gaming, the minimum should be an Intel Core i5. For “special cases” which normally push the CPU to it’s max, a core i7 should be considered (Core i5 if you are on a really tight budget).

What about AMD? I actually don’t know much about the line-up AMD has so I can’t be as specific. For laptops in the lower budget ranges though, they are king. We have a lower-end laptop at home with an AMD C60 and it’s perfectly fine for home and office tasks. Pretty great for the price. If you can’t get a Core i3, check out the AMD based CPUs. They’re products have a the “C”, “E” or “A” in front that signifies the class. As far as I know, C is the budget line, E is slightly more powerful and A is what can be compared to Intel’s “Core” products.

RAM: To put it simply, the more RAM you have the more programs you can run at the same time. You can have more sites open in your browser and you can do that while running other programs (ex music player) as well. A general rule would be get as much as you can afford. RAM normally comes in 2, 4, 6, 8 gigabytes or more. For home and basic office, the bare minimum should be 4 GB while multimedia users and gamers should consider at least 6 GB. For special cases, it really depends on the software you’re running. If you can get more than 8, it can really help you out.

Storage (HDD & SSD): More storage is better but it shouldn’t be the only factor. What the heck do I mean? When you think of storage you normally think of hard drives which come in 500 gb, 1 tb, etc. With the recent trend in storing your media online (Facebook for photos, etc) you don’t really need to have a crazy large hard drive. What ever comes with a laptop is usually good enough (1 tb or below). A better suggestion would be to buy a portable/external hard drive and save most of your files there for easy backup and transfer.

Now, another factor is speed. The speed of your storage device determines the speed of your bootup (time it takes to press the power button to get to your desktop). I’m sure you noticed how fast smartphones and tablets bootup. One of the reasons it does so is that it is using a new type of storage device called Solid State Drive (SSD). SSD you say? It’s actually similar to USB Flash drives. Anyway, without going into too much detail, you’ll be able to use your computer in 45 seconds instead of 1 minute and 30 because of the different hard drive. If you can get a laptop with SSD, take it. It’s worth it.

Complete Gaming PC for 30k

Graphics Card: A video-card handles displaying everything to you. It’s the part where it converts the data into what you’re looking at right now. There are 2 types namely integrated (built-in) and dedicated (separate). Most processors today have an integrated graphics card. If you are only using your machine for home and multimedia and play facebook or flash games, integrated graphics card are okay.

How do I spot an integrated card? For Intel based processors, they are named “HD”. You’ll spot things like HD2000, HD3000, HD4000 or sometimes “Intel Graphics Media Accelerator”. For AMD products, it’s a little harder to spot. Most of the time I think it says “G” (read further below). Something to note is that AMD based integrated cards are generally better than Intel ones.

But I want to play “hardcore” games!!!! For people who enjoy non-casual games, a dedicated card is a must. There are again 2 brands. AMD and Nvidia. For Nvidia cards, the cards usually have 3 numbers with an M (IE 640m, 650M). The first number signifies the series while the second signifies how powerful it is. Don’t worry about the 3rd number. Cards such as 620M are obviously less powerful than a 640M. If you don’t care about fancy graphics, somewhere near a 630M could pass. I would recommend to get a 640M as the minimum. If you can afford it, go with a higher one (650,600, etc). Check out the link provided below for a much better comparison of graphics cards.

AMD Cards are a bit different in terms of names. (Feel free to correct me if I get this wrong). AMD cards have 4 numbers to them (ie 7650) with a letter at the end. The letter (G or M) means if it’s integrated or not. G refers to integrated and M is dedicated. Similar to Nvidia the first number signifies the series. I think the 2nd and 3rd number refers to how powerful it is.

Check out this handy site for a list of budget, mid-range and high-end cards for laptops.

Other parts to consider

CD/DVD/Blu-ray Drive: Why do I mention this? Nowadays, some laptops don’t come with one. Manufacturers skip this to make laptops thinner. If you have stable and fast internet, you can skip the drive but if you don’t I would recommend getting a laptop with a cd drive.

Display: If you compare most laptops screen to an Apple iPad or Samsung Galaxy S3, you’ll notice the screen sucks on the laptop. The primary reason for this is something called the “panel”. The iPad and S3 use higher-end displays compared to most laptops (also a reason why those devices cost a lot). Those devices use IPS LCD panels. Laptops with IPS panels normally come it at around $850 and above. It’s quite worth it if you can afford it. Think of it as buying a better TV. You’ll enjoy watching on it because it looks good. For people who are serious about photo-editing and graphics design and who don’t happen to want a Mac, an IPS is a must.

Everything else: A lot of the other things like card readers, number of USB ports, wifi, bluetooth are mostly the same from laptop to laptop. Some manufacturers put “great audio” as part of the feature set but if want good music it’s much better to buy a decent pair headphones.



In terms of laptops, brands are a bit of a factor. Different manufacturers specialize on a few different things. The things I’ll mention are more general and may or may not be true for a specific laptop under a particular brand.

Acer is a brand known to have the cheapest laptops. You’ll usually get a powerful hardware for you money. On the downside, they ship with a terrible display and they are not known to have the highest quality build (how sturdy the laptop is). Personally, I’ve had 2 Acer laptops (TimeLine series and Netbook), I have a 50/50 success ratio. The timeline laptop has been great but the other has had some problems.

Asus is one of the bigger manufacturers around. They produce tablets, laptops and  computer parts themselves. Asus is known to have good to great build quality and the hardware for the price is good. I haven’t personally bought an Asus laptop (although I have their tablet) but I would look into an Asus laptop if I was in the market for a laptop. They are a great mix of quality and affordability. (On a side note, their Ultrabooks called Asus Zenbook, looks fantastic)

HP or Hewlett-Packard is one of the leading producers of laptops. That doesn’t mean they are superb at it. They are usually priced higher than Acer laptops but still relatively cheap. For quality, I’ve heard mixed opinions. One of the things I saw was that they do charge a whole lot for repairs.

Dell. Almost the same as HP.

Lenovo. They bought out IBM’s manufacturing a couple of years back. If you’ve seen the famous “Thinkpad” laptops, they are from Lenovo. They are known for good build quality and slightly more expensive compared to the others.

Sony. Sony has their “VAIO” branding on laptops. They are marketing their products as “higher class” than the others. Think Apple price for a Windows laptops. Not too bad of a choice if you don’t mind the high price tag.

MSI. MSI is another computer part manufacturer like Asus. Generally, they have powerful hardware for the price. The build quality looks better than most Acers.

Samsung, Toshiba and Fujitsu. I don’t know much their brand perception and quality of their machines.  They are very famous IT companies though.


Apple Mac, Macbook Pro, Air, etc – What’s the difference?

This is a common question as well. Apple as a company controls both software and hardware. It does not use Microsoft Windows (although you can) but rather their operating system is called OS X. Apple’s laptop lines are called “Macs” (not related to McDonald’s). It’s a different machine. Programs you run on Windows may not work (or have a version) for Mac. It’s the same way as the program you run on your desktop/laptop can’t be used on your smartphone. If you play “hardcore” games, do note that a lot of games are not compatible/don’t have a version for Mac.

For the hardware, Apple is of course known for absolutely high price but pretty good quality. The Macbook Air is the super light laptops while the Macbook Pro is a common laptop for graphic designers, photographers, etc. The higher end Macbooks have a high quality screen that’s essential for people who work in digital arts fields.

Is it for you? Well, consider the things I mentioned above. If price is not a factor and you don’t have software that you use everyday that only works for Windows, it’s not a bad choice.

Some Laptops as Examples

Like I said before, it’s hard to recommend specific laptops because it’s different country to country. Below are some laptops I browsed at my local retailer which are great examples of what you’ll probably find in yours.

Prices are in Canadian Dollars. Use this to convert to your currency of choice. Do note that price here does not include tax. In other countries tax is included so it makes it seem much pricier.

Home and Basic Office

Asus X55U ($390). CPU: AMD C60, RAM: 4GB, HDD: 320 GB, Display 15.6″, Weight 6 pounds. A good example of a laptop for Home and Office. You get a processor that can handle simple web browsing and the display is big enough for a better web experience but not too portable.

Asus X202E ($550): CPU: Inten Core i3, RAM: 4 GB, HDD: 500GB, Display 11.6, Weight 3 pounds. Although much more expensive than the one above, the X202E is a lot more portable. It’s only 12″ display means you can stuff it in most bags plus the 3 pound weight won’t break your back. It’s also touchscreen (whether that’s a good/bad thing is preference).


HP Pavilion G6-2240NR ($500) CPU: AMD A6-4400M, RAM: 4GB, HDD: 750GB, Display 15.6″. A budget HP multimedia laptop. You get a more powerful processor but almost the same specs as a home and basic office computer.

Samsung NP535U4C ($700) CPU: AMD A8 4555M, RAM: 6GB, HDD 1TB, Graphics (dedicated): AMD 7550M, Display 14″, Weight 4 pounds. This Samsung laptop is a great example of a multimedia that can also serve as a lower-end gaming machine. The processor is a higher end quad-core chip. It’s got 6GB ram which is decent for running tons of apps as well. The weight and bulk is okay enough to carry a couple of times a week.

Acer V5-571-6677 ($650): CPU: Core i5 RAM: 8GB, HDD: 500GB, Display 15.6″, Weight 5 pounds. Cheap and powerful. This acer laptop has a powerful processor and enough RAM to handle all your multimedia needs all at once. The HDD is a bit low but for the price and the powerful hardware you get it’s not too much of a big deal.

Fujitsu Lifebook UH572 Ultrabook ($700) CPU: Core i5 RAM: 4GB, HDD 500GB SSD 32 GB, Display 13.3″ Weight 3.5 pounds. A cheap ultrabook, this one is portable and powerful. You also get an SSD which as I’ve mentioned before makes your computer bootup/load much much faster (almost x2 from a normal laptop).


Again, check out this handy list to see which graphics card are low, mid and high end.

Lenovo Ideapad y500 ($950): CPU: Core i5, RAM: 6GB, HDD 1TB, Graphics: Nvidia GT650M, Display 15.6″. The specs are similar to a higher end multimedia laptop but you get a high-end mobile graphics card. This should be able to handle most games you throw at it. The laptop also looks pretty cool.

MSI GE60 ($1,200) CPU: Core i7, RAM: 8GB, HDD: 750 GB, Graphics: Nvidia 660M. This is around the spec sheet of a powerful gaming laptop (not the most powerful). You get one of the fastest processors, tons of ram and a graphics card that allows you to crank the settings to mid-high on modern games.

Check out the slightly similar Asus G46VW-DS51 which is slighlt less powerful but looks sleeker. Or the Sony VAIO S which is has a mid-range graphics card but still capable and doesn’t look “flashy” which is a plus for me.

Special Cases: Computing

Samsung NP700Z5C ($1,200): CPU: Core i7 RAM: 8GB HDD: 750GB, Graphics (dedicated): Nvidia Geforce GT640M Display 15.6″. This Samsung laptop has powerful CPU that can handle heavier workloads. It has a high-end graphics card (can play most modern games) and decent amounts of RAM.

Asus K55VD-DH71 ($850) Almost the same specs as the Samsung one above. The main difference is the graphics card. You won’t be able to use this one as a gaming machine too.

Acer Aspire AS5755G ($900) Also roughly similar to the Samsung one but this one has 1TB HDD and a mid-range graphics card.

Special Cases: Graphic Design and Photography

Asus Zenbook UX31A-DB71 Ultrabook ($1,500) CPU: Core i7, RAM 4GB, SSD: 256 SSD, Display 13″ IPS , 2.8 pounds. This is a crazy machine. Super powerful, great display, razor thin, speedy and light. The downside is it’s pretty expensive for someone who doesn’t “need” that display.

Edit: The lower end of the Asus Zenbook with an IPS display goes for (1,100). Check out this Lenovo Thinkpad IPS laptop for $960.

One of the many great Dota loading screens

Insights: Interview with Patrick Wyatt, co-founder of ArenaNet, former VP of R and D at Blizzard

As a “rookie” developer, I love to read about software development. I’m always interested in seeing what it takes to ship products I love to use everyday (hopefully be able to be part of shipping one too!). Of course, I also like learning about game development wherein software, art and entertainment are combined together . A group of very talented people take on a 3+ year journey to ship quality entertainment that delivers excellent narrative and fun gameplay.

Anyway, while reading one of the articles on software development, I saw an inspirational quote from one of the developers of Star Wars: Knights of the Old Republic and I wanted to post it. I was reading a separate article about the development of StarCraft and I got the two people mixed up. That misattribution gave me a chance to talk to one of the people who created StarCraft, Patrick Wyatt. Patrick is the co-founder of ArenaNet (GuildWars) and was a former employee at Blizzard who was part of the team that shipped some of the most iconic games like the WarCraft I and II, StarCraft and Diablo.

I got to ask him a couple of questions about the game industry and more. You can find the “small” interview below.

 Q: You’re part of a lot of critically acclaimed games. From all the games that you have worked on, what game are you most proud of and why?

Pat: I’m proud of each game I’ve helped to create so it’s a tough choice to choose just one. That being said, I think Guild Wars makes me most proud because of what our small team managed to accomplish.

We set out to build a company from nothing and develop an innovative game, and to do so without killing ourselves with a crushing development process. And we were successful!

At ArenaNet we hired a lot of folks just out of school so some of them were not aware of how much different the development process for Guild Wars was compared to “traditional” game development. I’m glad they didn’t have to suffer the awfulness of years-long crunching that seems to be so common in the industry.

Trivia: When Guild Wars first came out, they we're one of the only commercially developed Massively Multiplayer Online Role Playing Games (MMORPG) to ditch the subscription model (paying $/month to play). Buying the game allowed you to play without a limit.

Q: What are some of your favorite games for the last 2-3 years?

Pat: I’ve enjoyed playing DayZ (video below), a zombie survival game. I’m actually surprised I like it because the game is so hard core. Crawling across a field for ten minutes doesn’t sound like fun, but in the context of the game it can be! I’ve played some League of Legends and enjoyed the competitive aspect. Kingdom Rush (iPhone/iPad), which is very clearly inspired by Warcraft and StarCraft, is a lot of fun to play, and my kids dig it too. And recently I discovered AirMech, which is a blast.

Q: What do you think are the biggest innovations in gaming in the last 5 years?

Pat: Without a doubt the adoption of the free-to-play business model in Western markets is huge — it’s changing the way that games are created. It has focused designers on creating experiences that are immediately engaging and long-term sticky. The down side is that some designers have focused on creating manipulative products that make money more for their inventiveness in using addictive or shady “dark patterns” than for their fun. My feeling is that the majority of players will develop greater resistance to these dark patterns over time, so I hope we’ll see fewer games where psychological manipulation is the norm.

The other major innovation is mobile gaming. The ability to create fun, small-budget games is great! I find that I play mobile games much more these days than I play traditional sit-down (PC/console) games. I look forward to more and better games as designers become better at utilizing the strengths of these small form-factor devices.

Q: As part of my thesis in university, I did some research on the progress of AI in games. I noticed AI hasn’t improved as fast as graphics and game engines have.  What do you think is an area in games that has not progressed rapidly?

Pat: AI is still a hard problem to get right, and will likely continue to be so for a long time. In Guild Wars 1 we actually had to detune the computer-controlled
NPC “hero” characters that join the player’s party. They were so good at fighting that, when the human player died, they’d go right on fighting, win the battle, and resurrect the player, making the human player feel unnecessary!

There are “middleware” offerings for rendering graphics, playing sound/music, creating artwork, controlling physics, performing analytics, and many more. I think the area that’s seen the least growth is the development of server backends that can be used as the basis for large-scale online worlds. They’re expensive to build so few companies can afford to create them. It would be awesome if there were more choices. As much as I like writing code, it would be nice to use someone else’s fully-debugged, highly-scalable MMO game-engine for a change!

Q: GuildWars has an interesting business model for a massively multiplayer RPG, where you don’t need to pay a monthly subscription. In regards to business models, what is your opinion on Free-to-Play?

Pat: Looking back, I wish we had forseen the rise of the free-to-play business model and shipped Guild Wars using that method. The pay-once model we used for Guild Wars, along with extending the game by releasing multiple campaigns, turned out not to be as successful as we hoped. Guild Wars 1 did well but I don’t think the design decisions we were forced into making due to the “release a campaign every year” business model were ideal.

Free-to-play is great for gamers because they can try a game before paying for it. This immediately separates out quality games from games that are crapware like most movie-license games. While other business models aren’t dead, game developers need a compelling reason to utilize other business models than free-to-play.

One of the many great Dota loading screens

One of the many great loading screens from Dota, one of the most famous MOBA games.

Q: It seemed like back then great RTS games came one after the other from Blizzard games to Westwood’s Command and Conquer, etc. What do you think of the current state of RTS games?

Pat: I think that the RTS genre has been eclipsed by MOBA and tower-defense games, many of which — like League of Legends, Kingdom Rush and AirMech, for example — are RTS game engines in disguise. There’s still a big market for RTS games, as evidenced by the success of StarCraft 2, but I think the offshoots are more fun. For my part I’m really tired of RTS base-building — too much energy directed towards economics and not enough on combat!

Q: Now that gaming as a hobby is more mainstream, how much has this affected game development?

Pat: For starters the game market is bigger and more diverse. Because there are so many more game-players the industry can support PC, web-browser, facebook, console, mobile, and tablet as platforms, and each of those platforms can support many game developers. And further, games get more attention in the media (both positive and negative), which means that more folks are getting clued in to the opportunities for enjoyment and employment. As the industry grows I hope we’ll see more ideas around making creative games where players dictate how the game should be played. Minecraft is a great example, in that it allows players to decide what the game’s objectives should be.

Trivia: Besides mobile gaming, this year also seems to be a big one for the evolution of the game industry. Several "game" hardware will be released such as the Oculus Rift, a virtual-reality headset, Ouya, an Android-based $99 console and the "Steambox", Valve's initiative to bring the PC to the living room. Very exciting stuff!

Q: Our team is called Leadership Development Program (LDP). We’re batches of new IT graduates being trained both in technical and leadership skills. Do you have any tips in terms of general software development?

Pat: The biggest challenge in software development is getting a project done when the project scope is larger than what a person can keep in their head. When a project large the communication overhead goes up exponentially with team size due to interconnectedness between components being built. Decoupling the components is a great place to start, but only goes so far.

Some leaders try to conquer the problem by writing massive design documents in the hope that they can specify every aspect of the design and answer every question. With such a solution it would seem that outsourcing the development ought to be easy!

I think a great solution to the problem is to delegate responsibility, and more importantly, authority, among the team members so that it’s possible for them to define and achieve goals on their own. It takes more training, and certainly more trust in the team, but motivates the developers because their destiny is in their own hands.

Kris: I would like to thank Patrick for his time in sharing his insights into the industry. It was a great read!

Link to Image

Create your own local repository and solve yum related problems

YUM is a great tool that makes installing things in linux so clean and easy. Unfortunately, it requires an internet connection which for some specific scenarios might not be available. This tutorial is a lifesaver in that regard. Download all the RPMs (or something close to an installer file in Windows) and put set yum to look for those files within the same computer. Done!

A techie's confessions

In RHEL 5.0 onwards Red hat introduced YUM concept by which it is very easy to install some rpm without being getting worry about the dependency problem.YUM takes care of this dependency problem by selecting all dependent RPM to install from a central repository either from RED HAT or from some third party repository like oracle has or you can create your own repository if you want to use YUM offline

YUM: – Yellowdog Updater, Modified (YUM)

In first section we will discuss how to create your own local repository.

1. To create that inserts your Red hat DVD installer inside DVD ROM.

2. Mount the DVD by

[root@localhost ~]#mounts /dev/cdrom /media

3. Create a folder of your choice. In my case I have created /home/rpms

4. Copy all the RPM from /media/Server/ to /hom/rpms folder

[root@localhost ~]#mkdir /home/rpms
[root@localhost ~]#cp -rv /media/Server/*  /home/rpms

6. Now look for…

View original post 443 more words

Upgrade What Matters More by Jay Alonzo

people look at your photo and admire it (or hate it) based on what they see per se and what they can gleam and feel about it

In the last few years digital photography has seen a big boom. Cellphone cameras have improved drastically and have more or less replaced the point-and-shoots as the go-to everyday camera. SLRs have become a viable option to a casual consumer because of their drop in price.

I love photography. I admit to not being good at it but I do still casually check on some of the photos from my favorite photographers. The quote above comes from one of them.  Besides being a commercial photographer, Jay Alonzo also hosts photography workshops. For me what differentiates his style and teaching is the focus on the “art”. What does someone who views your photo feel? How do they react? Do they even react at all?

From my few years of understanding photography,what I’ve learned the most is that your camera is just a tool. Everywhere I see  a photography group, a lot of people are more concerned about the “specs” of the shot and the camera rather than the actual image itself. a lot of people want to upgrade their cameras or lenses because they feel getting that new equipment will make them better. Most of the time though it won’t. Sure you now have a lens that can zoom in closer but is your photo well framed? Does your shot convey a story? Just as a paintbrush does not make great art by itself, why do people think cameras can? Great tools are great but they are still just tools.

Anyway, Upgrade What Matters More is a great article by Jay Alonzo explaining that sometimes you don’t really need an upgrade in equipment. Check it out.


Code.Org: What Most Schools Don’t Teach

I saw this post being reshared on my Facebook feed today and I decided to check it out. I was blown away immediately. It’s amazing to see all these great people in the industry (in one video!) telling their reason on when they first started and why they think people need to learn to code. To see the likes of Bill Gates (Microsoft), Mark Zuckerberg (Facebook), Gabe Newell (Valve), Drew Houston (Dropbox) in one video along with Chris Bosh (Miami Heat) and (Black Eyed Peas) is crazy.

What is Code.Org?

“ is a non-profit foundation dedicated to growing computer programming education…Our vision is that every student in every school has the opportunity to learn how to code.  We believe computer science and computer programming should be part of the core curriculum in education…”

The above sums it up pretty well and I agree with them. I do think that programming and IT would be very useful to a lot of people. I think it’s more important now seeing as each person now has multiple computers (smartphones, laptops, etc) with them all the time. At home, even our appliances and vehicles have deep software integration (aka “smart” TVs, etc). Though I really don’t know why you would want your fridge to have a tweeting capability…nonetheless it’s great to see that we are closer and closer to “sci-fi” films of just a few years ago.

Where do I go to study Coding and Computer Science?

I’m glad you hypothetically asked! In the recent years, people have made sites dedicated to free education. Studying can be boring to some so a lot of the resources that people make available aren’t even books. There are videos and interactive sites that range from having everything on the browser itself (no more installing stuff!) to making learning coding more like games and building lego blocks. I wish I had sites like this back then!’s learn page here already has great links to great resources. You can also try Coursera ( or Satndford’s online classes ( and of course the famous Khan Academy ( Be sure to flex your Googling skills and discover a lot more !