<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Everything is Gray</title><link>https://everythingisgray.com/</link><description>Recent content on Everything is Gray</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>James Barclay</copyright><lastBuildDate>Wed, 24 May 2023 23:14:20 -0400</lastBuildDate><atom:link href="https://everythingisgray.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Custom Tidbyt Apps</title><link>https://everythingisgray.com/2023/05/24/custom-tidbyt-apps/</link><pubDate>Wed, 24 May 2023 23:14:20 -0400</pubDate><guid>https://everythingisgray.com/2023/05/24/custom-tidbyt-apps/</guid><description>&lt;p>I&amp;rsquo;ve had my &lt;a href="https://tidbyt.com/">Tidbyt&lt;/a> for almost a year now, and generally speaking I really like it. But one of its biggest gaps (in my opinion) is the lack of support for custom apps. Tidbyt apps &lt;em>are&lt;/em> relatively &lt;a href="https://github.com/tidbyt/pixlet/blob/main/docs/tutorial.md">easy to write&lt;/a>, (they&amp;rsquo;re written in &lt;a href="https://github.com/bazelbuild/starlark">Starlark&lt;/a>, a dialect of Python). They also have a directory of &lt;a href="https://tidbyt.dev/docs/publish/community-apps">Community Apps&lt;/a> which anyone can contribute to. However, if you just want to build a silly custom app that you have no intention of sharing, (or you just can&amp;rsquo;t imagine other people getting use out of it), then your options are fairly limited. You &lt;em>can&lt;/em> &lt;a href="https://tidbyt.dev/docs/build/build-for-tidbyt#push-to-a-tidbyt">render a WebP image from a Starlark source file and push it to your device&lt;/a>, but if you want it to continuously update there&amp;rsquo;s not much you can do. This is unfortunate, because I was trying to build a custom countdown clock for my daughter based entirely on an inside joke, (her favorite musician is &lt;a href="https://en.wikipedia.org/wiki/Nick_Rattigan">Nick Rattigan&lt;/a>, and one of her friends called him &amp;ldquo;rat man&amp;rdquo; at some point and it stuck). So when we recently got tickets to &lt;a href="https://adjacentfestival.com/">Adjacent Fest in Atlantic City&lt;/a> (where he was playing), I decided to create a modified version of the &lt;a href="https://github.com/tidbyt/community/tree/main/apps/countdownclock">Countdown Clock&lt;/a> app with an image I cobbled together of a rat with a man, counting down to the days left before the concert. I ended up solving this problem by writing a script to generate the WebP image, pushing it to my device, and triggering it to run every 90 seconds by a LaunchD job on one of my Mac mini servers. Since I&amp;rsquo;m also passing the &lt;code>-i&lt;/code> option along with an installation ID to &lt;code>pixlet push&lt;/code>, it also &lt;a href="https://tidbyt.dev/docs/integrate/pushing-apps#apps-and-installations">shows up in the Tidbyt mobile app&lt;/a>, as seen below.&lt;/p></description></item><item><title>Sonos, Apple TV 4K, and Dolby Atmos</title><link>https://everythingisgray.com/2023/05/16/sonos-apple-tv-4k-and-dolby-atmos/</link><pubDate>Tue, 16 May 2023 22:56:58 -0400</pubDate><guid>https://everythingisgray.com/2023/05/16/sonos-apple-tv-4k-and-dolby-atmos/</guid><description>&lt;p>I (somewhat) recently purchased a Sonos system to use as my TV speakers and for listening to music around the house. Overall, just about everything worked out-of-the-box, but I did have some trouble getting Dolby Atmos working with my Apple TV 4K, specifically. I eventually got it working after fiddling with the settings on my LG TV for a while, but I figured I&amp;rsquo;d write about it here in case it will help others or if I forget. :P&lt;/p></description></item><item><title>Automatically Publish Hugo Site to GitHub Pages With GitHub Actions</title><link>https://everythingisgray.com/2021/12/29/automatically-publish-hugo-site-to-github-pages-with-github-actions/</link><pubDate>Wed, 29 Dec 2021 00:47:13 -0500</pubDate><guid>https://everythingisgray.com/2021/12/29/automatically-publish-hugo-site-to-github-pages-with-github-actions/</guid><description>&lt;p>In &lt;a href="https://everythingisgray.com/2020/11/03/migrating-from-octopress-to-hugo/">a previous post&lt;/a> I described my process for migrating an existing Octopress site to Hugo, and at the end I said I wanted to figure out how to automatically publish the site to GitHub Pages with GitHub Actions next. I ended up finding a solution for this a while ago, but I wasn&amp;rsquo;t particularly happy with the way it was set up. Before getting too far, though, it&amp;rsquo;s worth mentioning that I ended up going with a multi-repository approach rather than using the same repo with a separate &lt;code>gh-pages&lt;/code> orphan branch. I didn&amp;rsquo;t necessarily have a good reason for picking one approach over the other, except that this was how I got it working initially and I just stuck with it. :) Anyway, the reason I wasn&amp;rsquo;t happy with how it was setup before (and why I decided to change it recently) is that I had &lt;a href="https://github.com/futureimperfect/everythingisgray-hugo/blob/e43a6b290b978e86ac27dfe223920b0006d2b223/deploy.sh">a separate deploy script&lt;/a> for building the Hugo site and publishing the changes to the target repo, but I wanted to use available actions from the &lt;a href="https://github.com/marketplace?type=actions">GitHub Actions Marketplace&lt;/a> as much as possible, and to have a single YAML file to manage it all. Previously, I was using a GitHub Action called &lt;a href="https://github.com/marketplace/actions/webfactory-ssh-agent">&lt;code>ssh-agent&lt;/code>&lt;/a> to load my SSH private key into the SSH agent on the GitHub Actions runners, which was then used for performing Git operations in the deploy script. It turns out that a simpler solution exists if all you want to do is build a Hugo site and deploy it to a separate GitHub Pages repo using GitHub Actions, though. This involves using the &lt;a href="https://github.com/peaceiris/actions-hugo">&lt;code>peaceiris/actions-hugo&lt;/code>&lt;/a> and &lt;a href="https://github.com/peaceiris/actions-gh-pages">&lt;code>peaceiris/actions-gh-pages&lt;/code>&lt;/a> actions. Next, I&amp;rsquo;ll share how I set this up.&lt;/p></description></item><item><title>Migrating From Octopress to Hugo</title><link>https://everythingisgray.com/2020/11/03/migrating-from-octopress-to-hugo/</link><pubDate>Tue, 03 Nov 2020 20:09:25 -0500</pubDate><guid>https://everythingisgray.com/2020/11/03/migrating-from-octopress-to-hugo/</guid><description>&lt;p>&lt;img src="https://everythingisgray.com/images/2020-11-03-migrating-from-octopress-to-hugo/everythingisgray-plus-hugo.png" alt="Everything is Gray + Hugo" title="Everything is Gray + Hugo">&lt;/p>
&lt;p>I recently migrated this blog from &lt;a href="http://octopress.org/">Octopress&lt;/a> to &lt;a href="https://gohugo.io/">Hugo&lt;/a>. I did this for a few reasons:&lt;/p>
&lt;ol>
&lt;li>I know next to nothing about Ruby, so troubleshooting toolchain and dependency issues in order to deploy my static site was a huge pain.&lt;/li>
&lt;li>Octopress hasn&amp;rsquo;t been updated in &lt;em>years&lt;/em>. Hugo, on the other hand, is &lt;em>very&lt;/em> actively maintained.&lt;/li>
&lt;li>Hugo is written in Go, which I&amp;rsquo;m more familiar with. It&amp;rsquo;s also fast and fairly customizable.&lt;/li>
&lt;/ol>
&lt;p>I initially looked into migrating to &lt;a href="https://blog.getpelican.com/">Pelican&lt;/a>, which is a static site generator written in Python, (which I also love). Pelican has been around for a while and seems to have a great community surrounding it, but ultimately I chose Hugo because I&amp;rsquo;m writing more Go than Python these days, and the handful of times I used Hugo at my last job I was impressed with its speed and ease of use. Another reason I ended up going with Hugo is because I found a migration tool called &lt;a href="https://github.com/codebrane/octohug">Octohug&lt;/a> and was able to stand up a local version of my existing site &lt;em>very&lt;/em> quickly, (albeit with a few issues at first). Next, I&amp;rsquo;ll walk through some of the steps I took to migrate this blog.&lt;/p></description></item><item><title>Get Mac Serial Number Programmatically With Cgo</title><link>https://everythingisgray.com/2018/12/01/get-mac-serial-number-programmatically-with-cgo/</link><pubDate>Sat, 01 Dec 2018 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2018/12/01/get-mac-serial-number-programmatically-with-cgo/</guid><description>&lt;p>I recently had the occassion to obtain the serial number from a Mac within a Go program. Rather than shelling out to &lt;code>system_profiler&lt;/code> or &lt;code>ioreg&lt;/code>, I opted to use &lt;a href="https://blog.golang.org/c-go-cgo">Cgo&lt;/a> and retrieve the serial number via the &lt;code>IOKit&lt;/code> framework. Here&amp;rsquo;s how that looks:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-go" data-lang="go">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">package&lt;/span> &lt;span style="color:#a6e22e">main&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// #cgo LDFLAGS: -framework CoreFoundation -framework IOKit
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// #include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// #include &amp;lt;IOKit/IOKitLib.h&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">//
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// const char *
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// getSerialNumber()
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// {
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// CFMutableDictionaryRef matching = IOServiceMatching(&amp;#34;IOPlatformExpertDevice&amp;#34;);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, matching);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// CFStringRef serialNumber = IORegistryEntryCreateCFProperty(service,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// CFSTR(&amp;#34;IOPlatformSerialNumber&amp;#34;), kCFAllocatorDefault, 0);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// const char *str = CFStringGetCStringPtr(serialNumber, kCFStringEncodingUTF8);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// IOObjectRelease(service);
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">//
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// return str;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// }
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#f92672">import&lt;/span> &lt;span style="color:#e6db74">&amp;#34;C&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">import&lt;/span> (
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#e6db74">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">func&lt;/span> &lt;span style="color:#a6e22e">main&lt;/span>() {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">serialNumber&lt;/span> &lt;span style="color:#f92672">:=&lt;/span> &lt;span style="color:#a6e22e">C&lt;/span>.&lt;span style="color:#a6e22e">GoString&lt;/span>(&lt;span style="color:#a6e22e">C&lt;/span>.&lt;span style="color:#a6e22e">getSerialNumber&lt;/span>())
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">fmt&lt;/span>.&lt;span style="color:#a6e22e">Println&lt;/span>(&lt;span style="color:#a6e22e">serialNumber&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Make sure that the &lt;code>import C&lt;/code> line goes directly below the C code, otherwise it will fail with something like the following:&lt;/p></description></item><item><title>TrumpBlockr</title><link>https://everythingisgray.com/2015/10/26/trumpblockr/</link><pubDate>Mon, 26 Oct 2015 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2015/10/26/trumpblockr/</guid><description>&lt;p>Today I released &lt;a href="https://appsto.re/us/bpqB-.i">TrumpBlockr&lt;/a>, a &lt;a href="https://www.webkit.org/blog/3476/content-blockers-first-look/">WebKit Content Blocker&lt;/a> that hides or blocks Donald Trump related content from Mobile Safari.&lt;/p>
&lt;p>I had quite a few laughs developing it, and showing it to friends and family. Maybe you&amp;rsquo;ll get a kick out of it too.&lt;/p>
&lt;p>Enjoy it. Or don&amp;rsquo;t.&lt;/p></description></item><item><title>Clean Up Whitespace With find and sed</title><link>https://everythingisgray.com/2014/10/07/clean-up-whitespace-with-find-and-sed/</link><pubDate>Tue, 07 Oct 2014 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2014/10/07/clean-up-whitespace-with-find-and-sed/</guid><description>&lt;p>Unclean whitespace in source code makes me sad. The following will remove all trailing whitespace in files within the current directory that end with &lt;code>.h&lt;/code> or &lt;code>.m&lt;/code>, (which makes me happy). I&amp;rsquo;ve only tested this on OS X.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sh" data-lang="sh">&lt;span style="display:flex;">&lt;span>find . -regex &lt;span style="color:#e6db74">&amp;#39;.*\.[mh]$&amp;#39;&lt;/span> -exec sed -i &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span> &lt;span style="color:#e6db74">&amp;#39;s/[ \t]*$//&amp;#39;&lt;/span> &lt;span style="color:#f92672">{}&lt;/span> &lt;span style="color:#ae81ff">\;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>BUT WAIT!&lt;/em>&lt;/p>
&lt;p>Before you blindly paste this into your command prompt and hit return, (and complain to me that I made you remove all lines ending with &amp;rsquo;t&amp;rsquo;), the &lt;code>\t&lt;/code> should actually be a tab character. To replace &lt;code>\t&lt;/code> with a tab character, type &lt;code>Control&lt;/code> + &lt;code>v&lt;/code>, then hit tab. The command will now look like this, (which is a space, then a tab):&lt;/p></description></item><item><title>AutoPkgr - A Front End for AutoPkg</title><link>https://everythingisgray.com/2014/07/21/autopkgr-a-front-end-for-autopkg/</link><pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2014/07/21/autopkgr-a-front-end-for-autopkg/</guid><description>&lt;p>Recently, a &lt;a href="http://joshsenick.com">couple&lt;/a> &lt;a href="http://elliotjordan.com">coworkers&lt;/a> of mine and I released &lt;a href="https://github.com/lindegroup/autopkgr">AutoPkgr&lt;/a>, a GUI front end for &lt;a href="http://autopkg.github.io/autopkg">AutoPkg&lt;/a>. AutoPkg is an extremely powerful command-line tool that allows IT administrators to automate OS X software packaging and distribution. AutoPkgr extends this functionality by adding the following key features:&lt;/p>
&lt;ul>
&lt;li>Easy tracking of which specific AutoPkg recipes you care about.&lt;/li>
&lt;li>Automatic scheduled checks for new downloads that are available as part of the AutoPkg recipes you subscribe to.&lt;/li>
&lt;li>Email notifications when new items are downloaded.&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://github.com/lindegroup/autopkgr">&lt;img src="https://everythingisgray.com/images/2014-07-21-autopkgr/autopkgr-welcome-screen.png" alt="AutoPkgr">&lt;/a>&lt;/p></description></item><item><title>Complex LDAP Queries With ldapsearch and python-ldap</title><link>https://everythingisgray.com/2014/06/01/complex-ldap-queries-with-ldapsearch-and-python-ldap/</link><pubDate>Sun, 01 Jun 2014 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2014/06/01/complex-ldap-queries-with-ldapsearch-and-python-ldap/</guid><description>&lt;p>I recently needed to test a complex LDAP query in a Python script I was writing. I realized shortly after beginning to construct the query that I had never done anything more than a simple &lt;code>a=b&lt;/code> or &lt;code>a=b*&lt;/code> before, (where &lt;code>*&lt;/code> is the wildcard). The solution is rather simple, albeit awkward due to the position of the binary operators. You&amp;rsquo;ll notice in the examples below that the operators are positioned &lt;em>before&lt;/em> each operand. So rather than &lt;code>a &amp;amp; b&lt;/code>, you would write &lt;code>&amp;amp;(a)(b)&lt;/code>.&lt;/p></description></item><item><title>Python One-liner for Determining Java Vendor</title><link>https://everythingisgray.com/2014/03/09/python-one-liner-for-determining-java-vendor/</link><pubDate>Sun, 09 Mar 2014 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2014/03/09/python-one-liner-for-determining-java-vendor/</guid><description>&lt;p>Here&amp;rsquo;s a Python one-liner that prints the Java vendor on OS X clients, (e.g., Apple or Oracle).&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sh" data-lang="sh">&lt;span style="display:flex;">&lt;span>python -c &lt;span style="color:#e6db74">&amp;#39;import os,plistlib; jv = plistlib.readPlist(os.path.join(os.path.realpath(&amp;#34;/Library/Internet Plug-Ins/JavaAppletPlugin.plugin&amp;#34;), &amp;#34;Contents/Info.plist&amp;#34;))[&amp;#34;CFBundleIdentifier&amp;#34;].split(&amp;#34;.&amp;#34;)[1]; print jv.capitalize()&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Why?&lt;/p>
&lt;p>&amp;hellip;Because we can.&lt;/p></description></item><item><title>Querying AD Group Membership Status With ldapsearch</title><link>https://everythingisgray.com/2014/01/02/querying-ad-group-membership-status-with-ldapsearch/</link><pubDate>Thu, 02 Jan 2014 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2014/01/02/querying-ad-group-membership-status-with-ldapsearch/</guid><description>&lt;p>Here&amp;rsquo;s a way to query Active Directory for group membership status with the &lt;code>ldapsearch&lt;/code> utility. In my case, this was used to check if a user is authorized before attempting to mount an SMB share at login on OS X clients. The &lt;code>-Q&lt;/code> option causes &lt;code>ldapsearch&lt;/code> to use &lt;a href="http://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer">SASL&lt;/a> quiet mode and not prompt for a password, which works if a &lt;a href="http://web.mit.edu/~kerberos/">Kerberos&lt;/a> ticket is present.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sh" data-lang="sh">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#!/bin/bash
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>console_user&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#66d9ef">$(&lt;/span>/usr/bin/stat -f%Su /dev/console&lt;span style="color:#66d9ef">)&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ldap_uri&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;ldap://example.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>search_base&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;DC=example,DC=com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>group&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;Some Group&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>is_member_of_group&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">`&lt;/span>/usr/bin/ldapsearch -LLL -Q -H &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$ldap_uri&lt;span style="color:#e6db74">&amp;#34;&lt;/span> -b &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$search_base&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#e6db74">&amp;#34;sAMAccountName=&lt;/span>$console_user&lt;span style="color:#e6db74">&amp;#34;&lt;/span> sAMAccountName | $grep &lt;span style="color:#e6db74">&amp;#34;OU=&lt;/span>$group&lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#e6db74">`&lt;/span> &lt;span style="color:#75715e"># -Q prevents the authentication prompt, works if kerberos ticket exists&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[[&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&lt;/span>&lt;span style="color:#e6db74">${#&lt;/span>is_member_of_group&lt;span style="color:#e6db74">}&lt;/span>&lt;span style="color:#e6db74">&amp;#34;&lt;/span> -ne &lt;span style="color:#e6db74">&amp;#34;0&amp;#34;&lt;/span> &lt;span style="color:#f92672">]]&lt;/span>; &lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$console_user&lt;span style="color:#e6db74"> is a member of &lt;/span>$group&lt;span style="color:#e6db74">.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># Do something about it&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$console_user&lt;span style="color:#e6db74"> is NOT a member of &lt;/span>$group&lt;span style="color:#e6db74">.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#75715e"># Do something else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>exit $?
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Ghost in the Cloud: Deploying the JSS on Amazon EC2</title><link>https://everythingisgray.com/2013/11/17/ghost-in-the-cloud-deploying-the-jss-on-amazon-ec2/</link><pubDate>Sun, 17 Nov 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/11/17/ghost-in-the-cloud-deploying-the-jss-on-amazon-ec2/</guid><description>&lt;p>The fine folks at &lt;a href="http://www.jamfsoftware.com/">JAMF Software&lt;/a> have posted a &lt;a href="http://www.jamfsoftware.com/latest/video-ghost-in-the-cloud">video&lt;/a> of the talk I gave at this year&amp;rsquo;s &lt;a href="http://www.jamfsoftware.com/jnuc">JNUC&lt;/a>. I had a great time in Minneapolis and hope to attend again next year.&lt;/p>
&lt;p>The slides for this talk are available on my &lt;a href="https://github.com/futureimperfect/slides">GitHub&lt;/a> if you want to follow along.&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OGk28LVSRiE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video">&lt;/iframe>
&lt;/div></description></item><item><title>Option (Left|Right) Arrow Navigation in iTerm2</title><link>https://everythingisgray.com/2013/11/03/option-left-right-arrow-navigation-in-iterm2/</link><pubDate>Sun, 03 Nov 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/11/03/option-left-right-arrow-navigation-in-iterm2/</guid><description>&lt;p>Today I decided to switch to &lt;a href="http://www.iterm2.com/#/section/home">iTerm2&lt;/a> on OS X. Shortly after making this decision I was frustrated by not being able to &amp;ldquo;jump&amp;rdquo; between words with the option-arrow shortcut. Fortunately, the solution is rather simple — just modify the option-left/right arrow shortcuts in &lt;strong>Preferences &amp;gt; Profiles &amp;gt; Keys&lt;/strong>. The &amp;ldquo;Action&amp;rdquo; should be &amp;ldquo;Send Escape Sequence&amp;rdquo; + &lt;strong>b&lt;/strong> for jumping backwards and &lt;strong>f&lt;/strong> for jumping forward, (e.g., &lt;code>^[b&lt;/code>, and &lt;code>^[f&lt;/code>).&lt;/p>
&lt;p>I know I&amp;rsquo;ve tried iTerm in the past, and I&amp;rsquo;m pretty sure not being able to do this right away kept me from continuing to use the tool. After making this change everything has been swell, though.&lt;/p></description></item><item><title>Speaking at the 2013 JAMF Nation User Conference</title><link>https://everythingisgray.com/2013/09/10/speaking-at-the-2013-jamf-nation-user-conference/</link><pubDate>Tue, 10 Sep 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/09/10/speaking-at-the-2013-jamf-nation-user-conference/</guid><description>&lt;p>I&amp;rsquo;m very pleased to announce that &lt;a href="http://www.jamfsoftware.com/events/jamf-nation-user-conference/2013/sessions#james-barclay">I&amp;rsquo;ll be speaking&lt;/a> at the &lt;a href="http://www.jamfsoftware.com/jnuc">2013 JAMF Nation User Conference&lt;/a> in Minneapolis, MN. I&amp;rsquo;ll be discussing my experience with &lt;a href="https://jamfnation.jamfsoftware.com/jnucEvent.html?eventId=21">hosting the JSS on Amazon Elastic Compute Cloud (EC2)&lt;/a>, along with any lessons learned during the process, (of which there are many).&lt;/p>
&lt;p>The three day conference is being held at the &lt;a href="http://www.guthrietheater.org/">Guthrie Theater&lt;/a> from October 15-17. Hope to see you there!&lt;/p></description></item><item><title>Guest Appearance on 5by5's Systematic</title><link>https://everythingisgray.com/2013/08/24/guest-appearance-on-5by5s-systematic/</link><pubDate>Sat, 24 Aug 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/08/24/guest-appearance-on-5by5s-systematic/</guid><description>&lt;p>I recently had the pleasure of joining &lt;a href="http://brettterpstra.com">Brett Terpstra&lt;/a> on &lt;a href="http://5by5.tv/systematic">5by5&amp;rsquo;s Systematic&lt;/a> to talk about Macs, art, coding, and general geekery.&lt;/p>
&lt;p>You can find the show notes and download the episode at: &lt;a href="http://5by5.tv/systematic/58">5by5.tv/systematic/58&lt;/a>.&lt;/p>
&lt;p>Thanks for listening!&lt;/p>
&lt;p>&lt;a href="http://5by5.tv/systematic">&lt;img src="https://everythingisgray.com/images/2013-08-24-guest-appearance-on-5by5-s-systematic/systematiclogo.jpg" alt="Systematic">&lt;/a>&lt;/p></description></item><item><title>Determining Guest Login Status</title><link>https://everythingisgray.com/2013/08/10/determining-guest-login-status/</link><pubDate>Sat, 10 Aug 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/08/10/determining-guest-login-status/</guid><description>&lt;p>The other day I was presented with the challenge of determining whether Guest login was enabled on 150+ Macs. Fortunately, my client was using the &lt;a href="http://www.jamfsoftware.com/software/casper-suite">Casper Suite&lt;/a>, so I was able to whip up an Extension Attribute rather quickly. Here&amp;rsquo;s what I came up with to get the status:&lt;/p>
&lt;script src="https://gist.github.com/6203175/095e34ac6a7818ebe4321649bae44a7a618c8faf.js">&lt;/script></description></item><item><title>cURL Speed Test</title><link>https://everythingisgray.com/2013/06/16/curl-speed-test/</link><pubDate>Sun, 16 Jun 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/06/16/curl-speed-test/</guid><description>&lt;p>Have you ever needed to run a quick download speed test, but were too lazy to open up a new browser window and use one of the Web-based tools? Or perhaps you just prefer to use the command-line like me. Never fear, because appending this line to your ~/.bash_profile will allow you test your download speed from within your login shell by simply typing &lt;code>speedtest&lt;/code>.&lt;/p>
&lt;script src="https://gist.github.com/5793955/096a9774362855b5d4290e63813e541e6ffd7a3b.js">&lt;/script></description></item><item><title>On Migrating From WordPress to Octopress</title><link>https://everythingisgray.com/2013/06/15/on-migrating-from-wordpress-to-octopress/</link><pubDate>Sat, 15 Jun 2013 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2013/06/15/on-migrating-from-wordpress-to-octopress/</guid><description>&lt;p>Having recently made the decision to migrate my blog from WordPress to &lt;a href="http://octopress.org/">Octopress&lt;/a> I decided I would share my findings in hopes that someone else will benefit from them, and so I can refer back to this post should I need to do something similar in the future.&lt;/p>
&lt;p>The primary reason I decided to move to a statically generated site is because I found myself spending more time worrying about whether my site was running and was secure than I did writing. My site was hacked last year because I was running an outdated version of WordPress, and since moving to a new host, (Amazon EC2), I have frequently had to restart MySQL and Apache just to keep the site up. This could be partially due to the fact that I was running the site on a &lt;a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html">micro instance&lt;/a>, but now that my blog is static I don&amp;rsquo;t have to worry about that any longer. Another reason why I chose Octopress for my blogging platform is that I like to tinker, and being able to use tools that I&amp;rsquo;m already familiar with and use every day was a huge plus, (Vim, Git, and Markdown, specifically).&lt;/p></description></item><item><title>Automatically Post Images to Tumblr with Automator</title><link>https://everythingisgray.com/2010/08/19/how-i-use-automator-to-post-images-to-tumblr/</link><pubDate>Thu, 19 Aug 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/08/19/how-i-use-automator-to-post-images-to-tumblr/</guid><description>&lt;p>For the past few months I have been drawing every day on 2.5 x 3.5 inch pieces of Bristol board as part of my most recent &amp;lsquo;&lt;a href="http://koobtra.com/">kooBtrA&lt;/a>&amp;rsquo; project. kooBtrA = ArtBook in reverse, as I plan to self publish a full-color book containing all the images sometime after one year passes.&lt;/p>
&lt;p>As you might imagine, finding the time to draw every day can be challenging. Not to mention the fact that I&amp;rsquo;ve also been posting these images to my Tumbleog; which includes scanning, resizing, and logging into Tumblr to post the image along with a description and tag. This became mundane after the first few days of posting, so I decided to set time aside to automate this process, as doing so would surely save me time in the long run.&lt;/p></description></item><item><title>Restore MySQL Database From ibdata and .frm Files</title><link>https://everythingisgray.com/2010/07/21/restore-mysql-database-from-ibdata-and-frm-files/</link><pubDate>Wed, 21 Jul 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/07/21/restore-mysql-database-from-ibdata-and-frm-files/</guid><description>&lt;p>Last week I was presented with a problem that involved restoring a MySQL database for a client using only the &lt;code>/data&lt;/code> folder from an original MySQL installation. The solution turned out to be rather simple, but that didn&amp;rsquo;t stop me from racking my brain for a few hours. Thus, I thought I&amp;rsquo;d share my experience in hopes of helping others that may run into this.&lt;/p>
&lt;p>&lt;em>NOTE&lt;/em> The MySQL database I was tasked with restoring was associated with a WordPress installation. My guess is that this is irrelevant, though.&lt;/p></description></item><item><title>In-store Signing at Pages Bookstore</title><link>https://everythingisgray.com/2010/04/16/in-store-signing-at-pages-bookstore/</link><pubDate>Fri, 16 Apr 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/04/16/in-store-signing-at-pages-bookstore/</guid><description>&lt;p>The kind folks at &lt;a href="http://maps.google.com/maps/place?cid=9976738330174778878&amp;amp;q=pages+bookstore&amp;amp;hl=en&amp;amp;cd=1&amp;amp;ei=TsLIS4qpOof2M7G64IEK&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=57.379893,85.869141&amp;amp;ie=UTF8&amp;amp;ll=60.630102,-138.691406&amp;amp;spn=0,0&amp;amp;z=4&amp;amp;iwloc=A">Pages Bookstore&lt;/a> have invited me to do a book signing and give a short talk on comics production on May 8, 2010. The event will be taking place from 1-3 pm in downtown Flint, MI. If you&amp;rsquo;re in the area stop by to pick up one of my short comics and chat with me for a bit. &lt;strike>The promotional poster I did for the event can be found in the &lt;a href="http://everythingisgray.com/portfolio/">portfolio&lt;/a> section of this site.&lt;/strike>&lt;/p></description></item><item><title>MSU Comics Forum</title><link>https://everythingisgray.com/2010/03/20/msu-comics-forum/</link><pubDate>Sat, 20 Mar 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/03/20/msu-comics-forum/</guid><description>&lt;p>Thanks to my mentor and friend &lt;a href="http://www.elephanteater.com/">Ryan Claytor&lt;/a> I&amp;rsquo;ll be tabling at the MSU Comics Forum on March 27, 2010. The event is held annually at, you guessed it, Michigan State University. There I&amp;rsquo;ll be showcasing my latest comic, &amp;ldquo;Here For Now,&amp;rdquo; (which I&amp;rsquo;ll soon have examples of in the portfolio section of this site), as well as my first comic, &amp;ldquo;Stars Beneath Stars.&amp;rdquo; For more info please visit &lt;a href="http://www.comicsforum.msu.edu/">http://www.comicsforum.msu.edu/&lt;/a>.&lt;/p></description></item><item><title>Configure Archive Utility in Mac OS X</title><link>https://everythingisgray.com/2010/02/16/configure-archive-utility-in-mac-os-x/</link><pubDate>Tue, 16 Feb 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/02/16/configure-archive-utility-in-mac-os-x/</guid><description>&lt;p>Having recently purchased a new MacBook Pro and electing to skip the option of running &lt;a href="http://en.wikipedia.org/wiki/Migration_Assistant_(Apple)">Migration Assistant&lt;/a> to transfer my data and settings, I noticed that a few applications were behaving differently. Over the years I&amp;rsquo;ve configured quite a few things on my Mac, and eventually I became accustomed to said customizations. One of the first things I noticed was that when I would unarchive a zip file, the compressed file would stay put. I remembered that a few years ago I learned of a cool way to configure Mac OS X&amp;rsquo;s built-in Archive Utility, (using a System Preference pane), so I immediately went digging. To do this, simply navigate to &lt;code>/System/Library/CoreServices&lt;/code>. From there right or control click on Archive Utility.app, and select &amp;ldquo;Show Package Contents.&amp;rdquo; A new window will open containing a folder named &lt;code>Contents&lt;/code>, within which you&amp;rsquo;ll find &lt;code>Resources&lt;/code>, and finally &lt;code>Archives.prefPane&lt;/code>. Opening this preference pane will result in System Preferences.app asking if you&amp;rsquo;d like to install for all users or for this user only. Voila! Now you can tell Archive Utility to delete the archive after expanding it.&lt;/p></description></item><item><title>10 Inspiring Websites</title><link>https://everythingisgray.com/2010/02/01/10-inspiring-websites/</link><pubDate>Mon, 01 Feb 2010 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2010/02/01/10-inspiring-websites/</guid><description>&lt;p>Lately I&amp;rsquo;ve been spending quite a bit of time designing websites, whether it&amp;rsquo;s WordPress theme development or Joomla! template design. A huge part of this process, (for me), is finding inspiration. Below are 10 carefully crafted examples of good web design that I&amp;rsquo;ve been inspired by as of late.&lt;/p>
&lt;p>&lt;a href="http://www.31three.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-10.52.54-PM.png" alt="31THREE">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://www.kflorence.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.13.23-PM.png" alt="Kyle Florence">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://www.alistapart.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.12.07-PM.png" alt="A List Apart">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://www.builtbybuffalo.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.11.43-PM.png" alt="Buffalo">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://silnt.com/v4/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.11.28-PM.png" alt="Design by Silnt">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://fullahead.org/index.php">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-10.50.21-PM.png" alt="FullAhead">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://www.viget.com/inspire/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-10.49.50-PM.png" alt="Viget">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://thinkdesignblog.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-10.48.11-PM.png" alt="thinkdesign">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://www.edmerritt.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.14.25-PM.png" alt="Ed Merritt">&lt;/a>&lt;/p>
&lt;p>&lt;a href="http://themeshaper.com/">&lt;img src="https://everythingisgray.com/images/2010-02-01-10-inspiring-websites/Screen-shot-2010-01-31-at-5.10.57-PM.png" alt="ThemeShaper">&lt;/a>&lt;/p></description></item><item><title>Webcomics</title><link>https://everythingisgray.com/2009/12/16/webcomics/</link><pubDate>Wed, 16 Dec 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/12/16/webcomics/</guid><description>&lt;p>I have a confession to make: I love webcomics. I&amp;rsquo;m quite the comics nerd in general, to be honest. It&amp;rsquo;s possible that recently completing the first sequential drawing class offered at my university rekindled this fascination, but who&amp;rsquo;s keeping track? If you&amp;rsquo;re interested in finding out who&amp;rsquo;s responsible for teaching me everything I know about the production of comics, visit my professor&amp;rsquo;s site &lt;a href="http://www.elephanteater.com/">elephanteater.com&lt;/a>. I&amp;rsquo;ll have a few more samples from my comic posted in the portfolio section here shortly. Now back to webcomics, here are a few of my favorites:&lt;/p></description></item><item><title>Check if Your Mac Is 64 Bit</title><link>https://everythingisgray.com/2009/10/08/check-if-your-mac-is-64-bit/</link><pubDate>Thu, 08 Oct 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/10/08/check-if-your-mac-is-64-bit/</guid><description>&lt;p>Here&amp;rsquo;s an easy way to determine whether or not your Mac is 64 bit capable. Open Terminal.app, which is located in /Applications/Utilities and type in:&lt;/p>
&lt;p>&lt;code>sysctl hw | grep 64bit&lt;/code>&lt;/p>
&lt;p>If your machine is 64 bit capable, the result will be&lt;/p>
&lt;p>&lt;code>hw.cpu64bit_capable: 1&lt;/code>&lt;/p>
&lt;p>If your machine is not 64 bit capable, the result will be&lt;/p>
&lt;p>&lt;code>hw.cpu64bit_capable: 0&lt;/code>&lt;/p>
&lt;p>Tip source: &lt;a href="http://osxdaily.com/2009/09/23/check-if-your-mac-is-64-bit-compatible-via-command-line/">OSXDaily.com&lt;/a>&lt;/p></description></item><item><title>Life on Mars?</title><link>https://everythingisgray.com/2009/09/04/life-on-mars/</link><pubDate>Fri, 04 Sep 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/09/04/life-on-mars/</guid><description>&lt;p>So it turns out life on Mars might actually be possible, thanks to an adorable little robot called &lt;em>&lt;a href="http://www.treehugger.com/files/2009/08/robot-colonize-mars-plants.php">Le Petit Prince&lt;/a>&lt;/em>. The robot, (which looks an awful lot like EVE from WALL-E), was designed to care for plants while searching for an environment with ample nutrients. The idea is to eventually produce enough oxygen on Mars to make it suitable for humans, but don&amp;rsquo;t plan on moving anytime soon, it&amp;rsquo;s just a concept.&lt;/p></description></item><item><title>iDeals iPhone App</title><link>https://everythingisgray.com/2009/08/01/ideals-iphone-app/</link><pubDate>Sat, 01 Aug 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/08/01/ideals-iphone-app/</guid><description>&lt;p>So I had the pleasure of meeting the gentleman that develops the &lt;a href="http://fiveohfive.com/iDeals.html">iDeals&lt;/a> iPhone application a few days ago. iDeals was designed to provide an easy to use interface for tracking deals from Amazon, EB Games, Buy.com, Woot!, etc. The iDeals app pulls its information from &lt;a href="http://www.dodtracker.com/">DODTracker.com&lt;/a> servers, but is far more enjoyable than visiting the site itself. Best of all it&amp;rsquo;s free, go download it.&lt;/p></description></item><item><title>Snow Stack 3D CSS</title><link>https://everythingisgray.com/2009/07/23/snow-stack-3d-css/</link><pubDate>Thu, 23 Jul 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/07/23/snow-stack-3d-css/</guid><description>&lt;p>A gentleman by the name of Charles Ying of &lt;a href="http://www.satine.org/">Satine.org&lt;/a> has developed a new 3D CSS visual effects demonstration called &lt;a href="http://www.satine.org/archives/2009/07/11/snow-stack-is-here/">Snow Stack&lt;/a>, which runs entirely on JavaScript, native WebKit CSS extensions, and XHTML/HTML. If you&amp;rsquo;re familiar with Cover Flow/Core Animation on the Mac you&amp;rsquo;ll immediately recognize Snow Stack. In order to run the demo you&amp;rsquo;ll need either the &lt;em>Snow Leopard Beta + Safari&lt;/em> &lt;strong>or&lt;/strong> &lt;em>Leopard + the latest nightly build of WebKit&lt;/em>. Either way, it&amp;rsquo;s quite fascinating to think that this is all being done in the browser.&lt;/p></description></item><item><title>Cappuccino Web Framework</title><link>https://everythingisgray.com/2009/07/21/cappuccino-web-framework/</link><pubDate>Tue, 21 Jul 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/07/21/cappuccino-web-framework/</guid><description>&lt;p>So lately I&amp;rsquo;ve been playing around with the &lt;a href="http://cappuccino.org/">Cappuccino web framework&lt;/a> and a nifty little programming language called Objective-J. The Cappuccino framework allows you to create desktop class applications for the browser, and gives you the ability to run these applications on the desktop, (similar to &lt;a href="http://www.adobe.com/products/air/">Adobe AIR&lt;/a>). One of the many benefits of being able to create applications that run on the desktop is having the ability to run the application while offline.&lt;/p></description></item><item><title>XHTML Is Dead, (but Don't Worry)</title><link>https://everythingisgray.com/2009/07/02/xhtml-is-dead-but-dont-worry/</link><pubDate>Thu, 02 Jul 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/07/02/xhtml-is-dead-but-dont-worry/</guid><description>&lt;p>&lt;strike>Today&lt;/strike> On July 2, 2009, the W3C announced that the XHTML 2 working group will cease development by the end of 2009. Of course all this means is that more time, effort, and man power will be focused on the HTML 5 specification, which is going to drastically change the web, (just take a look at &lt;a href="http://wave.google.com/">Google Wave&lt;/a>). This also means that we won&amp;rsquo;t have any spec wars to deal with, which are almost as bad as format wars, (HD DVD vs. Blu-Ray anyone?)&lt;/p></description></item><item><title>FlintCast Episode 2 Now on iTunes</title><link>https://everythingisgray.com/2009/07/01/flintcast-episode-2-now-on-itunes/</link><pubDate>Wed, 01 Jul 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/07/01/flintcast-episode-2-now-on-itunes/</guid><description>&lt;p>So I&amp;rsquo;ve managed to get the latest episode of my podcast, &lt;a href="http://flintcast.com/">FlintCast&lt;/a>, on iTunes.&lt;/p>
&lt;p>I spent a few hours trying to figure out just why it wasn&amp;rsquo;t showing up, turns out I was just impatient, (pinging the servers didn&amp;rsquo;t seem to help, either). Troubleshooting feeds surely can be a headache.&lt;/p>
&lt;p>If you&amp;rsquo;d like to download individual episodes or subscribe you can do so &lt;a href="http://bit.ly/oxFPy">here&lt;/a>.&lt;/p></description></item><item><title>Logo Guessing Game</title><link>https://everythingisgray.com/2009/06/21/logo-guessing-game/</link><pubDate>Sun, 21 Jun 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/06/21/logo-guessing-game/</guid><description>&lt;p>How quickly can you recognize a corporate identity? I recently found &lt;a href="http://www.graphicdesignblog.org/famous-logo-game/">an article on GraphicDesignBlog.org&lt;/a> that makes an interesting game out of it. They display a small fraction of the logo and you are to guess the corporation associated with that identity. I knew all but three right off the bat. Can you guess which one&amp;rsquo;s I missed?&lt;/p>
&lt;p>I find that the best and most memorable logos almost always pass this test. Number six is a great example, (only a miniscule portion of the logo is displayed, yet I was able to determine the identity almost immediately).&lt;/p></description></item><item><title>American Airlines Site Redesign</title><link>https://everythingisgray.com/2009/06/17/american-airlines-site-redesign/</link><pubDate>Wed, 17 Jun 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/06/17/american-airlines-site-redesign/</guid><description>&lt;p>I heard about a week ago that someone had done a mockup of a possible redesign for the &lt;strong>American Airlines&lt;/strong> website, and the first thing I did was take a look at &lt;a href="http://www.aa.com/aa/homePage.do">their existing site&lt;/a>. It&amp;rsquo;s unbelievable to me that such a huge corporation with so many resources could produce such a terrible, unusable site. I for one haven&amp;rsquo;t ever needed to use the site, but a user interface designer named Dustin Curtis has, (which inspired him to create the mockup.) The redesign is visually interesting as well as functional. You should read more about it/take a look at it &lt;a href="http://dustincurtis.com/dear_american_airlines.html">here&lt;/a>.&lt;/p></description></item><item><title>NextGEN: Cool WordPress Plugin</title><link>https://everythingisgray.com/2009/06/16/nextgen-cool-wordpress-plugin/</link><pubDate>Tue, 16 Jun 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/06/16/nextgen-cool-wordpress-plugin/</guid><description>&lt;p>After about a month of searching for a WordPress image gallery plugin that is both powerful and easy to use, I came acrossÂ &lt;a href="http://wordpress.org/extend/plugins/nextgen-gallery/">NextGEN Gallery&lt;/a>. This plugin is extremely easy to implement, and once activated is easy to maintain/update. I like the fact that you can create multiple galleries and group them together in albums, too. It&amp;rsquo;s also a breeze to update a gallery or album once it&amp;rsquo;s been posted. I&amp;rsquo;m currently using this plugin for my portfolio, (which should include more than a few images soon), and overall I&amp;rsquo;m very pleased.&lt;/p></description></item><item><title>FlintCast Is Now Available on iTunes</title><link>https://everythingisgray.com/2009/06/11/flintcast-is-now-available-on-itunes/</link><pubDate>Thu, 11 Jun 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/06/11/flintcast-is-now-available-on-itunes/</guid><description>&lt;p>The folks at iTunes recently accepted my new podcast, which is called &lt;a href="http://flintcast.com/">FlintCast&lt;/a>. It is hosted by myself and Vanna Ward.&lt;/p>
&lt;p>FlintCast aims to cover fun and interesting events happening in Flint, MI. The podcast is currently audio only but we&amp;rsquo;ll be including video in the feed in the near future. If you&amp;rsquo;d like to download individual episodes or subscribe you can do so now &lt;a href="http://bit.ly/oxFPy">on iTunes&lt;/a>.&lt;/p></description></item><item><title>FlintCast Episode 1 Now Available</title><link>https://everythingisgray.com/2009/06/04/flintcast-episode-1-now-available/</link><pubDate>Thu, 04 Jun 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/06/04/flintcast-episode-1-now-available/</guid><description>&lt;p>Today I released the first episode of &lt;a href="http://flintcast.com/">FlintCast&lt;/a>, a podcast that covers events happening in Flint, MI. I am co-hosting this podcast with &lt;a href="http://gallery.me.com/afterbirth">Vanna Ward&lt;/a>. I apologize for how rough the first episode is, just keep in mind that the entire podcast was created in less than one week, (from conception to execution). You can check it out &lt;a href="http://flintcast.com/">here&lt;/a>.&lt;/p>
&lt;p>P.S. We&amp;rsquo;ll have the feed up on iTunes soon, (it&amp;rsquo;s already been submitted).&lt;/p></description></item><item><title>Version 0.5 of Simplixity Is Now Live</title><link>https://everythingisgray.com/2009/05/22/version-0.5-of-simplixity-is-now-live/</link><pubDate>Fri, 22 May 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/05/22/version-0.5-of-simplixity-is-now-live/</guid><description>&lt;p>Today I submitted an update to my WordPress theme Simplixity, which improves how images are handled in posts and fixes an issue that existed while no widgets were activated in the admin panel. You can view and download it &lt;a href="http://wordpress.org/extend/themes/simplixity">here&lt;/a>.&lt;/p>
&lt;p>I&amp;rsquo;ve already begun working on the next update, which should include an easily customizable &lt;code>client.css&lt;/code> file, for making quick changes to the theme.&lt;/p></description></item><item><title>Do Hosted Solutions Threaten WordPress and Other Blogging Platforms?</title><link>https://everythingisgray.com/2009/05/02/do-hosted-solutions-threaten-wordpress-and-other-blogging-platforms/</link><pubDate>Sat, 02 May 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/05/02/do-hosted-solutions-threaten-wordpress-and-other-blogging-platforms/</guid><description>&lt;p>With completely hosted solutions like &lt;a href="http://www.squarespace.com/">Squarespace&lt;/a> becoming more and more popular everyday, should content creators using WordPress and similar platforms be concerned? What about the designers and developers that create plugins and themes for these systems?&lt;/p>
&lt;p>In order for blogging/content management systems like WordPress to survive, there needs to be a thriving community of developers and users alike. There&amp;rsquo;s certainly no shortage of either in the WordPress community, so I don&amp;rsquo;t see it going anywhere anytime soon. Truthfully, I find that there is a place for both a DIY solution like WordPress and an entirely hosted solution like &lt;a href="http://www.squarespace.com/">Squarespace&lt;/a>. I personally prefer having to dig deep into the CSS, XHTML, and PHP to truly customize a WordPress blog/site, though.&lt;/p></description></item><item><title>Jobtac Uses "Simplixity" Theme for Their WP Blog</title><link>https://everythingisgray.com/2009/04/30/jobtac-uses-simplixity-theme-for-their-wp-blog/</link><pubDate>Thu, 30 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/30/jobtac-uses-simplixity-theme-for-their-wp-blog/</guid><description>&lt;p>It&amp;rsquo;s become rather amusing for me to find out just who is using my WordPress theme. Sometimes it&amp;rsquo;s not so flattering, other times it is. The other day I discovered that &lt;a href="http://www.jobtac.com/">Jobtac&lt;/a>, a job posting site for employers and job seekers alike, is using &lt;a href="http://wordpress.org/extend/themes/simplixity">Simplixity&lt;/a> for &lt;a href="http://www.jobtac.com/blog/">their blog&lt;/a>. Thanks a lot, guys!&lt;/p></description></item><item><title>I Shed a Tear for Quicksilver Today</title><link>https://everythingisgray.com/2009/04/22/i-shed-a-tear-for-quicksilver-today/</link><pubDate>Wed, 22 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/22/i-shed-a-tear-for-quicksilver-today/</guid><description>&lt;p>Today I uninstalled &lt;a href="http://www.blacktree.com/">Quicksilver&lt;/a>, in favor of using the &lt;a href="http://www.obdev.at/products/launchbar/beta.html">LaunchBar 5 beta&lt;/a>. It was late 2007 when developer Nicholas Jitkoff released the &lt;a href="http://code.google.com/p/blacktree-alchemy/">source&lt;/a> to Google Code, and I&amp;rsquo;ve been hanging on tightly ever since. I understand that the project will continue to be updated, but I&amp;rsquo;ve come to my wits end, and am done struggling with the application for now. We&amp;rsquo;ll see how long this lasts&amp;hellip;&lt;/p></description></item><item><title>Is the Browser the New WYSIWYG?</title><link>https://everythingisgray.com/2009/04/19/is-the-browser-the-new-wysiwyg/</link><pubDate>Sun, 19 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/19/is-the-browser-the-new-wysiwyg/</guid><description>&lt;p>I&amp;rsquo;ve been thinking a lot about this concept lately. Have we come to a point where the Dreamweaver style IDE, (integrated development environment), has become a thing of the past? Ninety percent of my formal training has been heavily dependent on this model, yet I can&amp;rsquo;t see any forward thinking web designer/developer continuing to rely on it. In many ways, the browser has become my WYSIWYG of choice. You can quickly see the effects of changes made to style sheets and you&amp;rsquo;re not confined to any one proprietary system.&lt;/p></description></item><item><title>How To: Installing FreeBSD as a Guest OS in Parallels 4</title><link>https://everythingisgray.com/2009/04/17/how-to-installing-freebsd-as-a-guest-os-in-parallels-4/</link><pubDate>Fri, 17 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/17/how-to-installing-freebsd-as-a-guest-os-in-parallels-4/</guid><description>&lt;p>I&amp;rsquo;m by no means a UNIX expert, but I&amp;rsquo;ve managed to get the latest stable version of FreeBSD, (7.1), up and running as a guest OS using Parallels Desktop 4. In this tutorial, I will explain exactly what was done to achieve this.&lt;/p>
&lt;p>First, you must download the &lt;a href="http://www.freebsd.org/where.html">latest stable version of FreeBSD&lt;/a>, (at the time this article was written it&amp;rsquo;s 7.1). Once the download is completed, launch Parallels and chose the ISO image as the source.&lt;/p></description></item><item><title>Loopthing Uses "Simplixity" Theme for Their Blog</title><link>https://everythingisgray.com/2009/04/17/loopthing-uses-simplixity-theme-for-their-blog/</link><pubDate>Fri, 17 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/17/loopthing-uses-simplixity-theme-for-their-blog/</guid><description>&lt;p>While browsing through my HTTP referrers I found that an online business network called &lt;em>&lt;a href="http://www.loopthing.com/">Loopthing&lt;/a>&lt;/em> is using my WordPress theme for their blog. So far it looks like the blog is somewhat secondary, (the link to it is on the bottom of the page), but I&amp;rsquo;m honored nonetheless. &lt;a href="http://blog.loopthing.com/">Go take a look.&lt;/a>&lt;/p></description></item><item><title>Modification of "Simplixity" WordPress Theme</title><link>https://everythingisgray.com/2009/04/08/modification-of-simplixity-wordpress-theme/</link><pubDate>Wed, 08 Apr 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/04/08/modification-of-simplixity-wordpress-theme/</guid><description>&lt;p>I recently discovered that a gentleman named Pete made a modification of my WordPress theme for his own site. It&amp;rsquo;s exciting to see this being done so early on. It&amp;rsquo;s called &lt;a href="http://www.theteacherlist.ca/">The Teacher List&lt;/a>, go check it out.&lt;/p></description></item><item><title>Wordpress Theme "Simplixity" Is Now Available on the WordPress Theme Directory</title><link>https://everythingisgray.com/2009/03/31/wordpress-theme-simplixity-is-now-available-on-the-wordpress-theme-directory/</link><pubDate>Tue, 31 Mar 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/03/31/wordpress-theme-simplixity-is-now-available-on-the-wordpress-theme-directory/</guid><description>&lt;p>After correcting a minor mistake that I made to my credit link, the folks at WordPress accepted my new theme and will be featuring it on the WordPress theme directory page. If you&amp;rsquo;d like to preview or download the theme you can do so &lt;a href="http://wordpress.org/extend/themes/simplixity">here&lt;/a>.&lt;/p></description></item><item><title>WordPress Theme "Simplixity" Completed... yeah right</title><link>https://everythingisgray.com/2009/03/29/wordpress-theme-simplixity-completed...-yeah-right/</link><pubDate>Sun, 29 Mar 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/03/29/wordpress-theme-simplixity-completed...-yeah-right/</guid><description>&lt;p>I just completed designing/developing my first &lt;a href="http://wordpress.org/">WordPress&lt;/a> theme. It&amp;rsquo;s called Simplixity, (which seems appropriate). I am by no means done with this theme, I&amp;rsquo;ve just come to the point where I wanted something to release. I submitted it to the &lt;a href="http://wordpress.org/extend/themes/">WordPress Theme Directory&lt;/a>, but am still waiting for a response as to whether or not they&amp;rsquo;ll feature it. I&amp;rsquo;d like to sincerely thank Small Potato, the author of &lt;a href="http://www.wpdesigner.com/2007/02/19/so-you-want-to-create-wordpress-themes-huh/">a wonderful tutorial&lt;/a> on how to build a WordPress theme, for the invaluable information he has provided. Take a look at the theme, (&lt;strike>which is currently active&lt;/strike>), and let me know what you think.&lt;/p></description></item><item><title>Windows 7 Beta + VMware Fusion 2</title><link>https://everythingisgray.com/2009/02/08/windows-7-beta--vmware-fusion-2/</link><pubDate>Sun, 08 Feb 2009 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2009/02/08/windows-7-beta--vmware-fusion-2/</guid><description>&lt;p>So I decided to take advantage of the opportunity to download Windows 7 while I still could, (the beta closes on February 10th), and I&amp;rsquo;ve been quite impressed thus far. The installation process was a breeze, and I was up and running in less than a half hour. The performance is rather snappy considering I&amp;rsquo;m running it in a VM on a 1.83 GHz MacBook Pro with 2GB of RAM, (of which 30GB of disk space and 768MB of RAM is allocated for its use). As for the setup in VMware Fusion, the only unusual step I had to take was to create a custom VM. The operating system that I chose during this process was Windows&amp;gt;Windows Server 2008, (there is currently no Windows 7 template).&lt;/p></description></item><item><title>/* Hello World */</title><link>https://everythingisgray.com/2008/10/31/-hello-world-/</link><pubDate>Fri, 31 Oct 2008 00:00:00 +0000</pubDate><guid>https://everythingisgray.com/2008/10/31/-hello-world-/</guid><description>&lt;p>Over the next few months I will be working on developing a WordPress theme. I am currently using one of my favorite themes from the WordPress theme directory, which I will be editing in hopes of becoming more familiar with PHP and WordPress in general. Keep posted to see where this all ends up.&lt;/p></description></item></channel></rss>