855 karma · joined May 3, 2016
Contact me: https://www.chrisdalke.com/ chrisdalke (at) gmail (dot) com
For the former, I tend to reach for the tech stack that I've spent years working in and can very quickly spin up projects in. This is heavily specific to your background, but for me:
- Frontend: React, vite, react-router, Chakra UI.
- Backend: Node.js + Express
- Database: PostgreSQL
- Scheduled jobs/ML/data processing: Python
- Deployment/Infrastructure: Docker, docker-compose, AWS EC2 or Lightsail, Digital Ocean droplets, Netlify, Render
For the latter, there are lots of potentially better options, whether that's server-side rendering, serverless functions, etc. (Next.js, fly.io, supabase, are a few examples) and again depends on your industry.
Yes, a subset of consumers will find local-based IoT products and vote with their wallets, and there are great companies serving that market (at a premium). However, the financial incentives push most companies to produce WiFi/internet connected crap. It’s clearly cheapest to build on a ESP-type WiFi platform and build a bad cloud app.
I think the only way you really stop this is with strong financial penalties via regulation. I’d want two pieces:
Fines for cloud exfiltration of analytics or WiFi data beyond the base functionality of an application. Funding for FCC or other organizations to actively investigate reports of this.
Fines when companies “remotely” brick IoT products that are EOL by shutting off a cloud API. Something of this type should push companies away from any sort of cloud-based infrastructure because they’d need to maintain it for much longer. (Admittedly not well-informed here and maybe this is in progress already?)
I understand your perspective is that we can’t trust the government to properly regulate that, and maybe true. But it’s also unrealistic to expect most users to be well-informed. Even if most adults made that choice you still have a huge market of college students buying cheap crap.
Most people have no understanding of the difference between a cloud-connected device and one that just uses WiFi or BLE locally to communicate with an app.
I’d say if you work for a company that produces this kind of crap IoT, shame on you, and that people in that position should strongly push for the ability to ship with offline-only firmware.
"In the near future from a 1950’s perspective, the first space station, in orbit around the Earth, gets knocked out of orbit due to pilot miscalculation. The subsequent disaster, with shuttle and space station crash landing near San Francisco, creates a public furor calling for the end of the space program. General Oglethorpe, the earth side base commander in charge of the space program, recruits Dr. Paul Medick, an expert in psychology and psychometrics, to head a new project: to eliminate human error. Oglethorpe is certain that men can be made to be more mechanical, operating with the same reliability of the machines which they operate.
The government had spent one billion dollars to convince the human race that men ought to be ashamed to be men—instead of being cybernetic machines incapable of miscalculation.. But they did not consider that an error less man is a dead man."
Jenkins works great for this purpose. It's fairly sketchy and held together by duct tape, but I find its developer experience to be much better than equivalent commercial options for a small scrappy team.
My playbook for a small team building a variety of software (Robotics software, web-based UI, AI, mostly running in Docker or built to static executables):
- Spin up a Jenkins master on a cheap VM
- Spin up platform/project specific VMs or physical machines as build agents, leave developers in charge of dependency and tooling installations on the build machine for their product. Don't bother with 100% reproducible tooling until you need to scale up to more than a few build agents.
- Maintain all build and deployment scripts inside the repository, next to the code, managed by developers. Store build pipeline/task definitions in the repository, and keep developers responsible for their service.
- Keep some boilerplate and convention around for pipelines and enforce it. Make sure all build pipelines use a similar git scheme. Doesn't matter as long as it's easy + reliable (ex. deploy every commit from develop w/ staged rollout? "Git flow"-based release workflows, etc)
- provide SSO access to the whole team via a plugin ASAP -- Avoid managing individual credentials to the machine
- Limit Jenkins plugins used for build actions! never use a plugin doing some action interacting w/ cloud resources, eg "AWS S3 Upload". Just asking for a security breach, and eventually turns the Jenkins UI into a giant mess of random UI controls. Instead, where possible use native tools eg. the AWS CLI instead of a Jenkins AWS plugin.
I assumed cavitation had similar parallels in air propellers with high tip speeds (as you approach the speed of sound) but seems that is a different effect?
The difference in geometry for air vs. water propellers has a lot of complicated reasons but above all the fluid density of water is about 1000x air: ~1000kg/m3 for water vs ~1kg/m3 for air. Air propellers are optimized for very high-speed operation which is needed to produce any significant thrust in low-density fluid. Boat propellers are very "built up" and physically sturdy since they are used in low-speed operation with high torque.
I have seen people use RC airplane propellers in water for small autonomous boats -- They do work but look very comical (think 10x the size of a boat propeller, running at 1/10 intended speed)
Cavitation effects -- microscopic bursts of vacuum at low-pressure boundaries along the propeller -- come into play much sooner than with air propellers.
One of my favorite engineering projects and documentaries, just because of the sheer ambition and scale, and the grit of the team to keep pushing through repeated failures. Sad the project was cancelled but it makes sense given the cost and complexity.
A tip anyone encountering this comment: If you like Sci-fi, story-based, exploration games -- Just buy it. Just go play it. Don't read a single review. Don't look at YouTube videos. It's the type of game that you can truly only experience once, and the less known before entering that experience the better.
Also, play on Controller -- The game has a lot of spaceship flight which is pretty frustrating on keyboard/mouse.
A few problems that might show up with this type of prop/"screw" on a large ship:
- Ship propulsion uses a fairly large-diameter prop and runs at very low RPM (~100rpm vs 1000-6000rpm) compared to smaller planing vessels. The Sharrow prop advertises decreased cavitation at high speeds but this effect may be diminished at low RPM.
That said, cavitation is a different beast for ships than for recreational boats: In the recreational market few boat owners are concerned about propeller efficiency loss due to cavitation -- Concern is mostly around noise and vibration. In contrast, ships are very concerned with fuel and maintenance cost, so if the Sharrow blade successfully reduces both of these it may be helpful.
- Seems like they're currently machining these on a 5-axis CNC out of blocks of raw material which won't scale to larger sizes. The complicated shape may not lend itself as well to casting, and even if they casted the shape it would need to be finished and this would require expensive equipment.
- Might be more difficult for third-party repair [2] which is done manually or with 3-axis machines.
Generally the commercial maritime market is much slower to adopt new technology than recreational, and also much smaller by volume, so it may make sense for Sharrow to continue serving small outboard boats because margins + sale volume is much higher.
[1]: Incoming maritime emissions regulations: https://hbr.org/2022/10/climate-regulations-are-about-to-dis... [2]: Example of ship propeller repair: https://www.youtube.com/watch?v=RuV3AsKTQlM
In recreational marine these types of products tend to spread based on word-of-mouth and sell fairly low quantities but at higher price points. Related: Seakeeper (https://www.seakeeper.com/), a fairly crazy gyroscopic stabilization system, wildly popular but fairly quiet in the tech world.
By tuning the chunk sizes so their data fits in memory, many common queries gain a lot of efficiency. It's built around some assumptions of time-series data: Most inserts and queries are for recent data and are generally ordered.
I've had great experience with TimescaleDB for small-medium time-series loads such as sensor or analytics data; I've found it's pretty plug-and-play and have used it to store tables with ~1B time-series rows of geospatial data, sensor values, etc.
In the video I linked he describes how they engineered and flew a RC glider at a speed of 519mph.
Makes a lot of sense that this could be applied on a larger atmospheric scale for spacecraft.
People who bought them as a cool consumer gadget similar to VR. These printers are gathering dust because there ultimately isn’t that much interesting plastic junk to print.
Silently churning out hundreds of rapid prototypes a month for engineers & makers. In my circle it’s just become an assumption that you have 2-3 printers running when prototyping a project. 3D printers have just become a background tool rather than something that you actively tinker with + improve. I got mine down to decent print quality and haven’t upgraded it in years, but print daily!
I think both opinions are right. If you’re a professional working in the field, RJ-45/8P8C is awesome because you can do large runs of cable and crimp on connectors after which is a lifesaver. The longevity of the connector is less important than ease of installation/replacement. I’ve done a little work with marine ethernet and CAN which uses M8/M12 circular connectors and those are pretty painful in contrast.
For consumers, it’s exactly the opposite. They’re unlikely to have the tools to crimp connectors. Most cables off Amazon come with lots of plastic that makes the cables rigid so it’s a pain to route and use in a home.
More info from the author here: https://blog.nobugware.com/post/2019/self_hosted_world_maps/
The vector tiles are much smaller in filesize than pixel data and the rendering technology is much better. Almost all the styling is done on the client side so the server is basically just querying a spatial database.
I use Timescale for internal analytics tools -- time-series metrics, logs, etc from hardware systems. Our deployments have very low CPU usage, so running on a single EC2 instance is feasible. Our main concern is always just running out of disk space. It would be amazing if this ends up being a config option in the open source version, where we can point the instance at an S3 bucket and provide the right IAM access.
At first I was disappointed you couldn't leave the road until I found you just needed to use more speed + boost. After that I spent all the time driving off-road.
I drove backwards at the start and clipped into some geometry, causing the car to gain a ton of vertical velocity and fly high into the air up to the clouds! When it dropped back down it bounced around a lot. Found you could reproduce this by finding where the road surface was clipped and gain some speed before entering it.
This made me think: You should add some planes!
Had a great time exploring.
If anyone sees this and plays the game, don’t read any reviews or information online! Go in completely blind and you will not regret it.