Obama’s Missed Healthcare Opportunity

When Obama was first elected, I opined that the first thing the Democrats should do is pass a simple measure requiring pay stubs to show the real cost of people’s health cover. This would make a person’s salary package far more transparent (e.g. all the raises people got from 2001-2008 pretty much went to their healthcare; it would be nice if people realized this).

E.g. I pay something like $500 per month for my health insurance — until the Affordable Health Care Act (“Obamacare”), I had no idea of what the insurance actually cost or how it compared to the health package offered by any other employer. When one employer says “we have great benefits” it’s completely unclear what that means. You don’t generally start drilling down into pharmaceutical and ER copays during a salary negotiation (well, I don’t). As soon as thehealthsherpa.com came out (healthcare.gov being a fiasco, albeit one that actually works now), I was able to look at how my plan looked compared to the various grades of cover offered under Affordable Health Care, and it turns out that it’s about equivalent to a Platinum plan, and for our family the cost of such a plan on a health exchange would be around $1600/month. This means my employer could be paying something like $1200/month for me — an important fact that is not easily discerned — that’s certainly more than it’s contributing to my retirement.

Despite the existence of the Affordable Heath Care Act, there still seems no provision for classifying employer-provided health cover in some kind of transparent way, so that (for example) when you’re deciding whether or not to change jobs, or which spouse’s health cover would work best for the family, or figure out the pros and cons of double coverage — you’re basically in the dark.

This affects me personally. Rosanna (my brilliant wife) recently took a job at UT Dallas. It includes, we were told, excellent health benefits via Blue Cross Blue Shield of Texas. BCBS, as it’s known, is probably the biggest brand in health cover in the US. My plan (which is via my employer, who is based in Washington State) is a variation of BCBS as well, and my Rosanna’s previous cover (through the Federal government) was another variant of BCBS. BCBS is usually at or near the top of any list of coverage accepted by a healthcare provider. I should note that both of us have always had PPO (vs. HMO) plans, which are more expensive and offer wider choice.

For most of our time together, we’ve had “double coverage” — i.e. each of us has gotten the other covered through an employer-provided health insurance plan. Until June this year, Rosanna’s primary cover was her Federal plan, widely considered to be awesome. She frequently was denied prescribed medications (even generics), had to jump through hoops and waste immense time and effort—including unnecessary and expensive visits to specialists to rubber stamp prescriptions—to be allowed to receive needed medications (in many cases we simply aren’t allowed to pay cash for prescriptions). Then there was a two month period during which she was between jobs, and her Federal health cover expired. Everything got easier and cheaper. As secondary on my insurance (also BCBS, remember) the only time she was denied a prescription was when my insurer suggested a slightly cheaper but similar alternative drug—which turned out to be more effective—at least be tried first before the first drug would be allowed. She grudgingly switched to the suggested alternative and preferred it. Copays dropped from, sometimes, over $100 for a single scrip, to $40.

So, when Rosanna went through benefits election during the spinup of her new job (she’s an Associate Professor) she had some hesitation in getting her own coverage again (which cost her, just covering the two of us, about $250 per month; again we have no idea what the university pays). The benefits person convinced her that she could only benefit — in some cases her copays would disappear (which had been our experience with double coverage up until around 2012 when we moved to the Washington DC area where many doctors simply won’t handle insurance at all and expect customers to pay cash and get reimbursed themselves). So we agreed to try the plan as an experiment, and it is a nightmare. So far, by getting BCBS of Texas through UT Dallas in addition to my plan:

To begin with, the immediate effect of my wife getting her own new health cover was that she simply couldn’t fill any prescriptions at all. My BCBS detected that she now had her own BCBS of Texas and —perfectly reasonably—refused being billed as primary. But BCBS of Texas prints insurance cards with no relevant information (needed by pharmacists) on them, and when the clerk tried to get the information from them he had to wait on hold for ten minutes and answer the same questions over and over (in the US no enterprise is able to ask a question once, so this is hardly unique to BCBS of Texas) only to be told to call a different number. The first clerk gave up at that point. Eventually, I found a sympathetic clerk who spent half an hour sorting it out and voila, we were able to fill prescriptions, but all her copays increased (from $40 to $120 in one instance), and for whatever reason our “double coverage” doesn’t do us any damn good.

Bear in mind that pharmacists, in the US, are harried people buried in tedious makework—filling the simplest prescription involves asking your surname (and trying to remember how it’s spelled) and birthday, often your address (for verification), fighting with a computer terminal, a cash register, a card swipe, some kind of nutty signature system that acknowledges you’ve received a drug or know about its side effects, a stapler, and a half-dozen pieces of paper — beyond their proper job which would be finding the right pills, counting them (three or four times in the case of pain killers), sticking them in a jar, and applying a label. In the US, the people qualified to do this crap have to get a PhD (which is ridiculous, but degree inflation in the US is rampant — optometrists also have PhDs) so their time is presumably not exactly cheap, and how a health insurance company can reasonably expect one of these people to waste 30 minutes to bill a single prescription baffles me; surely this is some kind of breach of contract or bad faith. Remember — every other insurer prints the required information on the card.

By the way, if you’re wondering about the rising cost of healthcare, maybe requiring someone who can look stuff up in a database, counts pills, sticks labels on a jar, and can operate a stapler to pay $120,000 in college tuition might have something to do with it. (In Australia, pharmacists have a slightly specialized bachelors degree — as do lawyers, doctors, and optometrists — and I don’t think society has collapsed.)

My twins are going through a horrible bout of gastroenteritis and were prescribed zofran, a decent anti-nausea medication. We got it through my insurance (thankfully, my insurance covers the girls) and it cost whatever our usual copay is (I simply don’t remember how much I paid, so it was probably $20 or so).

Rosanna has nausea issues and—on the same day—was also prescribed zofran. BCBS of Texas denied her the medication. So she got her doctor to prescribe her fennigan instead. They also rejected this prescription. (The pharmacy, after trying to reason with the insurer, pointed out that the cash cost of the drug is $10, so we simply paid for it ourselves.)

Note that without insurance, a generic version of Zofran costs $17.14 at Walmart.

So BCBS of Texas basically charges us money to screw us and, the way health insurance works in the US, we can only change her benefit election once per year (i.e. a year from now) or if there’s a life-changing event (like a birth, death, marriage, or divorce). We joked tonight that it would probably be better to get a quicjk $500 divorce, elect to drop the “insurance”, and then remarry than continue to receive this “coverage”. Seriously, it’s that bad.

When the Ebola came to Texas, one of our neighbors went a bit nuts and started waving down fellow parents at the local elementary school, trying to get us to sign a petition to close down the school (because you can’t just keep your own kids home without dealing with truant officers or whatever). I tried to reason with him and he eventually went off on a Republican talking points rant about how he’s been screwed by “Obamacare”. I told him that he was either being screwed by his employer or his insurer — they were just using Obamacare as an excuse. (Incidentally, my health premiums and copays went up this year, and the benefits people ascribed this to “Obamacare” as well.)

Here’s the point — it doesn’t do you any good to do good if the people you do good for can’t tell. If Obama and the Democrats had started 2009 by making healthcare costs transparent, they’d be in much better shape today.

Node-Webkit Development

I’m in the process of porting RiddleMeThis from Realbasic (er Xojo) to Node-Webkit (henceforth nw). The latest version of nw allows full menu customization, which means you can produce pretty decently behaved applications with it, and they have the advantage of launching almost instantly and being able to run the same codebase everywhere (including online and, using something like PhoneGap, on mobile). It has the potential to be cross-platform nirvana.

Now, there are IDEs for nw, but I’m not a big fan of IDEs in general, and I doubt that I’m going to be converted to them any time soon. In the meantime, I’ve been able to knock together applications using handwritten everything pretty damn fast (as fast as with Realbasic, for example, albeit with many of the usual UI issues of web applications).

Here’s my magic sauce — a single shell script that I simply put in a project directory and double-click to perform a build:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "$DIR"
cd "$DIR"
zip app.nw *.html package.json *.png *.js *.css *.map
mv app.nw ../node-webkit.app/Contents/Resources/
cp nw.icns ../node-webkit.app/Contents/Resources/
cp info.plist ../node-webkit.app/Contents/
open ../node-webkit.app

What this shell script does is set the working directory to the project directory, zip together the source files and name the archive app.nw, and then move that, the icon, and the (modified) info.plist into the right place (assuming the node-webkit app is in the parent directory), and launch it. This basically takes maybe 2s before my app is running in front of me.

info.plist is simply copied from the basic nw app, and modified so that the application name and version are what I want to appear in the about box and menubar.

This is how I make sure the standard menus are present (on Mac builds):

var gui = require('nw.gui'),
    menubar = new gui.Menu({ type: 'menubar' });
if(process.platform === 'darwin'){
gui.Window.get().menu = menubar;

And finally, to enable easy debugging:

    var debugItem = new gui.MenuItem({ label: 'Dev' }),
        debugMenu = new gui.Menu(),
    debugItem.submenu = debugMenu;
    menuItem = new gui.MenuItem({ label: "Open Debugger" });
    menuItem.click = function(){

So with a few code snippets you get a Mac menubar (where appropriate), a Dev menu (if dev is truthy) and a single double-click to package and build your application in the blink of an eye. You can build your application with whatever Javascript / HTML / CSS combination suits you best.

Obviously, you don’t get a real “native” UI (but the next best thing is a web UI, since people expect to deal with web applications on every platform), and this isn’t going to be a great way to deliver performant applications that do heavy lifting (e.g. image processing), but it’s very easy to orchestrate command-line tools, and of course the chrome engine offers a ridiculous amount of functionality out of the box.

I should mention that Xojo is actually quite capable of producing decent Cocoa applications these days. (It sure took a while.) But its performance is nowhere near nw in practical terms. For example, C3D Buddy is able to load thousands of PNGs in the blink of an eye; the equivalent Xojo application is torpid. Now if I were doing heavy lifting with Javascript, perhaps it would tilt Xojo’s way, but it’s hard to think of just how heavy the lifting would need to get.

Sketch 3

While writing my previous post it struck me that life is too short and $80 is too little to get worked up about, so I bought Sketch 3. As usual, I broke out my texture map file from iDraw, exported as SVG, and tried it out. Importing was good but flawed in exactly the same way as with Sketch 2 (and Affinity Designer, of which the less said the better). Having bought the new version, Sketch 3 has significant workflow advantages over its predecessor that are easily worth the price of admission. The core functionality hasn’t been improved much, but it’s wrapped in a more efficient user interface.

No Application is (or should be) an Island

The above file was exported as SVG and imported into Sketch 3. Everything looks perfect except for the fonts (which are easily fixed). But a lot of the effects have been rendered using bitmaps.
The above file was exported as SVG and imported into Sketch 3. Everything looks perfect except for the fonts (which are easily fixed). But a lot of the effects have been rendered using bitmaps.
Using Sketch 3's new shared styles, the results were quickly recreated and even improved upon.
Using Sketch 3’s new shared styles, the results were quickly recreated and even improved upon.
The new file was then exported from Sketch 3 as SVG and imported into iDraw and back into Sketch 3. In both cases the results are not good.
The new file was then exported from Sketch 3 as SVG and imported into iDraw and back into Sketch 3. In both cases the results are not good.

One of Sketch 2’s worst problems was that while it was just great at importing SVGs, you couldn’t get anything out of it except bitmaps. Among other things, for the first time this lets me give iDraw’s SVG import a proper workout. The good news is that iDraw is just as good at importing SVGs from Sketch 3 as Sketch 3 is at importing its own SVGs. The bad news is that Sketch 3 isn’t nearly as good at exporting stuff not supported by SVG as SVG (iDraw does a pretty great job of rendering effects that can’t be represented as SVG styles using judiciously generated bitmaps and SVG shapes on the way out — Sketch 3 just throws up its hands.)

So, the good news is you can now get your vector geometry out of Sketch 3. The bad news is that it does not do a good job of rendering the styles in a portable manner.


Symbols in action. Four instances of the same symbol. Symbols can be independently rotated, but not resized, and they cannot be nested.
Symbols in action. Four instances of the same symbol. Symbols can be independently rotated, but not resized, and they cannot be nested.

Symbols are my number one reason for buying Sketch 3. They promise to make Sketch 3 into the Houdini of UI design tools. (Arguably, Illustrator and Photoshop already do all this, but bear with me.) The basic idea is you make something into a symbol, and then when you duplicate it the duplicates are all references to the original. Changing one, changes all. Symbols for the most part work very well, but there are some caveats. First of all, Sketch 3 doesn’t fully support the idea of a “transform” which in practice means that you can rotate a symbol without rotating every other instance but you cannot resize a symbol without resizing every instance. Next, you cannot nest symbols.

The way styles are implemented in Sketch 3 is a welcome surprise.
The way styles are implemented in Sketch 3 is a welcome surprise.

What I wasn’t expecting was how cleverly text and object styles have been implemented in Sketch 3. In fact, these styles are probably more generally useful across the board than Symbols. Combined with Symbols, it makes the lack of nesting much less painful. In both Sketch 2 and 3 the panel above consists of a rounded rectangle and four circles with styling applied, the difference with Sketch 3 is that one style is reused for all four circles, and another is used for the panel. This file was created by painstakingly copying styles around and maintaining them when a change was needed — all of this is now trivial to automate in Sketch 3.

User Interface Refinements

Sketch 3's interface is generally very refined and nearly modeless (thanks to the popout floating thingies it uses everywhere). Note the in-context gradient editor, automatically detected colors, and just how much freaking functionality is jammed into how small a space.
Sketch 3’s interface is generally very refined and nearly modeless (thanks to the popout floating thingies it uses everywhere). Note the in-context gradient editor, automatically detected colors, and just how much freaking functionality is jammed into how small a space.

Before finally paying my $80, I looked online for a proper review of Sketch 3, and found someone whose main complaint about Sketch 3 was that its UI looked dated because — rolls drums — it wasn’t dark like Adobe CS and Apple “Pro” apps. This is doubly funny because Apple is making the “dark UI” a system level feature in Yosemite, but in any event: really?

My main complaint with Sketch 3 after nearly a day of use is the interface. Sure the interface elements have been given a slight overhaul but the overall look is more or less the same. At this point (and after using Fonts by Bohemian Coding), I expected a lot more. Sketch is supposed to be a modern interface designing app so why should it lag behind other apps when it comes to the overall look?

From Sketch 3 — A Few Thoughts

This is why some people make fun of Mac users.

Most of the reviews of Sketch 3 are (rightly) pretty much gushing with praise. (Although many of them could equally be applied to Sketch 2, at least later versions.)

In any event, Sketch 3 has made a number of welcome enhancements, not the least of which (as of 3.1) is to make the file format a true binary (vs. an OSX style “bundle”) which makes for easer version control and DropBox (et al) syncing. As someone who uses Sketch in concert with Unity this last is a welcome change (since Sketch and Unity would step on each other constantly — Unity is prone to mucking around inside Sketch files’ directory structures, convincing Sketch 2 that changes have been made which really haven’t).

Booleans have been improved (they now behave like their product rather than a weird hybrid of their constituent pieces and their product, depending on Satan’s whims)

An absolute winner in the new Sketch is streamlined exporting. If you have something selected when you click the Export button you have the option of exporting the selection — a neat feature which will work better when Sketch 3 does a better job of calculating the bounding rectangle of the object in question. This doesn’t matter so much though because you can export anything instantly by dragging it from the sidebar into Finder (or wherever). You get exactly what you expect (and the bounds are correctly evaluated, so the code is in there somewhere guys!).

Bezier Strokes: Not Quite There Yet

Vectorizing strokes has improved (the self-intersections are no longer hollow, at least) but still needs work.
Vectorizing strokes has improved (the self-intersections are no longer hollow, at least) but still needs work.
Sketch 2 suffered from refresh problems (the pointy corner in the top-middle of the shape is still showing after I changed the corner-mode to rounded).
Sketch 2 suffered from refresh problems (the pointy corner in the top-middle of the shape is still showing after I changed the corner-mode to rounded).
Sketch 3 still lacks the ability to determine how acute an angle to render when a bezier is in corner mode.
Sketch 3 still lacks the ability to determine how acute an angle to render (the “miter limit”) when a bezier is in corner mode.

One of the claimed improvements in Sketch 3 is vectorizing strokes. It just so happens I ran into this problem in Sketch 2 the other day, so this excited me. Alas, it’s improved but not fully fixed yet. Still going to need to fix inside corners by hand. Similarly, Sketch 2 had redraw problems (usually caused by incorrectly calculating bounding rectangles) and these remain in Sketch 3 (with the same workaround — scroll the affected region out of sight and back again). Similarly, Sketch doesn’t center on the selection (or the mouse position) when zooming in and out which is a little disconcerting. One or the other would be nice. Finally, Sketch still doesn’t give you control over the mitering of bezier corners, instead cutting off miters arbitrarily and miscalculating the bounds of stroked shapes with gay abandon. (This is hardly a show stopper, if you’re trying to create a precise pointy bezier object, just use stroke inside.)

More Useful Enhancements

Sketch 3 adds noise fills, offering four different noise algorithms (a custom, rather attractive, algorithm, white, black, and color noise) — this turns out to be particularly useful in combination with new blur modes — in addition to its incredibly useful blur tools (I just realized that Sketch 3 (and 2) support motion and zoom blur (as well as “background” blur which imitates the kind of thing Apple loves to do these days with layered translucent interfaces — great stuff, although where’s radial blur?).

I should mention that I’m disappointed that the pattern fill feature hasn’t be extended to support symbols as fill patterns.

Summing Up

Sketch 3’s headline new features: “shared styles”, symbols, and improved export are great and work as advertised. Its UI is even more polished and streamlined than before. On the negative side, Sketch continues to have some minor issues with the way it handles bezier curves and screen refreshes.

Is Sketch 3 worth $80? Absolutely! Is it worth $80 if you already have Sketch 2? If the new styles and symbols features sound compelling to you, if you want Sketch to play nice with version control or Unity, or if you desperately need to export some SVG geometry from Sketch 2, then yes. Finally, I haven’t played with another new headline feature: scripting. You know who you are if you need this, and chances are if you need it than Sketch 3 is totally going to be worth it. (And chances are you’re a pro and $80 is peanuts for a professional tool.) Otherwise, Sketch 3 doesn’t offer much bottom line functionality that isn’t already in Sketch 2. It’s a fantastic program, but the improvements (thus far) are mainly in terms of workflow and productivity features that won’t do much for casual users.

Postscript: Resizing and Moving

The problem with instances having to be the same size turns out to be indicative of a larger and pervasive problem with resizing objects in Sketch — something I hope gets addressed in a free update. When you resize objects text and fills don’t get scaled in sync. Similarly, styles involving gradients don’t scale the gradients. This hugely reduces the usefulness of styles and instances, and also makes resizing anything with text a major pain in the ass.

Sketch has two serious bugs when it comes to moving bunches of stuff around. Smart guides in Sketch 2.0 simple didn’t work for multiple selections. Now they work — badly. The snapping is simply inaccurate and worse, the objects drift out of relative position (I’m not sure but this may be caused by progressive snapping — e.g. to pixel boundaries — aggregating over time rather than being applied to the original offsets).

The Race to Replace Illustrator: Affinity Designer

Just as Core Graphics created a race to replace Photoshop (at least for the great unwashed masses who don’t care about Color Spaces, CMYK, Lab Color, HDR, Stitching, Content-Aware Resizing and Deletion, seamless integration with other Adobe software, and so forth) there is now a race to replace Illustrator. Part of the problem is that the bewildering range of screen densities has made working primarily with bitmaps essentially a mug’s game (even Apple-targeted designers, used to supporting two resolutions, are suddenly faced with four (one of which is seriously weird).

You may recall some old stalwarts, such as Inkscape, Intaglio Designer, iDraw, Artboard, ZeusDraw, EasyDraw — of which I like iDraw — and Sketch; some of these are pretty credible Illustrator replacements (at least for casual users) but there are even more entrants in the field now, and they’re even more interesting:

Sketch 3 is the new version of Sketch — the vector-based, UI-focused drawing tool. It adds user interface refinements, symbols (“instances”), scripting via Javascript, automatic detection of colors used in a layout, and streamlined export functions. The fact that most of the new features are focused on workflow shows that BohemianCoding has been listening to professional users. I’ve not bought Sketch 3 yet because I’m a bit miffed that there’s no upgrade path for Sketch 2 owners (for which Apple is at least partially responsible) and — worse — that they pulled Sketch 2 from the App Store so I can’t conveniently reinstall the old version on my computers. Again, that might be Apple’s fault (i.e. perhaps they can’t set things up so that existing owners could continue to download and install it while taking it off the market).

Let me pause here to say this: I freaking love Sketch (2). I probably use it more than any other non-3d graphics program (I use it in preference to iDraw these days). I probably use it more than all other non-3d graphics software put together. Sketch is my go-to app for UI graphics and textures for (cartoony) 3d models.

Paintcode and Webcode are, like Sketch, focused on user interface design. The big difference between these tools and predecessors is that they’re focused on outputing your graphics as code that will recreate them at arbitrary resolutions (Paintcode will output Objective-C, Swift, or C# Xamarin, while Webcode will output SVG, Javascript (Canvas), and HTML+CSS. I’ve got a Paintcode 1.x license which seemed a bit limited (Paintcode 2 has beefed up its import and export functionality, as well as adding Swift support). Of the two, Webcode actually looks more compelling to me than Paintcode (and it doesn’t hurt that it’s much cheaper) — I’d probably pony up for Paintcode if it offered all of Webcode’s functionality, but it appears not to.

Finally, Affinity Designer comes from Serif, a company dedicated to competing with Adobe at the low-end in the Windows market, switching over to the Mac-only market with a bang. Their plan is to start with an Illustrator-killer, then proceed with Affinity Photo and Affinity Publisher. (Publisher? Really? Do they want to take on Pages and InDesign at once because that seems to me to be a losing proposition.) Of the three, Affinity Designer is clearly the most Illustrator-like, while Sketch 3 is kind of an Illustrator/Fireworks hybrid, and Paintcode/Webcode are simply unique.

iDraw is my current benchmark for wannabe Illustrator-replacements.
iDraw is my current benchmark for wannabe Illustrator-replacements.

Affinity Designer

I played with Affinity Designer briefly during the free beta, but it didn’t leave me with a strong impression. When they announced its release, I ponied up the (discounted) $40 (iDraw, my current favorite, is $25, but there’s been no significant improvements to it over the last year, and the things that annoy me about it still annoy me). The first thing I noticed when I launched Affinity Designer is that — like Illustrator — it defaults to print usage (CMYK, paper-oriented layout). It’s nice to discover that it also has web- and device-centric settings and defaults, and @2x retina support out of the box (but unlike Paintcode it hasn’t figured out what to do about the iPhone 6/Plus).

Screen Shot 2014-10-06 at 11.26.51 AM
I imported the SVG from iDraw into Affinity Designer. Everything looks great (and it even preserved layers) except for the fonts (which unfortunately are not easily fixed).

The first thing I did was take a pretty damn complicated SVG file (with layers and typography) and export it from iDraw and import it into Affinity Designer. Every font failed to import correctly (Helvetica Bold and DIN Condensed), but otherwise it seemed to do a pretty good job — overall, it did a better job than Sketch (2) at importing the same file. I think the problem lies with how SVG stores font information (Sketch had the same issue when importing the file; note that iDraw can import its own SVGs flawlessly.)

But here’s where things get ugly — when I tried to fix the font issues, I discovered that I can’t change the character style settings for more than one object at a time. (And this is not a problem in Sketch or iDraw.) As a workaround, I tried to create a style from one object and apply it to others but that didn’t work at all — styles seem to be limited to fill color and the like (and fill color doesn’t seem to be the same thing as text color). Bad start.

Time to look at the program in its own terms. One of the best things about Sketch relative to iDraw is its support for gaussian blur as a style. Affinity Designer has this and more (e.g. emboss, and a weird “3D” effect that I’m not sure what it’s supported to do). What it doesn’t do (and what Sketch and iDraw both do) is allow you to apply the same filters multiple times (e.g. much the same way you can stack box-shadow effects in CSS). Another annoyance with Affinity Designer’s effects is that important settings are buried in a modal dialog box (iDraw is annoying in a different way in that you need to disclose the settings with an extra double-click, but that’s a pretty minor annoyance). So far, I’d call this a mixed result.

Here’s an example of Affinity Designer at its worst. I draw a test bezier curve and then try to apply a stroke to it. So far so good. But it’s stroked in the center of the curve.

  • I almost always want to stroke inside the curve, and sometimes outside, but almost never centered on the curve. So I look at the stroke settings, and all that is exposed is color, opacity, and radius.
  • To access the extra properties I need to click on the little “gear” icon that lets you configure the other settings of a given filter.
  • As I’ve mentioned before, this dialog is modal; it also defaults to showing some random filter setting, not the one you were working on (which confused me a minute, since it was showing bevel/emboss options and not line options).
When I clicked the stroke "gear" I get deposited in a modal dialog with Bevel selected. WTF?
When I clicked the stroke “gear” I get deposited in a modal dialog with Bevel selected. WTF?


  • OK, so having switched over to the line settings, I discover that the options (inside, outside, centered) which — for some reason — is not the top setting (compositing mode is at the top).
To add injury to insult, the stroke settings don't actually work — note that I've chosen outside and it's displaying a centered stroke.
To add injury to insult, the stroke settings don’t actually work — note that I’ve chosen outside and it’s displaying a centered stroke.
  • Here’s the rub — the different options (a) don’t work and (b) appear to override and block the modeless setting (i.e. when I change radius in the modeless view, the setting no longer works. WTF?).
The basic selection / transformation affordances are nice.
The basic selection / transformation affordances are nice.

This is a freaking disaster. First of all, how can an Illustrator clone go out the door with broken strokes?

I do like the basic selection affordances. In particular rotation gets its own affordance (the little dot out on its own) rather than requiring mouse/keyboard chording. The basic Bezier drawing tools seem to be solid.

But there’s one more global observation I need to make before I move on: the tools all feel wrong. There’s a nuance to the rules that govern how 2d graphics tools, in drawing programs especially, behave. When they should be sticky vs. revert to a selection tool, and so forth. This stuff is so basic that it happens below the level of conscious decision-making. For better or (mostly) worse, a lot of us have Illustrator’s behavior in our muscle memory (where it displayed MacDraw, which was generally more intuitive).

In any event, just as iDraw and Sketch and many other Mac graphics programs get this somehow right, Affinity Designer gets this somehow wrong, and it bugs the hell out of me. If the program were in a more functional state, I might even spend the time to go figure out exactly what’s wrong and write some kind of detailed bug report for the development team, but I find the program, as a whole, to be so fractally unusable that I just can’t be bothered.

At this point, it’s not worth continuing the review. Affinity Designer is a promising and polished looking piece of software, but basic functionality is completely broken, and it has horrific workflow problems (styles don’t work with text formatting, you can’t edit multiple selections in a useful way, the wrong properties are disclosed in the modeless floater, and the modal dialog is both weird and buggy). So, in summary:

  • Some features that are lacking in iDraw (Gaussian Blur effect)
  • Single window UI (unlike iDraw which suffers from palette-itis)
  • Better SVG import than most rivals
  • Limited effects options (can’t apply multiple instances of a given effect to a single element)
  • Editing effects is clumsy (useful stuff is buried in modal dialog, which does not open on the right effect) and buggy (the settings don’t work properly).
  • Affinity Designer’s tools just feel wrong; they stick in modes when they shouldn’t (or I don’t expect them to) and it’s just infuriating.

Affinity Designer manages to be promising, attractive, and completely useless in its current form.

Note: I purchased Affinity Designer from the App Store after using the public beta a few times. I was so frustrated with the release version that I have requested a refund from Apple, and have deleted the app. (I think this is maybe the second time I have ever asked for an App purchase to be refunded.)

Tea vs. Coffee

I’ve recently switched from coffee to tea for dietary reasons. (I need to drastically cut down carbs.) Anyone who knows me knows that I’m a bit of a coffee addict — one of my favorite lines from a TV show was an exchange from Homicide: Life on the Streets, in which we discover the most intense character drinks “Two or three… pots” of coffee per day; that was me before I got obsessed with quality. Once you start caring about the quality of coffee, you either need to have a great local cafe, or you need to start making your coffee yourself. It’s a slippery slope — I grind my own coffee (and flirted with roasting, but I decided I’m not that dedicated) although for a while I did subscribe to coffee. Anyway, that reduced my consumption to 2-4 cups per day.

The problem is, I like milk in my coffee. I like lattés, although I can’t be bothered to make them at home very much. And I like to drink cold coffee (a double-shot in a cup of cold milk). And milk has carbs. (About 7% of my daily target in one cup.) I also drink espresso shots, but that’s not really a drink.

Now, before I got into really good coffee, I used to switch from mediocre coffee to tea for months at a time. I’m partial to Twinings, specifically English/Irish Breakfast, Earl Grey (which, I just discovered, recently had its very own New-Coke-style-debacle and aftermath), and Darjeeling. It’s hard to get good tea in the US (sure, it’s also tricky to get good coffee, if you’re a coffee snob, but it’s hard to get good tea if you’re only vaguely interested in tea — e.g. our local supermarkets have ample decent choices of whole bean coffee, but the only loose leaf tea is Liptons. That’s like only being able to buy Maxwell House coffee beans.

So, what are the advantages of tea over coffee (assuming you don’t drastically prefer coffee for its taste)?

  • Tea is cheaper than coffee.
  • It’s harder to screw up tea — e.g. by over-roasting or incompetent preparation.
  • You can make a lot of tea at a time and it will be Just Fine.
  • If a cup of tea gets cold, it’s still quite drinkable. A cold cup of coffee is a biohazard.
  • Tea has far less caffeine (or its equivalent) than coffee.
  • I find tea without milk (especially green or jasmine tea), or with only a little milk, much nicer than black coffee or “Americano” with milk.
  • Tea masks Splenda’s slightly unpleasant finish; coffee exacerbates it.

Obviously, if you simply prefer the taste of coffee, none of this matters. But for me, it gives me a harmless (possibly even beneficial) alternative to water (which is great too) I can have all day that won’t blow out my carbs, is easily made in quantity, and doesn’t become undrinkable when it gets cold.