Zinc 3 aka Total Waste Of Money

I started using Zinc when it was 2.5, it was buggy and on more than one occasion caused me some severe grievences. A nice one was when I had a presentation that had to store data in a MySQL database. Nothing complex but the presentation itself was supposed to be potentially viewed by up to 50,000 people. So what was the problem? Somehow Zinc reached version 2.5 and no one had noticed that it’s MySQL classes “Connect” function didn’t actually connect to the database. I was the lucky camper to find that one out. MDM didn’t reply to my emails so I was left to ditch Zinc and write my own Flash wrapper to handle the comms. Since several other applications were Zinc based we were kind of stuck with it. They eventually nailed all the bugs that I’d run into which was great, then we upgraded all our machines to the Vista OS. Lo and behold, Zinc 2.5 consistantly bombed out, totally not Vista friendly. So much so they actually released Zinc version 3. I knew I should of learnt my lesson.

So like a kid in a candy store I installed Zinc 3. What do I find? Entire Zinc classes are missing, WTF?! On their shiney new site is the version history, check it out here. Let’s have a look at some of the fun things in v3.0.0 or should I say, missing from v3.0.0:

FileSystem.BinaryFile Class Not Included With Zinc
The Input Module is not Included With Zinc
The MacShell Module is not Included With Zinc
Zinc Builder Does Not Pack Files Into The Library
Application.Kiosk Missing From SWC

There’s loads more but as you can see their entire beta test crew should be blindfolded and shot, along with their families and friends. How could they not of noticed that 5 modules were missing? So I laughed and thought, “phew, at least they caught those wee bugs in the first week”. Take note of this one:

Forms.callFunction Does Not Work in AS3

This re-occurs throughout the version history, it gets fixed, then it gets broke over and over again. The current version 3.0.14 falls into the “broke” category. What this means is that when you have more than one Form aka Window there is no way to communicate between them. This sucks in a big big way. “Oh well, why not just work around it using the ExternalInterface class?”, wow, that’s a great idea. Oh wait. I only wasted two days trying to make that work. Seems MDM saw fit to prevent you using the ExternalInterface class so you are forced to use their callFunction method. Great. “OK, so why not use a LocalConnection object?”. Wow, you’re full of great ideas. If only you told me that it would waste about 5 days of my time. For some reason the LC object hardly ever gets sent. I wrote a class that would send it continuously for a hard-coded number of times. The receiver LC object would look at an MD5 signature of the received data, if it matched the last received call then it’s ignored. After a set amount of time it clears the last read MD5. That’s incase they do something like click the “Open Window” button which they may do twice in a row in which case it’s valid that you’d get two calls. Another reason for doing an MD5 check is that Zinc seems to fudge with the LC object somehow. 80% of the time the message doesn’t get passed but when it does it seems to get received multiple times, like 20-50 times for each single call. Without a duplicate call check the entire function contents get run that many times. Craziness. The same setup in a none Zinc project works fine.

My last idea was to use a SharedObject to pass the data between windows. I really frowned on this one due to the amount of hard disk polling it would entail. The idea was that the sending window would write a value to the SO. The receiver window would have to keep polling the SO looking for changes. Proper system drain. I didn’t even code this one up as once I finally got the LC object method mostly working I stumbled across another 5 Zinc bugs.

Enough is enough. I’ve submitted 10-20 bugs to MDM in the past two weeks and received no reply. I sent them an email in the end asking why non of my bugs are listed in their bug tracker. They said that they have a much bigger list of bugs and the tracker is just the ones they’ve entered into the system so far. When I asked how long it would take to fix the callFunction method they said it “may” be included in the next release at the end of June or July. Nice and vague. Total complete bastards. I feel kind of evil as I have recommended Zinc several times both to people I know as well as to forumites at Dev Shed where I’m a mod. These people looked to me for advice and I led them to Zinc. Shame, shame on me.

Really, I can’t express how pissed off I am. I ended up running overdue on my current project which hasn’t happened in years. I actually had to apologise to my client. Personally I totally blame MDM for selling a highly overpriced piece of bug ridden crap. I also blame myself for using it, after the v3.0.1 screwups I should of had major alarm bells ringing in my head. I’m now planning on working Zinc out of all my current projects in favor of Adobe Air. The problem with Air is that it requires the Air plugin to be installed on the clients machines which is not possible in alot of cases. I’ve dug around and found a few Air wrappers which get around this, a few charge but I reckon I can find a free one somewhere.

Edit: I finally got some feedback from Zinc, let’s say that by the end of it I actually felt a bit better Tongue Out

MDM to me.
Dear Sir,

In regards to your 3 bug reports today (listed below), please can you email us repeatable example SWFs which demonstrate the behavior described. (You may reply directly to this email with the examples).

We are currently working on .15 Build and if you’re able to provide repeatable examples for each bug, we can do out best to include fixes in the upcoming build. Bug reports which are accompanied with example SWFs which correctly demonstrate the bug are always given priority. Thank you and we look forward to hearing back from you.

Kind Regards,
MDM Support Team

“Can’t capture sub form close event.”
“Too many Dialog.prompt boxes freezes app after it appears they have all been closed.”
“Enabling mouse right click on main form crashes app out when dragging a sub form.”

Me to MDM
You made me late with my project which has now cost me several thousand pounds. I’m no longer going to use Zinc in future projects and am currently working to remove it from my current projects. I’m also making a point of telling my clients to stop using your pathetic product. I also used to recommend it to people who frequent my forum, Dev Shed, now I’m going to do the opposite and warn them about the hazards of using software that is written by amateurs. To summarize; you can go and fuck yourself I am not doing your job for you.

MDM to me
We find it amazing that you went to the trouble of reporting the bugs and when contacted on the same day to ask for further clarification you resort to profanity. Why even bother reporting the bugs if you don’t want us to help/fix the issues? …That’s a rhetorical question, I can see we won’t get anywhere with your attitude.

(Note: This was actually the day after I submitted these three bugs, three bugs out of alot more and they don’t mention the callFunction screwup at all.)

Me to MDM
Yes, I reported so many bugs over the past two weeks that I eventually sat back and realized, what’s the point? You clearly have no idea how to test your own product or how to fix your own issues. As soon as I implemented my own work-around for one bug and get onto the next area I’d find another bug. Asking me to waste more time developing standalone examples so you can attempt to work out why your own product doesn’t work is hilarious. If you spent some time going through your online version history you will notice that you keep fixing several of the same issues which in turn means you either are not fixing them correctly in the first place or that you keep breaking them over and over again. You are not helping me at all by stating you “may” fix the bugs in your June or July update which even then doesn’t inspire much hope since it’s more than likely you’ll go and break it again in the next update. My attitude is a direct result of your crap attitude and your crap product. Please do not reply as I hate you.

Comments: 14

Leave a reply

Your email address will not be published. Required fields are marked *

  • Jeremiah
    Jeremiah

    I totally agree with everything you have said.
    I don’t have time to go into any specifics but I have been messing around with Zinc 3.0 for a couple of months now and I hate it very much. I tried contacting mdm for help and they basically gave me the middle finger. AIR is still an option for me but I really hope that I can find something like Zinc but better. I am probably just dreaming.

  • Jeremiah
    Jeremiah

    Have you taken a look at Janus? I just started messing around with it and so far I don’t have any complaints. janus-flash.com.

  • Anonymous
    Anonymous

    Never heard of that until now but it does look rather good. Unfortunately it’s too late in the day for me to switch to yet another system for my current project but I might look into Janus for some of my longer term projects. The real problem is finding the time to port one of my projects over to it using the trial. As long as it does everything it says it will, something Zinc consistantly fails to do, it looks to be a winner.

    Air is ok but some of it’s limitations may become real problems for me further down the road. One major issue is the way the packager for it works, seems you can’t include empty directories and you have to add each file one at a time, you can’t just point it to a directory full of files to include them all. That’s going to be a real pain for the content developers on this project. Another crappy Air thing is that it says you shoudn’t create files within the program directory but instead create a seperate one inside My Documents and do all your file IO there. That would be fine except there is no option within the installer to do that, you have to let it install them into the program directory, then write some code to move them to the My Documents location. I’m looking at using FZip, an ActionScript zip package to simplify the installation process i.e. I can just include one big zip inside the package and then unzip it to the My Documents location post installation. Those are issues for later on as I haven’t gotten to that part yet. So far the main Air headache has been it’s amazing lack of popup dialog boxes. If you use Flex there are some built in ones like the Alert box but straight Air+AS3+Flash CS4 has none of that, you have to create your own. I’ve spent two days putting these together which is just annoying with such a tight timeframe until the project deadline.

  • cristian
    cristian

    Agreed. Too expensive, little features and lots of problems. Zinc is definately not the best choice.

    I been looking around and found NorthCode, which appears to be a good option. I’m still testing it though, but if it meet the needs I can’t fulfill with zinc, I’ll sure buy it.

  • Anonymous
    Anonymous

    You cannot believe how happy I am to hear from other MDM survivors, I really thought I was alone. I totally agree with what you said Dunlavy that it seems fine when working on very simple projects but as soon as you delve into the more complicated areas it begins to fall apart. I think even most of the basic areas are incredibly flakey.

    Unfortuantely there’s no way of knowing how much better any of the competitors are. Sure Northcode has a very cool unlimited trial but you would still have to try and use it to implement a rather complex project before you could definately be sure it is 100% stable or at least enough to let you complete a project, unlike Zinc.

    I’ve been using Air since I made the initial post and have found it to be quite good but there are some definate drawbacks to it. I’ll list what I’ve noticed as someone coming from a past Zinc user. You should note though that so far it has let me do everything that Zinc failed miserably at, the problems so far are mostly just due to Adobes seemingly alien approach to their applications design.

    1) Reading and writing files in AIR is alot more restrictive than with Zinc. It mostly prevents you from reading and writing to files within the application directory. Instead you are suppsoed to create a second directory for your application within the My Documents/User documents directory. The logic being that most users would not have read/write access to the program directory so the AIR app would have issues there.

    That’s kind of a big deal because it has a mega shit installer system. Basically an AIR app via the Flash IDE creates a single AIR file which contains the swf, a description XML file and a few other AIR specific auto-generated things. The Flash IDE lets you add your own files which sounds good but it’s actually very poorly implemented. You can’t add blank directories and you can’t add a directory full of files. You have to add files one at a time. Even then, that only unpacks them into the program directory. That’s fine if you don’t plan on writing/updating them during runtime. If you do then you have to copy them to the documents directory to do so. The real pain is when you have a seperate team working on the content and they are constantly adding and removing files/directories since you have to add them one at a time. I found a nice workaround was to use FZip a cool 3rd party Flash zip class. I just zip up the content directory and then add it to the AIR packager (Flash CS4->File->AIR Settings->Include Files panel at the bottom). I only have to do that the first time I add it. Then I just update the zip each time the content gets updated. Once the app is installed I use FZip to read the zip file, create a directory for the files in the users document directory, then unzip them all there. That’s it. Works a treat for what I need but it’s definately a whole bunch of extra steps that you don’t have when you use Zinc. That’s something it does right.

    2) Popup dialog boxes aka mdm.Dialogs.prompt(). The popup boxes worked very nicely in Zinc, there is nothing like them in Flash CS4 or AIR. If you use flex you do get one or two but not the same number with different functionality as Zinc. For my project I created a base class that extended AIRs NativeWindow class. I then had to custom make each type of popup i.e. confirmation dialog, error dialog, input dialog etc. Lots of extra work for something Zinc has built in already. On the bright side it meant I could make them alot more stylish than Zincs OS based ones and they have alot more functionality.

    3) AIR is nice because FlashDevelop comes with built in support for it. That’s one thing that instantly caught my eye when I looked at that Northcode product you mentioned. They say they provide source classes which will then give you code completion etc in 3rd party code applications such as FlashDevelop. That’s something Zinc never did and probably never will. A very very handy feature.

    4) AIR has it’s own installer system but the uninstaller is crap. If there are any files/directories in the application directory that were not created by the initial installer then the installer will not remove them. Also; there is no way to specify what you are creating within the user documents directory which means there is absolutely no way to remove that data when you run the uninstaller. There’s also no way to customise it so you can’t put a message there to tell the user to delete it. Very poor.

    5) Another gimmick of the installer is the massive honking hazard symbol it displays on the left hand side. It’s color is made from a combination of two things. The first is that you need to have a certificate for your app. You can easily create your own using the Flash IDE but that means you get a red symbol for the license and it shows as “UNVERIFIED” (or something like). To change that you have to buy a certificate from one of Adobes recommended pals.

  • Dunlavy
    Dunlavy

    Thanks for writing, Tann. I was tempted to use Adobe Air before I read your post – seems I will keep looking. Janus really does have a lot of potential, but I

  • JCarver
    JCarver

    I’ve been evaluating JANUS for a couple weeks now. It has a number of features and appears to be pretty stable. Unforunately, it appears to be a dead product. They are still charging over $300.00 and it hasn’t been updated in a couple years. Worse than that, the forums don’t work. I’ve tried accessing them over the last week but get nothing but a bunch of PHP errors. The online documentation is mediocre and there is no other way to get help. It’s unfortunate, but there does not appear to be a solid choice in this market.

  • brym
    brym

    Then perhaps we need to create our own wrapper. I never upgraded to Zinc v3, and have no intention to. The way MDM dropped support overnight on v2.5 was unbelievable. It would be very easy to get your own back. Create a v3 application which allows developers to load their swf’s in at runtime, say through XML. Take away the need to pay for Zinc without illegally downloading it.

  • Anonymous
    Anonymous

    You know I had that same idea but I figured it would be a fair bit of work just to produce something to annoy MDM. Also, it wouldn’t help fix any of the bugs, sure you could make replacements for things such as setting the form background color but the more serious bugs would require you to do a fair amount of re-writing.

    The problem you have is that if you try and directly reference the MDM classes in your externally loaded in file then you also need to have the approriate import statement in that fla/class i.e.

    import mdm.FileSystem;

    You could create a proxy that imported the entire MDM set of classes and then you would call the functions on your proxy instead of the MDM classes directly. The only problem there is deciding on a nice way of handling it. Returning everything as an Object from function calls would mean you’d have to do a lot of type casting in your external file to make use of the returned data. Not great for performance. On the other hand if you could make a whole set of proxy functions that return data in a specific format i.e. String, Number and Array etc.

    Besides, it wouldn’t take away the need to purchase Zinc, someone would have to buy it to create the initial core for the wrapper. It does mean you can pool your resources with a bunch of other people though and all chip in for a copy.

    You can already kinda do that though since you can install the same copy of Zinc on two machines. I do that so I can work on it in the office and at home. I don’t think you’re supposed to use the two copies at the same time though but I doubt they check for that considering the state the rest of the MDM package is in.

  • brym
    brym

    Of course, yes, an initial purchase would be needed. I already did that for my community though.

    The alternative to importing the MDM classes would be to create Zinc extensions which properly carry out what bug-ridden MDM classes were meant to. A bit more work, sure. But if MDM won’t sort those longer-standing issues themselves…

    And if v3’s anything like v2.5, you can get around running it on multiple machines simply by denying it Internet access.

  • DEVNEB
    DEVNEB

    Thanks!

    I’m really glad to have finally find this discussion, since I was searching for the right alternative to Zinc v3. But in conclusion, maybe there’s no such paradise…

    I’m still hoping to find in AIR everything I need, maybe less but with everything fine tuned… Tann you gave us goods notes of what we should expect migrating from Zinc v3 to AIR, but this was more than a year ago…

    Are you still developing with AIR ?
    Does the last AIR SDK is different, like better ?

    Anyway, like all of you, I need to maintain some projects made with Zinc. But, I will give AIR a real try, soon enough!!! I’m getting very unhappy and upset with Zinc…. which is so dysfunctional.

  • Anonymous
    Anonymous

    There is an alternative that a few people have mentioned here and elsewhere called SWF Studio. I haven’t tried it but the author has posted here at least once. It costs $299 compared to Zincs $349 price tag. I don’t mean to bash Northcode as I’m sure it’s a lot of work they’ve put into it but I still think $299 is a lot to ask. I mean, the Flash CS5 upgrade is only $199. The whole CS5 Web Design suite upgrade that I bought was $599. Sure if SWF Studio was say $50 it would mean you’d have to sell 6 copies to make the same amount but maybe you’d sell more copies if it was cheaper. What do I know though? As for me, Zinc have already extracted their blood money from my account and spread their tentacles into too many of my projects for me to justify switching to another wrapper.

    I haven’t had the chance to play with the latest version of Air. I did work on someones already made thing, just fixing some bugs and whatnot but they didn’t use multiple forms, popup dialog boxes or external files. As far as I know the external file issue is still there. That’s the one where you are only supposed to read/write external files to subdirectories within the “User” directory. It’s not classes as an “issue” by Adobe though, it’s a “feature”. I spoke to one of my friends that develops with Air and he said that the uninstall system seemed unchanged so that there was actually no way to remove the custom content from the User directory. There are ways to get around the Air installation issues I described earlier such as using NSIS to do it. That’s probably the route I will be taking with my next Air app since you can then tell it to remove whatever files you want and you also avoid the crappy hazard symbol when installing. I already use NSIS for all my desktop apps so I’m quite happy to do so with my Air apps as well.

    I just lost a weekend to Zinc which re-affirmed my dislike for it. I develop an app for both Windows and Macs. I don’t actually have a Mac so I rely on my client testing things out. They don’t mind since they know I’m not that comfortable producing a Mac version that I can’t test. So I sent them the latest version on Friday and then they come back to me quite late on (00:30) saying that the external MP3 is not playing and the externally loaded photos are not displaying, both in the Mac version. The swf and Windows exe versions are fine. So off I go ripping through the code trying to find some explanation. Is it the Application.path not being correct? Is it due to the slashes in the path being incorrect? Well everything comes back as fine. All it says is that it can’t load the files, stream error etc. This has taken big chunks of Saturday and Sunday and included about 30 emails back and forth, try this one, try that one.

    This is just one of a few apps I do for this client so I republished one of the other ones with Zinc and sent them that. Same problem even though the actual source had not been touched in months. That totally pointed the finger at Zinc being the culprit. I went to the MDM site and had a look at the release notes in their latest version. I was running 3.0.21 and the latest at the moment is 3.0.22 and top of the bugfix list is “ZNC-1189SR – Flash content is run in flash.system.Security.REMOTE sandbox type” [only on Macs]. So then you may say well that’s your fault for not running the latest version. Yes and no. I knew the latest release has been out for a while but as usual, Zinc fix one lot of things and break another. For another of my clients I develop a series of apps that are Windows based only and use Zinc to wrap them. Something in the latest Zinc release breaks the functionality of their app which is why I’ve stuck to the previous version. The problem is the client noticed the issue pretty much on the first day I used the update and I can’t remember what it was now. I’m sure I’ll stumble across it again soon.

  • Dave Stroop
    Dave Stroop

    I have four main projects all developed with Zinc 2.5. All worked well. I upgraded to 3.0 and none of them worked. I upgraded to 4.0 and still none of them worked. I follwed the manual tyring to work out which bits of code I needed change, but even oce that shoudl work according to their manual doesn’t. I agree that I will have to develop using an alternative. I will never use MDM Zinc ever again, I strongly advise developers NOT to upgrade and waste their money. I can’t even roll back to 2.5…maybe nothing works anymore in Windows 7, anyway.MDM show a complete klack of regard for people developing projects in the long term. Why shoudl I have to comletely rewrite my code each time MDM upgrades their application. MDM versus AIR? Well, I guess it has to be AIR.

  • Ehsan
    Ehsan

    hi- for packing files you should select files by multi selection box draging and select all files and add them all… not single by single …. the size must not be zero …

Be vigilant!

— Mr Hobbins