7
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I just completed a replacement of my Kinesis Advantage keyboard controller with a custom controller, kint, that runs the QMK firmware. Overall, it was very doable without having much skill in soldering. I think the project cost me about $70 and saved a $300 keyboard from what has been a slow decline into me not wanting to use it.
One quick edit: I highly recommend using JLCPCB if you’re interested. The first recommended service on kint is about $80 for just two blank PCBs (not including the components!) and I got my five custom PCB blanks in just under 2 weeks for a total of $13.50 shipped to the states. They are perfect. You do have to download the specification package to get the job done, but that’s pretty minor for the savings.
Soldering-wise, the project does call for 4 surface mount resistors and 4 surface mount LEDs, but I didn’t have anywhere near the trouble that I expected with those. Anybody attempting, I’d highly recommend scrubbing through the live build by its author.
My biggest hurdle was that the older Advantage has its thumb key breakout boards soldered on to the main controller, and kint calls for you to solder the leads on to header pins. I originally attempted to desolder the ribbons, but it just wasn’t worth the time and I ended up snipping them instead. I’d consider female connectors for those if I did it to another original Advantage. The Advantage2 doesn’t have this problem. I think the only other hardware note is that you lose the USB hub in lieu of whatever USB cable you plug into the teensy board. It’s reasonably possible to save the original USB connector, but I didn’t bother. Both the new cable and the dead original cable just come out of the keyboard for mine. I removed the USB hub board and stuck the new cable out of the hole where the ports used to be.
Finally, now that it’s together, the real benefits start. I’ve got a fairly complicated key layout programmed so that I can switch it between hardware qwerty that’s compatible with software dvorak (some of the keys are weird on the original layout if you do that), the original qwerty, and a hardware dvorak mode. I may yet add a mode to switch software dvorak into hardware qwerty. None of that was really the goal. My main motivation was to solve the connectivity/starting problems that seem to plague the original controller.
Have you ever used JLCPCB's assembly service before? I have to admit, I would be much more likely to make electronic devices if I didn't have to deal with SMT.
I haven’t, this is the first order I’ve done there. I’m impressed, but probably don’t personally have much use for an assembly service since I’d only ever be doing one-off things.
QMK is awesome, I’m using it on my HHKB Pro JP.
I started collecting incidents of software dependencies / packages becoming unavailable. There's of course the famous left-pad incident, but I've come across some other instances that are cause for some concern. It's very much a WIP, and I'd love to add to it if folks have any thoughts!
https://github.com/adityasaky/availability-woes
Ooh, I think that does belong on the list. Do you know if I can reference anything at all?
I see. Thanks for the pointer!
In continuing to jam on making https://github.com/newsguildny/nytimesguild.org (nytimesguild.org) as easy to work on as possible for folks that weren’t part of its original buildout, I’ve been working on a Next.js plugin that makes one of the patterns we’re using for writing custom editor components a lot easier to work on.
The plugin supports the rough equivalent of having components that make API requests to fetch data from the client in a normal React app, but for websites that are fully statically rendered (like ours!). Since the website is intended to work entirely without javascript (minus things like YouTube embeds), we need to be able to resolve all of these data queries on the server and make them available to components as needed on the client. The plugin does this with a combination of a custom babel loader, some webpack configuration, and React context. The README still needs some work, and there are probably edge cases to work out, but this is working great on the branch I have open for the Times Guild site.
I genuinely don’t know if this is something that other folks would find useful; I don’t even know if there’s anyone else trying to use a file-backed CMS (we use NetlifyCMS) with Next.js! Our experience with it has been very positive, though; it’s very straightforward for both devs and CMS users to pick up. For devs, it feels like “just a React app,” with some fairly easy-to-document caveats, and for CMS users, the Netlify CMS is very ergonomic and straightforward. And for website users, you get a really small, fast website that’s progressively enhanced with javascript!
I got a PiDP11 at the start of the year, and put it together a little while ago. Recently I've started learning how to program a PDP and I'm aiming to turn it into a lisp machine.