viagra usa best site to order viagra best viagra alternative buy best viagra online germany best viagra prices online best viagra super erection germany bestellen viagra beta blockers and viagra sales better cialis levitra viagra which cheap bigger erection with viagra online bigger penis with viagra cheap bio viagra online black market viagra buy black market viagra in canada brand name viagra for purchase canada brand viagra buy brand viagra without prescription buy breakthrough treatment sildenafil viagra british natural viagra effects pills budget rx phentermine viagra israel bush buy porn viagra but viagra israel buy cheap cialis generic levitra viagra pills buy cheap viagra online buy cheap viagra uk canada buy citrate generic sildenafil viagra buy cost low viagra pills buy discount viagra viagra viagra usa buy female viagra canada buy generic viagra canada rx usa buy generic viagra india rx usa buy gw porn viagra online buy herbal viagra pharmacy buy herbal viagra viagra buy in spain viagra buy in uk viagra buy india viagra buy pfizer viagra buy buy real viagra buy buy real viagra online without prescription buy buy viagra buy viagra cheap pills buy viagra china buy viagra no prescription israel buy viagra online buy viagra online without prescription germany buy viagra with no prescription buy viagra without a prescription israel buy viagra without prescription usa buying generic viagra canada rx buying generic viagra in the united states buying generic viagra india rx pills buying generic viagra mexico rx canada buying generic viagra usa buying viagra 100mg buying viagra 50mg cheap buying viagra online buying viagra soft tablets 50mg pharmacy buying viagra with no prescription canada pharmacy viagra pfizer canada viagra usa canada viagra sale canadian only viagra suppliers israel canadian pharmacies viagra germany canadian pharmacies viagra for women cheap canadian pharmacy viagra pharmacy canadian pharmacy viagra for women usa canadian pharmacy viagra pfizer buy canadian viagra buy canadian viagra online sale cheap cheap viagra cheap viagra 50mg israel cheap viagra for sale cheap viagra gel cheap viagra in canada cheapest prices for viagra sales cheapest viagra online pharmacy cheapest viagra prescription sales cialis levitra viagra do you have to have a prescription for viagra germany does viagra contains pork or alcohol buy erection viagra gel buy female viagra israel free viagra free viagra trials germany gel viagra germany generic viagra israel generic viagra 100mg generic viagra 50mg canada generic viagra canada pills generic viagra india generic viagra natural alternatives online generic viagra online pharmacy generic viagra order usa generic viagra overnight delivery cheap generic viagra usa cheap generic viagra without prescription usa generic viagra without presrciption how can i get viagra pharmacy how does viagra work how much viagra costs israel how to buy viagra pharmacy how to buy viagra cod india viagra pharmacy indian genric viagra low coast viagra low cost viagra sales low costs viagra low price viagra germany low prices viagra online mexico rx viagra usa natural alternative for generic viagra natural viagra no prescription canadian viagra buy no rx viagra online non prescription viagra pills non prescription viagra fast delivery online viagra online viagra canada online viagra gel online viagra next day delivery online viagra sales online viagra with no prescription online order viagra cheapest order viagra with discount order viagra with no prescription pharmacy ordering generic viagra 100mg online ordering generic viagra 50mg pills ordering viagra natural alternatives ordering viagra overnight delivery buy overnight delivery of generic viagra overnight generic viagra usa overnight viagra buy pfizer viagra cheap pfizer viagra online usa purchase viagra fast delivery israel purchase viagra online buy purchase viagra with no prescription real viagra canada should you use viagra with a catheter single viagra pills usa viagra 100mg buy viagra 100mg canadian canada viagra 50mg pharmacy viagra 50 mg compare cialis viagra blue pill viagra canada pills viagra canada online pharmacy viagra canada pharmacy buy viagra cod pills viagra com viagra discounted canada viagra discounts viagra dosage pills viagra fast pills viagra for sale viagra for weightlifting pills viagra for women sales viagra for wwomen viagra from canada viagra from mexico viagra gel viagra generic canada pharmacy viagra generics in mexico buy viagra in canada sales viagra in gel germany viagra natural alternatives viagra next day delivery viagra no prescription viagra on line san marino usa viagra online discount cheap viagra online ordering pharmacy viagra online sales cheap viagra online sales united states viagra oral gel pills viagra overnight cheap viagra overnight delivery cheap viagra pfizer usa viagra pills canada viagra porn pharmacy viagra prescription label canada viagra prescription or non viagra prescriptions canada viagra prices germany viagra professional pharmacy viagra professional 100mg israel viagra purchase pharmacy viagra qatar pills viagra sale viagra sales pharmacy viagra samples viagra side effects viagra single viagra soft pharmacy viagra soft tablets israel viagra soft tablets 50mg canada viagra soft tabs 100 mg germany viagra sold in the united states usa viagra spain germany viagra specials usa viagra suppliers canada viagra tablets viagra tablets sale usa viagra uk viagra uk pharmacies viagra usa canada viagra usa online buy viagra without a prescription canada viagra without prescription buy viagra without rx what kind of viagra canada where can i buy real viagra where can i buy viagra without a prescription where can i get viagra sales where can i purchase viagra overnite where can you get viagra where to buy viagra fast where to buy viagra online where to get viagra fast where to get viagra for women uk cialis best buys generic cialis pills best cialis price best cialis prices best free cialis softtabs online best generic cialis best generic cialis price pharmacy best price cialis pharmacy best price for generic cialis pills best price generic viagra or cialis germany best way to take cialis usa better cialis levitra viagra which online biblioth ques sp cialis es urbanisme pharmacy billig cialis israel bontril cialis free no prescription israel brand cialis brand cialis for sale cheap brand name cialis brand name cialis for purchase break cialis tablets pharmacy bulgarian cialis cheap buy cheap cialis generic levitra viagra germany buy cheap cialis without a prescription buy cheapest cialis canada buy cialis buy cialis australia buy cialis canada buy cialis cheap buy cialis cheap prices fast delivery buy cialis cheap us buy cialis cheapest prices buy buy cialis cialisnarodru domain buy cialis doctor online buy cialis ebay find tadalafil usa buy cialis fast shipping online buy cialis fedex shipping buy buy cialis from usa online pills buy cialis gel online buy cialis generic pharmacy online buy buy cialis in sweden finland germany buy cialis in the uk cheap buy cialis money order buy cialis next day buy cialis next day delivery cheap buy cialis online 20mg buy cialis online 32 pharmacy buy cialis online cheap canada buy cialis online from canada sales buy cialis online now buy cialis online pharmacy germany buy cialis online uk cheap buy cialis overnight shipping online buy cialis overseas online buy cialis pharmacy israel buy cialis pharmacy online buy cialis phentermine usa buy cialis pills generic pharmacy buy cialis re buy cialis without a prescription buy cialis without prescription buy generic cialis in the united kingdom buy buy generic cialis in the united states israel buy generic cialis india rx canada buy generic cialis mexico rx pills buy generic cialis usa buy buy herbal alternatives of cialis buy real cialis cheap buy real cialis online without prescription cheap buying cialis pharmacy buying cialis fast delivery pills buying cialis soft tabs 100mg buying cialis with no prescription buying cialis without prescription buying generic cialis canada rx buy buying generic cialis in the united states canada buying generic cialis india rx buying generic cialis mexico rx buy buying generic cialis usa cheap buying herbal alternatives of cialis germany buying natural alternatives of cialis israel canada brand name cialis canada pharmacy cialis canada pharmacy cialis pfizer canadian pharmacy cialis pfizer usa canadian pharmacy online generic cialis usa cheap cialis 50mg online cheap cialis alternatives israel cheap cialis no prescription usa cheap cialis over internet pharmacy cheap cialis professional germany cheap cialis with discount cheap cialis with no prescription sales cheapest cialis cheap cheapest cialis buy pills cheapest cialis on the net cheap cheapest cialis overnight delivery pills cheapest cialis without prescription cheapest price cialis germany cialis 100mg cialis 20mg cialis 30mg canada cialis 50mg sales cialis a day buy cialis and cialis professional cialis and lipitor pharmacy cialis atrial fibrillation cialis au cialis blue pills sales cialis bodybuilding canada cialis brand cialis canada cialis canada cheepest pills cialis canada online pharmacy cialis canada pharmacy sales cialis canadian canada cialis canadian pharmacy cialis clogged ears cialis com cheap cialis components cialis costs cialis coupons cialis discount cialis dosage sales cialis doses online cialis fast delivery cialis for sale pills cialis for woman buy cialis for women cialis free israel cialis from canada usa cialis from mexico online cialis from overseas cheap cialis gel cialis generic cialis generic on lice sales cialis in canada cialis indian pharmacy cialis information usa cialis joint pain usa cialis kanada cialis levitra viagra pharmacy cialis medication cialis mexico pharmacy cialis next day cialis no prescription sales cialis no prescription pharmacy canada cialis online in sweden buy cialis online no prescription buy cialis online without prescription cialis online without prescription fast delivery buy cialis order buy cialis ordering cialis overnight canada cialis overnight delivery cialis overnight mail delivery usa cialis philippines usa cialis pills pills cialis pills from canada cheap cialis price cialis prices online cialis profesional cialis professional germany cialis professional 100mg cialis professional overnight online cialis professional singapore pills cialis purchase israel sales cialis sample pharmacy cialis samples cialis soft cialis soft tablets 100mg usa cialis soft tablets cheapest price cialis soft tabs cialis soft tabs 100mg usa cialis substitutes cialis tablets online cialis to children cialis with prescription cialis without a prescription cialis without prescription germany cialis woman compare cialis to herbal israel erection cialis gel generic cialis cheap generic cialis 100mg cheap generic cialis buy generic cialis cheap generic cialis gel generic cialis herbal alternatives generic cialis mexico israel generic cialis next day delivery sales generic cialis overnight germany generic cialis overnight delivery pills generic cialis soft tabs generic cialis uk canadian pharmacy germany generic cialis usa company buy generic cialis with discount generic cialis without a prescription generic cialis without prescription buy herbal alternative to cialis how does cialis work online how much cialis costs how much is cialis canada how to buy cialis in canada usa how to get cialis how to get cialis no prescription pharmacy inquiry cialis sales low cost cialis sales low price cialis low prices cialis online my canadian pharmacy cialis name brand cialis natural cialis next day delivery of cialis buy online cialis herbal alternatives buy online cialis natural alternatives online online generic cialis 100mg usa online generic cialis 50mg germany order cialis usa order cialis cheapest order cialis next day delivery sales order cialis with no prescription ordering cialis usa ordering cialis gel cheap ordering cialis herbal alternatives buy ordering cialis natural alternatives israel ordering cialis next day delivery pills ordering cialis without a prescription israel ordering cialis without prescription pills ordering generic cialis 100mg sales pfizer cialis online phentolamine in generic cialis sales professional cialis germany professional cialis online canada professional cialis pharmacy propranolol cialis pills purchase cialis canada purchase cialis express delivery germany purchase cialis in us no prescription cheap purchase cialis on line canada purchase cialis overnight delivery purchase cialis with discount online purchase cialis with no prescription usa purchasing cialis online purchse cialis real cialis cheap soft cialis truth about cialis viagra 50 mg compare cialis where can i buy cialis pharmacy where can i get cialis where should i buy cialis online israel where to buy real cialis where to get cialis pharmacy who makes 100mg cialis

Co-operative Bank business banking disaster continues

July 22nd, 2008

It looks like the Co-operative Bank have upgraded their total disaster of a rework of their previously perfectly reliable business online banking service.

I can tell this because the UI has changed slightly, and more importantly pretty much any time I try to request a page i.e. do anything with the site I get this glorious error message:

That or the variant: "org.omg.CORBA.NO_RESOURCES: vmcid: 0×0 minor code: 0 completed: No"

First, we try not to laugh that they are still using CORBA. Then we laugh at the genius of the package name "org.omg" as in OH MY GOD. Then we cry that after what must be 3 years or so now, Co-Op bank has still utterly failed to turn this into an appealing and reliable online banking product, when they do so well on the personal banking site and use COMPLETELY DIFFERENT code it seems on the business side. Anyone heard of D.R.Y. at Co-Op Bank?

Online banking is about the least funny place to have I.T. clowns working instead of actual experts. Co-Op have been suckered by their IT managers, internal or external, and seem to remain blinded by them. Even the call centre staff know how bad this is, and its been going on for years.

iPhone 2.0 firmware - the good, the bad and the WTF?!

July 18th, 2008

Following on from my iPhone repair joy, I upgraded the rental iPhone I have to 2.0 as soon as it came out. I installed apps etc.

All seems pretty good, feels like the dawn of a new era - although something in me dislikes all these extra cluttering apps I now have, instead of just the basics. The coherent design feel is lost with differing icon design approaches etc.

Anyway, for my sins I used to be a Java mobile games developer (J2ME). As a result I have quite a lot of experience with mobile development APIs and approaches. With this in mind, I have some iPhone 2.0 / SDK observations:

  1. App Store is genius. App developers on mobile have never had it so good. This is sweet, trivial to use, works great OTA installation in a way that no Java phone I’ve seen ever could (i.e. proper install progress, keep on using the phone during dowload/install etc). No "where the f**k is my app" syndrome. However what’s with the long delays when Installing… is at 100%, even for trivial apps? The CPU slow at unzips / dmg extraction?!
  2. Quite a lot of apps crash - much more than iPhone 1.x where safari and maps did occasionally crash for me,
  3. Shock horror, running an app occasionally causes instant phone reboot! WTF?! I worked with a LOT of really bad Java mobile phones (aaahhhh anybody fancy a Sharp GX10 or an O2 X1?), and even then I never saw a phone spontaneously reboot when running an app. Having viewed some of the SDK videos, I think I have a clue - it could be memory leakage somewhere as… and this is also quite horrifying … iPhone OS X will spontaneously reboot if it runs out of RAM! "What?!" I hear you say. Yes, its true. I can see that without true garbage collection and a VM to run the apps in, memory leakage is a very real problem and the only solution may be to reboot rather than lock up. However I would have thought with unix under the shell it would be possible to kill just the application process and free its resources, not "shutdown -r now" !
  4. The push stuff is good BUT… why the hell no preview popup message for pushed mail, like the SMS popup? Come to think of it, why can’t you see more SMS/push mail previews than 1 at a time when the phone is locked? Why aren’t we seeing the photo of the sender next to the message?
  5. The push stuff uses sockets. This makes sense for iPod Touch and when you have wifi, but it drains the batteries bad. For iPhone they should really be using custom SMS data ports like J2ME’s  Push Registry API. The phone is already waiting for SMS packets all the time so this would mean ZERO extra battery usage, instead of keeping this stupid data socket open all the time. A custom data SMS comes in from Apple’s data center, and bingo, it fires up the correct application / does the badge thing etc. Keeping this keepalive connection going is insane on iPhone.
  6. The push stuff, as discussed at WWDC but not documented yet, is unable to launch your application as far as I can tell. This is bad. You need to be able to automatically invoke the target application (with user consent) to provide a nice user experience
  7. Again, unlike in J2ME, there is apparently no way to set a timer on iPhone from your custom application, such that the iphone will start your application again - this precludes a whole range of apps and is particularly painful in light of the inability to run background applications (which is understandable as this raises the spectre of high cpu load and multitasking task manager stuff as well as the battery drain)
  8. Apple should have stolen the sweet idea from Palm OS where your app is automatically "frozen in time" when deactivated. There was no multitasking on Palm OS when I wrote stuff on it, it just seemed like it because all apps ran directly from Flash RAM and when switching to another it just move the execution pointer to another part of RAM. Simple but very effective. Not quite so workable on this basis with unix underlying, but I would have thought "hibernating" apps would give a better impression of multitasking without actually running multiple apps at once, without the developer having to detect application de-activation, preserving state etc. At least offer some kind of declarative "serialize this" indication on objects/state data that allows the app to restart with prevous data with no developer effort.

Anyway, that’s it for now. I imagine they may add some event hook mechanisms to further simulate background applications in future, with strict design guidelines / enforcement of maximum execution time when the hook is called. Eg hook into system location changes, and get called back a max of once per minute, and have 500ms to do something with the data or die.

 

Apple iPhone repair experience - great, but with insanity added for free

July 18th, 2008

I’m a huge fan of the iPhone, and the SDK and 2.0 firmware are excellent.

However my experiences of the last week have been… bemusing.

First there is the dead iPhone saga - PRE 2.0 firmware release. I was in a café on a Saturday morning, whipped out the iPhone to add weather for a town I’m soon to visit, to see what it is going to be like. Anyway, I add the town, using weak 2.5G signal, and then go back to home screen. Decide to check on AAPL share price in the stocks app… hmm locks up for 5s. Then comes up. Locks up again for 5s. It enters this lock 5s, work 10s loop. Nothing shakes it, I press sleep button. Hard to re-enter PIN when it wakes as of non-responsiveness. Hard reset it, reboot the phone. Takes forever to boot up, presumably as of this locking up cycle.

Try to Restore firmware in iTunes when I get back home. Reboots the phone, ready to re-install… boom phone doesn’t respond quick enough and bang - I have an iBrick in permanent "Restore mode".

So I call to Apple care, establish that it needs to go back to base. I pay the £20 for the rental iPhone. Service is amazing, I have rental phone the next day, postage paid UPS stickers and packaging and instructions to send the old phone back. Restore the rental phone with all my data - better than I could ever have imagined, SMS history comes back, notes, camera roll everything.

So the next day I send my original iBrick back. I muse to myself that the rental scheme is VERY clever. Great customer relations, the £20 covers the UPS carriage. I see that they will let me keep the rental phone if mine is indeed totally dead, rather than ship me a new replacement and force me to ship the rental phone back.

Next day get email 11am saying they’ve received it. By 4pm I get another email saying they’ve finished the repair request and new phone on its way. Gobsmacking.

Next day the phone turns up. A letter in there says that I did indeed have a brick and they have given me a new refurbished iPhone. Hmm ok. Must have been something pretty bad in my old phone then, that just happened out of the blue with no physical damage. Worrying.

Anyway I fire up the replacement phone (remember I still have a good rental iPhone I paid for). Immediately I see them. 3-4 evil white glows at the very top of the display either side of the lock icon in the midde - backlight leakage of some sort that is plainly visible in restore mode thanks to the black background. Euuuuw! Neither my original nor the rental iPhone have this, it is visually disturbing and obviously sub-par.

Now, I phone Apple to tell them this replacement phone is a dud for me in display terms. They say OK I have to send it back pronto using a new repair box they will send out, and do this immediately or the 10-day limit on my rental phone will expire and I will have to pay for the full price of the rental handset! Obviously I point out the vital consumer relations error in this, given that I have a replacement iphone that is functional but worse in display terms than the one I used to have, and that is unacceptable. Furthermore I paid for the rental phone, and have done nothing wrong. If they sent me a smashed iphone in the post, I should not risk having to pay the full handset fee for late return of the rental one.

Off the very helpful AppleCare person goes to talk to a customer relations manager. Eventually we come back and find they have agreed to extend my rental period, and are immediately sending a new "return to base" box and UPS label for the replacement phone that is dud. This box arrived next day (today). Very efficient.

So I still have my rental phone.

Only one problem - remember that I mused that they would logically let me keep the rental phone if my original phone was DOA? What happened to this peice of sanity?

Why the hell am I shipping back another dud phone when I could have kept the perfectly good rental one I have. Why, assuming the 2nd replacement phone I get is OK, do I then have to help destroy the atmosphere of our precious globe by having UPS take back a PERFECTLY GOOD rental phone, after they’ve brought me two other replacements?!

Utter madness. Logistics / systems design gone stupid. Really really stupid. Apple, you are wasting lots of your own time and money on this.

Let people keep the rental handset if theirs is DOA when it gets to AppleCare. Save everybody a lot of pain.

 

Skype - not drifting, but sinking the ship!

June 20th, 2008

After my post the other day wondering what on earth Skype is going to do next, having been seemingly inactive for so long, I had a look around their site and found Skype 4.0 beta for windows including a video showing their new totally reworked UI.

Check out the blog post and the many many negative user comments!

In a nutshell, the UI on Windows is changing to a full screen UI, with overcomplicated horrendous Windows design touches. It truly beggars belief that they can be so wrong about this and misjudge their user base so.

One comment on the blog that sums it up well is:

"An app like Skype should be really out of the way most of the time. For me it is a great communication tool, but I have to switch if this is Skype’s future."

It seems like Skype’s ego has taken over and forgotten that it is just  a phone on steroids. If your mobile phone suddently became the size of your laptop, you’d get rid of it for a better one. Skype will haemorrhage users if they don’t rethink this UI disaster.

I can only think that most of the developers/producers with a clue have left Skype and new people post Ebay takeover are completely ruining the company.

Who knows, our entire company might …. shudder… have to switch to iChat. At least it has multi-way video and app sharing. It doesn’t have SkypeIn or SkypeOut though of course, but we currently don’t use those and will not start if Skype’s UI goes this awful awful way.

A Grails JSON Builder that doesn’t suck

June 19th, 2008

Now we’ve been doing some fun Ajax bits with JSON recently in Grails. However it has been very painful using the JSON builder. Initially I didn’t want to use the JSON converter (render x as JSON) as the data is coming from several sources, and there are some domain class properties we don’t want to expose.

So the builder approach seemed to make sense. The only trouble is that render(contentType:’text/json’) { … } uses Grails default JSONBuilder which I have discovered sucks, and also blows.

The default JSONBuilder uses method calls for everything. However in some cases the method name is ignored - eg elements of an array. Also you can only set name/value pairs with simple method(value) constructs on the root node of the builder, as in subnodes each one of these creates a new object eg { method: value }. The final blow for me was that property values of anything other than simple types are just rendered as strings. For example a property value that is an array of ints is rendered as a string so "[1, 2, 3, 4]" because JSONWriter has just a def value(Object) method that calls toString(). This is in contrast to the "as JSON" converter construct which works nicely with nested objects and is sane when it comes to recursion/parent node references.

So as soon as you step away from trivial lists and have any kind of object graph to represent, it falls down.

Enough was enough so I knocked this together. It needs a lot more sanity checking in there and possibly some optimisation but it took half an hour and it works. Using it is a case of calling "render new BetterJSONBuilder() { … }".

What it does is use any method calls with a Map to create a new JSON object with those properties. Any method call with a closure creates a new array OR object - if the first call in a closure is to "element(value)" it will create an array. Property access is permitted on object nodes eg you set properties with x=y not with x(y) as in the standard horrible JSONBuilder.

Internally it just creates a tree of maps/lists and then uses "as JSON" to do the conversion. Short and sweet.

class BetterJSONBuilder {
   
    static NODE_ELEMENT = "element"
   
    def root
       
    def current
   
    def nestingStack = []
   
    def build(Closure c) {
        c.delegate = this
        //c.resolveStrategy = Closure.DELEGATE_FIRST
        root = [:]
        current = root
        c.call()
        return root as JSON // requires deep
    }
   
    def invokeMethod(String methodName) {
        current[methodName] = []
    }   
   
    def invokeMethod(String methodName, Object args) {
        if (args.size()) {
            if (args[0] instanceof Map) {
                // switch root to an array if elements used at top level
                if ((current == root) && (methodName == NODE_ELEMENT) && !(root instanceof List)) {
                    if (root.size()) {
                        throw new IllegalArgumentException(‘Cannot have array elements in root node if properties of root have already been set’)
                    } else {
                        root = []
                        current = root
                    }
                }
                def n = [:]
                if (current instanceof List) {
                    if (methodName != NODE_ELEMENT) {
                        throw new IllegalArgumentException(‘Array elements must be defined with the "element" method call eg: element(value)’)
                    }
                    current << n
                } else {
                    current[methodName] = n
                }
                n.putAll(args[0])
            } else if (args[-1] instanceof Closure) {
                def n = []

                nestingStack << current

                if (current instanceof List) {
                    current << n
                } else {
                    current[methodName] = n
                }
                current = n
                args[-1].call()
                current = nestingStack.pop()
            } else if (ars.size() == 1) {
                if (methodName != NODE_ELEMENT) {
                    throw new IllegalArgumentException(‘Array elements must be defined with the "element" method call eg: element(value)’)
                }
                // switch root to an array if elements used at top level
                if (current == root) {
                    if (root.size()) {
                        throw new IllegalArgumentException(‘Cannot have array elements in root node if properties of root have already been set’)
                    } else {
                        root = []
                        current = root
                    }
                }
                if (current instanceof List) {
                    current << args[0]
                } else {
                    throw new IllegalArgumentException(‘Array elements can only be defined under "array" nodes’)
                }               
            } else {
                throw new IllegalArgumentException("This builder does not support invocation of [$methodName] with arg list ${args.dump()}")               
            }
        } else {
            current[methodName] = []
        }
    }

   
    void setProperty(String propName, Object value) {
        current[propName] = value
    }   
   
    def getProperty(String propName) {
        current[propName]
    }
}

Update: I found this morning that I missed out the "import grails.converters.JSON" from this. I also discovered that for me at least, if I imported the deep.JSON converter, I was getting lots of "Value out of sequence" exceptions. Using the normal non-deep JSON converter all is fine and, weirdly, nested objects seem fine too - e.g. I have a top level JS object, a value within it that is an array of other objects, and those objects have an array property also. All rendering fine without deep JSON converter.