HNHacker News
TopNewBestAskShowJobs

cjwoodall

65 karma · joined October 12, 2016

submissionscomments
cjwoodall··on Get your passwords out of Bitwarden while you still can
I wish companies that offer such a core technology and what not were at times entered into a public trust, similar to how some public lands are managed, that would protect them from private equity takeovers; I know it defeats the purpose of the companies in the first place (making money), and it probably would backfire in myriad worse ways than the problems it might solve... But I do think there are many options for how products, services and what not can be structured that give the people who maintain them what they need to thrive; without mining the users for money.

Overly idealistic thinking, maybe... but still thinking.

cjwoodall··on Rob Pike’s Rules of Programming (1989)
Rule 3 is still very much real. Fancy fast algorithms often have other trade-offs. The best algorithm for the job is the one that meets all requirements well... Big-O is one aspect, data is another, determinism of the underlying things that are needed (dynamic memory allocation, etc) can be another.

It is important to remember that the art of sw engineering (like all engineering) lives in a balance between all these different requirements; not just in OPTIMIZE BIG-O.

cjwoodall··on PeppyOS: A simpler alternative to ROS 2 (now with containers support)
I will admit I have almost always made the choice to not use ros2. I am trying to use it now for some work, and I can see where/when it would be useful...

But I almost always feel like there is just so much STUFF involved in ros, that really is just better resolved by having really robust controllers, well defined protocols, and everything else.

I wait to pass judgement until I have more information though

cjwoodall··on You are chasing the wrong goals
Love the article! Honest reflections on shifting goals, is great.

I personally have found grinding and grit mostly counter productive unless it is accompanied by a reasonably short term outcome.

Also grinding continuously to get an abstract thing that might help you somedays is a recipe for burnout. Sustainable self improvement has to come from a place of intention, and the grid can service that intention in the short term; but sometimes you need to refuel your intention.

cjwoodall··on Ask HN: What skillsets/stacks will keep me employable over the next 5-10 years?
Find something you can bring a unique level of energy too, and bring it. One person’s generalist is another’s expert, thinking in those terms just isn’t that useful. The ability to take on hard problems and get something done and unwedge a team will always be useful.

Meet people in your org and others and make friends, develop some soft skills. I think these things really are career differentiator.

Idk I think just get passionate about things, learn about them, and be curious. Maybe you’ll find something you can specialize in, maybe you’ll find a unique constellation of skills and interests. Do some side projects here and there, it’s a way to take charge of your own skill development… yeah it’s sad that work can’t always provide this; but that’s how it goes…

Oh and to your best ability don’t let what everyone else is saying get you down, there is a lot of cynicism going around here , people are feeling pain… don’t let that pain become yours.

cjwoodall··on My cat water fountain comes with a spicy USB power adapter
TVS diodes can protect from transient voltage spikes when used properly (low impedance to the input connector, properly chosen and with the proper supporting circuitry)

Zener diodes can temporarily protect an overvoltage too but you will need something to take all that current that is now going through it, making it pretty hot and likely to fry something

You can pair something like this with a positive temperature coefficient thermistor to act as a fuse (as it gets hotter the resistance goes up).

These circuits are tricky to tune right, take up space and can add significant cost to a product. So with a drive in consumer products to lower cost smaller things you may not see them everywhere.

cjwoodall··on Show HN: Open-source obsidian.md sync server
I did out together this blog post a while for doing this for free using ashell

https://cwoodall.com/posts/2022-01-02-obsidian-ios-sync/

cjwoodall··on Rust went from side project to world’s fastest growing language
This key!

The wealth of formal verification tools in the safety critical c and c++ world is very high. Those tools, not the compilers are what get validated during tool qualification. Ultimately it is about the formal verification, static analysis and dynamic analysis tools, as well as, traceable code execution, robustness tests etc.

A formally verified rust compiler could really be a game changer, but until then, the tools do exist to write safe c and c++, but they are expensive and adherence is low outside of the places they must be used

cjwoodall··on Version control without Git
I once made something very similar for myself in College when I was told not to use git for something in a lab… so my solution was to automate making archives. It worked ok. Definitely helped me appreciate git. Now a days i would have just used git and released archives to the rest of the org
cjwoodall··on CodePerfect 95 – A fast IDE for Go
I would contend that 10kHz is pretty fast for a control loop thats doing anything complicated in a Garbage Collected language on a non real-time OS. The later issue being some what of a bigger issue than the GC. You CAN do it... some of the Basic linux real time stuff helps the situation a lot.

In .NET you can also change the GC policy at the thread level which can help a lot.

Pool Allocation (long held chunks of memory that can be manually repurposed) can help a lot, since you can write custom Pools where the Gc never knows it needs to clean up. It is a useful tool when you have big chunks of memory that need to be manipulated at a high rates.

I would say from experience that 500Hz-1kHz is a more reasonable loop time

cjwoodall··on Tabula – Extract tables from PDF files
I used tabula (and later camelot) to extract some register maps from data sheets to automate making some basic drivers!

What an awesome tool. I had to post process but both were consistent enough in how they were wrong that it was still faster to extract the register maps

cjwoodall··on Ask HN: Who is hiring? (March 2021)
BETA Technologies | Embedded Software Engineer | Full Time | On Site | Burlington, VT

The Embedded Software Engineer is responsible for owning the development of innovative controls algorithms, validation of software and procedures, and giving the smarts to our systems. This position will work in a small team environment to rapidly develop new technologies in the evolving world of eVTOL aircraft design.

https://jobs.lever.co/beta/3b62ec03-aced-4733-acba-acc4aeda7...

cjwoodall··on Ask HN: Who is hiring? (February 2021)
BETA Technologies | Burlington, VT USA | ONSITE | Embedded Software Engineer, DevOps Engineer, Electrical Engineer and more! | beta.team

BETA Technologies is working on the ALIA eVTOL aircraft! It is exciting times here at BETA as we build the future of electric aviation. We have some wonderful benefits, including flight lessons. At BETA you will be directly engaged with making electric aircraft, recharging networks, and more.

Simple Enough To Be Revolutionary!

Please apply on our website (https://secure4.saashr.com/ta/6168790.careers?CareersSearch)

cjwoodall··on Paul Erdős in Madras (2019)
That was just a nice light read. Loved it
cjwoodall··on OMG: Our Machinery Guidebook
So sad that it did...
cjwoodall··on Monads aren't as hard as you think
Depends a bit on what your crash response strategy looks like eh...
cjwoodall··on A Failed Experiment with Python Type Annotations
It seems to me that type inference would be silly in this case. Type suggestion during mypy checks might be useful though.

Function x does not specify a type, but returns SomeHelpfulTypeString. We recommend you use that.

Put it behind a flag and call it a day. Maybe even have a way of requesting type suggestions for functions during development

cjwoodall··on Show HN: Compile Time Reflection in C++ for Serialization Functions
Thanks for the correction.
cjwoodall··on Ask HN: How do you plan your travel?
For us road trips roadtripper works well to start. I typically end up using Google sheets docs and presentations to bring together all of the logistics. Things get a bit nutty though when you are organizing with a larger group
cjwoodall··on Is it time to stop trusting Google search?
Quotes work wonders. For many search engines including google knowing the syntax for more advanced searches is key.
cjwoodall··on Does C++ need a universal package manager?
I will agree with that. I have investigated other options and always come back to the same place. I am currently trying to unwedge us from vendor specific IDEs to cmake subprojects and submodules. At the moment we have a monorepo but it makes releases of subcomponents a bit sloppy.
cjwoodall··on Show HN: Unity 3D in Docker
Having just done this for my company, this is awesome. I probably won't move to using this for the time being, but there are a lot of pitfalls to doing this, many of them subtle.

We use Unity3D + Docker for CI and automated builds, which has massively decreased the number of "builds on my machine" issues (which Unity3d is very prone to)

cjwoodall··on Does C++ need a universal package manager?
I also find that in c/c++ I tend to maintain my own library of useful bits and pieces, where in another language I would use 3rd party libraries. There are pros and cons both ways tbh.

Some of my pain is from the embedded side where most libraries I use need a special set of flags and are compiled to static libraries or directly into the binary.

cjwoodall··on Does C++ need a universal package manager?
I completely agree.
cjwoodall··on Does C++ need a universal package manager?
A "dependency mess" exists both with and without package management. A package management system gives you a playbook to follow with tool support, and "winging it" lets you suffer and clean up the mess in your own clever way. The advantage of course is that that clever way CAN work better for your team (for now)
cjwoodall··on Does C++ need a universal package manager?
To be fair some modern compiled languages are covered by package managers. For example, Rust and Cargo. Admittedly there are constructs built into the language and design that have made the plausible since early on.
cjwoodall··on Does C++ need a universal package manager?
I have been contemplating trying to use Nix packages (or debs/rpms) to manage dependencies for embedded/cross-compiled projects. This would mostly just be a matter of putting header files and static-libraries into the correct paths I suppose.
cjwoodall··on Ask HN: Who is hiring? (July 2017)
Barrett Technology | Software Engineer | Newton, MA

Barrett Technology | Firmware Engineer | Newton, MA

Barrett Technology | Electrical Engineer | Newton, MA

Barrett Technology is a robotics company which concentrates on robotic arms and hands. Our current focus is burt a haptic device used for upper body rehabilitation and therapy for stroke patients. We also have a lot of motor control based work going on with our Puck Motor Controllers. And that work is with some exciting customers. We are looking for software, robotics, game developers and firmware engineers and we use Git, C++, C# with Unity3D, and Python. ROS expertise is a plus, but not a requirement.

For job listings: http://barrett.com/opportunities.htm If you are interested please send a resume with a cover letter to: resume2017@barrett.com

cjwoodall··on Ask HN: Who is hiring? (June 2017)
Barrett Technology | Software Engineer | Newton, MA Barrett Technology | Firmware Engineer | Newton, MA

Barrett Technology is a robotics company which concentrates on robotic arms and hands. Our current product is burt a haptic device used for upper body rehabilitation and therapy for stroke patients. We also have a lot of motor control based work going on at the moment with some exciting customers. We are looking for software, robotics and firmware engineers at the moment.

For job listings: http://barrett.com/opportunities.htm If you are interested please send a resume with a cover letter to: resume2017@barrett.com

cjwoodall··on Insect: a fast, repl-style scientific calculator
Python and a few other REPLs seem to use _ to capture the previous result. Could be a useful shorthand (not to complicated your design at all)
Page 1 of 2Next →