Tuesday, June 26, 2012

GeeMail damaged my data

The skinny :

I don't recommend trying GeeMail.

The fat :

For various reasons, I wanted a standlone GMail app on my Windows 7 laptop.

Specifically, it had to run in its own process - i.e. not simply as another tab in a browser, nor as a browser window that's still part of a larger FireFox or whatever process.  I needed to be able to kill my browser without affecting my GMail.

I found one.  It's called GeeMail.  There appear to be no other options.

I installed it.  When I ran it, it consumed 100% of one core for many minutes.  When it finally loaded, it showed about one screenful of emails all with no subject line.  That's right - no sender, no subject line to see in the list.  Basically a useless list.

It appears there's also no built-in search, which is rather limiting.

But the thing that shocked me most, and made me immediately close it down and stop using it (and therefore I don't know what other features it does or doesn't have) :

Since GeeMail was basically useless when just showing a list of emails with no identifying information in each list entry, I jumped back into my browser to check email.

Guess what?

Roughly a few dozen emails that had been marked Unread, were now all marked Read.

For a moment I thought maybe GeeMail had done that for a great slab of emails.

It appears now it had only done it for roughly a screenful.

But that's a screenful too many.

I'm one of those who use an email's Unread status to flag when action is required.

"The fault is with you - you should learn how to use email properly."  Since when were you the expert who knows how a new technology like email should be used?  Since when was the world so advanced that there was no longer room for variation in how we try to tame the email beast?

Nay, the fault lies squarely with GeeMail.

I don't know how many important emails disappeared from my Inbox, but I fished back at least one.

Fished it back, that is, using the browser-based version of GMail.

And sadly, it is with that browser-based version of GMail that I must remain, at least for now.

Experiments for another day :

* Run GMail on a tablet with a keyboard.  (iPad or Android tablet.)

One downside of this approach is that I still want to separate general browsing from email, so I want any links I click in an email to open in a separate browser.  iPad or Android will do that, but then I'm stuck using mobile versions of browsers, which unfortunately are not suitable for the information processing tasks I perform.

* Try to run two concurrent copies of FireFox - one just for email, one for browsing.

One downside of this approach is that I need to go to a lot more effort to open a link from an email.  Open link, copy URL, paste into other FireFox, close tab that opened in GMail FireFox.  But it would sorta work.

* Run one browser (e.g. Google Chrome) just for GMail, and a different one (e.g. FireFox) just for general browsing.

Again, a lot more effort to open a link from an email, but it would sorta work.

* Write a decent standalone desktop GMail app.  C'mon, iOS and Android have ones, so it must be possible!  Why aren't there others already?  Are there really that few of us who want that feature?

Downside : major time cost.

* Use a standalone email client and download GMail messages via POP.

But the very reason I want to stick with GMail is because I like the way it "thinks".  Its concept of conversations, its concept of tagging, its "Priority Inbox", and the built-in search.  Yes, it can definitely be improved on in various ways.  But switching e.g. to Outlook downloading from GMail would be a retrograde step in these key areas.

In short, there are options, but no good options.

If I built a standalone desktop Windows GMail client that preserves access to the things that make GMail great - and if it worked well - would you use it?

Maybe this would be a good open-source project.

Sunday, June 3, 2012

SD cards unreadable on Windows 7 - Acronis True Image at root of problem

This was a very weird one, and the solution was to disable the Acronis Nonstop Backup Service.

Symptoms : Sony Vaio Z laptop, Windows 7 Ultimate, built-in SD card reader completely stopped recognising SD cards. Made no sense why, but I got around it by using the SD card reader in another machine.

Eventually got frustrated enough with the problem that I spent more time Google-ing, and lo-and-behold, Acronis True Image was the problem. I didn't have to uninstall it - just going in to Local Services and stopping and disabling the Acronis Nonstop Backup Service did the trick. The next SD card I inserted worked perfectly.

Note - in the post I linked to above, people talk about needing to reboot after disabling the Acronis Nonstop Backup Service. This indicates that they changed the startup type to "disabled" without stopping the currently-running copy of the service. i.e. make sure you STOP the service AND disable it from starting again in future. Or if you just disable it without stopping it, then you will need to reboot for the change to take effect.

Many thanks to the folks in the above-linked forum page for providing such a simple yet inobvious solution to such an annoying problem!

Wednesday, January 18, 2012

Magnetic Laundry Balls - glad I didn't buy

It sounded awesome - never use laundry powder (detergent) again - just place these reusable magnetic balls in the washing machine instead.

Claimed to alter the surface tension of the water, making it wash more effectively.

Hmmmm - y'know, sounds cool. I considered buying.

But I Googled for more info, 'coz it did seem, well, pretty extraordinary.

First big clue that something's sus : page after page of search results are almost entirely official websites or resellers.

Y'know, if I'd found such an awesome product and it worked for me, I'd've blogged about it, right? So where are the rave testimonials, not from random unknowns who might be company agents, but on blogs that have loads and laods of reviews - some positive, some negative - demonstrating their impartiality?

In contrast, there are numerous reports that cast these "magnetic laundry balls" in very bad light. You can find them yourself if you dig & dig through pages of Google search results. I'll just link to a few here to help improve their Google rank.

Magnetic laundry ball scam

Magnetic laundry aids and surface tension reduction - a critique

Magnetic laundry scams - not as detailed, but relevant

Buyer beware!

Wednesday, January 11, 2012

Google Apps GMail bug with multiple sign-in and POP3 access

The skinny : Trouble with POP3 or forwarding from one GMail or Google Apps account to another? Make sure you're signed out of all multiple-sign-ins in all browsers for the affected accounts, and don't multiple-sign-in again with the account your trying to get emails from.

The fat : read on...

GMail is a very refined product, but unfortunately, its rare bugs tend to be extremely poorly handled, causing wasted time chasing rabbits hither and thither.

Take my recent challenge of combining a Google Apps email account into my personal GMail account. Should be easy, right? And it did seem so.

I configured my personal GMail account to be able to send as my Google Apps email address - all worked fine.

And I configured the Google Apps email account to auto-forward to my personal email account and delete - and that was working fine too.

Then I discovered a cool new feature in GMail (and the wider world of Google) called "multiple sign-in", making it possible to be concurrently signed in to multiple accounts! Whoohoo! I tried it, but it wasn't as seamless an experience as I'd hoped for, so I decided to just stick with having everything pouring into my personal GMail account.

And the world got pretty quiet.

But hey - it was new year, so I figured everyone was away.

But I did get a report of an email sent to me, that definitely never arrived.

And then another report from a different sender.

Hmmm..........

I logged into my Google Apps email account, and there were 15 emails that had never been forwarded to my personal GMail account!!! How did that happen!!!??!!?!!

I looked at the Google Apps email account's settings, and it had reverted back to not automatically forwarding emails. I corrected that, telling it once again to forward all emails to my personal GMail account.

That's not the end of the story - it's just getting started - but on this matter my educated guess is that GMail automatically disabled the auto-forwarding when that Google Apps email account became enabled for concurrent multiple sign-in. (Whether they would do that generally, or whether they did it because the forward-to email address was associated with the other of the concurrently-signed-in accounts, I don't know. It would be easy enough to test - you could let us know in the comments if you determine either way.)

So now my problem was 15 emails sitting in the one account when I wanted them in the other. I could manually forward each one - not optimal. Or I could try to use POP3 import that I use successfully in GMail for other accounts.

Only, every time I try POP3 import from the Google Apps email account to my personal email account, GMail tells me that the username + password combination is not accepted. Very strange.

I dig around and manage to confirm that pop.gmail.com is the correct POP3 server name even for Google Apps email accounts. So no problem there.

I've definitely set the POP3 port to 995 and set to use encryption. No problem there.

I try some other combinations of settings anyway just in case, but the error messages made it clear they weren't the right answer.

I found the POP3 bulk downloader tool in my personal GMail account, and tried to use that to download the emails from the Google Apps email account. But it just sat there saying "Connecting" for many minutes, until I closed the window. tried again with equal non-success and gave up on that approach.

I found a note about using Captcha Unlock for your GMail account, so I tried to use it for the Google Apps account, just in case that would help, but crazily, it kept telling me that the password I'd enterted was incorrect, even though it was correct. Just in case, I even went ahead and changed the password, which involved entering the current password for verification, and the change password proceeded fine, but even the new password was rejected as incorrect by the Google Captcha Unlock page.

Bizarre! Some Google pages knew my password, but others rejected it. Go figure.

I even tried multiple browsers - same result.

So it was no thanks to useless error messages and processes that totally failed me that I finally found what seems to be the solution.

I document it here for the few travellers encountering the same problem.

The solution? I signed out of all Google accounts in all browsers, and then studiously avoided using the multiple-sign-in feature. That was all it took. When signed in only to my personal GMail account, I was able to easily add a POP3 download from my Google Apps email account, and it worked flawlessly.

No thanks Google for the time wastage, but hey, big thanks still for an in-nearly-all-other-respects AWESOME product. GMail fanboy is me.

Tuesday, December 13, 2011

Google Apps CNAME activation - here be more dragons

It used to be you could create a CNAME record to verify your ownership of a domain name, when setting up a Google Apps account.

To this day, current Google Apps documentation still says you can do it :

Troubleshooting CNAME Records :
There are two reasons to create a CNAME record for Google Apps: verifying domain ownership and customizing a URL.
Dig as you might through the user interface, you'll be offered a way to verify using TXT records, but nada for CNAME records.

Some enterprising folk around 18 months ago figured a workaround.  But even that no longer works.

It seems that Google has quietly - nay silently - axed support for CNAMEs for domain verification.

Whilst still mentioning in current documentation that you can.

So the nontrivial effort I've just gone through getting a CNAME record created by an extraordinarily-slow-to-respond IT department, was a waste.

But not just any kind of waste.  A waste for which Google itself is responsible.

It's one thing to remove a feature.  Sure - I have no problem with that.

After all, it's a free service anyway, so no complaints there.

But at least tell us.

The current documentation which says you can use a CNAME for domain verification, combined with the preponderence of articles throughout the web explaining how to do it, combined with the complete absence of acknowledgement from Google that they've removed the option, combined with (in the first few pages of search results) complete absence of any bloggers like me (that I managed to find) pointing out the omission, was a perfect recipe for getting me - and doubtless many others - to waste time arranging things that Google no longer supports.

Just tell us.

Y'know, a Google blog post or something with all the right keywords : "by the way, kids, we're axing the CNAME option for Google Apps domain name verification".

By not telling us, and especially by failing to properly update your documentation, you've wasted my time, and doubtless that of others.

Not happy.

Not impressed.

What is wrong with a little footnote in your other help pages (the ones that do now mention TXT records), that CNAME records used to be supported but no longer are?

I mean, if I'd come across one official page (as I did - linked above) on the Google site saying "CNAMEs are supported" and another one saying "CNAMEs used to be supported but no longer are", I'd figure the second supersedes the first.  But what's with this insistence on not even mentioning the removal of the CNAME option?

It makes no sense to me, and it is an exercise in providing a bad customer experience.  I'm generally a raving Google fan, but this is certainly one of those big speed bumps you really don't want to be giving even your fans.

Sure, it wouldn't hurt anywhere near so much if there wasn't an unresponsive IT department in the picture, making all DNS changes take hours of wasted time and days of elapsed time.  But at least if Google's information had been more open and accurate about the change of features, I could have ensured we weren't now in for a second round of delay.

The lesson?  When writing documentation, never assume you've correctly updated every place that needs updating.  (Hopefully you have updated everything, but don't assume it.)  Include a note as to the change, so that a) people used to the old system can be less confused; and b) if any bits of doco slipped through the cracks, people will be able to figure out (with the aid of the change note) what information is current vs outdated.

Thus saith the blogger.

Wednesday, November 2, 2011

Best open-source .NET text file differencing library

After a fairly thorough search for open-source .NET libraries for text file (e.g. source code) differencing, I've concluded that there are only two serious contenders :
Both look like they would meet my needs.

DiffPlex is C# only, whereas google-diff-match-patch contains equivalent implementations in Java, Javascript, C++, Objective-C, and more, so if you like the idea of learning an API once and using it e.g. in iOS projects or in web browsers (Javascript) directly, google-diff-match-patch is for you.

The DiffPlex API seems a little nicer if all you want is a simple diff.

google-diff-match-patch supports - as its name suggests - producing and processing patch files - so if you need the extra features, google-diff-match-patch wins again.

DiffPlex contains what appears to be a very nice & simple API to drive diff viewers. But the google-diff-match-patch does have some similar thing, even if the API is not as nice.

Both support a line-by-line mode.

google-diff-match-patch has a nice feature where it can simplify diffs down from "perfect" diffs to more semantically-meaningful diffs. It calls this a "cleanup" operation, and depending on your needs, that could be a deciding feature. My immediate needs are so simple that even cleanup isn't relevant, but if its relevant for you, google-diff-match-patch might be the go (unless I missed a similar feature in DiffPlex, but I'm pretty sure I didn't miss that feature).

In short, it seems both are suitable. DiffPlex has a nicer API for the world of .NET (e.g. C#-style naming conventions used throughout) whilst google-diff-match-patch has more features. For my needs - an open-source, native .NET differencing library - both libraries look very suitable and DiffPlex looks a little easier to learn and use (not that either are hard). But I think in the end I'm going to start with google-diff-match-patch on account of the multiple platforms it supports with a uniform API, and the cleanup facility which whilst not relevant immediately is perfect for something I'm planning to do in the future...

If you know of any other serious contenders, let me know, but I'm only interested in native .NET open-source libraries that can be downloaded and used without modification (so that excludes repurposing code in open-source diff viewers). And I did review a few options on Code Project but nothing there compelled me to believe their performance would be any better than the two projects I shortlisted, whereas I expect that these two shortlisted projects will have much better ongoing support.

Posted largely for my own future reference, but also to help other wandering developers. :o)

Tuesday, May 24, 2011

aspnet_merge unresolved assembly reference not alllowed in ASP.NET 4

Hopefully this'll save someone else some time.

I have a moderately large VB.NET ASP.NET website, originally created in ASP.NET 2 and recently upgraded to ASP.NET 4.

I recently built my own packaging scripts that use aspnet_compiler and aspnet_merge.

I was careful to use the .NET Framework v4 version of aspnet_compiler.

When running aspnet_merge on the precompiled website, I got a very strange error :
Utility to merge precompiled ASP.NET assemblies. Version 3.5.30729.
Copyright (c) Microsoft Corporation 2007. All rights reserved.

aspnet_merge: error occurred: An error occurred when merging assemblies: Unresolved assembly reference not allowed: Microsoft.VisualBasic.
The problem was pretty obvious, but stumped me for probably an hour or so : I was using the wrong version of aspnet_merge.exe.

This page helped me find the correct version. On my computer, that's in :

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\aspnet_merge.exe

HTH :o)