July 31, 2014
Create 100’s of autopkg Recipes With This One Weird Trick

If you’re like me, you love autopkg. You don’t even want to perform searches for download links anymore.
I’m told there are certain things that can’t be automated. But, when I first saw that many recipes could follow roughly the same format, I thought to myself ‘we have to go deeper’(BUMMMMMMM!BUMBUM!)
I created RecipeGenerationUtils, which lazily generate plists in an easily-customizable format. This allows you to follow a suggested pipeline of making download, then munki, then pkg recipes. Each step builds upon the previous, and one can obviously extend it for Absolute Manage, DeployStudio, FileWave, or Casper recipes just the same. I threw in a convenience script to find .app bundles and find the appcast URL and apps bundle identifier, which puts many of the pieces in your hands.

Then Tim Sutton came along and showed the world this:

A project that has branched-off and is built upon Homebrew’s GUI install tool, Cask, has gained a lot of attention recently, but I’ve found its ability to update apps lacking. It does have a groundswell of community participation though, so one smart system can help the other! I set to work applying my generation utils, and soon after had nearly 400 ‘live’ download recipes to inagurate the Experimental-Brew-Cask-Recipes repo. After confirming the ids of the zipped apps I was able to fetch, pkg recipes were generated, and munki recipes for many others. The description for the apps in the generated munkirecipes are blank, and all of these should get a good look-see, once-over check that they are functional and won’t harsh your mellow.

As a result of all this heavy lifting, you can check my user for a starting point by running e.g. autopkg search -u arubdesu xscope or other apps, like this:

autopkg search -u arubdesu sketch

Name Repo/path
—— ————-
sketch.download.recipe arubdesu/Experimental-Brew-Cask-Recipes/sketch/sketch.download.recipe
sketch.munki.recipe arubdesu/Experimental-Brew-Cask-Recipes/sketch/sketch.munki.recipe
sketch.pkg.recipe arubdesu/Experimental-Brew-Cask-Recipes/sketch/sketch.pkg.recipe

Let me know if you have any feedback!

June 28, 2014

JSS-autopkg-addon Presentation from Allister Banks on Vimeo.

On June 26th, I had the pleasure of being invited by @Tecnico1931 to the NYC Metro JAMF user group meeting.

A worksheet I created for this event may be found here: url.aru-b.com/jssAutopkg

See also Shea Craig’s python-jss, and thanks go out to James Barclay, Sam Johnson, and all the folks mentioned in the video.

September 18, 2013

Dude, I produced the AFP548 podcast, HAVE YOU HEARD OF IT?

Alternate brag: “I didn’t invent the AFP548 podcast, I PERFECTED IT”

Seriously, I’m super proud of the work Jody Rodgers, Tim Sutton, and I did. Inspiration was from Seb Nash and Graham Gilbert, with hosting and help from Nate Walck and Sam Keeley. Couldn’t have done it without all of them folks, on to episode one!

July 3, 2013
OS X is just so superior to Windows, like for example updates, you don’t have to like reboot all the time and there’s never like, dozens of updates waiting to be installed… #burn

OS X is just so superior to Windows, like for example updates, you don’t have to like reboot all the time and there’s never like, dozens of updates waiting to be installed… #burn

June 11, 2013
My Post About (Preparing) Presentations

Giving a talk or presentation or leading a training session at a conference(or ‘camp’ or user group) is a great way to expand your knowledge and get your name out there. Little happens in this world without networking, and I’m lucky enough to have a background watching world-class performers, with my own natural proclivity to stand up and be noticed.

Sitting in a talk where you won’t be able to take anything home to use in your day-to-day life, or having it fail in other ways that make you feel your attendance wasn’t a good use of your time is a major bummer. I decided I had a topic or two I could research further and share my familiarity with after only a few years in the business, and I knew it could be a fun experience. I then did what folks commonly do: I made some slides, took brief notes to describe why I put the things on the slides, and hoped they were the right length and in a logical order.


That didn’t go horribly, but I was annoyed with how I didn’t feel the time I was allotted matched the amount of content I had prepared. You don’t want too little, and you can’t go over - Tom Limoncelli taught me that, after Q&A, you want to end 4 minutes early so the people who came to your talk are the first to hit the refreshments and snacks counters.

Supposedly Malcolm Gladwell memorizes the entirety of his scripted, slide-free talks that he gives as a source of income and for organizations like TED. I was impressed to hear this, but do not presume to be at that level now. I saw the slideshare ‘Presentation Secrets of Steve Jobs' and came up with my current workflow, which is the following:

- Write the script

To not stress too much about the first draft, I consider it a long blog post, which I’m used to producing rapidly. (To spoil the points out of that ‘Presentation Secrets’ reference above, they break it down that you should spend 1/3rd of the time, which for a 1.5 hr preso may be around 40 hours, writing the script. Then 1/3rd on slides, then 1/3rd on rehearsals. Pretty imposing, and you’re not even in front of an audience yet!)

- Load it into a teleprompter app

This is a newer trick, because I need to be ready to rehearse and refine the script separate from Keynote’s crappy notes/outline support. It also tells me immediately if I have enough content to fill the time slot, since there’s a ‘time remaining’ estimate for the current speed. New Yorkers might be known to… talk faster than some, so setting a lower speed also helps me slow down.

- Make the slides

Three guiding principals here: 1. Everything is in service of your script. Fancy transitions and animations will only screw with you(don’t get me started about Prezi) - I go so far as to separate out the appearance of bullets by duplicating the slide and removing the subsequent bullets until that later stage 2. Full-frame pictures reinforce the movie-theater affect and give peoples brains a refuge. Where it doesn’t violate the first principle of being in service to the script, put breaks or transition wording in the script where your slides are elaborating a particular point - which will change running time, of course 3. Too much text (more than ~15 words) and you’ll lose the audiences attention while they read the slides. You want the audiences attention on you, you’re the Virgil taking them through Dante’s Inferno - or hopefully more like the fictional guru Erik Reid of The Phoenix Project guiding folks to enlightenment. 

- Rehearse

It may go without saying, but my favorite comparison is combing your hair in the dark - you know you’re doing something, but without rehearsal you actually have no idea what is going on.

There will be revamping and editing and revising the entire process every time you go through it. You learn more every time, most recently I found I should have added more slides for a talk where the audience already knew(or assumed they knew) the lions share of the content, it would have added to the entertainment value. On the positive side, I also found leaving out a section of the script kept a little of the magic in inventory, so if folks approached me about the topic later I’d have a polished card left to play.

May 27, 2013
PubTime, by @sonradditz

PubTime, by @sonradditz

February 5, 2013
Who knew quicklook shows live web previews of .webloc files? Or that it thought you’d want to open them with iOS Simulator.app…

Who knew quicklook shows live web previews of .webloc files? Or that it thought you’d want to open them with iOS Simulator.app…

February 4, 2013
I wish this page would….
…not require Java

I wish this page would….

…not require Java

January 21, 2013
Catch the Java wave!

Catch the Java wave!

January 14, 2013
Obvious Things (To Me) Folks Are Overlooking Re: ‘A Simple Suggestion’

I don’t want to be too wordy here(ha!) with truisms, and I admit the following may seem preachy even though I don’t purport to be the paragon of virtue myself. However, I wasn’t seeing this point of view represented in the debate over the pledge linked here and followed up here. For those that haven’t come across this yet, the TL;DR version: Presenters may take it upon themselves to pledge that they will not speak on panels/conferences unless women are represented. A bold move for those who can afford the lack of exposure if organizers can’t successfully engage women speakers, and this idea catching on could at the very least cause tension between participants in the short term. The initial fear-mongering holds up tokenism as a probable ill effect, which I feel greatly underestimates other humans lack of desire to be a token, and the genuine truth that women who are great presenters exist in every field and are available. And if it’s someones first presentation, and they screw up, I screwed up plenty in my first presentation, everyone does, we’ll almost certainly still be the better for it as a community.

Being a white male(who speaks english fluently, among other advantages,) I’m probably best put to use in this conversation by talking to… other white males, and therefore the following is addressed to those members of my teensy audience. So in no particular order(and in no stated quantity, since ‘top N’, list posts feel kindof like cheap gimmicks) I’d like to break down other thoughts I came upon while mulling over the counterpoints to common objections, the intention of which is to help start a conversation with other conscientious individuals:

- Minorities can exist in various fluid quantities among different fields(and over time,) not as if proportions are important, but gender is a pretty big, may-as-well-be-50% potential portion of every field. So picking this larger disproportion first could be considered a great start towards equal contributions from all groups - no one’s discounting race or age or any other bias by starting with gender

- Conferences are when you get outside of your comfort zone and glimpse a world other than the one inside your particular bubble. The ‘boys club’ atmosphere and sometimes juvenile humor/alpha male attitude that comes along with it when we only interact with our closest peers could be embarrassing in front of our spouses, parents, daughters and customers. It’s a great reality check when challenged to still be appropriate and comfortable in ‘mixed company’

- Detractors are polling significantly among bald-faced trolls. As recent events may show us, we should strive to stand on the right side of history. ‘My workplace/team/department doesn’t have (m)any women’ is a saying from nearly every workplace before the turn of the previous century. It’s not political correctness, it’s helping other humans realize their ambitions. Correlation is not causation… I’ll stop before I get carried away

- Presenters outnumber organizers(duh.) Organizers could use reminders that participation is a real priority for everyone. If I felt this would endanger my chances as a presenter, which I treasure as an honor any time I’m even considered, well, I can handle the possible downsides. Not to be so melodramatic as to draw parallels to Benjamin Franklin’s ‘Liberty vs. Security’ quote, I do consider this an ethical imperative

The biggest cop-out in all of this is that I realize the pledge is the smallest of possible contributions I can make as a (white) male; Women, strong ones that will rise through the ranks in spite of the prevailing detractors and obstacles, they will be turning the tide on this. They will stand up and be(and have been) part of the initial waves of mentors and role models, irregardless of the all-too-real bias of the support structures in place in education and industry.

Should there be more/better things that we can do about this issue? Absolutely. Conference panel representation isn’t a silver bullet to break down homogenous fields that could be advanced with more perspectives, but let’s not stand still or listen to lesser instincts by discounting smaller steps like this suggestion.

Further Reading:

Unpacking Male Privilege

And More on Women Speakers at Tech Conferences

December 21, 2012
Software releases are hard (LGS)

Software releases are hard (LGS)

December 18, 2012
Stop worrying and… at least like the bomb


Applescript is back in the spotlight, thanks in part to a post by the self-described raconteur John Gruber, writing for Macworld. Armin Briegel did more for me to solidify the upsides of it as a tool that can help real people get things done now… but enough about Casper. (I’ve been criticized for having too much on my mind and trying to share (debatably) dense thoughts without a gentle ramp-up. But them folks probably won’t be reading this anyway.)

Where was I? Applescript. I had the… luck of finding a script that would add BPM tags to my iTunes library, through the conduit of running the Djay application against it first, which stores the values in a separate file. It took over a week and a half for that Applescript to run(alternately spiking one CPU or the other on 10.6 client,) but my media server wasn’t really doing that much anyway.

Now, if you’re like me, you’re interested in getting things done in Mac IT - so I’ve got two optimizations that are tangentially related to Applescript: Services and Automator. As mentioned in a recent podcast episode by previously-mentioned raconteur, ThisService is an app that’s been around for a good long while, and has been spiffied up not too long ago. A Mac sysadmin may find the need to generate a new UUID, say for use in CreateUserPkg.app by MagerValp. As one of the pre-canned examples, you can generate and paste that text anywhere in OS X that supports Services. Code that already exists! Win! <Insert big disclaimer: these are only text-based services you can interact with(as far as I can tell.) I’m hoping to keep my eye out for times I pop into the terminal to generate a bit of text to grab so I can automate all the things, as they say.>

I had looked into ThisService because it sounded cool, but I didn’t realize it wasn’t going to solve the problem I had been inspired to search it out for: unflattening the new-ish(2007? earlier?) installer package format. One trip to Automator later, I’ve got a service for that! Download ➡ here ⬅. Just drop it into your ~/Library/Services folder and enable it in System Preferences(or use Services Manager, also mentioned in the podcast above,) and you’re off to the races. Two optimizations you may want: how about auto-unxar-ing the Payload(since we’re following the commandments of packaging and use less payload-free packages now?) Open the Service in Automator and uncomment the corresponding lines to auto-expand it! Have BigHonkingText or some notification conduit(Growl, etc.) installed? An example is included to send a alert to the screen, just in case the payload may take a bit to unpack, to give you some feedback.

Feel free to reach out for feedback, assistance, or laugh at my bash.

October 8, 2012
"The motive of the algorithm is still unclear"

— cnbc - our modern times, eh?
via @acdha

(Source: cnbc.com)

August 18, 2012
Ollldd Schoooool

via https://twitter.com/justindelliott/statuses/236894491376771074

Ollldd Schoooool

via https://twitter.com/justindelliott/statuses/236894491376771074

August 17, 2012
We don&#8217;t lie to search engines

Via https://twitter.com/PaulNendick/statuses/236417651298164736

We don’t lie to search engines

Via https://twitter.com/PaulNendick/statuses/236417651298164736