Jul 8, 2014
The Acorn 4.5 betas have been going on for a while, and I'm pretty close to pushing out a final release. So now is a great time for some final testing and a chance to play with some new features before your neighbors.
You can grab the new bits on the Acorn latest builds page, and if you find any problems - won't you please let us know by sending an email to email@example.com?
So what's new? Well, you can read the full release notes for all the details, but the highlights include new presets, new AppleScript commands, full screen for Raw import, web export improvements, precision mode for the eraser, new shortcuts for common things, and Acorn can now open up .pict files. Yes, that last one was a real requested feature. I'm hear to please.
There's also a handful of changes, as well as the usual list of bug fixes. And speaking of bug fixes- Project Oak is at 48% of the way there. I might not reach 100% by 2015, but I'm steadily making progress.
Jun 30, 2014
Tony Schwartz in The New York Times: Sleep as a Competitive Advantage
"More than ever, I’m convinced that sufficient sleep is a uniquely powerful fuel for sustainable performance. Among all the behavioral changes we help our clients make in their lives, none have a greater impact on how they feel and perform than getting more sleep. It’s also true that the greater the performance demand, the greater the need for rest and renewal. Instead, most of us do just the opposite: as demand increases, we simply hunker down, push harder, for longer."
I have handful of "Incredibly Obvious Software Development Secrets" (hat tip to Steve Kalkwarf), and getting enough quality sleep is right there at the top of the list. I've also found that the quality of the mattress you sleep on makes a huge difference, so be sure to get the best mattress you can afford.a
May 15, 2014
It's time for another progress report.
Acorn 4.4 betas are up. Not too much in the way of hot new features, but there's some good changes and fixes in there. Live updating of blend modes as you scroll through the list is awesome, and the same trick now works with the font popup for text. It's now super easy to quickly preview what new fonts would look like with your text.
I expect to ship this version soon, so make sure to write us (firstname.lastname@example.org) if you find anything wrong.
I've also been working on a new compositing engine for Acorn. I was originally going to ship it in 4.4 but it still has some kinks in it to work out so it's going to wait until 4.5 or maybe later. It's showing lots of promise though. If you have lots of layer styles and/or layers, drawing is crazy faster. The basic trick behind the new code is to do some pretty aggressive caching. However, I might have pushed things to be a little too aggressive.
Project Oak now stands at 35% complete. This is lower than the last time I gave an update. Why's that? I've filed a bunch of bugs against the new compositing engine but Acorn has also gotten an influx of new users thanks to the recent sale (see below), and along with that are a lot more eyeballs scrutinizing Acorn. And combining that with the amount of time I've had to take off when moving - well, it was bound to slip backwards at some point.
Flying Meat's 11 1/2 Anniversary Sale
A month or so ago we put Acorn on sale for $14.99 in celebration of FM being around for over 4197 days. The super sale is over now though, but if you were signed up for our newsletter you would have known right away!
My original plan was to sell it at this price for two days. Kirstin convinced me to push it out 14 days instead, to give people more time to try it. So that's what we did. Acorn is still on sale right now, down to $29.99 from $49.99, which is our normal upgrade price. I'm not sure how long I'll keep it at this price, but it's sticking there for now.
WWDC is coming
Are you going to be in SF for Apple's annual developer conference? So am I! If you see me, make sure to say hi. And free FM stickers for anyone sporting a Flying Meat t-shirt.
Hello again from Mukilteo, WA
We're done moving and the old house sold. Most everything is unpacked but we still have lots of work to do. It stalled work a bit, but that was expected. Onward.
Mar 26, 2014
Wow, over a month since the last progress report. I'm a slacker!
Hello from Mukilteo, WA
OK, I haven't been slacking, we've actually been in the process of purchasing and then moving into a new home. We hope to put the old house on the market real soon now.
Flying Meat's new home base (where we sleep that is) has relocated from South Everett to Mukilteo, WA.
We've still got the office in downtown Everett, and the commute is the same (hurray). But what we get from the move is a nice view and a good school for the little girl to walk to when she gets older.
But what about the pizza oven‽
Everyone I've told seems very concerned about this. I'm sad to announce that Dante (my pizza oven) is staying behind to be loved by the new owners. I'm afraid that trying to move it would destroy it (it weighs over 2 tons) and besides, this is a great excuse to get another one later on this year (I've got some ideas for improvements). In the meantime it's back to indoor oven cooking, and I'm sure I'll be getting more use out of Marvin as well.
Check your QuickLook plugins
I have managed to get a little bit of work done though, mostly in the way of bug fixes for Acorn. One interesting one was in Acorn's QuickLook plugin.
This particular bug came to me when a customer was having big stalls (and sometimes fails) when loading previews of Acorn via QuickLook. The customer was working with 18mp / 500 megabyte Acorn files, and they were taking forever to load. Acorn saves a composite of all the layers in an image as part of it's file format (for quick rendering via QuickLook), so I was surprised that it wasn't speedy. But when profiling the plugin, I noticed that there was a lot of time spent flushing an image in a PDF context. After a bit of snooping I discovered when drawing in a QuickLook context, you can ask the system to make a PDF context or a bitmap context depending on your needs.
Apparently, I made a bad decision a long time ago.
Acorn was using a PDF context, which isn't especially great for bitmap formats (which is what the preview is stored as). I changed things around so that QuickLook made a bitmap context for rendering (by one of the parameters in QLPreviewRequestCreateContext) and this made things go way faster.
I'm not sure why I originally chose the PDF context. Acorn used to be vector only, so it's possible that's why I made PDF context decision many years ago. Anyway— things are better for the next release of Acorn (which will be version 4.4. Grab a latest build if you'd like to play with it).
I also took the opportunity to make one other change for previews— and that was adding a thumbnail composite to .acorn files (if the image is above 256x256 pixels). In the case of RAW files (which are usually huge), it was pretty dumb for Acorn to load up a 18MP image to render into a 128x128 square. So now the thumbnails show up super fast if there's the thumbnail cache. This is only for files saved in Acorn 4.4, otherwise it'll fall back to the full image composite.
In the 2014.02.15 progress report, I mentioned that I needed to bring back some wait loops for handing locks on the database.
I wasn't really looking forward to this changes since it added complexity to FMDB that I honestly thought SQLite should be doing for me. Then I discovered sqlite3_busy_handler, which is a built in function to SQLite, and which lets me do away with the retry loops.
This new code is on a branch ("busyloopback") and I'll be bringing it over to mainline after I've used it for a while in Acorn.
I put up a dev build of the current sources here: http://jstalk.org/download/CocoaScriptPreview.zip. Eventually I'll do things like setup a real website and such - but I've got boxes to unpack and things to fix right now.
Feb 25, 2014
Another week or so, another post on what I've been up to.
Acorn 4.3 is out
We pushed out Acorn 4.3 yesterday for direct customers, and then 4.3.1 a few hours after that. (App Store versions will be coming soon).
Acorn 4.3 has a bunch of bug fixes, and new RAW import features (along with speed improvements). The release notes are available as usual.
Why so quick release of 4.3.1? I belatedly noticed a regression when fixing a brush bug. If you used a tablet and had pressure sensitivity turned off, the first dab of your brush stroke would be clipped incorrectly. This made for a funky looking brush stroke.
It was a super easy low risk fix, so I pushed it out quickly.
Work on Acorn 4.4 continues, and I'll begin pushing up betas of that soon enough. I managed to squash some memory leaks when driving Acorn with Cocoa Script, as well as some misc bug fixes (Project Oak now stands at 42% done). No new big features yet.
I also played around with Cocoa Script "shaders" for shape graphics in Acorn. This won't ship in 4.4 (or maybe ever?), but it was fun to code up and might be something awesome some day. How it works is a little hard to explain, but I'll try. Basically, instead of a rectangle having just a stroke and a fill when it draws, it will call a snippet of Cocoa Script code in place of the normal drawing routines. That snippet of code then has access to a bunch of libraries, and can do whatever it wants in the context it is drawing into. The following example draws a rectangle with a gradient, draws a border around it, and also draws a lighter border on the inside of the shape.
Click to embiggen.
Normally you'd need at least two different shapes in Acorn to draw something like this. This is future stuff certainly, and probably doesn't even make sense in Acorn. But the programmer in me thinks it is kind of neat.
Guilherme Mogames wrote a tutorial for using FMDB with SQLCipher. This comes up every once in a while on the FMDB mailing list, so it's nice to see someone publish this.
I've been playing with Nanoblocks recently. They are essentially teeny tiny legos- so small in fact that it's sometimes wise to use needle nose pliers to work with them. It's a nice relaxing change from coding all day. It's also nice to see Ohio Art is still around.
My new Mac Pro finally arrived as! What a game changer this is— everything is buttery smooth and fast, and being able to run OS X in VMware without any annoying lags is worth it alone. It makes testing Acorn on clean builds of 10.8 and 10.9 pain free. I love it, and recommend that everyone get their own. Maybe if it becomes mass market, that'll drive the price down?
Anyway, till next time.
Feb 17, 2014
Worlds development blog ▸ Drawing as a programmer:
"I started sketching again. At first I did it after job hours, in my spare time, but then I noticed that, after acquiring some basic knack, I can draw simple sketches quickly, so I tried to have drawing breaks when I got stuck with a new coding problem in my head. And to my surprise, my productivity rose."
See, I'm not crazy (about this anyway).
Feb 15, 2014
Acorn 4.3 has entered beta status. You can download it from the latest builds page, and of course read the release notes.
There's some good new features (mostly RAW import stuff), as well as a bunch of bug fixes and a few minor changes.
I've also already started on 4.4, which is going to focus mostly on bug fixes as well (hello Project Oak!). I'm also hoping to get in some performance improvements that I originally wanted to do for 4.2.
Speaking of Project Oak— I'm 42% of the way there. I got to close a bunch of bugs since the last report, mostly because some bugs had already been fixed but I hadn't ever closed the issue. And there were a few things that were categorized as bugs, but were really feature requests.
Which brings up an interesting question- what is a bug? From Acorn's POV, a bug is something that is supposed to work but doesn't. Things like drawing artifacts showing up when you move a bezier curve, or maybe merging layers causing things to be flipped around. Those are bugs. But things like "doesn't open PSD CMKY layers" or "can't left align multiple bitmap layers" aren't.
Sure, there are things that Acorn really should be doing, but that's not a bug. A bug is something that doesn't work correctly.
Other Acorn Stuff
Wim Lewis from the OmniGroup started a little project for converting Acorn files to SVG. Which is awesome, and hopefully I'll use that someday to kickstart SVG support directly in Acorn.
When I discovered that SQLite had its own code path for timing out when the database is busy, I ripped out FMDB's version and deleted the while loops that would make things pause and retry the query. Which was a mistake— FMDB still needs the loop to retry. So I'm working on bringing that back.
I had a little internal crisis with this though. How does FMDB break out of that loop if the database is perpetually locked (such as from another process)? Well, I think I'll end up adding a timeout variable which will be an NSTimeInterval, and check that in the loop for breaking out.
And then what about NSError? Yea, that's going to have to be done as well- you can read about ideas for it in a GitHub thread.
I have no idea what this API is going to look like. I just know that I don't want it to be ugly, and that's going to be hard to do. This will all probably be done in a version 3.0 (and it will most likely be backwards compatible as well).
A Random Acorn Tip
Did you know you can enable Acorn's precision brush mode (aka, 3x slowdown in mouse movement) temporary by clicking down on the mouse, and then pressing the space bar immediately after that? It's pretty awesome if you need precise brush strokes with the trackpad or mouse.
Feb 14, 2014
busblog: if uber wanted to make a commercial they shoulda filmed tonight
"it was 11pm and i was basically home and i had made $50 and my car smelled of young swedish college girls."
I've been a fan of Tony Pierce since forever, but since he's been making a little bit of money on the side as an Uber driver… well I've been loving his blog two million and one point four percent more.
Feb 14, 2014
Need something to listen to this weekend? I've got two recommendations for you.
First up is the latest Debug episode: Mike Ash on VoodooPad.
And then you can listen to me yammer on The Record: Seattle Before the iPhone #4 - Gus Mueller.
The interview with me was done this past summer, before the sale of VoodooPad. Which makes these two episodes an interesting juxtaposition.
Feb 12, 2014
Malcolm Jones in The Daily Beast: There’s Nothing Wrong—and a Lot That’s Right—About Copying Other Artists:
"Copying, like rote memorization, is no longer in fashion. For centuries, student artists copied plaster casts and worked up variations on images of the Holy Family. The job then was as much craft as art. Then came Romanticism and the cult of self, which needed to be expressed. Then Modernism blew the doors open with its insistence on constant change that now permeates—and rules—every corner of the creative world (Ezra Pound’s dictum, “Make it new!” might as well have an “Or else!” tacked on). And that’s fine if you are a true artist. Alas, most of us aren’t, so when our puny efforts at creativity fall short, we feel like failures and quit before we’re out of grade school. Ever thereafter, we regard art as some mysterious, gated territory where we cannot go. Somehow I don’t think that’s what our teachers intended."
I love copying other people's work. You learn about the process, you notice details that you wouldn't have otherwise, and it's fun. Eventually, your own work gets better as well. I've done this for years with guitar solos, with computer programs, and more recently (well, over the past couple of years) with sketching.
There's nothing wrong with this— just keep it to yourself. And if you do share, don't claim it as your own. It's as simple as that.
When I was working on the bezier tools for Acorn 4, I would keep an eye out for awesome vector art and try to re-make it in Acorn. At times I found Acorn's tools lacking so I would tweak it or add new features. And that's the primary reason Acorn's vector tools got a big jump in version 4.