No Business Plans for Startups

This article says business plans place unnessary rigidity on your startup and can keep you from being flexible with product offering, pricing, hiring, location, market, etc.

One thing I remember from business classes is that you should have a business plan first. The business plan will help you know what your offering is, who your market is, how you’ll try to make money, etc.

But in the beginning, especially in a software company, these details are likely just too hard to know. You’d be guessing and making things up.

Instead of lying to yourself about things you couldn’t possibly know, just start with your idea and give it a go! Once you’ve begun and have some experience, look at the results and see if they’re working. Does your product solve a real problem? Does the market want/need it? How do they feel about the pricing? If things aren’t going like you’d hope, change something up. Experiment. Very little is set in stone at this stage.

If you can make your business more successful by quickly changing course, do it! You shouldn’t have to spend days updating your business plan and sending it to the printers. If you have co-founders, certainly talk to them, but it doesn’t have to be a drawn-out, formalized process.

This advice could encourage people to start the business they’re dreaming of, because it lowers the barrier to entry even further. I know it set my mind in motion.

It doesn’t say “Don’t think about your business”, it says “Don’t fix your sights too early”.

And that’s something we could apply to our daily lives, as well.

Just Might

Swinging oaths as tree branches,
I’ve broken more promises than backs.
Building ladders straight to the sky,
I’ve avoided more people than birds.

Winds don’t deter me,
but the cold they bring just might.

Crawling down a mole hole,
I’ve evicted its former tenants.
Temperature’s consistent,
but the wind’s teeth don’t reach here.

Rolling a stone across the entrance,
I’ve sealed out any stoppers-by.
The first to disturb my door
won’t find a welcoming host inside.

Darkness doesn’t deter me,
but the worms it brings just might.

Strolling across plains, forests, streams,
I’ve simply run out of map.
The ways I’m taking right now
haven’t been planned or suggested.

Sinking deeper into darkness,
I’ll sleep without despair.
The morning will illuminate
further paths which I’ll wind.

Great distances don’t deter me,
but the wet socks they bring just might.

Deciding what I’ll do today,
I’ve called more shots than friends.
A pattern I’ve certainly noticed,
but done little to upend.

Settling down now at my desk,
pen in hand, paper in tow,
I’ve run out of distractions,
but a new one is soon to come.

Writing doesn’t deter me,
but beginning it just might.

Heating My Home

I recently read an article called “Restoring the Old Way of Warming: Heating People, not Places” . I read this at an interesting time, and it’s had me thinking over the past week or so. I wanted to explore my thoughts that came about from reading it and a couple other pieces: “Insulation: first the body, then the home” and “Heat your clothes, not your house”.

There is way more information available on this subject that I expected. I guess I shouldn’t be surprised. It has a lot of applications.

The article begins: “These days, we provide thermal comfort in winter by heating the entire volume of air in a room or building. In earlier times, our forebear’s concept of heating was more localized: heating people, not places.”

I’ve always grown up with the centralized heating of the air in the home, so the concept of only heating people is foreign to me.

I mentioned that I read the article at an interesting time, because for each of the previous winters, I’ve kept my apartment’s thermostat at about 68°F and worn a few more layers. But, this season, I’ve gradually crept the thermostat’s temperature up. First, I bumped it up to 70°. And then up to 72°. And, over the last couple weeks, I’ve had it set at 75°.

Having the temperature at 75° meant I didn’t need to wear extra layers. I could wear pants and a t-shirt, and be comfortable.

The first part of this year has been quite warm and sunny. I haven’t had the heat running too much because the natural sunlight warmed my apartment enough to keep it pretty close to 75°.

But the last week or two have been colder, cloudier, and snowier, so the heater has been running a lot more often to maintain 75°.

Each time the heater kicks on, I can’t help but think that, even though I feel comfy and warm, it is a bit unnecessary to heat the entire apartment, since I am only in one room at a time.

This article’s detail, then, is timely, in that it pointed out interesting facts and gave me some extra ideas about how to stay warm this winter.

The three methods of warming are conduction (heat transfer between touching objects), convection (warm air rising when an object is warmer than the surrounding air), and radiation (electromagnetic waves emitted by one object and absorbed by another).

The article uses the example that when you’re sitting in the sunlight, you can tolerate a colder air temperature, because the lower air temperature and higher radiant heat temperature average out to a comfortable level.

Churches, for instance, with their vaulted ceilings, can take advantage of radiant heating to keep the floor level warm, without wasting all their energy heating air that just rises to the inaccessible heights of the building.

This also reminds me that I have 9 ft. ceilings. If I’m sitting on my futon, I’m underneath a majority of the warm air. So maintaining the 75° air temperature actually involves heating my entire apartment, in a way that leaves most of that warmth out of my reach. This doesn’t seem like a very effective method, does it?

Is there perhaps a way to spread around the warm air up there? In my living room, I do have a ceiling fan. I looked up which direction the fan should rotate during the winter to help distribute the warm air throughout the room. That direction is clockwise. This could be a good way to actually make use of the warmest air up near the ceiling.

The article also mentions some other aspects of heating in the past.

Older buildings had a big problem with drafts. Fortunately, newer buildings do a good job of preventing them.

Hooded chairs are something I never knew existed. And I’ve seen folding screens in movies, where people change behind them, but I never heard of using them as local insulation for radiant heating. It’s probably the entire reason they existed at all, and I’ve just misunderstood their use.

I do have a fireplace, where it can be nice to sit and read and write for a while; appreciating the flickering gas flame and warmth. I don’t have it running much, but I could see a folding screen being useful when I do use it.

The four poster bed – another invention I didn’t understand. It makes much more sense when I see that the curtains and canopy are for retaining body heat and eliminating drafts. They weren’t just a fashion statement.

Hot gases from fires would be channeled through a series of pipes and that would heat beds and floors. The foot stoves described seem like they could totally make a comeback in some electric version. Perhaps heated ottomans? And I’d like to see the tile stoves mentioned, as well.

People still use heating pads to warm their beds. These are the modern, electric versions of older brass-and-embers instruments.

My first reaction, after hearing the phrase “heat people, not places” is to think of some high-tech additions to my apartment to accomplish that. But conductive and radiant heating systems have existed for 4,000 years or more. Radiant floor heating sounds brand new and fancy, but it’s been around for millennia. Incredible!

“While the old concept of heating is more energy efficient, the same cannot be said of most of the old heating devices.” So, while these forms of radiant heating are not a panacea – there are issues with thermal gradients, asymmetry of the heat, shadows, radiant diffusion through distance, etc. – it still sounds incredibly interesting.

Next, we get to what I think will be the most interesting part: how modern technology could be used to heat ourselves in a better and more efficient way. But the article ends. They mention that “next week’s” article will cover this stuff, but it hasn’t been published yet. So I’m left without knowing what that will be about. I’ll have to keep an eye out for it.

This did lead me to read the other articles I mentioned above, and then each inspired additional thoughts.

Since the article was a cliffhanger, I started to imagine what modern, radiant and conductive heating might look like. The goal would be to heat people instead of entire buildings or volumes of air.

There do exist radiant floor heating systems that use water or electricity to heat floors. I’ve experienced that once and it was pretty neat.

I can imagine a ceiling covered with radiant heating elements that are only active if someone is under them. It would feel like sitting in the sunlight, anywhere in the house. Wouldn’t that be awesome?

I mentioned those electric heating pads… What about wearing electrically-heated clothing? Could pants, shirts, socks, shoes, hats, and all have filaments in them to do some conductive heating? This could effectively turn your clothes into a heated blanket, and make those ceiling heaters less necessary.

But there do seem to be a few issues with heated clothing. Would they use power cables or battery packs? Are battery packs currently small and powerful enough to support this use, or do we need more breakthroughs in battery technology? Perhaps the batteries could also be filaments woven into the clothes? If wireless power were feasible, we wouldn’t need cables or batteries while in the home. What’s the state of wireless power? (Tesla, we need you!)

And then I find out that electrically-heated clothing already exists. Sounds like motorcyclists have used these for years to ride warmly, by plugging them into their motorbikes. Still seems to be additional potential for these kinds of clothing.

The radiant ceilings do have the advantage of heating visitors who pay you a visit. It’d be like sitting outside on a nice, sunny day for a picnic! The heated clothes only work for a single person. But I currently live alone, so it could still be a viable option most of the time.

As mentioned previously, my first reaction is to think of installing all these high-tech, novel heating methods in the home.

The insulation article mentions, “Watching television in a t-shirt during the winter is a relatively recent phenomenon.”

So this makes me wonder, what if I step back a minute and see if there’s an existing way to keep my self at a comfy temperature, without heating all the air in the apartment.

Flannel sheets are one of the best things about winter. It’s awesome to bundle up at night in those warm sheets, a comforter, and some extra blankets. Am I missing out on something during the day, then?

What about the warm layers that I already own? I’ve not been wearing layers lately, since the air in the apartment was warmer. But winter is just another season of the world. I shouldn’t mind wearing extra layers for a few months.

I might as well appreciate the occasion to wear my long socks, some slippers, a pullover/hoodie, pants, and long-sleeve shirts. And wrap up in some blankets too! In fact, soon enough, it will be summer time and I’ll want to shed as much clothing as possible.

So, wearing the extra layers I already own is a good way to make sure that I keep warm without using a ton of energy each day on heating the air in my apartment, most of which I don’t even get to use.

It’s not that I won’t run the heat at all. It’s just realizing it’s possible to keep myself at a nice 75° without keeping all my apartment at that temperature.

I’d bumped up the thermostat without thinking what kind of impact it would have on the amount of energy I used. After all, what’s a few degrees?

The insulation article mentions that lowering the thermostat 2°F can save 9-10 percent on energy.

“… watching television wearing just a t-shirt requires an air temperature of 24° Celcius (75°F) in order to maintain thermal comfort. This would lead to a rise in energy consumption of 20 to 30 percent.”

Holy crap. This exactly matches what I’ve been doing lately. I’ve been wearing t-shirts, and keeping the air at 75°, because it was most comfortable.

Does this mean that lowering my air temperature from 75° to 68° and wearing some more layers will use roughly 30% less energy? That’s an enormous difference.

This almost makes me afraid to see what my electric bill for February will be, since I’d mostly kept the thermostat at 75° during the day. The first part of the month had the weather and sunshine to help maintain that temperature without me running the heat all the time, so that should help make the bill a bit more bearable.

But it’s not just about the money. Think of the extra fossil fuels consumed just to keep my apartment a few degrees warmer. And then extrapolate across the entire Denver metro area. That’s huge.

“One layer of thermal long underwear allows you to turn down the thermostat with at least 4° C, saving up to 40% on space heating energy.”

That’s incredibly impressive. Just by wearing clothing I already own, I could drastically reduce the cost of keeping warm this winter.

There’s another factor to consider, I live on the third floor of an apartment building, so there is heat rising into my unit from the two units below me. I wonder how much that’ll help contribute to keeping my apartment warmer.

There’s an additional component to staying warm in the winter that these articles didn’t touch on: drinking warm beverages and eating warm foods.

I did notice that when the air was at 75°, drinking coffee could push me into the too-warm territory.

Would drinking coffee and tea, along with eating soups, stews, and chili be another way to warm people, not places? They did mention holding warm mugs can warm hands, but will their contents warm you up internally too?

I wonder if there’s been some study done about feeling warmer after drinking or eating something hot?

This was a lengthy piece, but I loved going from my first ideas about motion-sensing, radiant ceilings to what this piece is now. Thanks for sticking with me.

My main takeaway is that I’ll try to keep the thermostat set to about 68°, wear some additional layers of clothing I already own, and see what it’s like. Using that much less energy just seems sensible.

Does Because

So we have a definite end
And an uncertain time between.
But a bee don’t need a reason to live,
It just does what it does because.
I say, take a big breath in,
Exhale your doubt,
And probly cook yourself a trout.
The days go on,
Maybe never to end,
But I just does what I does because.

This was originally written on February 28, 2012.

Beginning to Use Everything

My Introducing Everything post was the first written in and published through my everything system.

In fact, right after I wrote the post, I made the initial commit to my everything-wordpress repo. I was able to publish that blog post to WordPress right from the command line! The code’s not pretty and the functionality is lacking, but I can improve that. Most importantly, it worked!

The Lone Crow was also stored in everything and published from the command line. I made some more edits to everything-wordpress, and had to delete the post several times (I can’t update an existing post yet), so I could try publishing again, but, hey, that worked too. And posting Thoughts on Manual Chores was smooth, thanks to those changes.

I’ve recently read an article on how we face a ‘digital Dark Age’. Our data locked in files or tied to programs that no longer work. Hey, that’s precisely what I want to prevent by moving my creative output to a single, central location which I have complete control over. It’s a major motivation for using simple text files. I’ll be curious to see what other solutions people come up with for this problem. Their ‘digital vellum’ is overkill for my needs here, but it’s certainly an interesting concept.

Over the past few weeks, I’ve been using everything to store some new writings, including this one.

Some thoughts so far:

  • It’s exciting! I feel a greater urge to write, since it helps me flesh out this system and workflow.
  • I’d like to codify the “rules” of this system into something like a “spec”. Getting some use with the system is helping with that. At this time, the rules are pretty simple. It’s a goal to keep it simple as I go forward.
    • A git repository where you have nested folders
    • Folders which are leaves on the tree must have at least one file, but
      could have more.
    • is the required file. It’s the content, written in Markdown.
    • index.yaml is an optional file. It’s the metadata, written in Markdown.
  • I want to decouple my writings from the act of publishing. Right now, I include some metadata in everything that belongs outside it, since it’s related to publishing the post to WordPress. Decoupling will help keep the writings focused, and make the entire system more extensible.
  • I want to update a post from the command line. This will be made easier by decoupling publishing from the everything repo, so I can keep track of whether posts have been published before. All the relevant WordPress metadata will be in a single, logical place then. This is one of the next things I’ll work on.
  • I need to decide whether I want to add some binary files to the repo. Right now, if I have, say, an image or two for a specific blog post, I can add them, since they won’t take up much space and would be unlikely to change. I wouldn’t store an entire vacation’s worth of photos since that would drastically inflate the size of the repo. But having images related to posts actually be in the repository would be helpful. That way I could mention them within the post, and have them show on my blog too. I’ll also have to build support for posting images to WordPress, so that will come in the near future too.
  • I want a local way to preview what my markdown content will look like as HTML. I like writing the post in vim, but it’d be nice to proof-read it in the browser. This is a perfect opportunity for another integration point; one which should also be straight-forward to create! Update: I just installed vim-instant-markdown and that is working like a charm. I can see some things it’d be nice to improve upon, but it’s great for proof-reading this piece! I love open source software!
  • It’d be nice to have a way to enforce some standards. The and index.yaml files under a directory. Starting the markdown file with a header that is also the piece’s title, followed by an empty line, followed by the content of the post. Maybe a command to generate the skeleton for a post is a start. Could some git hooks be used to validate that it’s a valid everything writing? Another cool integration point.

We’ll see how it shakes out as I use it more and as I import other writings
into it. I do have to say: I’m excited about everything!

Thoughts on Manual Chores

I’ve never washed clothes by hand or hung them out to dry. But I have often
washed dishes by hand.

I started doing my own laundry when I was, what, 14 or 15? It’s a good way to
learn to think ahead. You need clothes for tomorrow, so you have to plan for
that tonight. You have to also be cognizant of when other people do their
laundry. It’s a way to become a little more independent and not have your
parents do everything for you, even though you live in their household. It was
like a right of passage. A way to show I was growing into my own.

But what about dishes? We had a dish washer, and I expect that did most of the
dishes around the house. We’d have a chore to unload a clean dishwasher. But
it was certainly not the same as doing laundry. It’s not as feasible to save
up just your dishes and wash them alone. So they all get done together. Maybe
once every day or two. Our dishwasher made a decent bit of noise, but it was
always something that one could tune out. Sure, we did some by hand, but not
all the time. And I’m sure my mom did most of those dishes.

When I went to college and lived in the dorms, I’d wash used dishes in the
bathroom sinks. And let them air dry. When I lived off campus, I’d also do
dishes by hand. No dishwasher there either. More often than not, I’d wash them
right after I used them. Living with 6 other guys means there’s not room for
everyone to just pile up their dishes. Heck, maybe we did have a dishwasher,
but I don’t recall using it. When I lived with just one roommate, we could let
the dishes stack up a bit, but you’re trying not to be “that guy” who lets
things get nasty. Again, all by hand.

Then I moved out to Colorado Springs and had an apartment to my self. I had a
dishwasher and would use it periodically, but more often than not, I would
still wash them by hand. If I got really lazy and the dishes piled up, or I
used a lot of dishes in a given day, I would just run them through the

I felt I was too lazy if I didn’t try to do them mostly by hand. And also
wasteful of water and electricity.

Even now, when I’m back in my own apartment and I have a dishwasher to freely
use, I’ve mostly been using it as a drying rack for dishes I’ve hand washed.
Over the past week or so, I’ve been using it more often. Though I still feel a
sort of guilt when I do. And it’s not something I use a majority of the time.

In fact, I was recently chatting with coworkers and mentioned how I used my
dishwasher as a drying rack since I normally did dishes by hand. It was like a
way to brag. (How lame, right?)

There are times when washing dishes is a nice way to zone out for a bit. Take
my mind off other things. And it doesn’t take eons to wash things, as long as
you do them each day.

But I’m curious about why I feel lazy or guilty for not hand washing dishes.
Why would I only feel this way about dishes and not something else like
washing and drying clothes?

Is it just because I’ve never washed or dried clothes without the machines? I
have zero idea how you would do that and actually get the clothes clean. I
wouldn’t consider myself lazy for using the washer and dryer. In fact, it
doesn’t really seem like there’s any other way.

But the dishes are something I’ve done by hand a lot, and I know I can do it.
In this case the idea of letting a machine do it so I don’t have to just feels

I suppose technology does allow us to be more selective about what we will
spend our time doing and what we’ll let the machines do. There’s nothing
inherently good about doing the dishes by hand, just like there’s nothing
inherently wrong with using the clothes washer and dryer.

It’s similar to how we’ve decided to let machines be our method of transport
instead of relying completely on animals or our own feet.

Instead of doing dishes, I could be reading or writing or watching something
on Netflix. Or, instead of doing any of those, I can take some time out and do
a mindless chore like washing dishes. Both activities have their time and place.

It’s just very curious that I’d feel like I should wash dishes by hand, but
I’d never think that about washing my clothes. Behaviors and thoughts are

I’ll work to realize when I feel guilty/lazy and try to not let it linger. I’m
cool about letting the machines do some of my work. Guilt isn’t doing me any
good; it’s just another stressor. And I certainly don’t feel we need any more
stress added to our lives.

Have you ever felt anything like this?

The Lone Crow

A flock of crows flew under a thunderstorm that raged above.
All but one called out loudly as it flew. That bird had lost its voice.
Each bird swarmed through the group in a haphazard way.
Lightning flared all around. And took out one of the birds.
The rest of them frightened, scattered, and crowed even more loudly.
The lightning struck again and again, each time casting a crow from the sky.
In the end, the only crow still flying was that crow without a voice.
It didn’t boast against the storm, and so was allowed to live.
The meek inherit the earth.

Introducing Everything

Lately, I’ve been thinking about how to keep all my creative outputs in a
single place. This includes writings, images, videos, and audio. I’ll focus
first on the writings, because I have a better idea of how to store them and I
work with them the most.

One of my main problems is that things get spread across different places.
Various folders, services, and file formats, to name a few. Remembering each
of these places is a chore. Not to mention that over the years file formats
and services come and go. So viewing or editing the writing will likely be
difficult or impossible years later.

My goal is to have a single, central location where all my writings are
stored. From my very first pieces of poetry written back in middle school to
the short stories I’ve lately posted to my blog. I want to keep it simple, but
allow for powerful extensions down the road.

Since the goal is to track everything, I’ll also call it everything.

Here are some of my requirements:

Plain text

All my writings will be stored as text; plain and simple.

It’s important to remove the ability to silo my data where it becomes
inaccessible later. These silos could be a proprietary or binary file format.
The file format may be abandoned or it later becomes impossible to run the
software needed to view or edit the file. I also won’t use password-protected
files, since it’s easy to forget the passwords. Microsoft Office and
WordPerfect are examples of programs and formats that become difficult to use
a decade later.

Since some styling is important, I’ll write in
Markdown. This gives me a way
to mark up the content so it’s easy for humans and programs alike to read.

There are many programs which can convert Markdown to HTML. That should be
good enough for most of my needs. Even if Markdown becomes obsolete, the text
is still available, and the formatting human-readable.


Writing in plain text is one way to keep it simple. But how will I store
multiple writings?

Folders and text files are something computers have done for decades. They’re
good at it. Tons of software works with folders and text files, especially
Unix and its variants. Folders and text files are cross-platform and
well-supported. Using this well-tested, well-known, widely-accepted convention
will be key to using it over the long term. I’ll also be able to extend it in
various ways.

Folders-and-text-files is the obvious choice for storing my writings.

Local to My Computer

I’ll store everything locally, on my computer. I won’t have to worry about web
services disappearing and taking the sole copy of my writings with them.
Google Wave, Xanga, and my own, old websites immediately come to mind as
offenders of this.

Another benefit is that I indisputably own and maintain complete control over what I

Storing everything locally also means I can do a lot with it, some of which
I’ll mention shortly.

Single Location

Using a single, root folder that houses all my content means it’s stored
in a central place. Writings won’t be spread out across who-knows-how-many
places. Searching will be easier. And it adds to the simplicity mentioned

Consistent and Conventional

Using a consistent organizational structure, naming convention, and data
format will make it easy to use. I’ll think less about where my data is kept
or how to use it, because it’ll be the same for everything I write.

Convention is paramount.

My root folder will contain subfolders of topics. Each topic folder will have
folders for individual pieces. Each piece’s folder will contain text files.

I’ll use this piece as an example. My root folder is called everything, and
the subfolder for this topic is everything-thoughts, which has a further
subfolder for this piece called introducing-everything, which contains a
text file called


I can play with the structure of folders and files as I use it more.

Another benefit is the ability to store images and files related to my written
piece in its folder and keep them for reference. Now that will be handy.


All my writings will be private by default. This mainly means I won’t be
posting directly to a blog. Many of my writings wouldn’t make sense to be
public, and others are just for my eyes. Everyone has things they’d like kept
secret. Knowing everything is just for me means I don’t have to worry about
self-censorship. And I can always make things public later if I want.

Versioned, Redundant, and Backed-Up

Storing text files in folders means I can take advantage of existing services
and tools to have redundant, versioned, and backed up copies of my writings. I
won’t have to implement some clever scheme of my own to achieve this. This is
truly a huge advantage.

I’ll use things like git, Dropbox, CrashPlan, Time Machine, and GitHub.

Making the root folder a git repository means I can version my writings easily
and also use branches. I work with git in software, so it makes sense to use
it for my plain text writings as well.

The files-and-folders pattern means I can use all these services, or none of
them, or even change things up later without impacting anything about how I
create or store my writings themselves.

Store Metadata

A written piece has data associated with it that goes beyond the text of the
piece itself. Links to the blog post at which this piece was published. Things
like original creation date or the original source are helpful if it came from
a Word document. Maybe comments on the piece as a whole. A list of people who
have contributed to it, say editors. Since I’m using a convention to store the
writings, I can easily have another, related file to store this metadata.


Writing in plain text allows me to write flexibly. I love using vim for
writing code because of the ease of manipulating text. I’ve written blog posts
and documentation for work in plain text in vim and found it quite pleasing.

It allows me to have multiple views of the document which is helpful for
editing and rearranging. If I find something else to be more useful, I’m able
to use that as well. Editing text is something tons of software does.

Using a git repo to store text files in folders means I’ll have to maintain
this repository from my laptop for now. But using plain text means I can write
in something like Evernote and then add it to my repository later. And I can
track the metadata of the original file, etc.


I will start with writings, but I’ll be able to later apply these same
conventions to other things I make like images, video, and audio. Git and
GitHub might not be an ideal choice for these additions, but I can explore the
options later.

One of my most common workflows is to write a piece and then post it to my
blog. I should be able to write some software to read the post from this repo
and then publish it to my WordPress blog. I could do this from the command
line, or take advantage of GitHub’s webhooks.

Eventually, I’d like to build my own applications so that I could write using
an iOS application or on a website and it would be backed by my git repo.
Keeping it simple gives me the power to write these kinds of integrations

Moving all my existing writings into this repository will be a long process,
but I can work on it over time. It’s encouraging to have a goal, though!

I’m sure things will change as I use it regularly. I currently know the least
about this project that I ever will. Hopefully my focus on plain text and
simplicity will make it easy to evolve.

Here’s to everything!

Simple Location

Last night, I got the itch to create an iOS application to display my current position on the Earth (I haven’t managed to get to Mars yet) in the familiar terms of latitude and longitude.

I began by watching a video tutorial, which was part of a set I’d purchased a little while back. The tutorial was written for someone to use an Objective-C iOS project, but I used my previous iOS projects and Google searches to write it in Swift instead.

Through the course of my searches, I found a video tutorial on YouTube which gave me the idea to also display the city and state. It was a demonstration for a Swift application, which was right up my alley. Showing the city and state would make the demo a little more human readable. Turned out to be pretty straight-forward! Also a good way to make sure the latitude and longitude aren’t total crap.

I don’t have the application available on the App Store, but here’s a screenshot: Screenshot of Simple Location

You can also check out the source code on GitHub.

I’m hoping to explore other location based applications (web and iOS) in the future, so this is a good stepping stone.

Actively Care About Your Code

This post first appeared on the Fulcrum blog.

While recently writing some software in JavaScript, I noticed a pattern. I would create an object, and then call init() on it. The instance needed some stuff done before I could use it.

This pattern of using init() grew after I saw it in another class. The name init() (short for initialize) implies it is run first, to set things up. Since I was currently looking at the internals of the functions, init() felt as good a name as any.

A simple example of this pattern is:

var song = new Song(“Another One Bites the Dust”);

Here, init() could be used to rewind the cassette tape, prepare the instruments on stage, make a connection to the cloud server for streaming, or… anything, really.

Actively care about your code!

Once the pattern expanded through several other classes, reading my code became more difficult. First, not all my classes had an init(). The distinction on which classes did and did not was arbitrary.

Next, I had recently written this code, but I no longer held in my mind the knowledge of what it did. The name init() wasn’t helpful in reminding me. It was a catchall. I had to look at the implementation of each init() to see what was happening. Some did a lot; some did only a bit. The internals varied greatly from class to class, even though the functions all shared the same name. That hinted that something was wrong.

Ben Orenstein recently spoke at the Denver.rb meetup group. During the talk, he showed us a real-world method named perform that was something like 600 lines of convoluted, meandering code. With a name like that, it could literally do anything and still be a fitting name. It was a bad name because we could not make it worse. It was an example of a god method.

He also mentioned the poor code quality was a sign that the people working on it just didn’t care, at least about that method. When we write software, we must actively care. When we don’t, we quickly end up in the weeds.

This reminds of me the well-known quote by Phil Karlton:

There are only two hard things in Computer Science: cache invalidation and naming things.

A fantastic way to actively care about your software is to name things well. Even though it is difficult, the work of finding a fitting name keeps your software maintainable.

When we stop caring about one function, its quality slips, and that impacts other areas. It’s easy for that poor quality to spread to other pieces of code.

I’ve worked to rename the init() functions to be more revealing of their purpose and what they do. The code is now easier to read and documents itself better.

var song = new Song(“Another One Bites the Dust”);

If you notice, like I did, that your code is hard to follow and harder to maintain, ask whether you have actively cared about it. Take some time to name things properly. Your future self and your co-workers will be glad you did.