Blog
Supporting Work
1/6/2015
It seems that a few things have gradually become a problem. Firstly customers with accents in their name are getting bad key's generated off the InScribe purchase page that they land on after buying the software. This is caused by less than stella coding on my part. But something that I'm trying to fix. The issue is that the data coming from PayPal is URL encoded and is in an unknown Charset. I've implemented some PHP in the purchase page to find the charset in the headers and do all the conversion for the $name. However in trying to test it I ran into a fairly annoying PayPal sand box bug.

The PayPal Sand Box Bug

If you go to create a new test user with an accent in their name you'll get a field validation error along the lines of "Only use letters". Which makes it hard to test purchase scripts with non-latin characters in the buyers name. I did however find a way around this, and that is to use the bulk upload tool to create the users. You can download a .tsv template direct from the PayPal sand box site on the "Create New User" page. From that fill out the details, and supply whatever name you want. Because the file is saved in unicode it bypasses the broken field validation stuff. Then upload that and you got a test user with accents. (Haven't tried Asian characters yet, but I will at some point). My new problem is that even after doing that and putting a sandbox button on my site the purchase script gets an empty response from PayPal when it checks the transaction. Fun times.

The Installer/Uninstaller

Everyone knows that the official way to uninstall a Windows application is to use the Control Panel uninstall page. It had completely escaped my attention until now that Scribe provides no such uninstaller entry in that list (Thank you dear user for reminding me). So I've gone and added the right registry entries to list the uninstaller, with help / support links, and the current version. The version is read straight from the .exe during installer compile time so it's always correct. Also the installer has been refactored to have a Desktop/Portable switch baked right in. Huzzah.

The Help

Also the help files shipping with Scribe have drifted from reality. So I'm in the process of reading through everything and updated all the parts that aren't correct anymore. Some areas might need fleshing out as well.

OAUTH2 Support

An initial draft implementation of OAUTH2 support for Gmail IMAP was shipped in the most recent build of Scribe. I'm quite keen to get feedback about it. So if you have tried to get it working and either succeeded or failed. Let me know.

Tags: scribe | (3) Comments | Add Comment

Scribe Gmail Support Update
4/5/2015
Google has switched off so called "insecure" authentication methods, including "PLAIN", which Scribe relied on.

Today I got that draft implementation working enough to be able to login to the Gmail IMAP server using OAuth2. It does take you via a detour into your default browser but in the end it works. It's also quite the hack job at this point so I want to clean up the code and make the error handling at least very verbose. I will be making a release in the next few days off the stable branch that includes functional OAuth2 support.

It has been argued that Google's motivation in doing this is to force people onto the web and out of installed desktop / mobile clients, for the purpose of making Gmail's web UI more palatable. I remain unconvinced about this argument in that there seems to be another reason that makes more sense to me. OAuth2 doesn't require the client to store the plain text password. Thus reducing the possible points of failure for security. Most installed clients are bad at storing persistent account credentials in a fully secure fashion. So by removing that attack vector it could be argued that Google is doing App authors a favour.

Maybe.

I still find OAuth2 quite needlessly complicated. And it's very dependent on the client having lots of pre-configured knowledge about the server it's authenticating with. I mean for every service that Scribe will support OAuth2 authentication I have to have a unique ClientID and ClientSecret, as well as the token URI and access URI... none of which are "discoverable" on the fly, but hard coded in. So you can't connect Scribe to some arbitrary new service that supports OAuth2. I have to manually create support each new service. I don't yet understand how that is a reasonable state of affairs.

Tags: scribe oauth2 | (0) Comments | Add Comment

Scribe Gmail Support
24/4/2015
So Google have changed the authentication support for Gmail again, breaking the ability for Scribe to log in to any of the Gmail related services. Which means I'm going to have to put aside the v2.1 work temporarily to work on getting one of the support authentication methods working in Scribe.

The options are: I'll try and keep this post updated with progress on that front.

The list of all official SASL mechanisms is here. PLAIN-CLIENTTOKEN is not mentioned at all. I wonder what implements that? Also of note, both XOAUTH and XOAUTH2 are marked "OBSOLETE". Nice one Google, supporting only obsolete, undocumented or non-functional authentication methods.

Tags: scribe | (0) Comments | Add Comment

Scribe v2.1 Update
21/4/2015
It may look like nothing is happening but really, there is. I have been toiling away on features and bug fixes in the v2.1 "trunk". Also of note, I've removed all the ANSI api support in the Windows implementation of LGI which means that any hope of running it on Windows 9x is gone for good. XP has been the official minimum for a while now, and now it's cemented in the code as well.

Tags: scribe | (0) Comments | Add Comment

The Current State of Scribe
23/2/2015
Maybe it's time to just bundle OpenSSL in Scribe? I'm thinking of statically linking it so that it's always available and there will never be any trouble with missing or mis-matched libraries. The downside is the download size will blow out a bit. Over 2 MiB for the Windows build, maybe even 3. Recently I've had a very bad time with people have all sorts of weird crashes, odd behaviour and connection issues. And it seems that these things are next to impossible to reproduce. Maybe it's the target market changing on me as the profile of the client gets higher.

One of those odd behaviours is Scribe not saving it's settings between sessions. I suspect this has to do with the install folder being write only, but the software thinking it's in portable mode (i.e. store settings in the install folder). I'd love for someone to be able to reproduce that and tell me how.

So I'm going to look into ways of avoiding pitfalls. I'm starting to think that making automatic crash reporting default to "on" is for the best. I'm simply not getting enough data to respond to problems.

The HTML editing functionality is coming along nicely. I managed to send quite a few HTML messages over the last few weeks. But it's still pretty flakey. And also there are some thorny issues to sort out. However it's a lot better than even a month ago so there is hope.

Also I finally fixed an old crash in the GWindow destructor on the Linux/GTK2 build. The other main sticking point there is the popup handling under the GTK2 platform isn't great. But I didn't see the point in tackling that when the software was still crashing all the time.

Edit: So I think I've worked out the procedure for the not being able to save your settings bug: Yeah I'm going to have to make sure that Scribe is aware that during startup that it may have ADMIN permissions, and not to assume it will be able to write to anything in the Program Files folder tree. However it should totally take advantage of having ADMIN rights to setup the registry for being the default client / registered client.

Tags: scribe | (0) Comments | Add Comment

Scribe v2.1
27/1/2015
So the v2.0 builds are basically stable as far as I can tell. Although there is some issues with some people connecting to SSL servers and one report of a crash at startup on MacOSX 10.10 (which I'm investigating). In the light of that I'm shifting my attention to the features in the v2.1 branch. I want to go through the things I'm aiming to get into that release: If you think I'm missing something really obvious that chime in either on email or in the comments on this post.

I'm looking to get the first build out sometime in Feburary.

Tags: scribe | (0) Comments | Add Comment

Scripting Debugger
16/12/2014


And extern library function support!

Tags: scribe scripting | (1) Comment | Add Comment

Scribe v2.00 Final
2/12/2013
Unless someone finds some major problem with the Windows v2.00 Beta46 release I'm going to be calling that the final official release of v2.00 in 2 weeks. It's not perfect but most of the issues are minor or only happen very rarely. I'll be trying to get the Mac port up to scratch in the mean time. There are a few known issues and that I need to sort out. (The filter bar is a mess, the edit and checkbox controls should REALLY be native). Then I'll post that hopefully before Christmas.

What that'll mean for customers of InScribe is that your v1.xx key that has been working for all the v2.00 beta's is not going to work for the v2.00 final. For existing customers the upgrade pricing will be $5 USD (50% off the normal price).

Once the v2.00 final is out and the upgrade process is nice and smooth I'll be turning my attention towards the security side of email. I've been watching the news lately and to be honest the revelations coming from Snowden have been eye opening. I think it's time to make privacy the main point, and as the author of an email client I feel it's my responsibility to make that happen. So the stable v2.00 branch will increasingly be focused on seamless encryption of email, and the surrounding RFC standards.

As a side note I'm not super happy about the performance of the Sqlite database layer that makes up the mail3 folder format. So I'm actively playing with options in that space. The client can easily support plug and play storage systems via a simple API (currently implementations are mail2, mail3 and IMAP). So adding more is feasible. Maybe some experimental implementations will appear in the v2.xx releases.

Tags: scribe releases | (0) Comments | Add Comment

64bit Adventures
11/6/2011
I've been playing around with 64bit builds of Scribe on windows. And it's been er... interesting to say the least. But at the end of the day, there it is... 64bit Scribe:


Tags: coding scribe | (2) Comments | Add Comment