Based on Erica Sadun’s version in Swift http://ericasadun.com/2015/11/12/more-bad-things-synchronous-nsurlsessions/)
I had this post from 2009 on another blog and had to put it here, it perfectly summarises how to determine code quality.
This review is written from the point of view of someone who is an experienced blogger, who just bought the app, and started clicking around trying to discover all the features.
First WTF Moment
Blogo’s launch experience was good. The first thing I tried was the app’s main navigation buttons – on the third one I got a bunch of popup dialogs! I expected to navigate to a part of the app, not be warned that I might be doing something wrong.
And why is it possible to preview (and be required to have something published live on the web) when I clearly have a blank page and haven’t entered any content? Why do I have to worry (or even panic) that some wrong content will go live on my website?
Confusing Navigation UI
A few faux pas, in my opinion, with the navigation:
- this navigation layout suggests the user will be able to swap through different views, not for the main window to change shape; expectations have been set by the Twitter app and the TONS of apps that copied this UI
- don’t ask for money at such a high level, it doesn’t set a good tone
Overall Good UI, Few Weird Bits
Ok this app is growing on me, the UI overall is quite slick and – aside from a few gotchas – it looks like a lot of care has gone into crafting it.
- controls to switch between h1/h2/h3 … cool
- disclosing word count, cool
- handling of tags, categories, search .. cool
- the […] button at the bottom left is very strange, it opens a File Open dialog, big WTF moment, how will local files be related with my blog post?
Saving a post prompts you to Link/Register with Evernote. I personally hate Evernote, it epitomises badly designed software: always begging for money, feature bloat, crowded UI. Is this company owned by Evernote?
System Notifications for Save
Very Nice touch. This is an underused feature in OS X.
The options for customising images in your blog post are very slick, but I can’t understand why they don’t let you drag/drop the image on the image well to upload – that feels broken.
You can hover over existing images in your post, very slick, and there are nice edit options, although nothing for resizing.
A parallax effect is applied to the post’s images while scrolling down the page.
Ok This App’s UI is Really Nice
I quite like the Headings customiser control, this is a good idea I haven’t seen anywhere else.
The main text area seems to be a web view, but with some custom context menu options you don’t find in Safari.
The filter menu is amazing.
It’s quite annoying, especially as it follows you around when you’re selecting text. I disabled it in preferences.
Buttons: Save/Update (and Publish)
So I added some new text and the Save button is still greyed out. Why do I have to decide between Save and Update, they seem similar. After I hit the Update button, it does not become greyed out.
There are a few kinds, they are all really nice.
Categories and Tags
Overall this feature is nice, like how it’s collapsible, scrolling and the multiple selection in the right panel works well. If I have some tags/categories assigned to an article and I delete them, their selection does not disappear. It finally does when focus changes to somewhere else in app.
The Markdown mode is excellent, even how it deals with images, better than the DayOne app, for example. It’s (surprisingly) a web view. The text has a nice looking markup, is colour coded, and has good style previews for most of the structure format tags.
The preferences are really slick. Even the advertising panels are done really well, they look as good as those in Wunderlist.
Overall this is a great app. I can definitely get used to the weird parts. I don’t spend enough time blogging mainly because the apps I’ve used until know have been too kludgy. This app in free mode seems to do everything I need to manage a single blog. Big congrats to the developers.
First, in the on-boarding process, it insists on a sign up. Of course wanting to send me notifications which I refuse.
Please enter your mobile number so we’re know you’re not a robot
Deleted immediately. Muppets.
Does @dripapp honestly think anyone is stupid enough to believe a phone number is required to prove they are not a robot?
Now they’re spamming me with emails that include an unsubscribe link that doesn’t work. What a surprise!
Anyone who’s acquainted with the reggae star’s oeuvre is aware just how much of his material is available online. There are literally hundreds of albums, many of them re-releases and slight variations of the mainstream hits. Even after years of searching through Bob’s music it is still possible to be surprised by the discovery of a new track.
As someone who’s been a keen fan for over 20 years, I was surprised last year when I came across what strikes me as his most outstanding recording. It’s quite hidden away and, as far as I’m aware, not even commercially released, I’ve only seen MP3 downloads.
The session is called Uprising Rehearsal Tuff Gong, Kingston, Jamaica, 1980, (download) and it’s one of the last recordings he made before he passed. The tracks were cut in his home studio at 56 Hope Road in Kingston, apparently his favourite place to record, and his body was riddled with the disease that would soon claim his life. There are videos you can find from the same session on Youtube, also moving.
What’s characteristic about the recording is the sense of urgency and intensity in his voice. Bob is a warrior and it really comes across in this thrilling performance.
Be warned, the recording quality itself is terrible: it’s scratchy, the volume goes up and down, even the speed jitters as the master tapes must have been damaged. But that doesn’t detract from the impact of Bob’s vocals.
Related: Some excellent music journalism paying homage to Talkin’ Blues.
This is quite a discovery, anyone who is a Virginmedia customer will be amazed. Hopefully Google will do its thing and this solution will bubble to the top …
NB: all info is accurate and correct at the time of posting
tl;dr Email the CEO
If you want to penetrate Virginmedia’s anti-customer service shield, send your emails to email@example.com
Customer Service in 2016
As many Virginmedia customers know, the company goes out of its way to ensure there is no way to contact customer service with any complaint about their service you might have. One of the top broadband providers in the UK, Virginmedia has no publicised email contact details.
Currently the options available for contacting Virginmedia are:
- a buried Chat option which, even if the first link says it’s available, a second click through tells you to try again as no operators are on hand
- a premium charge customer support number, so you not only have to wait at least 20 minutes on hold, but you get the pleasure of paying to waste your time to report a problem that’s not even your fault
Google Gems Not On First Page of Results
Fed up with these options I decided to invest some time trying to discover how to contact Virginmedia. This is a large organisation, right? There must be some people sitting in front of computers that can deal with customers, right?
I had recently signed up for their home broadband package and instead of getting the advertised 100 mb/s broadband speed, Virginmedia is only delivering around 3 mb/s. This is during evening “rush hours”, which are from around 6pm to 10pm, which is pretty much the only time you want your home internet connection to work.
It turns out that the 14th result in Google for “virgin media email contact” is this rather strange item from a website that claims it hosts contact details for CEOs of big corporates:
When you click the link you are taken to a page which indeed provides the email address of the apparent CEO of Virgin Media.
I had typed a complaint email to Virginmedia reasonably voicing my complaint and up until now it had been unceremoniously bounced from emails like firstname.lastname@example.org and email@example.com, revealed from previous searches.
Not willing to be fobbed off, I shot another email to the apparent CEO of Virginmedia. For reference, that email is firstname.lastname@example.org
What do you think happened?
I got a call within 15 minutes
I got a phone call within 15 minutes with a very helpful chap on the end of the line who was not reading from a script, wasn’t located over 10,000 km away, and in fact was very keen to address my complaint, resolve it, and who ultimately offered me a goodwill credit sum of £60 for the poor service I had received.
2016-Style Customer Service: 0
The date Virgin promised a fix for unfortunate customers in Ealing, London, UK has long gone and no fix is available. The 100 mb/s package regular maxes out at 3 mb/s during prime time. I complained again and this time was given only a £10 discount/month. It seems unlikely the Virgin will be able to deliver what is promises. I should point out that I got an almost instant response to my complaint, however, using the technique above again.
I’ve had the Goodreads app for several years now and while the website is excellent, I’ve always found the app underwhelming. The main problem is the designers have clearly tried to shoehorn the web paradigm into a mobile app. In fact I think it is an HTML website with some resizing so the screen don’t look too bad on the phone. But from a usability point of view the app is downright confusing.
The app’s killer feature is the ability to quickly scan the ISBN codes on the back of your books, bring up the book, and allow you to say whether you’ve read it or not and save it to a shelf for future reference. I’ve actually been using the app to scan books I think for at least 3 years, and only today figured out what must be the correct usage, hence my desire to share this online.
Typically you will scan a book that you haven’t read and that isn’t in your collection and you will be presented a screen that looks like this.
The app correctly assumes the most common action and gives you a nice green button to tap – top points so far.
Did you notice the button has two sections? So this button has two touch areas which each give different results: 1) yes I want to read it, or 2) show me some other options. In fact, regardless of which section of the button you tap you get shown the other options which look like this:
The distinction is when you click the left side of the button, the “want to read” option is selected for you, but when you hit the right, it’s also selected but not saved unless you hit the Done button on the top right hand corner of the screen. So if you hit Cancel, on the top left corner, no selection is saved and you go back to the default green button. Once your option is saved, you are shown the same button but with a white background to indicate that your choice has been saved.
There is another case where you may have already earmarked the book as something you want to read on the Goodreads website, and maybe gone out and bought it. The app recognises this, which is great, and in such a case you get a different screen that looks like this:
This is a normal, single action button but as indicated by the caret at the right end, you will be presented with several options. When you tap it you get the three options shown above so you can change the status of the book.
What is a bit funny is after you scan 40 books the app gives you a warning which actually allows you to learn how things are supposed to work. When you enter more than 10 or 20 books it becomes handy to be able to add them to shelves, i.e. so they can be classified by topic or similar. When you look at the UI of the status screen however it looks like “want to read” and “currently reading” are just shelves, especially since you have the option to browse “more shelves”:
The “more shelves” are the only shelves. The statuses and the shelves are different concepts and that’s the key to understanding how to use the app correctly. In other words you can give a book any status and not put it on any shelves, like “Classics” or whatever categories you’re using. Or you can put a book on a shelf and not give it a status. I think the Goodreads UI could be a lot clearer in getting this point across.
As you keep scanning books into the app and probably not putting them on any shelves, you will ultimately get the aforementioned error message after the 40th book. At this point you are required to either clear your list, or shelve all your books and then clear the list. Again the UI is not very helpful, this is what you are shown:
Notice the “Clear Shelve” button? That is in fact two buttons: one for “Clear” which makes you wonder which items on the list will be cleared. The other is “Shelve”, which again makes you wonder what it applies to. It turns out it applies to every item on the list. So when I went to shelve my books I thought maybe I could put them each on the relevant shelves. No. The whole 40 books got put on the same shelf. Ok fine, let’s work with it. Sure enough “Clear” which I guess with a bit more space could have been labelled “Clear All”, also cleared all books from the list.
Aside from the above glitches which make using the Goodreads app a little on the unintuitive side, it has another feature which is excellent and essential: it detects if you’ve scanned a book already. In such a case you get this screen:
The errors are a little funny in the sense that it looks like the top message is unaware of what the bottom message is saying, however this is a very useful feature. Any bookshelf has tons of books and it’s very easy to do duplicate scans.
A final usability complaint, when I first started using the app it wasn’t clear to me what to do after I scanned in a book because you get a screen like this:
The red highlight is of course mine. The book result image and text is actually a button that you are meant to tap, after which you are given the options to set the status. I’m sure the first 5 or 10 books I scanned I thought the scanning and beeping was enough to register the book. It’s not.
A Non-Obvious Workflow that Works
So if you want to get the most out of the app, you’d have to proceed as follows:
- scan the ISBN code of your book
- tap on the result to get taken to the status screen
- set the status appropriately or change a status that you’ve already set on the website (I do this a lot)
- back at the list view, tap on the Shelve button so you can put your one book on the one shelf you intend
- hit the Clear button since the app expects your scan list to be empty once you’ve set the status on the book
If you look at the website, the Goodreads developers definitely seem to think book status and shelf are the same thing, which really doesn’t help!
Here’s an email I sent to the developers on the subject:
Hi MattI can’t really complain as your app is amazing, it’s something of miracle that you and your team managed to pack so much functionality and quality into one app. As an iOS developer and amateur artist I salute you, great job!However I cannot overlook the fact that it’s taken me 2 hours to figure out how to rotate the canvas and rotate selections. From a UX perspective here are the steps I went through to find the solution:
- NO (45 mins): went through every setting in the app multiple times, including sliding layers to reveal all possible options
- NO (45 mins): found and downloaded your excellent iBook manual and reviewed all relevant chapters
- NO (20 mins): experimented with changing the settings under Settings.app > General > Multi-tasking
- NO (10 mins): googled and went through several forum posts with 4-5 years worth of posting, mostly irrelevant answers due to wrong version of app/iOS
- YES (1 min): found a reference that suggested “rotate” was disabled by default in Settings.app > ProcreateAs an iOS dev I am constantly downloading and trying out new apps, I always have around 250 installed on my iPad and check new releases often. As an amateur artist I have the top 30 drawing/sketching apps installed on my device and have tried to become proficient with all of them. I literally have not had to adjust anything in Settings.app > $appname for at least the last 3 years, hence this route to find a solution was not near the top of my list.I’m sure you have good reasons for disabling rotation by default, although I don’t know what they are. Can I suggest you update the iBook manual (the first place I looked was 10. Transform) with the requirement to change the app’s default settings to get rotation to work.Many thanks and keep up the great work!cheersDemian
Ulysses, MindNode and DayOne are excellent writing, planning and journalling apps, respectively. Many would argue they are best of breed in their respective categories and perhaps even their main reason for using Apple hardware. Certainly I feel this way and I’ve done a fair bit of research over the last little while to find these gems and have enjoyed getting to know them better.
In this article I’d like to show you how to link between the documents of these apps, but first a bit of background.
What is Mac-like?
Although Ulysses, MindNode and DayOne are standalone, unrelated apps, you’ll find many people that use all three. If you had to find a quality that unites them I think it would be how Mac-like they are. “Mac-like” is a funny term when you think about it and it may confuse some readers yet it appears on almost every description page of Mac software. In truth only a few apps properly live up to that title. There’s a huge amount of design aesthetic that’s gone in to Apple’s own apps and indeed many of the best 3rd party apps. Luckily for developers it’s all catalogued in a document called The Human Interface Guidelines. 1
One of the key aspects of Mac-like software and the Apple design aesthetic is application interoperability. 2 The original way to achieve this was through drag & drop and indeed this feature has remained unchanged for several decades now.
Fast forward to 2015 and you have excellent apps like Ulysses, MindNode and DayOne, and of course they have all considered interoperability carefully as each one imports and exports their data to multiple formats. 3
But one Mac-like feature that seems to be missing is how to link between the documents of these apps. Here are my suggestions.
Ulysses to DayOne
Well DayOne is a very developer-friendly app, so they’ve done a bit of extra work and it’s quite easy to invoke the app from other apps and indeed open specific journal entries.
Here’s the format to use
Just drop that in a Ulysses link dialog like so:
To get the unique ID of a journal entry, select the entry and hit Info > Show Entry in Finder and use the filename without the extension.
UPDATE 1: Sadly this great feature no longer works in DayOne2. I’ve contacted the authors requesting it to be reinstated.
Ulysses to MindNode
Going from Ulysses to MindNode took a bit more research. After a brief exchange with both software authors, one of the Ulysses support team discovered that just using the OS X file protocol was enough to invoke MindNode from within a Ulysses document.
Here is the process I used for getting the link:
- locate the MindNode document in the relevant iCloud drive sub-folder
- To do this, command click the icon to the left of the document name in the title bar of MindNode and select ‘iCloud Drive’, the Finder will come forward with the relevant document file selected
- Drag the file to the Terminal app to get the full path
- If your file or any parent folders have spaces in the names, the Terminal will escape them with backslashes, you need to remove these
- ensure you add the “file:///“ protocol at the beginning of the path, with 3 forward slashes
- place the result in a Ulysses link dialog box as per above
But there are still a few more gotchas to get it to work. Normally this should work in the HTML preview but because of a glitch you have to further specify “open in Safari”.
Try it, click the link in the Safari webpage. It should pop the Finder to the foreground with the MindNode document selected. Not ideal. But if you want to view the actual document in MindNode, the trick is to preview the document as a PDF.
Running at over 700 pages long, few developers bother to read the HIG. It’s a shame because it’s rare that a proven success formula is so well documented.↩
The ability for various apps to work together harmoniously and pass data to each other. ↩
These apps are also some of the best examples of how to allow users to shift effortlessly between devices without interrupting workflow.↩