I've long postulated that JavaScript will make sense of any sequence of characters and find a meaning, possibly making one up on the fly.

cat /dev/random | node -

Breakfast disaster. Contrary to French opinion, one egg is not un œuf!

Popped into bike shop next to office for a quick look. Electric has been taking over for a while but electric road bikes are new to me. Isn't the exercise and efficiency the whole point?

Electric commuting bikes - obvious. Opens up at least twice the distance for cycle commuting. Cheaper and faster than city driving or public transport.

Electric mountain bikes - can just about buy the argument. Go back up the hill more times each day for more downhill riding.

Electric road bikes - 🤪

I'm so tired of stupid bugs caused by the whole "open for extension" OO thing that makes people believe a bunch of function signatures constitutes a full and unambiguous contract, so all you have to do is "program to the interface" then you can plug any old shit together at runtime. See the entire Java ecosystem for examples.

No. Until we can come up with full and unambiguous contract specifications you test specific configurations and that's what you allow in the wild. Like real engineering.

Two major problems have emerged with my Raspberry Pi irrigation system.

1. I'm powering the moisture sensors continuously rather than switching them on to take a reading periodically. This increases the power demand and causes the electrodes to corrode quickly.

2. The battery won't stay charged. I've tried a new battery and a bigger capacity solar panel. Maybe the cheap charge controller doesn't support a continuous load? Or my load is just much bigger than expected. See 1.

🤔

Neil Gall boosted

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 

If episode six doesn't open with Jaime and Cersei emerging from the rubble like Jake and Elwood Blues I'll be really disappointed.

Neil Gall boosted
All possible programs were executed once in 1992 at an Intel factory and since then x86 processors just do lookups
Show thread
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.

Show older
Functional Café

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!