10 January 2017
Once again, I’ve taken the time to review my photos from the past year to choose what I feel are my 10 best. I collected 205 candidates over a couple days and winnowed it down to 10 in about 30 minutes. (With that sort of momentum, I’m lucky I had any photos left to show!)
It’s been a year of photographing people. While toys, macros, and nature may have gone into the process, those images didn’t compete with the all the interesting people. My photographic lighting style also continue to show up in more images than not.
The model shoots and events were good this year. This is Masha Modelle at an event at Omni Lens Studio.
This image of Tara Doratt was shot upside down at the Lancaster Camera Club Model Shoot at Binns Park in Lancaster.
Sally invited me to participate in a shoot among friends who met at last year’s Promoting Passion Conference, so here I met Erica Jay, and she came up with these lovely poses and I came up with the lighting. The pond is at Frog Hollow Studios.
Here’s another with Erica Jay. She flopped herself down in that contorted position, and I just framed it up with the lines. My speedlights were taking a little break, so this is open, natural light.
This collaboration came about with Becca H and DJ Diesel while we were doing some promo shots. I always like to toss a strobe out in the front lawn to get those crazy beams through the blinds.
Tourist Inn in Hellam hosted a Braptizm party and I fortunately found some hoopers. With lots of shooting, I managed this tight little frame with so much motion. I find it interesting to find one of these frames that work so well in black and white. The star is a little bonus.
Aaron Brown provided me this other black and white shot spinning LED poi at a Merr Bass at The Depot in York, PA.
DJ Kiltboy takes the helm at Shadowland Lancaster. As is often the case, my little pop of flash freezes Eric Carter in a swirling sea of lights provided by DJ Diesel at Lizard Lounge, Lancaster, PA.
Cheers is a whirlwind of a party thrown monthly at JB Lovedraft by the Skullfunkaz in Harrisburg. There’s little room to get out of the fray, which is OK, since I seldom stray far from the dance floor, especially when they’re spinning Drum n Bass all night.
Marie had a great Halloween costume, and it deserved to be captured in one of my favorite images of the year.
31 December 2016
When I bought my first Sony a6000 body in September 2014, I needed an adapter to get started and to mount my Nikon AI-S and G lenses on the new camera body, since I had no intention to buy new lenses. I knew to use one of these manual adapters I’d need to turn the lens open, focus, and then stop back down to shoot.
The adapter was an important part of kit that was going to make the whole switch possible, so I had settled on spending the extra money and getting the Metabones Adapter.
Cost: about $140 at the time.
Physically sets the aperture on my Nikon G lenses.
Long-throwing aperture ring for fine control, about 50 degrees from wide-open to fully stopped down.
Marked for 8 stops (F to 7).
Moves smoothly with no clicking at individual stops. This is apparently a feature for shooting video.
Convenient tripod mount which is nice for balance and larger tripod plates.
Made completely of metal.
Solid connection to camera and lens.
Only required a little screw-tightening on the Nikon side in 2 years of service.
The Metabones adapter has served me well over the past couple of years, but when talking to people about my switch, I got curious how this adapter compared to less expensive adapters.
In July 2016, I purchased the K&F Concepts Adapter to compare to the Metabones that I definitely liked. I used it for a couple months almost exclusively and found it to feel solid and to work fine with only a bit of adjustment in my expectations of the distance to turn the ring.
Cost: about $20.
Physically sets the aperture on my Nikon G lenses.
Aperture ring throws a very short distance, about 20 degrees from wide-open to fully stopped down.
No marks for the stops.
Clicking at each stop, so it’s basically impossible to set part stops. (This is OK, though, since I like to think in full stops anyway.)
No tripod mount, but my larger lenses have their own tripod collars. (For a short lens, sometimes I like to switch back to the Metabones for its tripod mount.)
Made completely of metal.
Solid connection to camera and lens.
No service or modifications needed yet.
In the end, The K&F adapter surprised me with its build quality, and it feels good to use in the hand. I was surprised to find the short throw wasn’t an issue for my shooting, but I do miss the tripod mount on occasion. It’s always good to have some backup gear, and switching between these 2 was easy.
For the money, I’d have no trouble recommending the K&F or something similar to purchase first, and upgrade to the Metabones only if you find that you need the extra features.
27 November 2016
I picked up a very-slightly-used 34-inch LG 34UM67 display to use on my Debian Linux workstation that I use for processing photos. It’s an IPS display with 2560x1080 pixels, so that should fit nicely with photo work.
The built-in graphics on my Dell T20 only supports VGA, so I also needed to buy a new video card to support HDMI. My needs are modest, so I picked out an Asus ATI Radeon HD6450. I’ve always gone for ATI/AMD and Intel when I could, since their fully open-source versions of drivers have worked well in the past. I’m also not a gamer, so I can skip over Nvidia.
Upon plugging it all together, I needed to ensure I had all the "amdgpu" packages installed from Debian Unstable, so I could get higher resolutions beyond VGA.
It still didn’t recognize the crazy-wide 21:9 aspect ratio out of the box, so I still had some work to do. By default, the display awkwardly stretched the card’s 1920x1080 across the whole screen. That can be fixed in the display: Menu → Quick Settings → Ratio → 1:1, and then you’ll have letter boxes on the sides, but no stretching.
That left me still needing to convince my Xorg xserver to use the rest of the screen, all 2560x1080 pixels. I found a stackexchange article which provided me just about everything I needed.
Generate a modeline for the new resolution: 
cvt 2560 1080 30
Create that new modeline dynamically. In my case mine, looked like this:
xrandr --newmode "2560x1080_30.00" 106.75 2560 2640 2896 3232 1080 1083 1093 1102 -hsync +vsync
Add the mode to the HDMI interface.
In my case it was named
xrandr --addmode HDMI-0 2560x1080_30.00
Then switch to it:
xrandr --output HDMI-0 --mode 2560x1080_30.00
Once I had proven these settings to work nicely,
I obviously wanted to keep them,
so I persisted them by creating a file for them
in the xorg config directory along-side the existing configs
that Debian provides.
I called my file
Section "Monitor" Identifier "HDMI-0" Modeline "2560x1080_30.00" 106.75 2560 2640 2896 3232 1080 1083 1093 1102 -hsync +vsync Option "PreferredMode" "2560x1080_30.00" EndSection
everything was working,
and I was happy for a week or 2,
but I noticed performance wasn’t great during fast 2D updates.
I was seeing some tearing
when I’d play a video in full-screen
or even a large window.
I dug around a little in the
amdgpu(4) man page
and found a couple more options to add to my
Section "Device" Identifier "AMDgpu" Option "TearFree" "on" Option "ShadowPrimary" "on" EndSection
Those final adjustments solved the performance problem for me. I expect those adjustments may only be specific to the cheap card I bought, though.
Next I’ll need to figure out how to speed up my mouse, since it’s such a long way from one side of the screen to the other. I’ll also further rethink the windows I keep beside one another.
I bought the display figuring Linux can be made to do anything, and I was right. I just needed to figure out how.
03 November 2016
JBake 2.5.0 got support for the MarkupTemplateEngine, so I wanted to give it a try, since structured code will be nicer than extreme scriptlet stuff that was happening in the original Groovy template example. The stock MTE example shows off MTE templates, but it also switched to Foundation in place of Bootstrap.
I’ve been looking forward to really learning Bootstrap for work and my personal projects, so I’m not looking to switch frameworks right now, so I rebuilt my own example project with MTE and Bootstrap based on the original Groovy/Bootstrap sample I had previously used.
Hopefully, I’ll get a little feedback and the JBake people will incorporate my contribution.
18 October 2016
The First Transistor Radio hit the market on this day (18 October) in 1954. (Read that in the voice of Garrison Keillor.)
Learning this today reminded me of one of my first pieces of electronics as a kid. It was a little blue, portable transistor AM radio that took 2 AA batteries. I got it as a prize from the school fundraiser, and I specifically remember it being listed as a transistor radio, like that was something special. I’m not sure how special that really was in around 1985, since we’d evidently had the technology readily available since 1954.
That radio was packed full of components on a board in its blue plastic shell. From the first time I had to open it to put batteries in it, I was intrigued by it — solder joints, variable capacitor, capacitors, resistors, transistors, antenna coil with ferrous core, bits of glue holding it together, etc. That thing came apart many times as I compared its contents to other devices and to those on my electronics kit later.
28 June 2016
Ben’s birthday is approaching, so I picked up the inexpensive Amazon Fire Tablet from 2015. It’s running FireOS 5.1.x.
He played with it running stock for a week or so, using it to mostly read library books, and of course, to play some games from the Amazon Appstore.
Reading was the main purpose to have the tablet, but I also wanted it for communication and organization. That means getting the Google Apps installed on it. The only things available in the Amazon Appstore were these shell apps that were nothing more than a wrapper aronud a web pane, so I needed to proceed to install the Google Play framework and app store.
It came with the APK files and directions to run a Windows BAT file, which obviously isn’t going to happen on any machine I have, so I cracked open the BAT, and followed the script running the important bits by hand:
Login to the tablet as the original login — Ben’s secondary login didn’t work.
Enable Developer Options — Settings → Device Options → tap serial number serveral times, and the Developer Options will appear.
Enable USB Debugging — Settings → Device Options → Developer Options → Enable ADB to Enabled
Enable Side Loading — Settings → Device Options → Developer Options → Enable Untrusted Sources
I was on a Mac, so the USB drivers were already good, and I had Android Developer Tools already installed.
Unpack the all-in-one ZIP.
Run the commands at the shell:
# see that tablet device is listed adb devices adb install com.google.android.gms-6.6.03_\(1681564-036\)-6603036-minAPI9.apk adb install GoogleLoginService.apk adb install GoogleServicesFramework.apk adb shell pm grant com.google.android.gms android.permission.INTERACT_ACROSS_USERS adb install com.android.vending-5.9.12-80391200-minAPI9.apk # disable ads on cheap tablet, though I already paid to have it disabled. adb shell pm hide com.amazon.kindle.kso
After those couple commands, I found I had the Play Store icon, and fired it up, did the Play Services upgrade, and started installing the Gmail, Calendar, Hangouts, and Keep. I did find Inbox would crash after setup, but Gmail was fine.
24 February 2016
I’ve heard lots of talk recently about information overload. I even tried to do that whole Infomagical Challenge, and I couldn’t really convince myself it was necessary. I just don’t seem to have that addiction trait.
Our social feeds are in reverse chronological order — dip in, see the latest, scroll a little to see something older, and then move on. Sure I’ll hit reload a couple times when I’m bored to see something new, (but I could totally stop whenever I want). I don’t feel like I need to necessarily click the bait or read everything.
When I want to keep up with a little news outside of the social networks, Feedly is showing me headlines from newest to oldest. I’m sure I miss some news, since I only scroll through maybe 100 stories at a time, but anything worth knowing will be mentioned a couple times over the days and weeks. I just never see some blips in news, and that’s OK — it probably wasn’t worth the time anyway.
I have BeyondPod configured to do the same thing for my audio listening. Sometimes I have 50 podcasts queued up, and sometimes I run it down to 0. I have 3 priorities into which I categorize each feed, so I can always hear my favorites first, but within each of those priorities, the episodes are still presented in LIFO order, so I don’t fall behind. When I listen my way down to something that’s just out-of-date and low in priority, I can just delete it.
The reverse-chronological (or LIFO, last-in-first-out) order works great for my photo workflow too. When I was working chronologically, every photo ended up late — up to a month or 2 at times. Working from the newest stuff back fixed that. The latest party or event could often get posted, while some lower-priority sets of photos could wait a little. When I got super-busy, some photos could end up a month or 2 delayed, but not all of them.
LIFO even saves me time when I’m culling photos, which is the first thing I do after importing photos. We often work a scene and shoot until we’re convinced that we have the shot we want, so I start looking for the keepers from the end of the set and browse my way back to the beginning of the set. When I know I have the keeper, I can more confidently skip all the previous images that led me to the keeper. There was no point in studying those earlier half-baked images when I’ll keep finding better versions as I work forward.
Once I’ve picked that 10% I’m keeping, I delete everything else, because I still have the end in mind — reasonably backing up all my images. Some probably find that idea backward too.
12 February 2016
The kids got a little M3D Micro for Christmas, and so started our adventures into 3D printing.
I intended to let the kids learn the whole thing from scratch, but I knew I was throwing them a little bit of a curve ball by only having Linux netbooks to drive it, so I ended up getting a headstart setting up OctoPrint and the M3D-Fio driver.
At the end of December 2015 when I was starting, the M3D-Fio driver had some configurations in the repository that might not have been optimal, so I was fighting a bit with a few problems:
adhesion to the bed
gaps and lines in the bottom layers
other quality issues
I thrashed around for quite some time changing settings I didn’t really understand, and Matthew spent a night helping me and showing me what his much larger printer could do — that helped immensely, since it gave me some hints as to what I should be expecting from my printer. I also learned what the different settings should be doing for me.
For an entire Sunday, about 18 hours, I printed 1cm test cubes and experimented with settings. I quickly decided I should have my settings and profiles tracked in my own local git repository, so I can always rollback to previous settings.
After a week or so, some updates from the M3D-Fio repository brought us more success with more default settings that matched the defaults found in the original software from Micro. The conservative settings also added rafts and slowed down the print a bit.
I was able to take those conservative settings and speed them up a bit and remove the rafts — the BuildTak holds a print pretty well even without the raft. I based my customizations on the stock profile that prints at 0.25mm layer thickness to get even more speed out of the printer.
I also found keeping a -0.4mm bed offset on my printer helped get just enough squish in the first layer to help get a more solid bottom layre and good adhesion to the bed.
Another notable configuration tip I had picked up was to set the wall thickness to a multiple of the nozzle size. In the case of the M3D, the nozzle thickness is 0.35mm, so I’m using a thickness of 0.70mm. Before I had learned that, a couple of my initial chachkies came out with thin gaps where the slicer should have decided to fill.
I’m at the point now that I have pretty reasonable expectations for what the printer can do, and I can start up the machine after a week or 2 of sitting, and run a print through reliably without needing to make adjustments. That’s great for letting the kids just make whatever they want. Both kids have been able to get into Tinkercad and produce some printable designs. Ben’s doing Nerf rail accessories, and Marie is designing a new cap for my growler.
Finally, I’ve pushed my configurations to a public git repository to serve as reference for anyone else who cares.
An update added a slicker settings dialog to allow more intuitive adjustments to a profile, so I’ve been testing relatively successfully with using the stock PLA profile and just flipping options. I did find that using a raft in "medium quality" mode fused my little 10mm test cube to the raft in a way that I can’t remove it. I usually avoid the raft anyway, though, since it sticks so well to the buildtak already.
18 January 2016
For comparison, I went back to pick my best images from 2014 over the past couple days. This was slightly harder than the exercise for 2015 for some reason.
16 January 2016
I’ve taken a few hard moments and collected my favorite 10 images from all of 2015. My first pass yielded 101 images, and I pared it down from there over a couple hours.
Ten is a hard number when looking at a year of images. It leaves me with the feeling that I left out some aspects of my photography, but that’s part of the exercise — Which aspects are excelling? I exposed a sensor over 50k times, shared over 1800 shots on Facebook, and showed nearly 250 on Flickr. 
The Orb, the legendary ambient musicians, put on an amazing show near Philadelphia this year. I had my one speedlight as usual, and I happened to have tucked it into a stack of chairs behind a curtain on stage right. Right before The Orb took the stage, a publicist or someone came and asked that I limit my photographs to the first couple songs. I thought, "No problem." I knew I already had a light perfectly placed and ready to go, since I had freely shot the opening act.
I was out to Tellus to see friends and they had a guest DJ, so I had some fun shooting as always. I like how excited and surprised people are to see images after an event like this. I spiced up the image a little by providing the crowd view on the projector screen to fill some space in the image. They really should project the crowd up there.
My friends at Shadowland keep the dance floor intense, and they always seem to appreciate seeing photos from the nights.
This year, I got brave and ventured out again to longer nights, like Big Dub out in the woods and God’s Basement Reunion outside Philadelphia. It was the first party in a newly reclaimed warehouse now called The Arts Garage: Waterfront.
The Neon Kaleidoscope (previously Pure) crew celebrated 5 years in 2015. I had just seen an exhibition of Richard Avadon’s "Family Affair" series, so I knew I wanted to do a similar stitching to make a wide image to capture everyone at one of Neon Kaleidoscope’s biggest nights.
Jay and I have been splashing light around the Lizard Lounge for quite some time now.
I’ve started working to photograph the gear and other environmental stuff from raves. I love the gesture in this image.
I shot many of my favorite images at Lizard Lounge this year. This image resulted from a quick collaboration with Nell Doll on a Neon Kaleidoscope night. This is when I started really carrying more gear into clubs.
I had the great opportunity to shoot with Marsha Denill in the same house with Brooke Shaden! The inspiration was strong this day, since I knew others would be making amazing images.
I love photographing toys, and my bright green Ford Fiesta is my favorite car I’ve had, so it only makes sense for me to have a tiny replica of the car. I had wanted to shoot this image for a couple years.
05 January 2016
I’ve moved the blog to a static site generated by JBake. The source for the content lives in my techblog project in Github, so I have a full versioning of my content for the small price of a git workflow.
I installed JBake using the familiar SDKMan that I already use to manage my Grails and Groovy installations. I initialized it with the Groovy templating engine and have started customizing the templates.
To make sure this thing is easy to update, I keep a local clone of the repo, so I can update it any time and push whenever I’m ready. I have a shell script scheduled to run on the server which basically does:
cd techblog git fetch git merge | grep "Already" > /dev/null || jbake
That little bit of code
git pull doesn’t say "Already up-to-date".
That provided me a simple little "continuous integration" hook
that polls git for changes to trigger the build.
I’ll probably use this trick in other places.
I brought all my old content from my old database into the new platform using a quick little Groovy script to dump out an HTML file for each article including the header of metadata for JBake’s use. While most of these old articles will remain HTML, I intend to use AsciiDoctor format for all the new stuff.
I’ve been collecting a long list of (mostly technical) articles to write, but replacing the old platform kept trumping my attempts to write. Hopefully, this move can open the flood gates, and eventually, I’ll break out another instance of it for the photography blog. JBake should make it easy and interesting to continue the blogs.
26 January 2015
I've written about trying new desktops previously, and how much trouble I've had. I did settle into Gnome 3 nicely for a while, but my computers continued to get older and slower.
Even when I upgraded my main desktop machine, I had initially only put 4G of RAM in it, and that was barely enough to be a full-time photo workstation, so I still needed to slim down my environment, so I installed XFCE on my netbooks, VMs, and desktop/server machine.
The XFCE environment is much more familiar with plain window decorations, panels and widgets I can add and remove as I care, and a fixed number of multiple desktops which I can create and just keep available. The ability to piece together the little components is what was really missing from Gnome 3. I also like to be able to customize where my panels and widgets live. I find it more efficient to use a little space on the left and right of a wide screen for my panels instead of having them stuck to the top or bottom of the screen.
A convenient searching menu and launcher bound to a key combination is the last component I've really come to need these days. I've had it on OS X, Gnome 3, Unity, and even in Windows 7. Whisker Menu is an alternate menu widget for the XFCE panel that fills that need. Add a key binding (Alt-Space for me) to fire the show-menu command, and I'm in business!
I added lots more RAM to my main desktop machine, but I'm still going to stick with XFCE, since it feels more native to the UNIX way — stringing together a couple small programs to get a bigger job done well.
12 August 2013
Bachelor Week 2013 (where Claire and kids ran off to the beach and left me behind) started out with photographing at the Menges Mills Tractor Show for the third year, and the week ended with a quick road trip after work to join the family for a day on the beach.
In between, I got to a party with some photographer friends, sat in front of the computer for many, many hours catching up on photo processing for the Project 365 (whew!) and beyond. I also managed to have some friends over for an Xbox night to play a little good old Halo 2 and Sonic All-Stars Racing Transformed.
While continuing to go to work, I listened to podcasts like crazy (at 1.5x speed!) to get caught up on all the news in technology and photography.
It was a much-needed reset, and I was glad to rejoin the family at the end of the week (and start adding to my photo backlog again)!
13 March 2013
It's workshop season again, so come out and visit for the Free Toy Photography Workshop on First Friday, 5 April 2013. Bring your camera, lights, and toys (of course), and play along. It'll be a chance to play around and expand your lighting skills, composition, and story-telling. Stop by and visit — we'll be shooting all night starting at 6pm.
A couple weeks later, we'll be doing 2 more half-day workshops on speedlights and event photography. Registration is open now for those and spots are very limited, so check out the details on the workshop page.
329 N Queen St
13 December 2012
I realized upon trying to replace a drive in my Linux software RAID, that I had never previously documented this process.
The power failed a couple days ago, and sitting around for 10 hours not spinning was bad for my one Western Digital 500GB drive, so it never came back online, but the computer booted up just fine with 2 of the 3 drives. I ordered a new 1GB drive to replace it within 2 hours of the problem.
When the new drive arrived, I shutdown the computer, unplugged the failing SATA drive, and replaced it with the new one. Linux again booted up with only 2 drives active.
To ensure that the partitions matched, I did an
sfdisk -d /dev/sda | sfdisk /dev/sdb.
cfdisk was unhappy with the drive initially, but
fdisk was happy to read the table and write it back cleanly. Then I could open it again in
cfdisk and add one more primary partition to use the extra non-redundant 500G on the new drive.
With the partitions in place, it was time to insert the new
partitions back into the RAID devices:
mdadm /dev/md0 --add /dev/sdb1,
mdadm /dev/md2 --add /dev/sdb5, etc, until all the drives were re-established. Watching
/proc/mdstat, I could see that the RAID started recovering the devices, and I could go to bed.
I did manage to do something wrong at one point, so a quick
mdadm /dev/md0 --fail /dev/sdb1
mdadm /dev/md0 --remove /dev/sdb1 allowed me to fail and remove a partition, fix it up, then add it back when I was done. All this could be done with the system up and running—that's pretty convenient.
16 November 2012
I've had my Nexus S for about a year and a half now, and I was stuck on an old stock Android for a long time—the AT&T version of this phone just never got the updates, so Matt helped me out and got me started with CM9 on the device back in the Spring.
Since getting some experience rooting and romming, I've tracked CM9, tried CM10, loaded stock Android 4.0 and 4.1. I found my device with stock 4.1 with my usual loaded apps (like BeyondPod, Tasker, etc) to be a little light on RAM. BeyondPod kept getting pushed out of memory when, really, it's my #1 app for daily use.
I needed to free up some memory, so I figured SlimBean would be worth a look. It seems to be based on AOSP with some of the most useful features of other ROMs merged, like notification toggles, etc. It's also relatively easy to install, though the upgrades keep recommending a full wipe and reinstall, which can be inconvenient, even with a ROM Toolbox doing my backup and restore of applications.
One of the most notable features is that the default DPI is set low (182ppi), so everything ends up tiny. Couple that with a tighter grid-size in Hololauncher and you can cram lots of app icons and widgets on the screen. I at one point bumped it back up to 200 to get it just a little more readable, but in the latest install, I've just been leaving it set to the default.
Amazon Appstore offered me my first problem. ROM Toolbox half restored it, but not the whole way, so it had some data files laying around but not the rest of the app. When I went to install it again from APK, it kept telling me "App is not installed". I finally figured out in this last time I wiped and installed, that I needed to delete the Appstore's data directory in Root Browser, and then it happily installed.
In the end, I'm not sure I gained much free memory—it still seems tight, and applications are still quick to get pushed out. I think what's slim about the ROM, is that it merged in some select features from CM and others without taking up as much space for everything those other ROMs offer. I like this ROM, and I hope to see it make Android 4.2.x and later available on my little Nexus S.
13 November 2012
I'm currently in the middle of reading Roberto Valenzuela's Picture Perfect Practice, and I'm really enjoying it. The book offers lots of simple exercises for photographers, and I'd like to get out and try more of them than I have, so I invite everyone to join me and practice a bit as well.
Saturday, 17 November 2012, 12-4pm, I'd like to lead a photowalk in Lancaster, PA, starting at Binn's Park. I'll bring some select exercises, explain them quickly, and then we'll hit the street in search of light, geometry, and other concepts in photography.
If you want to read ahead, I bought it in an open ebook format straight from Peachpit.
27 July 2012
Following the Lancaster Lens show and my first lighting workshop in 2012, I'd like to invite photographers to bring their toys, cameras, and imaginations out to Smith LaVia Studio on First Friday, 3 August, for a free workshop.
It'll be a chance to play around and expand your lighting skills, composition, and story-telling. Stop by and visit -- we'll be shooting all night starting at 6pm.
329 N Queen St
01 June 2012
Right as we arrived for the softball game, the dark clouds started rolling in to the North. It looked like it might pass us by, so the coaches decided to wait it out a bit.
We took shelter in the nearby pavilion, but after about 20 minutes of still waiting and the storm having not even started dumping rain and hail on us, we ended up having to call it an postpone for another day.
24 January 2012
It's an incredible opportunity for me, and I still can't quite believe I have working showing in a museum, so stop by and support photography and the arts in Lancaster, PA.
Older posts are available in the archive.