How to set up Hipstamatic

I’ve been snapping away with my iPhone lately. The app I have been using the most is Hipstamatic. I started with a few issues that bugged me, so I wanted to tell you how I set it up. This is not how everyone needs to set their camera up, just what works for me.

Resolution: this was disappointing. I shot a ton of images that I was going to put in a small book. They were all at the default resolution of 600px. Nuts. Too small to print. It took a long time to figure out that you set the resolution via a sliding switch on the side of the lens. You need to turn the camera around and slide the lever to the left of the lens up. You now have full resolution.

Push the lever on the left up

Composition: this drove me nuts. Some people might like the retro like aspect of not knowing exactly what picture they are taking, but not me. I like to compose carefully. To fix this, you need to be in the Settings app, Hipstamatic section. Here change the Viewfinder Mode from Classic to Precision Framing.

Hipstamatic setting page on the Settings App

Random changing film and lens: Again, maybe I am just not the target retro user of this app, but I don’t want the camera to randomly switch things on me when I shake the phone whether it’s accidental or deliberate. There are two ways to fix this. If you edit your lenses you can pick which lens you want it to pick on shake. Me, I use the sledgehammer approach and turned Shake to Randomize off completely in the settings app.

Set shake to change individually

Metadata: if you want tags and GPS info to make it to your photo sharing sites, you also need to make sure that this is enabled in the settings app. I think this is on by default. You can also set this each time you post. The biggest issue I had to getting this to work on flickr was that I had blocked this feature on the flickr account settings. Go figure.

Now, the reason I started and continue to shoot with this app is one lens and film combo. I saw Josh Bradley using this when he took the portrait that I am using in twitter and Facebook. I downloaded them right away. I use the BlacKeys Ultrachrome B+W film and the Lucifer VI lens. You can get them both in the Portland Hipstapak. It will cost you a couple of dollars via in app purchase. Its the only combo I am using. I know I should be more adventurous.

Anyway, this app is all about fun, so have fun taking pictures.

How to Photograph Cherry Tomatoes

f/22, 8 sec, at 55mm, 200 ISO, on a NIKON D90

f/22, 8 sec, at 55mm, 200 ISO, on a NIKON D90

This is more about how to photography any “still life”, not just cherry tomatoes. That just happened to be what I had on hand. We have a garden, and our tomato plants are growing like weeds. I thought they might be interesting to shoot, so I got out a white bowl and a white foam core board that I placed on the table.

I then got out a light stand, an umbrella, a flash, then scrapped them. I just pushed the bowl toward the window. This was a south facing window, and we are around dinner time, so there is no direct light. As you could see in the photos, I could have maybe added some fill light from a flash, but I think they turned out pretty well.

What I do want to share with you, are the tricks that I used to get the image sharp.

First, use a tripod. When you are shooting small items like this, you need at least some, if not all of the image to be sharp. If you use a large f-stop like f2.8 or smaller to get your shutter speed high enough to avoid a tripod, you will still likely have a bit of shake in your hands. The depth of field will be very small, and there is a good chance that the the stems will not be sharp. You need to direct the eye to somewhere sharp in the image.

f/5.6, 1/2 sec, at 48mm, 200 ISO, on a NIKON D90

f/5.6, 1/2 sec, at 48mm, 200 ISO, on a NIKON D90

Close down your aperture by using a number like f/16, or f/22. This will allow more of the tomatoes to be in focus. If you make a creative decision to only have a small section in focus, that’s fine too, but just pay attention to how much of the photo is in focus. When you select the small aperture, it will directly effect your shutter speed. Another reason to use your tripod.

Resit the urge to crank up your ISO. I often take pictures indoors at 400, 800, even 1600 of people, but once noise reduction is applied, the image is not as sharp, and that is what we are going for here. Turn it down to 100  or 200.

Manual exposure. It’s not that scary. Honest. And with digital, you see right away if there is a mistake. Start by using aperture priority, with our selected aperture. (I mostly used f/22) Take a picture and note the shutter speed. Switch to manual, and set that shutter speed. Now you won’t have to deal with the camera shifting your exposure while you shoot. You now adjust the shutter speed to keep the lens open longer to make it brighter, or shorter to make it darker.

Manual focus. This isn’t as scary as it sounds either. Really. You’re on a tripod right? Manual focus becomes much easier on a tripod. Flip the switch on your lens or camera body from auto to manual, and carefully turn the focus ring. Go back and forth in and out of focus a couple of times to get an idea of where the focus plane is. Pick something important in the image that you want to be the sharpest item, and use that. With larger apertures (f/4, f/2.8, etc) this becomes even more critical.

f/5.6, 1/2 sec, at 38mm, 200 ISO, on a NIKON D90

f/5.6, 1/2 sec, at 38mm, 200 ISO, on a NIKON D90

Blow your highlights. Or not. It’s up to you. But know this: if you have a window, or the white plate in the frame, they are not the focus of the image, and they are likely the blinkies or the right edge of the histogram that is freaking you out. You don’t want blinkies on the tomatoes themselves, but the window, and probably the plate edge are just fine. Try a few different exposures and see. What the heck, try a tomato HDR. (Wish I had thought of that earlier)

You need to remotely trigger the camera. Mashing the button introduces more shake than you think. So last night I searched all over the house looking for my cable release. I looked in boxes, and back packs, and my wedding bag, nothing. Ok, next best, I will use the wireless remote I bought a long time ago. Dead battery. Shoot. What to do? Timer. No need to set the timer to 10sec, just a couple will do. You will have one setting to set the length of the timer, then another to select that you want to use it.

Mirror lockup. I don’t use this much, but for close up work on a tripod, it works great. Again, this is to reduce vibration. What happens is that the mirror will swing, then pause, then take the picture and swing down. The pause helps the camera vibrations settle. Just another little thing that helps. Don’t forget to turn this off though.

So, now when you press the shutter release button, it will seem like nothing happens. The camera is on timer. It will pause for a couple of seconds, then the mirror will swing up, then the exposure of a sec or more (that’s what i had at f/22), then everything will close down, your image will appear on the back, and you can zoom in and chimp away.

So take a few pictures. Try to get as close as your lens will let you. Try an image with the plate just barely fitting. Try pulling back a bit and getting a bit of a place setting in the image with a few props. You might even try that fill light if you had it out and the kids aren’t already supposed to be in bed, won’t pick their story books, still screaming for a bedtime snack even though they just had ice cream 15 min ago.

Creating LVM Virtual Drives


Now that we have a raid array created, we are going to create some virtual drives. Why virtual drives? Well, we have one large terabyte drive right now, and if we just put folders in there, it can quickly get cumbersome. You have no control on size of those folders, and permissions can be more difficult. And if you try to share this drive, you can’t assign different drive letters in windows to different folders, just one to the drive. One other issue is file system. I am going to use just a basic file system here, but in the past I have created different file systems based on the type of use ie. large video files, small text files, etc. Making those decisions is beyond the scope of this tutorial, and I have decided that for my purposes now, it doesn’t matter that much. You can decided differently.

What we will discuss is using LVM. This enables you to set up virtual drives that can contain different file systems, and that can be grown and shrunk (usually) to fit the space needs of the system. We will look at maintenance of these file systems at a later tutorial. Here we will create a backup, and a pictures virtual drive. We will not use the full terabyte of space, so that we can grow these as needed, or add another for say music at another time.

I will once again be doing this on an ubuntu system, but the use of these tools is fairly standard across linux distributions.
Continue reading

Intro to Java Observer Pattern

We are well into this whole patterns thing now, picking up lots of new lingo, and becoming better at communicating with other developers. Next on the list: the observer pattern. This is an important pattern to use to help prevent tight coupling and keep code separated into discrete objects. This pattern allows communication between two objects at particular times without each object needing to be too tightly coupled to the other.

The Observer in the Physical World

The idea behind the observer is like a subscription. Do you have a newspaper or magazine subscription? Have you signed up for cell phone texts from your favorite band when they have new tour dates? The act of you signing up with the newspaper, the magazine, or the band, is you saying you want a subscription, or that you want to become an observer. When the subject (newspaper, magazine, band) has something new to share (on a schedule or not) they run down their subscriber list, and notify the observers by mail, or text.

The Observer in the Software World

On the software side, the idea is the same. Your subject needs to provide a way to take subscriptions, hold a list of observers, and when a particular state changes, notify them. There is usually a couple of methods on the subject that takes in an interface that is used for getting on or off the subscription list. On this interface is also the “call back” method. This is the method that the subject will execute when it wants to inform the observers of state changes.
Continue reading

Intro to Java Decorator Pattern

This entry is part 13 of 13 in the series Intro to Java

We have looked at the Factory, the Adapter, and the Singleton patterns. Now we look at the Decorator. The Decorator is similar to the Adapter, but with a subtle difference. With our ReptileAdapter, we wrapped the Reptile class to map the interface methods of Animal to the appropriate methods on Reptile. With the Decorator we also wrap a class, but to add functionality, not to map it or replace the functionality.

The Decorator in the Physical World

The idea behind decorating things in the real world is pretty much how it sounds. We wrap an object with new functionality, while keeping the old functionality. How about a camera in a waterproof housing? When closed up, we have added the functionality of waterproofing, but we still provide a way to press the buttons and turn the dials so that the camera can be operated.

The Decorator in the Software World

On the software side, the idea is the same. It is usually used when we have one object that we like how it functions, but we want to augment the behavior for a different situation. Done correctly, we can keep inserting one object inside another adding functionality at every step.
Continue reading

Intro to Java Singleton Pattern

This entry is part 12 of 13 in the series Intro to Java

The last pattern we looked at was the Adapter pattern. It was a good pattern to start with as it maps well to the physical world and is fairly simple. Now we will look at the Singleton pattern. In some respects it is the simplest of patterns, but there are some things to think about.

The Singleton in the Physical World

The idea behind the Singleton is to ensure that there can be only one (insert Highlander jokes here). If you had a factory that made widgets, you would want a widget to be created many many times. But there is only one factory. If you were modeling the US government, you would only want one president. Only one senate.

The Singleton in the Software World

On the software side, the idea is the same. It is usually used when we only want one set of configuration variables, one controller, one data base connection pool, that kind of thing.
Continue reading

Intro to Java Annotations

This entry is part 9 of 13 in the series Intro to Java

Annotations allow you to attach metadata to a field, class, or method. Metadata is data that describes something else. For example, metadata about a song in mp3 format could be the artists name or the bit rate it was encoded at. A jpeg image could have metadata that described the image height or the number of colors in the image.

What do they look like?

public String getName() {
	return "no name";

The word after the ‘@’ is the Annotation. It precedes a method or class name. The Override annotation is built into Java. It is used to indicate that a method overrides a parents method. These are used for compiler hinds, for documentation, and to apply meta data.
Continue reading

Setting up Linux Software Raid

This entry is part 3 of 3 in the series Building a NAS

Dual Drives for Raid 1This is part of our series on building a NAS. In this article we will get the box set up with a static IP address, and get your drives set up for RAID 1.

We are assuming that at this point you have Ubuntu installed. We are gong to install software raid in a moment. The first thing I want to do is make sure we have a static ip address. Usually Ubuntu will start up with a dynamic ip address. This can make it more difficult to transfer files to this box, so lets make it static.
Continue reading

Intro to Java Generics

This entry is part 8 of 13 in the series Intro to Java

To me it seems a better word would be Specifics. The use of Generics is applying a specific type to a class that can be used in a generic way. One of the most common generic classes is List. A list allows you to put any type of Object in to it. In fact, you can put several different types of Objects into a List. But, there is a way to create a specific List type that can only take one type of Object.

What do they look like?

Since we are talking about Lists, lets look at what a ArrayList would look like that could only take Strings.

List aList = new ArrayList();

What goes between the <> is the type that you want to specify for the List. You need to do it in the left side declaration, and on the right side where you are creating the Object.
Continue reading

Intro to Java Collections

This entry is part 7 of 13 in the series Intro to Java

I don’t want to get too deep into every little thing in the collections classes here. In fact, you already know a fair bit about them, because we have used them with some of our Animal class examples. This is more an overview of some of the basic Collections classes.

What do they look like?

There are three main types of collections: Lists, Maps, and Sets. Technically you could try to argue that Map doesn’t extend Collection, so therefore it is not a Collection, but I think of it as part of the group.
They are used for groups of objects, or exactly as its name would imply, collections of objects.


A List is just that, a list of objects. The List interface provides a way to add, remove and get objects from a list. It however is just an interface. ArrayList is one of the more popular concrete collections that implements the List interface. Each implementation of the List interface may behave slightly different, but once you understand how a List works, you have a good start on understanding any List.
Continue reading