Although I originally purchased these side-facing mini Neopixel strips for upgraded wheel hub lights, they provided a good solution when my bike light got swiped. Or if I forget to charge my new one. Or simply feel that the trail could use a splash of color!
This handlebar setup includes a 16-led Neopixel ring in the center with a Wii Nunchuk providing two buttons and a joystick for switching modes and setting the number of visible lights. It’s controlled via an Arduino Pro mini and powered by a golf cart converter that turns my ebike battery’s microprocessor-melting 50-60v into a nice digestible 5v. While currently an independent setup, I will be integrating this to play nicely with my other lighting systems.
The best description I can give of TypeScript is that it’s like the most annoying, pedantic, precise, engineering-type human being you’ve ever encountered, watching you type and screeching in horror whenever you make an error, even if you’re mid-thought. You want to kill them. You want to rip the tape off their glasses and stick the halves in their pocket protector (I feel I’m personally nerdy enough employ these stereotypes), re-compile their kernel with the wrong options and add bacon to the pescatarian tuna sandwich their mother packed them for lunch.
But you don’t because they’ve never freaking wrong. They screech and kvetch and force you to declare that the name is a string and the age is a number and a person is a combination of both of those. And if you dare try to feed a ‘person’ object to something that only accepts a union of ‘aquatic’ and ‘invertebrate’ objects, TypeScript goes ballistic howler money on you.
Then you find the error and it’s silent. TypeScript sits there quietly knitting or whatever and you go back to typing out your objects, and your code is much, much harder to break.
I’m starting a new React/redux project and I think it’s going to be typed. I still have a lot to learn about TypeScript, but my most recent professional experience involved laying the groundwork to replace React context API’s with a modular saga-driven redux store within an enterprise-scale application, and I was able to do it all strictly typed.
I think I already drank enough Kool-Aid to crave the taste.
After working with Angular I spent some time coding Knockout, which I really enjoyed, and then did significant application development with Backbone. I’m slightly embarrassed to admit how much I leverage jQuery these days (with a dash of underscore), but it really does provide inarguable convenience. I’ve done pretty extensive work with it and developed jQuery libraries as a contractor a few years ago.
The two technologies I’m currently excited about are react and vue. My overall impression so far is that vue has some arguable benefits over react, but that react has a larger community around it and I’ll be opening myself to more front-end development opportunities if I focus on learning react.
Beyond reading introductions and going through tutorials, my experience has been that conceptualizing a project and developing it is the best way to learn a new technology (Like building a rocket bike to hone one’s skills at hardware integration and interval timing-based microprocessor programming and barely even setting the apartment on fire twice∗, crybaby roommate.) Consequently I’ve got a small project in mind and will be using it as a jumping point for wrapping my head around react, which so far has been making a lot of sense, the details of which I’ll be posting about next!
∗ Kidding, kidding.. just a couple of issues releasing the hardware’s magic smoke while learning about MOSFETs, servos, and insulation, nothing even high-voltage, please don’t raise my renter’s insurance
Most engineers suck at user interface
I enjoy focusing on front-end development
Although I love programming I have learned that there can be too much of a good thing. Years ago I decided to do web development professionally but keep it largely isolated from what I do in my free time. I took an introductory course in Arduino back when working in Philadelphia and have been hooked ever since, hacking away in one form or another with increasingly complex projects. There’s something insanely fun about envisioning a physical project, solving the design and technical hurdles to make it happen, ingesting new skills and techniques, and solving problems there are no clear answers to. As a front end developer, everything I do comes down to the placement and manipulation of rectangles. While you can accomplish some pretty amazing things with those rectangles and the content within them, programming custom hardware opens up even more interesting possibilities.
The most recent one, and the project I plan on documenting on this site, is the fake rocket engine I strap to the back of my bike. The video above is a preliminary test before I had integrated the purple control box seen below.
I’m a regular on the Thursday Night Cruise here in Boulder, where people dress up, adorn their bikes with lights and decorations, and roam the streets and paths in big rolling party.
I’ve been contributing my own wee shenanigans as I’ve gotten more involved over my past few years in town, especially after getting a 3D Printer (Flashforge Creator Pro) last year, and this is the most recent outcome of my tinkering. I was recently invited to bring the rocket setup down to Pueblo, CO for their first Maker Faire where I got some great feedback on my project and enough people asked for details that I realized I should probably put together some sort of online description beyond the one I provided for the Faire.
The entire contraption has evolved over time, but the original pieces are still in place. The body is a juice container on its side with an almond container stuck on front of it. An RGB (multicolor) light strip is glued to the inside of the almond container where it shows through the plastic, the rest of which is covered in reflective metal repair tape. A combination of components printed using silver PLA and translucent NinjaFlex help diffuse the lights on the exterior. The lights are used to emulate a spinning effect with Arduino-driven logic. The back ‘thruster’ contains a small ring of similarly multicolored lights that are used for a flickering effect, wrapped in plastic to make them waterproof enough to survive the condensation of freezing solid.
Inside the intermix container is a small amount of dry ice. A fan pulls air in from the front of the assembly (almond container), through the dry ice, and out the back passing through the light ring. A small pump, also controlled by the processor, sprays pre-heated water drawn from an insulated container onto the dry ice. The heat introduced causes the dry ice to evaporate, emulating smoke. A small heating pad mounted on the bottom provides enough warmth to prevent the water from freezing solid after passing over the dry ice, allowing it to drain into a small gravity-container attached to the rear of the engine.
The entire thing is driven by an Arduino Mega and while the documentation leaves much to be desired I’ve shared the code driving this whole thing on github:
Stay tuned, I’ll be compiling a more detailed page about Tiffany the Wonder Bike and her faux turbine engine in the near future! There is also a whole slew of updated behaviors I need to document, including numerous light modes with sound reactivity on the front of the control box.
One of the things that software developers learn to abhor is the word, ‘just’. Just refactor that bit.. I’ll just migrate this code to a different place.. just tweak the CSS placement a little bit. If only twitching burned calories.
Consequently I should have known better than to just take some photos for my site. Most of the professional web development I’ve done over the years has either been part of a collaboratively-built web application or work that nondisclosure agreements prevent me from, well, disclosing. Not like secret government work on chem-trails or squirrel surveillance or such, simply code that folks would rather not have leave the building because of intellectual property. The end result is that while I have a nice long resumé, I don’t have a solid online portfolio demonstrating my talents, such as they are. I also have numerous hobbies that people seem to find interesting, which include a decent amount of Arduino code that I’ll be starting to maintain on github.
So I’ll just take some photos of stuff to go along with it all, throw them up on a default WordPress theme, and get on with the whole project documentation thing! But it sure is dark on my work bench, and pictures I snap in the kitchen don’t look too great with scrambled egg remnants in the background. The iPhone camera doesn’t provide much control over settings, so I’ll just use the Canon Elph 100 I got a few years ago. I’ll just set up the table, move some lights, maybe spring for a roll of paper from a photo place as a cheap background. I’ll just grab my roll of RGBW Neopixel LED’s, control them with an Arduino, real quickly design and 3D print some mounts for a PVC tube to hang from eye hooks screwed into the ceiling and mount a flexible Neopixel matrix of 256 RGB LED’s under the camera until I realized that the red, green & blue @ 100% cast a purple hue that doesn’t match the output from RGBW with white @ 100%.
Well that was a fun weekend! And it all came together just in time for the roommate to come home to discover that the dining room is, in fact, a modular photo studio. But after all the time we’ve spend playing Blair Witch (which is when he walks into a quiet room and I’m standing in the corner- timing is everything), surprises aren’t much of a surprise.
Hello! This is my first post as I start to set up a new personal portfolio & project gallery. The site is admittedly using a default WordPress theme as I’m just ramping up with FoundationPress and plan on making my own theme as part of some ongoing self-education, but before any of that fun I’ll be adding some actual contents!
I live in beautiful Boulder, Colorado where I’m a regular on the Thursday Night Cruise. It’s possible that I own more than one fairly epic cat shirt.