Outlook Calendar iPhone Sync Fun
Since I’ve gotten my iPhone (which btw I refer to as the first true 21st century device - yes, it’s that much better than anything I’ve used), I’ve had major problems trying to sync it with Outlook’s calendar. Everything else would sync fine, but the calendar would come over really weird, and once it even got to the phone it wouldn’t sync back and forth properly. On top of that, every appointment that was sent to me via an email seemed to be in GMT, so it was 7 hours earlier than it was supposed to be. This is the story of how I think I’ve finally fixed it.
EDIT: since I first wrote this, I’ve just experience a non-sync again. See my latest post for more info.
(more…)
More DOM Fun
As per my last post, I’ve been working up a storm to redo our Konfabulator DOM. We did in fact end up coming up with a whole new way of exposing our objects into JavaScript. It’s so much nicer than anything we had in the past, though it does involve the use of a custom tool to help us generate the glue. But the end result is absolutely great. We’re able to whip up classes in no time now. Too bad we’re whipping up the same classes we had and not new ones
At the same time, I’ve been fixing layering issues in our code. Too much lower level stuff knew about too much higher level stuff. Some people seem to think this is OK. I however do not.
I’ve been finding that as I progress in my coding life, I’ve become more and more of a purist. I think most of my design purity stems from my life at Apple, to be honest. We had to completely re-layer most of our stuff for the transition to Mac OS X (it was part of the whole design). This and many other things have stuck with me as I’ve moved on from there. I like abstractions and the ability to separate pieces of code so that I can mix and match them later (and invariably, the need will arise). I’ve been developing various tenets and axioms as I go which perhaps someday I can compile and put up here.
Bringing the original Konfabulator hair tangle into this new, clean architecture has been a long time coming. But once complete, it can be used for far more than just Widgets in theory. And it can be used in far more scenarios than just embedded inside Yahoo! Widgets. That’s why you design layered and pure from the beginning: flexibility.
Being One with the DOM
Over the past couple of weeks, I’ve been doing a lot of work with our Konfabulator DOM. In some ways, we are completely redoing it so we can use it as the basis for everything (finally). I have also been looking at better ways to expose it via JavaScript.
What I continuously learn is that I really didn’t know the DOM spec like I thought I did. There is a lot of subtlety in the language that isn’t quite clear until you finally live the life for yourself. Over the weekend I was trying to get some stuff straight in my head. After working through it and getting my head around how to organize things, I was reading the W3C spec and noticed that it had basically said what I had just realized all along. It’s not super-obvious unless you really know a DOM implementation inside and out and have had to understand the design out of necessity. It’s a bit akin to my experience in karate where you’ll have someone tell you things a million times and then once you do it a zillion times you finally get it and say “my god, they’ve been telling me this all along”. There’s so much about learning that’s about experience and not words.
But of course the good news is that our DOM is much cleaner now and can be used for more things. I still need to figure out if I want to switch to use an Interface idiom ala Mozilla. It would simplify some things, but complicate others. More to think about. If I do go with Interfaces, I’ll probably just rely on C++ and not go so far as to use something like xpcom internally. That seems a bit much. But if I do C++ for now, it should be relatively straightforward to switch later if for some reason a COM-like solution was needed.
By far the trickest part is going to end up being how we expose things via Javascript. I’m not happy with the amount of work we have to do to expose a class. Too much repetitive work. I guess if we did use xpcom it would be a lot simpler since xpconnect does all these things for you. But that is biting off way more than we can afford to chew right now. Phasing is critical to success long term. I do have a decent hybrid solution in mind that can bridge the gap from where we were and a completely generic solution such as xpconnect.
Once our new foundation is in place it’s going to make a huge difference in what we’re able to do and how quickly we can do it. A lot of doors are going to open up when I’m done. It’s going to be pretty cool. If only I could finish!
Messenger for the Web
So if you haven’t seen recently, Yahoo! now has a version of Messenger that runs in a web browser. I’m actually running it in another tab as I write this. I can’t figure out if this is genius or insanity yet, but I’m leaning towards the latter.
The plus side is simple: server-side history (which I hope works on the client version too), and the ability to IM from anywhere without having to install software. It’s perfect for interweb kiosks, etc.
But damn, it’s a web page and that makes it… oh I don’t know… large. And now, I have a messaging pending, so the tab is displaying the message like a marquee, scrolling across. Annoying. It should just probably change into a different title that indicates there’s a message unread.
The jury’s still out on this one. It definitely will be useful at times, no doubt, but I don’t know if it’s what I want to run 100% of the time.
Badges of Honour
Yes, you can now put a badge on your website pointing to any Widget in the Yahoo! Widget Gallery by going to our Badgers page. You can point to any Widget you want, be it your own or your favorite. Badge away!
(I’ve badged the Flickr Widget over on the right as an example.)
Developer Day!
We’re offering the first ever Yahoo! Widgets Developer Day at our headquarters in Sunnyvale, CA. If you happen to be a Widget developer, we’d love to see you there.
You can get more information on the Widgets Blog.
Carbon: The Undead
I just downloaded the Eclipse SDK to check out a plugin for it, and I noticed it was done in Carbon. That got me thinking about the state of Carbon these days. Last year at WWDC, it was made very clear that Carbon is in a holding pattern now. Maintenance mode.
I can understand why Apple might do this, Cocoa is a full-featured application framework, and the objective-C runtime does allow you do do some pretty interesting things with it. Why have two frameworks when you can focus on one. Also, now that Carbon did its job and got the developers over to X, it can be put out to pasture.
Sadly, I think this is a bad move overall. And not because I put so much hard work into it, but simply because I think it allows you to do some things easier than Cocoa. Arguably more important things.
(more…)
More Galactica Theories
I’m mostly writing this to see how good or bad I can predict. I’ve been pondering the whole death of Starbuck and the line that’s supposed to come up in tonight’s episode about “We’re all cylons.”. Of course, the second Starbuck bought it, I thought “she must be a cylon then”. Why spend all those episodes talking about her destiny only to have her die. Putting myself into a writer’s shoes, it just doesn’t make much sense.
But of course you listen to Ron Moore’s podcast and he’s all dramatic about how they felt you know what, she need needs to die. And the part about how the called her up to break the news to her. There’s also the fact that she grew up and had a mother. Of course, one could argue that either
- those memories are fake
- the final 5 cylons are hybrids
What’s stuck in my brain now is the part where the cylon tells her about there being nothing wrong with death and some line about the space in between life and death. Which is of course where the Deanna model of cylon kept trying to get to to see the final 5 cylons.
So I say Starbuck might return tonight and change everything. To what, I have no idea. If they are all cylons, then what? Why race the other cylons to Earth after all. Why continue the series? Unless they take a tack of “well, we’re the good cylons” or something equally ridiculous. I don’t know. Guess I’ll know in an hour or two!
Stargate on Blu-ray
Last night I watchd Stargate on Blu-ray. It looked really good, but I’m wondering why the heck the subtitles didn’t show up when they were talking “Egyptian”. I had to manually turn them on, which of course, then gave me subtitles when they were saying everything. Scanning the web this seems to be an issue with the disk (I hope — it would be unfortunate if it were a blu-ray limitation and would likely flip me to HD-DVD). I’d hate that you couldn’t get partial subtitles on a movie, as you need in this one or possibly at the beginning of Hunt for Red October, etc.
One amusing note was that I started listening to the commentary track for a while and they were very adamant they had nothing to do with the series. That’s sad to me as I really enjoy the series (though since Sci-Fi’s had it it hasn’t been as good). It’s not unexpected though that they don’t like from past stuff I’ve read.
Another interesting thing is that in this version (which I also have the DVD of), they show extra scenes, including glimpses of some petrified ‘gods’ that apparently tried to come through the gate and got embedded in the rock. I had thought they were just buried with the stargate after the revolution, but the commentary says they tried to come through. It certainly isn’t clear from the movie, but I like that explanation a lot better.
And of course, you always have to wonder as you watch it why the computers were already set up for 7 symbols when he cracks the secret of the glyphs. That takes so much away from it. I realize they want to get on their journey quickly, but they could have at least had a scene or two in-between where they figure out how to dial it. I dunno. Something. Anything.
Anyhoo… geektime over.
Yahoo! Widgets 4 Released
We’re done with Yahoo! Widgets 4! Read all about it on our official Widget Blog. This release took a while to get done, but the team is ramped up substantially. We do still have three engineering reqs. to fill, so if you know someone who’s a wiz at doing framework-level development, send them our way. The next couple of releases are really going to change things.