Forgot your password?
typodupeerror

Comment Re: Possibly (Score 1) 153

I said "route." It's pretty clear where you go if I answer that question. It's also irrelevant to the hypocrisy I was talking about.

But since you're so sincerely interested in what I think, here:

I don't think it's a good idea for anybody to be able to spend money to influence elections.

I also think it's a bad thing for countries to invade their neighbours, sponsor coups, rig voting and have official foreign propaganda organs.

Comment Re:Looking forward to this (Score 1) 239

Sure. There are lots of reasons you'd keep something like a nuke, or anything spinning up a big hunk of very expensive metal, running at a constant rate. It's also a pain in the ass to get the control room guys to put their doughnuts down. As opposed to something like solar where you just... do nothing.

Comment Re:Looking forward to this (Score 1) 239

Nuclear plants can idle. They can do it pretty fast too, and they certainly don't "blow up" when they do. The problem can be how long it takes them to ramp up again afterward. That's not really THIS problem either though. Nuclear reactors produce heat, not electricity. You can take some of that heat and make electricity from it, but you can also not do that.

Negative electricity prices are the result of things like fixed price contracts, the need to pay workers, leases, etc., and accounting that treats operating at a loss for a short period as "negative."

Comment Re:Don't forget a battery (Score 1) 239

Except these are never going to totally meet your daytime demand (max 1.2 kW). It generates the most power when your air conditioner is working hardest (we are talking about California here). They're appealing because you don't have to fuss with a battery and inverter and all that, you take it out of the box, clamp it to the balcony railing, plug it in and done. If you really want to completely offset your total power use you get a real system.

Comment Re:Dumb crawlers require dumb solutions (Score 1) 43

To be honest that was actually my first theory, since the bots didn't seem interested in exploring the rest of the domain. I suppose there's no way to know for certain. I concluded that it must be an imbecile's attempt at harvesting, though, because the queries weren't really exploring the string space in any useful way. Here's a sample:

"GET /index?author=15&go=Search&id=48&name_restrict=1&q&re&results_&results_pagenum=2980 HTTP/1.1"
"GET /index?author=2&go=Search&group=0&group_restrict=1&id=48&name_restrict=1&q&results_pagenum=5440&template=41&type HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&results_pagenum=33500&templat HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&results_pagenum=32640&templ HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&res&results_page&results_pagenum=39300 HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&results_&results_pa&results_pagenum=12340 HTTP/1.1"
"GET /index?author=2&go=Search&group=0&group_restrict=1&id=48&name_r&res&results_pagenum=6100 HTTP/1.1"
"GET /index?author=2&go=Search&group=0&group_restrict=1&id=48&name_restrict=1&q&results_pagenum=2920&te HTTP/1.1"
"GET /index?author=15&go=Search&id=48&nam&results_&results_pagenum=17940 HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&results&results_pag&results_pagenu&results_pagenum=37720 HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&results_pagenum=9360&template=41&type_r HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_restrict=1&q&r&results_pagenum=28040 HTTP/1.1"
"GET /index?author=15&go=Search&id=48&name_&results_pag&results_pagenum=10400 HTTP/1.1"

The only thing this is fuzzing is the query string parser. It's not testing the limits of string buffers, it's not using interesting characters, it's just brain-damaged. The fact that it's also fetching different page numbers shows it's trying to follow page links and failing badly at doing so.

The site gets plenty of sniffing from garden-variety pests. e.g. this half-hearted attempt to find a framework or two that I don't have:

"POST /__rsc HTTP/1.1"
"POST /api/auth/session HTTP/1.1"
"POST /api/auth HTTP/1.1"
"POST /__nextjs_action HTTP/1.1"
"POST /.action HTTP/1.1"
"POST /_rsc HTTP/1.1"
"POST /api/auth/callback HTTP/1.1"
"POST /_middleware HTTP/1.1"
"POST / HTTP/1.1"

(of course, none of these URLs exist other than /, and you definitely can't just POST to it)

All this said... I've seen that spammers regularly misconfigure their tools, they'll try to register accounts with names like #[X:\LISTS\NAMES.TXT] and it only makes sense that some other cybercriminals trying to get rich quick have a similar lack of interest in programming shit correctly. Generally people don't turn to script kiddie shit if they have a personality conducive to putting in an honest hard day's work perfecting their craft.

Comment context limits (Score 3, Interesting) 126

I'm sure it's at least partly a pebkac error on my part, but all of the coding agents I've ever worked with want to write an entire new function call for every single line of code. Even when that exact function with a different name already exists, often in the same file, written by the agent in the same session. Even when they can recognize existing functions, they almost never modify existing functions to take an extra argument when that would be appropriate, but make a new one. And when a function does take multiple arguments, they want to write a wrapper function for every invocation. Instead of calling `foo(a, b)`, it's always `def foo_b(a): return foo(a, b)`. Then when that bloats to infinity, it will start forgetting entire modules exist and rewriting them. DRY is a completely alien concept; all data structures by default will be defined three times, once for the database, once for the API, and once for live data. So yeah, writing 100k LOC doesn't take long at all if you're willing to ignore all good practices and don't care that it should have been maybe 5000.

Comment Dumb crawlers require dumb solutions (Score 5, Interesting) 43

I had a problem where AI scrapers were absolutely DETERMINED to fish out every possible query string from a search results page. Almost all of the query strings they tried were invalid due to shitty and dysfunctional string substitution. "&page=100" wouldn't be followed by "&page=101", it would be followed by "&pag&pag=1010" or something even more insanely half-baked, until the query strings were like 100+ characters long. It was the technological equivalent of watching HIV mutate in real time.

But the insane thing was that, aside from page number, they were always requesting info about the same other criteria: filtered by the same user, the same page type, and with no text string. So I just took those particular values and started banning logged-out users who requested that combination of criteria.

I figured I'd need to change my tactics in a couple of days once the botnet got bored of that particular page and moved on to requesting bogus entries for another user.

MariaDB> select count(*) from ip_bans;
+----------+
| count(*) |
+----------+
| 671671 |
+----------+

It hasn't.

Slashdot Top Deals

Vax Vobiscum

Working...