More reasons not to trust instant messenger

We’ve been using Yahoo instant messenger for a few years within our company–we’re all spread out amongst several different offices. We’ve run into issues before where characters get converted to smileys unintentionally–as often happens with code–or with messages never being received, but today for the first time we actually had a message sent incorrectly.

yahoo error

Chafic’s window is on the left and mine is on the right. Notice the code in the middle, <html get’s converted to Zhtml. Not sure what caused that.

What’s all that 3D stuff in my MIME message?

I received a question today about the Multipart-MIME examples in my Serving Word presentation. The question is, “What are all those ’3D’ letters and how can I make Word documents without them?”

PB Software

The 3D is related to encodings. The most common encoding mechanism for text in a Multipart-MIME message in called Quoted-Printable encoding. In this encoding mechanism most standard symbols, numbers, and letters are left exactly as is. All other characters are encoded using an equal sign followed by the two-digit hexidecimal code for the character. For example, a tab can be encoded as “=09″ since a tab is represented by 09.

Since the equal sign is used to indicate encodings, the equal sign itself must also be encoded whenver it’s encoutered. The equal sign is represented by decimal 61 or hexidecimal 3D, and thus is shown as “=3D” in a quoted-printable encoded message.

So, whenever you encode an HTML document, which has a lot of equals signs in it, in quoted-printable format, you’re going to have a lot of “=3D” sequences in the resulting document.

Only a developer will see these, the target application which reads the quoted-printable message will convert them back to regular equal signs, so a user will never see them.

So in short, don’t worry about it, =3D is normal and user’s won’t see it.

Which mailing list software is best?

We’re evaluating mailing list software in order to start a few lists to support our B-Line Charting Components customers. We’ve pretty much decided on Mailman since it has integrated web administration and archives. I subscribe to one list that uses it and have been happy with it from a user perspective.

If anyone has experience administering Mailman or cares to share their opinions on a better alternative we’d be glad to hear them here.

invalidateStyle needs invalidation itself

I’m working on the next version of our component set and implementing all of it’s styles. I was trying to figure out how components knew to redraw themselves when one of their styles change since they don’t seem to subscribe to any style events.

After digging for a while I found mx.styles.CSSSetStyle and notifyStyleChangeInChildren(). Seems a little odd, it loops through every movie clip in the entire application and calls invalidate style based on some criteria. Regardless of criteria, it recursively loops through every movie clip in the entire application.

This is all based on a single setStyle call. So, I did a little testing. I put a trace statement in notifyStyleChangeInChildren, added a bunch of components to the stage, and a few frames later I made some setStyle calls. With one setStyle call, notifyStyleChangeInChildren was called 316 times and with four calls 1260 times.

That’s a lot of calls, and a few seconds of frozen movie. So seems like we need a new setStyle method that invalidates the call to notifyStyleChangeInChildren, which itself just invalidates styles. Or better yet, how about adding in an event interface so we don’t loop through every movie clip but instead only those that use the style we changed.

Oh, and btw, it only loops through clips from _level0 onward. I guess if you load things into _level1 or higher, they don’t update based on style changes.

::sigh::

Come see Macromedia Flex at MAX

Our employer, B-Line Express, will have a booth at MAX to showcase our B-Line Charting Components. We’ll be demonstrating both the currently available 2.5 set and the in-development 3.0 version. This latter version is a complete re-architecture around the v2 framework and supports both Macromedia Flash MX 2004 and Macromedia Flex. If you’re at MAX, come by our booth to check out how our components can be easily integrated into a Macromedia Flex application with code such as follows.

<bl:LineChart
   id="chart"
   x="0"
   y="0"
   width="500"
   height="400"
   title="SampleLine Chart"
   pointType="circle"
   dataProvider="{dataStore.sales}"
   marginRight="100"
   xmlns:bl="com.blinex.charts">

   <bl:xAxis field="Month"/>
   <bl:yAxis minValue="0" maxValue="10" majorUnit="1"/>
   <bl:series title="Tom" field="tomSales"/>
   <bl:series title="Dick" field="dickSales"/>
   <bl:series title="Harry" field="harrySales"/>

</bl:LineChart>