Common Core Comprehension

My favorite joke about the mathematically inclined goes like this:

A mathematician, a physicist, and an astrophysicist are attending a conference in Scotland, and between sessions walk through the hills and come upon a black sheep.

“I had no idea that sheep in Scotland are black!” says the Astrophysicist.

The Physicist, arching a brow, sneers, “Typical. You see one black sheep in Scotland and you assume that they’re all black.”

At which point the Mathematician says, “Actually, all we know is that this side of the sheep is black.”

I don’t know much about the Common Core aside from the fact that it’s not the same thing as No Child Left Behind, but the teachers I know don’t seem to care for it either. (In general, I don’t think teachers particularly like being told what to teach except in the broadest of strokes.) A little investigation shows that the Common Core for Comprehension is more interested in teasing out figures of speech than actually parsing the meaning of text

It seems to me that what we really need is a Common Core for Comprehension. Consider this:

Jane, a six year old girl, is playing at home when her father enters the front door with bags of groceries. “Daddy, did you buy chocolate?” asks Jane. “No, but I bought cherries,” replies her father, who then empties a bag of cherries into a bowl, washes them, and puts them on the dining table. “I hate cherries,” declares Jane. While her father unpacks the rest of the groceries, she eats all the cherries and goes back to playing.

Questions

  1. Did Jane’s father buy chocolate at the store?
  2. Does Jane like chocolate?
  3. Does Jane like cherries?

Answers

  1. Jane’s father entered with bags of groceries. Assuming he did go to the store, we know that he said he didn’t buy chocolate, but he may have.
  2. Jane asked for chocolate. Anything beyond that is supposition. She may, for example, have been checking that her father bought the things he was asked to buy earlier.
  3. Jane says she hates cherries, but she ate a bowl of them (apparently quite quickly). It seems reasonable to conclude she does actually like them, but she may have been very hungry.

Bear in mind that it appears that no-one in the mainstream news media would appear to be able to answer these three questions correctly (I’m sure that many actually could, they’re just paid not to), so we do have a problem here, and I think it’s more important than whether kids can solve arithmetic problems “lickety spit”.

According to its official website:

The reading standards focus on students’ ability to read carefully and grasp information, arguments, ideas, and details based on evidence in the text. Students should be able to answer a range of text-dependent questions, whose answers require inferences based on careful attention to the text.

A little investigation shows that there is a “Common Core for Comprehension” (part of the English syllabus) but it devotes far more attention to figures of speech (most of 9th-12th grades) than actually parsing the meaning of text (some of 4th-5th). Such attention as there is emphasizes drawing conclusions and making inferences rather than figuring out what has actually been stated. While it’s no doubt useful to be able to correctly label figures of speech — none of which is necessary for comprehending the fact that “Fred is an ass” doesn’t necessarily mean Fred has four legs or infer from “Claude says, ‘Hi'” that Claude is probably male and not a stapler — apparently teaching kids to actually comprehend what they read (isn’t that “reading carefully”?) is not, in practical terms, part of “comprehension”.

Clifford Simak, Flying Houses, and Self-Driving Cars

When I got into SF in my teens, it was divided roughly into three broad phases, each dominated by an influential tastemaker. Hugo Gernsback (of the eponymous “Hugo” awards) essentially built a genre around the work of Verne and Wells. SF of his era were dominated by super scientists who were also all-round fabulous guys. This is the era in which E.E. “Doc” Smith emerged.

The second phase, from the late 30s through the early 50s, was dominated by John Campbell, who pushed for more rounded and realistic characters, but had his own foibles, such as a penchant for powers of the Mind (the Lensman series straddles the eras). Asimov, Clark, and Heinlein all emerged during this period, which — Wikipedia tells us — celebrated “hard” SF (i.e. SF which tried to get the science right).

The third phase, which I grew up in, was eventually dominated spiritually by Harlan Ellison, and it was characterized by the integration of speculation outside science (e.g. politics, social anthropology). Fussing over the science became less important than setting and character. Ellison, Silverberg, and Le Guin were ascendant.

Clifford Simak had the misfortune to do his best work in the later part of the Golden Age, while belonging in the third phase. He was also prolific and somewhat uneven. His best known novel is City — apparently voted the greatest SF novel of all time by the readers of Locus more times than any other. If you haven’t read City you need to stop reading this blog and go find yourself a copy. (It’s not easy — it’s out of print, and not available in electronic form.)

Even if Clifford Simak were a terrible writer (and Cosmic Engineers was pretty terrible, even though he was a working newspaperman when he wrote it) he would be worth reading as an antidote to almost every SF cliché. His robots have emotions, his aliens are friendly and helpful in a weird and alien way, his stories tend to take place in rural settings, there’s nary a space battle nor gunfight to be seen, and when there’s violence it tends to be catastrophic, one-sided, and not solve anything.

Cityspoiler alert — is presented as a collection of traditional stories, passed from dogs to their puppies around the campfire, about a mythical race of creatures called “humans” for which no archeological evidence has been found. The stories happen explain away the need for such evidence, which the introduction drily notes is very convenient.

In the earliest stories, humans are living very high on the hog. Their houses are able to fly where-ever the occupants want to live (assuming a “housing space” is available to park in) and life is good (at least in the US). Everything hard or dangerous is done willingly by tirelessly friendly robots. When it’s pointed out to one of the robots that they’re slave labor, one responds that it has been created with effectively eternal life, so why should it resent a bit of servitude in repayment?

In a later story, humans explore Jupiter by transforming themselves into native Jovians (the only practical method given the hostility of the Jovian atmosphere). The humans discover that being a Jovian is simply so much better than being a human that most emigrate to Jupiter and are never seen or heard from again. The few remaining gradually dial out of existence by going into long-term hibersleep.

Left behind, dogs — modified for greater intelligence and the ability to speak by the humans — together with robots mind the farm, and gradually form their own society, with each dog having an assigned robot helper referred to as its “hands”. They live in a peace and happiness for a long time until ants, who have been uplifted by one of the few remaining non-hibernating humans, start taking over the world. Asked for advice on dealing with the ants, a briefly awake human suggests extermination. The dogs and robots instead migrate to a new alternate Earth.

In the last story, human children are being raised on the new Earth by dogs and robots, but despite removing all cultural legacy, the human children engage in horrific acts of violence.

Look, seriously, go read it.

If you’re interested in Simak’s best books, my nominees would be:

  • City
  • Way Station
  • Shakespeare’s Planet
  • The Werewolf Principle
  • Project Pope

Anyway, I was thinking of Simak today while musing over the news that we could see self-driving cars being allowed on California roads next year. My wife and I agreed that the impact of self-driving cars on society will probably exceed the impact of the car itself (consider that the “suburb” exists because of the car) and it struck me that if there was one SF writer who had foreseen anything like what we might experience, it was Clifford Simak with his [self-] flying houses.

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"
pwd
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'){
    menubar.createMacBuiltin(appName);
}
gui.Window.get().menu = menubar;

And finally, to enable easy debugging:

if(dev){
    var debugItem = new gui.MenuItem({ label: 'Dev' }),
        debugMenu = new gui.Menu(),
        menuItem;
    debugItem.submenu = debugMenu;
    menubar.append(debugItem);
    menuItem = new gui.MenuItem({ label: "Open Debugger" });
    debugMenu.append(menuItem);
    menuItem.click = function(){
        gui.Window.get().showDevTools();
    }
}

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

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).