Cerulean Studios -- Trillian Developers' Journal|
[Most Recent Entries]
Below are the 15 most recent journal entries recorded in
Cerulean Studios -- Trillian Developers' LiveJournal:
|Friday, August 15th, 2003|
Trillian Pro 2.0 Public Beta 2
Wow. It's been far too long since I posted here... but Trillian Pro 2.0 Public Beta 2 is out. If you're a Trillian Pro user, go into the members section of the website and grab the new beta, let us know. There's been a lot of reworking of the Jabber medium (especially with regards to SSL), and so I'm hoping all the bugs there have been eliminated. Go pound on that; if it's solid, I can finally start adding new features (new file transfer! MUC!) rather than making certain the framework is solid. :)
It's really important to get as many Pro users as possible dealing with the beta now, in the last stages, because there's inevitably differences between Windows machine configurations and installs which trip us up; we want 2.0 to be as solid as possible on as many systems as possible before release. Since most of 2.0's major changes are internal -- making everything support Unicode, redoing the windowing and skin system, etc. -- which are affected by different configurations (which version of Windows you're running, etc.), we really want to get those things tested.
Whew! I'm going to go get lunch now. (And look, Scott... something non-esoteric for my music!) Current Mood: accomplished
|Saturday, August 9th, 2003|
End of the Run
Thank for all your support in these threads
. I'm glad that the recent web updates work well in promoting the beta and making the community happy. :)
As time goes by, this is my third year around here. The web site has been set up by Scott & Kevin, designed by Ryan Saghir. Later I come in and introduced this set of design. It was designed mainly aimed at saving bandwidth yet retaining some sort of identity by manipulating html tables. It was radical and aroused compliants from the forum for its sometimes assymmetrical table legs.
Anyhow, the current design has been up for almost 2 years since the release of 0.70, and I had been maintaining the contents to make sure the site is at least saying what it should. If you have a stroke of nostalgia, you may go to web archive to take a look. The tour for .70 is simple and clean, while Pro 1.0's tour is thoroughly elaborated with an attempt to attract corporate users. I'm sorry that I was unable to give updates to the site frequently, and sometimes I missed making special celebrations for Xmas or Halloween. For the very last update of this version of the Trillian web site, I attempted some of my not-so-good Flash skills to generate the Pro 2.0 Sneak Preview. But the most important of all, to me, is still the pictures being shown in the 10M download celebration. :)
As the release of Trillian Pro 2.0 Final is drawing near, there may be only a few or less weeks left for the life of this version of the web site. I have been retracted from the web design and content maintenance, and I will hopefully focus on making the blueprints of the future Trillian Pro (3.0?).
Thank you to all who enjoyed the past two years in the web site. Current Mood: restless
|Wednesday, June 11th, 2003|
Well, it's been a while since I posted in here, for which I am truly sorry! I also dropped out of JDEV for a while (the Jabber dev conference room), as well. The reason is actually a very good one, though; I've spent the last few weeks embroiled in creating a new library for socket IO which I could then graft into Jabber. This library allows me to not care how a connection is established, but will handle behind-the-scenes using SSL encryption, using any of the proxies that Trillian supports, and so on. As of today, I grafted the library into the Jabber medium so that it now properly supports all proxies /and/ supports SSL encrypted links to Jabber servers (which is something I know a lot of people who use Jabber for internal corporate communications will appreciate).
The current alpha is shaping up nicely. Unfortunately, not everything's quite as smooth as we'd like, but today's alpha build runs quite well overall. I have yet a bit more UI work to do on Jabber -- more context menus I want to add, stuff like that -- and some minor bugs to fix. I'm sure when the beta is out, I'll find out about a lot more bugs to fix, too. ;)
Of course, this is also the most exciting and frustrating time, as we get down to the point where we're trying hard to get all the last little bugs worked out. Exciting because we see everything coming together and really congealing into a good new release, and frustrating because there's always one more little bug, one more little quirk, one more minor feature you really want to get in! Hopefully I'll post something a little more in-depth this evening or tomorrow, but I thought it would be good to get a post out at all. I'm starting to try to put in a presence on the forums and in the community again as we draw towards a close on the alpha stage. :) Current Mood: excited
|Tuesday, June 3rd, 2003|
Emoticons come two by two, hurray, hurray...
Things are nearing completion. I'm pushing out as many new emoticons as possible out from the bakery. Sometimes making emoticons is fun when you are in the right mood, sometimes making emoticons is hard when it becomes a chore.
The MSN6 gives me a task of roughly twenty more emoticons to make. They added plenty of interesting smileys and objects. As usual, their emoticon codes for objects are more like shorthand rather than really expressing something. What's worse, some of their smiley's codes don't look like the corresponding smileys at all. Some of the smileys have codes in conflict with some existing Trillian emoticons. Luckily, Kevin has fixed all the medium-based emoticon problems.
The highlight involves building the emoticon (au) by drawing a whole Volkswagen Beetle in vector. Volkswagen must be really happy that I choose their Beetle to symbolize automobile. The result emoticon is around 32x16. Wait. I spent like two hours just for filling 512 pixels! And there are 19 more to go, hmm...
After drawing all the emoticons in vector, I have to export it into bitmaps and clean their edges since Trillian does not support anti-alias emoticons yet. Coding, in comparison, is the shortest part of the task.
At this very moment, not only Kevin has already drank 300 bottles of Poland Springs mineral water, the amount of emoticons in Trillian Professional 1.8 16x16 Emoticon Set surmounted 300. Thanks to all the hard work. The upcoming release of Trillian Pro will be the best product from the Studios ever since. Current Mood: accomplished
|Friday, May 9th, 2003|
Late night musing
So, I'm sitting here in my living room with my busted-up ankle raised and being iced. I have to leave the ice here for a while before I sleep, so I'm up way-too-late and poking around at the current build of Trillian, entering feature requests into Bugzilla and assigning them to myself (hey, it makes a good todo list). And while I do that, I'm recording a few of my thoughts.
There are definitely still lots of things that need polishing; some of the newer features have rough edges to be smoothed out (but there are a /lot/ of new features), Jabber's menus need to be brought more in-line with the other mediums, things like that. But we're at a point where the end is in sight... the final stretch towards the finish line. I've been using the internal builds for so long now that, on a whim, I went back and reinstalled 1.0C tonight to compare. And wow, it's a change!
It's been a long road...longer than expected or hoped. But as we draw close to the next 'rest stop,' boy was it worth it. Large parts of the architecture were reworked internally, which not only improves a lot of existing things but lays the groundwork for really neat stuff in the future. It's made many things work better (window handling alone is an amazing improvement), but it's also meant that code done for this version couldn't be merged back into 1.0 as patches easily. Like the new webcam stuff; it works great...but it couldn't be moved back into 1.0 because some of the support libraries are tied to new architectural elements, and so on. As a definite benefit, though, I doubt any future upgrade will be a wait of quite this length, simply because so much of the time was spent seriously reworking internals...a task that doesn't need to be repeated in the future!
As for my own code...? The secondary medium I was working on got postponed due to a lack of an available server to work with; sort of makes it hard to test! Still, I can work on it later, once a server is available. In the meantime, I've been buttoning down and spending the remaining time trying to add in features to Jabber that I wanted in but wasn't sure I'd be able to get into it (witness my Bugzilla todo list mentioned at the beginning of this post). Still, it's fully functional, and I'm now using Trillian as my main Jabber client, which feels very gratifying. Now I understand how Scott and Kevin felt the first time Trillian worked logging onto the various mediums, and they were able to see their work 'in action' as a real client. :)
While on the topic of Jabber, one of the next Jabber things on my plate is I'm going to add a workaround to Jabber's file transfer which, while it won't be a magical NAT fix for folks, should make it possible to send and receive files relatively reliably through a NAT firewall with a bit of tweaking. I actually already have the feature in there, but I just need to pull it through to a Jabber Preferences dialog and make it active there. I assume most people who are using NAT and are 'power users' can set up port forwarding, so we'll see how this feature works out. One thing I've learned in writing the Jabber medium is that there is /always/ something else to add to a medium, something else you can hook up and add to it, something else you can tweak.
I'll try to post a little more regularly again, give people an idea of what's being stuck into the Jabber medium above and beyond what I'd expected/hoped to get in...and hopefully some cool news soon. As for me right now, my foot's been iced, the painkiller's kicked in...and I am going to sleep. :) Current Mood: tired
|Monday, April 28th, 2003|
The UI cleanup on Jabber is done. Scott and I did a run through to find various bugs, and I found and fixed a few. There's a lot of things I /want/ in the Jabber medium that I haven't gotten in there yet, but it has all the basic functionality I swore I'd have in by the next release.At this point, the first revision of Jabber for Trillian is more or less done.
It is a fully functional Jabber client; it doesn't support some of the more advanced features which I want to get in for the second revision (Jabber browsing, JUD search, etc.) but it seems to handle just about everything a basic client needs, for the moment. And yes, that includes file transfer. I don't doubt when more people eventually start using it in beta, I'll have a lot of little features to add in really quickly, but for the moment we seem to be okay.
Within the next week or so, I'll be moving my 'normal' Trillian session (i.e. my real accounts) over to the current internal build; I've been using the last 'full' internal alpha build as my main Trillian for a while, but a lot of stuff has changed in the past two weeks, both in terms of UI and in terms of various medium things and other bits of goo added in. Once we get there, I'll see about taking some screenshots of Jabber in action. I'm trying to decide if I want to add XHTML support before release (i.e. formatted messages). It wouldn't take me horribly long, but it's not a fully approved JEP yet and only a couple clients support it, so I've been mulling that over.
It's very gratifying, I have to say; seeing Jabber in Trillian as normal medium, in the add-contact wizard, in the connection manager, in the iconholder and in the contact list... especially with some of the new UI stuff, it actually comes across very nicely. And it just feels cool to have Jabber within Trillian! Well, maybe it feels cool to me; I came to Trillian from the Jabber community two years ago, so in some ways this is a homecoming. Getting to see how the protocol has grown up and everything. :)
Anyway, with Jabber in a place where I can polish it off and work more slowly on getting extra features in, I'll be shifting gears to yet another medium. This one, I can't really go into detail on what it is (otherwise my soul is forfeit to some non-Cerulean company), but hopefully it shouldn't take /too/ long to get into place now that I have experience with one medium.
Whether or not I'll have this second new medium ready in time for the next release is a little less certain, especially since when we go beta I'll shift gears back to Jabber to do cleanup/addition/bugfix. (The Jabber medium will always have a special place in my heart, and will likely receive a great deal of my attention even over future releases; there'll always be something new to add or extend, and I'll certainly be remaining very active in the Jabber community.)
Hopefully in the next week or so, I'll have screenshots of Jabber, and if all goes well, some Neat News overall. :) Current Mood: accomplished
|Thursday, April 24th, 2003|
Polishing off Jabber
Well, all the core functionality I had targeted for a first release of the Jabber medium is in. Including, yes, the hacky file-transfer method that currently exists in Jabber (I've transferred files between Jabber and Exodus successfully); with s5b on the standards track, however, I think the second release of the Jabber medium should support the proper new file transfer method. Which'll work properly even through NAT firewalls! Major reason to encourage Trillian users over to using Jabber for one of their mediums, file transfers that work behind a firewall or router. :)
So for the moment I'm down to sanding off the rough corners and polishing up Jabber. Cleaning up the block/unblock user stuff so it works on a per-connection basis, making my dialogs look nicer, making menus and dialogs match the other mediums, preparing the entire thing for a run through Purify, etc. I'm also putting together a list of what I want to work on afterwards and a timeline on it. Then, of course, I need to stress-test it.
Also just got a new build of the core exe and libraries from Kevin today, which added some very nice changes to UI, both for general usage and for some new things that plugins can now do to control UI. (Poor Kevin has been doing some MAJOR coding there.) I do get a little bit of a pause from polishing, as I'm working on getting some of the new plugin-related features into Jabber as well.
It's both nice to get to the stage of doing polishing-up of a set of code, but also a little bit of a letdown. No giant victories for a little while, like the sheer joy I felt the first time I got to go into a Jabber conference room under Trillian! :) So while I polish things off, I'm gonna play question-and-answer for Jabber, too; over in the Members' Lounge, I've just started a thread for folks to ask Jabber-related questions and I'll do my best to answer them!
While code is going wonderfully, other things are not so great; I seem to have injured my ankle pretty badly. It's swollen and painful enough that the doctor thought it was a broken ankle at first, but then it turned out that it's a sprain...but one of those sprains that can be WORSE than a break; it's really painful, and I'm supposed to treat it as if it were a break, as well as elevating it and icing it and taking painkillers. I'm supposed to keep weight off it for two weeks and use crutches to get around, then come in for another checkup... bleah! The reason I note it here is that it does mean for those who IM me a lot normally (plugin authors, particularly) that I'm not always at the computer right now; I'm spending some time on the couch or in bed with my leg elevated and iced. Ow...! Current Mood: sore
|Saturday, April 19th, 2003|
Wow...I'm really sorry I haven't posted for a while. Spent the last little while in code other than Jabber (some stuff that we'd like to keep as a pleasant surprise for people), and when I got back to Jabber I just stayed so much into the code that I didn't really get around to posting. Eh heh, my bad!
The good news is that Jabber's pretty close to 'done' in a preliminary state. Messages work, groupchat works, roster management works, all the stuff I wanted to get into it for a first release. It won't be the world's must full-featured Jabber client, but it covers pretty much what people use on a day-to-day basis and I will definitely keep adding to it as time goes on. What still remains is to finish up the UI cleanup, make all the dialogs look nice and smooth and get them Kid-approved appearance-wise.
The main thing I left out in this cut which I will want to get in as quickly as possible is support for gateways; from feedback on the forums, this seemed like it wasn't as vital a feature to most users (and I can admittedly completely understand why), so I concentrated on other areas of the protocol first. I'm certain there'll be little usability quirks which I haven't had show up in my own testing, since everyone uses clients in different ways, so I will be doing my best to have a quick update cycle for folks who'll report Jabber problems.
But it feels really good to see the medium not only coming together functionally but also settling into the same sort of medium as the others. I'm really looking forward to when I can call the medium 'done', stop recompiling it, and just start running one copy of Trillian with /all/ my mediums. (Right now, I tend to run three clients; my normal Trillian, my 'debug' Trillian for Jabber, and Exodus so that I have a Jabber client to talk to for testing.)
As the push I've been in to finish coding and tweaking stuff on Jabber settles down, I'll start posting in the forums and the journal a little more regularly again. However...this weekend being Easter and all, I'm taking it off and probably going to head off with my roommate to her grandparents' house, where her grandfather will have cooked some amazingly good food. ;)
|Saturday, April 12th, 2003|
What's new in skinning Trillian Pro 1.1? (Teaser)
You know, I know, every time Trillian updates brings skin upgrade disasters. Scott and Kevin has been trying their best to keep all skins compatiable - It's hard. Imagine if you transform into a different animal every 3 months, your closet is probably fairly empty (a weird surrealist imagination, sorry :p).
So what's updated for skins in 1.1?! Comparing the immense SDK 2.0, skins and stixe are not updated as much. To name a few, there're some new things to skin, such as the Jabber medium icons. If your skin is designed to only fit 5 mediums, it would be your choice whether or not to be capable of more mediums. The good news is, all /stixe skins are automatically compatiable with the medium change.
Thanks to the Cerulean duo, you can now also use a switcher to display GIF *animation*, so you can decorate your skin with some cool dynamics! Trillian Pro will also support JPEG2000. Also, the notorious iconholder color patch is now removed in 1.1! These new features give incredible freedom to skinners, I cant wait to see what you can come up with.
The Floater has been revamped a little bit with coordinating colors from skin and a nicer Close button. If you are still using a .7x skin for Trillian Pro, you will see welcoming changes, too. The default systray alerts, menus and contact list sections were renovated by Kevin and I.
Last but not the least, the most exciting update is the introduction of the new skin chooser! It provides advanced capabilities such as interface, emoticon and sound pack changes.
I love to tease :p but I cant tell you too much right now otherwise Scott will beat me. Thanks for reading and your anticipation! Current Mood: Feel better watching "Frida"
|Monday, April 7th, 2003|
Changelog snippet (new plugin SDK features)
Since I've been lax in posting (due to the fact that a, we're all really really busy, and b, a lot of what I've personally been working on for the past few days isn't really all that interesting to read or post about), here is a tiny snippet of the changelog for the next version, the portion relating to plugin SDK stuff. The changelog itself is immense so far, something like 150 entries. Here's that one small portion...
* SDK: Able to make your own medium...finally
* SDK: Allow multiple aliases of the same text to be triggered on (unless a stop is given)
* SDK: Be able to detect what version of Trillian is running
* SDK: Be able to launch a particular preferences page
* SDK: Be able to register for your own particular protocols for links
* SDK: Change name to be the real_name on a broadcastMessage (sorry to those who hacked this to work)
* SDK: Contact list enumerate will return the real status, not the pending status
* SDK: Drag and drop support in the contact list
* SDK: Events able to be caught with their variables, registered for, etc
* SDK: Interplugin communication
* SDK: Skin based access, along with skin adding from within plugin
* SDK: XML access
* SDK: Increased to version 2 of the SDK (if you only support features in 1.1 and above, make your plugin version 2)
* SDK: Added global config directory and trillian directory to load
Some of these are deceptively small descriptions; 'able to make your own medium' encompasses being able to get at all the data in the contact list, as well as all the window data for normal IM and groupchat windows, as well as the connection manager and 'You're On' entries, and so on. 'Events able to be caught, registered for' means you can register events, generate events (for other plugins and user event-code to receive), and all sorts of other things; plugins have pretty broad access to the Trillian event system now. Interplugin communication means a plugin can define their own API and export it, and other plugins can obtain it through Trillian. Maybe, say, someone writes a useful plugin and wants to export their own API...they can do it now, and other plugins can check for that plugin and use it. This allows people to make, effectively, plugin 'libraries.' Skin-based access means you can parse all the skin data and even send new SkinXML to add onto the skin; I do this with the Jabber plugin, in order to support older skins by adding Jabber medium data. XML access means you can parse XML files and XML data in strings, and even turn XML tree structures back into XML strings for output; plugins now have easy XML access.
Hopefully, this actually gives plugin authors some interesting ideas on what they can do next! I've been pretty swamped and haven't poked into the forums as much as I usually try to, but I'll pop into the plugin development forum on and off today if people want to brainstorm concepts. I'm actually really looking forward to hearing what people start thinking up for new plugins! :)
|Thursday, April 3rd, 2003|
Busy few days! Apologies for not making an entry yesterday.
The past two days have been spent less on Jabber and more on another part of the project, which is far less interesting to read about me writing (unless you like to hear normally sedate girls curse and threaten dire harm to a computer while trying to track down one lone Heisenbug in the most tangled bit of text-handling you would ever have the misfortune to try and implement in code). Writing 'Think I found the bug!' '...no, wait...' and repeating it indefinitely would probably be a little less than thrilling as reading material goes. :)
However, in the end, I /did/ confirmably find and squash the bug, so I'm happy. The code seems to be working pretty solidly, and I'm happy with that. :)
As for Jabber, the first very preliminary cut of the file transfers is mostly done. I'm also adding more stuff into groupchat behind the scenes, to prepare for a few things later. After that, it'll be time for a break from Jabber protocol work in order to cleanup all the 'developer UI' dialogs I've done as placeholders while adding functionality. I won't consider Jabber done in a first cut at that point, BUT it will be done enough that in a pinch it could be used by Trillian users as a live medium!
Unfortunately, we're out of the interesting 'lots of new stuff being added' and into the rather more boring 'time to clean up little fiddly-bits of UI and tweak the usability' stage for the moment, but I'll do my best to write some more over tomorrow and the weekend. However, I can say that next week's journal entries should be a lot more interesting...! :)
|Wednesday, April 2nd, 2003|
Inside the Cerulean R&D...
Hello all. I'm here to walk around and talk about something that I dont code :) (to make you curious)
There has been lots things going on in the world and in my world these few weeks. It was very hard to concentrate in one thing. I used to be able to work simultaneously, but my energy drains as the weather right now is too gloomy for spring.
With things almost ready in 1.1, I get started imagining things for future versions of Trillian. We have been thinking about the contact list congestion, and I've come up with something that would hopefully work even better than tabs called "Bouncing List". All windows will require some radical renovation as Scott and Kevin are beefing up the chat functionalities. The hardest part is to ensure old skins will work fine. Of course, /stixe will be much preferred as it's nice for the programmers. :)
For 1.1, there are several things added in /stixe so you can do more with your skins. You will be able to have individual colors for the menu bar text, for instance. You dont need to update your settings.ini necessarily.
Old .7x skins will still be compatiable, and you'll be pleased by what Kevin has done in the alert windows and menus. I'm making a Roll-Up interface right now so the hardly-ever-used DefaultBevel and DefaultPushed elements suddenly becomes useful when it comes to bizarre controls.
Let's hope everything will turn out well in our future. :) Current Mood: anxious
|Tuesday, April 1st, 2003|
Burning the midnight oil...
Good lord, is it already 11:40pm?!
Been coding for much of the evening on something totally non-Jabber-related, a feature which should be well-received by certain Trillian users. (And I expect the user in question to be the stress-test for this system!) That feature's done (as far as I can tell), but I need to hook up the preferences UI tomorrow; right now, I've hit that coding wall where I don't want to look at any pointer operations for several hours. ;P
For Jabber stuff, I got the beginnings of file transfer done, which will also be where attention is spent tomorrow with regards to Jabber. Also playing with learning the Trillian proxy-server code, and experimenting with something that /might/ allow more knowledgeable users to still file-transfer even if they have a NAT firewall. (Mmm, NAT masquerading...shoot me now.) Been enjoying hanging out in jdev under Trillian while working! Once file transfers and proxy stuff is done, I need to hook up all the preferences UI for Jabber, too. Bleargh. Win32 UI...not my favorite stuff in the world, can you tell?
Scott and Kevin have both been pretty busy digging deeply into stuff; everyone's been burning the midnight oil a bit, working past normal hours...but to see what's taking shape under that effort is really rewarding!
I'd write more, but honestly, I just want to get away from my keyboard for a bit and grab a late dinner. ;) Current Mood: tired
|Monday, March 31st, 2003|
Well, groupchat (and several associated features) work. I had a bit of fun hanging out in jdev under Trillian today, and playing with Andy and Kevin in a separate chatroom. I also spent part of the afternoon grabbing different Trillian Pro skins and trying them out; there was a method to my madness, inasmuch as I needed to check that my code would properly handle all skins that don't inherently support Jabber. (Aikon2 PRO Jabber...that was fun!)
Really, at some point I need to sit down and start cleaning up the developer-UI stuff in the Jabber medium, and make a pretty account preferences page and whatnot. But it's so much more fun to be adding actual functionality! Still, I think this evening and to some extent tomorrow will be spent cleaning up the UI portion.
Also been doing a little bit of talking with a couple other of the Jabber client authors, discussing features they want to add and features they already have added; I want to make Trillian compatible with them wherever possible. Since Jabber supports storing various arbitrary client data on the server, I figure it's worth cooperating so that any data I store which maps to data they store, we might as well share namespace and schema.
There's some questions I have still to resolve about various bits of UI and how to implement certain things, and I think I may put up a poll in the Pro users section of the Cerulean forums, in order to get some feedback on a few of those elements. Might as well see which way the users would prefer, after all. :)
However, in the meantime, I rather foolishly skipped lunch, and I think I need /food/, so it's time to step away from the keys. :) Current Mood: hungry
|Sunday, March 30th, 2003|