6 posts tagged “programming”
"Resistance is Futile" - An unnamed Microsoft spokesperson
With more bandwidth available to users all over the world, migration from static web pages to Rich Internet Applications (RIA) makes the web not only a more visually appealing place, RIA gives Digital Media Developers a more effective way to deliver meaningful content.
I've been programming in Flash/Actionscript since FlashMX and while I have yet to come across too many things where Flash has 'let me down', I'm pleased to see that our friends at Microsoft have put together what initially looks like a very competitive alternative to Flash: Silverlight.
Silverlight is promising out of the gate some things that make it look very appealing: .NET integration, support for AJAX and easy to use video delivery, all on a cross-browser plugin. The biggest problems with making it cross-browser capable are rendering and being resistant to crashing (a problem especially on non-Windows OS's). With pure HTML, a web page can usually have a cross-browser problem without causing the web page to be rendered so improperly that it cannot be used. However, I am deeply concerned that Silverlight is going to have the expected growing pains that all applications from Redmond have, making it slow to adopt.
I'm totally cool that Silverlight has a free to download SDK. I'm also cool with having to learn a new interface and potentially a new language (or more likely flavor of a language we all know and love). But, I don't have tons of time to work on my current projects and learning a whole RIA delivery tool without knowing if the thing is even going to be popular.
It doesn't help that installing the plugin on my Dell Latitude froze and made me reboot:
Show us the game you're addicted to at the moment.
Submitted by Lena Katrin.
"Thief - Deadly Shadows" - Promoting Positive Family Values (kinda)
When "Thief - The Dark Project" was released for PC it literally invented the "First Person Sneaker" genre. The game's philosophy of hiding in the shadows instead of rushing into a room full of baddies guns-a-blazin' was not only a welcome departure from Quake and its clones, it made for an acceptable game to play when my 5 year old son wanted to sit on my lap and watch me play. With mission goals which include "Don't kill anybody", it made something that I could play and have fun with while giving him a look at games that were more advanced than "Teddy's Big Adventure".
The latest iteration, "Thief - Deadly Shadows", is far from a new title. In fact, my son gave it to me as a PC title quite awhile back as a gift. We've all played it before, but now that we have our Xbox360, I had to pick it up to enjoy it on the big screen and with Dolby Surround Sound.
The lighting and shadow effects are quite impressive, with muliple light sources and rendered shadows. I've programmed these effects in "C" with OpenGL, and its pretty tricky stuff. Flickering candles cast shadows that weave and bob with the dancing flames, but don't sit and look at them too long because the game's title is, after all, "Deadly Shadows"! Guards are watching for you and they will notice the shadow on the ground or the wall and are very eager to run you in for your thieving deeds.
Some other clever AI programming is how the game uses sound so extensively to both help you monitor the movements of guards and also to help them find you. Don't knock over a box, or they'll come running and you'll be "spending the night downtown"!
Its a lot of fun to play Thief again. I will always remember how my son would duck and dodge to avoid the gaze of a guard while we hid in a dark doorway. And when the zombies showed up, well that was it.. he would dive for the level-skip command!
He's older now, but still likes to play all three Thief games. And I know he'll enjoy this one on the Xbox, too, when he is here for the summer.
Worst practices in Software Engineering..
- Migration of customer data on the same day as a major User Interface (UI) release
- Releasing a new version of the software without testing
- Failing to provide up to date user manuals for the new software
- Removing valued and useful features
- Increasing time for users to complete common tasks while reducing usability
- Making major changes to operational workflow
- Inconsistent labels on buttons and menus from one screen to the next
- Provided online help that is two versions old
- No online help where it should be
- Last but not least.. failing to recognize that a rollback should have been done
The process of Software Engineering is a very plastic science. I mean, there is no way to calculate the solution to a software problem like there is to calculate how much steel to use in a bridge or how much thrust to use when launching rockets.
Are the problems listed above major problems? They are in one sense, but in the world of Software Engineering, they really aren't that bad. I mean, look at this list of software problems that had far-reaching negative effects:
- Software for radiation therapy miscalulates the doctors intent and overdoses patients. Eight patients die and 20 others are injured
- Particle accelerator used for medical purposes incorporates software that permits a "race condition" error. The race condition allows a safety interlock to be ignored which causes the death of five patients and many other injuries.
- Ariane 5 rocket explodes during ascent due to old software being used on new rocket. An error in converting a 64-bit number to a 16-bit number causing the engines to over-throttle, causing the loss of a $370 million dollar vehicle and payload.
- Mariner I space probe is destroyed by Mission Control after it diverts from its launch path. The cause is traced to improperly transcribing a calculation done with pencil and paper into the guidance computer.
- A new software release in AT&T telephone switches causes a domino-effect failure in 114 long-distance switches. For over nine hours, 60,000 people are without telephone access. The problem is fixed with a software revision roll-back.
Now, nobody is going to die if the software that my company provides goes squirrley. Nor will a rocket explode during launch and cause fire to rain down upon the Earth. That being said, while I have anything to say about it, I am not going to have any part of software that gets released with a complete lack of error testing, usability testing and absolutely no user documentation or online help.
I would also recognize when it's time to say "we were wrong" and would call for a software rollback.
"Foundation ActionScript Animation" - Dull title, but excellent book!
This is a textbook-style book on maximizing the potential of Flash 8 animation through manual coding with ActionScript. It covers everything that one needs to create great excellent custom animation, without relying on Flash's limited and somewhat unpredictable 'tween engine'. Important topics such as:
- Kinematics
- Physics
- Collision detection
- User interation
- Introduction to 3D (including lighting and backface culling)
Although Flash does not really support 3D rendering, it can be done without too much pain. This book covers the basics quickly, but effectively and even includes some 3D perspective and scaling theory to back up the formulae.
Pros: Fast paced book that doesn't talk too technical for first-time ActionScript programmers; introduces everything needed to start making games or applications; good code examples and summaries at the end of chapter.
Cons: I like color and this book could have used some, although it is fairly inexpensive ($39.99), so maybe this is a 'Pro'; no accompanying CD - I don't want to have to hunt for downloads and I'm too lazy to type in examples so I can play with them; you need to get another book like "Object-Oriented Actionscript for Flash 8" if you want to see 'The Big Picture'
What could be better?
I am very pleased to announce that Laurie and I have both accepted positions with SilkRoad Technogy! We are truely inseparable and the fact that we both got offered positions with the same company just reinforces that.
We are both very excited to be a part of this company and see big things for us with them in the near future!
If you've read a "Head First" book before, you know this already: The "Head First" series of computing books are closer to other media types like movies or videos than print. They read like a story while leading the reader (or viewer) through complex ideas easily. Engaging examples and appropriate 'close enough to real-world' applications that build on each subsequent chapter provide a powerful framework for learning with enough detail to be textbook quality, but without the 'yawn factor'.
Design Patterns are less about code generation than they are about philosophy. And what better book to discuss such a philosophical topic than one from the Head First team?!
Pros: It's 'Head First' (see top for more). Good balance of code and concepts. Appropriate credit given to the GoF (Gang of Four) without unneccesary idolatry.
Cons: Strong focus on certain patterns with minimal focus on others that are just as important. No accompanying CD. Many many typos.