Tiny Deathstars of Foulness

There are a lot of scripts stored on github. And you can run them directly by curling them into bash. To do so, you’ll need a link to the raw script (using the github page with the URL of the script brings in all the cruft, so you’ll need to find the raw text). To grab that, click on the page with the script and then right-click  on Raw, as seen here:

Screen Shot 2016-04-16 at 11.21.48 PM

Then, throw out a bash command followed by < and then the URL you just copied into your clipboard in parenthesis:

bash <(curl -Ls

April 20th, 2016

Posted In: Mac OS X, Mac OS X Server, Mac Security, Ubuntu, Unix

Tags: , , , ,


Apple Configurator 2 is a great tool. But you need to debug things from time to time. This might mean that a profile is misconfigured and not installing, or that a device can’t perform a task you are sending it to be performed. This is about the time that you need to enable some debug logs. To do so, quit Apple Configurator and then write a string of ALL into the ACULogLevel key in ~/Library/Containers/

defaults write ~/Library/Containers/ ACULogLevel -string ALL

To disable, quit Apple Configurator and then delete that ACULogLevel key:

defaults delete ~/Library/Containers/ ACULogLevel

April 19th, 2016

Posted In: Apple Configurator, iPhone

Tags: , , , , ,

Leave a Comment

The Caching Server in OS X is a little bit of a black box. But, it’s not all that complicated, compared to some things in the IT world. I’d previously written about command line management of the service itself here. When you enable the caching service, the server registers itself as a valid Caching Server. Nearby devices then lookup the closest update server with Apple and register with that update server using a GUID:

/Applications/ settings caching:ServerGUID

Then, each time the device looks for an update, it does so against using the device model. Noticed this with this line in my proxy logs:

"GET HTTP/1.1" 200 - "-" "MobileAsset/1.0"

Let’s say that the device is an iPad 2,7, then the following information is used for the update, with a URL of, which is created using the _BaseURL string followed by the _RelativePath string:

<string>Apple Inc.</string>

You can then use these dictionaries to assemble this path for all items in the dictionary with “iPad 2,7” in the SupportedDevices key. You can also choose to assemble this path for all items with the OSVersion of a given string, such as 9.3.1 in this case. You could curl these updates down to a client, or request them through the caching service, which would cache them to the Caching Server, using the IP of the server (e.g.

Found the above URL using a reverse proxy. This URL is generated based on an http request to the IP address of the caching service, followed by the port. The port is derived using the serveradmin command and query the settings for caching:Port as follows:

/Applications/ settings caching:Port

In this example, the URL is then

But the URL then splits the _BaseURL into two parts, taking from the URL and appending ? So without the update, the URL would be the following:

OK, so now we’ll pop the other part of that _BaseURL in there:

And then there’s one more step, which is throw the zip in there:

Viola. Curl that and the caching server will download that update and make it ready for clients to access. Everything is hashed and secure in the directory listed using this command:

/Applications/ settings caching:DataPath

April 18th, 2016

Posted In: Apple Configurator, Mac OS X, Mac OS X Server, Mac Security

Tags: , , , , , , ,

Leave a Comment

When уоu thіnk of State College, thеrе’ѕ a gооd сhаnсе thаt one thіng соmеѕ tо mіnd: Pеnn Stаtе fооtbаll. And while thе tеаm іѕ a bіg drаw for thе rеgіоn, thеrе are рlеntу оf оthеr grеаt thіngѕ tо dо іn State Cоllеgе аnd the rеѕt of Cеntrе Cоuntу. Thеrе аrе mаnу оutdооrѕ асtіvіtіеѕ іn Cеntrаl Pеnnѕуlvаnіа. Cеntrе Cоuntу has several rесrеаtіоn сеntеrѕ аnd facilities for уеаr-rоund fun, іnсludіng сусlіng, fіѕhіng, hiking, саmріng, golf, ісе ѕkаtіng аnd more. Whеthеr уоu lіvе іn Stаtе College, Bеllеfоntе, Boalsburg or Phіlірѕburg, аttеnd Pеnn Stаtе University, оr аrе vіѕіtіng Central Pennsylvania fоr business оr рlеаѕurе.

Sоmе оf thеm, like thе All-Stаtе Museum оr thе Pеnn Stаtе Creamery аrе wеll known. Hоwеvеr, оthеrѕ mіght bе a bіt оf a ѕurрrіѕе fоr еvеn thе mоѕt knоwlеdgеаblе оf residents аnd аlumnі. Hеrе аrе ѕоmе the thіngѕ уоu can dо whеn vіѕіtіng State College, Pеnnѕуlvаnіа In Lаtе Junе:

Drink Crаft Beer

Aѕ a соllеgе town, уоu might thіnk that State Cоllеgе іѕ full оf сhеар bееr. Hоwеvеr, thеrе аrе ѕоmе really grеаt сrаft bееrѕ that are mаdе right іn Cеntrе Cоuntу.
Rоbіn Hооd Brewing Cоmраnу brеwѕ out of thе Hоmе D Pіzzеrіа іn Bеllеfоntе, but аlѕо sells thеіr bееr оut оf thе Home D lосаtіоn іn State Cоllеgе. While уоu саn’t tоur thе brewery, if уоu’rе lucky, уоu might ѕее thе brеwеrѕ аt wоrk, bеhіnd thе lаrgе glаѕѕ wіndоwѕ іn the bаr.

If you’re іn the mood fоr сrаft bееr, Ottо’ѕ Brеwеrу and Hарру Vаllеу Brеwіng Cоmраnу аlѕо put out some great beers.

Eаt Authеntіс Cаjun Fооd

Authentic Cаjun fооd in thе mіddlе оf Pennsylvania mіght seem оdd, but аt Spats Cаfе on thе еdgе оf downtown Stаtе College, you саn hаvе just thаt. Chеf/Ownеr Dukе Gаѕtіgеr learned hоw to cook Cаjun fооd whіlе lіvіng іn Lоuіѕіаnа and brought his tаlеntѕ bасk tо Cеntrаl Pеnnѕуlvаnіа. Sраtѕ Cаfе іѕ dеfіnіtеlу a unіԛuе аnd delicious dining option іn dоwntоwn State Cоllеgе.

Explore Wоrld-Clаѕѕ Art

On thе campus оf Pеnn Stаtе’ѕ саmрuѕ is the Pаlmеr Museum оf Art. Thіѕ frее-аdmіѕѕіоn muѕеum оffеrѕ a ѕmаll, but fаntаѕtіс collection оf аrt rаngіng from Asian сеrаmісѕ tо modern American раіntіngѕ.
Thе museum doesn’t fееl at аll lіkе a typical соllеgе muѕеum, аnd іnѕtеаd fееlѕ mоrе lіkе ѕоmеthіng уоu’d expect іn a large city. Of course, thе hіgh ԛuаlіtу оf the ріесеѕ оn dіѕрlау hеlр maintain thіѕ fееlіng. Thіѕ is dеfіnіtеlу a fantastic dеѕtіnаtіоn for anyone lооkіng for a lіttlе сulturе

Tour A Cаvеrn Bу Boat

There are plenty of caverns іn Pеnnѕуlvаnіа, but thеrе’ѕ оnlу оnе that уоu can tоur by boat. Located in Centre Hаll, Penn’s Cave offers fantastic tours of this beautiful, water-filled cavern. Bоаt tоurѕ trаvеl thrоugh thе саvе аnd stop at a variety оf іntеrеѕtіng rock fоrmаtіоnѕ.

Along the way, the guіdе tells аbоut the саvе’ѕ hіѕtоrу аnd thrоwѕ іn a few vеrу соrnу jоkеѕ. Thаnkѕ for some engineering wоrk dоnе іn the early 20th century, tоurѕ actually go оutѕіdе thе cave at іtѕ end аnd іntо the man-made Lake Nіttаnее, bеfоrе rеturnіng bасk іntо thе саvе on the way bасk tо thе mаіn entrance.
The еxреrіеnсе оf trаvеlіng thrоugh a саvе in a bоаt іѕ one thаt you can’t gеt аnуwhеrе еlѕе еаѕt оf thе Mіѕѕіѕѕіррі River, ѕо іt’ѕ wеll-wоrth checking оut!

Sее Chrіѕtорhеr Cоlumbuѕ’ Sеа Chеѕt

Of all thе surprising thіngѕ оn this list, thіѕ one mіght be the mоѕt ѕhосkіng. Lосаtеd іn Bоаlѕburg, thе Columbus Chapel аnd Boal Mansion is home tо ѕоmе of the mоѕt рrісеlеѕѕ artifacts іn аll оf Pennsylvania. Inѕіdе thе twо mаіn buіldіngѕ hеrе are Chrіѕtорhеr Cоlumbuѕ’ Sеа Chеѕt, Crusade relics that are said tо bе frоm Jеѕuѕ’ cross, a lосk оf Napoleon’s hаіr, аnd muсh, muсh more. The truth оf thіѕ place іѕ ԛuіtе ѕtrаngеr than fісtіоn.

Yоu can also buy frеѕh hаnd made раѕtа аt Fаѕtа &Rаvіоlі аnd fulfіll all уоur glutеn frее needs аt Gооd Sееd Bаkіng Cоmраnу. Alѕо, hеаr lіvе сlаѕѕісаl muѕіс wіth 2 lосаl оrсhеѕtrаѕ, 3-5 Unіvеrѕіtу orchestras, and thе Penn’s Wооdѕ Summеr Fеѕtіvаl orchestra…


Finally, there are so many things to do in this charming city. You have to grab a selfie in front of Beaver Stadium, grab a tasting at Happy Valley Vineyard, check out the Arboretum, swing by the Palmer Museum of Art, visit Matson Museum of Anthropology, find solace at Hillbrook Marsh Nature Center, and check out one of the many, many, many wonderful bars and restaurants in State College.

April 17th, 2016

Posted In: Uncategorized

Leave a Comment

Mysql command options:

–auto-rehash Enable or disable automatic rehashing
–auto-vertical-output Automatically display output of commands vertically rather than horizontally
–batch Do not write to the history file

–binary I use this when I have large results timing out due to blobs being in there
–bind-address Specify a network interface when connecting to the server
–character-sets-dir Indicate a custom directory where character sets are installed
–column-names Output column names when running queries
–column-type-info Show metadata
–comments Enable or disable commenting when sending statements to the server
–compress Compresses data sent to/from client and server
–connect_timeout Seconds of inactivity before a timeout
–database The database to connect to
–debug Write debugging log; supported only if MySQL was built with debugging support
–debug-check Print debugging information when program exits
–debug-info Print debugging information, memory, and CPU statistics when program exits
–default-auth Authentication plugin to use
–default-character-set Specify default character set
–defaults-extra-file Read named option file in addition to usual option files
–defaults-file Read only named option file
–defaults-group-suffix Option group suffix value
–delimiter Set the statement delimiter
–enable-cleartext-plugin Enable cleartext authentication plugin
–execute Execute the statement and quit
–force Continue even if an SQL error occurs
–help Display help message and exit
–histignore Patterns specifying which statements to ignore for logging
–host Connect to MySQL server on given host
–html Produce HTML output
–ignore-spaces Ignore spaces after function names
–init-command SQL statement to execute after connecting
–line-numbers Write line numbers for errors
–local-infile Enable or disable for LOCAL capability for LOAD DATA INFILE
–login-path Read login path options from .mylogin.cnf
–max_allowed_packet Maximum packet length to send to or receive from server
–max_join_size The automatic limit for rows in a join when using –safe-updates
–named-commands Enable named mysql commands
–net_buffer_length Buffer size for TCP/IP and socket communication
–no-auto-rehash Disable automatic rehashing
–no-beep Do not beep when errors occur
–no-defaults Read no option files
–one-database Ignore statements except those for the default database named on the command line
–pager Use the given command for paging query output
–password Password to use when connecting to server
–pipe On Windows, connect to server using named pipe
–plugin-dir Directory where plugins are installed
–port TCP/IP port number to use for connection
–print-defaults Print default options
–prompt Set the prompt to the specified format
–protocol Connection protocol to use
–quick Do not cache each query result
–raw Write column values without escape conversion
–reconnect If the connection to the server is lost, automatically try to reconnect
–safe-updates Only process UPDATE and DELETE statements when they have values
–secure-auth Do not send passwords to server in old (pre-4.1) format 5.7.5
–select_limit The automatic limit for SELECT statements when using –safe-updates
–server-public-key-path Path name to file containing RSA public key
–shared-memory-base-name The name of shared memory to use for shared-memory connections
–show-warnings Show warnings after each statement if there are any
–sigint-ignore Ignore SIGINT signals (typically the result of typing Control+C)
–silent Run silently (necessary when daemonizing)
–skip-auto-rehash Disable automatic rehashing
–skip-column-names Do not write column names in results
–skip-line-numbers Skip line numbers for errors
–skip-named-commands Disable named mysql commands
–skip-pager Disable paging
–skip-reconnect Disable reconnecting
–socket For connections to localhost, the Unix socket file to use
–ssl Enable secure connection
–ssl-ca Path of file that contains list of trusted SSL CAs
–ssl-capath Path of directory that contains trusted SSL CA certificates in PEM format
–ssl-cert Path of file that contains X509 certificate in PEM format
–ssl-cipher List of permitted ciphers to use for connection encryption
–ssl-crl Path of file that contains certificate revocation lists
–ssl-crlpath Path of directory that contains certificate revocation list files
–ssl-key Path of file that contains X509 key in PEM format
–ssl-mode Security state of connection to server 5.7.11
–ssl-verify-server-cert Verify server certificate Common Name value against host name used when connecting to server
–syslog Log interactive statements to syslog 5.7.1
–table Display output in tabular format
–tee Append a copy of output to named file
–tls-version TLS versions Protocols permitted for secure connections
–unbuffered Constantly flush buffers
–user The user name to use when connecting to server (SQL users are not the same as users on an OS)
–verbose As with most other commands, output verbosely
–version Show the MySQL version number
–vertical Show one line per column in query outputs
–wait Retry when a connection fails
–xml Output data into an XML format

April 17th, 2016

Posted In: Mac OS X, Mac OS X Server, Mac Security

Tags: , , , ,

Leave a Comment

Love working with Chuck Joiner. It’s great to record these podcasts, and always have a blast hanging out with Chuck. This episode is covering my latest book on OS X Server. Stoked to get the chance to do this again! To check out the book, click here!

April 16th, 2016

Posted In: Mac OS X Server

Tags: , ,

Leave a Comment

Creating a classroom is a pretty straight forward process in Profile Manager. To do so, open the Profile Manager web interface and click on Classes in the sidebar. For your first class, click Add Class (for future ones, click the plus sign (+).

Screen Shot 2016-04-14 at 9.39.39 PM

At the New Class screen, click into New Class in the title bar and provide a name for the class. Optionally, provide a description, as well. Click on the Save button to save the class.

Screen Shot 2016-04-14 at 9.40.04 PM

Then click on the Instructors tab and use the plus sign towards the bottom of the screen and then choose the user or group you’d like to add as the Instructor for the class. Click on the Students tab to add a user or group as a student.

Screen Shot 2016-04-14 at 9.40.17 PM

Next, click on the Devices tab and then click on the plus sign (+) at the bottom of the screen. Here, click on Add Device Groups to add a group of devices.

Screen Shot 2016-04-14 at 9.41.27 PM

Additionally, check the box for Shared if the iPads will be shared iPads.

Screen Shot 2016-04-14 at 9.41.18 PM

Click OK once you’ve added the appropriate Device Group, and then click on the Save button to save the class setting.

April 15th, 2016

Posted In: Mac OS X, Mac OS X Server, Mac Security

Tags: , , , , ,

One Comment

Any time I need to get a bunch of cruft out of Software Update Server on OS X Server, I just reset it real quick. To do so, simply remove /Library/Server/Software Update. But first, it’s important to stop the service, and once removed, set the port back up (which isn’t done automatically), and then start the service (swupdate). As this has become somewhat routine, I made a micro-script of it here.

Screen Shot 2016-04-14 at 10.22.32 PM

April 14th, 2016

Posted In: Mac OS X, Mac OS X Server, Mass Deployment

Tags: , , , ,

Leave a Comment

My first article on Entrepreneur is out! This is a piece on lessons about running a business that I learned from… Superheroes. So continuing the overarching theme of linking business, technology, and what we in those realms are actually interested in! These articles evolve once they go to the publisher, which is fun for me to watch as well. Anyway, I hope you enjoy. As usual, a sample, and a photo (many of these are for my own library, btw).

“Batman v Superman” set a record in late March for the biggest superhero movie international opening ever (negative reviews aside, as parodied in the “Sad Affleck” video that’s closing in on 20 million hits as of this writing). Superheroes are serious business, in more ways than you might think.

Comics, movies and TV shows have taught me a bunch of lessons. For example, growing up without much diversity in my community, I learned about racism from reading the X-Men. But the most surprising lessons relate to the business world.

A list of some lessons that can be taught by a dozen of our favorite superheroes:

Screen Shot 2016-04-11 at 11.43.04 AM

Click here to read about the lessons (and the powers/flaws of our favorite characters)!

April 11th, 2016

Posted In: Articles and Books

Tags: , , , , , ,

Leave a Comment

My latest post on Huffington Post is “From Dungeon Master to Scrum Master: 15 Software Development Lessons from Dungeons and Dragons” and is a bit of a revamp of my D&D article from here, but geared towards SCRUM mastering and managing Software Development teams. You may find it fun and kitschy or you may find it dumb. I’m kinda’ ok with both (I’m learning that I can’t make all the people happy all the time).

A sampling of that article:

I started playing Dungeons and Dragons in about the 5th or 6th grade. I didn’t get good at it for a while, but once I did, I didn’t play much longer (insert reference to “The Best Days of My Life” here.) Dungeons and Dragons taught me a few lessons that I didn’t realize would turn out to be great life lessons, until I was much older. This childhood game taught me life lessons that I would eventually apply to the business world – more specifically, the world of software development – and I know I’m not alone. In fact, there is a distinct possibility that many a developer got their start scoping out character sheets, and many a Scrum Master began as a Dungeon Master.

Here are a few of the lessons I took away from those carefree days. And yes, this image is from a box set sitting on my table at home. Don’t judge.

1. Build a great campaign, and if the game is good, expect your players to break it. 

In software, we design workflows. Then, users take routes we never thought possible. You build a product, sell the product and potentially service the product long-term. Maybe it sells, maybe it doesn’t – but if you’re not ready for the sales to happen, you won’t sell that much. How much work do you put into building a campaign, or game, in Dungeons and Dragons, if the characters are just going to go right off your script? How much effort do you put into building a business if the customers are just going to buy something from you that is completely different than what you thought you were going to sell? These are the same questions, and there’s no right answer to either (although there are many wrong answers). Understand that when momentum strikes, if you don’t have a good campaign built that is flexible, you won’t maintain that momentum. And if you haven’t thought of all the various routes a user can take around your software, you’re going to have a bunch of lost paladins mucking around in swamps with no monsters!

To read more, click here.

Screen Shot 2016-04-10 at 5.24.24 PM


April 10th, 2016

Posted In: Articles and Books, Product Management

Tags: , , , , , ,

« Previous PageNext Page »