stacking, aligning, delivering No images? Click here Berlin in OctoberNerves workshop in BerlinWant to connect with people before the conference starts? Want to try Nerves? Want to just hack on shit with other devs? Do it. The day before the conference and we will have a bunch of cool community folks there that you can talk to. Frank and Jon of Nerves, lostkobrakai of .. everywhere, Cocoa who does all the C++ bindings for OpenCV, TFLite and more. And probably more awesome folks :) We need to know who is coming for planning the thing. Please sign up here. Assemble the FleetMy talk at Code BEAM Berlin is called "The Nerves Community Fleet" and I already have a bunch of people offering their devices. I need as many as possible. Your device can be at home, remote. You will get firmware before Code BEAM. I don't need devices handed to me in Berlin :) The more devices, the cooler the demo. Please help me out by enlisting your devices for service (if the page is blank, disable adblocker for a minute, yes that sucks): Supported byThey offer the most convenient and capable Object Storage. You get CDN performance baked in. Generous free allowance. Especially on Fly.io.
New blog post on TigrisI wrote up this blog post / Livebook for Tigris on how to do their eager and lazy caching. Please give it a whirl :) Parts to a WholeAs I go into Nerves more and more I see this powerful potential that is not fully realized. I think Frank (and Justin when he was involved) saw this very clearly as well. The integration of the various layers and parts that are necessary and how the whole becomes the thing you pitch and as people check the parts they are reassured. In some way, an integrated whole is very much the Rails approach. Opinionated. Conventions. Delightful defaults. Lots of capability right out of the box. I think a lot of JS frameworks try to do stuff like this too but any time I start looking under the hood I have nightmares and flee because I don't think the parts are sound or reassuring. It feels built on quicksand. Elixir has been distinct here I think where things have been stacked up for a long time. Erlang, then Elixir, then Phoenix, plus Phoenix Channels, leading to Phoenix LiveView. And similarly in other ends we have Ecto which needed to be there for Oban to come around. There are many parts needed for a full-fledged system and Elixir has stacked those up into a compelling whole. The current edge they are building is in AI/ML and whatever you think about that space and all the hype I think their approach is sensible and practical. Audacious. But practical. Nerves has stacked up the fundamentals of embedded linux development. And it gets the whole Elixir package to leverage. Then there have been innovations all of Nerves' own making such as NervesHub where you have fleet management and efficient binary diffed over-the-air updates just as an extension of the stack of conventions Nerves has chosen. To fully realize it I think there are more steps to take. Currently there isn't a good story for getting Phoenix into Nerves without following a tutorial, not that I know anyway. And the UI framework story has been off-and-on. People have had high hopes for Scenic. Super cool project. Also not moving very fast. Needs a lot of work to be a default for everyone. Here I think we can get Flutter out as an option soon. And the Phoenix story is improved by offering a kiosk. A better kiosk is quite close to release I reckon. So this would mean you could get an immediate UI on Nerves which is fantastic. The hardware story is tricky. Because if you want an IoT prototype devices with a UI you probably don't want it on an HDMI monitor like a regular computer. You want to feel like you are using a special device. Here there is also the devision between a professional producing a product prototype and hobbyist experimenting and having fun. The best option I know off right now for a professional is something I just ordered and am playing with. The Reterminal DM. A Raspberry Pi CM4-based thing, cast aluminium, powder-coated, easy enough to work with and a german gentleman has shared a working Nerves system for it. I think a hobbyist option is the Clockwork Pi uConsole but I haven't gotten it fully working yet. There is a bad display-driver where their original patch doesn't work on linux 6+. I see a future where doing Nerves is essentially just setting up your project locally on your host. Futzing around with UI and DB things as per usual software development while waiting for your hardware to arrive. Once you get hardware you do the song and dance to get it on the SD card or EMMC, once. From there on Nerves will let you push firmware with immense convenience. And you should still be able to do on-host development. Add a key and your device hops onto your NervesHub instance for fleet management. This should be the smoothest an IoT development onboarding experience can be. Actually no. Doing a deal with Seeed to offer purchasing pre-flashed ReTerminal units would be smoother because that would remove a lot of faffing about with initial flashing. As you can tell there are always more edges to file away. I think Nerves has already filed away a lot of initial concerns that you can approach and care about when you have to instead of up front. I think there is more we can do to make this stuff much more approachable and really push the iteration cycle time way down. I thought full-stack Elixir with some AI/ML on top was a deep stack. With Nerves underneath you've achieved new levels of verticality. The important part is that all the parts are sound and fit well, then it won't wobble or tip over :) Do you have questions about Nerves or embedded? I can try to answer :) You can reach me on the Fediverse where I'm @lawik@fosstodon.org or by responding to this email to lars@underjord.io. Thank you for reading. I appreciate it. |