On the matter of Firefox and memory leaks…

Recently our original article/rant on Firefox’s legendary memory abuse has seen an increase in comments and views; and I had intended to post the following comment in light of the article’s rebirth and the ensuing discussions in the comments.

The reply turned out to be longer than I’d originally intended, so here it is as its own post.

I’ll try to be as objective as possible in this reply:

The most important thing for frustrated end users to keep in mind is that Mozilla/Firefox cannot be held responsible for cases where incorrectly written plugins and/or extensions cause Firefox to abuse system memory – that’s the trade-off between empowering developers and keeping the code squeaky clean.

Most of the cases reported are indeed caused by one or more extensions or plugins gone awry, doing something they shouldn’t be doing, or something they don’t know how to do properly. Some of the most popular plugins for Firefox are notorious for their memory leaks; but few users realize just how dangerous they can be, and that the Firefox devs cannot really do anything about it.

At the same time, there can be no doubt that Firefox has some memory leaks in the codebase itself. They’re clearly not easily reproducible and they don’t happen very readily nor often enough because the developers have clearly spared no effort in their attempts to address this problem for once and for all. But they’re there, nevertheless.

Continue reading

Programmers Should Trust Their Instincts

People are either cut out to be programmers or they’re not. How to know, what to do if you’re not, and where to go from there is a huge issue and not the subject of discussion. But one of the signs of a good programmer is good programming instincts. The right instincts can save hours of work and provide creative solutions to even the most difficult problems; and “gut feelings” in programming are not something you should ignore lightly.

One of the first thing Computer Science teachers drill into the heads of their students is that it’s important to map everything out beforehand. Design the algorithm. Draw the UML diagrams. Decide the entire flow of data and the relationships between everything before you even touch the IDE. While this is integral advice for anything above a small-complexity project, there is an exception: if you have a gut feeling, follow it.

For instance, the other day I sat down to write a simulator for a MIPS datacache, with different replacement policies. “Ideally,” the planning procedure would have involved designing the sequence diagram, a flowchart detailing the method used by the cache to determine expired entries, and generally-speaking a lot of time down the hole just visualizing what happens beforehand.

Continue reading

Internet Explorer 7 “Updated” – But Not Really…

Steve Reynolds, program manager of the Microsoft [[MSFT]] Internet Explorer development team, has just announced an “update” of sorts to Internet Explorer 7 a year or so after its original release in 2006. Never mind the fact that we were promised regular updates and that “Internet Explorer 7 won’t be like IE6” with regards to lack of new features and updates, what’s up with the list of the things that have changed with this new version!? Have a look for yourself at the “changelog:”

  1. No need for WGA verification in order to get Internet Explorer 7
  2. The menu bar is now visible by default.
  3. The Internet Explorer 7 online tour has updated how-to’s. Also, the “first-run” experience includes a new overview.
  4. We’ve included a new MSI installer that simplifies deployment for IT administrators in enterprises. Learn more about it here.

Interesting… Here’s our take on these “updates” 

  1. It really shouldn’t have required WGA in the first place – Microsoft (for some odd reason) guarantees users of pirated versions of Windows “immediate” access to any security-related patches, upgrades, and hotfixes. Doesn’t Microsoft tout Internet Explorer 7 as a security-prioritized upgrade?
  2. Noooo! We love the hidden menu bar! It’s clean, it’s clutter-free, and it gives IE7 a great look. Obviously the reason they’ve put it back is that users had trouble getting the menu to show (hint: press `alt` to make it appear), but who actually uses the menu bar anyway?! At least make it a first-run option… please? Sure, you can make it hidden again by flicking a switch in the options panel, but that’s just so wrong on so many levels…
  3. Not exactly what we’d call an upgrade to Internet Explorer itself so much as it is an improvement to the external documentation. It’s just a file hosted on MS servers that users can opt to view.
  4. Nothing more than an upgrade to the packaging/deployment for Internet Explorer 7, albeit a most-welcome one for sysadmins and software integrators everywhere.

Continue reading

Apple’s New Animation Framework

Although we try our best to be impartial when it comes down to OS wars, and we have, throughout the years, presented the pros and cons of Windows, Linux, and other operating systems, you’ve probably noticed that NeoSmart Technologies isn’t too big on Apple. Well, color us purple, but this we have to talk about.

Apple [[AAPL]] has a new technology due to ship in Leopard that is pretty damn impressive to hear some of the developers (or at least those at liberty to discuss what they’ve been told) talk about it. According to this Wired News article, this framework will focus on making it easy for developers to add Next (Delicious) Generation graphics to their applications, bringing the concept of UI to a whole new playing field.

While it sounds just plain awesome, we can’t help but look at it with mixed feelings. Since this is Apple and not Microsoft we’re talking about, we’re pretty darn sure everything they say can and will be found in the RTM release of OS X Leopard *cough* WinFS *cough*, but whether or not it will revolutionize the concept of user interfaces everywhere remains to be seen.

Granted, the effects are supposed to be astounding. But that’s not the question, next-gen UIs (hereby dubbed “Desktop 2.0”) are almost always a matter of how and not what. As the Wired article states, these same “amazing” graphical innovations with the UI do already exist in certain programs (like Disco, the CD burning utility for OS X), the only difference is, Apple promises to make it much easier to get the same end results.

Continue reading

“Spare Cycles” or Selfless Souls?

Chris Anderson (Wired Magazine, The Long Tail) posted an interesting article yesterday, comparing bored humans to spare CPU cycles – and more importantly, just how much they can accomplish. But while the article – as a whole – was really interesting and scientific and is a topic that has been discussed in scientific forums, dozens of publications, and is the basis for a lot of research, there was one paragraph that stood out:

Who knew there was so much untapped energy all around us, just waiting for a catalyst to become productive? But of course there was. People are bored, and they’d rather not be. [……]

That sheriff is watching a movie because he has spare cycles. Spare cycles are the most powerful fuel on the planet.  It’s what Web 2.0 is made up of. User generated content? Spare cycles. Open source? Spare cycles.1 MySpace, YouTube, Facebook, Second Life? Spare cycles. They’re the Soylent Green of the web.

While we’re sure that Chris probably didn’t mean anything by it and it was just a passing reference made without much thought, it does beg the question: do people actually believe that open source exists only because we [the developers, the contributors, the testers, the documenters, and just about everyone else involved in the process] are too bored and have nothing better to be doing?!

Continue reading


  1. Emphasis added. 

Please Microsoft, Stop Holding .NET Back!

As dedicated developers, end-users, and champions of Microsoft’s .NET Framework, we’re making a final plea to Microsoft and the .NET Framework team to save .NET and make it a real multi-platform framework. Please!

Sun could (and did) do it with Java, so why can’t Microsoft just swallow the pill already and provide real support for the .NET Framework on all operating systems? Yes, that includes Linux and Mac too. It’s ironic, because the .NET Framework has so much potential as a platform with its unique multi-language structure, nifty features, excellent libraries, (relatively) well-performing output, and darn-good innovative technologies like LINQ coming-up and XAML already here. Yet Microsoft just doesn’t realize that if they truly want .NET to succeed, they’ll have to bite the bullet and stop pretending that only officially supporting Windows won’t make users leave Linux/Mac/BSD/Whatever and buy licenses for Windows instead.

Continue reading

“People Hate Making Desktop Apps…” Since When!?

What a crazy day for technology. It all started with Paul Graham’s ridiculous link-bait article “Microsoft is Dead,” earlier today. Since then, the web has been in an uproar – just how do you define success, innovation, power, creativity, and can companies just “die” anyway? Never mind that conversation – Paul Graham surprised us there though. He’s normally a sane and very much down-to-earth person with a lot of insight on Web 2.0 and what it takes to be a startup. But that’s not what we’ve taken up a problem with – what’s really gotten to us is how some people are using his article as grounds for an argument that Desktop apps are old, dead, and a pain-in-the-ass to make.

The particular post being referred to is Ryan Stewart’s “Why Do People Hate to Build Desktop Apps?” It comes in response to the article by Don Dodge and a conversation with Simon Bateman. Now that the background’s succinctly (hopefully) out of the way: While Ryan’s article makes a valid a point about the ease-of-use of Microsoft’s .NET Framework and Adobe’s Apollo and just how powerful-yet-easy these two technologies make desktop software development – his entire article is based on an invalid premise! People don’t hate making desktop apps!

Continue reading

Why I Joined Habari, and What It’s All About

People have been bombarding my email asking me questions about Habari, and most importantly, why I joined it. I wasn’t planning on blogging about any of this until I officially became a committer in the Habari project, but after reading this post, I feel the need to share my reasons.

I’ve been a loyal contributor the WordPress project and a ardent (for lack of a more aggressive word) WP-Hacker for what seems like forever – even though it isn’t. WordPress is my first-love when it comes to blogging, you may have noticed. But yeah, I working on Habari too.

I didn’t leave WordPress. Not because Matt is the devil-incarnate nor because I’m put off that he wouldn’t hire me (not even interested), but because Habari is a challenge. It’s something I’ve always wanted to work on.

Continue reading

Is .NET Taking Over the World?

4 short years ago, Microsoft unveiled its new framework/engine for programming and running applications in a virtual environment, and the world was stunned. Microsoft had introduced a run-time environment that was for the first time a true “Write once, run everywhere” implementation, but that was far from being the end. With .NET 3.0 on the loom, NeoSmart Technologies takes a look at how far .NET has come and just how long it can keep going.

Besides being a true virtual machine implementation that really does work everywhere no matter how terrible your code is, .NET is paving the way for a revolution that’ll end with it either dead or the only language worth using.. and from what we see, it sure isn’t the first!

Update: Once you’re done reading, here’s a follow-up that should clear some things up.

Continue reading