
Lock Him Up.
March 25th, 2025So, after repeatedly chanting “Lock her up” because Hillary ran her own email server, Trump’s team has been caught using Signal for their war planning – and including journalists in the distribution list. The easy thing to say here is “Lock him up”. Trump should start every rally from now on with “Lock me up! Lock me up!”. It would be the appropraite thing to do in any case.. we can clarly see from $TRUMP that he’s totally ignoring the emoluments clause.
It’s scary, living under a rapidly deteriorating fascist dictatorship. It’s even scarier because so many right wingers are convincing themselves that it’s not really what’s going on. Partisan loyalty apparently includes ignoring bullying, bad behavior, ignoring the rule of law, etc.
I worry about leaving the country- I have plans to visit Iceland this summer, but Robert Reich points out Trump has disappeared people on their way into the country. Part of the problem here is that apparently there are large number of people just as awful as Trump and quite willing – even eager – to do his bidding and participate in evil.

Victron Energy munin plugins for Cerbo GX monitoring
February 28th, 2025Charger amps
#!/usr/bin/perluse Device::Modbus::TCP::Client;
my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX ip or name here’
);$config = 1 if(“config” ~~ @ARGV);
$chargers = [ 223, 224, 226, 238, 239 ]; # devicesif($config) {
print “graph_title charger amps\n”;
print “graph_category victron\n”;
foreach $charger (@{$chargers}) {
print $charger . “_amps.label Amps\n”;
}
} else {
foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 772, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
print $charger . “_amps.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;}
}sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}
Charger overall power
#!/usr/bin/perluse Device::Modbus::TCP::Client;
my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX ip or name here’
);$config = 1 if(“config” ~~ @ARGV);
$chargers = [ 223, 224, 226, 238, 239 ]; # adjust with your actual list. See Settings -> Services -> Modbus for a list
if($config) {
print “graph_title charger total watts\n”;
print “graph_category victron\n”;
print “total_watts.label watts\n”;
} else {
my $total = 0;foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 789, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
$total += uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10;
}print “total_watts.value $total\n”;
}sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}
Charger individual power
#!/usr/bin/perluse Device::Modbus::TCP::Client;
my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX name or IP here’
);$config = 1 if(“config” ~~ @ARGV);
$chargers = [ 223, 224, 226, 238, 239 ];
if($config) {
print “graph_title charger watts\n”;
print “graph_category victron\n”;
foreach $charger (@{$chargers}) {
print $charger . “_watts.label Amps\n”;
}
} else {
foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 789, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
print $charger . “_watts.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;}
}sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}
inverter state of charge
#!/usr/bin/perluse Device::Modbus::TCP::Client;
my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX name or IP here’
);$config = 1 if(“config” ~~ @ARGV);
my $req = $client->read_holding_registers( unit => 227, address => 30, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;if($config) {
print “graph_title state of charge\n”;
print “graph_category victron\n”;
print “inv_soc.label SOC\n”;
} else {
print “inv_soc.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;
}sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}
Inverter bus voltage
#!/usr/bin/perl
use Device::Modbus::TCP::Client;my $client = Device::Modbus::TCP::Client->new(
host => ‘your GX device goes here’
);$config = 1 if(“config” ~~ @ARGV);
my $req = $client->read_holding_registers( unit => 227, address => 26, quantity => 2 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;if($config) {
print “graph_title battery volts\n”;
print “graph_category victron\n”;
print “inv_volts.label Volts\n”;
} else {
print “inv_volts.value ” . @{$response->{‘message’}->{‘values’}}[0] /100 . “\n”;
}

Allen & Heath – getting static address off Dante card
February 28th, 2025So, Dante should improve their controller so it is possible to reset the IP address of a card that isn’t in the current subnet – I’ll send them a email about that. But, for now, should you have a Dante card that you can’t talk to because it’s not on the same subnet you are, what you need to do in windows is get a newer version of the Dante client (4.4.2.2 or later), then set the subnet on the ethernet interface to be the same as your Dante controller’s subnet (which you will see in the network view or if you click on the red device in the device view). Now, you’ll have to guess at subnet mask, or use something like wireshark to see what broadcast address is being hit.
Once you’ve done all this, you should be able to set the controller back to DHCP.

Musk is a moron, and DOGE is a terrible cryptocurrency
February 2nd, 2025So, one thing you can safely say about DOGE, the cryptocurrency. It is headed for zero. It has a *unlimited supply*, with a fairly high mint rate. It was originally intended as a joke.
One thing you can say about DOGE, the government agency, is it is also a terrible idea. Musk is the poster child for Dunning-Kruger – we’re talking about the guy who thought you could have a 600 mile long evacuated above ground tunnel, among other things. He also doesn’t understand that the more people you make homeless and hungry, the less wealth we as a species have. DOGE is also likely to destroy many useful functions that the government performs.. protecting our bank accounts, protecting us against bad loans, protecting us from e coli, protecting us from predatory corporations who otherwise would destroy all the land and poison all the water to make a few bucks.
Musk himself has says there will be some hardship. I vote all Musk’s money be taken away and he be forced to live with the hardships he is causing.

Do not trust Google
January 29th, 2025I realize it’s going to take me some work to get my email all off of Google, not to mention all my drive documents and all the other things I’ve come to trust them for.
However, their choice to change the Gulf Of Mexico to the Gulf OF America indicates their willingness to kowtow to our current, obviously evil administration. The message is clear. They’ll probably give out information about you happily. They cannot be trusted.

Robert Reich and disturbing thoughts
January 29th, 2025So, I’m having a very hard time taking Robert Reich seriously. He’s talking about oligarchy, but he’s clearly got no shortage of money and he does things like posting things on “How to stop trump” – that are behind a paywall. If making money is more important to him then stopping Trump, clearly he doesn’t really think Trump is the threat that he claims him to be.
In other, more disturbing thoughts, clearly Trump and the republicans do not plan on there being any more elections – or if there will be any, they will be heavily rigged. Otherwise they’d understand that we can now do everything they are doing.. that every check and balance they have smashed we can now ignore as well.

Dystopian nightmare
January 27th, 2025So, I hear that Trump fired the federal judges that were investigating them. The president *should not have the power to fire judges*. The president should *be investigated for doing this*. Of course, we all know Trump belongs in the slammer and that the Republicans have become the most epicly corrupt party in American history – helped with a a nonstop lies and propaganda news network (Fox)

Republicans demonstrating their moronic tendencies
January 27th, 2025So, Trump is talking about ending FEMA in favor of having individual states have their own emergency management systems. Now, this clearly is going to lead to a much less efficient system, because most of the time most states don’t need emergency management but when they do, they’re going to be in the middle of fires, hurricanes, etc.
Bear this in mind, Republicans.. as your house burns or is wiped away by hurricanes or whatever.. and it takes far longer than it used to to get help, and the help is less effective and less coordinated.. Trump is making things worse, because that’s what Republicans do, especially lately.
My hope is that all the many, many MAGA-ites being hurt by Dear Leader will remember getting their face eaten and in the future vote against right wing stupidity. Of course, odds are no, because Fox will continue to hold them in thrall.

Opposite of gratitude directed at Fender
January 22nd, 2025Look.. guys.. let me spell it out for you. STOP ENGINEERING EVERY LAST PENNY OUT OF THE PRODUCT! You’re engineering away the shine, the reliability, the worth. Money isn’t worth it. You are selling your soul so your boss can drive a lambo that at some point will also be worthless because *their* engineers will make the same mistake.
Seriously.. this is a *guitar amp*, not a piece of bespoke stereo equipment that’s going to sit on the shelf somewhere. It’s going to get taken to bars, knocked over, have it’s instrument cable tripped over.. and that’s the world I *want* to live in. The one where all that happens, and the thing still works.
STOP IT WITH THE PLASTIC PCB 1/4″ FOR THE INSTRUMENT INPUT. I cannot POSSIBLY state this more clearly. Use a pigtail and a switchcraft jack. And a lock washer or two nuts while you’re at it.