Blog | |
Releases |
Scribe 3.2 | |
---|---|
Date: 11/10/2023 Tags: scribe | So I've released Scribe v3.2, not so much because I finished testing all the things, but because I need some usability feedback. And it's been too long since a release. Somewhat disappointingly the size of the Linux build seems to have grown alarmingly without any good reason: Yeah that's not a typo. And I have looked into it, all the basics like "is the binary built with -Os?" and "is the binary striped?" etc. And nothing obvious stands out. I would love a second opinion on this... just to sanity check the Linux build and see if I'm doing anything dumb? |
(1) Comment | Add Comment | |
Website CSS / Scribe | |
---|---|
Date: 13/4/2023 Tags: website scribe | I've removed the fixed point sizes in this sites CSS so that the font size is free to adapt to the user's settings and screen DPI. Hopefully that'll improve the readability somewhat. I'm slowly working my way through a large backlog of Scribe UI testing. So that when I release v3.2 I'm reasonably sure that things aren't horribly broken. Because at this point, I'm finding that lots of things aren't working right. But at least now there is some visibility into my progress. |
(1) Comment | Add Comment | |
Scribe native export | |
---|---|
Date: 8/3/2023 Tags: scribe | There has been a long running branch of Lgi and Scribe to remove the old synchronous way of doing dialogs as part of the work to re-enable Haiku support. And I decided the cost of keeping the branches separate was too high and merged all those changes into the main dev branch of those projects a few weeks back. This means that a bunch of old functionality that I haven't touched in a long time is now broken. For instance the Scribe mail3 export function. So I spent the last few days fully re-writing that to use the modern patterns and also optimize things a bit. Which has all been reasonably successful. It even has a nice new completion dialog: In that example I'd run it earlier and the replication had nothing to do. It's designed so you can use it to backup your folders and it's reasonably intelligent about replication of items. In terms of when there'll be a new release. There are a bunch more dark corners of Scribe that I never test, and they all need to be looked at. I'll keep working me way through them. |
(1) Comment | Add Comment | |
Phabricator fork and the Scribe code base. | |||||||||
---|---|---|---|---|---|---|---|---|---|
Date: 3/5/2022 Tags: scribe opensource | No one cares, but the announcement on 1st April wasn't a joke. Scribe is actually going open source. It's just taken way longer than I expected to create a new mercurial repository and have the hosting work correctly. Part of the issue is that my Phabricator install was misbehaving and it took a while to fix. I've had to create a fork of Phabricator and fix the passing of arguments to hg's web-server. I also had to clear out all the proprietary stuff in the Scribe code base, do some cleanup and get it all building again. Mostly that boils down to the OAUTH2 client secrets (good bye Gmail support) and the InScribe key checking code. That work is mostly complete now so I can publish the code base. It lives here: https://phab.mallen.id.au/source/scribeopensrc/ I'll be adding some more info on how to get it to build and updating the Scribe home page over the next few weeks. But it's slow going cause I have very little energy at the moment. I'm on day 14 since I got my first covid symptoms. Which have all cleared up bar the tiredness. Fortunately no one else in my family got it. Oh yeah, I've moved the versioning for the open source tree to "v3.x.x" just to make it clear where the new builds come from. The v2.4.22 changes will be rolled into a v3.0.0 build soon. As I won't make that build off the proprietary code base. Well ok, but how do you build it? hg clone https://phab.mallen.id.au/source/scribeopensrc/ code/scribe/trunk python code\scribe\trunk\build.py Should get you most of the way there. That currently just supports Windows but I will extend that support to other OS's as soon as I can. Requirements look like:
| ||||||||
(2) Comments | Add Comment | |||||||||
Scribe... | |
---|---|
Date: 1/4/2022 Tags: scribe | ...is going open source. There will no free / paid versions. Just the full build available for free. Donate if you like. |
(1) Comment | Add Comment | |
IMAP Gmail support in Scribe | |
---|---|
Date: 15/8/2021 Tags: Scribe Google | This is an update on the support for Gmail IMAP connections. I'm sure that if you have tried to connect to Gmail with Scribe you get a warning about the app being "unverified". You can click into the advanced section and bypass that warning to get access. But as of right now that is limited to 100 users (of which 81 have taken advantage of bypassing the warning). So very soon that will not be a valid path to gaining access to Gmail from within Scribe. So this verification process? What's involved? Well you have to tick certain boxes. Things like having a homepage that meets certain criteria, having a privacy policy that states what you'll do with the user's data. And also using certain "scopes" that Google deem responsible. And that's where the trouble starts. Because Google (more specifically the app verification team) on one hand wants the apps to use fine grained scopes like "https://www.googleapis.com/auth/gmail.modify" but if you actually try and implement that you find that the OAUTH2 process fails with a scope error. If you then revert to using the more broad scope of "https://mail.google.com/" you can create a connection but the app verification team won't accept the app on the basis of the scope being too broad. They then contend that you should re-implement your client using the native Gmail restful API. The native API? Really... just implement a whole backend to support one company's server? The whole point of IMAP and SMTP is that the client supports ONE protocol used by everyone. This would be a lot of work to support just one service. And even then Google states that you SHOULDN'T do that here: https://developers.google.com/gmail/api/guides. What is one to do? Well right now. Nothing. Nothing can be done, Google have painted all the email client developers into a corner where there is no way forward. Some mutually exclusive options that don't work for us. What should they do? Probably enable the gmail.modify scope for IMAP and then allow apps to use than and be accepted for verification. Is that going to happen? Probably not. For reasons unknown. Google is now far to large and political to get things like that right. So at some point Gmail support will just cease to work anymore and there is nothing I can do about it. I'm considering just yanking it out completely. The office 365 support has also been borked for a long time for extremely similar reasons... "use our proprietary API not this well known standard". And beyond Google and Microsoft there aren't any other OAUTH2 services I tried to support. (Am I missing something?) |
(1) Comment | Add Comment | |
Scribe Theming Guide | |
---|---|
Date: 28/7/2020 Tags: scribe | |
(0) Comments | Add Comment | |
Scribe Theming | |
---|---|
Date: 9/7/2020 Tags: scribe | On the suggestion of a user, I spent some time adding more CSS support to Scribe. To support background images mainly. Check out what you can do now: It's not complete by any stretch but it's a start. |
(2) Comments | Add Comment | |
Scribe groupware functionality is back! | |
---|---|
Date: 20/11/2019 Tags: scribe | So many years ago Scribe had some ganky groupware functionality that never really went anywhere. These days things are done a little differently. There is a growing number of webdav based platforms that enable shared contacts and calendars. So in light of that I've been adding webdav support into Scribe. Partly because I'm sick of having different sets of calendars and contacts on different computers and because I think the user base would find it useful. In the next release you'll be able to go into File -> Manage Mail Stores, click on Create Mail Store -> Webdav Remote Folders and configure URLs, username and password. This will then render as a folder in the main window with "Contacts" and "Calendar" sub-folders. Containing vCards and vCal objects that you can edit just like native Scribe objects. They also appear in all the same places in the UI as native objects, like the mail window address browser bar and the calendar view (add the folder to the source list if needed). At the moment there is no caching of objects so they load each time over the network. But in the future I'll add caching like the IMAP implementation for offline operation. And potentially other types of objects can be stored in webdav folders, like filters, groups, mail etc. But we'll cross that bridge later. Walk before run yada yada. |
(0) Comments | Add Comment | |
Scribe v2.3 Stable | |
---|---|
Date: 19/6/2019 Tags: scribe | With the release of Scribe v2.3.16 I've stopped hearing about problems so I'm going to call it stable and move on. This will most likely be the last 32bit Mac Carbon release, from here on in the Mac build will migrate to 64bit GTK3. So less native than before but will still be stable and useful. If I do manage to resolve the issues I'm having with Cocoa I might look into running on that later if I get time. However because no one is really using the Mac build it's likely that I'll just stop making releases until someone wants a build. Apple are making it harder and harder to release on Mac. It seems they are going to require notarization before being allowed to run on 10.14.6 and higher. It's unlikely that you'll be able to do with a free Apple Dev account. And I'm not about to start paying them anything. So maybe the Mac port might just die (or at least have very infrequent updates - we'll see). In general I want to stop making 32bit releases entirely. I've already been sidelining 32bit Windows builds, only doing them on request. But maybe with Scribe v2.4 I'll finally just go 64bit only. |
(0) Comments | Add Comment | |
In the context of a mail window, | |
---|---|
Date: 21/6/2018 Tags: scribe ui |
|
(1) Comment | Add Comment | |
Ho ho ho | |
---|---|
Date: 21/12/2016 Tags: scribe html-editor | The merry little elves at Memecode have been working away at all hours of the night to bring you a working Rich Text (HTML) editor in Scribe to put in your Christmas stockings. With the release of Scribe v2.1.33 there is enough functionality to write email with styles. The reply/forwarding side of things isn't as good as the composition of new email. For a variety of reasons. And the control is still definitely in "Alpha" (i.e. incomplete functionality, still contains bugs, possibly show stopping ones). It would be a excellent idea to reset the reply/forward formats to their default values, because I've updated the default template for HTML reply/forward. If you have a custom template for plain text, save that before you reset the templates in File -> Options -> General -> Reply / Fwd templates -> Reset. Also go into your signature settings and configure a HTML sig for each account with an identity. I'll set some expectations first... with the pros:
To switch between plain text and HTML quickly use Edit -> Use HTML Editor. Do not use the HTML control for production emails. If it matters, use the plain text compose control. Otherwise I'd like to hear how it goes. |
(0) Comments | Add Comment | |
Rich Text / HTML support in Scribe | |
---|---|
Date: 5/12/2016 Tags: scribe | There has been a lot of people asking about the Rich Text / HTML editing support in Scribe and so while not fixing crash bugs I'm actively developing a new control to support styled text editing. So that those that are interested can track the progress I'm publishing my internal spreadsheet of bugs and features: Broadly speaking my hope is to have a very basic control working by the end of the year. Good enough that you can write and reply to email with, even if there isn't a lot of support for styling. Maybe some basic stuff like bold, colours and font size. |
(2) Comments | Add Comment | |
Scribe: Installer script hooks | |
---|---|
Date: 14/7/2016 Tags: scribe scripting | So you know those red bars that appear in Scribe when it wants to install something? I've just added the spell check dictionaries to that so you have to confirm there install. This allows you to make sure you have a working internet connection before download a dictionary. But I thought it would be cool to add some scripting hooks for the install bar and the actual install itself. So take an example script like this:
function BeforeInstall(App, Msg, Actions) { Actions.Add("Scare"); Msg = Msg + " (BeforeInstall was here)"; return true; } function Install(App, Action) { if (Action == "Scare") { MsgBox(App, "Boo!"); return false; } return true; } function Main(App) { if (!AddCallback("OnBeforeInstallBar", "BeforeInstall")) MsgBox(App, "Couldn't add BeforeInstall"); if (!AddCallback("OnInstallComponent", "Install")) MsgBox(App, "Couldn't add Install"); return 1; }What it does is install 2 callbacks, one for the missing capability bar, and one for the install itself. It messes with the message and buttons available to the install bar. Then adds a new "action" that is caught later in the "Install" function to put up a dialog box. Might be useful for managed installs of Scribe. |
(1) Comment | Add Comment | |
Merry Christmas | |
---|---|
Date: 24/12/2015 Tags: scribe linux | I think for the first time ever? There is a simultaneous release of Scribe on 3 different platforms: Windows, Mac AND Linux. The new v2.1.3 build is tri-platform. The Linux (x64) build is a GTK2 app and runs ok on Ubuntu and Arch. Well that's all I've tested at this point. It also runs on a Raspberry Pi 2 although it's a little slow. I know because I got bored and tried building it while working on some MC2 stuff. Links to the i.Scribe builds: |
(0) Comments | Add Comment | |
Portable OpenSSL for Linux | |
---|---|
Date: 21/12/2015 Tags: shared-object linux openssl scribe | A year ago I worked out how to make a portable build of OpenSSL for Mac. And now with the imminent release of the Linux build of Scribe I need to do the same with the Linux build of OpenSSL. After downloading and unpacking OpenSSL I configured it with: ./config shared -DPURIFYThe reason for adding the -DPURIFY #define is to suppress valgrind errors related to uninitialized memory usage. Once that is built I had a look at the shared object paths with ldd: matthew@ubuntu:~/Downloads/openssl$ ldd ./libssl.so.1.0.0
linux-vdso.so.1 => (0x00007ffc0e197000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f5c5ab6c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5c5a7a7000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5c5a5a3000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5c5b1c1000)
So it's not portable yet. I initially tried using the chrpath command but it can only modify existing RPATH records. My binary doesn't have any RPATH yet. So that didn't work. The next thing I tried was the patchelf command from here:
http://nixos.org/releases/patchelf/patchelf-0.8/After building and installing I issued this command in the OpenSSL folder: patchelf --set-rpath '$ORIGIN' ./libssl.so.1.0.0Now to check if libssl pulls in the local libcrypto: matthew@ubuntu:~/Downloads/openssl$ ldd ./libssl.so.1.0.0
linux-vdso.so.1 => (0x00007ffcdce86000)
libcrypto.so.1.0.0 => /home/matthew/Code/Scribe/trunk/./libcrypto.so.1.0.0 (0x00007f39b99d8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f39b9613000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f39b940f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f39ba0a5000)
Yes! Now this build can be installed in the same folder as the Scribe binary and Scribe will use it without interfering with the system OpenSSL which is often out of date, or not built with -DPURIFY or missing.
|
(0) Comments | Add Comment | |
Scribe 2.1 | |
---|---|
Date: 27/10/2015 Tags: scribe | Well it's been most of a year since I said anything about Scribe v2.1, and the list of changes hasn't moved forward much in that time. There are a few reasons for the slow progress, but it mostly boils down to:
Anyway there is some good news. The integration of Aspell is complete. Scribe v2.1 will come pre-loaded with a spell check and it will download and install dictionaries on the fly with no user intervention. Well you'll need an internet connection for that part, but once installed it'll work offline. Secondly I'm in the middle of doing a fairly thorough rewrite of the Help files. Which includes fixing some things in the HTML rendering. Reviewing all the parts of the application that have "Help" buttons (or should have "Help" buttons) and making sure they work correctly. Updating all the pages with current information. It's actually a big slab of work. Lots of cross referencing things and checking the UI and source code so I accurately describe the functionality. I'm not much of a tech writer so it's tedious for me. Anyway there is now a beta release online for v2.1. I look forward to getting feedback on what works and what doesn't. |
(9) Comments | Add Comment | |
Supporting Work | |
---|---|
Date: 1/6/2015 Tags: scribe | 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 BugIf 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/UninstallerEveryone 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 HelpAlso 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 SupportAn 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. |
(3) Comments | Add Comment | |
Scribe Gmail Support Update | |
---|---|
Date: 4/5/2015 Tags: scribe oauth2 | 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. |
(0) Comments | Add Comment | |
Scribe Gmail Support | |
---|---|
Date: 24/4/2015 Tags: scribe | 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:
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. |
(0) Comments | Add Comment | |
Scribe v2.1 Update | |
---|---|
Date: 21/4/2015 Tags: scribe | 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".
|
(0) Comments | Add Comment | |
The Current State of Scribe | |
---|---|
Date: 23/2/2015 Tags: scribe | 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:
|
(0) Comments | Add Comment | |
Scribe v2.1 | |
---|---|
Date: 27/1/2015 Tags: scribe | 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:
I'm looking to get the first build out sometime in Feburary. |
(0) Comments | Add Comment | |
Scribe v2.00 Final | |
---|---|
Date: 2/12/2013 Tags: scribe releases | 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. |
(0) Comments | Add Comment | |
64bit Adventures | |
---|---|
Date: 11/6/2011 Tags: coding scribe | I've been playing around with 64bit builds of Scribe on
windows. And it's been er... interesting to say the least.
|
(2) Comments | Add Comment | |