Forgot your password?
typodupeerror

Comment Lead in ancient cables Re:Not so fast (Score 3, Interesting) 34

I think AT&T (pre-1984) and the "Baby Bells" (1984 on) stopped putting lead shielding around copper cables in the 1970s or the early 1980s.

Legacy Lead-Sheathed Telecommunications Cables: Status and Issues for Congress is a report from 2023 that says

AT&T estimated that lead-sheathed cables represent less than 10% of its copper cable footprint of roughly 2 million miles. Verizon also reported that lead-sheathed cables make up a small percentage of its copper network

The report is light on details though. It's also not clear what part of the modern AT&T overlaps with the pre-1984-breakup version of AT&T.

Comment caused by friction or by water drops "rolling"? (Score 1) 38

My guesstimate is that water drops, held together by surface tension, primarily roll across the surfaces accumulating charge. IOW the charge accumulation is not a result of friction (it's not "triboelectric") - the droplet acts like the belt in a Van de Graaf generator: https://en.wikipedia.org/wiki/... So rain drops "roll like a ball" or "roll like a belt" (flattened ball), picking up charge at the front and depositing it at the rear of their path. When they fall off the edge of a surface, they carry any accumulated charge with them to any surface they strike e.g., a sheet of galvanized metal below.

Comment Re:Good on the governor! (Score 5, Interesting) 49

Then my wife mentioned that perhaps he's concerned about his own comings and goings being tracked...

He's more concerned with trying to explain away his diverting of $10 million obligated to pay for health insurance for poor kids that inexplicably went to two PACs then the Republican Party of Florida, all without anyone knowing who diverted the funds, including the people who were charged with managing the funds.

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 Need higher quality code not more tech debt (Score 2) 119

Like for example Bill Atkinson's famous productive -2000 lines: https://www.folklore.org/Negat...

For decades I've been suggesting on-and-off that a big problem is too many commercial programmers writing too much code and making too much work for each other with an endless proliferation adhoc interfaces, each a new "standard".

As an egregious example, years ago I read somewhere that Microsoft Office embeds like six entirely different virtual machines. Maybe it has improved since with the CLR?

Except for proprietary competitive forces, how many spreadsheets, compilers, VMs, email clients, word processors, and databases do we really need? Even in the realm of games, how many game engines do we need? Granted, game content may be a different story, but even there how many low-to-medium-quality games do we need?

The same is true to an extent with the entire internet. How many low-to-medium-quality comments do we need to wade through on various topics?

Imagine if everyone was using, say, (optionally-typed) Scheme with a great set of libraries to write everything (including with "org mode" in a Scheme-powered emacs-like multi-tool with a calendar etc), and there was just no "JSON" or "JavaScript" or "XML" or "Office-compatible adhoc file formats" or even "C" or "Rust". Not saying that an optionally-typed Scheme is the best choice, but what a different computing world to imagine. Guess my Symbolics 3600 Lisp machine experience in the 1980s spoiled me. :-) And I have to admit that TypeScript on widespread Scheme-inspired JavaScript VMs with WebAssembly has moved the computing world a lot in that direction with pros and cons.

I know an obvious objection (as with Linux's endless front-end and distributions) is about choice, but at some point there is a tyranny of excessive choice, like "twisty little passage ways all alike".
https://en.wikipedia.org/wiki/...
        "The Paradox of Choice - Why More Is Less is a book about overchoice written by American psychologist Barry Schwartz and first published in 2004 by Harper Perennial. In the book, Schwartz argues that eliminating consumer choices can greatly reduce anxiety for shoppers. The book analyzes the behavior of different types of people (in particular, maximizers and satisficers). This book argues that the dramatic explosion in choice--from the mundane to the profound challenges of balancing career, family, and individual needs--has paradoxically become a problem instead of a solution and how our obsession with choice encourages us to seek that which makes us feel worse."

I have no problem with people writing personal code for fun or learning or personal growth (which I highly recommend) -- the same way a person may play the piano as a hobby without expecting every time they play a tune the result needs to become a packaged commercial musical product.

The main thing I think about these days is how to have a much simpler tech ecosystem. Including for this reason outlined by Rich Hickey (author of Clojure) in "Simple Made Easy":
https://www.infoq.com/presenta...
====
Rich Hickey emphasizes simplicity's virtues over easiness', showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.

We should aim for simplicity because simplicity is a prerequisite for reliability.

Simple is often erroneously mistaken for easy. "Easy" means "to be at hand", "to be approachable".

"Simple" is the opposite of "complex" which means "being intertwined", "being tied together". Simple != easy.

What matters in software is: does the software do what is supposed to do? Is it of high quality? Can we rely on it? Can problems be fixed along the way? Can requirements change over time? The answers to these questions is what matters in writing software not the look and feel of the experience writing the code or the cultural implications of it.

The benefits of simplicity are: ease of understanding, ease of change, ease of debugging, flexibility.

Complex constructs: State, Object, Methods, Syntax, Inheritance, Switch/matching, Vars, Imperative loops, Actors, ORM, Conditionals.

Simple constructs: Values, Functions, Namespaces, Data, Polymorphism, Managed refs, Set functions, Queues, Declarative data manipulation, Rules, Consistency.

Build simple systems by:
* Abstracting - design by answering questions related to what, who, when, where, why, and how.
* Choosing constructs that generate simple artifacts.
* Simplify by encapsulation.
====

Or, as a joke:
"Weinberg's Law: If builders built buildings the way (current-AI-enhanced-HR-staffer) programmers wrote programs, then the first woodpecker that came along would destroy civilization."
https://quoteinvestigator.com/...

Comment stickmen in production can be okay (Score 2) 119

Look at the xkcd comic. In most* cases, important thing - the thing that makes xkcd xkcd - is the dialog. The drawing is literally a bunch of stick figures.

Coding can be similar. Parts of your code can be boring simplistic things that are the code-equivalent of stick figures. But if you want anyone but your "proud family" to appreciate it, it better do something interesting.

* the xkcd fans reading this - and that will be most of you - know there fantastic exceptions where the artwork is, well, fantastic

Comment Make the theif regret it (Score 2) 34

Bring a laptop that displays a GOATSE or other "MY EYES, THEY BURN, MAKE IT STOP" image if you power it on without pressing "magic keys" that enable a normal boot.

If you are worried about people stealing things for the value of the parts, equip it with hardware-self-destruct that goes off when the cover is removed (but have some way to deactivate it in case you need to remove the cover).

I see a future where travelers going to high-risk areas use laptops with everything soldered onto the motherboard AND where the motherboard won't work unless a specific device is within radio range or plugged in. Think Apple-iPhone-style "parts paring" but for laptops, and one part can go in your pocket.

Comment I "created" BIGNUM lines of assembly (Score 5, Insightful) 119

from SMALLNUM lines of C and pre-processor code.

When it works well, AI-generated code is almost* just raising things to a higher level of abstraction.

* if only it were just that. Unfortunately, "vibe coding" gives you unreproducible/non-deterministic output, merely raising to the next level of abstraction should give you consistent output. It would be like compiling C code where your headers and libraries change out from under you unpredictably and with every build.

Slashdot Top Deals

One way to make your old car run better is to look up the price of a new model.

Working...