Voted in EU Parliamentary elections, for what it's worth. One more against the Farage crowd.

Irrigation bars added. That's all the data I have now exposed on the web UI. Pirrigator is nearly complete!

Grouped my sensor data and valves into zones. Just need a background shading to show the irrigation events...

Growing arms and legs and crossed the 2,000 lines of code point today. I wrote a full scheduler for multiplexed repeated events so I can basically add water once a day. Well the point was to learn Rust, right?

github.com/neilgall/pirrigator

Things just got real. Living things depend on the quality of my code (and hardware design). I didn't anticipate the sense of responsibility that would come with this moment 😳

No self respecting DIY project is complete without a 3D printed Raspberry Pi Camera case and mount!

Neil Gall boosted
Am I a functional programming fangirl? Yeah. Imperative programming has its uses, but IMO the more functional programming can encroach on them the better -- it's just a better programming paradigm in my eyes and if it can be optimised effectively to the point where it can be used for performance in places where imperative programming is now, all the better honestly

#GameOfThrones #spoiler Show more

Neil Gall boosted
All possible programs were executed once in 1992 at an Intel factory and since then x86 processors just do lookups
Neil Gall boosted

My greenhouse Raspberry Pi now records sensor data to sqlite, serves it over a JSON API and also serves a WebAssembly front end to render it as graphs.

100% Rust code from the hardware reading to the SVG drawing.

Absolutely epic bug hunt lasted all day yesterday until nearly 9pm then most of today. Submitted a PR about 5pm with the fix and a bunch of unit tests.

The cause? An incorrect hash function.

Just been round to set up a friend's Epson printer for WiFi printing. What a complete and utter shitshow. It's like they went out of their way to make it hard. Then when it finally works the software lies and says it failed. A cynic would suggest it's a deliberate policy to keep "certified Epson support engineers" in work.

After a few teething issues all hardware and the core software for my raspberry pi tomato irrigator are now working. It's recording weather and moisture data from a trio of small plant pots so I can get an idea of how the actual irrigation logic needs to behave.

I can't collect all that data without drawing pretty graphs however! Thanks to the SVG example at github.com/utkarshkukreti/drac I'mnow planning on building the front end in Rust too and serving it all directly from the raspberry pi.

I'm also making headway with writing Rust code. The mixture of low and high level is a bit weird, but I'm getting there. The Python/Flask stuff is fine for prototyping and experiments but I want it all in native binary eventually.

My greenhouse is on the internet! Solar powered Raspberry Pi (with car battery backup for nighttime) with a temperature/humidity/pressure sensor. For fun I exposed the current data via a Flask server and wrote an Alexa skill to query it. I can say "alexa, ask greenhouse for the temperature"

Moisture sensors also working (for the tomato plants to go in soon) but I've done something wrong in my solenoid valve wiring so no irrigation control yet. Progress!

Neil Gall boosted

@cstanhope I've yet to be convinced software development is an engineering discipline at all. Does not seem to be sufficiently based on science and empiricism.

Certainly, if cars, houses, and bridges were built like programmers hack up software, we'd all be dead. Engines would explode, houses would collapse, and occasionally there would be international celebrations when someone crossed a bridge without dying.

Neil Gall boosted

58 bytes of css to look great nearly everywhere:

main {
max-width: 38rem;
padding: 2rem;
margin: auto;
}

jrl.ninja/etc/1/

Show more
Functional Café

functional.cafe is an instance for people interested in functional programming and languages.