This Place is Taken

Friday, August 31, 2012

If Your Job Sucks, It Might Be Your Fault; Let’s Fix That [Office Gps]

If Your Job Sucks, It Might Be Your Fault; Let’s Fix That [Office Gps]:
If Your Job Sucks, It Might Be Your Fault; Let’s Fix That It's inevitable. After enough time at any job, you have a day that really sucks. Then, eventually, maybe another. And another. Suddenly the job you loved starts to feel like, well, work. And bad work at that. It doesn't have to be that way.

The Problem

We've all dealt with bad bosses or smaller paycheck than we'd like, but that doesn't mean the cure for your ills involves quitting your job and finding another. Every job is still a job, and every job comes with downsides. They call it "work" for a reason, and even if you're lucky and do what you love, you'll have bad days, and it can still suck sometimes. You'll still have to deal with bossy managers, know-it-all coworkers, and, on occasion, frustrating busywork. Even so, many of us jump between jobs with only a matter of time after our first day until we inevitably conclude "this job sucks!" and start looking for the next one.
So how do you beat back that creeping feeling that your job is going to eventually wind up sucking? Sure, many circumstances warrant quitting your job. If it really is time to walk, you should do that. This post is for the rest of us. Here, we'll walk you through some tips to stay focused, upbeat, and happy with your work—especially if it's the work that attracted you to a job in the first place.

Step One: Check Yourself Before You Wreck Yourself

The first and most powerful thing you can do right away is to change your mindset. There are plenty of ways to go about this, but it starts with understanding that you have the final say over how you feel. Eleanor Roosevelt said, "No one can make you feel inferior without your consent," and the premise applies here: You may not be able to stop inevitable workplace annoyances from happening, but you can stop them from ruining your day. Here's how.
  • If Your Job Sucks, It Might Be Your Fault; Let’s Fix ThatAvoid gossip and water cooler talk. We've discussed how the hive mind influences you before, but it's especially true in office environments. If everyone in your department thinks everything sucks, you're likely to feel the same way, even if you have nothing to gripe about. Try to stay objective when talking to coworkers about workplace issues and office politics, and don't let the gossip get to you. Focus on your work, and doing the best work you can.
  • Resist negativity. Avoiding gossip is a good first step, but you can also choose to be part of the solution. Look for the positive and talk it up to coworkers. Make a list of those positive aspects of your job and keep it front and center every day. Perhaps you get to work on something you love, or your job offers you free training, or all the coffee you can drink. Whatever makes you smile about your job, make sure you see and take advantage of it every single day.
  • Look for more perks. How many of your job's perks do you make active use of? look hard for them, and take advantage of them as often as possible. Whether it's flexible hours or a casual work environment, turn your job from a place you go every day to an active part of your life that contributes to your wellness beyond your paycheck.
  • Learn to cope. Stress will always find you—I've never heard of a job without it. The important thing is to learn how stress affects you and what you can do about it. Take up a hobby, meditate, mentor someone at work—whatever it takes. As you develop those coping mechanisms, you'll be less inclined to pass judgment on your job as a whole. Aggressively seek them out, too: when something bothers you, immediately think about how you can address the stress, even if you can't address the issue.
If Your Job Sucks, It Might Be Your Fault; Let’s Fix That

Step Two: Get Some Perspective: Some Things Suck, but are Those Things Your Job?

When your job gets you down, it helps to put things in perspective. Sure, there are things about your job that make you miserable, but every job will have some elements that aren't ideal. The important thing to do is separate those things out from the things that make you happy. Every job you go to will have some busywork you'd rather not do, coworkers who send snarky emails, and people microwaving fish in the breakroom.
The important thing to ask yourself: Are these irritating things my actual job, related to my actual job, or just surrounding my job?
If they're part of your actual job, let your boss know what's bothering you. If you're stuck working on an aging platform that makes you miserable because it goes down every week, your boss may agree that it's time to replace it—especially since it's your job to support that system. If those irritants are surrounding factors, you should search for solutions to those things too, but keep in mind that they're not representative of the job itself. If you enjoy what you do, don't let the small stuff bother you. Focus on the work and deal with the small stuff on the side.

Step Three: Work to Live, Don't Live to Work

Many of us are driven to hate jobs we once loved because we never actually put our work down. It can be difficult, but remember: You work to live, you don't live to work. Defend and enjoy your personal time, vacations, time with family and friends, even your sick leave. Here are some things to keep in mind:
  • If Your Job Sucks, It Might Be Your Fault; Let’s Fix That Take your vacations. We've warned you against leaving vacation leave on the table, but most of us do it anyway. Taking vacations is one of the best ways to recharge, and besides, you worked for those hours. You deserve them.
  • When you're sick, focus on getting better. In a world where we can work from home and stay connected by smartphone, it's important to resist the urge to "work from home" when you're actually ill. When you're sick, your new job is to get better, not do half-assed, bleary-eyed, fever-induced work.
  • When you work, be productive. This one is important, because too often we overwork ourselves because we feel like we're not as productive as we should be. Find a productivity method that works for you and stick to it. Take time to review your work so you're never surprised and always in touch with what you're doing and why. Be proactive, don't just let your job be this thing that happens to you five days a week.
  • Recognize when you need a break. If that creeping feeling starts to catch up with you, you may be suffering from burnout or otherwise overworked. Identify it, acknowledge it, and take a break before you crash and burn.
  • Make small changes. Small changes in your office environment can make a big difference, sometimes more than large ones. A fast new computer, a few plants, a lunch buddy to chat with every day, as better cubicle—go get those things if you can. They may not address your annoyances, but they go a long way towards boosting your mood, and that can help you relax, de-stress, and focus on the positive.
  • If Your Job Sucks, It Might Be Your Fault; Let’s Fix That Bring the things you love to your work. A great way to recharge your passion for your work is to find a way to work a hobby or passion you have into your work. Our own Adam Dachis found a way (see #3) at his old job to bring his love for video production to his job doing customer support.
  • Go the f**k home. Make a habit of going home every day at the same time. Even if you have to schedule something after work to force yourself to leave, do it. You need to keep a bright line between your work and the other things you do, if only for your sanity.

(Optional) Step Four: Give Up and Strike It Out on Your Own

If there's no fixing the problems you face—no mind hack or vacation time that can offer relief—it may be time to try something drastically different. Consider freelancing full-time or starting your own business. It takes nerve, financial fortitude, skill, and a lot of luck to strike it out on your own, but if every job you ever get sucks, you may never be happy until you're working for yourself, on something that you're truly passionate about.
If Your Job Sucks, It Might Be Your Fault; Let’s Fix That

Step Five: Take Care Of Yourself

Don't underestimate the importance of taking care of yourself. It's easy to feel like every job sucks if the problem is actually with you. For example, if you're clinically depressed and even the things that normally bring you joy fall flat, seek professional help, not necessarily a new job. If you're not getting enough sleep, or your diet needs some help, your attitude and approach to your entire day—at work or at home—will suffer. Exercise, sleep, time with friends and family, and caring for your mental and physical well being in general all go along way towards making any job more bearable.
To that point, make sure that if your job really does suck that you address the issues head on. Part of taking care of yourself is standing up for yourself when your job starts to walk on you. If it turns out that your actual work is the thing getting you down, or you don't get to work on something every day you feel you're good at, or all of the annoyances just outweigh the positives of your job, then it might be time to walk away—just take your lessons (and our tips) with you instead of starting the cycle all over again in a new place.

This post was illustrated by Dominick Rabrun. You can find his illustrations on his personal web site, or works in progress on his blog.

Thursday, August 30, 2012

The fall of Angry Birds

The fall of Angry Birds:
Last year I held a special webinar that was invite only and everyone had to sign an NDA before attending.  On this webinar I explained the current state of the mobile game industry and my plans to dominate as an independent developer.  If you missed it then, then stay tuned, I’ll be doing another one in the next month or so.
One of the things I talked about was an in-depth analysis of Angry Birds VS Tap Pet Hotel and how premium .99 games were going to be overtaken by free to play games.  That sounds obvious now, but remember, this was 12 months ago and at the time I held the webinar Tap Pet Hotel was only a few months old.  Many people on the webinar didn’t really know how social games worked.
So far the the app store has gone through two phases.  The second phase completely took over about 6 months ago.
Phase 1 of app store monetization was Premium games (.99 titles)
Phase 2 is “Free to play” and it’s RULING the app store.

Phase 2 of the App Store:  The fall of angry birds

Angry Birds currently doesn’t have ANY of it’s games in the top 50 grossing iPhone charts.  The closest is the original title at #52:

iPad is a similar story.  Right now the highest grossing Angry Birds game is sitting in the #55 top grossing position:

What’s interesting about the iPad version, is it’s currently NUMBER 2 in the paid charts:

If the #2 best selling paid iPad game is not in the top 50 grossing, then what type of apps are currently dominating the app store in terms of profits?
As you probably guessed, free to play:

Now, I knew free to play games were dominating the scene before I started this post, but I did not know it was THIS bad.
Right now, 18 of the top 25 grossing of all apps are Free To Play Games (72%).  Also, it should be noted that 22 of the 25 top grossing apps are in the games category (88%), confirming the fact you need to be into games if you want to have the biggest potential payout.  The reason for this is people have a stronger emotional attachment to games than any other type of app, therefore they are more likely to spend money.

How are these Free to Play games crushing it?

After digging deeper in these top grossing apps, you can see they consist of nearly every free to play genre there is… Social games, click games, gambling games, turn based games, card games, etc but all of these have TWO things in common:  They each have lots of in app purchases and they encourage the user to buy stuff (a call to action).
This is the basics, but it’s SUPER IMPORTANT, here’s how:
A very small percentage of people buy stuff in games.  Of this small percentage you have people who will spend a LOT.  These are your die hard fans. I know, because I am one of them and won’t bat an eye spending $50 in a game I like.
Now, in Animal Mall for example, our call to action is very simple.  When a user tries to buy something and they are out of money, we simply say “You don’t have enough coins for that, would you like to buy some?”.  We do the same in every game we have.  I’ve tested this and it increases revenue a TON.
I recently read an interesting game development article that got me thinking about writing this post.  It was about a game called Gasketball that was from the same two man indie studio that made Solipskier, which was a pretty big hit.
They discuss how this new game bombed and even attempt to blame free to play games which the developer later retracted, saying he was upset at the time of interview.  After reading the article I immediately knew what went wrong:
1. They had limited in app purchase options
2. They didn’t have a call to action
It’s that simple.  They literally had friends trying to support the game and didn’t know how.  Also, they didn’t have mass in app purchases, just a few including one to unlock the game.  This is a bad in app purchase that has no emotional attachment and doesn’t give the player something to strive for.  I could go on about this forever, but basically you either want an in app purchase to solve some curiosity for the player or benefit gameplay.  Boring in app purchases like “full game” or “remove ads” are not as effective.
Let’s discuss more proof that multiple in app purchases increase revenue:
Remember above when I showed that Angry Birds was #52 grossing in the iphone app store?  Remember, that was the ORIGINAL version of Angry Birds.  If you look at the top paid charts, you’ll see Angry Birds SPACE is ranked higher than Angry Birds ORIGINAL… if that’s the case, then why is the original making more money?
Yup, they recently added a ton of in app purchase options:

It’s pretty simple really… the more options you give your customers to purchase things the more money you will make.
This is because there are only a small percentage of users out there who spend money in games (like me).  Even though the percentage is small, typically those customers are interested in spending a LOT if they like the game (again, like myself).
Of course, this only works if you provide VALUE and things they are interested.

How much are these games making?

Let’s talk about how much money some of these games are making at the top.  On last years “NDA Webinar” I figured out it was about $2,000,000 – $3,000,000 a month.  Well, let’s just say the landscape is vastly changing with extreme speed.
CSR Racing (currently ranked #9 on the grossing charts) just released some data on their top grossing numbers.
In the last month, this single game generated over $12,000,000 on iOS alone.  They have not ported the game to Android yet.
That is $400,000 PER DAY and they aren’t even in the top spot anymore.  Pretty awesome.
Now let’s take an app that has done even better, Dragon Vale.

In the past 3 months, it has not dipped below TOP 5 grossing a single time on the iPhone or iPad.  This is outperforming CSR racing, but let’s say it’s making $300,000 per day on the safe side.  25% less than CSR claimed with lower rankings.
If this is the case and it holds ranking for the rest of the year, then this single game is worth $109,500,000 PER YEAR on the low side.
Amazing.  Hat’s off backflip studios, it’s a great game that innovated with theme and design instead of copying everyone else which is common in the marketplace.
Does this mean that paid premium games are DEAD?!
No, not at all.  We are releasing Milo and the Shadow as a paid game in a couple months.  I do think trying to compete in the market without in app purchases will be tough, but there will be many independent developers able to gain traction and break the top 25 charts now that bigger developers are focused on free to play.
In closing, that leads us to one final question… what is Phase 3?
I’ll write more on this later, but I think this will be the phase when we start seeing games go TRULY social with increasingly awesome online abilities.  It always bugged me the first wave of free to play facebook and mobile games called themselves “social” as there was not much social communication going on.  I think we’ll see a big shift in this and we’re already planning changes for future projects.
Thanks for reading and take care,
Trey Smith
P.S. – I would also like to clarify that I don’t think the Angry Birds brand is going to die out.  I am sure they will be around for ages and have many different games, merchandise and all sorts of crazy things.  The point of this post is show how Free To Play has taken over the once “king of grossing” and changed the landscape dramatically.
Be Sociable, Share!

Tagged as: angry birds going down, death of paid apps, falling, free to play games, free top play, iphone games, mobile games, paid apps, phase of app store, phase of mobile gaming, social games, top 25 apps, top 25 grossing

A tale of the supreme competence of Neil Armstrong

A tale of the supreme competence of Neil Armstrong:
In the 1980s, my wife and I wrote a book about the Apollo program. One of the many backstories we learned was about the ongoing struggle between the Flight Operations people who ran Mission Control and Deke Slayton, who managed the astronauts. Senior staff in Flight Operations were of the opinion that some astronauts were better than others, and wanted flight assignments to be made accordingly. Slayton believed just as strongly in a rotation system. Once assignments to the rotation had been made, he was adamantly opposed to making substitutions—it would be insulting to the crew that was displaced and destroy astronaut morale.
As a compromise, the rotation for the Apollo flights was set up so that command of the first lunar landing was likely to go to Jim McDivitt or Frank Borman, both of whom were especially esteemed by everyone in the Apollo program. But then came the fire that killed the crew of Apollo 1, which took one crew out of the sequence. Then Apollo 8, the first circumnavigation of the moon, was inserted at a new place in the schedule. And so it came to be that Apollo 11 was the mission that got the first lunar landing and that Neil Armstrong, assigned to Apollo 11 years earlier, was the commander.
I once raised this issue with Jerry Bostick, who ran the Flight Dynamics branch during Apollo—the guys in Mission Control who were responsible for getting the spacecraft from point A to point B. Yes, Jerry acknowledged, it was the luck of the draw. But it was a lucky draw for the Apollo program, he thought.
Jerry began to reminisce about Gemini 8, Neil Armstrong’s previous space flight. Armstrong and his copilot, David Scott, had rendezvoused and docked with an Agena rocket as part of the rehearsal for techniques that would have to be used on the lunar mission. The combined vehicles had started to roll, so they undocked. But once it was on its own, the Gemini spacecraft started to roll even faster. Unbeknownst to the crew, one of the Gemini’s thrusters had locked on. The roll increased to one revolution per second.
I had known all this, but hadn’t thought much about it. And if you watch NASA’s version on You Tube, it is all made to sound as if the roll was a brief problem, never rising to the level of a crisis.

Actually, it was a moment that would have reduced me, and some extremely large proportion of the human race, to gibbering helplessness, no matter how well we were trained.
Imagine an amusement park ride that sits you in a pod, and that pod is twirled sideways at one revolution per second (you’ve never actually been on an amusement park ride remotely approaching that level of disorientation, because it would be prohibited). You have a panel in front of you with dozens of dials and small toggle switches, and you are supposed to toggle those switches in a prescribed sequence. While spinning one revolution per second. Pretty hard, trying to focus your eyes on those dials and coordinate your finger movement under those g forces so that you can even touch a switch that you’re aiming for. Now imagine that the sequence is not prescribed, but instead that there are many permutations, and you’re supposed to decide which permutation to do next based on what happened with the last one. Heavy cognitive demand there—long-term memory from training, short-term memory, induction, deduction. While spinning at one revolution per second. And now, to top it all off, if you don’t do it right, REALLY fast, you’re going to lose consciousness and die.
Jerry Bostick mused, “So there’s Neil, calmly toggling these little banana switches, moving through the alternatives, until he figures it out.” He shook his head in wonderment. “I’m not sure that any of our other pilots, and we had some great ones, could have analyzed the situation and solved it as quickly as he did.” I could forget about trying to make anything of Neil not being the first choice for the lunar landing.
Armstrong displayed the same sang froid during Apollo 11, when the Eagle was heading toward a field of boulders and, with a fuel tank within seconds of empty, Armstrong flew the spacecraft to a safe landing spot. And then, back home and after the obligatory ticker-tape parades were completed, he never did anything to cash in on his fame, living out his life quietly, a good man.
In an age of vainglory, preening, and press agents, Neil Armstrong was that rarest of public figures: The man we can tell our children to admire who truly deserves it, for what he did, how he handled it, and who he was.


20 controversial programming opinions

20 controversial programming opinions:

One of the very first ideas we had for this blog was to convert some of the wonderful gems of the early era of our site, the undisciplined period, to blog posts. Questions that were once enthusiastically received by the community, but no longer fit Programmer’s scope.
The first deleted question I’ve chosen is Jon Skeet’s “What’s your most controversial programming opinion?” question, a +391 scored question that was originally asked on Stack Overflow on January 2, 2009. What follows are twenty of the highest voted answers, in random order…

  1. Programmers who don’t code in their spare time for fun will never become as good as those that do.

      I think even the smartest and most talented people will never become truly good programmers unless they treat it as more than a job. Meaning that they do little projects on the side, or just mess with lots of different languages and ideas in their spare time.
    by rustyshelf

  2. Unit testing won’t help you write good code.

      The only reason to have Unit tests is to make sure that code that already works doesn’t break. Writing tests first, or writing code to the tests is ridiculous. If you write to the tests before the code, you won’t even know what the edge cases are. You could have code that passes the tests but still fails in unforeseen circumstances. And furthermore, good developers will keep cohesion low, which will make the addition of new code unlikely to cause problems with existing stuff.
    by Chad Okere

  3. The only “best practice” you should be using all the time is “Use Your Brain”.

      Too many people jumping on too many bandwagons and trying to force methods, patterns, frameworks, etc. onto things that don’t warrant them. Just because something is new, or because someone respected has an opinion, doesn’t mean it fits all.
    by Steven Robbins
     

  4. Most comments in code are in fact a pernicious form of code duplication.

      We spend most of our time maintaining code written by others (or ourselves) and poor, incorrect, outdated, misleading comments must be near the top of the list of most annoying artifacts in code. I think eventually many people just blank them out, especially those flowerbox monstrosities. Much better to concentrate on making the code readable, refactoring as necessary, and minimising idioms and quirkiness. On the other hand, many courses teach that comments are very nearly more important than the code itself, leading to the this next line adds one to invoiceTotal style of commenting.
    by Ed Guiness

  5. “Googling it” is okay!

      Yes, I know it offends some people out there that their years of intense memorization and/or glorious stacks of programming books are starting to fall by the wayside to a resource that anyone can access within seconds, but you shouldn’t hold that against people that use it. Too often I hear googling answers to problems the result of criticism, and it really is without sense. First of all, it must be conceded that everyone needs materials to reference. You don’t know everything and you will need to look things up. Conceding that, does it really matter where you got the information? Does it matter if you looked it up in a book, looked it up on Google, or heard it from a talking frog that you hallucinated? No. A right answer is a right answer. What is important is that you understand the material, use it as the means to an end of a successful programming solution, and the client/your employer is happy with the results.
    by PhoenixRedeemer

  6. Not all programmers are created equal.

      Quite often managers think that DeveloperA == DeveloperB simply because they have same level of experience and so on. In actual fact, the performance of one developer can be 10x or even 100x that of another. It’s politically risky to talk about it, but sometimes I feel like pointing out that, even though several team members may appear to be of equal skill, it’s not always the case. I have even seen cases where lead developers were ‘beyond hope’ and junior devs did all the actual work – I made sure they got the credit, though.
    by Dmitri Nesteruk

  7. I fail to understand why people think that Java is absolutely the best “first” programming language to be taught in universities.

      For one, I believe that first programming language should be such that it highlights the need to learn control flow and variables, not objects and syntax. For another, I believe that people who have not had experience in debugging memory leaks in C / C++ cannot fully appreciate what Java brings to the table. Also the natural progression should be from “how can I do this” to “how can I find the library which does that” and not the other way round.
    by Learning

  8. If you only know one language, no matter how well you know it, you’re not a great programmer.

      There seems to be an attitude that says once you’re really good at C# or Java or whatever other language you started out learning then that’s all you need. I don’t believe it- every language I have ever learned has taught me something new about programming that I have been able to bring back into my work with all the others. I think that anyone who restricts themselves to one language will never be as good as they could be. It also indicates to me a certain lack of inquistiveness and willingness to experiment that doesn’t necessarily tally with the qualities I would expect to find in a really good programmer.
    by glenatron

  9. It’s OK to write garbage code once in a while.

      Sometimes a quick and dirty piece of garbage code is all that is needed to fulfill a particular task. Patterns, ORMs, SRP, whatever… Throw up a console or web application, write some inline SQL (feels good), and blast out the requirement.
    by jfar

  10. Print statements are a valid way to debug code.

      I believe it is perfectly fine to debug your code by littering it with System.out.println (or whatever print statement works for your language). Often, this can be quicker than debugging, and you can compare printed outputs against other runs of the app. Just make sure to remove the print statements when you go to production (or better, turn them into logging statements).
    by David

  11. Your job is to put yourself out of work.

      When you’re writing software for your employer, any software that you create is to be written in such a way that it can be picked up by any developer and understood with a minimal amount of effort. It is well designed, clearly and consistently written, formatted cleanly, documented where it needs to be, builds daily as expected, checked into the repository, and appropriately versioned. If you get hit by a bus, laid off, fired, or walk off the job, your employer should be able to replace you on a moment’s notice, and the next guy could step into your role, pick up your code and be up and running within a week tops. If he or she can’t do that, then you’ve failed miserably. Interestingly, I’ve found that having that goal has made me more valuable to my employers. The more I strive to be disposable, the more valuable I become to them.
    by Mike Hofer

  12. Getters and Setters are highly overused.

      I’ve seen millions of people claiming that public fields are evil, so they make them private and provide getters and setters for all of them. I believe this is almost identical to making the fields public, maybe a bit different if you’re using threads (but generally is not the case) or if your accessors have business/presentation logic (something ‘strange’ at least). I’m not in favor of public fields, but against making a getter/setter (or Property) for everyone of them, and then claiming that doing that is encapsulation or information hiding… ha!
    by Pablo Fernandez

  13. SQL is code. Treat it as such.

      That is, just like your C#, Java, or other favorite object/procedure language, develop a formatting style that is readable and maintainable. I hate when I see sloppy free-formatted SQL code. If you scream when you see both styles of curly braces on a page, why or why don’t you scream when you see free formatted SQL or SQL that obscures or obfuscates the JOIN condition?
    by MustStayAnonymous

  14. UML diagrams are highly overrated.

      Of course there are useful diagrams e.g. class diagram for the Composite Pattern, but many UML diagrams have absolutely no value.
    by Ludwig Wensauer

  15. Readability is the most important aspect of your code.

      Even more so than correctness. If it’s readable, it’s easy to fix. It’s also easy to optimize, easy to change, easy to understand. And hopefully other developers can learn something from it too.
    by Craig P. Motlin

  16. XML is highly overrated.

      I think too many jump onto the XML bandwagon before using their brains… XML for web stuff is great, as it’s designed for it. Otherwise I think some problem definition and design thoughts should preempt any decision to use it.
    by Over Rated

  17. Software development is just a job.

      I enjoy software development a lot. I’ve written a blog for the last few years on the subject. I’ve spent enough time on here to have >5000 reputation points. And I work in a start-up doing typically 60 hour weeks for much less money than I could get as a contractor because the team is fantastic and the work is interesting. But in the grand scheme of things, it is just a job. It ranks in importance below many things such as family, my girlfriend, friends, happiness etc., and below other things I’d rather be doing if I had an unlimited supply of cash such as riding motorbikes, sailing yachts, or snowboarding. I think sometimes a lot of developers forget that developing is just something that allows us to have the more important things in life (and to have them by doing something we enjoy) rather than being the end goal in itself.
    by Greg Beech

  18. If you’re a developer, you should be able to write code.

      I did quite a bit of interviewing last year, and for my part of the interview I was supposed to test the way people thought, and how they implemented simple-to-moderate algorithms on a white board. I’d initially started out with questions like:
    Given that Pi can be estimated using the function 4 * (1 – 1/3 + 1/5 – 1/7 + …) with more terms giving greater accuracy, write a function that calculates Pi to an accuracy of 5 decimal places.
      It’s a problem that should make you think, but shouldn’t be out of reach to a seasoned developer (it can be answered in about 10 lines of C#). However, many of our (supposedly pre-screened by the agency) candidates couldn’t even begin to answer it, or even explain how they might go about answering it. So after a while I started asking simpler questions like:
    Given the area of a circle is given by Pi times the radius squared, write a function to calculate the area of a circle.
      Amazingly, more than half the candidates couldn’t write this function in any language (I can read most popular languages so I let them use any language of their choice, including pseudo-code). We had “C# developers” who could not write this function in C#. I was surprised by this. I had always thought that developers should be able to write code. It seems that, nowadays, this is a controversial opinion. Certainly it is amongst interview candidates!
    by Greg Beech

  19. Design patterns are hurting good design more than they’re helping it.

      Software design, especially good software design is far too varied to be meaningfully captured in patterns, especially in the small number of patterns people can actually remember – and they’re far too abstract for people to really remember more than a handful. So they’re not helping much. And on the other hand, far too many people become enamoured with the concept and try to apply patterns everywhere – usually, in the resulting code you can’t find the actual design between all the (completely meaningless) Singletons and Abstract Factories.
    by Michael Borgwardt

  20. Less code is better than more!

      If the users say “that’s it?”, and your work remains invisible, it’s done right. Glory can be found elsewhere.
    by Jas Panesar
What do you think? And more importantly, what’s your most controversial programming opinion?

Does Bad Weather Affect Cloud Computing?

Does Bad Weather Affect Cloud Computing?:
Can rains and thunder-storms affect cloud computing?
Last year, a retired high-ranking official of the Indian government managed to convince a TV reporter that bad weather can actually disrupt cloud based services. His argument was that your computer makes a connection to the cloud (the “physical cloud” that turns into rain) and thus cloud services won’t work as expected in the absence of clouds.
The hilarious video recording quickly went viral on YouTube and here’s short version of the same but with English subtitles.
51% says bad weather can interfere with cloud computing
It turns out that the concept of “cloud computing” is indeed confusing to a majority of users. A recent survey commissioned by Citrix has found that most Americans associate the tech term “cloud” with the actual physical cloud.
When asked what “the cloud” is, a majority responded it’s either an actual cloud, the sky or something related to the weather. Only 16% said they think of a computer network to store, access and share data.
Technically speaking, they have a valid point as extreme weather conditions can result in power outages, floods at data centers directly affecting the cloud services.
And such things have happened in the past. Here’s a video  (via @Mikko) of Vodafone’s data center that was hit by torrential rains.
Tweet this Share on Facebook

Digital Inspiration @labnolThis story, Does Bad Weather Affect Cloud Computing?, was originally published at Digital Inspiration on 30/08/2012 under Tech Notes.