RSS Feed For Product Pages
I’ve noticed something I’ve been doing with some consistency lately – when I come across a product that I have some interest in, but can’t or don’t want to start using straight away, I try to add the product page to my RSS feeds. With the proliferation of RSS support in browsers these days it seems to me that every product page should include a link tag pointing to the product updates feed. Ephox doesn’t currently do this, but its something that we should fix pretty quickly to help people find the Releases Blog and stay up to date with all the latest features and fixes.
Exchange Interoperability – Solved?
With a trip to the US coming up, I needed to set up a way to access my work email from my OS X laptop. Last time I went I just used Mail.app to access the Exchange server via IMAP and it worked ok, but obviously had no calendaring ability. This time round I really need the calendar to work as well so I fired up Entourage.
Going through the set up was a bit tedious and I thought it pretty dodgy that it wanted the Outlook Web Access (OWA) URL – obviously it goes via that instead of the normal exchange protocols. As it turns out though, that’s the way that the Exchange server hosting company recommends you access your email. In fact, the instructions for setting up Outlook on Windows include a series of complex maneuvers to get it to use OWA too. Indeed, Entourage seems just as capable a client as Outlook at least form early impressions. The only thing I miss is the SpamBayes integration and that’s not really a feature of Outlook.
No More Window Maker?
Back in the days prior to OS X, I used to run Linux on the desktop (dual booting with OS 9) and used Window Maker. Since then I’ve used Linux a fair bit but only on servers – I have all the UNIXy goodness I need in OS X. I’ve just looked into setting up another Linux desktop system to see how viable it is and found that Window Maker still hasn’t made it to a 1.0 release – in fact, it hasn’t seen an update since 2005.
JApplet Memory Leaks
I mentioned the other day that I was having trouble with OutOfMemoryErrors being thrown when there shouldn’t have been any references left around. We’ve done a fair bit more investigation into the cause of this and have wound up reporting a bug to Sun (still awaiting review so it’s not in the public bug database yet). It turns out that you can cause OutOfMemoryErrors with an applet as simple as the one below if you just refresh the page a few times – but apparently only if you’re using a dual-cpu or dual-core system.
Another Integration, Another Trick Up The Sleeve
It seems every time I do some work integrating EditLive! I find a new technique that makes it easier, simpler and more future proof. It’s not so much inventing new patterns as finding creative ways to apply them.
For instance, tonight I wanted to get the upload manager in WordPress working with my EditLive! WordPress plugin. There’s a whole bunch of logic and implementation detail in the JavaScript that WordPress outputs and it expects the editor to be TinyMCE. Fortunately, earlier on the plugin had drugged TinyMCE, taken it out back and shot it1, so it wasn’t available. Fortunately, it’s pretty straight forward to create an adapter for the TinyMCE runtime api that works with EditLive! and drop it in by assigning it to window.tinyMCE. Simple stuff and very similar to techniques I’ve used in other situations, but extremely powerful and easy to not think of. In fact, I’d tied into the autosave by manipulating JavaScript classes and all that became redundant now that I have the TinyMCE adapter.
Java OutOfMemoryError – Sanity Check
Just for my sanity, before an OutOfMemoryError is thrown, the garbage collector should do everything it can to free up more memory right? What I’m seeing now is that the JVM does a partial GC, throws an OutOfMemoryError and then decides to actually do a full GC which frees up enough RAM to get things working again.
Very annoying and I’m not sure what I can do about it. There are definitely no remaining references, but I still can’t get that memory back.
Remember To Turn On Antialiasing
If you’re doing some graphic work in Java that you want to look pretty (as opposed to most UI stuff where this doesn’t make any real difference), you probably want to make sure antialiasing is on for the graphics object. By default Java usually honors the OS settings for antialiasing, particularly for text, but you can get much smoother antialiasing by setting the appropriate rendering hint.
For example, originally the new progress bar I added last week didn’t have antialiasing on, but in the tweaks I’ve done this morning (now live on our internal systems) antialiasing is on and it looks much better. It’s also changed to be more dots than lines since the last post too. However, setting the antialias rendering hint for all the components in the editor simply slows everything down (rather dramatically) and doesn’t actually improve the appearance anyway. Definitely a setting to be aware of but be cautious in its use.
How In Touch Should I Keep?
As of next week I’ll officially be a product manager instead of an engineer. I’ll no longer be spending my days coding and for our core products I won’t be allowed to make changes to them. I will however be doing a bunch of prototypes and smaller integrations of our products etc so it’s still a hands on role.
Obviously I need to keep my general technical skills really high so that I can quickly whip up prototype integrations and stay on top of new technologies etc. For general technology issues like that I’ll probably need to be more on top of things than I am now, and I’ll wind up working in a much wider range of languages and with a much wider range of technologies. Definitely interesting stuff ahead. What I’m not sure about though is how in touch I should keep with the Ephox development team and how they are going about developing our products. I clearly need to know what the new features they’ve added are, but I’m not sure how much of the implementation details I’ll need.
Another Ephox Blogger
Welcome to the blog world Brett! It’s about time. Brett’s the engineering manager at Ephox and we’ve been nagging him to blog for some time now. I’m biased, but you really should go check out the theme – apparently he’s working on a post to explain the hamster….
After the whole Andy fiasco, we’re making sure we out Brett’s new blog early and often. So who’s going to be the next Ephox blogger?
Improving The Applet Startup Experience
I’ve spent most of this week working on making the start up experience for our applet better. It should look better, take longer and most importantly feel fast to the user. The first step is obviously to profile and optimize – the faster the start up time actually is, the easier it is to make it feel fast for users. There were a few things we could do to help out there, but nothing that really made a dramatic difference.
Production Polish
It’s amazing the amount of work that can be required to get from something that is perfectly wonderful for internal use to something that’s ready to be distributed to the public. For quite some time, we’ve been using a custom made WordPress plugin to allow us to edit blog posts with EditLive! It’s used on three blogs within Ephox, two blogs on this server and I’m pretty sure Rob’s using it too so it gets quite a workout. It’s stable, feature packed and all-round wonderful.
Moving WordPress To A New URL
Every so often I want to play around with something new on my blog without trashing the public site. I have a local instance of WordPress that I do most of my playing around on but it generally doesn’t have the some database configuration as symphonious.net so I can’t be sure that things I develop there will work here.
It is however simple to completely clone a WordPress instance to a new URL – but I never remember precisely how, so this is a note to myself so that next time I’ll remember.