macOS Facebook
Tuesday, February 16, 2021
Had some free time during a long mandatory training session at work and started perusing Apple’s macOS Sketch file with all the components that go into making a desktop app. I love imagining how components come together to form something useful 🤓 The training session I was enduring had minimum time limits. For someone who reads fast and watches video at 2x I decided it would be fun to throw together a desktop version of Facebook between modules — the most BORING version possible with nothing fancy, just standard macOS components.
2020 Retrospective
Thursday, December 31, 2020
Books Attempted The Body Flight Behavior The Uninhabitable Earth Quiet Astrophysics for People in a Hurry The Gene Awareness Sacred Economics White Fragility The Fifth Season The Upswing The Surrender Experiment The Fabric of the Cosmos The Common Good North Projects Building initial version of Steady Refactoring Logger Personal content manager
2019 Retrospective
Tuesday, December 31, 2019
Non-fiction The Square and the Tower The Fall of Public Man The Effective Executive Possible Minds Draft No. 4 The Innovator’s Dilemma Fiction Consider Phlebas Articles Status as a Service Warrens, Plazas and the Edge of Legibility Conversations Jordan Peterson on Mythology, Fame, and Reading People Palaces for the People Lance Armstrong and Malcolm Gladwell Series Adam Grant — Work Life The Dropout Presentations Martin Rees — Prospects for Humanity Chip Conely — The Modern Elder and the Intergenerational Workplace Ian McEwan — Machines Like Me Movies & TV Free Solo The Dawn Wall Icarus
Running Cone Peak Trails
Monday, December 2, 2019
Vincente Flat Trail → Cone Peak Rd → Cone Peak Trail ◠Cone Peak Trail → Cone Peak Rd → Vincente Flat Trail Last Sunday I packed up all my running gear for another long and steep trail run. Nate recently acquired an old van from the 90s that would be our ride to Big Sur. Old vehicles kinda put me on edge but this one felt oddly familiar because growing up at Lake of the Ozarks we had a van like this so all kinds of memories were lighting up.
Running Muir Woods Trails
Friday, November 8, 2019
Decided it was time to run three continuous hours and picked a series of trails in near Muir Woods that added up to a really beautiful 18 mile adventure.
2018 Retrospective
Monday, December 31, 2018
My first complete year living in San Francisco felt much more eventful than the six in Palo Alto. The constant pull of the city meant less downtime for side-projects but I think the tradeoff was well worth it. The following is a bunch of stuff I read, watched, listened to or attended in 2018. Non-fiction Kinda jumped all over the place this year, my goal for 2019 is to form a discipline writing more notes and summaries.
Blind spots
Saturday, February 14, 2015
Hours of my youth were lost to a game called Age of Empires. This game was crack cocaine for kids and should have been illegal in some states. Each new game plopped you in the middle of nowhere with an axe, a small hut and a goat or pig nearby. You could only see the little parcel of land around you, everything else was pitch black. As you wandered around the world revealed itself.
Self-Driving Vagabonds
Saturday, February 14, 2015
14 February 2015 — Self-driving cars are going to change the world — not many folks will disagree. It’s beginning to feel like our space race, the next leap towards a more efficient future. Google’s got prototypes, Mercedes-Benz and Volvo have adaptive cruise control, Tesla almost has autopilot and Apple’s leaking. Great, but these are baby steps when it comes to experience. Of course, solving the intelligence bit is really hard but the way we experience this future is where we’re gonna need to decide what type of world we want to live in.
Imitation as a Tool
Friday, February 14, 2014
“Imitation is the sincerest form of flattery.” We’ve all heard this, it’s how the level headed react to “copycats” or “ripoffs.” The truth is imitation is natural. We may not like to admit it but we’re all skilled imitators. Without it there would be no way to talk with one another or possess similar value systems. There’s a famous chapter in Richard Dawkin’s The Selfish Gene where he coins the term ‘meme’ to explain a non-biological form of evolution — an evolution of culture from one ‘survival machine’ to another.
My experience learning iOS
Wednesday, October 9, 2013
Twice while living in Kansas I attempted to learn Objective-C and Cocoa. Getting past the first few chapters was pretty mind numbing. It didn’t really have anything to do with the difficulty curve. I already knew other languages—Python, Javascript—and didn’t really have a reason to learn something else. The third time I tried was early 2012 when I started reading iOS Programming. This time I needed a project or I’d fail yet again.
Obsolescence
Saturday, April 27, 2013
We’ve witnessed a lot of products in our lifetimes. Some have faded away without even realizing it. Products like fax machines, AOL, desktop computers, atlases, home telephones. Sure, some of us still use these but they’ve all been replaced with better alternatives. The best companies and people are capable of predicting when these shifts happen — some even have the capacity to obsolesce their own products. They understand if they don’t, someone else will.
State Machine
Sunday, March 3, 2013
Last year Philips introduced Hue, a dead simple way to automate all your home lighting. After living with it for a few months and buying into Sonos — a wireless multi-room audio setup—I’m beginning to realize how accessible home automation is becoming. They’ve both forgotten one thing though, automation. Automation is the use of machines, control systems and information technologies to optimize productivity in the production of goods and delivery of services.
Today
Saturday, January 12, 2013
I’ve never been fond of arbitrary markers in time. Holidays, birthdays, anniversaries, they all seem odd to me and I’ve never been one to celebrate them. Every day should be special and accomplishments, small and large should be relished, not random days. As you would correctly suspect I don’t do resolutions. But I do think constantly about a question Buckminster Fuller used to ask his grandson, “What is the most important thing we could be thinking about today?
Ghetto Facebook Registration with Django
Monday, October 8, 2012
I’m going to quickly walk you through how to build a server-side Facebook registration flow with Django. This is really basic and doesn’t rely on special libraries aside from httplib2 and urlib which are pretty standard. First you need to create an app. I set my App Domain to localhost and Site URL to http://localhost:8000 for development purposes. You’ll probably need to do the same if you’re using Django’s built in development server.
Setting up Apple Push Notifications
Saturday, September 15, 2012
While trying to figure this out I came across a great article by Matthijs Hollemans. I suggest following it if you’re interested in an in-depth tutorial. What follows is a more concise version of that article and instead of using PHP I’m using a variant of Jacky Tsoi’s Python script. This is pretty tedious and there are a lot of steps you have to get right in order for this to work properly so hang in there.
Sending Multipart Forms with Objective-C
Wednesday, September 12, 2012
It took me a few evenings to figure this out so I’m writing a quick explanation based on what I’ve found to work. My use-case is pretty simple, I want to POST some data to a form on a server from an iOS app I’m building. I’ll be using NSURLRequest to build the request object and NSURLConnection to make the actual connection to the server. The first thing we need to understand is how Multipart Form requests should be structured.
Getting Started with MQTT
Sunday, July 22, 2012
I wanted to play around with MQTT this evening so I put together a little tutorial on how to get started using Ubuntu and Mosquitto. Installing Mosquitto Enter the following into your terminal. Remember to replace YOUR_UBUNTU_VERSION_HERE with the version of ubuntu you’re using, I was using Maverick Meerkat at the time so I replaced it with just maverick. First add the following two lines to /etc/apt/sources.list deb http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ubuntu YOUR_UBUNTU_VERSION_HERE main deb-src http://ppa.
Simple Panic
Sunday, July 22, 2012
Today I posted a public photo of how nicely done a bank start-up’s packaging was and didn’t realize my card number was in plain view. Now, I’m a pretty rational individual so I did what everyone else would have done which is call the customer service number on the back of the card. Apparently they have Sundays off so I had to leave two anxious messages on their answering machine.
Adams and Jefferson
Wednesday, July 4, 2012
One hundred and eighty six years ago both Thomas Jefferson and John Adams passed away on this day, exactly fifty years after the adoption of the Declaration of Independence. It’s hard to ignore the coincidence of this timing. A couple summers back I bought an old book containing a eulogy given by Daniel Webster in August of 1826—I think this sums it up nicely: No two men now live, fellow-citizens, perhaps it may be doubted whether any two men have ever lived in one age, who, more than those we now commemorate, have impressed on mankind their own sentiments in regard to politics and government, infused their own opinions more deeply into the opinions of others, or given a more lasting direction to the current of human thought.
A private afterlife
Wednesday, March 14, 2012
I spent a while last weekend thinking about death and privacy—for no particular reason aside from taking notice of a couple books I own: The Adams Jefferson Letters Jack Kerouac and Allen Ginsberg: The Letters Rub Out the Words: The Letters of William S. Burroughs There are countless collections of correspondence floating around from a time when an envelope was considered a form of privacy. In many cases privacy died with the individual.
Less is more
Tuesday, December 1, 2009
Hopefully you read my previous post ../sass-isnt-me about Sass and CSS preprocessors and felt my angst toward learning a new syntax. I’ve been using LessCSS for about a week and I’m really impressed. For starters, no new syntax to learn. This is simply an augmentation of existing CSS syntax. You get mixins, nested rules, and most importantly, variables. You also get operations but I’ve yet to find them that useful. Here’s my critique:
Sass isn't for me
Monday, November 30, 2009
I’ve been window shopping the CSS preprocessor world the last week or so. Sass seems to be everyone’s new bicycle but it hasn’t won me over and here’s why: It’s a new syntax that I don’t want to learn or support. I have an awesome job where we often hire new people and (hopefully) acquire new clients and the last thing I want is the added friction of having to teach (and sell) a new styling syntax.
Curiosity rewarded the cat
Friday, November 20, 2009
Good user experience is often found in the most unassuming places. We have a new restaurant opening in my neighborhood this week and I’ve been anticipating their arrival for a few weeks now. They officially open today but two days ago revealed a very important lesson in user experience. Two days ago I was walking down the street this new restaurant is on to get lunch from a neighboring location. The lights were on and it looked like people were ordering and eating inside before their scheduled opening.
Interface harmony
Sunday, October 25, 2009
Interface consistency is one of those things that, if done correctly, should go unnoticed. I’ve slowly been working on a new interface for a side project and thought it’d be a treat to share my approach. Interfaces evolve based on the needs of people using them. Each task may require a different element. Common elements include buttons, dialogs, drop-downs, select boxes, checkboxes, input fields, etc. These elements are like notes in a composition seeking harmony.
Save RAM with mobile middleware
Wednesday, October 7, 2009
A while back I wrote an article on how to set up a mobile site with Django ../going-mobile. Currently I have a Slicehost account which includes 256MB of RAM. My resources are tight and I really dislike having another set of unnecessary Apache processes for a mobile site that, aside from different templates, is using the same code base. The solution is quite simple, write a middleware. The following code checks the incoming request for ’m' or ‘mobile’ in the domain name.
Working with Python and RabbitMQ
Wednesday, May 20, 2009
I recently installed RabbitMQ to handle some message queuing needs at Readernaut and thought I’d share how everything came together. If you’d like to learn more about RabbitMQ please read this. To use RabbitMQ with python you need py-amqplib because Rabbit uses the AMQP standard. To make amqplib a little easier to use I needed a simple script that did three things: Easy way to connect to RabbitMQ. Easy way to pull stuff out of the queue.
Capturing content in Django templates
Saturday, February 28, 2009
As a template designer there are times when you have structural code surrounding a block which is waiting on content from a child template. It may look something like: <div class="content_title"> {% block content_title %}{% endblock %} </div> Sometimes this block is never filled so ideally I want the DIV element in this case gone. This isn’t easy because there’s no way to know whether content is headed towards the block so one solution that I’ve used is:
What's next
Friday, December 12, 2008
Does it make sense to reinvent the wheel every time we start a new project? No. My work echoes my past and I stand by it. Some say, “that looks like Readernaut” or “that looks like Playground Blues” and I say yes, they are me. If it worked there it will work here. When a problem is solved I move on because each project has its fair amount of new problems and I’d rather spend time on new, more interesting problems.
Message Queuing imports
Friday, September 5, 2008
Last week I ran into some problems dealing with large book imports on Readernaut. I tested the system for around 50-100 books but had no idea people would upload lists of 900+ books. This begged the question, how do you handle importing very large sets of data before the browser times out? Brief example User uploads a list of 1000 ISBNs to be imported into their library. Each book, if not already in the system, needs to be imported via another service like Amazon.
Creating a basic API with Django
Monday, August 11, 2008
Creating a simple public API for your site is a lot easier than you may think with Django. You’re basically just creating another view and serving it as XML or JSON instead of HTML. What’s public? Decide what you want to be public. The best answer is the stuff you’re already displaying in your HTML templates. Then you need to create an entry in your url conf. url(r'^api/v1/(?P<username>[-\w]+)/notes/?$', 'readernaut.api.views.user_notes'), Create the view In the case for Readernaut I wanted to provide an XML feed for users notes.
Capistrano rules
Saturday, May 17, 2008
I’ve grown tired of committing changes to my subversion repository, logging into my server, updating my live checkout, and restarting python processes. I finally decided to implement Capistrano and eliminate this repetition. Here are my repetitive set of commands: $ ssh playgroundblues.com $ cd ~/projects/playgroundblues $ svn up $ cd ~/www/playgroundblues.com/www $ touch django.fcgi Now, with the help of Capistrano, I just type: $ cap deploy You’ll first need to install Capistrano which is as simple as gem install -y capistrano.
Aspen Simulator
Tuesday, May 13, 2008
As much as I’d like to blog about my trip to Austin and SXSW last week I’m just too excited over the iPhone SDK goodies that dropped last Thursday. You may be asking yourself, “he’s a web guy, why does he care?” Well, there happens to be a beautiful gem tucked away called the Aspen Simulator. This is a complete pixel and functionally perfect replica of the iPhone and it’s fantastic for testing web apps.
Ah-ha Event Delegation
Monday, May 5, 2008
Wrapping my head around things like OOP took months. It’s not because I’m an idiot (I don’t think) - it’s just because I needed all the explanations to marinate before having an ah-ha! moment. I had an ah-ha today, with regards to Event Delegation. I’ve never seemed to completely understand events, yet I use them all the time. They’re an essential aspect of Actionscript and Javascript and there are two basic ways of capturing events, Event Handling and Event Delegation.
Gadget fast
Friday, April 18, 2008
My iPhone and laptop will be unplugged starting Friday evening for two days. I’ve let the fog of distractions generated by these two devices grow too thick so for the next few days they’ll be turned off. It doesn’t stop there. The following week Twitter, Flickr, an my feed reader will be muted. I have nothing against these services, but it’s time to step back and take the pulse of things around me and see if I’m missing something.
Going mobile
Monday, February 18, 2008
Over the weekend, I decided to whip up a mobile (iPhone) version of Playground Blues. I walked into Broadway Cafe around 3pm on Saturday, and by 5:30, I had m.playgroundblues.com. Here’s how it went down. Step 1 Since I’m still using Dreamhost and FastCGI, I created my .htaccess file along with my dispatch.fcgi file for my new sub-domain as usual. Made one little change to my dispatch file: instead of having DJANGO_SETTINGS_MODULE pointing to playgroundblues.
iPhone bookmark iconage
Tuesday, January 15, 2008
If you’re wondering how to control the icon that gets generated for your webpage with the new 1.1.3 iPhone release, look no further than Apple’s iPhone Dev Center. Apple has added a section called “Create a WebClip Bookmark Icon” and it calls for a 57x57 pixel icon. After some testing today I’ve concluded this recommended sizing results in a fuzzy icon, largely due to the iPhone being a 163 ppi display.
Flash, meet H.264
Tuesday, December 4, 2007
Adobe just released Update 3 of Flash Player 9. This is HUGE. Streaming video is no longer a laughing matter. Streaming High Definition video will become common place and it starts today. Everyone talks about BlueRay and HD-DVD, but what they don’t realize is they’ve already been obsolesced before catching stride. VHS is dead, brick and mortar video rental is on life support, and DVD just checked in with chest pains.
Django Basic Apps
Sunday, December 2, 2007
I’ve been working on abstracting some Django applications from past projects so they can effortlessly be plugged into future projects. I hate writing the same blog application repeatedly, so this is an attempt to make life easier. I think this will be a fun, little suite of plug-n-play Django apps that everyone can benefit from. I’m calling this suite Basic Apps with the hopes they’ll live up to their name. They’re freely distributed under the New BSD License and hosted at Google Code.
Django Sprint
Saturday, December 1, 2007
Armed with high levels of legally addictive stimulants, silver laptops, and brilliant minds, Django will get even closer to 1.0 today. If you have any interest in being apart of today’s event, scurry over to the Django site and scan for tickets that catch your eye and expertise. Join us in IRC (irc.freenode.net) in the #django-sprint room or if you’re lucky enough to live near Lawrence, Kansas come join us!
Juggling Django settings modules
Tuesday, November 6, 2007
If you find yourself juggling multiple Django projects and constantly changing the DJANGO_SETTINGS_MODULE variable, try this simple shortcut. Upon diving into a particular project I define an alias in my .bash_profile that gets me to the project directory in as few keystrokes as possible. For example, to get to my playgroundblues directory I simply type ‘pb’ and I’m in the root of playgroundblues.com. Here is the line of code in my .
Care to scrum?
Wednesday, October 17, 2007
We need more scrums and less meetings. A scrum (http://en.wikipedia.org/wiki/Stand-up_meeting) is a 5-10 minute stand-up meeting. About 80% of the meetings I’ve ever attended have included at least five people. Any meeting over three becomes a presentation while one bloviates and others wander. It’s been a while since my last scrum. It included seven people, complete participation, no dominance, one referee, and was contained within a 10 minute package. Rather than walking away in a typical post-meeting cloud of confusion, I left the scrum feeling clear and informed.
Trials of the I-70 commute
Monday, October 15, 2007
A while ago I began working back in the big city while remaining in modest Lawrence. This required a 40 min. x 2 drive into the sun five days a week. It wasn’t so bad at first, but the race through traffic and mass of incandescent gas started taking its toll. I decided to evaluate what was wearing me out. The sun, for one, was melting my retinas and giving me headaches.
Subliminal Culture
Friday, September 21, 2007
Lately I’ve been reading more of Lev Manovich’s (http://www.manovich.com) Language of New Media. Manovich discusses the methods in which we access new media. He mentions some research done by Paul Virilio on the collapsing effect technology has on the distances between people and content. Before, if a person wanted to see the works of Da Vinci they’d have to travel to a book store or an art museum. With the advent of new media it’s as simple as pulling up a browser.
Manually Compressing PNGs
Tuesday, September 18, 2007
With the advent of some very clean hacks to make PNGs work in IE I’ve found myself working them into my designs more. Using them has allowed me to achieve some effects that were next to impossible with JPEGs and GIFs. The biggest hurdle in using PNGs is their file size. The export tools in Photoshop tie your hands behind your back, not allowing you to tweak anything that may lead to a more compact file.
iPhone dead; $30 rental?
Wednesday, August 15, 2007
This morning I woke up on my own. Normally I hear little crickets chirping around 7am which is my iPhone letting me know it’s time to face the coming day. This morning, no crickets. At first I thought maybe the battery was flat, but that’s not possible. I charged it the day before and didn’t put it through any rigorous usage. So iPhone CPR commences. First I try a hard restart, holding down the home and on/off button for a few seconds.
Blueprints are not final
Friday, August 10, 2007
So apparently a little framework called Blueprint (http://bjorkoy.com/blueprint) has reared it’s head, born from a few stylesheets that look very familiar. I’m somewhat conflicted with its release because I don’t think it should be used. Don’t get me wrong, it’s great, but don’t use it. About five or so months ago I was working on the Journal-World (http://www.ljworld.com) redesign. News sites tend to be very column heavy and I was getting tired of writing the same code over and over to accommodate for my design iterations.
First impressions
Sunday, July 1, 2007
How does a machine have soul? We could try and answer by throwing around terms like usefulness, elegance and grace but all our attempts would sound prosaic next to the device I recently became acquainted with. Run and hide Crackberry, the iPhone is here. For people to be drooling over a 4.8 ounce device is not unfathomable especially coming from Apple. This is different. During my first hours with the iPhone I literally felt nervous.
The waves of creativity
Thursday, May 17, 2007
There are a lot of environmental factors that go into fostering a creative environment. As creative persons mature, we become more in-tune with what works best for us when it’s time to dream up new ideas and solutions. Some of us trek to coffeehouses while others listen to Bach, Satie or Mogwai. Whatever we do we’re all essentially trying to achieve a certain state of mind. Before I go any further here is a quick explanation of the human brain by neuronal scientist, Richard Restak):
Transmedia newspapers
Sunday, May 6, 2007
I just finished reading chapter three of Convergence Culture where Jenkins discusses transmedia storytelling. He focuses on the Matrix franchise and how it basically rewrote the rules for Hollywoods future. It got me thinking on my walk home from the coffeehouse, why aren’t newspapers doing this? We’re all familiar with the Matrix and have varying depths of involvement with it. Most of us have seen the first film, some the second and third but have any of us played the video game, or seen the Animatrix, or been to Matrix Online?
LJWorld redesign
Wednesday, May 2, 2007
So for the past five months or so we’ve been working on a redesign for the Lawrence Journal-World. For those of you that don’t know, it’s a daily newspaper that circulates the town of Lawrence, Kansas. It’s quite small compared to surrounding markets which makes it very agile and free from shareholders and their evil agendas. I had a feeling this project would be special and challenging but I had no idea of the scale.