MENU 

More Nerdiness

February 8, 2019  |    1 comment  |  Apps

As you may or may not know, in addition to taking fine photos, I enjoy designing and building software. For the last several years, I’ve been working in the cloud, mainly on the Force.Com platform, but before that, I was a Windows developer. Occasionally, I like to build a little software project on my own just to make sure I can still develop desktop applications or to build little tools to make my life easier. I did this much more often when I was a strictly-Windows guy, but since moving to an iMac as my desktop machine for day-to-day use and post-processing, I don’t get to do it as often as I’d like as I haven’t the time to learn Objective-C or Swift. Luckily, to sate my need for Windows-related development, I have a Windows 10 Virtual Machine on my iMac running under Parallels as well as a Dell XPS laptop.

For my latest “me project”, I thought it would be cool if I could have my Windows desktop wallpaper periodically change to one of the photos on 75CentralPhotography.com. To accomplish this, I knew I’d need a couple of pieces of software running in different places:

  1. A webservice or some other means of fetching a random photo from the site
  2. A local application running on Windows that would periodically make a call to the aforementioned webservice and get the random photo

So, for the first part, I build a RESTful API on 75CentralPhotography.Com that looks for photos on the site that I’ve specified as wallpaper candidates and returns one at random. Since our site runs on WordPress, a lot of the functionality was already in place. The process works like this:

  1. A new post custom metadata field called 75Wallpaper was created that can be set to TRUE if that photo should be used as wallpaper.
  2. A new webservice was written in PHP that uses WordPress’ WP_Query method to return a random photo with the above criteria
    $args = array( 'meta_key' => '75wallpaper', 'meta_value'=>'TRUE', 'posts_per_page' => '1', 'orderby' => 'rand' ); $your_query = new WP_Query( $args ); if($your_query->have_posts()){ while ($your_query->have_posts()) : $your_query->the_post(); $imageurl= catch_that_image(); $permlink = get_post_permalink(); endwhile; } 

    We use a handy function I found on the web some time back called “catch_that_image” that grabs the URL of the first image on a post, which ensures we get the link to the image. We also go ahead and grab the permalink to the image.

  3. We then serialize these results into some JSON so that making a call to this service results in a response that looks like this:
    {"randomImage":"http://www.75centralphotography.com/wp-content/uploads/2018/05/tandy-hills-nature-area-sunrise-grass-fort-worth.jpg","permalink":"http://www.75centralphotography.com/?post_type=post&p=36891"} 

Now to build the Windows portion. For this, I chose to build a .Net application in VB.Net, however, I could’ve just as easily used C#.

To start, I created a simple UI with a couple of buttons and a picture box. One button would let the user interactively set a new background by calling the above webservice’s randomImage element and the second would use the permalink element to open the current wallpaper’s page on 75CentralPhotography.com in the default browser. The picturebox would display the current wallpaper and was really just there for testing purposes (i.e. I needed to ensure I was retreiving the image properly before I wrote the code to set as the wallpaper).

I then started writing some code to do the magic.

  1. First, I needed to build a function to call the webservice and retrieve and store the results, including downloading the image to the Windows AppData folder:
Public Function ProcessWallpaper() As Boolean
        Dim wOPs As New WebOps
        Dim AppDataPath As String
        Dim u As New utilities
        Dim doesAppDataPathExists As Boolean
        Dim rP As Bitmap
        Dim setSuccess As Boolean
        Dim randomfilename As String = u.createRandomFilename()
        rP = tempPB(GetRandomImageURL()) ' fill form picturebox for testing
        AppDataPath = u.getAppDataPath()
        doesAppDataPathExists = u.checkfolderexists(AppDataPath)
        If doesAppDataPathExists Then
            rP.Save(AppDataPath & "\75Central\" & randomfilename, Imaging.ImageFormat.Jpeg)
        End If
        setSuccess = u.setWallPaper(AppDataPath & "\75Central\" & randomfilename)
        wait(5)
        ClearAppData(AppDataPath)
        Return True
    End Function

This code is called in three places:

  1. When the application loads, immediately setting a new wallpaper
  2. When the “Set New Wallpaper Now” button is clicked
  3. Every ten minutes after the application starts running, ensuring that a new wallpaper is set on a regular schedule

2. Secondly, I needed some code to actually set the wallpaper. Luckily, .Net already has a function to do this, so I just needed to call it and pass the path of the image downloaded:

Public Function setWallPaper(imagefile As String) As Boolean
        SystemParametersInfo(SETDESKWALLPAPER, 0, imagefile, UPDATEINIFILE)
        Return True
    End Function

3. Finally, I needed to cleanup the download. Once a Windows 10 wallpaper is set, it’s stored internally in the operating system and no longer needs to persist as a separate file, so there’s no reason to have a high-res version of my photo hanging around on my PC, taking up space:

Private Sub ClearAppData(apppath As String)
        Dim directoryName As String = apppath & "\75Central\"
        For Each deleteFile In Directory.GetFiles(directoryName, "*.jpg", SearchOption.TopDirectoryOnly)
            File.Delete(deleteFile)
        Next
    End Sub

All of this code is tied together to work, and upon launch, the app nicely minimizes into the system tray out of the way until the icon is double clicked to show the UI

So, there you have it, my latest nerdy project. If there’s sufficient interest, I might release this as a free download so that you can have automated new fun wallpapers. If you’re interested, shoot me an email at matt@75central.com!

My Most-Interesting Photos of 2018*

December 31, 2018  |    0 comments  |  Site-related
*Once again, according to Flickr’s dubious and mysterious “Interestingness” algorithm.

As I’ve done in past years, I thought I’d share the 10 most-interesting photos from 2018 that I published on 75CentralPhotography.Com. To figure out what are the 10 candidates, we rely on Flickr’s “Interestingness” algorithm, which doesn’t actually seem to work very well, as I feel like I’ve published a lot of other photos that are more interesting than those chosen by Flickr. Oh well…here you go:

1.

On the Engine’s Edge

40982336240_3833756a9b_o

2.

Under the Stripes

25071947087_74d05618f2_o

3.

Celine

40090861275_e18b492ac1_o

4.

BALLYS

38488365990_17020d416c_o

5.

Big Boulders

40761537792_3c13476558_o

6.

Last Sun on the Power Lines

40921989060_7350bb093b_o

7.

Big Tree

27882386457_a28afc5389_o

8.

Stairs and Rails

Maker:0x4c,Date:2017-10-20,Ver:4,Lens:Kan03,Act:Lar01,E-Y

9.

LOVE

41228805141_1008494011_o

10.

Glowing Orbs

40201542871_c32d65a0ac_o

Passive Income from Piracy

December 15, 2018  |    0 comments  |  Legal Rights

If you’re like me and share your photos online in any capacity, you’ve probably had at least a few stolen by unscrupulous people for use on their websites or for other promotional reasons. Usually, you’d deal with this by finding the violator and either sending an invoice or filing a DMCA takedown. Unfortunately, in my experience, invoices sent generally mean invoices ignored. Of course, you could always hire a lawyer to go after copyright thieves, but that usually takes upfront capital, which can mean a fair amount of money out-of-pocket with no guarantee of a reward. And running down copyright violators on your own can take a lot of energy and time.

Time and energy that I don’t have. Nor do a lot of people.

So, what do I do about copyright thieves?

I recently discovered Pixsy.Com, a service that searches the web for violations, lets you choose the ones worth pursuing via their service, and goes after these for resolution.

It’s pretty easy to use and doesn’t take a lot of time or effort. Once you’ve signed up, you can sync your Flickr, SmugMug, Instagram or other social accounts or upload a batch of photos.

They then periodically scan the web for uses of these photos and present potential matches in an easy-to-use interface for you to browse.

Pixsy___Matches.png

From here, you can reject false-positives, confirm if the use of a photo is okay or submit a case.

When you submit a case, you provide some background information on the image, such as when and where it was taken as well as when you first published it on the web, and Pixsy goes to work. They evaluate your submission for feasibility of pursuing based on whether or not they feel it will result in payment as well as if the amount of payment is worth the effort.

If the image is accepted into the resolution program, they contact the violator via email, presenting them with documentation of the violation as well as an invoice. If this is ignored, they eventually start calling the violator until they get resolution. If they don’t get a response from a thief, they will consult with their associated legal firms as to whether or not it’s worth filing suit.

If they get resolution, they keep 50% as their fee, which might seem high, but I think it worth it for me not to have to mess with.

And it’s been pretty worth it for me. In the few months I’ve been using their service, I’ve netted of $4000 in fees for only a few hours of my time. And while direct licensing of there photos would’ve made me more if the violators had actually bothered securing a license instead of offering their usual excuses (“my web guy did it” or “I found it on Google Image Search, so I thought it was free”), it’s more than I would’ve made had I tried to do this on my own (which would be $0 because I’m a) busy, b) lazy and c) don’t have a law firm with which to send scary letters on my behalf).

The one caveat I have, however, is that Pixsy only operates in certain countries. So they’ve been unable to hunt down Metallica’s thievery of one of my photos because the record label that actually published the CD with the violation is based in Greece, outside of their operating area. To resolve this, I am looking at other legal options.

 

Pixsy___Matches___amazon_co_uk__2_.png

So, if you’re a photographer who doesn’t have time or energy or money to pursue pirates on your own, I highly-recommend giving Pixsy a try.

Typeset in the Future

December 7, 2018  |    0 comments  |  Elsewhere

Beyond photography, I enjoy other pursuits. Such as design. And science fiction. So I was pleased a few years ago when I came across Dave Addey’s awesome site Typeset in the Future. It’s an exploration of the use of typefaces in iconic science fiction movies that’s completely-engrossing.

alien_0_04_13bladerunner_0_05_23_tyrell_corpbladerunner_0_09_52_alien_purgemoon_sarang

So I’m somewhat pleased to know he’s releasing a book! It’s on my Christmas wishlist, assuming I don’t go ahead and buy it myself.

 

Bonus: If you’re a fan of the film Moon, check out production designer Gavin Rothery’s BTS post on his site: They Never Went to the Moon

Migrating Mirrorless

December 7, 2018  |    0 comments  |  Cameras Other Stuff

As you may recall, a few years back, I moved from Canon to Panasonic’s Lumix line of Micro Four-Thirds cameras. I made this decision for two reasons: 1) I’d just trekked around the Alaskan Panhandle carrying a EOS body and a 100-400mm lens for a week and the size and weight just about killed me and 2) Canon seemed to not be innovating (similar to Apple and its Mac platform) but both Panasonic and its partner in the m43 system, Olympus, were coming out with all sorts of cool features.

So, I started looking at smaller systems. Fujifilm’s X Series was intriguing, especially since they offered an ASP-C-sized sensor, but the buy-in to the platform was expensive and I’d had a not-excellent experience with my x100 (though, to be fair, that was the first model of the X Series and it’s improved a helluva lot since then). So, my options limited, I bought a Panasonic Lumix G6.

And I loved it.

Small, lightweight, lots of good, fairly-inexpensive glass. I could carry a body and three lenses in the roughly the same amount of space that my EOS and a 24-105L would take up in my backpack, Color was excellent, it was responsive enough for the type of photos I take and, because of the aforementioned size, I could take it anywhere. Especially once I bought a second body, the tiny GM-1.

Eventually, I invested in more lenses and another body, the GX8. I was completely into the m43 ecosystem and these cameras went everywhere with me. Las Vegas, San Francisco, the Mojave Desert, Utah, Idaho, all over Texas, Mexico, the Caribbean…pretty much anywhere I went over the last five years, at least one of my Lumix cameras came with me.

But then something interesting happened.

I started to get a lot of customers licensing photos for giant installations. And not your typical billboard-type installations where resolution doesn’t really matter, but installations in offices and retail spaces that needed fine details. So, to support this business line going forward, I needed something with higher resolution. Hasselblad or other medium format solutions were out of the question as they were out of budget. Luckily, Sony had a solution: the A7rii boasted 41 megapixels and was full-frame to boot.

So I bought one. And a couple of lenses.

And I’m loving it so far. While bigger than my m43 bodies and lenses, it’s still smaller than the legacy dSLR systems from Canon or Nikon. The image quality is excellent…great dynamic range and color (if occasionally over-saturated, though nothing that Lightroom can’t fix), splendid details because of the resolution and a great community of fellow photographers that have really helped me understand and appreciate how far the platform can be pushed.

Even though I’ve had the a7rii for roughly six months now, I’m still slowly entering the system. My gear wishlist on Amazon has grown pretty long. I haven’t given up on m43 yet…still a great system to carry around, but for the most part, new photos I create going forward will by Sony Full Frame. Can’t wait to see what I create.

 

Back to Blogging

December 7, 2018  |    0 comments  |  Site-related

As you might have noticed, I hadn’t blogged in a while. In fact, for a long time, there wasn’t a link to the blog up there on the menu bar. A couple of reasons for this, though no excuse is really good enough for not sharing anything but photos.

  1. Because of performance issues with my previous host, 1and1.com, we ended up moving 75centralphotography.com to a new host, Dreamhost. Because our bread-and-butter is photography and not writing, our focus was making a smooth transition for the main photoblog to the new host and, thus, deferring migration of this seldom-updated blog until a later date. However, that later date kept getting pushed back for months until now. Why? Laziness, really. No other excuse beyond that. Oh, and I started a new day job a while back that has been taking up a lot of my time. That and an unanticipated move from one Dallas suburb to another that destroyed any will to write a bit for a long time.
  2. We knew it would be time-consuming to migrate. Which follows on from point 1.
  3. The blog never got as much traffic as the main site. Of course it wouldn’t…we’re in the business of making photos, not making writings.
  4. Finally, I kind of just forgot about it. After all, the photoblog is our focus. We’ve shared fine photos daily for over 11 years straight now and we didn’t want to slow down.

At any rate, I’m going to start blogging and sharing interesting things again. It will still be somewhat-seldom, but at least I’m doing it. 

That said, the migration is mostly-complete. We’re still fixing some borked links and re-uploading some media that was lost in the transition, so please be patient. If you find anything weird, shoot me an email at matt@75central.com.

Thanks!

My 10 Most-Interesting Photos of 2017

December 26, 2017  |    0 comments  |  Uncategorized

It’s that time of year again where I take a look at how Flickr has ranked the photos I took this year and share the ten most-interesting according to their mysterious “Interestingness” algorithm.dds

Solitary at Sea

Solitary at Sea

In the Ship’s Atrium

In the Ship’s Atrium

The Ghost Ship

The Ghost Ship

Reflecting on the Skyscraper

Reflecting on the Skyscraper

The Barren Trees of Winter

The Barren Trees of Winter

Island Christ

Island Christ

Sailing Near the Rocky Shore

Sailing Near the Rocky Shore

Evening at the Boardwalk

Evening at the Boardwalk

Wendover Will

Wendover Will

Boats on the Beach

Boats on the Beach

As always, the misfortunate side-effect of ranking a year’s photos this way is that it’s entirely possible that I shot some photos this year that are better than these but have not yet posted them. I post a new photo every day on my photoblog at 75CentralPhotography.Com and invite and encourage you to check in periodically to see even more great photos. You can also view a Flickr album of my 250 Most-Interesting Photos of all time here. Stay tuned for an exciting 2018! And, of course, all of my photos are available to purchase on their respective photo pages at 75CentralPhotography.Com.

Ten Years of Fine Daily Photos

August 12, 2017  |    0 comments  |  Site-related

Ten years ago, I started the 75Central.Com photoblog as a creative outlet to show my photography to the world. A lot has happened since that first photo went up on the Web on August 12, 2007. I met and married my wonderful wife. I adopted a dog. I’ve worked my way through five cars. I’ve been all over Texas, through the deserts of Nevada and California, to parts of Canada I’d never visited in the past, sailed to Alaska and the Caribbean, switched to Mac, partly switched back to Windows, loved and took care of my wife while she faced a life-changing illness, moved a couple of times, advanced both my photography and non-photography careers, made new friends, lost old friends and so much more. Most importantly, I learned to love life and not take it for granted. If an opportunity presents itself, take it. As I begin the second decade of sharing my work with the world, I want to take a moment to thank everyone who’s been a fan or a friend or just took a moment to admire on of my photos. It’s not always easy finding the motivation to select and post a photo every day, but I do it because I hope that at least one person appreciates it.

To celebrate this milestone anniversary, I put together the below video montage of every daily photo from the photoblog from the last ten years. Enjoy!

© 1993-2019 Matt Harvey/75Central Photography - All Rights Reserved • Contact license@75central.com for image licensing and other queries.