Monday, May 24, 2010
I was reading about more software development anti-patterns because on Tuesday I'll have to conduct a code review for a particular client. I managed to somehow stumble on to Tester-Driven Development. I honestly thought it was a typo and assumed they meant Test-Driven Development. I started laughing at the fact that there are projects that allow QA to drive the requirements of the application--but hey? Sometimes projects are so terribly managed that it happens!
If you ever find yourself on a project where production-level people (Developers, QA, Designers) are creating the requirements instead of the primary stakeholders, you better take a step back and think about how bad that could turn out. Oh wait, I forgot you could be telepathic and just automagically know what the client wants.
Here's my two cents.
When a web project starts, the respective discipline leads (developer, QA, design, project management, stakeholders) need to figure out what their strategic goals are whether they are long-term or short-term. The reason why we have QA in at the start is to ensure that a lot of the functionality being built is not going to be a bug. Two really good examples I can think of off the top of my head would be scrollbars and IE6 graceful degradation. When running through a website that has a lot of transparencies, rounded corners, and drop shadows in Internet Explorer 6, you're bound to run into a "wat teh fuk" moment.
The best thing to do is to ensure that everyone (even the client) is aware that IE6 is an archaic web browser and doesn't support certain functionality without spending an extensive amount of effort hacking it into the application. This is why we employ graceful degradation on the agreement that there will be some 'weird' things happening for any IE6 users. The application will continue to function normally but there will be quirky things in the view, such as, fonts won't look anti-aliased or drop shadows won't be fully supported or transparencies won't be fully supported. Even Facebook, the biggest social network with over 300+ million members has decided to drop support for IE6. You can use this argument when you're explaining to the client. If they are hard set on supporting IE6, then it will impact both QA and Development time. Ultimately, depending on how complex the application you're trying to build, it could even double your hours just having IE6 being fully supported. Adding to this, you should definitely look into the web traffic metrics to see which browsers their customers are using. If IE6 is a minority, use this to your advantage in your argument towards partially supporting IE6.
Once the client understands that their customers using IE6 are a minority or it just isn't worth it, we can filter that down to the rest of the team. I truly believe that QA is underestimated in all agency work that I've dealt with. Most people above production-level work (project managers and up) just think QA click the application and try to break it. That's probably only 5% of the work they can actually do. Since we're bringing in QA at the start of the project, it allows them to write clear and concise acceptance tests for the requirements, as well as, prepare their automation tools for upcoming features.
Sadly, from what I've seen, they aren't utilized for those roles. They are simply clickers and subject to late hours because defects need to be regressed. If it was up to me, I'd have the whole team test the application--you'd be surprised to know how many project managers don't even know how to use the product they're building.
Sunday, May 16, 2010
If you watch the video you'll see that Markee produced it because of a mishap recently. After a "customer" made about $20,000 in purchases for virtual goods, they did a reversal essentially having that amount of money returned. Incidentally, there is a certain amount of time that a user can reverse purchases ( I don't believe a user can reverse a purchase that was made 3 years ago)---in this particular case, the amount it was stopped at was approximately $13,000.
In the end, notice that Markee's message is about stealing from companies that sell virtual goods and how the level of honesty in parents can directly affects their children's perspective on stealing. Although his company did take a large financial hit for the customer's reversals, it is more of an issue for his company to step up their legal strength.
Lesson learned--that goes to tell you that there are many dishonest and dishonourable people on the Internet and companies (in sales for virtual goods) need to take the necessary steps to establish a higher level of legal control.
Monday, May 10, 2010
1) Click the + sign on the bottom left and click New Command.
2) Paste this into the editbox and make sure you name your command "Strikethrough".
For the input field, select WORD in the drop down.
For the output field, select "insert as snippet".
As for the keybind, you can totally map it to whatever you're comfortable with but I chose Command-D as it is the same thing in Microsoft Word.
Sunday, May 9, 2010
- If you're going to ask a trivial question, ensure that you sign up as a troll. Name yourself: "lolyougotowned" or "trollpride" or "trollingftw". Don't put your real name down when you're asking technical questions. I'm sure that these search results will be detrimental to my career down the road.
- If you're going to ask a trivial question, ensure that you've taken the necessary steps to hide your tracks (using a troll email address, etc).
- Given the fact that all technical interviewers will Google your name, ensure you can 'seed' your results to be in your favour. Use your SEO skills here! If you can somehow tilt the results in your favour (linking to your latest projects or a really intelligent response to an open source technical topic)--DO IT! A true Ninja will always tilt the situation in his favour for positional advantage over his enemies!
Whenever they show Iron Man or War Machine's HUD user interface, you'll see at the very bottom it said:
Are we to believe that Tony Stark was adamant about Apache configuration file syntax? Just joking--the person who designed it from a movie was probably being creative, so he copy pasted some stuff from his Apache configuration file.
I don't want to spoil it for you but I felt like I had to talk about this: whenever someone non-technical tries to be technical. A perfect example of this was the Hammer Industries CEO. When Ivan "hacks" his encrypted software and the Hammer Industries CEO says, "Wow, you totally bypassed the firewall so fast". Wait a second. Firewalls essentially protect the system from outside attackers (emphasize outside trying to come in). So why would they even care if it was a terminal INSIDE the corporate infrastructure. Totally defeats the purpose of network security.
If you haven't seen Iron Man 2, go watch it--it's a great entertaining movie. I watched it with my family for Mother's day.
So, after a terrible experience on Ubuntu for my father, I've decided to just go buy him a Mac Mini. Firstly, before I pull out the credit card, the first thing I do is go to MacRumors and look up the last update date for the Mac Mini. Incidentally, the Mac Mini was last updated on October 2009. That said, I'll be holding off on my purchase for a while as Apple may be updating these machines sometime within the next few months.
After buying so many Apple products, I've come to realize that if you're going to buy any Apple hardware, you need to buy it ASAP after it comes out. I made the huge mistake of buying an Intel Core Duo Macbook a few years ago, receiving it, and then 4 days later Apple releases an Intel Core Duo 2 Macbook with a bigger hard-drive and a lower price tag.
It's okay though--Pudge (the name of my old Intel Core Duo Macbook) lasted for a good 3+ years until he passed away from an accidental swim in "diet coke".
After doing a simple 1-2 hour install on a new Ubuntu box, I decided to surf a few HD videos on YouTube. The reason I installed Ubuntu is because I wanted to test out the user experience of 'web surfing' on a Linux platform. Turns out, Adobe Flash Player has terrible performance when loading anything labeled "HD" on YouTube.
At first I thought it was just YouTube's video player, but I went to Vimeo and tested a few of their high definition videos and the same issues occur:
- Ridiculous CPU spiking to 95%
- Framerate for videos drop to 1-3 FPS
If you take the same box and view the videos on WIndows or Mac OS X, you can see such a huge difference in performance. Since pretty much every video site you'll ever encounter is powered by a Flash player (instead of HTML5 video!) I doubt that Linux will ever be a great user experience for a casual user (only watches videos, reads news, checks email).
Now that I've mentioned HTML5 Video, go check out my fork for HTML5 video implementation with Flash fallback for the poor IE users.