Just fooling around with a GAN to generate some NFTs. I only had about 200 source images that I scraped from a few different projects. It’s pretty obvious that this output is a little overfit. When observing the outputs of the GAN over many generations, it’s really interesting to see it create images like this or even better, then deteriorate into noise. Hyperparameter optimization required.

Postcard from Another Dimension

My GPU took 45 minutes to generate these beautiful people from nothing. Well, not nothing. It was a Generative Adversarial Network. What’s that you ask? It’s an architecture for a neural network. This architecture was developed by NVidia, where they showed how, with just a bit more hardware, you can generate photo-realistic people that never existed.

Pretty neat. I’ll fool around with this a bit to see if I can optimize it, but I’m also looking forward to testing it on other media.

Huge shout out to Jeff Heaton for the YouTube tutorial! I’m looking forward to trying this out on other data sets.

Status Update – August 25, 2017

Brief Introduction:

I conceived this puzzle in October of 2016.  I build my first prototype with material from a cut up backpack, hot glue, and velcro. This prototype saw some successful play tests, among my friends.  It was around this time that I learned of the International Puzzle Party, or IPP.  Naturally, I thought it would be worth spending a bit more time on the design.  This is the inspiration of the Egyptian Glove.

I also wanted to explore the economic potential of this puzzle idea, which meant I didn’t just have to build one, but many.  I severely underestimated the challenges I would face at scale.

What’s the current problem (8/25/17)?

  1. Time.  I’ve underestimated the time commitment it would take to getting these puzzles manufactured.  I can hear you saying, “But you already made two, just make some more!”  Well, I can assure you I have more than one problem.
  2. Process.  There’s basically three parts to the process: (1) Carve the wood tetrahedron, (2) build the fabric, and (3) pack and ship.  The only part of the process that I have down pat is the cutting the tetrahedron.  My sewing machine doesn’t like the canvas.  I’ve had to teach myself how to sew, but my machine just doesn’t like to cooperate.  There’s a small chance these problems could stem from a skill gap with the tailor.  And, I don’t have a process to ship.

The solution?  

After a lot of wasted time on my part, I decided I needed to get help.  In fact, I needed to get help if I wanted to ship you a puzzle.  I needed a seamstress.  I knew just the place to look, Artisan’s Asylum.  So I wrote a letter:

Hello Artisans!

I’m a puzzle designer and recently submitted my first mechanical puzzle into the International Puzzle Party 2017 ( While I didn’t place, orders have started to roll in as a result.  You can find my shop page here:

My ask is for a designer to help produce the canvas pieces.  It currently takes me too long to produce these pieces at home and, with the right tools, it could take much less time (an overlock machine would be very helpful, for example).

Currently, I have 10 puzzles purchased with plans in place to fulfill more orders.  I’d like to make my first run in the 20-30 units range.  If you are interested, please reach out and I’m sure we can reach an agreement.


Ask and you shall receive!  Enter, Christie G, a seamstress jill-of-all-trades that seems to  approach all aspects of life with ambitious curiosity.  After a just few email exchanges and a one meetup, Christie is going to head up the fabric design, manufacturing, and shipping.  She’s injecting a lot of energy into this project at just the right moment!

I’m confident we will be shipping in September and a level of quality that raises the bar.

To all my customers, thank you!  This will be a fun journey.  And if you think so too, please tell me!  I’d love some constructive feedback in the comments or in my inbox.


A Few CloudTrail Best Practices

There are many tools out there to help monitor and alert on AWS accounts, both native and third-party. Across every tool I have tested, one alert is always critical and it’s so easy to fix that there is no excuse not to have it on — CloudTrail.

CloudTrail, in short, logs every API call in your AWS account. The importance of this should be self-evident to my readers, so bear with me. If something bad happens in your account, you want to know who did it and when. You want an audit trail! Without CloudTrail, you’ll be flying without a rear-view mirror. You won’t have any hindsight to be 20-20 about, and that’s a shame.

At what cost? Basically the cost of storing the data in S3 and CloudWatch — minimal. If you’re not sold and you’ve read this, I’ll have no sympathy.

Moving on.

Historically, CloudTrail was enabled per region. This means that when a new region comes online, you must remember to go and enable it in that region. If you don’t automate this, there is room for neglect. CloudTrail now has an ‘all-regions’ setting per trail. My recommendation is create a new trail that has all-regions enabled. If this is as far as you go, that’s okay, but we can take it a step further.

At this point, you’ll have an S3 bucket that is logging all API calls across all regions, and in the event a new region comes online, that region too. Additionally, you can pipe these logs through CloudWatch, which I recommend. Typically, most customers only use 1-3 regions, so if you have non-readonly activity in any of the other regions, you probably want to be alerted. I’m going to walk you through setting up alerts to answer the following question:

How can I be alerted of any activity in non-approved regions, with the exception of read-only calls?

Continue reading

Lambda 101 – Serverless Business Logic

I’ll keep this post short and let the video do the talking. This twelve minute video will walk through three different Lambda examples and investigate the payloads of each. The goal is to get developers and system administrators comfortable with using Lambda to execute business logic!

See below for more details. Enjoy!

Here are some additional references:

Function code:

1) Jeff Barr’s Blog @ AWS is a good source for new announcements, interesting use cases, and much more:

2) CloudSploit’s write up on how they made their whole company serverless with some insights on the savings they’ve seen:

3) A deep dive into developing a serverless application and many of the considerations that need to be made. Written by Mike Watters (

4) Working with serverless applications is great, but how to you manage such an application over the lifecycle of the app? Michael Wittig ( answers this question on his blog:

5) Could it get any easier!? The innovation has just begun! Check out AWS’s Python Serverless Microframework:

I hope you enjoyed. If you have feedback or questions, leave them here!

Standing on the Edge of the Unknown

Tomorrow, I start working for Amazon Web Services!

In order to put my excitement in context, it’s important to know where I’m coming from and where I’m looking to go.

Five years ago, I started working for EMC.  EMC took a risk hiring me, but it paid off.  I was new to the workforce with no experience in storage and completely naive to the trends that shape the IT landscape.  I didn’t even know what they were asking me to do.  What does a pre-sales engineer do, exactly?  During my five years, EMC gave me access to all the resources I needed to be successful.  When I finally figured out how to do my job well, I had a new perspective on career and the IT landscape as a whole.  I will never forget the people at EMC who helped me along the way.

Now that I saw things in a new light, I started asking myself how I could do it again.  This lead to a multi-year search that ended two weeks ago with Amazon.  My criteria was as follows:

  • I must be able to provide value day one.  I’m good at understanding complex technologies, mapping the value of the technology to business needs, and message this value to different stakeholders.
  • They must have a sound strategy.  I was searching for a company that has the potential to be a market leader (or is one), and having a poor strategy won’t get you there.
  •  Located in Boston.

I profiled hundreds of companies and only four made it through my filter.  I didn’t obsess over my search, but I was always looking.  If anyone ever mentioned a company I hadn’t heard of, the next thing I would do would investigate them.  My notebook is filled with dozens of companies that didn’t make the cut.

Then I got the call.  Amazon wanted to talk to me?  I didn’t even have a warm introduction!  This was like MIT or Harvard approaching me to go to their school — I just couldn’t believe it.  I’m still having a hard time believing it.

There is always a degree of uncertainty that comes with changing roles.  I won’t have a support network and I know I don’t know a lot of things that I need to know to be successful at Amazon.  But I trust in myself to build my network within Amazon, educate myself on the gaps I have with the technology, make some friends along the way, and have fun doing it!

With every new piece of information I get my hands on, I am more certain that this is the right decision for me.  Have you read anything that Jeff Bezos has said?  Have you seen the new drone video Amazon just released?  Are you aware of just how many web services AWS offers?  AAHHHH, YES!!!!

Blue Origin employees celebrating a rocket land.

Blue Origin employees celebrating a rocket land.  This happened after I accepted the offer! (source:

Today I stand tall.  The energy is surging through my body!  I’m off to memorize Amazon’s Leadership Principles before my first day.  I’ll let you know how it goes!

The Cloud Landscape – Do I need a strategy?

Let’s take a minute to reflect on the IT industry.  Heraclitus had it right: “The only thing that is constant is change.”  We’ve all seen the disruptive waves of technology sweep through the IT world. With every wave there are winners and losers. Speaking directly to the compute environment, there have been mainframes, microprocessors, open systems, virtualization, and now cloud computing.
“I think there is a world market for maybe five computers.” — Thomas Watson, chairman of IBM, 1943. (The irony here is that IBM is the only company to survive every disruptive wave to date).

Continue reading

How I solved Aristotle’s Puzzle in 1 Hour (no spoilers)

I was given Aristotle’s Number game as a gift this Christmas.  The difficulty on the back read “Nightmarish”, but I wasn’t scared.  That said, my title may be misleading.  It took me 3-4 days to figure out all 12 solutions, but my script only took 1 hour and 3 minutes to run through the 250m permutations I was able to break it down into.  How this puzzle is solved without a computer is mind boggling.  gameBoard

The rules are simple.  You have 19 hex pieces that have a number 1-19 on them.  They need to be placed on the board, seen above, so that all rows sum to 38.  That’s in any direction, leaving 15 different rows that need to sum to 38.

I started as anyone might start.  Manually plugging away.  After getting ‘close’ a few times and failing, I figured I could brute force this, so I opened Excel.  That tactic turned out to be laughable.  With 19! possible combinations, I needed to narrow down my search.  How many tiles did I need to solve to figure out the rest of the puzzle?  Well, after some failed attempts, it’s possible to take the 15 equations that should sum to 38 and reduce them down to 12 equations with 7 independent variables!  That means we will only need to solve 19!/(19-7)! iterations.  The process to derive these equations is called Guassian Elimination.  Huge props to hwiechers (Careful, this link contains a spoiler!) for showing me these equations — I had to take them at face value given my limitations in this area.

Once I had these equations it didn’t take much time at all to write the script to take the iterations, solve the equations, and check if everything added up.  My code can be foundhere:

Boy am I happy to be done with this puzzle!

Cheers and have a happy New Year!



Working with Windows 8 — The Quick Guide to Making it Usable

I recently bought a new laptop that came stock with Windows 8.  I heard rumblings that “Windows 8 sucks” and that it is unusable.  The same could be said about any OS by someone who isn’t comfortable.  I see an OS as a tool.  I use Ubuntu and Windows 7 on a daily basis, and know my way around OSx.  Windows should come naturally to me, right?  Wrong.  There are a few tweaks that, in my opinion, should have been applied out of the gate.  I’m happy to report that I am still running Windows 8.1 and haven’t downgraded to 7.

I’m also running on a touch screen.  80% of the time, I’m using the keyboard and mouse.  I needed to make some tweaks to make the touch screen more usable.  For now, I’m going to keep this post bare-bones; but I will get the “meat’n’potatoes” down here.

Firstly, upgrade to Windows 8.1.  Some of these tweaks won’t stay persistent through the upgrade, so do this first!

  • Windows Metro sucks.  It does.
    • Install “Classic Shell”
    • Boot directly to desktop
    • Convert user account to local (allows you to make insecure passwords and not be dependent on a Microsoft web account.  Small passwords are not best-practice, but for my home devices I want an easy password set so I can share it with friends and family.
  • Touch keyboard sucks.  It is impossible to hold any modifier keys on the default touch keyboard!
    • I found myself using OnScreen keyboard instead of the Touch Keyboard because it was so unusable.  There is a setting to add the full keyboard as a keyboard layout to Touch Screen.  This makes the keyboard much more usable.  If I were Microsoft, I would definitely make a few changes beyond this, but it’s 90% of the way there.

Please, if you come across this page and are looking for more information, I’ll be more than happy to help you through these issues.  Just comment below and I’ll build out a walk-through for any/all of the above tricks.