Bonum Certa Men Certa

Techrights Coding Projects: Making the Web Light Again

A boatload of bytes that serve no purpose at all (99% of all the traffic sent from some Web sites)

Very bloated boat



Summary: Ongoing technical projects that improve access to information and better organise credible information preceded by a depressing overview regarding the health of the Web (it's unbelievably bloated)

OVER the past few months (since spring) we've been working hard on coding automation and improving the back end in various ways. More than 100 hours were spent on this and it puts us in a better position to grow in the long run and also improve uptime. Last year we left behind most US/USPTO coverage to better focus on the European Patent Office (EPO) and GNU/Linux -- a subject neglected here for nearly half a decade (more so after we had begun coverage of EPO scandals).



As readers may have noticed, in recent months we were able to produce more daily links (and more per day). About a month ago we reduced the volume of political coverage in these links. Journalism is waning and the quality of reporting -- not to mention sites -- is rapidly declining.

"As readers may have noticed, in recent months we were able to produce more daily links (and more per day)."To quote one of our guys, "looking at the insides of today's web sites has been one of the most depressing things I have experienced in recent decades. I underestimated the cruft in an earlier message. Probably 95% of the bytes transmitted between client and server have nothing to do with content. That's a truly rotten infrastructure upon which society is tottering."

We typically gather and curate news using RSS feed readers. These keep sites light and tidy. They help us survey the news without wrestling with clickbait, ads, and spam. It's the only way to keep up with quality while leaving out cruft and FUD (and Microsoft's googlebombing). A huge amount of effort goes into this and it takes a lot of time. It's all done manually.

"We typically gather and curate news using RSS feed readers. These keep sites light and tidy. They help us survey the news without wrestling with clickbait, ads, and spam.""I've been letting wget below run while I am mostly outside painting part of the house," said that guy, having chosen to survey/assess the above-stated problem. "It turns out that the idea that 95% of what web severs send is crap was too optimistic. I spidered the latest URL from each one of the unique sites sent in the links from January through July and measured the raw size for the individual pages and their prerequisites. Each article, including any duds and 404 messages, averaged 42 objects [3] per article. The median, however, was 22 objects. Many had hundreds of objects, not counting cookies or scripts that call in scripts.

"I measured disk space for each article, then I ran lynx over the same URLs to get the approximate size of the content. If one counts everything as content then the lynx output is on average 1% the size of the raw material. If I estimate that only 75% or 50% of the text rendered is actual content then that number obviously goes down proportionally.

"I suppose that means that 99% of the electricity used to push those bits around is wasted as well. By extension, it could also mean that 99% of the greenhouse gases produced by that electricity is produced for no reason.

"The results are not scientifically sound but satisfy my curiosity on the topic, for now.

"Eliminating the dud URLs will produce a much higher object count.

“The results are not scientifically sound but satisfy my curiosity on the topic, for now.”
      --Anonymous
"Using more mainstream sites and fewer tech blogs will drive up the article sizes greatly.

"The work is not peer reviewed or even properly planned. I just tried some spur of the minute checks on article sizes in the first way I could think of," said the guy. We covered this subject before in relation to JavaScript bloat and sites' simplicity, but here we have actual numbers to present.

"The numbers depend on the quality of the data," the guy added, "that is to say the selection of links and the culling the results of 404's, paywall messages, and cookie warnings and so on.

"As mentioned I just took the latest link from each of the sites I have bookmarked this year. That skews it towards lean tech blogs. Though some publishers which should know very much better are real pigs:




$ wget --continue --page-requisites --timeout=30 --directory-prefix=./test.a/ https://www.technologyreview.com/s/614079/what-is-geoengineering-and-why-should-you-care-climate-change-harvard/ . . .

$ lynx --dump https://www.technologyreview.com/s/614079/what-is-geoengineering-and-why-should-you-care-climate-change-harvard/ > test.b

$ du -bs ./test.? 2485779 ./test.a 35109 ./test.b



"Trimming some of the lines of cruft from the text version for that article, I get close to two orders of magnitude difference between the original edition versus the trimmed text edition:

$ du -bs ./test.?
2485779	./test.a
35109	./test.b
27147	./test.c


"Also the trimmed text edition is close to 75% the size of the automated text edition. So, at least for that article, the guess of 75% content may be about right. However, given the quick and dirty approach, of this survey, not much can be said conclusively except 1) there is a lot of waste, 2) there is an opportunity for someone to do an easy piece of research."

Based on links from 2019-08-08 and 2019-08-09, we get one set of results (extracted all URLs saved from January 2019 through July 2019; http and https only, eliminated PDF and other links to obviously non-html material). Technical appendices and footnotes are below for those wishing to explore further and reproduce.







+ this only retrieves the first layer of javascript, far from all of it + some site gave wget trouble, should have fiddled the agent string, --user-agent="" + too many sites respond without proper HTTP response headers, slows collection down intolerably + the pages themselves often contain many dead links + serial fetching is slow and because the sites are unique

$ find . -mindepth 1 -maxdepth 1 -type d -print | wc -l 91 $ find . -mindepth 1 -type f -print | wc -l 4171 which is an average of 78 objects per "article"

+ some sites were tech blogs with lean, hand-crafted HTML, mainstream sites are much heavier, so the above average is skewed towards being too light

Quantity and size of objects associated with articles, does not count cookies nor secondary scripts:

$ find . -mindepth 1 -type f -printf '%s\t%p\n' \ | sort -k1,1n -k2,2 \ | awk '$1>10{ sum+=$1; c++; s[c]=$1; n[c]=$2 } END{ printf "%10s\t%10s\n","Bytes","Measurement"; printf "%10d\tSMALLEST\n",s[1]; for (i in s){ if(i==int(c/2)){ printf "%10d\tMEDIAN SIZE\n",s[i]; } }; printf "%10d\tLARGEST\n",s[c]; printf "%10d\tAVG SIZE\n",sum/c; printf "%10d\tCOUNT\n",c; }'

Bytes File Size 13 SMALLEST 10056 MEDIAN SIZE 32035328 LARGEST 53643 AVG SIZE 38164 COUNT









Overall article size [1] including only the first layer of scripts,

Bytes Article Size 8442 SMALLEST 995476 MEDIAN 61097209 LARGEST 2319854 AVG 921 COUNT

Estimated content [2] size including links, headers, navigation text, etc:

+ deleted files with errors or warnings, probably a mistake as that skews the results for lynx higher

Bytes Article Size 929 SMALLEST 18782 MEDIAN 244311 LARGEST 23997 AVG 889 COUNT

+ lynx returns all text within the document not just the main content, at 75% content the figures are more realistic for some sites:

Bytes Measurement 697 SMALLEST 14087 MEDIAN 183233 LARGEST 17998 AVG 889 COUNT

at 50% content the figures are more realistic for other sites:

465 SMALLEST 9391 MEDIAN 122156 LARGEST 11999 AVG 889 COUNT






       


$ du -bs * \ | sort -k1,1n -k2,2 \ | awk '$2!="l" && $1 { c++; s[c]=$1; n[c]=$2; sum+=$1 } END { for (i in s){ if(i==int(c/2)){ m=i }; printf "% 10d\t%s\n", s[i],n[i] }; printf "% 10s\tArticle Size\n","Bytes"; printf "% 10d\tSMALLEST %s\n",s[1],n[1]; printf "% 10d\tMEDIAN %s\n",s[m],n[m]; printf "% 10d\tLARGEST %s\n",s[c],n[c]; printf "% 10d\tAVG\n", sum/c; printf "% 10d\tCOUNT\n",c; }' OFS=$'\t'









[1]

$ time bash -c 'count=0; shuf l \ | while read u; do echo $u; wget --continue --page-requisites --timeout=30 "$u" & echo $((count++)); if ((count % 5 == 0)); then wait; fi; done;'









[2]

$ count=0; time for i in $(cat l); do echo;echo $i; lynx -dump "$i" > $count; echo $((count++)); done;








[3]

$ find . -mindepth 1 -maxdepth 1 -type d -print | wc -l 921

$ find . -mindepth 1 -type f -print | wc -l 38249









[4]

$ find . -mindepth 1 -type f -print \ | awk '{sub("\./","");sub("/.*","");print;}' | uniq -c | sort -k1,1n -k2,2 | awk '$1{c++;s[c]=$1;sum+=$1;} END{for(i in s){if(i == int(c/2)){m=s[i];}}; print "MEDIAN: ",m; print "AVG", sum/c; print "Quantity",c; }'









[5]

$ find . -mindepth 1 -type f -name '*.js' -exec du -sh {} \; | sort -k1,1rh | head 16M ./www.icij.org/app/themes/icij/dist/scripts/main_8707d181.js 3.4M ./europeanconservative.com/wp-content/themes/Generations/assets/scripts/fontawesome-all.min.js 1.8M ./www.9news.com.au/assets/main.f7ba1448.js 1.8M ./www.technologyreview.com/_next/static/chunks/commons.7eed6fd0fd49f117e780.js 1.8M ./www.thetimes.co.uk/d/js/app-7a9b7f4da3.js 1.5M ./www.crossfit.com/main.997a9d1e71cdc5056c64.js 1.4M ./www.icann.org/assets/application-4366ce9f0552171ee2c82c9421d286b7ae8141d4c034a005c1ac3d7409eb118b.js 1.3M ./www.digitalhealth.net/wp-content/plugins/event-espresso-core-reg/assets/dist/ee-vendor.e12aca2f149e71e409e8.dist.js 1.2M ./www.fresnobee.com/wps/build/webpack/videoStory.bundle-69dae9d5d577db8a7bb4.js 1.2M ./www.ft.lk/assets/libs/angular/angular/angular.js






[6] About page bloat, one can pick just about any page and find from one to close to two orders of magnitude difference between the lynx dump and the full web page. For example,




$ wget --continue --page-requisites --timeout=30 \ --directory-prefix=./test.a/ \ https://www.newsweek.com/saudi-uae-war-themselves-yemen-1453371 . . .

$ lynx --dump \ https://www.newsweek.com/saudi-uae-war-themselves-yemen-1453371 \ > test.b

$ du -bs ./test.? 250793 ./test.a 15385 ./test.b

Recent Techrights' Posts

Workers Fly Away From IBM's Red Hat (This Year a Lot of Red Hat Staff is "IBM")
The stock (share price) of IBM says nothing about what actually goes on
Links 02/01/2026: Science, Patent Maximalism, and Public Domain Day
Links for the day
Gemini Links 02/02/2026: Books, Scams, and mkscript (a Script to Make Scripts)
Links for the day
Strong Start for GNU/Linux This Year
based on statCounter
More Tools, Factorising Code
If some things in the site of Gemini capsules don't behave as expected, then that's likely due to a bug
State of Tech Journalism in 2026: Follow the Money
in order to understand what motivates an opinion piece one must follow the money
 
Gemini Links 03/01/2026: New Organisation System (Notebooks) and "2026 Already Off to an Amazing Start"
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Friday, January 02, 2026
IRC logs for Friday, January 02, 2026
The More Buzzwords a Corporation Resorts To...
buzzwords are a fool's way to compensate for or disguise a lack of knowledge
So You Should Definitely Call it "Slop" and Stop Saying "AI"
with more XBox/gaming layoffs being imminent the blowback will be fun to watch
Why Are We Still Using Voting Machines?
Voting machines still seem to me like an infantile cargo cult and an act of salesmanship (like various security theatre rituals at airports)
"Works for Me!"
Who knows best?
Why IBM Workers Like Techrights (Same Reason EPO Workers Do)
IBM will likely be a daily theme (high rate of recurrence)
In 2025 We Contributed to the Headlessness of the OSI, But It's Not Over Yet
By airing some 'dirty laundry' about the OSI last year we contributed to its current state
Africa's Largest Population Sees Diminishing Impact of Windows
less than 1 in 10 Web requests in Nigeria comes from Windows
Russia Cuts Finnish Cables ("Hybrid War"), Finland Cuts Off Microsoft
the birthplace of Linux
Free Software is More Naturally Inclusive
large, intolerant, violent companies get painted as a glorious example of United Colours of Benetton
Europe in 2026: Over 5% GNU/Linux, Not Counting Chromebooks
2026 has started strongly
Slopfarm Says Microsoft's "Biggest Business" is the 'Business' Where It Loses Tens of Billions of Dollars
TOI still pretends to have a lot of output
At the Start of January 2025 Microsoft President Said Microsoft Would Spend 80 Billion Dollars on "AI" Data Centres. That Didn't Happen. Microsoft Laid Off 30,000 Workers, Debt Surged.
Maybe this coming Monday Microsoft will come up with more false promises and vapourware
Links 02/01/2026: Insurrectionist Attacks Musicians Critical of Him With Lawfare, Project Gutenberg Now Has Over 75,000 Books
Links for the day
Decline in LLM Slop About "Linux" is a Good Start for 2026
When the only remaining proponents of slop are slop, which is pretty much what's happening right now, the bubble is popping
EPO People Power - Part XXII - Contact Officials and Inform Your National Representatives (Delegates) of the EPO's Cocainegate
Europe's largest media intentionally covers up serious scandals in Europe's second-largest institution
Slopwatch Still Dead, Not Enough LLM Slop About "Linux"
this is the desirable thing
LibXML2 Will Carry on (Without or With the Name "LibXML2")
The proprietary software boosters are projecting
Gemini Links 02/01/2026: ThinkPad, SHARP Zaurus, Lagrange Handheld Support
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, January 01, 2026
IRC logs for Thursday, January 01, 2026
Links 01/01/2026: "Biophobia" and Renewed Effort to Locate MH370
Links for the day
Gemini Links 01/01/2026: Bot Accounts Online and Reading in 2025
Links for the day
IBM’s and Red Hat’s "Operation Evolution initiative" Just Long, Fancy Term for Bluewashing, Redundancies, Layoffs
Gerstner is still alive, but he's shorter and more arrogant
Designing a Better Mousetrap or Tools for the SSG
Static Site Generators (SSGs) - unlike all modern Content Management Systems (CMSs) - are so simple that extending them is easy
Links 01/01/2026: 1930 Works in the Public Domain, Electricity Pricing 'a Mystery'
Links for the day
Firefox is Toast Because It Got Toasted by Mozilla
Firefox cannot keep above 2% and hasn't been able to for quite some time
Ignore the LLM Slop and the Noise, Microsoft is in a Death Spiral
So what does Microsoft have left to sell?
Red Hat is Vanishing Before Our Eyes
With some Red Hat staff "transitioning" we wonder if it's an HR hack, wherein they "reset the clock" on employment duration so as to lessen severance obligations
In 2025 Microsoft Lost Palau
Palau now has GNU/Linux at steadily high levels
Microsoft Mocked UNIX/Linux for Not Handling Dates After 2038, Microsoft Breaks Down on 2026!
Only a truly moronic company would design it that way
Another New Year's Resolution: Public Domain Sources, Credits
In addition to our first one
Combatting Slop Images (and ClownFlare)
we won't use or reuse slop images
The End of Red Hat
expect many more layoffs soon
A New Year's Resolution: Maximal Transparency
We'll do our very best to be transparent about everything that's going on, even legal matters
Gemini Links 01/01/2026: 2025 Comes to a Close and Capsular Gemlog Manager
Links for the day
Free Software Foundation (FSF) Raised About 1.3 Million Dollars in the Past Couple of Months!
the FSF's Board now has 10 people in it
2026 IBM Phaseout of Red Hat
Red Hat won't fare any better than most IBM acquisitions
Microsoft Budget Issues, XBox Thrown Under the Bus
They're cutting budget. Soon they'll cut the staff.
Only Hours Into the New Year People Already Discuss the Next Round of Layoffs at Red Hat/IBM
2026 will be another tough year for Red Hat and IBM
EPO People Power - Part XXI - Europe's Second-Largest Institution Became a Corrupt For-Profit Company Run by Drug Addicts
it'll be the demise of the Rule of Law in Europe and maybe a death blow to the EU (eventually), not just the EPO
Another Very Productive Year Commences
"a total of over 17,000 pages in a year"
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, December 31, 2025
IRC logs for Wednesday, December 31, 2025