#14 - My Setup
00:00:00
◼
►
Hello and welcome to Developing Perspective.
00:00:03
◼
►
Developing Perspective is a near-daily podcast discussing the news of note in iOS, Apple,
00:00:07
◼
►
and the like.
00:00:08
◼
►
I'm your host, David Smith.
00:00:09
◼
►
I'm an independent iOS developer based in Herndon, Virginia.
00:00:12
◼
►
This is show number 14 and today is Tuesday, August 23, 2011.
00:00:18
◼
►
The format of Developing Perspective is that I'll handle a handful of links, articles,
00:00:21
◼
►
things I've found interesting since the last episode, and then move over into a more general
00:00:26
◼
►
discussion towards the end.
00:00:27
◼
►
The show will never be more than 15 minutes.
00:00:29
◼
►
Let's get started.
00:00:30
◼
►
All right, first link I have today is to a tool that I use and have used for years and
00:00:36
◼
►
years and recently just realized I never actually talked about it on the show.
00:00:40
◼
►
It's called Size Up.
00:00:41
◼
►
It is essentially a window manager for Mac.
00:00:44
◼
►
And what it allows you to do is to set up a variety of different templates for how you'd
00:00:48
◼
►
like your windows organized on your screen.
00:00:51
◼
►
I use a fairly large screen and actually two very large screens.
00:00:56
◼
►
And so it's something that is often very important for me is to say, "Okay, I'm going to use
00:00:58
◼
►
these two windows side by side, both using, say for example, half of the screen left and
00:01:03
◼
►
right or top and bottom or quarters or those types of things. What this application does
00:01:08
◼
►
is lets you set up keyboard shortcuts to say, "Move this window to exactly the top left
00:01:12
◼
►
corner or exactly the left side or fill the entire screen or move it to the other screen
00:01:18
◼
►
and do those types of things." And it's become muscle memory for me for how I can organize
00:01:23
◼
►
my windows and it really just saves a lot of time and effort. Some of this is a little
00:01:27
◼
►
less relevant if you are using a single monitor setup in Lion and you really like full screen
00:01:34
◼
►
apps, maybe it wouldn't be as useful. But if you're using a smaller screen or two screens,
00:01:39
◼
►
then it's definitely something worth checking out. I think it's like $10 or something. It's
00:01:43
◼
►
a fairly inexpensive tool that I've just really found really helpful. Next, there's a repository
00:01:49
◼
►
over that's actually managed by GitHub itself. So it's github/gitignore on GitHub. Basically,
00:01:56
◼
►
Basically, it's a really interesting project that they put together collecting useful .git
00:02:02
◼
►
ignore templates.
00:02:03
◼
►
And so if you use Git as your version control system, your gitignore file typically in the
00:02:08
◼
►
root directory of your project tells Git what to exclude from the project.
00:02:14
◼
►
So these are typically things that are either something you wouldn't want versioned, so
00:02:19
◼
►
maybe it has your local development database or something like that, your local preferences
00:02:25
◼
►
and settings that aren't really part of the project, that if you have 10 people working
00:02:30
◼
►
on a particular project, say, a small to medium sized team, and you committed that, you're
00:02:36
◼
►
constantly going to be overwriting each other's preferences and choices, and that can be very
00:02:41
◼
►
frustrating. And so this is just a great way to--great collection that they've put together.
00:02:45
◼
►
They have a template file for almost every language or project you could imagine. So,
00:02:51
◼
►
For example, one that's especially relevant for me is an Objective-C Git ignore file,
00:02:56
◼
►
which includes all kinds of things.
00:02:57
◼
►
So your build directory, your PBX user file, your project files, the different perspective
00:03:03
◼
►
Some things that I probably wouldn't have actually even known that I could exclude or
00:03:08
◼
►
should exclude.
00:03:09
◼
►
So definitely worth checking out.
00:03:11
◼
►
There's also ones for, for example, Rails or Ruby files, WordPress, all manner of things.
00:03:18
◼
►
Drupal, C++, lots of interesting things there.
00:03:22
◼
►
Definitely worth checking out if you use Git,
00:03:24
◼
►
and definitely just a big help that I recently found.
00:03:27
◼
►
I was like, oh, I recently created a new project,
00:03:29
◼
►
so I'm like, oh, what should I put in my Git ignore file?
00:03:32
◼
►
So it's just worth looking at that.
00:03:35
◼
►
Next, there's a really interesting article.
00:03:38
◼
►
So if you're not familiar with Why the Lucky Stiff,
00:03:40
◼
►
who was a kind of a legend in the Rails community
00:03:42
◼
►
back in the day, a couple years ago,
00:03:45
◼
►
he sort of dropped off the radar intentionally.
00:03:48
◼
►
I think he just sort of had enough with kind of the persona and perspective that he had,
00:03:54
◼
►
especially given that he was an online persona rather than a person.
00:03:58
◼
►
He was just sort of called Y and he was famous for some of the things that he'd done.
00:04:02
◼
►
But there's a really interesting article or I guess it's a post someone wrote, which publishes
00:04:06
◼
►
an email that he got from Y back in the day talking about sort of how he developed and
00:04:16
◼
►
why he made some of the choices he did.
00:04:18
◼
►
It's just a really interesting thing where he talks a lot about, he often shuns the predominant
00:04:25
◼
►
styles of coding and things because what he really enjoys is experimentation, kind of
00:04:31
◼
►
mucking about and trying to make interesting things.
00:04:35
◼
►
And he focuses on that far more than he does on design patterns and protocols and procedures
00:04:42
◼
►
wants to do is make interesting things.
00:04:44
◼
►
And he says the best way to do that is to kind of push
00:04:47
◼
►
the boundaries, to kind of be playing around
00:04:49
◼
►
and playing fast and loose with things to get it to work.
00:04:52
◼
►
Now obviously that's advice that works in certain contexts.
00:04:55
◼
►
It's not something that you want to do.
00:04:57
◼
►
If you're necessarily working on a large team of 30 developers
00:05:01
◼
►
working on something, there's a certain amount
00:05:03
◼
►
that's necessary.
00:05:04
◼
►
But it was just a really encouraging thing
00:05:06
◼
►
to kind of read and think about, especially
00:05:08
◼
►
for small slide projects, things where really the goal is
00:05:12
◼
►
to experiment and learn something.
00:05:14
◼
►
So it's not as important to be unit testing all your code,
00:05:17
◼
►
to be writing lots of comments, those types of things.
00:05:20
◼
►
And it gives you much more flexibility to say, hey,
00:05:22
◼
►
I'm going to experiment with this.
00:05:23
◼
►
I'm going to play with it.
00:05:24
◼
►
If it works, it works.
00:05:25
◼
►
If it doesn't, it doesn't.
00:05:27
◼
►
But it's kind of freeing in some ways to think in those terms.
00:05:29
◼
►
So definitely worth reading.
00:05:31
◼
►
And lastly, there's a site-- it's patterns.com,
00:05:34
◼
►
but with all the vowels missing.
00:05:36
◼
►
And essentially, you may have come across this before.
00:05:40
◼
►
every now and then it seems to just kind of be rediscovered.
00:05:43
◼
►
But it's a really interesting site
00:05:45
◼
►
that shows you patterns in iOS development.
00:05:48
◼
►
And so say, for example, you're creating a comments entry
00:05:55
◼
►
It'll have dozens and dozens of ways
00:05:57
◼
►
of displaying comments screens.
00:05:59
◼
►
Or for example, you have a search screen,
00:06:02
◼
►
or you have a recipe display, or a settings screen,
00:06:06
◼
►
or a share panel.
00:06:07
◼
►
Whatever those kinds of things are,
00:06:09
◼
►
It has a collection of different examples of it.
00:06:11
◼
►
So for example, I opened up the recipes area.
00:06:13
◼
►
It has one from all recipes, Martha's Everyday Food, Eataly,
00:06:17
◼
►
and Epicurious.
00:06:19
◼
►
And it's just a really interesting way
00:06:21
◼
►
to kind of get some inspiration.
00:06:22
◼
►
If you kind of get stuck, you're like, huh,
00:06:25
◼
►
how should I show this calculator?
00:06:27
◼
►
How should I show this about screen?
00:06:29
◼
►
What could that look like?
00:06:30
◼
►
And so it's a really nice way to kind of just capture
00:06:32
◼
►
that in a way that gives you some inspiration
00:06:36
◼
►
and gives you some kind of thoughts through.
00:06:38
◼
►
So examples from other people who've thought through the same problem that you're encountering.
00:06:42
◼
►
So just worth checking out.
00:06:43
◼
►
All right, so that's it for today's links and discussion area.
00:06:48
◼
►
Now I'll be moving into our general discussion for today.
00:06:51
◼
►
And for that, I'm going to be talking about my computer setup.
00:06:55
◼
►
So I work outside of my home in a small office that I rent just a mile from my house.
00:07:00
◼
►
And that's where my primary office setup is.
00:07:02
◼
►
And that's where I sort of probably do 90% of my work.
00:07:05
◼
►
The machine that I use most part here is a late 2009 iMac.
00:07:11
◼
►
It's a pretty beefy machine at the time.
00:07:13
◼
►
I think I got pretty much the fastest iMac that you could at the time.
00:07:17
◼
►
It's now probably not too impressive, but it's an i7 processor which has, I believe,
00:07:22
◼
►
eight virtual cores.
00:07:23
◼
►
I think I maxed the RAM.
00:07:25
◼
►
I think I sort of got up to something like 8 or 16 gigabytes.
00:07:29
◼
►
It's quite a lot.
00:07:31
◼
►
Those parts aren't especially interesting.
00:07:32
◼
►
It's a 27-inch model, which is nice to have a nice big screen.
00:07:35
◼
►
And then what I find probably the most interesting part of my configuration there is I boot from
00:07:39
◼
►
an external solid-state drive.
00:07:41
◼
►
So this is just an other world computing solid-state drive that comes in a bus-powered FireWire
00:07:48
◼
►
800 enclosure.
00:07:49
◼
►
The advantage of what I found about that is A, the iMac that at the time when I purchased
00:07:54
◼
►
it was, in order to get a solid-state drive, was a very, very expensive upgrade on it for
00:07:58
◼
►
not a lot of capacity.
00:08:00
◼
►
And so I left the normal spinning disk drive
00:08:02
◼
►
as the internal drive.
00:08:04
◼
►
And then I boot from the external solid state drive.
00:08:06
◼
►
Now you get a lot of the performance gains
00:08:08
◼
►
that you would get from an internal solid state drive
00:08:11
◼
►
You get a lot of-- for your sort of random seeks
00:08:13
◼
►
and those types of things, you get a lot of benefit from that.
00:08:16
◼
►
The unfortunate downside is that I
00:08:18
◼
►
am capped at the bandwidth of FireWire 800.
00:08:23
◼
►
So if I'm doing large transfers and things,
00:08:25
◼
►
you'll notice that a little bit.
00:08:26
◼
►
But since most of what I do is doing very small reads, the performance benefit is definitely
00:08:31
◼
►
significant.
00:08:32
◼
►
I found that it's in the range of 20 or 30 percent faster than the internal disk when
00:08:36
◼
►
I have done some benchmarking between them.
00:08:39
◼
►
Another advantage of leaving my boot drive to be external is that when I'm on the road,
00:08:44
◼
►
it's very, very easy for me to pick up and put down my work.
00:08:50
◼
►
So if I shut down my iMac, unplug that FireWire drive, plug it into my MacBook Pro, which
00:08:55
◼
►
which is just an old MacBook Pro, I think it's two or three years old, it boots right
00:08:59
◼
►
up, all my files are there, everything's set up exactly like how I like it, and I don't
00:09:03
◼
►
have to keep the two machines in sync in that regard.
00:09:06
◼
►
It's just literally the exact workspace that I was using otherwise.
00:09:10
◼
►
I can move easily between the two machines.
00:09:12
◼
►
It has a few artifacts that you usually run into, some of the display configurations and
00:09:16
◼
►
those kinds of things get kind of confused.
00:09:18
◼
►
But generally so far I've been doing it for about two years now, and it's been a great
00:09:23
◼
►
configuration to be able to have my external drive that is movable between my machines.
00:09:28
◼
►
So for example, when I go to WWDC, I just take my MacBook Pro, Firewire 800 drive, and
00:09:36
◼
►
off I go and I can be just as productive.
00:09:38
◼
►
I don't have a situation where, "Oh, I've left something on my iMac back at the office."
00:09:44
◼
►
So that's part of the configuration.
00:09:47
◼
►
Connected to my 27-inch iMac, I also have a 27-inch cinema display.
00:09:51
◼
►
So it's kind of an absurd amount of desk space.
00:09:54
◼
►
And it certainly is more than I need.
00:09:55
◼
►
That's one thing that I-- it's kind of a-- unfortunately,
00:09:58
◼
►
these displays only come in increments of 27 inches
00:10:02
◼
►
I would have probably opted for a slightly smaller setup
00:10:04
◼
►
if they had same-day displays in that size.
00:10:08
◼
►
But the advantage I find is I like having two screens.
00:10:11
◼
►
I think that's definitely worthwhile as a developer
00:10:13
◼
►
to have-- essentially, what I typically end up with
00:10:15
◼
►
is Xcode running full screen, or not in an alliance sense,
00:10:19
◼
►
So I'm taking up the entirety of my main display
00:10:23
◼
►
directly in front of me.
00:10:24
◼
►
And then to my side, I have any external things that I need.
00:10:27
◼
►
So documentation, the simulator, mail, Safari,
00:10:30
◼
►
those types of things are running on the screen
00:10:32
◼
►
on the right, the way that I prefer it.
00:10:35
◼
►
And what I find is that I'm generally
00:10:37
◼
►
using one and a half of my monitors.
00:10:39
◼
►
So I'm using the full main monitor and then half
00:10:41
◼
►
of the other one.
00:10:42
◼
►
Beyond that, it gets too far out of your vision.
00:10:44
◼
►
You're almost having to turn to look at it, which I don't
00:10:47
◼
►
find especially comfortable.
00:10:49
◼
►
Let's see, other parts of my setup and configuration
00:10:52
◼
►
are that I run--
00:10:54
◼
►
I have a dock for my iPhone and a dozen or--
00:10:58
◼
►
probably not a dozen, but I have several dock connectors
00:11:00
◼
►
coming out the back of my computer,
00:11:02
◼
►
because that's one thing of being an iOS developer,
00:11:04
◼
►
is you're always constantly plugging and unplugging
00:11:06
◼
►
different devices.
00:11:07
◼
►
I think in my office, I have about six or seven
00:11:09
◼
►
iOS devices of various kinds, ranging
00:11:12
◼
►
from second generation iPods and--
00:11:15
◼
►
And iPhone 3G all the way through to the iPad 2 and iPhone 4, those types of things.
00:11:20
◼
►
And so it's very convenient to have just a lot of dock connectors.
00:11:24
◼
►
I also have an extra MagSafe connector plugged into the back, or available from the back
00:11:29
◼
►
of my machine.
00:11:30
◼
►
So this is also helpful sometimes where, for example, right now I'm running the iOS 5 betas
00:11:34
◼
►
on my main machine as Xcode.
00:11:37
◼
►
And then I have on my MacBook Pro, it also has an internal bootable drive that I can
00:11:42
◼
►
use and that's where I run my current 4.1 which is sort of the main shipping version
00:11:48
◼
►
that I need to use for submissions to the App Store now.
00:11:50
◼
►
I run on that and when I'm connecting that, when I'm actually doing those builds, I can
00:11:55
◼
►
easily plug the display port from the cinema display into that and then you still have
00:12:02
◼
►
that massive screen real estate that I'm used to even though I'm using a much slower machine
00:12:06
◼
►
to make that happen.
00:12:08
◼
►
One thing that's also kind of fun with this setup and using an external drive as your
00:12:12
◼
►
primary drive is it's very easy to have backup.
00:12:15
◼
►
So every night this super duper clone is made of my external FireWire drive to the internal
00:12:20
◼
►
drive of the iMac.
00:12:22
◼
►
And the advantage of that is A, I can easily, I have a backup of all my work that's at no
00:12:29
◼
►
more than one day old.
00:12:31
◼
►
The other advantage is it means that my iMac can boot without my main boot drive connected
00:12:37
◼
►
So if I unplug my FireWire 800 drive, I can still boot the iMac, and it's essentially
00:12:41
◼
►
a snapshot of my yesterday's work.
00:12:43
◼
►
You have to be a little careful with that so that you don't end up overwriting files
00:12:46
◼
►
that you want when the next time you do the backup.
00:12:49
◼
►
But often that's been helpful for me if I'm away or something like that and someone needs
00:12:54
◼
►
to use the computer.
00:12:55
◼
►
They still can.
00:12:56
◼
►
They can boot it up, open up Safari, do whatever they need on it.
00:12:59
◼
►
It's just a fully working computer.
00:13:01
◼
►
It's just my computer a day ago.
00:13:05
◼
►
That's essentially my configuration.
00:13:07
◼
►
The other little things that I always like is I'm a big fan of the Microsoft natural
00:13:11
◼
►
split keyboard.
00:13:12
◼
►
It's this kind of strange habit I've gotten into.
00:13:15
◼
►
I've been using a Microsoft natural keyboard for years and years now.
00:13:19
◼
►
I think probably since I was a – first could choose my keyboard when I was at a job where
00:13:24
◼
►
that was something I could do and I've just grown used to the muscle memory for where
00:13:29
◼
►
all the keys are.
00:13:30
◼
►
Everything is just perfect and I've never had any problems with RSI, carpal tunnel,
00:13:34
◼
►
anything like that.
00:13:35
◼
►
It's just a very very comfortable machine.
00:13:38
◼
►
I use a Logitech keyboard, mouse, just the standard $9 laser mouse that just feels right
00:13:45
◼
►
It's the right size, it's the right sort of sensitivity and speed.
00:13:49
◼
►
I've tried using a magic mouse but for me it's too small and the lack of physical button
00:13:54
◼
►
and kind of just feel of it just doesn't, never quite felt right.
00:13:59
◼
►
And then I also have a magic trackpad that I use primarily for gestures and things like
00:14:03
◼
►
that to play around with, but it's not something I use very often. I often use that too when
00:14:07
◼
►
I'm recording shows like this or other recorded things because it doesn't have a clicking
00:14:11
◼
►
sound when you make a selection with the mouse. And that's essentially my setup. And then
00:14:18
◼
►
of course I'm recording this on a Rode Podcaster microphone. I have a big set of Princess Leia
00:14:22
◼
►
headphones that, by Princess Leia I mean the big over-your-ear sort of two buns stuck on
00:14:28
◼
►
side of my ears looking set up and that's about it.
00:14:33
◼
►
I have a little printer and I'm just looking around my desk with an old printer scanner
00:14:39
◼
►
that I primarily just use for scanning but that's my setup.
00:14:42
◼
►
That's where I make my money.
00:14:43
◼
►
That's how I make my living.
00:14:44
◼
►
So anyway, I hope that's interesting and that's it for today's show.
00:14:47
◼
►
I'll talk to you tomorrow.
00:14:49
◼
►
Happy coding.