Blog updates

Friday, 22 July 2011

ChromeMarks update 2011.07.22

Hi all - time for another update to ChromeMarks. Thankfully the changes made on the 12th July haven't had any issues that required a fix here, so these are all new features or fixes to things that have been broken for a while.

  1. New features - Gestures. Only in the paid app. You can now specify that flicking up or down performs some action (i.e. up a folder, goto root) and swiping a bookmark or folder left/right will perform something else (i.e. open in new window, edit, delete). You can configure the "zone" that detects flings so it doesn't disrupt with your normal scrolling (i.e flings only work on the left half, right half, middle half, etc) and also configure the detection speed. I'm not too sure with the detection speed - it may be oversensitive, it's hard to tell as it also depends on the screen size and possibly the cpu speed. Some screenshots below.
  2. New translations. Swedish, Dutch and Japanese. Thanks to all the translators who have helped (in no particular order) Kees Huiberts (nl), Gerben Markvoort (nl), Kjell Kernen (sv), Yutaka Takeda (ja), aozora (ja), Kazuo Ugai (ja).
  3. It's clear from the automated bug reports there are many problems with the manufacturer builds of 3.0.1. There are many posts on the android developer forums where errors have been reported and the stock answer is "how can that possibly happen?" For whatever reason, some of the core java code is corrupted and invokes something else which will always be wrong. I don't know how it can happen, but it clearly is and many apps are affected by things that should *never* fail, but do! I've tried a few fixes here to deliberately avoid running the bits of code that knowingly fail on 3.0.1.
  4. Note, the above fix is different to the other issues with Honeycomb generally regarding restarting the app keeps force closing it. That's due to changes Google forced on us with Honeycomb and neglected to make it backwards compatible with existing apps. Grrr. Hopefully a fix in a later release, but it will need a serious rewrite.
  5. Some tweaks to the settings screens to dynamically resize the text for each setting's title. Hopefully you won't see text disappearing under a checkbox or drop down widget. Unfortunately I can't do this everywhere else, so popups and other text fields are still fixed sizes.
  6. Changed the "Frequently asked questions" to "Help". The content is no longer hard coded answers. I've given a list of the most popular questions and linked them back to the community website. This allows me to provide more in depth answers, where needed, but to also be able to update them real-time. Also allows users to comment on them and get responses to those comments. Unfortunately this does mean the actual answers are no longer translated - though userecho (the website the community site is hosted with) says it will bring that functionality in at a later date.
  7. If your first sync failed, you might have ended up with duplicate data on one of the tables in the database for each successive failed sync until it finally worked. It wasn't actually a big problem, but it might have simply made the database a smidge bigger and slower to access. Only talking a couple of extra records - if you had 1000 bookmarks, this would have had a negligible effect. On upgrade, the app will detect this and remove the extra records.
Note, there may have been some other changes that either Google started making from 12th July, or took effect due to me upgrading to the latest version of chrome sync service:

  1. Some Chinese users were constantly getting ssl handshake errors. The analytics confirmed these errors were coming out for previous versions of the app as well, so it wasn't related to the last upgrade. It looks like an internet server somewhere in China that passes the traffic through to Google was mis-configured. After exactly a week, the reports started dropping fast. Thanks to Leo for sending me debug logs and for testing every few days and confirming things were working. Good job to, I wouldn't know where to complain about it!
  2. Some users have started receiving "throttled" errors in the app when they change bookmarks or make new ones. Google normally throttles users to 100 changes a day. But previously it had always been a specific client software that was throttled (i.e. your desktop browser was throttled, but you could happily make 100 changes in ChromeMarks). The comments from some users might indicate that Google has changed this to throttling per user account - so irrespective of the client software, *you* can only make 100 changes a day. I've tried to get more info from Google, but don't hold your breath. Remember that auto-fill entries also count to your 100-a-day, so if you fill in a lot of form fields and have auto-fill synced, you'll hit your limit fast. More updates if I find out more info.
Some screenshots of the updated main settings screen and the Gestures screen showing some of the options (more off the bottom of the screen):

A reminder that I'm now on twitter as @chromemarks. Follow me if you want to hear about new features or Google outages and feel free to ask questions or comments.

Thursday, 21 July 2011

Twitter action!

Just a quick message to say that I'm on twitter as @chromemarks and I'll try and tweet on new features I'm working on, new bugs or issues and anything else that might be useful. Send me a message if you have ideas, comments or questions!

Tuesday, 12 July 2011

ChromeMarks broken - IO Exception errors

Google have made some changes somewhere which has broken all ChromeMarks functionality.

I'm trying to fix it and hope a new release in the next day or so. Please bear with me - remember this app is coded and maintained by a single person during his spare time!

I don't know what they changed. From what I can see, the data is coming back fine, but at the very end of the sync are a couple of fields to denote the final progress and I suspect they've changed something around that area. It's a bit annoying as one of the fundamental purposes of the protocol buffers Google invented and use for this communication are meant to be always backwards compatible.

I guess Google thought that the only people using chromesync would be users of Chrome and since they should be auto-updating, what's the harm in turning off some old server functionality, eh....?

More updates later.

UPDATE: 22.45pm BST. I think I've fixed it. Will update more here in the next hour while I refresh the Market.

UPDATE. So, I'm still not exactly sure what they broke, so I've had to upgrade the app asap to the latest protocols. The app has gone from release 24 to release 27. Google have made quite a few changes along the way, partly why I've been putting this off for so long.

But with a nice bit of Fiddler (where would this app be without it??) and I *think* I've worked out how the new protocols work. They didn't quite fit immediately in, but with a squeeze, they work.

Unfortunately Google have changed the way they track changes and moved from an increasing "number" to a semi-random byte array (may not be random to them, but clients should not expect them to follow any logical pattern). This necessitated a change to the database that ChromeMarks is held in. If I'd done this as normal change in my own time, I would have written a migration into the app to fix this as soon as you upgrade. But I didn't want the app to be offline for too long and my wallet can't afford all those annoying people that vote one-star, so I've chickened out and made the app reset-to-default when you open it to force you to redownload. Sorry! Not my fault!

I've tested what I can in the time so far, but since the bug happened 24 hours ago, I've needed sleep, travel time and a normal job, so please be gentle if there are a few more bugs I didn't spot! They will get fixed as soon as I can. I've only checked it on Froyo as that's the most prevalent - I'll have a try shortly on Honeycomb as that's the most likely to be tetchy.. :-)

Annoyingly I was going to make a release this weekend with some real goodies for the paid app (could I say it was a "gesture" to "fling" these changes in your direction?), but now I've got to merge two changed versions of the app together. So the next official release (barring bug fixes) will probably be next weekend.

As usual, thanks for your support and to the people that mailed me letting me know there were problems, and to everyone else who actually read the note on the Market.

I think I need some sleep...

Saturday, 2 July 2011

ChromeMarks updated 2011.07.02

Another update. As normal, the details in more detail (!)

  1. Experimental fix for Samsung owners who experience disappearing local bookmarks created by ChromeMarks. The root cause is due to Samsung making naughty changes to the Stock Browser and neglecting to make those changes work with the hundreds of bookmark apps on the Market. Lots of thanks to Emiel who sent me enough files to guess the changes made by Samsung. There may still be some more changes needed here to polish it a bit, but the bookmarks are now visible, at the least. NOTE this has only been tested on the GT-I9000 - other Samsungs may work, or not! Let me know! When you first upgrade, the app will attempt to fix any bookmarks you may already have there and then. Otherwise, the normal sync should do the work anyway.
  2. Added Portuguese translation. Though I'm a bit worried as to wether it's Brazillian Portuguese or normal Portuguese! Time will tell... :-)
  3. Fixed the Folder browser on Honeycomb devices. This is used in the settings when choosing the Home folder, or when editing a bookmark/folder and choosing the folder it is saved into. It was definitely a Honeycomb bug as it worked fine in all other versions. But it was hard to track down! But for some reason, I made a sprinkling of tweaks that made it suddenly work - I saved the changes immediately and cross the fingers it doesn't stop again!
  4. The usual bug fixes along the way.
No pictures this time as nothing UI has changed. There are a sprinkling of UI improvements I want to make soon, Gingerbread needs a bit of TLC now.