<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>The ZAZ Blog</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.thezaz.com/blog/atom.xml" />
   <id>tag:www.thezaz.com,2009:/blog//10</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.thezaz.com/mt4/mt-atom.cgi/weblog/blog_id=10" title="The ZAZ Blog" />
    <updated>2009-07-02T16:44:41Z</updated>
    <subtitle>When all you have left is a chicken and a rocket launcher, make some really badass scrambled eggs.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.0</generator>
 

<entry>
    <title>iPhone Upgrading</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/iphone/iphone_upgrading.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.243</id>
    
    <published>2009-07-02T16:25:57Z</published>
    <updated>2009-07-02T16:44:41Z</updated>
    
    <summary>Upgrading from iPhone to iPhone 3GS and SE S500i to iPhone.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="iPhone" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>I decided to upgrade my launch-day iPhone to a new white 32GB 3GS. The upgrade went pretty smoothly, and the features are nice. This article is part review, part nightmare.</p>]]>
        <![CDATA[<p>Not having a 3G, I don't know how much of this is new to the iPhone, or just new to me. I'm guessing most of it is new to me. The speaker volume is significantly better. The whole device feels nice in your hand, screen is very smooth. The lock button is too depressed, harder to find and push. The upgrade went flawless, it was activated in a couple minutes, I got home and synced it from my backup and good as new.</p>

<p>Voice Control is seriously sub-par. Dialing works well, but playing music never works. I say &quot;play music by Chemical Brothers&quot; it repeats &quot;playing music by York&quot; - wtf? I have never got it to play the music I've asked for.</p>

<p>Launching apps and generally using the phone is noticeably faster. Compass does not seem very precise. The camera is outstanding.  Overall, I'm impressed.</p>

<p>Now for the bad. We were giving my original iPhone to my wife until we can swing the cash to get her a 3GS as well. She is upgrading from a very nice Sony Ericsson S500i. I was under the impression this would require AT&amp;T assistance. Upon bringing it in, we were told to just plug it into iTunes like I did on launch day.</p>

<p>We did that. After wiping it, it presented her with the typical setup steps. After all was done, it retained my phone number (not hers) and never provisioned the SIM card. In fact, her phone was still usable. That's when I realized it never asked us for that info. Hmmm....</p>

<p>Upon looking around online, the solution is to put her SIM in the iPhone. Odd, I was [incorrectly] under the impression the iPhone used specially shaped SIM cards to prevent this sort of thing. Upon doing so, I wiped it again and we got the screens necessary to add the data plan and transfer her number. Fantastic.</p>

<p>Her voicemail didn't work though. We hit the button, it calls some line and claims she don't have a voicemail box. After struggling for a while, I found an AT&amp;T support article which says to hold 1 on the keypad until voicemail is called, setup a password and greeting, then hang up. In a few moments, a dialog is presented asking for that password. After all this, visual voicemail was working.</p>

<p>Lastly, her contacts got double-synced. One from her computer and one from MobileMe. Despite turning them both off, nothing would clear her contacts from the phone. The solution here is to remove the MobileMe account, then re-add it. Upon doing so, it'll ask if you want to merge the data already in the phone with the data on MobileMe. Choose yes, and it'll correctly nuke the extra records. Disable the contacts syncing in iTunes as well, unless you want the same thing to happen again. Why on Earth does iTunes now allow you to do this?</p>

<p>Overall, my upgrade was smooth. Her upgrade was 4 hours of frustration.</p>]]>
    </content>
</entry>

<entry>
    <title>Come With Us</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/come_with_us.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.242</id>
    
    <published>2009-06-18T22:50:02Z</published>
    <updated>2009-06-18T22:54:18Z</updated>
    
    <summary>The clan grows!</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>We've started a Battlefield 2142 clan server. It's a flexible infantry-only server, only few rules. Number one rule, no demo pak whoring!</p>

<div style="text-align: center;"><a href="http://www.gametracker.com/server_info/68.232.170.19:16567/" target="_blank"><img src="http://cache.www.gametracker.com/server_info/68.232.170.19:16567/b_560x95.png" border="0" width="560" height="95" /></a></div>

<p>Address 68.232.170.19:16567.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Nintendo Almost Disappoints</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/nintendo_almost_disappoints.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.241</id>
    
    <published>2009-06-02T17:19:49Z</published>
    <updated>2009-06-02T18:33:25Z</updated>
    
    <summary>Nintendo struggles to keep my interest sometimes, but when it does... damn it&apos;s good.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>I watched Nintendo's E3 conference live today. As expected, it was more gimmicks. A lot of them. I'm happy to see New Super Mario Brothers coming to the Wii, and I imagine the RPG titles coming to the Wii and DS will make their fans happy too. But most of the conference was about appealing to tweens and non-gamers. That's fine, but gamers need something too!</p>]]>
        <![CDATA[<p>At the very end, Nintendo presented some trailers for more action-packed games, such as The Conduit. The Conduit looks like something I could pick up, seems like it could be a kind of updated Perfect Dark. But I don't believe Sega is up to the caliber Rare was. We'll see about that.</p>

<p>It was the final trailer that changed my mind about the entire presentation. Rightly so, Nintendo did not announce the title until it became obvious to fans what it was. The surprise was epic, because the game looks like nothing we've seen in the franchise before.</p>

<p>It's a new Metroid called Metroid: Other M, set mostly in third person, with some seriously kick-ass moves. It looks like they've taken some cues from Smash Brothers and given Samus some real melee combat. I remember seeing a preview for Metroid Prime Corruption where the player on stage used the remote to punch a Space Pirate in the face with her gun arm. Sadly, that was removed from the final game. This new game goes much more in-depth than that in terms of combat.</p>

<p>What I gather from the trailer is that this is a prequel. The woman shown early in the trailer looks nothing like Samus, and her name is never said. It could be her, but I don't think it is. It later shows somebody transforming from the zero suit into the power suit. The woman's hair is longer, but face still does not look like Samus.</p>

<p>Near the end of the trailer, a woman in a lab coat is surprised by power suit Samus, and somebody says "I'm Samas Aran." Judging from the echo, it sounds like it comes from the suited Samus. However, the other woman looks exactly like the Samus we've seen from previous games.</p>

<p>So it seems there is a bit of a mystery here. Based on this, it placing my bet on prequel. Probably near the beginning of Samus' career.</p>

<p>There are some things that don't add up though. The trailer leads one to believe the federation developed the power suit. According to previous Metroid lore though, the power suit was designed by the Chozo. Continuity error, or more mystery to be revealed?</p>

<p>As for other little tidbits I've noticed, it seems you'll start with the power suit and get at least the Varia suit upgrade. I bet there will be more. There's a charge shot, missles, etc - all you'd expect from a Metroid game. The action appears to be overly frenetic, so I bet there will be some sort of fancy targeting system. It mostly likely will not make extensive use of the motion controls, except in first person view. There are a couple scenes from first person view, I'm guessing for precision targeting. Ridley makes an appearance, though no Kraid I could see. Notice I said Ridley, and not Meta Ridley - move evidence of a prequel. There also appears to be some additional meter under your health display. It's either ammo, or sprint. Based on the fact that Metroid games don't usually have beam ammo, and that this game has a lot of fancy maneuvers, I'm placing my money on sprint level.</p>

<p>Anyway, I'm looking forward to this. I think this trailer just destroyed my productivity for the day.</p>]]>
    </content>
</entry>

<entry>
    <title>Until the end of time</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/until_the_end_of_time.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.239</id>
    
    <published>2009-03-05T22:40:18Z</published>
    <updated>2009-03-05T22:50:52Z</updated>
    
    <summary>Hope my battery lasts that long.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>My laptop is finally a laptop again! Since my hard drive went bad about 6 months ago, I've been running it from an external. Not a small, friendly one either. I looked around and determined it would cost about $350 to repair it. That's why I've been waiting.</p>]]>
        <![CDATA[<p>But I finally had it repaired. It cost me $80 to do it myself - the cost of the hard drive. No shipping cost either, thanks NewEgg. I hadn't done it myself sooner because I was under the impression replacing the hard drive was similar to the iBook: like dismantling an atomic bomb. I was wrong, it's more like installing RAM: very simple.</p>

<p>So I ordered the drive, a better one than I would have spent the $350 for, a nice WD 320GB 7200rpm drive. Restored it from my time machine backup, and it can now leave my desk again. Woot!</p>

<p>Since I've done that, Spotlight deems it necessary to eat up about 100% of one core and index the new drive. Okay, I can live with that. What I find funny however, is the remaining time estimate:</p>

<p style="text-align: center;"><img src="/blog/images/hundredthousandyears.png" width="373" height="262" alt="" /></p>

<p>Wow, that's a long time. I did the math, because I'm a geek. That's 115,915.12 years. Guess I'll be here a while.</p>]]>
    </content>
</entry>

<entry>
    <title>Life Without Logic</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/rants/life_without_logic.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.237</id>
    
    <published>2009-03-04T05:00:00Z</published>
    <updated>2009-03-02T22:02:09Z</updated>
    
    <summary>Microsoft makes less sense by the minute.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="Rants" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>Not too long ago, I noticed Microsoft's new windows tagline: &quot;Life Without Walls&quot;. Right...</p>]]>
        <![CDATA[<p>Let's think about this for a second. When used on TV, it looks like this:</p>

<p style="text-align: center;"><img src="/blog/images/lifewithoutwalls.png" width="431" height="71" alt="Life Without Walls" /></p>

<p>So human beings will read this as "Windows: Life Without Walls". Okay, so without walls, what holds up the windows? There's already only a handful of things you can put windows on, and we've been told to exclude walls. So let's look at life without walls:</p>

<ul>
<li><strong>Doors</strong>: Well, without walls, doors are pretty useless.</li>
<li><strong>Transportation</strong>: Okay, you can put windows on cars, planes, etc. It could be argued that these things have walls as well and thus could no longer exist in many forms, but I'd say that a boat doesn't have walls, it has a hull. I'm not going to start listing everything here, I think you get my drift.</li>
<li><strong>Ceilings</strong>: True, you can put a window on the ceiling and then hold up the ceiling with posts around the outside, like a big tent or something. Since we're not allowed walls, it's the best we're going to get.</li>
<li><strong>Floors</strong>: Okay, who on earth puts a window on the floor? If you have a window on the floor, isn't it just a window on the ceiling to whoever is below you. And if there is nothing below you, then it's just a glass hatchway to dirt, and I'm not sure it qualifies as a window.</li>
</ul>

<p>I'm well aware I'm not the first person to pick on this slogan. I won't be the last. I'm also aware my logic is not bulletproof. It's just for fun.</p>]]>
    </content>
</entry>

<entry>
    <title>REALbasic&apos;s TrueWindow</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/realbasic/realbasics_truewindow.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.238</id>
    
    <published>2009-03-03T22:27:51Z</published>
    <updated>2009-03-03T22:43:44Z</updated>
    
    <summary>Cross-posting, and some behind-the-scenes with TrueWindow.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="REALbasic" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>Don't get too alarmed, but I'm writing for two blogs now. I just contributed my next tutorial to REAL Software's official blog rather than my own:</p>

<p><a href="http://www.realsoftwareblog.com/2009/03/realbasics-new-truewindow-feature.html">REALbasic's New TrueWindow Feature</a></p>

<p>As much as I love writing content on my own blog - and I'll continue to do so - it makes more sense for the company if I do the tutorials and such in a more official capacity.</p>]]>
        <![CDATA[<p>The new post walks you though some usage scenarios for the TrueWindow property. I find it very useful, and it was one of my posts that this feature was based on. Norman implemented it though.</p>

<p>The question has come up though, why TrueWindow, why not just &quot;fix&quot; the Window property? If you've read Aaron Ballman's blog in the past, I bet you'll figure out the answer. It's because changing the behavior of Window would break code in a non-obvious way. A good chunk of code would continue to work as expected. But some code, especially code that walks up the hierarchy to find a RectControl's global screen bounds, would go haywire. It would not trigger compile errors, stuff would just start going wrong. We can't have that.</p>

<p>We could have renamed the Window property to trigger compile errors, but that would cause alarm when developers would open the project in the new IDE and try to build and be presented with lots of &quot;This method does not exist&quot; errors and cause a big WTF moment. We don't like that.</p>

<p>This way is most code-compatible... as long as you don't have my other TrueWindow methods in your project of course.</p>]]>
    </content>
</entry>

<entry>
    <title>REALbasic 2009r1 Released!</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/realbasic/realbasic_2009r1_released.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.233</id>
    
    <published>2009-03-03T15:00:00Z</published>
    <updated>2009-03-09T16:35:36Z</updated>
    
    <summary>I really like 2009r1</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="REALbasic" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>REALbasic 2009r1 is one of my favorite releases, and it should be yours too. This release adds a handful of useful new features, and it's also the first release I've directly contributed code to.</p>]]>
        <![CDATA[<p><strong>PNG Support</strong><br />
Oh boy! This is one of the things I've been wanting for a very long time. For a few releases, REALbasic has supported PNG files, but would render them on a backdrop, rendering their translucency useless. That's changed, so you can now drop PNG images on your project and use them without any special care.</p>
<p style="text-align: center; color: #989898; font-size: smaller;">Picture the Ewok party at the end of Return of the Jedi. If I had an army of Ewoks, I'd be doing the exact same thing.</p>
<p><strong>Double-Buffering Canvas</strong><br />
Whoa, this too?! With just two features, this release has become a UI designer's paradise. Now we can answer the ever-common &quot;Why does my app have seizures on Windows?&quot; question with a very simple solution: turn on double-buffering. While this nukes your translucency, it's only an issue on layered controls and with some clever work can be worked around. It's not perfect, but it's a huge step in the right direction. The rest of the issue is Windows, and I'm not sure there's much we'll be able to do to completely solve the issue. Also, to make this work, turn off EraseBackground. EraseBackground adds the extra step of erasing the previous contents which will still cause flickering. Since double-buffering will overwrite everything on the canvas anyway, the EraseBackground setting becomes nothing more than hinderance when DoubleBuffer is enabled.</p>
<p><strong>Simple Trial Editions</strong><br />
With the new website, we made it quick and simple to get a trial edition key. Maybe a little too simple. So we've gone back to having REALbasic download its keys directly from our server. REALbasic did this a while ago, and stopped for a variety of reasons. But we came up with solutions to all the issues, and now anybody can download REALbasic and just use it.</p>
<p><strong>QuickStart</strong><br />
This new window shown at launch makes it simple for new users to get started with REALbasic. I think it's pretty neat, and hopefully we'll add stuff to it in future versions to be more useful to veteran users.</p>
<hr />
<p>I'm preparing a tutorial series about designing custom controls. They'll use these new features, so I suggest you <a href="https://secure.realsoftware.com/store/set_affiliate.php?id=40046">renew</a> or start a trial if your plan is expired.</p>]]>
    </content>
</entry>

<entry>
    <title>The Lab!</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/the_lab.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.236</id>
    
    <published>2009-03-02T04:03:31Z</published>
    <updated>2009-03-02T04:33:05Z</updated>
    
    <summary>Master... it&apos;s alive!</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        Kelly and I have been moving since Friday morning. Got a new place with lots more space. When I started with REAL and began working from home, it quickly became obvious that I needed my own space. The apartment complex we were in has some very nice townhouses, so we put our names on the waiting list for one of those. That was in June.
        <![CDATA[<p>A few weeks ago, an apartment came available and we were next on the list. However, the manager had informed us that she wouldn't give us the apartment because of our rabbits. It was really just an excuse not to transfer an existing tenant so she could find a new one and not leave a vacant apartment. I came to this conclusion after checking with some neighbors who have caged animals, did not get permission for them, and were certain the manager was aware of the pets. In fact, despite the complex's no pets policy, some tenants have cats, one or two even have dogs (and not tiny, or medically necessary ones.)</p>

<p>The place was mismanaged anyway. It only took us just over a week to find and get approved for a new place. We would have done it much sooner, had we known it wasn't going to work at the old place.</p>

<div style="float: right; width: 200px; margin-left: 10px;"><a href="/blog/images/thelab.jpg" rel="lightbox"><img src="/blog/images/thelab_thumb.jpg" width="200" height="200" alt="" /></a></div>

<p>So we're moved in now, still have much to go through, but I have the computers setup in my office. That's the common name, though the more maniacal and my preferred name for it is &quot;The Lab&quot;. This is were the magic happens:</p>

<p>From left to right: My Linux PC, built entirely from spare parts laying around. Has a Windows drive for playing Battlefield with my brother in law. Then my Windows PC, loud and powerful. I really need to water cool the thing, it sounds like the world is coming to an end when running. But it's powerful enough to tear through any game, even Crysis. Equipped with a Logitech G15 Keyboard, and a G5 Laser Mouse. Then my laptop. It's a MacBook, nothing special to comment on there. And finally, the iMac which REAL provided me, where I do all my real work. I attached my own Cinema Display to it. The two PCs definitely come in handy for testing and debugging though. Both have copies of REALbasic installed one each too. Let me tell you, remote debugging is swell and all, but nothing beats working directly on the target computer when you're trying to test something platform-specific.</p>

<p>I love it. Still shopping for some great stuff from ThinkGeek. I'd love a bunch of <a href="http://www.thinkgeek.com/homeoffice/lights/7437/">TIX clocks</a>, but at $40 a piece, I may just stick with one. I love the stuff that'll confuse guests. I wear my <a href="http://www.thinkgeek.com/tshirts-apparel/unisex/itdepartment/b2ae/">recursion shirt</a> all the time.</p>

<p>Anyway, that's it for now. I've got a couple more posts coming the next few days, but only one of which is related to REALbasic though. I'll have more on-topic stuff soon, don't worry.</p>]]>
    </content>
</entry>

<entry>
    <title>Tip: Fix Linux Button Sizes</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/tutorials/tip_fix_linux_button_sizes.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.235</id>
    
    <published>2009-02-21T07:22:48Z</published>
    <updated>2009-02-21T07:30:33Z</updated>
    
    <summary>Here&apos;s a quick tip to help avoid making your app look foolish on Linux.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="REALbasic" />
    
        <category term="Tutorials" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>This really bugs me about Linux, at least on Ubuntu. Button sizes are typically 30 pixels tall, as opposed to the 20 pixels on Mac and Windows. So when you're creating your UI and plan to deploy to Linux as well, be aware of this. If your button sizes are 20 pixels tall - the REALbasic default - your buttons will look terrible on Linux, only showing the top half of the caption.</p>

<p>My solution? A subclass of PushButton I call RespectfulPushButton. In it's Open event, I simply make the height 10 pixels taller and move it up by 5 pixels. The result won't harm the UI much, and the buttons look perfect on Linux. You'll then want to define a new Open event, and trigger it from the Open event of the subclass. Of course, use conditional compiles to only resize the buttons on Linux. I then just use this subclass instead. Minimal work to setup, but you'll then need to get into the habit of using the subclass instead when placing new buttons.</p>

<p>PopupMenus have this pain as well. I have not seen this on any other controls, but I most write my own anyway.</p>]]>
        
    </content>
</entry>

<entry>
    <title>My brain hurts...</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/rants/my_brain_hurts.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.234</id>
    
    <published>2009-02-03T08:16:33Z</published>
    <updated>2009-02-03T08:42:47Z</updated>
    
    <summary>I hate IM speak. I hate UrbanBaby speak more.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="Rants" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>I frequent <a href="http://www.gamefaqs.com/">GameFAQs</a> about daily to check out their poll. Being a CBS-owned site now, they have links to other (mostly worthless) junk at the top of the page, just below the logo. Some of it gets my curiosity of course.</p>]]>
        <![CDATA[<p>But when the link sends me to <a href="http://www.urbanbaby.com/">UrbanBaby</a>, I find myself reading lots of information and gaining absolutely nothing from it. Seriously. Here's something I found on it today, after attempting to visit <a href="http://www.urbandictionary.com/">Urban Dictionary</a>:</p>

<p>&quot;<em>Heard from psd that AS is a 'no go' :-( Does that mean ds is will be shut out from Collegiate too?</em>&quot;</p>

<p>What on earth?!? This says absolutely nothing to humans. You almost need a &quot;Mom Dictionary&quot; website just to understand this. Looking up on UrbanBaby's &quot;<a href="http://www.urbanbaby.com/pages/abbreviations">List of a few dozen efficient acronyms designed to waste time</a>&quot; reveals at least part of this post: ds = darling son.</p>

<p>Since AS and PSD are not listed on this masterfully crafted list of acronyms used to drive yourself to insanity, I'm going to complete this post using meanings I <strong>do</strong> know:</p>

<p>&quot;<em>Heard from Photoshop document that [adult swim] is a 'no go' :-( Does this mean my son will be shut out from Collegiate too?</em>&quot;</p>

<p>Too me, it's just as logical. It's actually easier, because the reader can go straight to the &quot;WTF?&quot; moment rather than wasting brain function trying to translate it - only to wind up at the same conclusion.</p>]]>
    </content>
</entry>

<entry>
    <title>REAL Software Website Updates</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/real_software_website_updates.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.232</id>
    
    <published>2009-01-24T00:30:16Z</published>
    <updated>2009-01-24T01:07:49Z</updated>
    
    <summary>Some RS website improvements.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>We've had our new site online for a little over a month now and since then, we've been listening to user feedback and rolled out some new updates for the site. Some of which you'll notice, others are under the hood. (Those under-the-hood ones are very useful, but I won't speak of them here.)</p>]]>
        <![CDATA[<p><strong>New Store Sidebar</strong><br />
The store has two new boxes on the right, a more detailed shopping cart and an &quot;Upgrade &amp; Renewal Assistant&quot;. The new shopping cart panel is nothing special, but does give you quick access to any saved orders you may have. The renewal assistant, however, is very useful. While it was not overly difficult (in my opinion) to find the renewal and enter your key, this little box makes it much simpler. If you have your key on hand, enter it and the site will show you exactly which products you're eligible for. It'll also show you license keys that are expiring in the next 60 days, or have expired (and not renewed, of course).</p>
<p>This means you now have 4 different ways to renew:</p>
<ul>
<li>Click &quot;Renew&quot; next to your license key when looking at your license key list.</li>
<li>Click &quot;Renew&quot; next to your license key in the renewal assistant.</li>
<li>Enter your license key to see a list of eligible products.</li>
<li>Find the product in our store and enter the license key when asked.</li>
</ul>
<p>That's twice the the options we had available yesterday.</p>
<p><strong>New Account Settings</strong><br />
The account section of our website was missing something basic - a way to change your password without using the &quot;Forgot Password&quot; link on the login page. There is now an account settings page (in your account, of course) where you can change your password as well as some other options.</p>
<p>We also have a new section where you can edit the names associated with your Priority Support plans. It's not much, but more of a &quot;why not&quot; feature.</p>
<p><strong>User Experience Tweaks</strong><br />
We've received lots of good feedback about the website, though users still seem to have some trouble logging in. So we've made some tweaks to the signup and forgot password pages to try to make things a little more clear. You can now request a password reset using your e-mail address as well as your username, in case you don't know your username. The actual page when you change your password will tell you your username. It seems people are not setting a username when asked, and leaving it the default - then forgetting what it was. So we made it so you have to explicitly type a username when signing up. Sometimes the little things go a long way, so here's hoping.</p>
<p>Our dropdown menus on the site have impressed a number of users, but one of the more frequent requests has been to speed them up - so we did exactly that. I must agree, I think it's much better. There has also been a few reports of the translucency failing pretty badly on some PCs, even on IE7. While we've been unable to reproduce the issues, the translucency was pretty useless so we ditched it. I bet you won't even notice.</p>
<p>Responses to credit card failures have also been improved significantly. When a credit card would fail in the past, we'd pipe the output from the bank directly to the user. Ug, this was a stupid mistake on my part. It was lazy. The newmessages are not only more clear, but offer possible solutions to the problem.</p>
<p>Our site also is more explicit about the fact that it won't work on Internet Explorer 6 and lower.</p>
<hr />
<p>So while most of the changes are minor, they should help overall make the user experience better. We're always looking for ways to improve, so feel free to <a href="mailto:custserv@realsoftware.com">send us comments.</a></p>]]>
    </content>
</entry>

<entry>
    <title>Casualty</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/casualty.php" />
    
    <id>tag:www.thezaz.com,2009:/blog//10.231</id>
    
    <published>2009-01-09T20:53:32Z</published>
    <updated>2009-01-09T21:03:47Z</updated>
    
    <summary>One of the newborn bunnies did not make it.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>We just got back from the vet. One of our newborn rabbits got her paw tangled in the bedding. We were using the store-bought cotton nesting material, which I would certainly not recommend. Unfortunately, we did not catch it in time, and the paw was deprived of blood for too long. Much of the paw did recover, but the toes did not.</p>

<p>The odds of surviving the amputation were not good. Even in adult rabbits, the survival rate is low. In a week-old such as this, there was nearly no chance she would survive it. If left untreated, it would spread and eventually kill her.</p>

<p>She was euthanized about an hour ago.</p>

<p>The other four are doing exceptionally well, and we expect them to open their eyes by the end of the weekend. We're using a couple old t-shirts for a nest now, which they and the mother are satisfied with. We're hopeful they will make it through.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Pet Multiplication!</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/pet_multiplication.php" />
    
    <id>tag:www.thezaz.com,2008:/blog//10.230</id>
    
    <published>2009-01-01T00:48:11Z</published>
    <updated>2009-01-01T01:04:11Z</updated>
    
    <summary>Multiply like bunnies.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>My wife and I are not allowed to have dogs or cats in our apartment, so we have a couple rabbits (Mystik and Rayne) instead. Turns out, we have a male and a female. We keep them in separate cages for obvious reasons, but let them run around the apartment quite a bit.</p>

<p>By now, if you're paying any attention at all, you'll guess that Mystik just gave birth. And you'd be correct, we have five new bunnies!</p>]]>
        <![CDATA[<p>If you're not familiar, rabbits show very little signs of being pregnant, since they are a prey species. They exhibit certain behaviors, but they can also go through false pregnancies pretty easily - just by being near a male rabbit. Mystik did this once before. They start to build a nest using soft stuff, and pull out their fur if they cannot find enough material.</p>

<p>When we noticed she was starting to nest again, we got her some nice nesting cotton. Last night though, she started pulling out lots and lots of hair. I mean, I swear there was nearly another rabbit worth of fur piled up with this cotton - but you can't tell she's missing any! So I gently felt around her abdomen and guessed that she probably was actually pregnant this time. But it was still difficult to be sure.</p>

<p>I stood up from my computer earlier today to notice a little head poking out of the nest. They're absolutely brand new, no more than 12 hours old at this point. According to everything I've been reading around the internet, she's doing everything a good mother should. That's a good sign. In early march (after the 8 week point), we'll separate the males from the females, take them to the vet, and find homes for them. We're going to keep one, and we have at least 2 friends that would love others. If all else fails, our local mom-and-pop pet shop will take the rest - though honestly I think we'd just end up keeping them.</p>]]>
    </content>
</entry>

<entry>
    <title>New Website!</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/general/new_website.php" />
    
    <id>tag:www.thezaz.com,2008:/blog//10.228</id>
    
    <published>2008-12-09T14:00:00Z</published>
    <updated>2008-12-09T00:32:19Z</updated>
    
    <summary>An overview of some cool new features of the new REAL Software website.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="General" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        <![CDATA[<p>Finally, after a few months of work, the new REAL Software website is live. We've been working hard on this for a little while now, especially Dana and I, so here's a look at what we've done that may or may not be instantly noticeable.</p>]]>
        <![CDATA[<p><strong>User Logins</strong><br />
Our old website had a login system for our old feedback system. The old feedback system is dead, and the login didn't provide a significant amount of functionality. So now, we've built a login system into our website which is the cornerstone to just about everything a customer would do on our site. Notice I said customer, and not potential customer. We didn't get overzealous and protect everything, only the stuff that requires a logged-in user to be functional.</p>

<p>With this new login structure, you'll be able to view your entire order history, see your current order status, manage an address book of potential addresses (for billing / shipping differences, for example), lookup and renew your license keys, and print invoices of your current and past orders.</p>

<p>We'll be adding more functionality too.</p>

<p><strong>New Store</strong><br />
From our end, our old store was a real pain. If we needed to add a product, or change a price, it meant going into the source and changing it, adding pages, changing stuff during checkout - nothing good. Our new store is completely database driven. This is good, because we can now sell third-party products from our website too, and it would be near impossible to do that on the old store.</p>

<p>The new store is also aware of promotions we're running. When adding a copy of REALbasic Professional edition to your cart, you'll be offered a copy for another platform at 50% off. You can say no of course, but let's say you then go back and add another copy of RB Pro for a different platform. The cart will automatically apply the discount! If you remove the discount (for some reason) you'll get an unobtrusive reminder that your cart is eligible for said discount.</p>

<p>This system is very &quot;smart&quot; and I think you'll find it does a good job of trying to be helpful, rather than just try to sell you more stuff.</p>

<p><strong>Previous Version Downloads</strong><br />
We actually had a version of this available on the old website, but we only gave the link out to people who asked. Our downloads page now has a &quot;Previous Versions&quot; link on the right that automatically shows you all previous versions you're eligible to download. You must be logged in for this to work. It also only goes back to 2007r1, so if you need something older, you should contact customer service.</p>

<p><strong>Printing</strong><br />
I may be missing something, but I'm pretty sure I'm not, but why do so many sites have a "Printer Friendly" link on their pages? Try this, print any page of our site - or do a preview, it doesn't matter - and look. Our website automagically reformats it's content for the printer! Now try it when looking at an order from your order histoy, and you get a real invoice - and it's even localized. Pretty spiffy, huh?</p>

<p><strong>Animation</strong><br />
It's pure fluff and we know it, but it's really cool fluff. Using 100% pure JavaScript, many elements of our website will cross-fade and bounce around. The best example of this is looking at our store's cart and checkout screens.</p>

<p><strong>Feedback System</strong><br />
While we have removed the old feedback system, it was necessary because the code was too archaic to port for a system that is &quot;dead&quot;. It's been roughly six months since the switch to FogBugz and we feel that most bugs that were going to be transferred are in our new system.</p>

<p><strong>New Backend</strong><br />
What you won't notice is that we just replaced a massive amount of code in all our systems. The website is 100% new from scratch. We didn't save any code. We pulled over some content, of course, but all the code is new. The database that drives our website is also about 80% new. This meant updating our internal apps as well.</p>

<p>The energy in the air is fantastic, and the release of 2008r5 only adds to it.</p>]]>
    </content>
</entry>

<entry>
    <title>Image Masking</title>
    <link rel="alternate" type="text/html" href="http://www.thezaz.com/blog/tutorials/image_masking.php" />
    <link rel="enclosure" title="PNG Machine" type="application/zip" href="http://stuff.thezaz.com/png_machine.zip" length="2721" />
    <id>tag:www.thezaz.com,2008:/blog//10.227</id>
    
    <published>2008-10-12T05:27:24Z</published>
    <updated>2008-10-12T17:01:25Z</updated>
    
    <summary>Learn everything you need to know about proper image masking.</summary>
    <author>
        <name>Thom McGrath</name>
        <uri>http://www.thezaz.com/</uri>
    </author>
    
        <category term="REALbasic" />
    
        <category term="Tutorials" />
    
    <content type="html" xml:lang="en" xml:base="http://www.thezaz.com/blog/">
        Over the past few days I&apos;ve seen this topic come up on the REAL Software Forums and the REALbasic NUG. There&apos;s quite a mix of information - some correct and misleading. Luckily, I&apos;ve not seen information that is just flat out wrong.
        <![CDATA[<style type="text/css">div.image { background-color: #AC3525; width: 64px; margin-left: auto; margin-right: auto; padding: 5px; border: 1px solid #500900; margin-top: 10px; margin-bottom: 10px; }</style>
<p style="font-size: larger; font-weight: bold;">The double mask effect</p>
<p>The single most common issue I see with masking is what I call &quot;double masking&quot; - which is the art of applying a mask to an image that has already been masked. Below, is an original PNG image shown on a background color. This is our &quot;correct&quot; image:</p>
<div class="image"><img src="http://www.thezaz.com/blog/images/splash_original.png" width="64" height="64" alt="" /></div>
<p>Now, the advice I commonly see is to use another program to retrieve just the mask from the png, then import both images into REALbasic. When this happens, you end up with two images:</p>
<div class="image"><img src="http://www.thezaz.com/blog/images/splash_masked.png" width="64" height="64" alt="" /></div>
<div class="image"><img src="http://www.thezaz.com/blog/images/splash_mask.png" width="64" height="64" alt="" /></div>
<p>Notice the white background on the first image. REALbasic doesn't properly handle the alpha channel, so you'll end up with that, thus the reason for this entry. Anyway, when you apply the third image as a mask to the second, you get this:</p>
<div class="image"><img src="http://www.thezaz.com/blog/images/splash_wrong.png" width="64" height="64" alt="" /></div>
<p>It looks reasonably close, but it's not correct. The blue shadow is too light, and in fact, has a white ghost effect to it. It certainly looks different from the first image - and that's bad. So what went wrong? Why did we not get the original image back? That's because image two already had a masked applied, we just didn't have translucency, the translucent image we wanted was drawn onto a white backdrop.</p>
<p>There is a difference between a pixel that is 50% black, and a pixel that is 100% black at 50% opacity. By doing this double masking, you essentially take a 50% black pixel and make it 50% opaque which is not correct.</p>
<p style="font-size: larger; font-weight: bold;">Solutions</p>
<p>There are a handful of solutions. The easiest is to use the <a href="http://developer.chaoticbox.com/#pngutilities">PNG Utilities</a> plugin. It's open source, and cross-platform. Just store your images on disk and read them at run time. But what if your project has a requirement of not using any plugins or you really want to drag your images into the IDE? Then you need to be a little more fancy.</p>
<p>The solution I use in such a case is a small app I wrote to properly split a PNG into a new PNG with the data (not the composite, there is a difference) on the left and the mask on the right. That project has been linked with this entry, and does require the PNG Utilities plugin mentioned earlier. When images are dropped on the app, it will turn image one into:</p>
<div class="image" style="width: 128px;"><img src="http://www.thezaz.com/blog/images/splash_split.png" width="128" height="64" alt="" /></div>
<p>Then, I can simply drag that new image into the IDE and use it as necessary, with the assistance of a simple method:</p>
<p><pre class="rbcode"><?php echo FormatRBCode('Function CombineImage(Input As Picture) As Picture
  dim result as picture
  dim w as integer = input.width / 2
  dim h as integer = input.height
  result = newpicture(w,h,32)
  result.graphics.drawpicture input,0,0,w,h,0,0,w,h
  result.mask.graphics.drawpicture input,0,0,w,h,w,0,w,h
  
  return result
End Function'); ?></pre></p>
<p>That code will perfectly turn the combo image into the original image, image one. This method has the advantage of still only requiring one file per image too.</p>
<p style="font-size: larger; font-weight: bold;">Misconceptions</p>
<p>Let's say you only have the composite image (image two) to work with. Well, then you're doomed and out of luck. You'll never get the image back to it's original 100% because crucial information is lost. You can, however, try to fake it and come reasonably close. Photoshop can help with this, but there's no how-to for this because every image is different. If I were going to try to do it with the sample used here, I'd use a circle select to delete everything outside the globe, and try to recreate the shadow by hand. But there is no tool that can do that for you perfectly because at that point, information is lost.</p>
<p>As you can tell, I like PNG. That's because it is lossless (basically meaning full quality) and smaller than JPEG. PNGs are only sometimes smaller than GIF, but GIF cannot display a full color spectrum. JPEGs can be made smaller than PNGs, but at a loss of quality. There is TIFF too, but it's not often used (besides in Apple apps) and we have the PNG Utilities plugin to work with. So I typically go with PNG every time.</p>]]>
    </content>
</entry>

</feed> 

