dgriffith

joined 11 months ago
[–] dgriffith@aussie.zone 3 points 2 days ago (1 children)

There's a lot to be said for "http://yourISP.com/~username" being available 24/7 at no particular effort to you.

[–] dgriffith@aussie.zone 5 points 3 days ago* (last edited 3 days ago) (1 children)

As if the software was as permanent as the hardware lol

There's no guarantee that the software will ever be updated to something that the user finds usable though.

Google could just one day go "meh, we don't think folding displays are where we want to be right now", and - ta-da! - you're left with a folding doorstop and Google's got yet another entry on the "killed by Google" list.

[–] dgriffith@aussie.zone 1 points 4 days ago* (last edited 4 days ago)

As another poster has mentioned, M-Discs are written using a Blu-ray writer and are good for a few hundred years, in theory.

[–] dgriffith@aussie.zone 2 points 4 days ago (3 children)

Blu-Ray USB drive and M-Discs is about the best you can get at present. Keep the drive unplugged when not in use, it'll probably last 10-20 years in storage.

Seeing as there hasn't been much advance past Blu-ray, keep an eye out for something useful to replace it in the future, or at least get another drive when you notice them becoming scarce.

[–] dgriffith@aussie.zone 13 points 5 days ago* (last edited 5 days ago) (2 children)

90% of users when they are presented with the UAC popup when they do something:

"Yes yes whateverrr"

[–] dgriffith@aussie.zone 32 points 6 days ago (5 children)

Never understood why smartphones are so super bright by default.

Because they have to compete with 50k lux outside and then scale to 600 lux indoors, then down to just to a few lux in a darkened room.

Perhaps the brightness slider needs to be more logarithmic so you can slide from 0.001 percent to 100 percent more easily.

[–] dgriffith@aussie.zone 1 points 6 days ago

I've got photos in Flickr dating from 1999 onwards. Ten thousand or so of them, and a couple of the early ones are now corrupted.

But they are my "other backup" for Google photos so I don't mind too much. I also have a USB Blu-ray drive at home that I use to periodically burn M-Discs that I hand out to a few relatives.

That's about as good as I can conveniently do for backup, and it's probably better than the single-point-of-failure box of negatives that my parents have in their cupboard.

[–] dgriffith@aussie.zone 8 points 6 days ago (1 children)

when they're powered down.

There's no periodic cell refresh in flash memory like there is in DRAM. When USB sticks are plugged in, all you are doing is powering up the flash chip and interface ICs.

You'd have to read a block then write it back to actually refresh the stored charges in the cells.

[–] dgriffith@aussie.zone 1 points 1 week ago

I don't think there's anything commercially available that can do it.

However, as an experiment, you could:

  • Get a group of photos from a burst shot
  • Encode them as individual frames using a modern video codec using, eg VLC.
  • See what kind of file size you get with the resulting video output.
  • See what artifacts are introduced when you play with encoder settings.

You could probably/eventually script this kind of operation if you have software that can automatically identify and group images.

[–] dgriffith@aussie.zone 2 points 2 weeks ago

They need to learn how to use their tools better. Winscp does all that transparently for you if you press F4 on a file on a remote system. Or maybe they did and you just didn't see it.....

It's quite a handy function when you're diving through endless layers of directories on a remote box looking for one config file amongst many.

[–] dgriffith@aussie.zone 8 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Most times what I get when asking it coding questions is a half-baked response that has a logic error or five in it.

Once I query it about one of those errors it replies with, "You're right, X should be Y because of (technical reason Z). Here's the updated code that fixes it".

It will then give me some code that does actually work, but does dumb things, like recalculating complex but static values inside a loop. When I ask if there's any performance improvements it can do, suddenly it's full of helpful ways to improve the code that can make it run 10 to 100 times faster and fix those issues. Apparently if I want performant code, I have to explicitly ask for it.

For some things it will offer solutions that don't solve the issue that I raise, no matter how many different ways I phrase the issue and try and coax it towards a solution. At that point, it basically can't, and it gets bogged down to minor alterations that don't really achieve anything.

Sometimes when it hits that point I can say "start again, and use (this methodology)" and it will suddenly hit upon a solution that's workable.

So basically, right now it's good for regurgitating some statistically plausible information that can be further refined with a couple of good questions from your side.

Of course, for that to work you have to know the domain you're working in fairly well already otherwise you're shit out of luck.

[–] dgriffith@aussie.zone 1 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

If library devs do versioning correctly, and you pin to major versions like "1.*" instead of just the "anything goes" of "*", this should not happen.

Your unit tests should catch regressions, if you have enough unit tests. And of course you do, because we're all operating in the dream world of, "I am great and everyone else is shit".

 

Hi all,

In an effort to liven up this community, I'll post this project I'm working on.

I'm building a solar hot water controller for my house. The collector is on the roof of a three-storey building, it is linked to a storage tank on the ground floor. A circulating pump passes water from the tank to the collectors and back again when a temperature sensor on the outlet of the collector registers a warm enough temperature.

The current controller does not understand that there is 15 metres of copper piping to pump water through and cycles the circulating pump in short bursts, resulting in the hot water at the collector cooling considerably by the time it reaches the tank (even though the pipes are insulated). The goal of my project is to read the sensor and drive the pump in a way to minimise these heat losses. Basically instead of trying to maintain a consistent collector output temp with slow constant pulsed operation of the pump, I'll first try pumping the entire volume of moderately hot water from the top half of the collector in one go back to the tank and then waiting until the temperature rises again.

I am using an Adafruit PyPortal Titano as the controller, running circuitpython. For I/O I am using a generic ebay PCF8591 board, which provides 4 analog input and a single analog output over an I2C bus. This is inserted into a motherboard that provides pullup resistors for the analog inputs and an optocoupled zero crossing SCR driver + SCR to drive the (thankfully low power) circulating pump. Board design is my own, design is rather critical as mains supply in my country is 240V.

The original sensors are simple NTC thermistors, one at the bottom of the tank, and one at the top of the collector. I have also added 4 other Dallas 1-wire sensors to measure temperatures at the top of tank, ambient, tank inlet and collector pump inlet which is 1/3rd of the way up the tank. I have a duplicate of the onewire sensors already on the hot water tank using a different adafruit board and circuitpython. Their readings are currently uploaded to my own IOT server and I can plot the current system's performance, and I intend to do the same thing with this board.

The current performance is fairly dismal, a very small bump of perhaps 0.5 - 1 deg C in the normally 55 degree C tank temperature around 12pm to 1pm, and this is in Australia in hot spring weather of 28-32 degrees C.(There's some inaccuracy of the tank temperatures, the sensors aren't really bonded to the tank in any meaningful way, so tank temp is probably a little warmer than this. But I'm looking for relative temperature increases anyway)

Right now , the hardware is all together and functional, and is driving a 13W LED downlight as a test, and I can read the onewire temp sensors, read an analog voltage on the PCF8591 board (which will go to the NTC sensors), and I'm pulsing the pump output proportionally from 0-100 percent drive on a 30 second duty cycle, so that a pump drive function can simply say "run the pump at 70 percent" and you'll get 21 seconds on, 9 seconds off. Duty cycle time is adjustable, so I might lower it a bit to 15 or 10 seconds.

The next step is to try it on the circulating pump (which is quite an inductive load, even if it is only 20 watts), and start working on an algorithm that reads the sensors and maximises water temperature back to the tank. There are a few safety features that I'll put in there, such as a "fault mode" to drive the pump at a fixed rate if there is a sensor failure, and a "night cool" mode if the hot water tank is severely over temperature to circulate hot water to the collector at night to cool it. There are the usual overtemp/overpressure relief valves in the system already.

All this is going in a case with a clear hinged cover on the front so I can open it and poke the Titano's touchscreen to do some things.

Right now I am away from home from work, so my replies might be a bit sporadic, but I'll try to get back to any questions soon-ish.

A few photos for your viewing pleasure:

The I/O and mainboard plus a 5V power supply mounted up:

The front of the panel, showing the Pyportal:

Thingsboard display showing readings from the current system:

Mainboard PCB design and construction via EasyEDA:

view more: next ›