Hello world!


  • Terraform AWS API Gateway Invoke Lambda

    I need to master AWS API Gateway, how it functions, how it manages permissions and how it invokes other resources like AWS Lambda.

  • Aws Health Quit Waking Me Up

    I work for a big shipping company which uses AWS to host our nextgen platform. We run on a wide variety of AWS resources and technologies, and thus we depend on AWS being Healthy in our region when our business is running the cash registers. So, we build alerting out, paging our On-Call Guy whenever AWS Health tells us something is broken. The trouble is, our alerting system catches anything and everything, up to and including notifications that a database will be upgraded to the latest Aurora release two months from now. Woprse, those notifications come outr at very odd times, and our On-Call Guy (who is often me), complains that he’s paged at 3:00am for such nonsense.

  • Pissing Contest

    As IT professionals, we spend entirely too much time trying to one-up each other. While reading this post, you might be thinking how your blog is cleaner, it has more features, it accepts comments! You can’t help yourself, you just naturally critique other people’s work, because that’s part of your job. If I’m honest, I’m probably as critical of my own work as I am of other people’s work, but that self-critique is not as visible day-to-day. I’d argue, the critique of others should be similarly hidden.

  • Stay Busy

    If you’re working in cloud computing in 2024, you’re probably working from home, having maybe a daily meeting with the team, feeling a bit disconnected with the company and it’s core goals, but pretty confident that you play a critical role and you are somehow earning your salary. Or perhaps you’re marking your time, cashing the checks, but wondering when they’re gonna figure out how little you accomplish on a daily basis, how much dead weight you really are. If that’s you, congrats for the honesty, but you gotta listen carefully to what I’m gonna say here, it’s crucial.

  • I Love My Wife

    Gosh I love my wife!

  • Projects Forever

    I have projects forever. I have so many projects, I find myself arranging my projects in dependency trees which are so long, complex, computationally intensive that my brain gets lost wondering where to start. And I dare not pick a particular project to favor, because when I think about accomplishing it, I get lost in the dependencies, I really can’t figure out where it belongs. How to start? Hell, how do you define The First Step?

  • Time Machine

    Hello! I’m back. This weekend for some reason I decided to rebuild my github pages personal website.
    I spent all morning while the wife and kids were sleeping trying to recover my github pages personal website. I started out trying to make the old site work, then I decided, why not just start from scratch? So I did.

  • Welcome to Jekyll!

    You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

  • Building A Dev Machine

    Over the past year, I have worked to build a self-service deployment machine for a Fortune 500 Online Travel Agency.

  • Virtual Home

    I bought a Dell Precision Workstation with dual xeon’s and added 64 gigs of RAM. I intend to turn it into a VM host using KVM (it’s running CentOS 7.x). I’m struggling with this because it seems every thing I try, I find issues I have to trouble shoot, and spending all day troubleshooting and not building is a real pain.

  • Throw Everything On Aws

    I am paying $40 a month to linode for a 1Gb slice with no practical limits on transfers (there may in fact be limits, but I haven’t experienced them.) I’m exploring whether I can move the services I run on linode to AWS, free tier, so save some $$.

  • Sweating Pipe

    10 years ago, my wife and I bought a money pit which we affectionately call home. Since then, we have both learned a wide variety of building trades through a process known as ‘dunk you in the freezing water to see if you can swim’. We love the house, and continue to work on it and improve it. This weekend, I had occasion to work on plumbing with copper pipe. Here are some tips, for the uninitiated:

  • Reboot

    I’m getting ready to make a significant life change. This involves saying good-bye to people who were a technical resource to me, so now’s the time to write down all the good things they taught me. This stuff may come in handy sooner rather than later.

  • Rails Complex Form With Children And Grandchildren

    I love Rails forms and the simplicity of AR associations in forms. Ryab Bates explains in this railscast how easy it is to include child classes in associations in a form, and have all creates and updates happen automatically: Railscast]. What Ryan doesn’t cover, is the possibility that the model’s child may have children (grandchildren).

  • Tracing SS7

    I ran a tcpdump of a failed attempt to communicate across SS7. I saw the following:

  • Rails With Unfriendly Databases

    We all know that Rails is Opinionated when it comes to the backend database schema. Tables are named after the plural word describing what they contain (posts, not Post or post or boatload_o_posts). Tables have a primary key called id. In fact, the easiest way to get along with rails from the gitgo is to let rails build it’s backend database for you, using migrations. That’s crucial to getting your Rails mojo kung-fu working. But what hapens when you need to connect your Rails app to an unfriendly database? What if you have to read data from a database designed by some one who, gasp!, doesn`t do Rails? What then???

  • New Slice

    I have successfully migrated my VPS from a CentOS 5.6 slice on linode to anew CentOS 6.2 slice on linode. I did this because I needed ot upgrade to CentOS 6.2 and I had no idea how to do it otherwise. So, I bought a new slice and began to copy all my stuff over. I reinstalled iRedMail (for nospam (at) jason-michael.com etc.) and rails with rvm and all the gems and all the other dev stuff and the mysql instance and postgresql etc. Rails makes it so easy to move from server to server - since my projects are all on github, I just do a git clone to get the project on my new server, then I introduce myself (on the new server) to github so I can commit. It works great.

  • Holy Crap Aws Ec2 No Pain

    This weekend I watched an eye-opening Railscast explaining how to use Rubber to deploy Rails apps to Amazon EC2. Sounds pretty benign until you actually see what can be done. I’ll detail the whole experience in this post.

  • New Erlang Project

    I have a new Erlang project which may pay $$$!

  • Conflicting Scopes And How To Make Them Play Nice

    If you do enough with Rails 2, you’ll be using named scopes (I think they’re frowned upon in Rails 3). I use named scopes for everything, particularly when I need to write complex queries which involve joins of tables. In this example, I have these models: an Rca, a Root Cause Analysis document, which is a report on a system failure and why it happened, a GenericProfile, which is a generalization of a System which might have a failure, an ImplementationType, which is a way a System might be implemented, a SoftwareRelease, which is the software the GenericProfile (System) might be running, and a FeatureGroup, which is a collection of SoftwareReleases. When talking about Rcas, we need to group them by ImplementationType and by FeatureGroup, so we can say ‘show me all the Rcas that refer to this System type’, or ‘show me all the Rcas that refer to this method of implementation’. We can do this with named scopes.

  • Making Pdfs

    I have been converting all my #show and #index actions in my rails app to pdf’s using prawn. It works great. Here’s the manual: link

  • Generic Multiple Attachments In Rails

    If you use paperclip for attaching pictures to models in Rails, you’ve probably run into this problem. At first, you’ve added a picture called ‘diagram’ to an MVC called WhitePaper, and it works fine. You can click on a link (diagram_url) and it pops the picture up in your browser, and everybody says Wow! Then people start asking you to attach other pictures to other models, and more pictures to the WhitePaper model, and you discover that you’ve become an idiot. Every time somebody asks for an attachment, you have to add code. And you thought Rails was agile!

  • Erlang On Aws

    AWS and Amazon Elastic Cloud could be the best playground for erlang projects. I’m going to experiment with using EC2 to build a variety of erlang ‘Hello World’ projects.

  • Writing For Fun And Profit

    I have written a kazillion short stories and one screenplay and have started another.

  • Thank God For Coffee

    Thank you God for Coffee. That is all.

  • Home Robots

    Spend an hour or so on the internet, and it’s immediately clear to anyone with half a brain that one can purchase and assemble without too much trouble a truly powerful home computer, complete with optical drives, processors, memory and a fixed disc. This computer can be both as powerful as and sometimes much more powerful than commercially-available products from Dell, HP etc. So, why can’t the same be said for Robotics?

  • Idea Walk

    I took a walk today with my dog and had a number of ideas.

  • Attack

    The creature, if you could call it that, was very nearly transparent. It floated through the sky like a giant condom filled with a now cloudy and then clear, undulating fluid. There were no structures visible within it’s external membrane, nothing that a modern biologist would recognize anyway. Inside, it was a total mystery, but outside, across it’s skin, it was covered with a slick, shimmering layer of hydrofloric acid at such an amped up concentration so that it would eat through living flesh almost instantly.

  • Difficulty Finding Time for Life Outside of Work

    If you work a technical job with a salary, you’re already facing two great dilemmas. 1.) you work for a salary, and 2.) you work with technology, where the work is almost never done. I find myself caught in a trap often enough - I don’t do well if I don’t get adequate sleep nor if I don’t have adequate time to spend with my wife and kids. Yet I don’t do well at work unless I’m perfectly willing to burn the proverbial candle at both ends. Dealing with this struggle effectively requires a number of crucial habits and procedures which you do not violate no matter what.

  • Late Night Window

    Up tonight working on deploying a new version of our OTA software to a regional cellular provider who will remain anonymous. Since my wife is a troop leader and both my girls are Girl Scouts, I’m surrounded by crates and crates of cookies right now. I’m eating haystacks at the moment. I know they changed the name, but I’m calling them haystacks.

  • Middle Aged Men with Small Dogs

    I am a middle-aged software developer. I have metabolic syndrome, which is essentially pre-diabetes and pre-heart disease, according to my doctor. I have a lovely wife and two beautiful young daughters, so I have a lot to look forward to in my remaining years. I got a dog to encourage me to get out and get some exercise. According to this search, there’s a lot of evidence and commentary suggesting that dog-walking can benefit your health, so I walk my dog religiously.

  • For Further Reading

    The following two sites are at the top of my crucial reading list:

subscribe via RSS