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
MDM to me.
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.
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.