All posts tagged with curation

Interaction of Color

I have recently been reading through Josef Albers’ book Interaction of Color and working through some of the proposed exercies. It seemed obvious that, rather than cobbling together bits of colored paper, a web page could easily generate any number of possible color combinations.

So I built a simple page that dynamically generates the swatches described in Albers’ first exercise: https://terrencedorsey.com/files/albers.html

You’ll see two large fields of different colors and a small, central swatch. This central swatch is the same color within both larger fields. Notice how, depending on the surrounding colors, the central color may look different — lighter, darker, or even a slightly different shade.

Each time you refresh the page it generates a different, random selection of colors. Hex values for the generated colors are provided at the bottom of the page.

There’s a fiddle if you want to play with the code: https://jsfiddle.net/tpdorsey/wqo15gb5/

Albers Color Swatches

2015 Reading and Listening Updates

2015 was a busy year with lots of time spent on the road and not enough spent at home with my family or relaxing with a good book. Nonetheless, I did stumble across a few excellent books in the last 12 and updated my reading list accordingly.

Two books stood out. Let me tell you about them briefly.

If you’ve heard about the recent Jessica Jones series on Netflix, you might be interested in some background reading. Alias Omnibus, by Brian Michael Bendis and Michael Gaydos, collects Jones’ background in the Alias stories for Marvel by Bendis and Gaydos, along with some related storylines from other series (as I understand it). The Netflix and Marvel stories differ enough while tackling the same tough material to make both worthwhile reading/watching.

I also received Von Dutch: The Art, The Myth, The Legend, by Pat Ganahl, as a gift and frankly couldn’t put it down. Ignore for a second the recent “Von Dutch” fashion marketing phenomenon, which has nothing at all to do with the man. Dutch was arguably the inventor and master of modern decorative hot-rod pinstriping. Ganahl, a talented, long-time automotive journalist working mostly in the hot rod scene, created a fascinating portrait of the reclusive, eccentric Von Dutch, told mostly through the recollections of people who knew him. The discrepancies in the stories say as much about the fans, friends, and hot rod scene as they do about Dutch. A fascinating and finely told bit of history.

As for all that traveling… while I haven’t acquired a taste for audiobooks yet, I have been listening to hours and hours of podcasts. Two I particularly enjoy are:

Dan Carlin’s Hardcore History features some great, in-depth, wide-ranging narrative overviews of historical people and events. I particularly enjoyed Wrath of the Khans, a five-episode history of Genghis Khan and his hordes, and Blueprint for Armageddon, a six-episode history of World War I as told through personal accounts and diaries.

Beware: these are long-haul listening, and a single episode can go on for hours. On the other hand, I love Carlin’s ability to bring characters to life though quoted excerpts from source materials, as well as his tangent thoughts on those sources and the historians behind them.

My other favorite podcast is Nerds on Draft by my friends Gabe and Jeff. They talk about craft beer and nerdy stuff. You should also check out their excellent beer journal app TapCellar.

Cheers!

Vim Setup Links

I’ve been trying to work a little vim practice into my editing. It’s not to replace my trusty Sublime Text 3 setup, but rather to develop some muscle memory for those times when vim is the most robust editor at hand. And it’s always good to have a backup.

This is just a quick dumping ground for some useful posts I’ve found while setting up a local vim environment.

Configuring Vim on Mac OS X by Tim Reynolds, including sample .vimrc setup.

Vim and iTerm2 color-schemes by Chris Hunt.

How to control vim colors by Alvin Alexander.

10 vim color schemes you need to own

My favorite ST3 color scheme, Plastic Code Wrap, ported to vim by JoeDF at PlasticCodeWrap/GVIM. JoeDF has ported Plastic Code Wrap to over 20 other editors as well.

Here’s another vim port of Plastic Code Wrap by Chris Hoffman.

Vim Commands Cheat Sheet and a concise over view of the most common VIM Editor Commands.

And now to practice…

Sublime Text 3 Setup

I recently had to setup up Sublime Text 3 all over from scratch due to reasons of not planning ahead. It seemed prudent to write the steps all down for future reference and put the whole thing where I wouldn’t loose it. Like on my blog.

Nothing fancy, but it works for my purposes.

Start out by installing Package Control, the package manager for ST2 and ST3.

Open the command palette with CMD+Shift+P (Ctrl+Shift+P on Windows) and run Package Control: Install Package to find and install packages. See the Package Control Usage page for instructions on the process. Generally I like to search for packages on the Package Control site first so I can check for version compatibility, dependency gotchas and evidence of abandonware.

Markdown Extended is my preferred Markdown implementation. I actually set up ST3 to ignore the default Markdown package as you can see in the preferences below.

I’m using Monokai Extended as the theme just for Markdown Extended. Again, see the preferences JSON below. There was some monkey business involved in getting this set up, unfortunately: I had to use PackageResourceViewer to extract Monokai Extended into my /Packages folder, then point to that .tmTheme file (again, see below). This works better on my work machine, so I’ll have to double-check that setup and report back any further information. For now it’s good enough to get working.

I’m also using Colorcoder for semantic code coloring. It looks like Ruby support is installed by default now. Previously I had to use a workaround discussed in this issue on GitHub.

When installed you can now just go to View > Syntax > Colorcoder > Ruby (Colorcode). Colorcoder also has built-in support for C++, Coffeescript, Go, Lua and Python.

Pretty JSON is a good package for formatting and minifying JSON. I find it helpful, along with JSON Formatter for Chrome.

I don’t need to do diffs often, but when I do, Sublimerge: The professional diff and merge tool for Sublime Text 2 and 3 is the way to go. Buy it and support a developer who makes a really nice, useful tool.

As mentioned earlier, I’m using Monokai Extended as my Markdown-specific theme. Colorcoder applies semantic coloring, but it does so in conjunction with your existing theme setting. For general coding, I’m using PlasticCodeWrap, which I grabbed from the terrific tmTheme Editor by Allen Bargi.

And that’s pretty much it for my ST3 setup. My work setup has SublimeLinter 3 installed, but I don’t end up using it much.

Keybindings

I also don’t do much in the way of fancy keybindings. However, here are two that I’ve found useful.

[
  { "keys": ["super+k", "super+t"], "command": "title_case" },
  { "keys": ["ctrl+alt+super+m"], "command": "set_file_type", "args":{ "syntax" : "Packages/Markdown Extended/Syntaxes/Markdown Extended.tmLanguage" } },
    { "keys": ["ctrl+alt+super+t"], "command": "set_file_type", "args":{ "syntax" : "Packages/Text/Plain Text.tmLanguage" } }
]

The first keybinding creates a shortcut for Title Case, which doesn’t have a default keybinding. The shortcut is CMD+K, then CMD+T, which follows the same pattern as the Upper Case and Lower Case bindings.

The second keybinding toggles between text and Markdown syntaxes for the current file. Mostly this is handy for .txt files that contain Markdown. I noticed, however, that this must be a keybinding I originally created for ST2. Package locations have moved around a bit since then. I had to unpack the Markdown Extended package with PackageResourceViewer and point the keybinding to the unpacked tmLanguage file. There must be a better way.

Preferences

Here’s my current Markdown Extended.sublime-settings. This is where I set the a default theme for the syntax that’s different from the general theme.

{
  "color_scheme": "Packages/Monokai Extended/Monokai Extended.tmTheme",
  "margin": 100,
  "wrap_width": 80
}

And here are my general user preferences. I use Inconsolata at a sane size for mature eyes on large or Retina displays. Tabs are two spaces as the goddess intended. You can also see here that I ignore the default Markdown package.

{
  "color_scheme": "Packages/Colorcoder/PlasticCodeWrap (Colorcoded).tmTheme",
  "font_face": "Inconsolata",
  "font_size": 17,
    "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "trim_trailing_white_space_on_save": true,
  "ignored_packages":
  [
    "Vintage",
    "Markdown"
  ],
  "original_color_scheme": "Packages/Monokai Extended/Monokai Extended.tmTheme"
}

I’m not obsessive about fixed-width fonts. Check out Dan Benjamin’s Top 10 Programming Fonts and follow-up posts for some excellent suggestions. Adobe’s Source Code Pro is nice if you don’t mind having Adobe software on your system.

That’s about it for setup. The magic is in the writing and the coding.

Markdown Links with Template

In Dr. Drang’s recent blog post, Quicker Markdown linking with TextExpander, the good Doctor takes a five-step, TextExpander-powered workflow for creating Markdown-flavored links created by David Sparks (of Mac Power Users fame and notoriety) and improves it with a new, streamlined TextExpander snippet fueled by 18 lines of AppleScript.

The Dr. Drang version programmatically retrieves the URL of the current page in either Safari or Chrome and creates a Markdown link with it. The upside of this method is that you can create a Markdown link without having to switch between apps. The downside is that the web page has to be in the currently selected tab in either Safari or Chrome and you have to supply the link text.

It’s a neat solution. In theory it saves you a context swap between editor and browser, and Dr. Drang’s script is also an interesting starting point for much deeper customization. But I’d like to point out what may be an even better option.

Template Extension

The Template extension for Chrome is a highly customizable utility for extracting data from a web page to the clipboard in a single action.

The key feature is Template’s built-in templating language the enables you to create custom actions that can extract just about anything directly associated with a web page or browser: page URL and title text, meta information in the page, links for all current tabs in the browser and a whole lot more. Check out the Guide for details about all of the template tags and operations you can use.

You can execute any of the templates set up in the extension via a toolbar menu, a right-click context menu or, optionally, a user configurable, template-specific keyboard shortcut.

I’ve only touched the surface of what Template can do, but it hugely simplified many aspects of my work as a technical writer, particularly when it comes to capturing research notes or sharing links. Template has become one of those must-have, first install tools, alongside Alfred, Sublime Text 3 and TextExpander.

I’ll give you a few examples of Template in action just to give you an idea of what’s possible.

Using Template

The simplest template I use regularly just grabs the title of a web page and the URL, something I might grab to paste into an email or Tweet. The template tags are simply {title} {url} and it returns simple strings like so:

Bash $PS1 Generator 2.0 https://www.kirsle.net/wizards/ps1.html

A similar one creates a simple Markdown link using the [{title}]({url}) tags. The results look like this:

[Bash $PS1 Generator 2.0](https://www.kirsle.net/wizards/ps1.html)

Template includes a built-in {selectionMarkdown} tag that takes any text you’ve selected from the page and does some simple Markdown conversion of elements such as links, emphasis, strong and so on. Here’s an example:

Still, [as Marvin and Tammi say](https://www.youtube.com/watch?v=svAs-6MiqxE&feature=kp), ain't nothing like the real thing, baby.

I haven’t tested this extensively to see what breaks the encoding, but it meets my limited expectations.

There’s also a {selection} tag that just grabs the selected text. I use this, along with the title, URL and a blockquote prefix, for research notes with an attribution.

> {selection} From: [{title}]({url})

So I just select some text, invoke the Template action, then paste:

This works, but… blech. There’s a better way. From: Quicker Markdown linking with TextExpander - All this

There are some limitations here.

First, it requires Chrome. That’s fine for me, but you may prefer another browser. (I keep Firefox around just for those moments when I need TableTools2, the Firefox extension that Sorts, Searches, Summarizes, Filters, Copies, Charts, Rearranges, Combines and Compares HTML Tables!)

Second, it requires going to the browser tab I want to copy from, which is a context switch specifically avoided by Dr. Drang’s script. I find this an acceptable compromise — generally I’m already looking at the tab when I want to grab a link or other data from it, then switching over to the editor in which I want to use the results. Your mileage may vary.

I’ve used all of, what… four of the built-in tags here, and none of the available operators. There’s just a ton of potential in Template. It’s in no way a replacement for TextExpander, but it is another incredibly handy arrow in the quiver.

And now that I think about it, some pretty interesting things could be done with Template and TextExpander together to extract elements of a page, place them on the clipboard, then paste them with additional formatting or cursor placement via a snippet and some script. Hmmm....

Updating the Reading List

Quick note to mention that I’m updating my Reading List page from using Amazon affiliate links to instead linking up reviews or other relevant discussion.

Two reasons for this:

First, I’m a proponent of supporting local, independent booksellers and I feel that directing readers to Amazon undermines that.

Second, the Amazon links were a convenient way to direct readers to book summaries and reviews. The affiliate links were a “bonus,” but one that never actually paid off. So why bother? There are other sources of more useful reviews. (For example, check out the 1937 review of The Hobbit by C.S. Lewis!)

Replacing older links will be an ongoing project, so check back in occasionally for new book recommendations as well as new review links.

Happy reading!

Beginner iOS Developer Resources

I’ve been learning the basics of iOS programming for the past few months. The best resources I’ve found to get started are tutorials — working through the app project and then making my own customizations to further extend my understanding.

Last week I built my first app entirely of my own devising. It’s a trivially simple GPS-based app and the details aren’t worth sharing (not yet, anyway).

However, there were a number of hurdles along the way. I thought it would be helpful to share some of the useful resources that helped me get over those hurdles.

First, two books that I highly recommend for learning iOS and Xcode are IOS Programming: The Big Nerd Ranch Guide by Joe Conway and Aaron Hillegass (make sure you get the most recent edition) and the Your First iOS 7 App ebook by Ash Furrow. Ash went above and beyond by helping me with a few questions as I worked through his book.

I’m dealing with CLLocationManager, and the locationManager:didUpdateLocations method changed with iOS 6. Matthew at DevFright.com has written some good posts on this including a DidUpdateLocations iOS Example and A Closer Look at the CLLocationManagerDelegate that may help you understand better how to deal with location data.

Daniel Isenhower has a good post explaining Using CoreLocation (GPS) on iOS to track a user’s distance and speed. He’s really explaining his own PSLocationManager library, but I found getting a grasp on how he built PSLocationManager to be a good tutorial in the underlying CoreLocation framework.

A polished app needs icons and launch images. The details on the sizes you’ll need are in Apple’s iOS Human Interface Guidelines: Icon and Image Sizes.

Speaking of icons, Mandar Apte created a handy iOS 7 Icon Template for Pixelmator.

Status bar display details changed in iOS 7 and, because my app has a black background and does not employ a UINavigationController, I had a hard time figuring out why the status bar wouldn’t appear. (It was there, but it was black. Not helpful.)

Taylor Case wrote an in-depth Developer’s Guide to the iOS 7 Status Bar that explains the status bar changes and what you can do about it. Related reference material: Apple’s iOS Information Property List Key Reference.

Something I never did find: a good, current, step-by-step guide for updating developer certificates and provisioning profiles. I muddled through and seem to have pressed all the right buttons in the right order — at least well enough to get the app on my test device — but it was more accident than expertise. Let me know if you come across a useful reference.

10 Horror Films

Back in 2011, I pulled together a list of 10 Great Westerns that I’d recommend watching. In honor of Halloween 2013, here’s a selection of “horror” films I think stand the test of time.

  • The Shining
  • 28 Days Later
  • Halloween
  • Alien
  • Evil Dead 2
  • Jaws
  • The Sixth Sense
  • Invasion of the Body Snatchers
  • Zombieland
  • No Country for Old Men

Special shout out for “Carrie” in recognition of Sissy Spacek’s incredible performance, though I don’t think the movie stands up all that well as a horror film.

Trivia: During my freshman year at UCLA, some friends and I attended what I believed to be the first public showing of an almost-complete “Evil Dead 2: Dead by Dawn” at the film school. Sam Raimi introduced the film, gave us some background about “The Evil Dead” and his efforts to remake it properly, and then… our minds were blown.

Maybe I’m remembering it wrong. There’s nothing I can find on the interwebs referencing this event, so if anyone out there remembers this and can confirm, deny or clarify my memories, please get in touch.

Happy Halloween!

Storing Art Safely

Earlier today I had a brief Twitter conversation with John Resig about storing art, specifically prints. I thought I’d share a few additional thoughts that didn’t quite fit into the space of 140 characters.

Disclaimer: I’m no conservation expert and my art isn’t particularly valuable. If in doubt, consult a pro.

The best method, I think, is to have your prints archivally framed and hanging on the wall. You can enjoy them and they’re relatively safe from damage. Unfortunately, framing is expensive and we only have so much wall space.

Although it’s common practice to ship prints in tubes, you should store them flat if at all possible. It’s almost always possible to flatten out a print, but in my experience the paper tends to develop a memory. The longer it’s rolled, the harder it is to flatten out without developing waves or ripples.

Flat Files

The obvious storage solution is a flat file cabinet. They make it very easy to simply lay the prints in the cabinet and be done with it. However, flat files are big, bulky furniture. The biggest commonly available size is 36” x 48”, which is a lot of real estate in your room. And remember, that’s the outside dimension — the largest print you can accommodate will be more than an inch smaller.

Flat files are also fairly expensive, though careful shopping on Craigslist or the like may turn up something useful.

All that said, if you can swing a flat file, it’s the way to go for safe, bulk print storage. I love mine.

Within the cabinet, some folks like to store prints in mylar sleeves. I tried this route and found the hassle and cost outweighed the utility: the sleeves don’t always lie entirely flat and I couldn’t stack prints without inducing some waviness in prints on lighter-weight paper.

I ended up taking the prints out of the sleeves and instead simply place prints on top of each other, alternating with sheets of acid-free blank paper.

Portfolios

For prints up to 24” x 36”, art portfolios with slip-in sleeves work great for storage. The stiff covers provide good protection for your prints, but make it easy to page through and admire your collection. They also can slip under a bed or, if you’re careful, lean against the back of a closet. Watch out for pests and spills, though.

I like the Itoya 18” x 24” Profolio and Profolio Evolution. This is a common size for gigposters, so the vast majority of my collection fits in these easily.

There are bigger portfolio cases. I have a 24” x 36” Stein deSign Picturesque Presentation Case. Pricey, and only comes with 5 sleeves, though you can expand up to 20 sleeves with “refills”. On the other hand, it’s a very sturdy alternative to a flat file for storing larger prints.

You may also be able to find fold-over artist portfolios in even bigger sizes. They don’t typically have sleeves to help organize your prints or hold them in place, so you need to be careful about handling. Look for acid-free materials.

DIY

I have a few really long prints that don’t fit in any of the commercially available, affordable solutions. So I made my own folders — basically a variation on the fold-over portfolio.

Get some 40” x 60” acid-free foam core boards and some acid-free hinging tape used for framing.

Put two boards on top of each other and tape one edge together, creating a hinge.

Carefully place the prints between the two boards. For added peace of mind, you might want to temporarily mount the prints on heavy acid-free backing paper using framer photo corners or clear mounting strips.

Hold the entire thing closed with big-ass rubber bands or similar. Handle the whole thing carefully — contents are likely to shift.

Get Your Own Art

Hand-made prints — screen prints, woodblock prints and lithographs, usually — are a great introduction to the world of art collecting. There’s something everyone. I really like Andy Warhol’s Cow Wallpaper, but that’s not going on my wall any time soon.

Instead, I accidentally fell into the rock art gig poster scene. You can learn more about it at gigposters.com and Expresso Beans, two of the more active communities for artists and collectors.

John, by the way, has his own fascinating site cataloging Japanese “Ukiyo-e” woodblock prints.

Full disclosure: some of the links on this page are Amazon affiliate links and I could receive a payment from them for any purchases you make during a shopping session initiated via these links.

Return of the Jedi Remembered

30 years ago today, two friends and I ditched school to see the very first screening of Return of the Jedi on its opening day on the biggest movie screen in the county. It turned out to be a significant day in ways I didn’t suspect at the time.

I was a freshman in high school. My friends and I had been, of course, huge fans of the Star Wars franchise since the original movie, 7 years before. In many ways it had become the core of a SciFi and Fantasy obsession dating back even further, fueled by books, magazines like Analog, Starlog and Heavy Metal and the old movies featured by Bob Wilkins on his Saturday evening Creature Features show.

Significant anticipation had built up over the resolution of various plot lines left hanging in The Empire Strikes Back. Is Darth Vader really Luke’s father? Will they rescue Han from Jabba the Hut? And who’s this Boba Fett character?

We couldn’t wait to find out, and dared not run the risk of someone spoiling the surprise. And besides, we were old enough now to see the movies alone. No need to wait for our parents this time.

In those days I didn’t yet have that coveted driver’s license, but we did have the wonderful freedom of our bikes. I frequently rode the 4 miles between home to school. So on that Wednesday afternoon 30 years ago, my friends and I ducked out at lunch, grabbed our bikes and pedaled over to the big “dome” theater in Pleasant Hill to catch the very first showing of Jedi in our town.

It seemed like such a caper at the time. I’d never really been one for breaking the rules, and recall looking over my shoulder several times, half expecting an army of Assistant Principals and Truant Officers to be chasing after us like in The Great Escape.

In reality, I don’t think anyone noticed we’d gone. I certainly don’t recall any disciplinary fallout from that afternoon.

We arrived at the theater and found a small group of people waiting. Not a huge crowd, but we weren’t the only ones hoping for another grand installment in the story of Luke, Leia and the rebellion. We bought tickets, soda and popcorn, debated the best place to sit — we had most of the huge theater to choose from — and settled in for the coming attractions to roll.

The movie itself was great and fulfilled many of our hopes, until… the Ewoks. I remember thinking “Teddy bears? WTF?”

The rest of the movie wasn’t a total disappointment. I mean, the showdown between Luke, Vader and the Emperor was pretty badass. But that’s followed up by the uncomfortable makeup scene between Luke and Fat Vader, the Ewok hoedown, C3PO telling stories (badly I might add) and the bemused Jedi ghosts. (Let’s not even get started on the whole Hayden Christensen thing… that was a disappointment yet to come.)

By the way, here’s 30 things you probably didn’t know about Return of The Jedi.

At the time I probably felt somewhat betrayed by the trite ending and the indignity of a fat bushbaby tribe saving the rebellion. But I soon came to realize something else: George Lucas wanted to keep Star Wars accessible to children. And I was growing up. In some sense I’d moved on and realized these movies weren’t necessarily for me anymore. They were maybe for George Lucas or a new generation of kids or, anyway, people who were less snooty and cynical than this teen-aged cineaste was becoming.

(Ironically, I unintentionally ended up seeing The Phantom Menace on opening day 16 years later, but that’s a story for another day.)

The Star Wars saga no longer holds the position in my life it once did, but it still maintains a place of respect in my pantheon of great stories. I’ve seen all the films so far, if only out of curiosity, and look forward to JJ Abrams’ interpretation of Episode 7, lens flare and all.

I read and highly recommend Michael Heilemann’s Kitbashed blog, dissecting the creative work of George Lucas and the influences remixed into the Star Wars universe. It’s a very grown-up look at myth, film-making, creativity and what it means within our cultural heritage. From Kitbashed I learned of this excellent Michael Kaminski article In Tribute to Marcia Lucas from The Secret History of Star Wars, which outlines her significant contributions to George’s work through Empire (and perhaps why Jedi missed the mark).

As if to underscore the fact that Star Wars remains part of my childhood, that theater where we first watched Jedi shut down in late April and was demolished two weeks ago. Like many other landmarks of my youth, it’s gone forever. But I have fond memories.

And the original theatrical releases on DVD.

View all of the posts in the archive, browse the tags, or subscribe to the feed for All Posts. You can also subscribe to a feed of just the posts tagged with curation.