RSSAmplifier

Blog

Craig Weber

An engineer's thoughts on programming and travel.

crgwbr.comRSS feed ↗48 posts

Latest posts

Friday Afternoon Amnesia

It's Friday. What did I actually do this week?

Dining Table

Dining table made from air-dried black walnut sourced from a tree in our yard. Features Y-shaped legs with an X-stretcher base.

2025 in Review

9,435 commits and a year of statically typing everything.

Desk-side Equipment Cabinet

Desk-side cabinet made from Baltic birch and hard maple, with cane front and rear exhaust fan for cooling.

Walnut Pen Holder

Desktop pen tray made from air-dried walnut and finished with clear gloss Osmo Polyx.

Walnut Cat Food Stand

Stand for cat food bowls. Made from air-dried walnut and finished with satin wipe-on poly.

White Oak Kitchen Shelves

Floating kitchen shelves made from 8/4 solid white oak. Finished with satin wipe-on poly.

Bathroom Vanity

Bathroom vanity cabinet made from Baltic Birch plywood and quartersawn white oak. Finished with Minwax wipe-on satin polyurethane.

Entryway Bench

Small entryway bench made from air-dried black walnut. Finished with Osmo Polyx clear satin.

Sofa Table

Sofa table made from air-dried black walnut with integrated LED lighting concealed beneath an epoxy lens. Finished with Osmo Polyx clear satin.

Coasters

Walnut and Maple coasters. Completed February 2023.

Floating TV Console

Floating TV console made of quartersawn white oak. No mechanical fasteners. Finished with Osmo Polyx raw.

Things I Don't Know About AGI

Is a photocopier alive?

Cat-Litter Cabinet

Two-story cat litter cabinet with external stairs. Box is maple-veneer plywood with solid maple top, stair treads, legs, and door components.

Raised Garden Beds

Raised vegetable garden beds made from SPF framing lumber. Finished with cedar tinted deck stain.

Escher Cutting Board

Escher-style cutting board made from trapezoids of Peruvian walnut, hard maple, and red oak. Finished with Tried & True linseed oil/beeswax blend.

Patio Table

Countertop-height patio prep table with porcelain tile top. Frame is pressure treated SPF, bottom shelf is white pine.

Sunroom Built-In Cabinets

Built-in set of cabinets for the sunroom. Contains four storage drawers along the bottom, a tall hanging coat closet with door, and 7 open shelves.

On SQL…

10 years and a few months ago I started a new job working on a website with an extremely normalized MySQL database. Prior to this, I'd never written a query with a single JOIN…

Home Office Bookshelf

Home office bookshelf made from birch plywood and poplar. Painted with Benjamin Moore Advance in Black Forest Green.

Home Office Cabinets

Home office cabinets with red oak top as auxiliary desk space. Cabinets are painted sande plywood.

Mid-Century Modern Writing Desk

Birch veneer core plywood with maple face frame and legs. Dyed with Transtint Dark Walnut and stained with General Finishes Antique Walnut gel stain.

My Backup Strategy

My backup vortex, circa 2021.

Leadership Principals

Principals I try to follow whilst leading my team of software developers:

State of the Open-Source Projects (that I contribute to)

Here is a list of open-source projects I own or actively contribute to, as of February 2017. Asymmetric JWT Authentication Asymmetric JWT Authentication is a library designed to aid in stateless authentication of server-to-server or app-to-server API requests in Django using RSA asymmetric RSA key pairs. It eliminates security issues like replay attacks and MitM credential snooping all while being…

Falcon 9 sticks the landing

For the first time, SpaceX successfully landed the first stage of their Falcon 9 rocket last night. Elon has said in the past that while a rocket costs $60 million to build from the ground up, it only costs $200,000 to fuel. We're yet to see how much refurbishment is required before this stage can fly again, but regardless, this is a huge achievement and a big step towards space travel…

Use RSA key pairs for API authentication

It was a chilly morning in November when Olivia walked into her favorite coffee shop in Brooklyn and ordered a triple-shot of espresso. While waiting for the barista to make her drink, Olivia opened her laptop and logged on to her company's webmail interface to read a few email. Five minutes later her drink arrived, she closed her laptop, and walked off towards to subway. By the time she…

Dumbo, a Love Story

Perfectly crispy on the outside, the paper thin crust on my La Bagel Delight bagel wraps the incredibly chewy dense inside. I'm not one of those abominations that orders their bagels “scooped out.”

Portland, March 2015

This past March, two of my long-time friends and co-workers married to each other. Here's the video I made documenting my trip to Portland, OR for their wedding.

Lightning Talk: Browserify

For the past few months, my team along with a few of the other development and dev/ops teams in our organization have been meeting once a month for about an hour of lightning talks. The slides below are from my presentation last week, when I talked for about 10 minutes on Browserify and how we use it to make client-side Javascript more managable.

Camping in Beaver's Bend

For a while, I've been interested in videography and editing as a hobby. I love how a few minutes of video can convey the feeling of a trip in a way that an album of still photos often doesn't. Because of that on my recent vacation to visit friends in North Texas, I made a point to shoot lots of short video clips anytime I would normally take a photo. After some editing I'm decently happy with the…

Notes on developing with HHVM

Dynamically typed, interpreted programming languages are great. They're easy for a beginner to learn since they don't have to worry about static type checking, they enable you to push updates to a single source file without pushing a full binary, and they have the instant gratification that comes with not having to compile code. No benefit, though, is without cost; in the case of interpreted…

A Failure to Delegate

This week Marissa Mayer unveiled Yahoo's new logo design, ending the 18 year reign of their former logo. Reactions to the redesign have been less than ideal , but whether the logo is actually good or not, something Mayer said in her blog post interested me.

Breakpoints and Quality

Last summer the power supply on my old, first generation LCD TV started buzzing. This wasn't the first time it had done that. A few years ago, when it still belonged to my parents, it started buzzing at a frequency just high enough that no one except me could hear it. It was still under warranty, so after convincing my Dad that I wasn't going mad, we sent it in for repair. When I moved to New York…

SilverStripe 2.x Templates

SilverStripe and a few other frameworks use a variant of standard HTML comments within their template engines. This enables the engine to easily strip out comments before sending the page to the client, but it does cause an issue for most syntax highlighting text editors. Since Sublime Text 2 is my editor of choice, heres a simple Gist to make it syntax highlight these comments correctly. Add the…

Purge

I don't have enough time. More specifically, I've decided I don't have enough time. Everyday I get up at at 6:00AM with high hopes for the day: optimistic views on what I'll accomplish; which tickets I'll finally polish off; how much closer to the next milestone my team will be. Yet everyday, by the time I'm too exhausted to think about anything worthwhile, I'm disappointed. The issues I wanted to…

Skyscraper of Bananas

When you sit back and look at it web application development is a total disaster. If you tried to conceive of the "ideal" UI platform (or even a "good" one) you would never, in a million years, come up with what we've got now. It is a testament to the skills of everyone in the industry that things like google maps, Gmail etc. can be built on this sky-scraper of bananas. No wonder it is hard to…

Good Design Is…

This couch doesn't have drop shadows and an unnecessary 'loading' animation, metaphorically speaking. This article is a great description of the product of what good designers do. It's cheap to manufacture. Easily deployed and assembled. Well suited to its primary purpose. Incorporates multiple additional uses without compromising the primary use. Flexible enough to be reconfigured easily for…

The Difference Between Online and Print

I really hate that people think writing online needs to be significantly dumbed down and shorter than writing in print. Studies have shown that people are conditioned to skip around and to read only small blocks of text when reading online, but I hardly think that's the fault of the LCD they're looking at. When you compare the two mediums, print and web, I don't think the brain knows the…

Node.js isn't a silver bullet, but it's still a bullet.

This morning, on a conference mailing list, I made some disparaging remarks about Node.js (the title of this post, in fact). A couple people asked me why I felt that way. Rather than respond individually, I'll just list my reasons here — codeslinger.posterous.com

Becoming Great

No matter how hard some people try and find it, there is no secret to being a great programmer. The same goes for any trade, whether you're a designer, painter, writer, or carpenter. The only "secret" is to be passionate and fully present at whatever it is you're doing, to work at it day and night, and to keep doing that for a really, really long time. No one has ever become a great writer by…

Stop Being Comfortable

Until recently, when I moved to Brooklyn, I lived in a small town on the outskirts of the Rust Belt region of the US. Despite having the cognitive bias that all humans have, that makes us think the culture we grow up in is “standard,” I had traveled enough to know something was generally amiss with the attitude of the area. Not necessarily consciously mind you, but I did have that feeling.

Supersaturated

A supersaturated solution is one in which the saturation point, at which no more material will dissolve, has been exceeded. This can occur because the saturation point becomes higher as the temperature of the solution is increased. When you dissolve the material at a high temperature and then cool the solution, the material sometimes doesn't crystallize out because the molecules don't know how.…

What I've been up to

If you follow me on Twitter , you might have noticed that I've been fairly quiet about what I've been working on for the past several months. There's a few good reasons for this, but mainly it's just because of how busy I've actually been.

Switch Statements in Python

{ }

Let them eat cake?

I’ve always had a feeling that Marie Antoinette’s famous words, “Let them eat cake,” didn’t mean what everyone else thought. Traditionally, the story goes that when she heard the French peasants were starving because of lack of bread, her response was “Let them eat cake.” Most people take this with a distinctly callous meaning, but according to Wikipedia it was actually quite an economic…

Good Design

I just finished watching the documentary Objectified for the second time. The entire documentary is great, but one of my favorite portions is the 10 rules of good design given by Dieter Rams:

Hello World

Welcome to the personal blog of me, Craig Weber. I am a graphics/web designer, programmer, and student in Northwestern Pennsylvania. This blog acts as a résumé and log of my past and current experiances and projects, in an effort to demonstrate my skills to future employers.