Blog

  • Subversion & Flex Builder 2

    I use Tortoise SVN as a Subversion client on my box. Flex Builder 2 however copies all dependencies into the bin directory upon compiling. This wreak’s havoc with Tortoise because it gets confused why dupilcate .svn directories are in the bin folder. There is currently no way to tell Flex Builder 2 (plugin or standalone) not to copy .svn directories.

    Joe Berkovitz suggested I create an ANT task. You can’t use ANT with the Flex Builder 2 standalone, so I uninstalled it, and installed the plugin for Eclipse 3.1.

    I then created the ANT task, but it didn’t work. Apparently ANT filters the delete task for .svn directories, among other things. So, you actually have to opt-out by using the defaultexcludes=’no’ attribute. Lost 4 hours on that one until I read the documentation for the task top to bottom and found it, “If you’re shiz doesn’t work, here’s why.”

    Anyway, here’s the task; it’ll delete all .svn directories in your bin folder including all sub-directories. Use at your own risk, I cannot be held liable for you deleting your project by accident.

    <target name="deleteSVN">
    <delete includeEmptyDirs="true">
    <fileset dir="${basedir}/bin" includes="**/.svn/**" defaultexcludes="no" />
    </delete>
    </target>
  • How to Pause a Flash Movie: Part Deux

    Found a better method than the PrintJob.send way thanks to Darron Schall. Going off of his suggestion to use ExternalInterface.call per this LiveDoc’s entry, I found it does the same thing as PrintJob.send. It will pause:

    • Animations
    • onEnterFrame
    • intervals

    However, sounds (streaming or event) don’t stop, don’t resume upon unpausing, and getTimer keeps on trucking. Additionally, streamed sounds keep animation in sync with them by dropping frames if the animation cannot keep up. Thus, those animations will appear to jerk upon unpausing if the sound has already played past a certain point. This is the same behavior you get with the PrintJob.send method.

    At least, in this case, you can customize the popup to be a JavaScript one with a label; that’s a lot better than a mysteriously appearing print dialogue when someone hits the pause button. You could use JavaScript’s prompt function instead.

    Both methods are modal, meaning the user cannot interact with the Flash movie while the dialogues are open.

    *** Warning: Loud Sound ***

    Pause Example – Alert | Prompt | Source (ZIP)

  • Please embed Flex in LiveCycle PDF’s

    I downloaded a sample that Mike Potter’s blog pointed me to, and started filling out the form. I have Acrobate Reader 7. I nearly laughed it was so pathetic.

    Easily fixed; allow Acrobat Reader to embed SWF’s as native pages, and I’ll show you forms done right… you know, like tabbing that actually visually shows you where you are, not having 3 annoying dialogues pop up in your face, etc.

    Anyone do LiveCycle for a living? Do they (LiveCycle customers) even have a clue what Flex is? Potential for growth?

  • Occasionaly Paid

    Occasionally Connected is a term used to describe the growing model in which technology users’ live. With the proliferation of gadgets to empower us to have mobile offices with have the capability of communicating and receiving information the world over, the connected & disconnected state are now disassociated with location, which itself isn’t always connected to being with.

    Back in the day (like 2002), I’d go to my desk upstairs in the cabin in the woods, fire up the computer, connect the modem, and be connected. I could use email, surf the web, and generally be productive.

    Today, I can do the same in my house, only, I’m always online. My DSL + Router ensures 2 desktops are always online, and my laptop and phone can always access my wireless inside and out of my house. Getting connected is analogous to turning on, and proximity is no longer a limiting factor (beyond my property). If I do extend the bounds of my house with my laptop, I need to go only 1000 yards before I run into the local coffee shop that has free wireless… and I live in a remote area. Atlanta city proper has a lot more hotspots.

    Additionally, the software has changed. Connected apps usually had pretty acceptable to atrocious handling of the connected to disconnected stage, as well as the return to connectivity. Outlook Express informed you that you were offline, but you could still read email. The worst would be some apps wouldn’t function, others would crash or lock up your system. Sometimes the act of re-connecting was a self-induced death sentence for the application.

    Nowadays, a lot of programs handle things extremely slick. Firefox will keep data in web forms if you hit the back button. Macromedia Central would physically change color and save data locally as a copy. Trillian has visual states indicating which services are working and in what connected state they are. The program itself will attempt to reconnect with no involvement from you (optional) and minimal interruption to your focus. Even iTunes will attempt to re-connect if your internet radio goes down, all without a window focus change.

    Get it done, don’t distract me, and do what you can without internet access. I love the progress I’m seeing across the board.

    There have also been discussions about the location of your data. In the case of my email, it’s on my machine since I use POP3, with the option to act like IMAP where copies are kept on the server.

    However, with the increase of web applications furthering productivity (or not), a lot more of our data is stored online, under different rules. For example, if Flickr ever goes down, so too do access to your pictures. And yes, Flick goes down a lot.

    Same for services. TypePad, SixApart’s online blogging solution is tied to the server. When the server goes down, or your internet connection, you cannot blog. Even so with the MoveableType version. I install on my server, but when my server goes down, I have to rely on Word or Notepad until my site comes back up.

    This too, will be solved, although, I think more slowly than the connection model has merely because more litigation is needed vs. clever coding. With concepts like Flash & Flex‘s local Shared Objects (Flash cookies), browser cookies, and other state-full clients with the ability to save data locally as well as server-backups, technically this is solvable in the near future somehow, someway.

    Exchange of data, too, has improved. Almost every blogging software I know supports importing of existing blogging information. MoveableType to WordPress, and a plethora of other options, making it easy to divorce your old solution, and try a new one without anything to lose but time. Time lost to trying out new things is usually not really cried about for geeks anyway.

    The point here is giving users control of their data. You can import and export your web browser bookmarks to make them portable or use them elsewhere. You can save documents in a variety of formats. You’re internet presence can work in multiple programs and on multiple devices.

    The point here is as the net becomes an extension of ourselves, it only feels natural if it’s in harmony with us. Ease of use, portability, reliability, and over all (a sense of) control. The more in-tune we are with the network, the more useful it is to us, and the more productive and content we can all be (in theory. I’d still rather have your machine lock up on you because I owned you in Quake 4).

    There is still one area, however, I see major problems with people becoming in tune with the network.

    Payment.

    My computer is always connected, providing a firm base. I have wireless to roam the house, and assorted hotspots to connect when I need. My phone allows email checking, and itself can provide internet to devices nearby. My programs are more and more capable of sharing data in languages each can understand, and understand well that nothing is lost in translation. Data location, integrity, and access is getting there in terms of all the web applications popping up.

    …but when you don’t pay, you’re screwed.

    To me, this is the most ignored area of user experience in technology. If you don’t pay, your trial runs out. You can sign up for cable service online, but can’t cancel it. When you leave an online game, the data you spent a year on has no guarantee of existing tomorrow after your account is cancelled. Google’s cache or archive.org have no guarantee that they’ll have the data you need, nor is in an acceptable and prompt to get format, let alone context (site was generated from MySQL by PHP, thus no HTML-cacheable content). If you’re late on your phone bill, you’re entire local network goes down (thankfully, programs are learning to compensate). You miss a power bill because of some online payment fluke that wasn’t your fault, and all juice is gone. Even Eifel can’t throw (and catch) an exception for that.

    And my lovely weekend experience. Apparently I received 5 emails saying my credit card had expired, and that I needed to update my hosting account. I didn’t receive the 5 emails, nor did I receive a phone call. And yes, my web hosting provider is capable of having an American, native English speaker utilizing the phone to call me because they did last year when blog spam was pummeling their server because of my blog. You’d think after 3+ years of a loyal customer which originally evangelized their service via an un-paid logo on his site would get at least a phone call.

    Nope. To add insult to injury, my name servers changed the same day.

    I make my living off of my online presence, as well as my ability to connect with individuals from around the world on a 24 hour basis, mainly through email. Some depend on my content being accessible to them, as well as me being accessible to them via email. I was made invisible to that world for 4 days solid because of $20.

    No program could re-connect my last website. Google’s cache, while surprisingly fast and thorough, still loses valuable context. While Outlook Express still worked, it was still handicapped beyond usage since my host cut me off from the online world. While I have money, I couldn’t make more by sending out invoices because my email was down.

    Thankfully, presence is not controlled by Mediatemple. I could connect with online associates via instant messaging, inform them of my situation, and keep tabs on the online world, more so as an observer vs. an active participant. If you want to play, you have to pay, and pay steadily with no lapses.

    Separate email accounts and separate email programs provided an alternate way to continue my day, but the dependence on a specific online projected persona prevented much from getting done.

    While one could hearken this to irresponsibility on my part, I will admit that I did not follow up with all pertinent accounts when I get my new card this new year. However, I stand firm that user experience can be improved via payment methods for services, not just taking care of keeping us connected and keeping our data integrity safe & portable. I’ve seen plenty of good examples where you can separate yourself form a service financially, so I know it can be done.

    How old is the phone again? 130 years-old? Surely it’s proven it’s usage in not just solving problems, but solving them via assertive usage as well, yes? If we’ve solved the user experience with application connectivity in less than a decade, we can definitely solve the payment contracts we users engage & disengage in as well.