Hey, thanks a lot! Really appreciate you reaching out!
I agree. There's so many cool things to do in this space, and so many unique ways to achieve them. We're excited to be here, and would love to chat sometime as well!
The core issue is the user/developer experience of Industrial IoT is nowhere near where it should be. I understand where you're coming from, and I feel the same way too. Building a great developer experience is something we deeply care about. Exactly for that reason, we started building our own Device SDKs.
We also have support for open protocols such as MQTT and HTTP+SSE, but the Device SDKs enable us to provide a richer set of capabilities. Our SDKs actually speak a custom protocol we developed for higher efficiency. We're also going to add many more features such as automatic telemetry collection and tracing support, which is more feasible with a plug-and-play SDK.
Another big issue you pointed out is with documentation, a key part of Developer Experience is always great docs. A compelling model might be standalone open source tooling that works independently, with an integrated platform that ties it all together, creating a strong ecosystem.
I've been using Home Assistant with a bunch of Zigbee and Wifi devices at home, and it's been pretty stable. However, for an industrial context, there are already many other hurdles, having a platform handle a lot of the cloud infra and connectivity & monitoring is really helpful.
Hey, thanks for the feedback. Great point! We're gonna add something like this to the landing page soon. And we're going to write a few blog posts showing quick integrations across different hardware and protocols as well.
I've always been unhappy with the way tasking/todo app (don't) work for me. I just started building a TUI in Zig (with the help of Codex) to manage my daily tasks. And since I'm building it just for me, the scope is mine to determine too.
It's a signal vs noise filter, because today, AI can make more mistakes. Your operating system or IDE cannot lead you to make a similar level or amount of mistakes while writing code.
It is of course your responsibility, but the maintainer may also want to change their review approach when dealing with AI generated code. And currently, as the AI Usage Policy also states, because of bad actors sending pull requests without reviewing or taking the responsibility themselves, this acts as a filter to separate your PR which you have taken the responsibility for.
I can see this becoming a pretty generally accepted AI usage policy. Very balanced.
Covers most of the points I'm sure many of us have experienced here while developing with AI. Most importantly, AI generated code does not substitute human thinking, testing, and clean up/rewrite.
On that last point, whenever I've gotten Codex to generate a substantial feature, usually I've had to rewrite a lot of the code to make it more compact even if it is correct. Adding indirection where it does not make sense is a big issue I've noticed LLMs make.
What I understood from this is that LinkedIn and Email outreach are quite effective for leads. 1-on-1 conversations and the obsessive focus on solving problems different customers face do feel the right way to go about sales.
We just launched Fostrom [1], an IoT Cloud Platform designed for developers. I was wondering what else have others found effective in this space to do sales and outreach?
I'm building Fostrom (https://fostrom.io), an IoT Cloud Platform. We have Device SDKs to simplify integrating devices, powered by a small Device Agent written in Rust.
I wanted to support RISC-V boards too, so I went with the Milk-V Duo S as the test device. I have managed to get Tailscale working, and our Device SDK works too, with the bundled Python.
The experience of using the Milk-V Duo is definitely not as straightforward as the Pi Zero, but it does work, and is easily available in most places, unlike some of their other products. The Linux distro they provide is quite barebones, and I wasn't able to get Debian working. The docs for the device are pretty decent. I hope we get better support for Debian/Alpine/Arch for these kinds of boards soon.
In Fostrom, devices connect via our SDKs or standard protocols such as MQTT and HTTP, and send and receive structured, typed data, through pre-defined Packet Schemas. Each device gets its own sequential mailbox for messages. You can trigger webhooks or broadcast messages to other devices based on incoming data, powered by programmable actions (written in JS).
We entered Technical Preview recently. Since then, we've been working on:
- Major upgrades to Actions: making it easier to write action code, along with testing before deploying, and more docs on how to write good actions. Coming this week.
- We're in the process of releasing Device SDKs in multiple languages, including JS, Python, and Elixir soon. The SDKs are powered by an underlying lightweight Device Agent written in Rust.
- A new data explorer to view and analyze your fleet's datapoints, which will be available in a few weeks.
Happy to answer questions and appreciate any feedback.
We're currently working on a data explorer which will allow you to choose, filter, and sort datapoints in a table view. We're gonna add time-based aggregations, charts, anomaly detection, and correlation analytics soon after.
Any feedback or suggestions on what you would like to see?
Reading this post reminded me of another book I read a few years ago: Curious Moon [0].
It is written as a novel that teaches PostgreSQL by exploring the dataset of the Cassini orbiter around Enceladus, Saturn's moon. Highly recommended and fun read.
I recommend trying Javy[0]. Javy allows you to build a WASM file that includes Javy's JS interpreter along with your JS source code. Note that Javy is a heavily sandboxed environment so it doesn't have access to the internet, or npm modules, a desirable feature for running user code.
We're building an IoT Cloud Platform, Fostrom[1] where we're using Javy to power our Actions infrastructure. But instead of compiling each Action's JS code to a Javy WASM module, I figured out a simpler way by creating a single WASM module with our wrapper code (which contains some further isolation and helpful functions), and we provide the user code as an input while executing the single pre-compiled WASM module.
A developer-focused IoT Cloud Platform. The idea stems from pain points experienced while automating an indoor farm a few years ago where I had to spend way too much time building the data collection and analysis infrastructure instead of focusing on the actual automation.
Devices connect via secure MQTT, HTTP, or WebSockets and send structured, typed data. Each device gets its own sequential mailbox for messages. You can trigger webhooks or broadcast messages to other devices based on incoming data, powered by programmable actions.
Just deployed to production. Currently working on Device SDKs (coming very soon) and time-series analytics. Check out the platform, we're in technical preview now. Happy to answer questions and appreciate any feedback.
Yes, it is global. Even running `matchMedia("(prefers-reduced-motion)")` in the browser console returns true. I see no way of disabling reduced motion only for Safari either.
That being said, if you do decide to use spaces, I want to point out a MacOS setup that would help you to keep apps on different spaces and have an experience (slightly) closer to i3wm and other window managers.
First, you should create 10 spaces. Then go to Settings -> Keyboard -> Keyboard Shortcuts -> Mission Control -> Expand the Mission Control dropdown. You'll see options to set keyboard shortcuts for each workspace there. I've set it to Option+{1-9, 0 for 10}.
Then just open some of the permanent apps you use, and right click on their Dock icon -> Options -> Assign to this desktop. I keep the browser in workspace 1, and messaging app in workspace 10.
I know this isn't the best solution, but behind crazy-hidden settings, it is possible to get a pretty decent solution for window management on macOS. Ohh also, I use Amethyst sometimes, for i3wm-like window layouts, and it allows you to set shortcuts to move apps from one workspace.
I agree. There's so many cool things to do in this space, and so many unique ways to achieve them. We're excited to be here, and would love to chat sometime as well!