The Elegant Chaos Blog

It’s hard to make good products if you’re working in a vacuum. That’s why one of the things that we like most is hearing from people who’ve used our software, even if the message is “it’s broken”!

So if you send us a good suggestion, or a report of a genuine bug that we didn’t know about, there’s a good chance that we’ll send you a free license in return.

No promises mind you - if you send fifteen reports, each about an individual spelling error in the manual, then you probably won’t get fifteen licenses back :)

more...

November 03, 2011

So, Apple have announced the deadline for developers to have their Mac App store apps work with sandboxing, and suddenly it’s March 2012, and not the November 2011 date that was widely understood amongst the developer community.

I guess I should be grateful, since the current sandboxing is distinctly half-baked as a plan. The only problem is, working on the assumption that we had to have sandboxing implemented by November, I’ve now got a relatively major update to Neu which uses it, and is waiting on just one sandboxing bug to be sorted out. Having removed the November deadline from developers, Apple have also conveniently removed the urgent need to fix the bug that’s holding me up.

So now I have to decide whether to hold back the Neu update - potentially for four months - whilst I wait for the bug fix (not a particularly attractive option), or to do more work turning sandboxing off again in Neu and splitting out the sandboxing-inspired changes from those that can ship regardless.

Sigh.

As I’ve said before, I’m broadly in favour of sandboxing, or at least the the motivation behind it. Anything we can do to protect users from malicious software is fine by me, as long as it doesn’t detract from what users actually want to do.

The way Apple have gone about implementing it though, has left a lot to be desired, and smacks of a certain hubris. They told us, rather than asked us, what we needed. Perhaps more worryingly, they got the answer quite substantially wrong. It’s good that they’ve seen sense and delayed it, but by announcing a new date they are still holding up a hostage to fortune, since we don’t have a fully working system yet.

Personally I think that they made a fundamental error in even considering using a metaphorical stick to force developers to adopt it. It would have been far better to use a carrot. If the Mac App store showed a subtle badge on sandboxed apps, with supporting material explaining that apps with the badge had “enhanced security” or some such phrase, it would create a positive incentive for developers which ought to translate directly into increased sales.

Using an application with “enhanced security” is going to be attractive to most users, regardless of exactly how much they understand about what the “enhancement” actually represents - but it leaves the choice in the hands of the user.

Whilst I’m not normally a great fan of marketing bullshit, or of overloading users with more information than they need, I think that this is a situation where presenting a simplified (but accurate) picture of the benefits of sandboxed apps is far preferable to forcing all apps to be sandboxed.

more...

October 28, 2011

… and another one!

Neu 1.2b3 is available for the brave of heart!

This one has a rough implementation of the new UI for managing your templates.

Rather than a separate templates window, you can now right-click on a template in the main UI, and do various things to it directly (rename, delete, reveal, open), or you can choose “Edit Template…” to open an editing pane. This pain allows you to set some per-template preferences, including a keyboard shortcut.

Known Issues

In grid view, the context menu commands on templates currently operate on the selected template, which might not be the one that you clicked on! So be careful with the delete command!

Per-template keyboard shortcuts don’t work yet.

The “Rename Template…” command doesn’t work yet.

Due to a bug in sandboxing, when overwriting an existing document you will be asked “Do you want to replace?” but if you say OK the creation will fail. The workaround for now is simply to give the new document a different name. Neu will always default to a unique name for the file, so this shouldn’t affect many people.

more...

October 27, 2011

Another day, another beta

Neu 1.2b2 fixes some issues with 1.2b1, and adds some additional features.

  • Added “Keep Window Centered” option.
  • Fixed keyboard shortcut preferences.
  • Neu now spots if the templates directory is deleted whilst it is running - it will recreate the directory and fill it with the default templates.
  • Improved window and grid appearance by adding some subtle gradients.
  • Grid items now have tooltips with full name of the template.
  • Added userName and userFullName to substitution variables. Added some more text filters to convert MixedCaps text - useful for coding templates.
  • Added an example template for an objective-c header file, which illustrates how you can modify the name of the new file to format it to suit your coding conventions.

Known Issues

This version has a few issues that I know about.

Due to a bug in sandboxing, when overwriting an existing document you will be asked “Do you want to replace?” but if you say OK the creation will fail. The workaround for now is simply to give the new document a different name. Neu will always default to a unique name for the file, so this shouldn’t affect many people.

Another issue is that user guide doesn’t show properly at the moment. This is actually another Sandboxing issue, but it’s probably a good thing as the user guide hasn’t been updated to reflect the changes in Neu 1.2!

more...

October 26, 2011

Hot off the presses is a early beta of Neu 1.2.

Warning! This is an early version, and there are some known problems, so please don’t use it unless you are prepared for a bumpy ride.

The major changes in this version revolve around some upcoming security changes that Apple are making.

From November onwards, applications in the Mac App store must use something called Sandboxing. This is a system which asks applications to deliberately limit what they can do - for example which areas of the disk they can write to - to the smallest set of things that they need to do. The idea behind this is that if something nasty manages to hijack an application, it will be able to do less damage since it won’t have complete access to the machine.

In theory this is a nice system, but in practise it imposes some limits on applications which can cause applications like Neu some difficulty. In particular, it means that in some cases Neu can’t write new files to a directory unless it shows you a “Save As” dialog.

For this reason the Neu user interface has changed a bit.

Using Drag & Drop

The biggest change is that you can now use drag & drop to drag items directly out of the templates window and onto the Finder.

For people who like using the mouse/trackpad, I’d suggest that this is probably now the best way to use Neu. The reason for this is that when you drag items directly into the Finder, there won’t be any Sandboxing issues. If you set the preferences accordingly, you won’t have to go via a “Save As” dialog.

You can also use drag & drop to drag things into the Neu templates window - when you do this it will take a copy of the dragged items and add them to its templates list.

Using Menus & Keyboard

The old ways of working with Neu via menus are still there. You can still set a keyboard shortcut to bring the template list up, and you should be able to use the keyboard to select a template and create a document.

The only change is that sometimes you don’t get the choice to skip the “Save As” dialog. If you look in the preferences you’ll see that the preference relating saving has been renamed to reflect this difference. It now says “Hide when possible” to reflect the fact that sometimes it isn’t possible!

Using Services

When you launch Neu via the services, the Sandboxing system doesn’t need to force you to use a “Save As” dialog, so again this way of working should remain unchanged.

Other Changes

Neu now requires the 64-bit version of Mac OS X 10.6. This shouldn’t affect many people, as most of the machines that are capable of running 10.6 are 64-bit already. However, there are a few rare machines that run 10.6 but only in 32-bit mode. I’m afraid that Neu 1.2 won’t work on these machines. Neu 1.1.1 will continue to work fine though.

The template list now refreshes itself automatically if you change the contents of the underlying templates folder, so I’ve removed the Re-scan menu item.

The templates window UI now allows switching between list and grid view directly from within the window. It remembers the way you left it last time, so I’ve removed the corresponding view preference. The template window also has a “Open after creation” checkbox on it now, which you can use to change whether or not you want to open the resulting document after it is created.

I’ve re-organised some of the other preferences - a couple of more technical ones are now on a panel called “Advanced”, and some of the other Appearance and Behaviour options have been merged back into a General panel.

The small status menu icon is now see through like other icons!

If you only want to use Neu with a single template, we simplify the menus, and we don’t bother showing the “choose template” dialog. This streamlines things.

Still To Come

Some more features that I’m hoping to get into 1.2:

  • drag & drop to rearrange the order of template items
  • individual per-template preferences and keyboard shortcuts
  • more text substitutions
  • auto-centring the templates window

Known Issues

This version has a few issues that I know about.

Due to a bug in sandboxing, when overwriting an existing document you will be asked “Do you want to replace?” but if you say OK the creation will fail. The workaround for now is simply to give the new document a different name. Neu will always default to a unique name for the file, so this shouldn’t affect many people.

Another issue is that user guide doesn’t show properly at the moment. This is actually another Sandboxing issue, but it’s probably a good thing as the user guide hasn’t been updated to reflect the changes in Neu 1.2!

more...