Monday, 18 October

17:28

Max-Gerd Retzlaff: uLisp on M5Stack (ESP32):<br /> controlling relays connected to I2C via a PCF8574 [Planet Lisp]

Looking at the data sheet of the PCF8574 I found that it will be trivially simple to use it to control a relay board without any lower level Arduino library: Just write a second byte in addtion to the address to the I2C bus directly with uLisp's WITH-I2C.

Each bit of the byte describes the state of one of the eight outputs, or rather its inverted state as the PCF8574 has open-drain outputs and thus setting an output to LOW opens a connection to ground (with up to 25 mA), while HIGH disables the relay. (The data sheets actually say they are push-pull outputs but as high-level output the maximum current is just 1 mA which is not much and for this purpuse certainly not enough.)

Here is the whole initial library:

Read the whole article.

11:49

CodeSOD: An Hourly Rate [The Daily WTF]

When someone mentioned to Abraham, "Our product has an auto-sync feature that fires every hour," Abraham wasn't surprised. He was new to the team, didn't know the code well, but an...

06:14

1549 [Looking For Group]

The post 1549 appeared first on Looking For Group.

Sunday, 17 October

21:28

Link [Scripting News]

In the back of my mind is the question of could we get a Linux version of Frontier going. That would send this project into the stratosphere, imho. Even after a year's work, Drummer is still a shadow of Frontier, which I use as my development platform for all of this. That's how I'm so productive. Invest as much time in tools as you do in product, and some years, invest all your time in tools. BTW, when I say a Linux version -- I mean an exact clone. The benchmark is whether it runs my software, not that it's a cool project. With these things it's the base of apps that matters. I think the language designers at big companies have lost the tune. The apps are what matters. That's why I program in JavaScript -- it's where all the code is. And that's why projects like Deno (A different arrangement of N O D and E) are such a bad idea. And deprecating the request verb? Only the most commonly called function the whole fricking language. Deprecated!! Someone has lost their sense of what matters. It's as if one day they decided the new Tappan Zee Bridge is too cool to drive cars over, so we'll require people to convert their cars so that the wheels are inside and the seats are outside. Always going backward is a good way to never get anywhere. BTW the Tappan Zee Bridge Is a beautiful bridge. It carries exactly the same traffic the old one did.

20:42

Link [Scripting News]

I think you have to be very young and very healthy to be medication-averse. There are some people who make it to old age without needing medical care. My mother was one of those people, she didn't get sick until she was in her 80s. Me, on the other hand, I would have died before I was 10 if it wasn't for health care and antibiotics. I had a ruptured appendix, mis-diagnosed by a doctor as a stomach ache. Okay so medicine fucks up, a lot. I have limited vision because two eye doctors gave me bad advice and did surgery, the first fucked my left eye and the second made it worse. My hearing is blown in my left ear, because a doctor used a device to clear out earwax that damaged my eardrum. So now loud noise, including loud music, makes my head vibrate in an unpleasant way. Too bad, I used to love loud music. But I am alive. My life having been saved twice by medicine now. So when medicine says "take this vaccine it'll make you safer against a horrible disease" -- I take it. Gladly. Why? Because I get how medicine works to an extent and am appreciative for the life I would not have had were it not for medicine.

Link [Scripting News]

The old Tappan Zee Bridge and the new one.

16:56

Link [Scripting News]

Drummer is really going. I'm trying to scope out in my mind now where I want it to go. With all the programmers around now, and maybe more on the way, I'm thinking bigger in terms of open source projects that could spin out of Drummer.

Link [Scripting News]

BTW, when I say a Linux version -- I mean an exact clone. The benchmark is whether it runs my software, not that it's a cool project. With these things it's the base of apps that matters. I think the language designers at big companies have lost the tune. The apps are what matters. That's why I program in JavaScript -- it's where all the code is. And that's why projects like Deno (A different arrangement of N O D and E) are such a bad idea. And deprecating the request verb? Only the most commonly called function the whole fricking language. Deprecated!! Someone has lost their sense of what matters. It's as if one day they decided the new Tappan Zee Bridge is too cool to drive cars over, so we'll require people to convert their cars so that the wheels are inside and the seats are outside. Always going backward is a good way to never get anywhere. BTW the Tappan Zee Bridge Is a beautiful bridge. It carries exactly the same traffic the old one did.

Link [Scripting News]

I'm doing most of my writing these days in Drummer Land, but it's nice to remember that things I want to write about that don't belong there, still have a home, here.

16:07

Link [Scripting News]

Car drivers suck. I usually ride my bike on the right edge of the road, making it easy for cars to pass. But if I have to make a left, I move left, and if a car approaches behind me, they have to momentarily slow. They always honk. I never carry a gun, but sometimes I wish I did (not really).

05:21

Reader Mailbag: Cast Page [Skin Horse]

Shaenon: You bet I finally updated the cast page.

Channing: Now to introduce like fifty new characters next week…

03:00

Link [Scripting News]

I hope Manchin is getting paid more than $500K per year to sell out our last chance at having a planet that supports human life.

02:14

R. Crumb [Scripting News]

The P&J Coffee Shop, San Francisco.

Saturday, 16 October

22:21

sweet and tender hooligan [WIL WHEATON dot NET]

Yesterday, I accidentally discovered that a friend of mine loves the same midcentury asthetic the same way I do. Not only that, but she and her husband love the same […]

21:42

Link [Scripting News]

I have a thing. If they're forecasting rain, showers or even a thunderstorm, and it's not raining when I want to go out for a ride, I go out anyway. Worst that can happen is I get soaked, I reason. And I usually make it home in time. And often as soon as I walk in the door it starts to pour. That's exactly what happened today. I'm feeling very oxygenated and strong, writing this post in my bike clothes, and outside it's pouring cats and dogs. Amazing.

18:42

Link [Scripting News]

We know what we have to do -- we should be campaigning like everything is at stake (it is) instead we're hearing weak statements like this. It's not his fault, btw -- the national Democrats are looking in the wrong direction. I don't know how they can do it, but they are. Where is the Lincoln Project, why aren't they turning out ads like this, every day, about abortion rights? This is the big problem that the Democrats keep making. To them campaigns are about elections, but they're really about everything, 365 days a year. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops. The campaign never stops.

15:35

Link [Scripting News]

I've been doing a lot of support this last week. Noted that a lot of times the problem is web caching. Learn how to get your browser to do a hard reload. Always try that first. Once you have that mastered, it's amazing how much time you'll save.

03:28

Link [Scripting News]

Today's Drummer change notes.

02:07

TurtleWare: How do you DO when you do DO? [Planet Lisp]

In this short post I'll explain my understanding of the following quote describing the iteration construct do:

The Common Lisp do macro can be thought of as syntactic sugar for tail recursion, where the initial values for variables are the argument values on the first function call, and the step values are argument values for subsequent function calls.

-- Peter Norvig and Kent Pitman, Tutorial on Good Lisp Programming Style

Writing a recursive function usually involves three important parts:

  1. The initial values - arguments the programmer passes to the function
  2. The base case - a case when function may return without recurring
  3. The step values - arguments the function passes to itself when recurring

An example of a recursive function is this (inefficient) definition:

(defun fib (n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (t (+ (fib (- n 1))
          (fib (- n 2))))))

The initial value here is n, base cases are (= n 0) and (= n 1) and step values are (- n 1) and (n 2).

To make a function tail-recursive there is one more important requirement: the subsequent function call must be in a tail position, that is it must be the last function called. The definition above is not tail-recursive, because we first need to call the function and then add results. A proper tail-recursive version requires little gimnastic:

(defun fib* (n)
  (labels ((fib-inner (n-2 n-1 step)
             (if (= step n)
                 (+ n-2 n-1)
                 (fib-inner n-1
                            (+ n-2 n-1)
                            (1+ step)))))
    (cond
      ((= n 0) 0)
      ((= n 1) 1)
      (t (fib-inner 0 1 2)))))

The initial values are 0, 1 and 2, the base case is (= step n) and the step values are n-1, (+ n-2 n-1) and (1+ step). The function fib-inner is in tail position because there is no more computation after its invocation.

A quick remainder how do works:

(do ((a 1 (foo a))
     (b 3 (bar b)))
    ((= a b) 42)
  (side-effect! a b))

First assign to a and b the initial values 1 and 3, then check for the base case (= a b) and if true return 42, otherwise execute the body (side-effect! a b) and finally update a and b by assigning to them the step values (foo a) and (foo b). Then repeat from checking the base case. The last step could be equaled to an implicit tail-call of a function. Let's put it now in terms of the function we've defined earlier:

(defun fib** (n)
  (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (t (do ((n-2 0 n-1)
            (n-1 1 (+ n-2 n-1))
            (step 2 (1+ step)))
           ((= step n)
            (+ n-2 n-1))))))

This do form is a direct translation of the function fib-inner defined earlier.

I hope that you've enjoyed this short explanation. If you did then please let me know on IRC - my handle is jackdaniel @ libera.chat.

Friday, 15 October

22:00

Link [Scripting News]

A friend asked if it was true that Spotify now owns podcasting. They read something in Wired that said they did. They're idiots. Or trying to get clicks. Or maybe they're idiots and they're trying to get clicks. Anyway -- no, Spotify does not own podcasting. As long as people say "subscribe where ever you get your podcasts" at the end of their podcast you have nothing to worry about. I'm not even going to link to the Wired article.

17:28

Link [Scripting News]

The Giants lost. I'm so sorry. I knew however that it would end in an awful way when the batter, with two out in the bottom of the 9th with a runner on first, the Dodgers leading by one in what was the last game of the season for one of these teams, was Wilmer Flores. Mets fans remember him and love him like a son, because the Mets broke his heart and he didn't hide his feelings. So they didn't trade him in 2015 when the Mets went on to win the National League pennant, Flores was the team mascot, but they eventually did let him go, and he was on the forever to be remembered as the ill-fated Giants of 2021. When he stepped into the batter's box late last night I knew it would not end well. It didn't. In a very unsatisfactory way. Which I think was inevitable, probably the instant the Giants signed him. He is a man of great consequence.

The mobile app I want [Scripting News]

An iOS and Android app.

It can manage multiple notes. They are simple things, simple styling, multiple paragraphs per item. Of course Markdown.

It stays in sync with something that's accessible over the web, kind of like an RSS feed just for me.

Then I tell Drummer, Roam, whatever -- where to hook into it. And it appears in my writing world as a flat outline. I can edit in both places. So I can put a note from my desktop into this mobile world, and write something while I'm out and about that hooks into my larger writing world.

Super important: Not part of Apple or Dropbox or whatever's world. Then I would have to go through them to get my own writing, and eventually they will break me.

It's amazing how broken this shit is now. I'm almost broken in Apple's world. And Dropbox blew up what we were doing a few years back. We're about to get evicted by Chrome. But Linux, RSS, OPML and Markdown keep chugging along. And Twitter too btw. They've actually been very good, even though the hype says otherwise.

15:35

Thomas Fitzsimmons: Mezzano on Librebooted ThinkPads [Planet Lisp]

I decided to try running Mezzano on real hardware. I figured my Librebooted ThinkPads would be good targets, since, thanks to Coreboot and the Linux kernel, I have reference source code for all the hardware.

On boot, these machines load Libreboot from SPI flash; included in this Libreboot image is GRUB, as a Coreboot payload.

Mezzano, on the other hand, uses the KBoot bootloader. I considered chainloading KBoot from GRUB, but I wondered if I could have GRUB load the Mezzano image directly, primarily to save a video mode switch.

I didn’t want to have to reflash the Libreboot payload on each modification (writing to SPI flash is slow and annoying to recover from if something goes wrong), so I tried building a GRUB module “out-of-tree” and loading it in the existing GRUB. Eventually I got this working, at which point I could load the module from a USB drive, allowing fast development iteration. (I realize out-of-tree modules are non-ideal so if there’s interest I may try to contribute this work to GRUB.)

The resulting GRUB module, mezzano.mod, is largely the KBoot Mezzano loader code, ported to use GRUB facilities for memory allocation, disk access, etc. It’s feature-complete, so I released it to Sourcehut. (I’ve only tested it on Libreboot GRUB, not GRUB loaded by other firmware implementations.)

Here’s a demo of loading Mezzano on two similar ThinkPads:

GRUB Mezzano module demo

For ease of use, mezzano.mod supports directly loading the mezzano.image file generated by MBuild — instead of requiring that mezzano.image be dd‘d to a disk. It does so by skipping the KBoot partitions to find the Mezzano disk image. The T500 in the video is booted this way. Alternatively, mezzano.mod can load the Mezzano disk image from a device, as is done for the W500 in the video. Both methods look for the Mezzano image magic — first at byte 0 and, failing that, just after the KBoot partitions.

I added the set-i8042-bits argument because Coreboot does not set these legacy bits, yet Mezzano’s PS/2 keyboard and mouse drivers expect them; at this point Mezzano does not have a full ACPI device tree implementation.

12:07

Trick or Tweet – DORK TOWER 11.11.21 [Dork Tower]

WANT MORE DORK TOWER IN THE WORLD? Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help!

11:35

Error'd: Counting to One [The Daily WTF]

Two of today's ticklers require a little explanation, while the others require little. Kicking things off this week, an anonymous reporter wants to keep their password secure by not divulging...

00:42

Link [Scripting News]

See today's updates on the Drummer blog. I think we have the initial fires taken care of. Knock wood, praise Murphy, I am not a lawyer. Time to take a step back, catch my breath and figure out what the next steps are. In the meantime I'll be rooting for the Giants tonight.

Thursday, 14 October

20:56

Shrink Wrapped – DORK TOWER 08.10.21 [Dork Tower]

WANT MORE DORK TOWER IN THE WORLD? Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help!

20:14

Be mused – DORK TOWER 06.10.21 [Dork Tower]

WANT  MORE DORK TOWER INTO THE WORLD?  Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help!

17:28

Joe Marshall: Update October 2021 [Planet Lisp]

Here's a few things I've been playing with lately.

jrm-code-project/utilities has a few utilities that I commonly use. Included are utilities/lisp/promise and utilities/lisp/stream which provide S&ICP-style streams (lazy lists). utilities/lisp/utilities is a miscellaneous grab bag of functions and macros.

jrm-code-project/homographic is a toolkit for linear fractional transforms (homographic functions). In addition to basic LFT functionality, it provides examples of exact real arithmetic using streams of LFTs.

jrm-code-project/LambdaCalculus has some code for exploring lambda calculus.

jrm-code-project/CLRLisp is an experimental Lisp based on the .NET Common Language Runtime. The idea is that instead of trying to adapt a standard Lisp implementation to run on the .NET CLR, we just add a bare-bones eval and apply that use the CLR reflection layer and see what sort of Lisp naturally emerges. At this point, it only just shows signs of life: there are lambda expressions and function calls, but no definitions, conditionals, etc. You can eval lists: (System.Console.WriteLine "Hello World."), but I haven't written a reader and printer, so it is impractical for coding.

16:28

Trump lost [Scripting News]

Time for the loser to STFU.

15:21

Latent Effects for Reusable Language Components [Lambda the Ultimate - Programming Languages Weblog]

Latent Effects for Reusable Language Components, by Birthe van den Berg, Tom Schrijvers, Casper Bach Poulsen, Nicolas Wu:

The development of programming languages can be quite complicated and costly. Hence, much effort has been devoted to the modular definition of language features that can be reused in various combinations to define new languages and experiment with their semantics. A notable outcome of these efforts is the algebra-based “datatypes "a la carte" (DTC) approach. When combined with algebraic effects, DTC can model a wide range of common language features. Unfortunately, the
current state of the art does not cover modular definitions of advanced control-flow mechanisms that defer execution to an appropriate point, such as call-by-name and call-by-need evaluation, as well as (multi-)staging. This paper defines latent effects, a generic class of such control-flow mechanisms. We demonstrate how function abstractions, lazy computations and a MetaML-like staging can all be expressed in a modular fashion using latent effects, and how they can be combined in various ways to obtain complex semantics. We provide a full Haskell implementation of our effects and handlers with a range of examples.

Looks like a nice generalization of the basic approach taken by algebraic effects to more subtle contexts. Algebraic effects have been discussed here on LtU many times. I think this description from section 2.3 is a pretty good overview of their approach:

LE&H is based on a different, more sophisticated structure than AE&H’s free monad. This structure supports non-atomic operations (e.g., function abstraction, thunking, quoting) that contain or delimit computations whose execution may be deferred. Also, the layered handling is different. The idea is still the same, to replace bit by bit the structure of the tree by its meaning. Yet, while AE&H grows the meaning around the shrinking tree, LE&H grows little “pockets of meaning” around the individual nodes remaining in the tree, and not just around the root. The latter supports deferred effects because later handlers can still re-arrange the semantic pockets created by earlier handlers.

11:49

CodeSOD: Joining the Rest of Us [The Daily WTF]

Using built-in methods is good and normal, but it's certainly boring. When someone, for example, has a list of tags in an array, and calls string.Join(" ", tags), I don't really learn...

06:35

1548 [Looking For Group]

The post 1548 appeared first on Looking For Group.

Wednesday, 13 October

22:56

Link [Scripting News]

I've had this song in my head all day. So that makes it the song of the day I guess.

19:56

Fret Butler – DORK TOWER 04.10.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness, and help!

18:28

Link [Scripting News]

I was talking with my friend Dave Jacobs last night and we got around to what should be done with Facebook. The only thing to do when a tech company gets too big, is to force them to unbundle. Bundling is how their size becomes a problem for us. So, for example, Google owning the dominant search engine and the dominant browser means they're inevitably going to turn the web into a perfect way to continue to own search. That's all that's going to matter to them. But the web has more to do. Google doesn't care. Facebook has also been successful at strangling the open web, forcing all writing on the net to flow through them. Or at least keeping it from flowing outside of them. If Facebook's fat ass wasn't squatting over the web, there would be a lot more movement. That might not solve the problem of Nazis ruining the world, but at least it gives the rest of us a chance to organize and solve the other vexing problems we have to deal with. RIght now all we're tasked with doing is making Zuck even richer, and even Zuck must be bored with that by now. The task for FB is to make it easy for the rest of us to run our own FB's and stay in touch with the people who use his FB. That's what happens when you get as big as they are. And it's far from an unsolvable problem. In fact they already have all the software written.

Link [Scripting News]

One of the saddest things I've ever heard is Jeremy Lin saying "I think the NBA has given up on me." I would say to him, they had reasons to give up on you when you were 18 and every year since then. That's the way the world works. Assholes climb the ladder, and then think they can stop listening.

17:42

Link [Scripting News]

It's hard to imagine approval rating means anything in 2021. Even if you don't approve of Biden, are you really going to vote for Trump? It seems that even the Dems could market that you're better off not electing Hitler.

16:56

Link [Scripting News]

To people who wanted to use a custom domain for their Drummer blogs, we now have an answer. There's a new head-level attribute for your blog.opml file that tells the CMS where the links should point. It works on my test blog for the clueless newbie.

16:14

All those windows on the 4 train [Scripting News]

An asshole NYT columnist once asked if I was too old to understand the latest technology. I was so offended, I didn't think to just answer the question.

The answer is unknowable. I think I understand a lot about tech, because I've spent my entire professional life trying to. I also have created some of the technology that young people feel so proud of understanding better than older people. I think I understand podcasting, for example, as well as any young-un.

Once when I was a kid, commuting to high school in the Bronx from Queens, I was struck by all the apartment houses whose windows faced the 4 train. Mile after mile. Countless windows facing the train. And behind them more buildings and more windows.

Behind every window was a family, with all their challenges, accomplishments, pride, love, beliefs, bad habits, histories, everything. It gave me an idea, how could you possibly think you understand all that's going on.

Now, 50 years later, I think the thing is to be open to learning from other people's experiences, and don't presume you understand anything better than anyone else, because when you do that, you close yourself off to learning from them.

I would say to that NYT asshole that it's the disease of your profession to think you don't have to listen anymore. It's also the disease of programmers, doctors, professors, everyone who gets somewhere in life, to think they've arrived at the top and they have a full understanding of everything they need to understand. That asshole could learn a lot from an asshole like me. All those years, he didn't. And that's not just his problem, because so many people listen to him, it's our problem too. Because he's not as informed imho as he could be. .

15:28

Why we use Twitter identity [Scripting News]

I got an email last night that said the person felt I had been hypocritical in using Twitter for identity for Drummer.

Obviously, I don't think I was hypocritical.

I use Twitter for identity because they have a nice API that scales, and they have kept it open for this kind of use for many years. In all that time, they didn't change their mind because of new management, didn't deprecate anything, it just keeps running reliably.

Are you sharing some information with Twitter? Yes, a little, but not as much as you might think. They certainly never see your outlines. They don't know how many times you log in, that information doesn't pass through to them.

We don't keep any information on that ourselves. I don't care. I'm not in any business at all, and certainly not in the business of knowing how much you do whatever you do.

They don't know your location, btw -- if they know a location, it's the location of the server, which is at Digital Ocean. I'm not even sure where they keep their servers. That information it seems to me is of no value.

If you don't want them to know anything about you -- just create a fake account for this purpose.

Also I want to build features around Twitter. It's a fact of life. It's there. It ain't going anywhere. If I chose not to use it for identity it wouldn't hurt them one bit. I'd have to write an identity server myself and I already have plenty of things to do trying to keep Drummer users happy.

Net-net -- I don't see a problem here. 😀

12:21

CodeSOD: Supporting Standards [The Daily WTF]

Starting in the late 2000s, smartphones and tablets took off, and for a lot of people, they constituted a full replacement for a computer. By the time the iPad and Microsoft Surface took off, every...

Tuesday, 12 October

22:07

Cómo Emitir una Moneda Digital del Banco Central [Planet GNU]

Nos complace anunciar la publicación de nuestro artículo sobre"Cómo Emitir una Moneda Digital del Banco Central"que es un trabajo conjunto con el Banque nationale suisse.

21:28

Link [Scripting News]

I’ve called myself a developer, media hacker, showrunner, programmer, never a coder (ugh), maker of software snacks and shitty software (with bugs). Now I’m thinking of calling myself a software factor.

18:28

Link [Scripting News]

This quote, which is part of what I wrote for The Future of Text, kind of says it all, everything I've discovered and built on in my career. I guess it's the answer to the question: "What's possible with computers that most people don't know about." They posted this in a tweet at the same time I was posting one about how we fixed the big problem with JavaScript in Drummer. I love JavaScript because it's the closest thing we have to a universal language. We have Marc Andreessen to thank for that (no sarcasm!). But there's no reason JS has to be hobbled by callback hell, promises, async/await, or whatever new hack they think up next. It's not hard to factor all that out. Every other language does it. There is absolutely no reason JavaScript has to leave all that mess visible to the programmer who wants it hidden. We proved that in Drummer. Now our implementation may not be fully baked, and at least one JS guru thinks it may be too slow, all that can be fixed. I want to write straight-line code and let the runtime handle the synchronization. That's worth trading off some speed for, but I don't see why it should require that. And it's the way comptuers are supposed to work, imho. If I didn't say anything most devs probably wouldn't even notice it's there, they still might not, that's how natural it feels. 🚀

16:56

Link [Scripting News]

Observed in a middle-of-the-night tweet: Drummer is working. It’s possible finally we’re moving beyond blogging as a big production. Writing publicly can be fluid, fast. And not locked in a silo.

15:56

PSA: Publishing supply chain shortages [Charlie's Diary]

Quantum of Nightmares (UK link) comes out on January 11th in the USA and January 13th in the UK. It's the second New Management novel, and a direct sequel to Dead Lies Dreaming.

If you want to buy the ebook, you're fine, but if you want a paper edition you really ought to preorder it now.

The publishing industry is being sandbagged by horrible supply chain problems. This is a global problem: shipping costs are through the roof, there's a shortage of paper, a shortage of workers (COVID19 is still happening, after all) and publishers are affected everywhere. If you regularly buy comics, especially ones in four colour print, you'll already have noticed multi-month delays stacking up. Now the printing and logistics backlogs are hitting novels, just in time for the festive season.

Tor are as well-positioned to cope with the supply chain mess as any publisher, and they've already allocated a production run to Quantum of Nightmares. (Same goes for Orbit in the UK.) But if it sells well and demand outstrips their advance estimates, the book will need to go into reprint—and instead of this taking 1-2 weeks (as in normal times) it's likely to be out of stock for much longer.

Of course the ebook edition won't be affected by this. But if you want a paper copy you may want to order it ASAP.

15:28

The Quality of Auto-Generated Code [Radar]

Kevlin Henney and I were riffing on some ideas about GitHub Copilot, the tool for automatically generating code base on GPT-3’s language model, trained on the body of code that’s in GitHub. This article poses some questions and (perhaps) some answers, without trying to present any conclusions.

First, we wondered about code quality. There are lots of ways to solve a given programming problem; but most of us have some ideas about what makes code “good” or “bad.” Is it readable, is it well-organized? Things like that.  In a professional setting, where software needs to be maintained and modified over long periods, readability and organization count for a lot.

We know how to test whether or not code is correct (at least up to a certain limit). Given enough unit tests and acceptance tests, we can imagine a system for automatically generating code that is correct. Property-based testing might give us some additional ideas about building test suites robust enough to verify that code works properly. But we don’t have methods to test for code that’s “good.” Imagine asking Copilot to write a function that sorts a list. There are lots of ways to sort. Some are pretty good—for example, quicksort. Some of them are awful. But a unit test has no way of telling whether a function is implemented using quicksort, permutation sort, (which completes in factorial time), sleep sort, or one of the other strange sorting algorithms that Kevlin has been writing about.

Do we care? Well, we care about O(N log N) behavior versus O(N!). But assuming that we have some way to resolve that issue, if we can specify a program’s behavior precisely enough so that we are highly confident that Copilot will write code that’s correct and tolerably performant, do we care about its aesthetics? Do we care whether it’s readable? 40 years ago, we might have cared about the assembly language code generated by a compiler. But today, we don’t, except for a few increasingly rare corner cases that usually involve device drivers or embedded systems. If I write something in C and compile it with gcc, realistically I’m never going to look at the compiler’s output. I don’t need to understand it.

To get to this point, we may need a meta-language for describing what we want the program to do that’s almost as detailed as a modern high-level language. That could be what the future holds: an understanding of “prompt engineering” that lets us tell an AI system precisely what we want a program to do, rather than how to do it. Testing would become much more important, as would understanding precisely the business problem that needs to be solved. “Slinging code” in whatever the language would become less common.

But what if we don’t get to the point where we trust automatically generated code as much as we now trust the output of a compiler? Readability will be at a premium as long as humans need to read code. If we have to read the output from one of Copilot’s descendants to judge whether or not it will work, or if we have to debug that output because it mostly works, but fails in some cases, then we will need it to generate code that’s readable. Not that humans currently do a good job of writing readable code; but we all know how painful it is to debug code that isn’t readable, and we all have some concept of what “readability” means.

Second: Copilot was trained on the body of code in GitHub. At this point, it is all (or almost all) written by humans. Some of it is good, high quality, readable code; a lot of it isn’t. What if Copilot became so successful that Copilot-generated code came to constitute a significant percentage of the code on GitHub? The model will certainly need to be re-trained from time to time. So now, we have a feedback loop: Copilot trained on code that has been (at least partially) generated by Copilot. Does code quality improve? Or does it degrade? And again, do we care, and why?

This question can be argued either way. People working on automated tagging for AI seem to be taking the position that iterative tagging leads to better results: i.e., after a tagging pass, use a human-in-the-loop to check some of the tags, correct them where wrong, and then use this additional input in another training pass. Repeat as needed. That’s not all that different from current (non-automated) programming: write, compile, run, debug, as often as needed to get something that works. The feedback loop enables you to write good code.

A human-in-the-loop approach to training an AI code generator is one possible way of getting “good code” (for whatever “good” means)—though it’s only a partial solution. Issues like indentation style, meaningful variable names, and the like are only a start. Evaluating whether a body of code is structured into coherent modules, has well-designed APIs, and could easily be understood by maintainers is a more difficult problem. Humans can evaluate code with these qualities in mind, but it takes time. A human-in-the-loop might help to train AI systems to design good APIs, but at some point, the “human” part of the loop will start to dominate the rest.

If you look at this problem from the standpoint of evolution, you see something different. If you breed plants or animals (a highly selected form of evolution) for one desired quality, you will almost certainly see all the other qualities degrade: you’ll get large dogs with hips that don’t work, or dogs with flat faces that can’t breathe properly.

What direction will automatically generated code take? We don’t know. Our guess is that, without ways to measure “code quality” rigorously, code quality will probably degrade. Ever since Peter Drucker, management consultants have liked to say, “If you can’t measure it, you can’t improve it.” And we suspect that applies to code generation, too: aspects of the code that can be measured will improve, aspects that can’t won’t.  Or, as the accounting historian H. Thomas Johnson said, “Perhaps what you measure is what you get. More likely, what you measure is all you’ll get. What you don’t (or can’t) measure is lost.”

We can write tools to measure some superficial aspects of code quality, like obeying stylistic conventions. We already have tools that can “fix” fairly superficial quality problems like indentation. But again, that superficial approach doesn’t touch the more difficult parts of the problem. If we had an algorithm that could score readability, and restrict Copilot’s training set to code that scores in the 90th percentile, we would certainly see output that looks better than most human code. Even with such an algorithm, though, it’s still unclear whether that algorithm could determine whether variables and functions had appropriate names, let alone whether a large project was well-structured.

And a third time: do we care? If we have a rigorous way to express what we want a program to do, we may never need to look at the underlying C or C++. At some point, one of Copilot’s descendants may not need to generate code in a “high level language” at all: perhaps it will generate machine code for your target machine directly. And perhaps that target machine will be Web Assembly, the JVM, or something else that’s very highly portable.

Do we care whether tools like Copilot write good code? We will, until we don’t. Readability will be important as long as humans have a part to play in the debugging loop. The important question probably isn’t “do we care”; it’s “when will we stop caring?” When we can trust the output of a code model, we’ll see a rapid phase change.  We’ll care less about the code, and more about describing the task (and appropriate tests for that task) correctly.

14:56

Top Comments – Pages 1545 – 1546 [Looking For Group]

Tuesday, YOU are the star! We curate our favourites from the previous week’s comments on lfg.co and Facebook and remind you how clever you are. Here are your top comments for Looking For Group pages 1545 – 1546 Looking For […]

The post Top Comments – Pages 1545 – 1546 appeared first on Looking For Group.

13:35

Vsevolod Dyomkin: Watching a Model Train [Planet Lisp]

Last week, I did a quick hack that quite delighted me: I added a way to visually watch the progress of training my MGL-based neural networks inside Emacs. And then people on twitter asked me to show the code. So, it will be here, but first I wanted to rant a bit about one of my pet peeves.

Low-Tech

In the age of Jupyter and TensorBoard, adding a way to see an image that records the value of a loss function blinking on the screen — "huh, big deal" you would say. But I believe this example showcases a difference between low-tech and high-tech approaches. Just recently I chatted with one of my friends who is entering software engineering at a rather late age (30+), and we talked of how frontend development became even more complicated than backend one (while, arguably, the complexity of tasks solved on the frontend is significantly lower). And that discussion just confirmed to me that the tendency to overcomplicate things is always there, with our pop-culture industry, surely, following it. But I always tried to stay on the simple side, on the side of low-tech solutions. And that's, by the way, one of the reasons I chose to stick with Lisp: with it, you would hardly be forced into some nonsense framework hell, or playing catch-up with the constant changes of your environment, or following crazy "best practices". Lisp is low-tech just like the Unix command-line or vanilla Python or JS. Contrary to the high-tech Rust, Haskell or Java. Everything text-based is also low-tech: text-based data formats, text-based visualization, text-based interfaces.

So, what is low-tech, after all? I saw the term popularized by Kris De Decker from the Low-Tech Magazine, which focuses on using simple (perhaps, outdated by some standards) technologies for solving serious engineering problems. Most people, and the software industry is no exception, are after high-tech, right? Progress of technology enables solving more and more complex tasks. And, indeed, that happens. Sometimes, not always. Sometimes, the whole thing crumbles, but that's a different story. Yet, even when it happens, there's a catch, a negative side-effect: the barrier of entry rises. If 5 or 10 years ago it was enough to know HTML, CSS, and JavaScript to be a competent frontend developer, now you have to learn a dozen more things: convoluted frameworks, complicated deploy toolchains, etc., etc. Surely, sometimes it's inevitable, but it really delights me when you can avoid all the bloat and use simple tools to achieve the same result. OK, maybe not completely the same, maybe not a perfect one. But good enough. The venerable 80% solution that requires 20% effort.

Low-tech is not low-quality, it's low-barrier of entry.

And I would argue that, in the long run, better progress in our field will be made if we strive towards lowering the bar to more people in, than if we continue raising it (ensuring our "job security" this way). Which doesn't mean that the technologies should be primitive (like BASIC). On the contrary, the most ingenious solutions are also the simplest ones. So, I'm going to continue this argument in the future posts I'd like to write about interactive programming. And now, back to our hacks.

Getting to Terms with MGL

In my recent experiments I returned to MGL — an advanced, although pretty opinionated, machine learning library by the prolific Gabor Melis — for playing around with neural networks. Last time, a few years ago I stumbled when I tried to use it to reproduce a very advanced (by that time's standards) recurrent neural network and failed. Yet, before that, I was very happy using it (or rather, it's underlying MGL-MAT library) for running in Lisp (in production) some of the neural networks that were developed by my colleagues. I know it's usually the other way around: Lisp for prototyping, some high-tech monstrosity for production, but we managed to turn the tides for some time :D

So, this time, I decided to approach MGL step by step, starting from simple building blocks. First, I took on training a simple feed-forward net with a number of word inputs converted to vectors using word2vec-like approach.

This is the network I created. Jumping slightly ahead, I've experimented with several variations of the architecture, starting from a single hidden layer MLP, and this one worked the best so far. As you see, it has 2 hidden layers (l1/l1-l and l2/l2-l) and performs 2-class classification. It also uses dropout after each of the layers as a standard means of regularization in the training process.


(defun make-nlp-mlp (&key (n-hidden 100))
(mgl:build-fnn (:class 'nlp-mlp)
(in (->input :size *input-len*))
(l1-l (->activation in :size n-hidden))
(l1 (->relu l1-l))
(d1 (->dropout l1 :dropout 0.5))
(l2-l (->activation d1 :size (floor n-hidden 2)))
(l2 (->relu l2-l))
(d2 (->dropout l2 :dropout 0.5))
(out-l (->activation d2 :size 2))
(out (->softmax-xe-loss out-l))))

MGL model definition is somewhat different from the approach one might be used to with Keras or TF: you don't imperatively add layers to the network, but, instead, you define all the layers at once in a declarative fashion. A typical Lisp style it is. Yet, what still remains not totally clear to me yet, is the best way to assemble layers when the architecture is not a straightforward one-direction or recurrent, but combines several parts in nonstandard ways. That's where I stumbled previously. I plan to get to that over time, but if someone has good examples already, I'd be glad to take a look at those. Unfortunately, despite the proven high-quality of MGL, there's very little open-source code that uses it.

Now, to make a model train (and watch it), we have to pass it to mgl:minimize alongside with a learner:


(defun train-nlp-fnn (&key data (batch-size 100) (epochs 1000) (n-hidden 100)
(random-state *random-state*))
(let ((*random-state* random-state)
(*agg-loss* ())
(opt (make 'mgl:segmented-gd-optimizer
:termination (* epochs batch-size)
:segmenter (constantly
(make 'mgl:adam-optimizer
:n-instances-in-batch batch-size))))
(fnn (make-nlp-mlp :n-hidden n-hidden)))
(mgl:map-segments (lambda (layer)
(mgl:gaussian-random!
(mgl:nodes layer)
:stddev (/ 2 (reduce '+ (mgl:mat-dimensions (mgl:nodes layer))))))
fnn)
(mgl:monitor-optimization-periodically
opt
`((:fn mgl:reset-optimization-monitors :period ,batch-size :last-eval 0)
(:fn draw-test-error :period ,batch-size)))
(mgl:minimize opt (make 'mgl:bp-learner
:bpn fnn
:monitors (mgl:make-cost-monitors
fnn :attributes `(:event "train")))
:dataset (sample-data data (* epochs batch-size)))
fnn))

This code is rather complex, so let me try to explain each part.

  • We use (let ((*random-state* random-state) to ensure that we can reproduce training in exactly the same way if needed.
  • mgl:segmented-gd-optimizer is a class that allows us to specify a different optimization algorithm for each segment (layer) of the network. Here we use the same standard mgl:adam-optimizer with vanilla parameters for each segment (constantly).
  • The following mgl:map-segments call is performing the Xavier initialization of the input layers. It is crucial to properly initialize the layers of the network before training or, at least, ensure that they are not all set to zeroes.
  • The next part is, finally, responsible for WATCHING THE MODEL TRAIN. mgl:monitor-optimization-periodically is a hook to make MGL invoke some callbacks that will help you peek into the optimization process (and, perhaps, do other needful things). That's where we insert our draw-test-error function that will run each batch. There's also an out-of-the-box cost-monitor attached directly to the mgl:bp-learner, which is collecting the data for us and also printing it on the screen. I guess, we could build the draw-test-error monitor in a similar way, but I opted for my favorite Lisp magic wand — a special variable *agg-loss*.
  • And last but not least, we need to provide the dataset to the model: (sample-adata data (* epochs batch-size)). The simple approach that I use here is to pre-sample the necessary number of examples beforehand. However, streaming sampling may be also possible with a different dataset-generating function.

Now, let's take a look at the function that is drawing the graph:


(defun draw-test-error (opt learner)
;; here, we print out the architecture and parameters of
;; our model and learning algorithm
(when (zerop (mgl:n-instances opt))
(describe opt)
(describe (mgl:bpn learner)))
;; here, we rely on the fact that there's
;; just a single cost monitor defined
(let ((mon (first (mgl:monitors learner))))
;; using some of RUTILS syntax sugar here to make the code terser
(push (pair (+ (? mon 'counter 'denominator)
(if-it (first *agg-loss*)
(lt it)
0))
(? mon 'counter 'numerator))
*agg-loss*)
(redraw-loss-graph)))

(defun redraw-loss-graph (&key (file "/tmp/loss.png") (smoothing 10))
(adw-charting:with-chart (:line 800 600)
(adw-charting:add-series "Loss" *agg-loss*)
(adw-charting:add-series
(fmt "Smoothed^~a Loss" smoothing)
(loop :for i :from 0
:for off := (* smoothing (1+ i))
:while (< off (length *agg-loss*))
:collect (pair (? *agg-loss* (- off (floor smoothing 2)) 0)
(/ (reduce ^(+ % (rt %%))
(subseq *agg-loss* (- off smoothing) off)
:initial-value 0)
smoothing))))
(adw-charting:set-axis :y "Loss" :draw-gridlines-p t)
(adw-charting:set-axis :x "Iteration #")
(adw-charting:save-file file)))

Using this approach, I could also draw the change of the validation loss on the same graph. And I'll do that in the next version.

ADW-CHARTING is my goto-library when I need to draw a quick-and-dirty chart. As you see, it is very straightforward to use and doesn't require a lot of explanation. I've looked into a couple other charting libraries and liked their demo screenshots (probably, more than the style of ADW-CHARTING), but there were some blockers that prevented me from switching to them. Maybe, next time, I'll have more inclination.  

To complete the picture we now need to display our learning progress not just with text running in the console (produced by the standard cost-monitor), but also by updating the graph. This is where Emacs' nature of a swiss-army knife for any interactive workflow came into play. Surely, there was already an existing auto-revert-mode that updates the contents of a Emacs buffer on any change or periodically. For my purposes, I've added this lines to my Emacs config:


(setq auto-revert-use-notify nil)
(setq auto-revert-interval 6) ; refresh every seconds

Obviously, this can be abstracted away into a function which could be invoked by pressing some key or upon other conditions occurring.

13:14

Link [Scripting News]

A frequently asked question -- where is Drummer and how much does it cost? Hopefully the link answers the first question. The About page answers the second. "You can use Drummer at no cost." Further: "Much of the software is open source." Why is it so inexpensive and will it always be that way? I don't have big plans to take over the universe. I just want to make sure that outlining, web scripting and easy, fluid blogging are not lost arts. I have been very lucky in my career, so at this point, money, at least the kind of money it takes to operate Drummer, is not an issue. So let's have fun and see where it takes us! 💥

12:28

CodeSOD: Like a Tree, and… [The Daily WTF]

Duncan B was contracting with a company, and the contract had, up to this point, gone extremely well. The last task Duncan needed to spec out was incorporating employee leave/absences into the...

Monday, 11 October

17:28

Foundation’s Edgy – DORK TOWER 01.10.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

15:56

Link [Scripting News]

The blog is an HTML rendering of the Change Notes outline. That link opens in Drummer, even if you're not logged in, and updates when there are new features or fixes. I would be honored if you leave that outline open in Drummer while you do your work, that way I can instantly inform you of new stuff. The file's icon will turn to green when there's news. It's the best channel I've had as a developer to users of my product. We've been using it in the Drummer test community. It really works. Instantly updating outlines are called instant outlines, btw.

15:14

Link [Scripting News]

There's a Drummer development blog with an RSS feed of course.

12:21

CodeSOD: Price Conversions [The Daily WTF]

Russell F has an object that needs to display prices. Notably, this view object only ever displays a price, it never does arithmetic on it. Specifically, it displays the prices for tires, which adds...

06:14

1547 [Looking For Group]

The post 1547 appeared first on Looking For Group.

Sunday, 10 October

23:21

Link [Scripting News]

If you have a question about Drummer, this is where it goes.

18:49

Link [Scripting News]

And now, we can start talking about Drummer in concrete terms. Finally. The first thing you should try in Drummer is to write a few blog posts. Follow the first part of the Blogging howto, do the Hello World post. Then write some more, about whatever you like. Learn how to write publicly in Drummer first, in other words. It's the best demo we have right now, today, in Oct 2021, of the power of outlines for public writing.

Link [Scripting News]

Another note and then I'll wait till tomorrow. In this case the Docs are a big part of the product. Back in February, I decided this time, rather than leave the docs as an afterthought, or hire someone else to write them, I would do it myself. For a couple of reasons. This could be the last big product ship I do in my career. Docs were always treated as an afterthought. I want to try, just once, making it not an afterthought. To let the docs have enough time to become something I'm proud of, and something I can invest more time in, like the software, after we ship. Instead of staying away from them, I wanted to reach in, and do it up. As a result I've done enough writing for a book this year, you'll see it not only in the docs linked into the sidebar of the docs pages, but also in the DocServer pages for each of the built-in scripting verbs. Lots and lots more to say.

18:07

Link [Scripting News]

Today is the 27th anniversary of this blog. To celebrate, I'm opening up Drummer to the world. I hope you love it as much as I do. ❤️

17:21

The other side of Agile [Scripting News]

My longtime friend and sometime collaborator Andrew Shell is part of a program to write 30 posts in 30 days. Yesterday he wrote a piece about his career, and I got an idea for him, that I initially posted in a comment on Facebook, but wanted to include here.

  • Andrew -- i had an idea for you.
  • First imho it would be a shame to ignore all the experience you have with software, both as a developer and a user.
  • You could do something great by focusing on the interface between users and developers. A lot has been done about how programmers can be more effective when they listen to users (agile), but as far as I know nothing about the other direction -- how users can learn to communicate more effectively with devs to get what they want and to influence the future.
  • It's a branch off what I keep coming back to -- we don't teach how to write great bug reports. It can be an incredible literary form, different from any other and they can be very human, because imho it's all about empathy. The user wants the dev to be empathetic with them, and the devs want empathy too, not just because it's more economical, but because it's because programmers are people too! A fact sometimes overlooked, perhaps.
  • Anyway, best of luck with your exploration Andrew.

BTW, as far as I know Andrew is posting these ideas on FB and Twitter, as screen shots, but I don't see where they're posted on the web. If they are, I'll add a link here. 😄

16:35

Link [Scripting News]

I'm shopping for a refrigerator. I've spent some time with various web interfaces, on Home Depot, Consumer Reports, Loew's, Best Buy, Amazon. They're all pretty bad, and could make a simple improvement that would completely eclipse the others. Here's the idea. I have a fixed space to put a fridge, and it's unusually narrow. I wish the designer of the house had left more space but it is what it is. Now, they make fridges in this shape, but they don't always have them in stock, esp now, when the supply chain is so disrupted. Here's the feature, it's a very Doc Searls-like thing, btw. I want to say hey Home Depot, this is the space I have. Let me know when you have a fridge I can buy that can be delivered within a couple of weeks. Instead they send me links to their website for refrigerators (at least they remembered that I'm shopping for one, so has Amazon) but they make me start over from scratch every time. That really sucks. Esp if they, at the moment, have a fridge that fits my very easy requirements. It would also be good for energy savings, because my current fridge is not running efficiently at all.

05:14

October 2021 Wallpaper: Scary Stories [Skin Horse]

Shaenon: For the record, the cryptids around the campfire are, left to right: Chupacabra, the Dover Demon, the Michigan Dogman, Mothman, Bigfoot, a Jersey Devil, and the Goatman. Thank you.

As usual, if you make a donation in any amount to the Skin Horse Tip Jar, or contribute any amount to our Patreon, we’ll give you a link to this wallpaper, designed for two computer desktop sizes and cell phones. Patreon contributors will continue to receive new wallpaper for the length of their contribution.

You’ll also receive this bonus October wallpaper from the archives:

Channing: These two are going to be so disappointed when they discover a few minutes from now that both their phones are out of charge. Man, these are some great designs. It makes me want to do a total Jonah/Nera/Zeta spinoff comic or something.

Saturday, 09 October

17:00

Link [Scripting News]

Google is apparently preparing to re-enter the market for RSS readers. Before they do, shouldn’t they explain why they dumped RSS, hurting the cause enormously, and why anyone should trust them now. If you're on Twitter please RT so users understand, they are not our friends.

16:14

Update for Drummer users [Scripting News]

I recorded a 24 minute podcast about what's going on.

I'm taking notes on changes, but not publishing them now, rather I'll post them all at once when it's time to open up.

I talk about some of those changes in the podcast.

Keep on truckin! ;-)

PS: I considered how we did the online docs for Frontier when doing Drummer's.

13:49

Corrections & Amplifications - WSJ - October 9th, 2021 [Planet GNU]

https://www.wsj.com/articles/corrections-amplifications-11633728902

The editor of the Wall Street Journal has retracted their article about the new Google Nest Thermostat feature by issuing a public correction announcement.

10:07

Second Foundation – DORK TOWER 29.09.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

Foundation and Empire – DORK TOWER 27.09.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

Foundation – DORK TOWER 24.09.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

Friday, 08 October

20:42

growing up, most of the best acting of my life took place off the set [WIL WHEATON dot NET]

TRIGGER WARNING: ABUSE I read this post on Tumblr, and it spoke to my lived experience in a loud and familiar voice. I posted it in comments on my Facebook […]

18:56

Link [Scripting News]

BTW, Anton got on my case about a bug in the Links tab on Scripting News not updating often enough. He noticed this because the same thing was happening on his Drummer blog. This got me off my ass to fix the problem. So if you're a fan of the Links tab here, rejoice -- it works about a million percent better thanks to Anton. This is the power of users who actually care, and pitch in to help.

Link [Scripting News]

All the breakage I'm experiencing with HTTPS sites on my Macbook gave me an idea -- how about a proxy server for HTTPS sites, making them accessible over HTTP. Seems quite doable.

13:42

Link [Scripting News]

Maybe other devs can make software without users, but not me. I need the feedback. I imagine it's like being a musician playing on a stage with no audience. Two users, in particular, have made the greatest contribution, Anton Zuiker and Ken Smith. Neither are devs. Anton works at Duke University as a research communication specialist. Ken is an English professor at Indiana University. Both are bloggers, both are intelligent, persevere, and put up with my demands (ahem). I need good bug reports, and they are learning, and the bugs are being fixed, and some have been quite vexing, as I've rewritten major parts of Drummer. I know it's been frustrating at times for them. I hope this is just the start of a wonderful new community. I know a bunch of other people are using Drummer, but Ken and Anton have been most actively helping the developer and that's very much appreciated.

Link [Scripting News]

Anton wrote an ode to Drummer yesterday.

Link [Scripting News]

Ken wanted to see how long it would take to write and publish a Drummer blog post. I'd love to see the same benchmark done with other blogging software.

12:00

Error'd: Money for Nothin' [The Daily WTF]

... and gigs for free. "Apple is magical," rhapsodizes music-lover Daniel W.   Meanwhile, in the overcast business district of Jassans-Riottier, where the stores are all closed but...

Thursday, 07 October

17:35

Google Rolls Out Emission-Curbing Tools for Nest Thermostat [Planet GNU]

https://www.wsj.com/articles/google-rolls-out-emission-curbing-tools-for-nest-thermostat-11633503660

This offering from Google is false advertising. There is no means for an electricity customer to select the source of the electricity provided to their premises.

14:14

Link [Scripting News]

It's a fitting moment to flip the switch, because Drummer will open the doors for a new fluid style of blogging, based on outlining. To create a post, you click the big plus icon and start typing. When you're ready to publish, choose a menu command. No more slogging your way through Wordpress menus or a static site generator. It all happens in a second or two. And making a change to your blog is as easy as making the change in your outline, and publishing -- again -- just one command and a couple of seconds. Welcome to the world where tools for thought meets publishing. Blogging at the speed of thought. Where nothing gets in your way.

13:28

Link [Scripting News]

Since Sunday is the 27th anniversary of blogging at scripting.com (or anywhere, for that matter), let's make that the day that the doors officially open for Drummer. There will still be things to do at that point, and that's ok. As they say software is a process.

12:21

CodeSOD: Making Newlines [The Daily WTF]

I recently started a new C++ project. As it's fairly small and has few dependencies, I made a very conscious choice to just write a shell script to handle compilation. Yes, a Makefile would be...

11:35

GNU nano 5.9 was released [Planet GNU]

Version 5.5 brought the option --minibar, for a minimized user interface, and version 5.6 brought the spotlighting of a search match, in black on yellow by default.  Subsequent versions added a few minor things and fixed some bugs.

06:35

1546 [Looking For Group]

The post 1546 appeared first on Looking For Group.

Wednesday, 06 October

22:49

LibrePlanet 2022 CFS office hours [Planet GNU]

Need help getting your session proposal in good shape? We're holding office hours in #LibrePlanet on Libera.chat every Thursday at 1 PM (EDT/EST).

22:07

LibrePlanet 2022 returns online: Submit your session proposal by Dec. 1 [Planet GNU]

The fourteenth edition of the Free Software Foundation's (FSF) conference on technology and social justice will be held in spring 2022, online. The Call for Sessions is now open, and will close on December 1, 2022. Potential talks should examine free software through the lens of this year's theme: Living Liberation.

17:42

The US is on fire [Scripting News]

This image is stark.

Pretty sure it was Photoshopped, so don't take it literally.

But it reminds that there was an earlier attack on the World Trade Center, in 1993, where the attackers tried to take down one of the buildings and failed. In the second attempt, both towers came down.

If this happened with the US Capitol, it would shatter America.

Link [Scripting News]

Facebook is so powerful because Obama shut down his campaign after winning in 2008. The tech industry organized the people around its values, which they were very open about. The Dems could've done it. Any news org could have. I begged them to do it, publicly and privately. Everyone who's complaining now, news people and politicians, punted, had no idea what FB did was possible, didn't listen when they were told. If they wanted their values represented, they should have done it themselves. That's how this works.

16:35

GFL – Page 0069 [Looking For Group]

Grouping For Looks is a page-by-page retelling of the Looking For Group saga through the lens of a mirror universe where Cale is a goateed tyrant and Richard is a holy soul trying to set him on a good path. […]

The post GFL – Page 0069 appeared first on Looking For Group.

14:42

Link [Scripting News]

I started watching Maid on Netflix but it was too depressing, and that’s saying something after watching Squid Game straight through.

Link [Scripting News]

If we default, the damage to the US economy will be permanent. It won't just be a recession, because we eventually get out of recessions. Poverty will explode. This time the US really will become a third world country. And it won't just cause chaos in the US, it'll be world wide. The media should start explaining what a reserve currency is, how the US dollar is basically the only one, and what advantages it gives us (they're huge). Increasing the debt limit costs us nothing, not even money because we can print the currency we repay our debt with. All the Repub hype about economics is, like everything else they say, a lie. The US isn't a family on a budget, it's the foundation on which the world economy runs. Look at it this way, if your family could repay its debt by writing numbers on a piece of paper, would you worry about how much you owe? That a simple version of the reality for the US and our dollar.

Link [Scripting News]

How about if we put together say $5 million offer to give to Sinema and Manchin if they vote for the big reconciliation package? If the bigco’s can bribe them, why not the people? It’ll end their careers of course, but at least they’ll have some money to soften the blow.

Link [Scripting News]

Poll: Which should I get, Tesla or Peloton, neither or both?

12:07

Editor's Soapbox: Eff Up Like It's Your Job [The Daily WTF]

This past Monday, Facebook experienced an outage which lasted almost six hours. This had rattle-on effects. Facebook's pile of services all failed, from the core application to WhatsApp to...

Tuesday, 05 October

22:42

Link [Scripting News]

Apple's Celebrating Steve Jobs video. Ten years since Steve Jobs died. Watching this video takes me back many years, to when we were young and full of hope and right in the middle of the whole thing. I had the same realization he had, that you can make the world conform to your ideas rather than the other way around. It may feel like things stay constant, but they're always changing. And the people who made the rules were no smarter or better than I am. I still hope to be able to pull a few more rabbits out of my hat.

21:56

Blamebook – 22.09.21 [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

20:21

Evangelical White Fragility in action [WIL WHEATON dot NET]

Last week, I came across an image that sparked a reflection on a lot of the trauma I experienced as a child. It’s trauma that lingers in my life, and […]

16:28

Top Comments – Pages 1541 – 1544 [Looking For Group]

Tuesday, YOU are the star! We curate our favourites from the previous week’s comments on lfg.co and Facebook and remind you how clever you are. Here are your top comments for Looking For Group pages 1541 – 1544. Looking For […]

The post Top Comments – Pages 1541 – 1544 appeared first on Looking For Group.

15:49

Facebook is us [Scripting News]

Rant!

  • The bullshit about Facebook keeps coming. It's not a fucking autocracy, it's a carrier. You could say everything you say about FB about a city like NY. All the companies selling cigarettes were once hq'd in NY. The mayor of NY must be a cancer criminal, right? Such idiots. The journalists have no sense of perspective on what Facebook is. It's hundreds the size of a city like NY. So much happens there. It's created mostly by the people who use it. It's what remains of all the great ideas of networking in the 90s and 00s. A ton of good stuff happens in FB, and a bunch of nasty shit, because -- because Facebook is us -- it's human. Get a fucking grip pundits. You're making asses of yourselves. I tried watching CNN last night. All these people fighting for their own continued existence and to hide the depravity of journalism are desperate to blame FB for fear someone might blame them. I was expecting to see McNamee (longtime friend) on TV last night, thankfully maybe he's gotten a bit of perspective himself, and realizes it isn't just about Zuckerberg.

Plan

  • How to radically restructure FB.
  • Separate the users and the content from everything else.
  • Now figure out what that means and we have a plan. ;-)

13:28

Radar trends to watch: October 2021 [Radar]

The unwilling star of this month’s trends is clearly Facebook. Between reports that they knew about the damage that their applications were causing long before that damage hit the news, their continued denials and apologies, and their attempts to block researchers from studying the consequences of their products, they’ve been in the news almost every day. Perhaps the most interesting item, though, is the introduction of Ray-Ban Stories, a pair of sunglasses with a camera built in. We’ve been talking about virtual and augmented reality for years; when will it enter the mainstream? Will Stories be enough to make it cool, or will it have the same fate as Google Glass?

AI

  • Researchers at Samsung and Harvard are proposing to copy the neuronal interconnections of parts of the brain, and “paste” them onto a semiconductor array, creating an integrated circuit that directly models the brain’s interconnections.
  • Using AI to understand “lost” languages, written languages that we don’t know how to translate, isn’t just about NLP; it sometimes requires deciphering damaged texts (such as eroded stone tablets) where humans can no longer recognize the written characters.
  • Inaccurate face recognition is preventing people from getting necessary government aid, and there are few (if any) systems for remediation.
  • DeepMind has been studying techniques for making the output of language generation models like GPT-3 less toxic, and found that there are no good solutions.
  • Apple is working on iPhone features to detect depression, cognitive decline, and autism.  A phone that plays psychiatrist is almost certainly a bad idea. How intrusive do you want your phone to be?
  • Reservoir computing is a neural network technique that has been used to solve computationally difficult problems in dynamic systems. It is very resource intensive, but recent work has led to speedups by factors of up to a million. It may be the next step forward in AI.
  • Can AI be used to forecast (and even plan) the future of scientific research?  Not yet, but one group is working on analyzing the past 10 years of research for NASA’s Decadal Survey.
  • There have been many articles about using AI to read X-Rays. This one covers an experiment that uses training data from multiple sources to reduce one of the problems plaguing this technology: different X-ray machines, different calibration, different staff. It also places a human radiologist in the loop; the AI is only used to detect areas of possible abnormality.
  • It isn’t a surprise, but undergraduates who are studying data science receive little training in ethics, including issues like privacy and systemic bias.
  • Stanford’s Institute for Human-Centered Artificial Intelligence is creating a group to study the impact of “foundational” models on issues like bias and fairness. Foundational models are very large models like GPT-3 on which other models are built. Problems with foundational models are easily inherited by models on top of them.
  • Can machine learning learn to unlearn?  That may be required by laws like GDPR and the European “right to be forgotten.” Can a model be trained to eliminate the influence of some of its training data, without being retrained from the beginning?
  • Deep Mind’s technology for up-scaling image resolution looks really good. It produces excellent high-resolution images from pixelated originals, works on natural scenes as well as portraits, and they appear to have used a good number of Black people as models.
  • Amazon has announced details about Astro, its home robot. But questions remain: is this a toy? A data collection ploy? I don’t know that we need something that follows you around playing podcasts. It integrates with Amazon products like Ring and Alexa Guard.

Security

  • Is self-healing cybersecurity possible by killing affected containers and starting new ones? That’s an interesting partial solution to cloud security, though it only comes into play after an attack has succeeded.
  • With three months to go in 2021, we’ve already seen a record number of zero-day exploits. Is this a crisis? Or is it good news, because bad actors are discovered more effectively? One thing is clear: discovering new 0days is becoming more difficult, making them more valuable.
  • The FBI had the decryption key for the Kaseya ransomware attack, but delayed sharing it with victims for three weeks. The FBI claims it withheld the key because it was planning a counterattack against the REvil group, which disappeared before the attack was executed.
  • Privacy for the masses? iOS 15 has a beta “private relay” feature that appears to be something like TOR. And Nahoft, an application for use in Iran, encodes private messages as sequences of innocuous words that can get by automated censors.
  • HIPv2 is an alternative to TLS that is designed for implementing zero-trust security for embedded devices.
  • Kubescape is an open source tool to test whether Kubernetes has been deployed securely.  The tests are based on the NSA’s guidance for hardening Kubernetes.
  • Rootkits are hardly new, but now they’re being used to attack containers. Their goal is usually to mine bitcoin, and to hide that mining from monitoring tools. Tracee is a new tool, built with eBPF, that may help to detect successful attacks.

User Interfaces

  • Kids these days don’t understand files and directories. Seriously, Google’s dominance in everyday life means that users expect to find things through search. But search is often inadequate. It will be important for software designers to think through these issues.
  • Holograms you can touch? Aerohaptics uses jets of air to create the feeling of “touch” when interacting with a hologram. Another step towards the Star Trek Holodeck.
  • Fraunhofer has developed a system for detecting whether a driver is tired or asleep.  Software like this will be particularly important for semi-automated driving systems, which require support from a human driver.

Programming

  • What is property based testing, anyway? Fuzzing? Unit tests at scale? Greater testing discipline will be required if we expect AI systems to generate code. Can property-based testing get there?
  • Google Cloud has introduced Supply Chain Twin, a “digital twin” service for supply chain management.
  • Open VSCodeServer is an open source project that allows VSCode to run on a remote machine and be accessed through a web browser.
  • Ent is an open source object-relational mapping tool for Go that uses graph concepts to model the database schema. Facebook has contributed Ent to the CNCF.
  • Glean is an open source search engine for source code.  Looks like it’s a LOT better than grepping through your src directories.
  • Urbit looks like it could be an interesting operating system for decentralized peer-to-peer applications.

Law

  • Facebook on regulation: Please require competitors to do the things we do. And don’t look at targeted advertising.
  • NFTs, generative art, and open source: do we need a new kind of license to protect artistic works that are generated by software?
  • China issues a Request for Comments on their proposed social media regulations. Google Translate’s translation isn’t bad, and CNBC has a good summary. Users must be notified about the use of algorithmic recommendations; users must be able to disable recommendations; and algorithmic recommendations must not be designed to create addictive behavior.
  • South Korea has passed a law that will force Apple and Google to open their devices to other app stores.
  • Research by Google shows that, worldwide, Government-ordered Internet shutdowns have become much more common in the past year. These shutdowns are usually to suppress dissent. India has shut down Internet access more than any other country.

Biology

  • George Church’s startup Colossal has received venture funding for developing “cold tolerant Asian elephants” (as Church puts it), a project more commonly known as de-extincting Wooly Mammoths.
  • Researchers at NYU have created artificial cell-like objects that can ingest, process, and expel objects. These aren’t artificial cells, but represent a step towards creating them.

Hardware

  • A breakthrough in building phase change memory that consumes little power may make phase change memory practical, allowing tighter integration between processors and storage.
  • Mainframes aren’t dead. The Telum is IBM’s new processor for its System Z mainframes. 7nm technology, 5 GHz base clock speed, 8 cores, 16 threads per core; it’s a very impressive chip.
  • One of Google’s X companies has deployed a 20 Gbps Internet trunk using lasers. The connection crosses the Congo River, a path that is difficult because of the river’s depth and speed.  This technology could be used in other places where running fiber is difficult.
  • Facebook and Ray-Ban have released smart glasses (branded as Ray-Ban Stories), which are eyeglasses with a built-in camera and speakers. This is not AR (there is no projector), but a step on the way. Xiaomi also appears to be working on smart glasses, and Linux is getting into the act with a work-oriented headset called Simula One.

Quantum Computing

  • IBM introduces Qiskit Nature, a platform for using quantum computers to experiment with quantum effects in the natural sciences. Because these experiments are about the behavior of quantum systems, they (probably) don’t require the error correction that’s necessary to make quantum computing viable.
  • Want to build your own quantum computer?  IBM has open sourced Qiskit Metal, a design automation tool for superconducting quantum computers.
  • Curiously-named Valleytronics uses electrons’ “valley pseudospin” to store quantum data. It might enable small, room-temperature quantum computers.

Social Media

  • Facebook has put “Instagram for Kids” on hold. While they dispute the evidence that Instagram harms teenagers, public outcry and legislative pressure, along with Facebook’s own evidence that Instagram is particularly damaging to teenage girls, has caused them to delay the release.
  • Twitter is allowing bot accounts to identify themselves as bots.  Labeling isn’t mandatory.
  • Facebook adds junk content to its HTML to prevent researchers from using automated tools to collect posts.

12:35

CodeSOD: Unzipped [The Daily WTF]

When you promise to deliver a certain level of service, you need to live up to that promise. When your system is critical to your customers, there are penalties for failing to live up to that...

03:00

Link [Scripting News]

So if Facebook is evil, why isn’t Apple evil too, because there couldn’t have been a Facebook without the iPhone. The answer is neither is evil. They're both big companies, no better or worse than companies in other industries.

Monday, 04 October

16:21

Link [Scripting News]

I had this thought when I was driving into San Francisco in 1979 -- I bet I know a bunch of people here, but I have no way to find them. At some point between then and now, that vision was achieved. Add that to the list of things Facebook is other than Mark Z. I think it's time for people with a sense of the foundations Facebook is built on speak up and say what it represents. The press, given the benefit of the doubt, has no clue.

13:28

Nicolas Hafner: Patch update, holidays, and the GIC - October Kandria Update [Planet Lisp]

https://filebox.tymoon.eu//file/TWpNM013PT0=

A shorter monthly update for once, as this included two weeks of holidays, in which we were both morally, legally, and bound by higher powers unbeknown to us forbidden from working on Kandria. Regardless, progress was made, and news are here to be shared, so an update was written!

Kandria Patch Update

A patch update is live that fixes the issues that were reported to us through the automated crash system. You can get the update from the usual link on the mailing list. I'm happy to say that there were not a lot of these to fix!

Of course, if you haven't yet had time to check out the new demo release, we hope you'll do so soon! We're always very excited to hear people's thoughts on what we have so far.

Holidays

We don't have too much to show for this update, as we had a nice two weeks of holiday. I, for my part, spent some days down in Italy, which was really nice. Great weather for the most part, and it was great to have a proper change of scenery and schedule for once!

https://filebox.tymoon.eu//file/TWpNM05BPT0=

Because I'm me and can't help it, I did do some work as well during my holidays. I made some good progress on a project I've had in the slow cooker for years now, which will ultimately also be useful for Kandria, to support its modding system. But, more importantly to me, I finally got back into drawing more regularly again and made some pieces I'm actually quite happy with.

Wow! If what I wrote sounded any more confident, I'd have to mistake it for a toilet paper advertisement!

Game Industry Conference

Later this month is the Game Industry Conference, in which we'll be taking part. Once again, sponsored thanks to Pro Helvetia! I submitted a talk for the conference and actually got accepted for it as well, so I'll be presenting there in person. I don't know the exact date of my talk yet, but I'll be sure to announce it ahead of time on Twitter as soon as I do know.

If you're in Poland or are attending the conference yourself, let me know! I'd be happy to meet up!

Tim

This was a shorter month for me as I was on holiday for weeks. However, I've been researching key streamers and influencers that I'd previously highlighted for us, since they'd covered games similar to Kandria, and sending out emails to promote the new demo. Nick got some great feedback from Chris Zukowski on how to format these, which involved finding a hook in an influencer's content that I could latch onto, to show I'd actually engaged with their content. Nick also fed back on the horizontal slice quest designs I've been doing, which map out the rest of the narrative to the end of the game. This has been great to get some new eyes and steers on, and will help tighten up the content and manage the scope.

Fred & Mikel

These two have already started into content for the new areas. We're currently hashing out the look and feel, for which the second region is already getting close to final. We don't have any screenshots or music to show you yet though, you'll have to be a bit more patient for that.

Roadmap

As always, let's look at the roadmap from last month.

  • Fix reported crashes and bugs

  • Add telemetry to allow detecting problematic gameplay behaviour

  • Add more stats tracking for later achievements and ranking

  • Allow changing press actions to toggle actions in the input mapper

  • Add unlockable items and a fishing encyclopedia

  • Implement RPG mechanics for levelling and upgrades

  • Explore platforming items and mechanics

  • Practise platforming level design

  • Draft out region 2 main quest line levels and story

  • Draft out region 3 main quest line levels and story

  • Complete the horizontal slice

Oops! None of the items we had on there last time changed yet. But, some other important things were added and fixed already. Anyway, we'll start to get to the other things this month.

Until that's ready, I sincerely hope you give the new demo a try if you haven't yet. Let us know what you think if you do or have already!

11:49

Totally Up To Date [The Daily WTF]

The year was 2015. Erik was working for LibCo, a company that offered management software for public libraries. The software managed inventory, customer tracking, fine calculations, and everything...

07:07

automake-1.16.5 released [stable] [Planet GNU]

This is to announce automake-1.16.5, a stable release.

Thanks to Karl for doing all the real work.
See the NEWS below for a brief summary.

There have been 18 commits by 6 people in the 10 weeks since 1.16.4.

See the NEWS below for a brief summary.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Akim Demaille (1)
  Dimitri Papadopoulos (1)
  Jan Engelhardt (1)
  Jim Meyering (6)
  Karl Berry (8)
  Nick Bowler (1)

Jim [on behalf of the automake maintainers]
==================================================================

Here is the GNU automake home page:
    http://gnu.org/s/automake/

Here are the compressed sources:
  https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz (1.6MB)
  https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz (2.3MB)

Here are the GPG detached signatures[*]:
  https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz.sig
  https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz.sig

Use a mirror for higher download bandwidth:
  https://ftpmirror.gnu.org/automake/automake-1.16.5.tar.xz
  https://ftpmirror.gnu.org/automake/automake-1.16.5.tar.gz

Here are the SHA1 and SHA256 checksums:

8B1YzW2dd/vcqetLvV6tGYgij9tz1veiAfX41rEYtGk  automake-1.16.5.tar.xz
B70krQimS8FyUM4J7FbpIdY0OQOUPpnM9ju/BwXjRgU  automake-1.16.5.tar.gz

Each SHA256 checksum is base64 encoded, instead of the
hexadecimal encoding that most checksum tools default to.

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify automake-1.16.5.tar.xz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE

and rerun the 'gpg --verify' command.

Please report bugs and problems to <bug-automake@gnu.org>,
and send general comments and feedback to <automake@gnu.org>.

==================================================================
NEWS

* Bugs fixed

  - PYTHON_PREFIX and PYTHON_EXEC_PREFIX are now set according to
    Python's sys.* values only if the new configure option
    --with-python-sys-prefix is specified. Otherwise, GNU default values
    are used, as in the past. (The change in 1.16.3 was too incompatible.)

  - consistently depend on install-libLTLIBRARIES.

* Distribution

  - use const for yyerror declaration in bison/yacc tests.

07:00

1545 [Looking For Group]

The post 1545 appeared first on Looking For Group.

Sunday, 03 October

21:42

two pictures in a scrapbook [WIL WHEATON dot NET]

I spent much of last week doing some work to move something from being an Idea to being A Thing. I’m still not sure that it’s going to be the […]

05:21

Just Some Sketches [Skin Horse]

Shaenon: Random doodles. I haven’t gotten to draw Artie and Sergio together in the comic as much as I’d like, so I sketch them in my notebooks.

Channing: I really liked writing Cinnamon the cat, for the little time that we saw her! I know she existed largely as a relief/foil character for the other folks in her storyline (who all took things pretty seriously most of the time!) but she was still fun to write.

Saturday, 02 October

Friday, 01 October

12:28

Error'd: Persnickety Sticklers Redux [The Daily WTF]

This week's installation of Error'd includes a few submissions which honestly don't seem all that WTFy. In particular, this first one from the unsurnamed Steve. I've included it...

08:14

02:00

Page 16 [Flipside]

Page 16 is done.

01:07

FSF announces JShelter browser add-on to combat threats from nonfree JavaScript [Planet GNU]

BOSTON, Massachusetts, USA -- Thursday, September 30th, 2021 -- The Free Software Foundation (FSF) today announced the JShelter project, an anti-malware Web browser extension to mitigate potential threats from JavaScript, including fingerprinting, tracking, and data collection. The project is supported by NLnet Foundation's Next Generation Internet (NGI) Zero Privacy & Trust Enhancing Technologies fund. Collaborators include Libor Polčák and Bednář Martin (Brno University of Technology), Giorgio Maone (NoScript), and Ana Isabel Carvalho and Ricardo Lafuente (Manufactura Independente). The JShelter browser add-on is in development and the first release is available.

Thursday, 30 September

23:35

Keeping your freedom intact when registering or renewing as a DMCA agent [Planet GNU]

DMCA agent registration only lasts three years before it must be renewed. Use these add-ons to register and renew without the use of nonfree JavaScript.

16:07

GNU Anastasis v0.2.0 released [Planet GNU]

GNU Anastasis is a Free Software protocol and implementation that allows users to securely deposit core secrets with an open set of escrow providers and to recover these secrets if their original copies are lost.

GNU Anastasis v0.1.0 released [Planet GNU]

GNU Anastasis is a Free Software protocol and implementation that allows users to securely deposit core secrets with an open set of escrow providers and to recover these secrets if their original copies are lost.

14:35

GNU Anastasis v0.2.0 released [Planet GNU]

GNU Anastasis is a Free Software protocol and implementation that allows users to securely deposit core secrets with an open set of escrow providers and to recover these secrets if their original copies are lost.

14:21

Empire Games (and Merchant Princes): the inevitable spoiler thread! [Charlie's Diary]

It's launch day for Invisible Sun in the UK today, so without further ado ...

This is a comment thread for Q&A about the Merchant Princes/Empire Games series.

Ask me your questions via the comments below the huge honking cover image (it's a spoiler spacer!) and I'll try to answer them.

(Disclaimer: These books were written over a 19 year period, starting in mid-2002, and I do not remember every last aspect of the process ... or of the world-building, for I last re-read the original series in 2012, and I'm a pantser: there is no gigantic world book or wiki I can consult for details that slipped my memory).

Invisible Sun Cover

13:49

MediaGoblin 0.12.0: Potions [Planet GNU]

Potions "Potions" by Charlotte Koch (reproduced with permission)

Happy Software Freedom Day! Today we're pleased to announce the release of MediaGoblin 0.12.0. See the release notes for full details and upgrading instructions.

This release resolves two significant issues in the Celery backend media processing. The first was causing processed media to be marked as failed and the second was inhibiting useful error messages. We've also resolved installation issues caused by deprecated upstream code in the Werkzeug and jsonschema libraries.

We've added provisional gmg serve and gmg celery commands to simplify deployment. These commands may change in the future and are not yet recommended in the deployment documentation. If your deployment is already running smoothly, there's no reason to switch at this stage.

Thanks to Rodrigo Martins, Marco Pessotto and Jgart for their contributions in this release. Thanks again to Charlotte for allowing us to feature her artwork.

To join us and help improve MediaGoblin, please visit our getting involved page.

11:35

The Boulder Factory [The Daily WTF]

Like a lot of HR systems, the one at Initech had grown into a complicated mess of special cases, edge cases, and business rules that couldn't be explained but had to be followed. Mark was...

06:35

1544 [Looking For Group]

The post 1544 appeared first on Looking For Group.

Wednesday, 29 September

21:14

Page 15 [Flipside]

Page 15 is done.

Page 14 [Flipside]

Page 14 is done.

Page 13 [Flipside]

Page 13 is done.

Page 12 [Flipside]

Page 12 is done.

Page 11 [Flipside]

Page 11 is done.

16:14

Face to Facebook – DORK TOWER [Dork Tower]

HELP GET MORE DORK TOWER INTO THE WORLD! Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!


12:21

And FORTRAN, FORTRAN So Far Away [The Daily WTF]

A surprising amount of the world runs on FORTRAN. That's not to say that huge quantities of new FORTRAN are getting written, though it's far from a dead language, but that there are vital...

Tuesday, 28 September

20:42

Face-Off – DORK TOWER 17.09.21 [Dork Tower]

WANT MORE DORK TOWER IN YOUR LIFE? Support the Dork Tower Patreon campaign! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us!

12:07

CodeSOD: Golfing Over a Log [The Daily WTF]

Indirection is an important part of programming. Wrapping even core language components in your own interfaces is sometimes justifiable, depending upon the use cases. But like anything else, it can...

Monday, 27 September

11:56

CodeSOD: Terned Around About Nullables [The Daily WTF]

John H works with some industrial devices. After a recent upgrade at the falicity, the new control software just felt like it was packed with WTFs. Fortunately, John was able to get at the C# source...

08:56

09/24/21 PHD comic: '...Said No Academic Ever.' [PHD Comics]

Piled Higher & Deeper by Jorge Cham
www.phdcomics.com
Click on the title below to read the comic
title: "...Said No Academic Ever." - originally published 9/24/2021

For the latest news in PHD Comics, CLICK HERE!

07:00

1543 [Looking For Group]

The post 1543 appeared first on Looking For Group.

02:21

Sunday, 26 September

05:35

GN Thumbnails [Skin Horse]

Shaenon: Since I post a lot of Skin Horse thumbnails, I thought I’d share what my thumbnails for longform comics look like. These are for a graphic novel I’m shopping around right now.

Channing: I have absolutely no idea what’s going on here and I already love it!

Saturday, 25 September

18:28

09/25/21 [Flipside]

Hello, sorry to everyone for the continued no pages and no streams. I have some personal issues to work through at the moment. I'll keep you all posted to how things are going.

Friday, 24 September

17:28

Invisible Sun: signed copies and author events [Charlie's Diary]

Invisible Sun comes out next week!

If you want to order signed copies, they're available from Transreal Fiction in Edinburgh: I'll be dropping in some time next week to sign them, and Mike will ship them on or after the official release date. (He's currently only quoting UK postage, but can ship overseas: the combination of Brexit and COVID19 has done a whammy on the post office, however things do appear to be moving—for now.)

I'm also doing a couple of virtual events.

First up, on Tuesday the 28th, is a book launch/talk for Tubby And Coos Book Shop in New Orleans; the event starts at 8pm UK time (2pm local) with streaming via Facebook, YouTube, and Crowdcast.

Next, on Wednesday September the 29th, is the regular Tom Doherty Associates (that's Tor, by any other name) Read The Room webcast, with a panel on fall fantasy/SF launches from Tor authors—of whom I am one! Register at the link above if you want to see us; the event starts at 11pm (UK time) or 6pm (US eastern time).

There isn't going to be an in-person reading/book launch in Edinburgh this time round: it's beginning to turn a wee bit chilly, and I'm not ready to do indoors/in your face events yet. (Maybe next year ...)

16:28

It’s Piracy, Charlie Brown – DORK TOWER 15.09.21 [Dork Tower]

Become a DORK TOWER Patreon! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us reach that! We have a ton of fun! Also: swag!

16:07

Subject: coreutils-9.0 released [stable] [Planet GNU]

This is to announce coreutils-9.0, a stable release.

This is a new major release, with these significant changes:
  - cp has changed how it handles data
    - enables CoW by default (through FICLONE ioctl),
    - uses copy offload where available (through copy_file_range),
    - detects holes differently (though SEEK_HOLE)
    - This also applies to mv and install.

  - utilities are more tuned to the hardware available
    - wc uses avx2 instructions to count lines
    - cksum uses pclmul instructions for --algorithm=crc

  - More amalgamation of utilities
    - cksum now supports the -a option to select any digest.
    - This is the preferred interface, rather than sha*sum etc.
    - This is similar to the amalgamation of encoding utilities
      introduced in the basenc command in v8.31.
See the NEWS below for more details.

Thanks to everyone who has contributed!
There have been 257 commits by 25 people in the 81 weeks since 8.32
  Andreas Schwab (1)              KOBAYASHI Takashi (2)
  Arman Absalan (1)               Kamil Dudka (4)
  Assaf Gordon (1)                Kristoffer Brånemyr (3)
  Ben Pfaff (1)                   Nikolay Nechaev (1)
  Benno Schulenberg (1)           Nishant Nayan (1)
  Bernhard Voelker (17)           Paul Eggert (97)
  Carl Edquist (2)                Pádraig Brady (110)
  Emanuele Giacomelli (1)         Tianjia Zhang (1)
  Erik Auerswald (1)              Tim Gates (1)
  Grigorii Sokolik (2)            Tobias Stoeckmann (1)
  Jason Kim (1)                   Zorro Lang (1)
  Jim Meyering (7)                nl6720 (1)
  Justin Tracey (1)

Pádraig [on behalf of the coreutils maintainers]

==================================================================

Here is the GNU coreutils home page:
   https://gnu.org/software/coreutils/

For a summary of changes and contributors, see:
   https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.0
or run this command from a git-cloned coreutils directory:
   git shortlog v8.32..v9.0

To summarize the 1615 gnulib-related changes, run these commands
from a git-cloned coreutils directory:
   git checkout v9.0
   git submodule summary v8.32

==================================================================


Here are the compressed sources:
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.gz   (14MB)
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz   (5.4MB)

Here are the GPG detached signatures[*]:
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.gz.sig
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.0.tar.xz.sig

Use a mirror for higher download bandwidth:
  https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

027a318930f295cb5bbc0dd06fb47a3b8552fc80  coreutils-9.0.tar.gz
b9TriKUVAEl3/HLX9HtAYgQJzEHfrwBBn90b4XZjxDQ  coreutils-9.0.tar.gz
e2623469f37259d4a89ced5f91af5eaf0ab8792d  coreutils-9.0.tar.xz
zjCs30pBvFuzDdlV6eqnX6IWtOPesIiJ7TJDPHs7l84  coreutils-9.0.tar.xz

The SHA256 checksum is base64 encoded, instead of the
hexadecimal encoding that most checksum tools default to.

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify coreutils-9.0.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys DF6FD971306037D9

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.71
  Automake 1.16.4
  Gnulib v0.1-4937-g9aca7b673
  Bison 3.7.4

==================================================================

NEWS

* Noteworthy changes in release 9.0 (2021-09-24) [stable]

** Bug fixes

  chmod -v no longer misreports modes of dangling symlinks.
  [bug introduced in coreutils-5.3.0]

  cp -a --attributes-only now never removes destination files,
  even if the destination files are hardlinked, or the source
  is a non regular file.
  [bug introduced in coreutils-8.6]

  csplit --suppress-matched now elides the last matched line
  when a specific number of pattern matches are performed.
  [bug introduced with the --suppress-matched feature in coreutils-8.22]

  df no longer outputs duplicate remote mounts in the presence of bind mounts.
  [bug introduced in coreutils-8.26]

  df no longer mishandles command-line args that it pre-mounts
  [bug introduced in coreutils-8.29]

  du no longer crashes on XFS file systems when the directory hierarchy is
  heavily changed during the run.
  [bug introduced in coreutils-8.25]

  env -S no longer crashes when given unusual whitespace characters
  [bug introduced in coreutils-8.30]

  expr no longer mishandles unmatched \(...\) in regular expressions.
  [bug introduced in coreutils-6.0]

  ls no longer crashes when printing the SELinux context for unstatable files.
  [bug introduced in coreutils-6.9.91]

  mkdir -m no longer mishandles modes more generous than the umask.
  [bug introduced in coreutils-8.22]

  nl now handles single character --section-delimiter arguments,
  by assuming a second ':' character has been specified, as specified by POSIX.
  [This bug was present in "the beginning".]

  pr again adjusts tabs in input, to maintain alignment in multi column output.
  [bug introduced in coreutils-6.9]

  rm no longer skips an extra file when the removal of an empty directory fails.
  [bug introduced by the rewrite to use fts in coreutils-8.0]

  split --number=K/N will again correctly split chunk K of N to stdout.
  Previously a chunk starting after 128KiB, output the wrong part of the file.
  [bug introduced in coreutils-8.26]

  tail -f no longer overruns a stack buffer when given too many files
  to follow and ulimit -n exceeds 1024.
  [bug introduced in coreutils-7.5]

  tr no longer crashes when using --complement with certain
  invalid combinations of case character classes.
  [bug introduced in coreutils-8.6]

  basenc --base64 --decode no longer silently discards decoded characters
  on (1024*5) buffer boundaries
  [bug introduced in coreutils-8.31]

** Changes in behavior

  cp and install now default to copy-on-write (COW) if available.

  cp, install and mv now use the copy_file_range syscall if available.
  Also, they use lseek+SEEK_HOLE rather than ioctl+FS_IOC_FIEMAP on sparse
  files, as lseek is simpler and more portable.

  On GNU/Linux systems, ls no longer issues an error message on a
  directory merely because it was removed.  This reverts a change
  that was made in release 8.32.

  ptx -T no longer attempts to substitute old-fashioned TeX escapes
  for 8-bit non-ASCII alphabetic characters.  TeX indexes should
  instead use '\usepackage[latin1]{inputenc}' or equivalent.

  stat will use decomposed (major,minor) device numbers in its default format.
  This is less ambiguous, and more consistent with ls.

  sum [-r] will output a file name, even if only a single name is passed.
  This is consistent with sum -s, cksum, and other sum(1) implementations.

** New Features

  cksum now supports the -a (--algorithm) option to select any
  of the existing sum, md5sum, b2sum, sha*sum implementations etc.
  cksum now subsumes all of these programs, and coreutils
  will introduce no future standalone checksum utility.

  cksum -a now supports the 'sm3' argument, to use the SM3 digest algorithm.

  cksum --check now supports auto detecting the digest type to use,
  when verifying tagged format checksums.

  expr and factor now support bignums on all platforms.

  ls --classify now supports the "always", "auto", or "never" flags,
  to support only outputting classifier characters if connected to a tty.

  ls now accepts the --sort=width option, to sort by file name width.
  This is useful to more compactly organize the default vertical column output.

  ls now accepts the --zero option, to terminate each output line with
  NUL instead of newline.

  nl --line-increment can now take a negative number to decrement the count.

  stat supports more formats for representing decomposed device numbers.
  %Hd,%Ld and %Hr,%Lr will output major,minor device numbers and device types
  respectively.  %d corresponds to st_dev and %r to std_rdev.

** Improvements

  cat --show-ends will now show \r\n as ^M$.  Previously the \r was taken
  literally, thus overwriting the first character in the line with '$'.

  cksum [-a crc] is now up to 4 times faster by using a slice by 8 algorithm,
  and at least 8 times faster where pclmul instructions are supported.
  A new --debug option will indicate if pclmul is being used.

  md5sum --check now supports checksum files with CRLF line endings.
  This also applies to cksum, sha*sum, and b2sum.

  df now recognizes these file systems as remote:
  acfs, coda, fhgfs, gpfs, ibrix, ocfs2, and vxfs.

  rmdir now clarifies the error if a symlink_to_dir/ has not been traversed.
  This is the case on GNU/Linux systems, where the trailing slash is ignored.

  stat and tail now know about the "devmem", "exfat", "secretmem", "vboxsf",
  and "zonefs" file system types.  stat -f -c%T now reports the file system
  type, and tail -f uses polling for "vboxsf" and inotify for the others.

  timeout now supports sub-second timeouts on macOS.

  wc is up to 5 times faster when counting only new line characters,
  where avx2 instructions are supported.
  A new --debug option will indicate if avx2 is being used.

12:07

Error'd: ;pam ;pam ;pam ;pam [The Daily WTF]

One of this week's entries is the type that drives me buggy. Guess which one. Regular contributor Pascal splains this shopping saga: "Amazon now requires anti-virus software to have an...

Thursday, 23 September

20:28

Facepalmbook – DORK TOWER 13.10.21 [Dork Tower]

Become a DORK TOWER Patreon! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us reach that! We have a ton of fun! Also: swag!

17:21

Eric Timmons: New Project: cl-tar [Planet Lisp]

I have just published the first release of a new project: cl-tar. This was supposed to be my summer side-project, but it ran long as they often do :).

The goal of this project is to provide a Common Lisp interface to tar archives. It has its foundations in Nathan Froyd's archive library, but has been significantly extended and improved.

cl-tar-file

There are actually two subprojects under the cl-tar umbrella. The first is cl-tar-file, which provides the ASDF system and package tar-file. This project provides low-level access to physical entries in tar files. As a consequence, two tar files that extract to the same set of files on your filesystem may have two very different sets of entries of tar-file's point of view, depending on the tar format used (PAX vs ustar vs GNU vs v7).

The cl-tar-file project is technically a fork of archive. Except, all non-portable bits have been removed (such as code to create symlinks), better support for the various archive variants has been added, better blocking support added (tar readers/writers are supposed to read/write in some multiple of 512 bytes), cpio support removed, and a test suite added, along with other miscellaneous fixes and improvements.

cl-tar

The second sub project is cl-tar itself, which provides three ASDF systems and packages: tar, tar-simple-extract, and tar-extract.

The tar system provides a thin wrapper over the tar-file system that operates on logical entries in tar files. That is, a regular file is represented as a single entry, no matter how many entries it is composed of in the actual bits that get written to the tar file. This system is useful for analyzing a tar file or creating one using data that is not gotten directly from the file system.

The tar-simple-extract system provides a completely portable interface to extract a tar archive to your file system. The downside of portability is that there is information loss. For example, file owners, permissions, and modification times cannot be set. Additionally, symbolic links cannot be extracted as symbolic links (but they can be dereferenced).

The tar-extract system provides a more lossless extraction capability. The downside of being lossless is that it is more demanding (osicat must support your implementation and OS) and it raises security concerns.

A common security concern is that a malicious tar file can extract a symlink that points to an arbitrary location in your filesystem and then trick you into overwriting files at the location by extracting later files through that symlink. This system tries its best to mitigate that (but makes no guarantees), so long as you use its default settings. If you find a bug that allows an archive to extract to an arbitrary location in your filesystem, I'd appreciate it if you report it!

Also note that tar-extract currently requires a copy of osicat that has the commits associated with this PR applied.

next steps

First, close the loop on the osicat PR. It started off as a straightforward PR that just added new functions. However, when I tested on Windows, I realized I couldn't load osicat. So I added a commit that fixed that. There may be some feedback and changes requested on how I actually acomplished that.

Second, integrate tar-extract into CLPM. CLPM currently shells out to a tar executable to extract archives. I'd like to use this pure CL solution instead. Plus, using it with CLPM will act as a stress test by exposing it to many tar files.

Third, add it to Quicklisp. tar-extract won't compile without the osicat changes, so those definitely need to be merged first. Additionally, I want to have at least some experience with real world tar files before making this project widely available.

Fourth, add support for creating archives from the filesystem.

Fifth, add the ability to compile to an executable so you could use this in place of GNU or BSD tar :).

If the fourth and fifth steps excite you, I'd love to have your help making them a reality! They're not on my critical path for anything at the moment, so it'll likely be a while before I can get to them.

11:56

CodeSOD: A Dash of SQL [The Daily WTF]

As developers, we often have to engage with management who doesn't have a clue what it is we do, or how. Even if that manager was technical once, their technical background is frequently out of...

06:35

1542 [Looking For Group]

The post 1542 appeared first on Looking For Group.

Wednesday, 22 September

23:35

GNU Parallel 20210922 ('Vindelev') released [stable] [Planet GNU]

GNU Parallel 20210922 ('Vindelev') [stable] has been released. It is available for download at: lbry://@GnuParallel:4

No new functionality was introduced so this is a good candidate for a
stable release.

Quote of the month:

  Take a look at GNU Parallel. It’s magnificent.
    -- Siira@ycombinator.com

New in this release:

  • Bug fixes and man page updates.

News about GNU Parallel:

Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

GNU Parallel - For people who live life in the parallel lane.

If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.

About GNU Parallel

GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.

If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.

GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.

For example you can run this to convert all jpeg files into png and gif files and have a progress bar:

  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif

Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:

  find . -name '*.jpg' |
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200

You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/

You can install GNU Parallel in just 10 seconds with:

    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
       fetch -o - http://pi.dk/3 ) > install.sh
    $ sha1sum install.sh | grep c82233e7da3166308632ac8c34f850c0
    12345678 c82233e7 da316630 8632ac8c 34f850c0
    $ md5sum install.sh | grep ae3d7aac5e15cf3dfc87046cfc5918d2
    ae3d7aac 5e15cf3d fc87046c fc5918d2
    $ sha512sum install.sh | grep dfc00d823137271a6d96225cea9e89f533ff6c81f
    9c5198d5 31a3b755 b7910ece 3a42d206 c804694d fc00d823 137271a6 d96225ce
    a9e89f53 3ff6c81f f52b298b ef9fb613 2d3f9ccd 0e2c7bd3 c35978b5 79acb5ca
    $ bash install.sh

Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.

When using programs that use GNU Parallel to process data for publication please cite:

O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
  • Get the merchandise https://gnuparallel.threadless.com/designs/gnu-parallel
  • Request or write a review for your favourite blog or magazine
  • Request or build a package for your favourite distribution (if it is not already there)
  • Invite me for your next conference

If you use programs that use GNU Parallel for research:

  • Please cite GNU Parallel in you publications (use --citation)

If GNU Parallel saves you money:

About GNU SQL

GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.

The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.

When using GNU SQL for a publication please cite:

O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.

About GNU Niceload

GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.

12:14

Some Version of a Process [The Daily WTF]

When you're a large company, like Oracle, you can force your customers to do things your way. "Because we said so," is something a company like that can get away with. Conversely, a small...

Tuesday, 21 September

14:56

Top Comments – Pages 1539 – 1540 [Looking For Group]

Tuesday, YOU are the star! We curate our favourites from the previous week’s comments on lfg.co and Facebook and remind you how clever you are. Here are your top comments for Looking For Group pages 1539 – 1540 Looking For […]

The post Top Comments – Pages 1539 – 1540 appeared first on Looking For Group.

14:07

Ethical Social Media: Oxymoron or Attainable Goal? [Radar]

Humans have wrestled with ethics for millennia. Each generation spawns a fresh batch of ethical dilemmas and then wonders how to deal with them.

For this generation, social media has generated a vast set of new ethical challenges, which is unsurprising when you consider the degree of its influence. Social media has been linked to health risks in individuals and political violence in societies. Despite growing awareness of its potential for causing harm, social media has received what amounts to a free pass on unethical behavior.

Minerva Tantoco, who served as New York City’s first chief technology officer, suggests that “technology exceptionalism” is the root cause. Unlike the rapacious robber barons of the Gilded Age, today’s tech moguls were viewed initially as eccentric geeks who enjoyed inventing cool new products. Social media was perceived as a harmless timewaster, rather than as a carefully designed tool for relentless commerce and psychological manipulation.

“The idea of treating social media differently came about because the individuals who started it weren’t from traditional media companies,” Tantoco says. “Over time, however, the distinction between social media and traditional media has blurred, and perhaps the time has come for social media to be subject to the same rules and codes that apply to broadcasters, news outlets and advertisers. Which means that social media would be held accountable for content that causes harm or violates existing laws.”

Ethical standards that were developed for print, radio, television, and telecommunications during the 20th century could be applied to social media. “We would start with existing norms and codes for media generally and test whether these existing frameworks and laws would apply to social media,” Tantoco says.

Taking existing norms and applying them, with modifications, to novel situations is a time-honored practice.  “When e-commerce web sites first started, it was unclear if state sales taxes would apply to purchases,” Tantoco says. “It turned out that online sales were not exempt from sales taxes and that rules that had been developed for mail-order sites decades earlier could be fairly applied to e-commerce.”

Learning from AI

Christine Chambers Goodman, a professor at Pepperdine University’s Caruso School of Law, has written extensively on the topic of artificial intelligence and its impact on society. She sees potential in applying AI guidelines to social media, and she cited the European Commission’s High-Level Expert Group on Artificial Intelligence’s seven key ethical requirements for trustworthy AI:1

  • Human agency and oversight
  • Technical robustness and safety
  • Privacy and data governance
  • Transparency
  • Diversity, non-discrimination and fairness
  • Societal and environmental well-being
  • Accountability

The commission’s proposed requirements for AI would be a good starting point for conversations about ethical social media. Ideally, basic ethical components would be designed into social media platforms before they are built. Software engineers should be trained to recognize their own biases and learn specific techniques for writing code that is inherently fair and non-discriminatory.

“It starts with that first requirement of human agency and oversight,” Goodman says. If ethical standards are “paramount” during the design phase of a platform, “then I see some room for optimism.”

Colleges and universities also can play important roles in training a new generation of ethical software engineers by requiring students to take classes in ethics, she says.

Economic Fairness and Equity

Social media companies are private business entities, even when they are publicly held. But the social media phenomenon has become so thoroughly woven into the fabric of our daily lives that many people now regard it as a public utility such as gas, electricity, and water. In a remarkably brief span of time, social media has become an institution, and generally speaking, we expect our institutions to behave fairly and equitably.  Clearly, however, the social media giants see no reason to share the economic benefits of their success with anyone except their shareholders.

“The large social media companies make hundreds of billions of dollars from advertising revenue and share almost none of it with their users,” says Greg Fell, CEO of Display Social, a platform that shares up to 50 percent of its advertising revenue with content creators who post on its site.

Historically, content creators have been paid for their work. Imagine if CBS had told Lucille Ball and Desi Arnaz that they wouldn’t be paid for creating episodes of “I Love Lucy,” but that instead they would be allowed to sell “I Love Lucy” coffee mugs and T-shirts. If the original TV networks had operated like social media corporations, there never would have been a Golden Age of Television.

Most societies reward creators, artists, entertainers, athletes, and influencers for their contributions. Why does social media get to play by a different set of rules?

“Economic fairness should be part of the social media ethos. People should be rewarded financially for posting on social media, instead of being exploited by business models that are unfair and unethical,” Fell says.

From Fell’s perspective, the exploitive and unfair economic practices of the large social media companies represent short-term thinking. “Ultimately, they will burn out their audiences and implode. Meantime, they are causing harm. That’s the problem with unethical behavior—in the long run, it’s self-destructive and self-defeating.”

Transforming Attention into Revenue

Virtually all of the large social media platforms rely on some form of advertising to generate revenue. Their business models are exceedingly simple: they attract the attention of users and then sell the attention to advertisers. In crude terms, they’re selling your eyeballs to the highest bidder.

As a result, their only real interest is attracting attention. The more attention they attract, the more money they make. Their algorithms are brilliantly designed to catch and hold your attention by serving up content that will trigger dopamine rushes in your brain. Dopamine isn’t a cause of addiction, but it plays a role in addictive behaviors. So, is it fair to say that social media is intentionally addictive? Maybe.

“For many social media companies, addictive behavior (as in people consuming more than they intend to and regretting it afterwards) is the point,” says Esther Dyson, an author, philanthropist, and investor focused on health, open government, digital technology, biotechnology, and aerospace. “Cigarettes, drugs, and gambling are all premised on the model that too much is never enough.  And from the point of view of many investors, sustainable profits are not enough.  They want exits. Indeed, the goal of these investors is creating ever-growing legions of addicts. That starts with generating and keeping attention.”

Monetizing Misinformation

As it happens, misinformation is highly attractive to many users. It’s a digital version of potato chips—you can’t eat just one. The algorithms figure this out quickly, and feed users a steady supply of misinformation to hold their attention.

In an advertising-driven business model, attention equals dollars. With the help of machine learning and sophisticated algorithms, social media has effectively monetized misinformation, creating a vicious, addictive cycle that seems increasingly difficult to stop.

Social media has staked its fortunes to a business model that is deeply unethical and seems destined to fail in the long term. But could the industry survive, at least in the short term, with a business model that hews more closely to ethical norms?

Greg Fell doesn’t believe that ethical guidelines will slow the industry’s growth or reduce its profitability. “People expect fairness. They want to be treated as human beings, not as products,” he says. “You can build fairness into a platform if you make it part of your goal from the start. But it shouldn’t be an afterthought.”

Slowing the Spread of False Narratives

In addition to implementing structural design elements that would make it easier for people to recognize misinformation and false narratives, social media companies could partner with the public sector to promote media literacy.  Renée DiResta is the technical research manager at Stanford Internet Observatory, a cross-disciplinary program of research, teaching, and policy engagement for the study of abuse in current information technologies. She investigates the spread of narratives across social and traditional media networks.

“I think we need better ways for teaching people to distinguish between rhetoric and reality,” DiResta says, noting that tropes such as “dead people are voting” are commonly repeated and reused from one election cycle to the next, even when they are provably false. These kinds of tropes are the “building blocks” of misinformation campaigns designed to undermine confidence in elections, she says.

“If we can help people recognize the elements of false narratives, maybe they will build up an immunity to them,” DiResta says.

It’s Not Too Late to Stop the Train

The phenomenon we recognize today as “social media” only began taking shape in the late 1990s and early 2000s. It is barely two decades old, which makes it far too young to have developed iron-clad traditions. It is an immature field by any measure, and it’s not too late to alter its course.

Moreover, social media’s business model is not terribly complicated, and it’s easy to envision a variety of other models that might be equally or even more profitable, and represent far less of a threat to society. Newer platforms such as Substack, Patreon, OnlyFans, Buy Me a Coffee, and Display Social are opening the door to a creator-centric social media industry that isn’t fueled primarily by advertising dollars.

“Social media has its positives, and it isn’t all doom and gloom, but it certainly isn’t perfect and resolving some of these issues could ensure these applications are the fun and happy escape they need to be,” says Ella Chambers, UX designer and creator of the UK-based Ethical Social Media Project. “The majority of social media is okay.”

That said, some of the problems created by social media are far from trivial. “My research led me to conclude that the rise of social media has brought the downfall of many users’ mental health,” Chambers says. A recent series of investigative articles in the Wall Street Journal casts a harsh spotlight on the mental health risks of social media, especially to teen-age girls. Facebook has issued a rebuttal3 to the WSJ, but it’s not likely to persuade critics into believing that social media is some kind of wonderful playground for kids and teens.

Creating a practical framework of ethical guidelines would be a positive step forward. Ideally, the framework would evolve into a set of common practices and processes for ensuring fairness, diversity, inclusion, equity, safety, accuracy, accountability, and transparency in social media.

Chinese officials recently unveiled a comprehensive draft of proposed rules governing the use of recommendation algorithms in China.2 One of the proposed regulations would require algorithm providers to “respect social ethics and ethics, abide by business ethics and professional ethics, and follow the principles of fairness, openness, transparency, scientific rationality, and honesty.”

Another proposed regulation would provide users with “convenient options to turn off algorithm recommendation services” and enable users to select, modify or delete user tags. And another proposed rule would restrict service providers from using algorithms “to falsely register accounts … manipulate user accounts, or falsely like, comment, forward, or navigate through web pages to implement traffic fraud or traffic hijacking …”

Eloy Sasot, group chief data and analytics officer at Richemont, the Switzerland-based luxury goods holding company, agrees that regulations are necessary. “And the regulations also should be managed with extreme care. When you add rules to an already complex system, there can be unintended consequences, both at the AI-solution level and the macro-economic level,” he says.

For instance, small companies, which have limited resources, may be less able to counter negative business impacts created by regulations targeting large companies. “So, in effect, regulations, if not carefully supervised, might result in a landscape that is less competitive and more monopolistic, with unintended consequences for end consumers whom the regulations were designed to protect,” he explains.

Technology Problem, or a People Problem?

Casey Fiesler is an assistant professor in the Department of Information Science at University of Colorado Boulder. She researches and teaches in the areas of technology ethics, internet law and policy, and online communities.

“I do not think that social media—or more broadly, online communities—are inherently harmful,” says Fiesler. “In fact, online communities have also done incredible good, especially in terms of social support and activism.”

But the harm caused by unfettered use of social media “often impacts marginalized and vulnerable users disproportionately,” she notes. Ethical social media platforms would consider those effects and work proactively to reduce or eliminate hate speech, trolling, defamation, cyber bullying, swatting, doxing, impersonation, and the intentional spread of false narratives.

“I consider myself an optimist who thinks that it is very important to think like a pessimist. And we should critique technology like social media because it has so much potential for good, and if we want to see those benefits, then we need to push for it to be better,” Fiesler says.

Ultimately, the future of ethical social media may depend more on the behaviors of people than on advances in technology.

“It’s not the medium that’s unethical—it’s the business people controlling it,” Dyson observes. “Talking about social media ethics is like talking about telephone ethics. It really depends on the people involved, not the platform.”

From Dyson’s point of view, the quest for ethical social media represents a fundamental challenge for society. “Are parents teaching their children to behave ethically? Are parents serving as role models for ethical behavior? We talk a lot about training AI, but are we training our children to think long-term, or just to seek short-term relief? Addiction is not about pleasure; it’s about relief from discomfort, from anxiety, from uncertainty, from a sense that we have no future,” she adds. “I personally think we’re just being blind to the consequences of short-term thinking. Silicon Valley is addicted to profits and exponential growth. But we need to start thinking about what we’re creating for the long term.”


Footnotes

  1. https://digital-strategy.ec.europa.eu/en/library/ethics-guidelines-trustworthy-ai
  2. ​​​​http://www.cac.gov.cn/2021-08/27/c_1631652502874117.htm
  3. https://about.fb.com/news/2021/09/research-teen-well-being-and-instagram/

12:07

CodeSOD: Globalism [The Daily WTF]

When Daniel was young, he took one of those adventure trips that included a multi-day hike through a rainforest. At the time, it was one of the most difficult and laborious experiences he'd ever...

Monday, 20 September

20:42

The Right Stuff – DORK TOWER 10.09.21 [Dork Tower]

ecome a DORK TOWER Patreon! Dork Tower is 100% reader-funded, and updated Mondays, Wednesdays and Fridays, thanks its generous Patreon supporters. The next goal is four strips a week! Enlist in the Army of Dorkness today, and help us reach that! We have a ton of fun! Also: swag!

18:42

09/20/21 [Flipside]

My scanner is still not working. It's kind of an old printer/scanner, and this has happened several times in the past, and usually after a couple of days it just mysteriously starts working again. But now it's been 4 days without it being able to connect to the wireless. I guess I will give it a little longer before I think about getting a new scanner!

Feeds

FeedRSSLast fetchedNext fetched after
XML 16:49, Monday, 18 October 17:30, Monday, 18 October
a bag of four grapes XML 17:14, Monday, 18 October 17:56, Monday, 18 October
A Smart Bear: Startups and Marketing for Geeks XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Anarcho's blog XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Ansible XML 16:49, Monday, 18 October 17:29, Monday, 18 October
Bad Science XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Black Doggerel XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Blog – Official site of Stephen Fry XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Broodhollow XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Charlie Brooker | The Guardian XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Charlie's Diary XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Chasing the Sunset - Comics Only XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Clay Shirky XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Coding Horror XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Cory Doctorow – Boing Boing XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Cory Doctorow's craphound.com XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Ctrl+Alt+Del Comic XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Cyberunions XML 17:28, Monday, 18 October 18:17, Monday, 18 October
David Mitchell | The Guardian XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Debian GNU/Linux System Administration Resources XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Deeplinks XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Diesel Sweeties webcomic by rstevens XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Dilbert XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Dork Tower XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Economics from the Top Down XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Edmund Finney's Quest to Find the Meaning of Life XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Eerie Cuties XML 17:14, Monday, 18 October 18:01, Monday, 18 October
EFF Action Center XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Enspiral Tales - Medium XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Erin Dies Alone XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Falkvinge on Liberty XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Flipside XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Flipside XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Free software jobs XML 16:49, Monday, 18 October 17:29, Monday, 18 October
Full Frontal Nerdity by Aaron Williams XML 17:14, Monday, 18 October 18:02, Monday, 18 October
General Protection Fault: The Comic Strip XML 17:14, Monday, 18 October 18:02, Monday, 18 October
George Monbiot XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Girl Genius XML 17:07, Monday, 18 October 17:50, Monday, 18 October
God Hates Astronauts XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Graeme Smith XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Groklaw XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Grrl Power XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Hackney Anarchist Group XML 17:28, Monday, 18 October 18:17, Monday, 18 October
http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic XML 16:49, Monday, 18 October 17:29, Monday, 18 October
http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 XML 17:07, Monday, 18 October 17:52, Monday, 18 October
http://eng.anarchoblogs.org/feed/atom/ XML 17:28, Monday, 18 October 18:14, Monday, 18 October
http://feed43.com/3874015735218037.xml XML 17:28, Monday, 18 October 18:14, Monday, 18 October
http://feeds2.feedburner.com/GeekEtiquette?format=xml XML 17:07, Monday, 18 October 17:50, Monday, 18 October
http://fulltextrssfeed.com/ XML 17:07, Monday, 18 October 17:50, Monday, 18 October
http://london.indymedia.org/articles.rss XML 17:14, Monday, 18 October 18:01, Monday, 18 October
http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&amp;_render=rss XML 17:28, Monday, 18 October 18:14, Monday, 18 October
http://the-programmers-stone.com/feed/ XML 17:14, Monday, 18 October 18:01, Monday, 18 October
http://thecommune.co.uk/feed/ XML 17:07, Monday, 18 October 17:52, Monday, 18 October
http://www.airshipentertainment.com/buck/buckcomic/buck.rss XML 17:28, Monday, 18 October 18:17, Monday, 18 October
http://www.airshipentertainment.com/growf/growfcomic/growf.rss XML 17:07, Monday, 18 October 17:51, Monday, 18 October
http://www.airshipentertainment.com/myth/mythcomic/myth.rss XML 17:14, Monday, 18 October 17:56, Monday, 18 October
http://www.baen.com/baenebooks XML 17:07, Monday, 18 October 17:51, Monday, 18 October
http://www.dcscience.net/feed/medium.co XML 17:28, Monday, 18 October 18:17, Monday, 18 October
http://www.feedsapi.com/makefulltextfeed.php?url=http%3A%2F%2Fwww.somethingpositive.net%2Fsp.xml&what=auto&key=&max=7&links=preserve&exc=&privacy=I+accept XML 17:07, Monday, 18 October 17:51, Monday, 18 October
http://www.freedompress.org.uk/news/feed/ XML 17:14, Monday, 18 October 18:02, Monday, 18 October
http://www.steampunkmagazine.com/inside/feed/ XML 16:49, Monday, 18 October 17:30, Monday, 18 October
http://www.tinycat.co.uk/feed/ XML 16:49, Monday, 18 October 17:29, Monday, 18 October
https://hackbloc.org/rss.xml XML 16:49, Monday, 18 October 17:30, Monday, 18 October
https://kajafoglio.livejournal.com/data/atom/ XML 17:28, Monday, 18 October 18:17, Monday, 18 October
https://philfoglio.livejournal.com/data/atom/ XML 17:14, Monday, 18 October 18:01, Monday, 18 October
https://studiofoglio.livejournal.com/data/atom/ XML 17:28, Monday, 18 October 18:14, Monday, 18 October
https://twitter.com/statuses/user_timeline/22724360.rss XML 16:49, Monday, 18 October 17:29, Monday, 18 October
https://web.randi.org/?format=feed&type=rss XML 17:07, Monday, 18 October 17:50, Monday, 18 October
https://www.DropCatch.com/domain/ubuntuweblogs.org XML 17:28, Monday, 18 October 18:14, Monday, 18 October
https://www.goblinscomic.com/category/comics/feed/ XML 16:49, Monday, 18 October 17:29, Monday, 18 October
https://www.hackneysolidarity.info/rss.xml XML 17:07, Monday, 18 October 17:52, Monday, 18 October
https://www.newstatesman.com/feeds/blogs/laurie-penny.rss XML 16:49, Monday, 18 October 17:30, Monday, 18 October
https://www.patreon.com/graveyardgreg/posts/comic.rss XML 17:14, Monday, 18 October 18:01, Monday, 18 October
https://www.rightmove.co.uk/rss/property-for-sale/find.html?locationIdentifier=REGION^876&maxPrice=240000&minBedrooms=2&displayPropertyType=houses&oldDisplayPropertyType=houses&primaryDisplayPropertyType=houses&oldPrimaryDisplayPropertyType=houses&numberOfPropertiesPerPage=24 XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Humble Bundle Blog XML 17:14, Monday, 18 October 18:01, Monday, 18 October
I, Cringely XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Irregular Webcomic! XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Joel on Software XML 17:28, Monday, 18 October 18:14, Monday, 18 October
Judith Proctor's Journal XML 16:49, Monday, 18 October 17:29, Monday, 18 October
Krebs on Security XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Lambda the Ultimate - Programming Languages Weblog XML 16:49, Monday, 18 October 17:29, Monday, 18 October
LLVM Project Blog XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Looking For Group XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Loomio Blog XML 17:28, Monday, 18 October 18:14, Monday, 18 October
LWN.net XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Menage a 3 XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Mimi and Eunice XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Neil Gaiman's Journal XML 16:49, Monday, 18 October 17:29, Monday, 18 October
Nina Paley XML 17:14, Monday, 18 October 18:01, Monday, 18 October
O Abnormal – Scifi/Fantasy Artist XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Oglaf! -- Comics. Often dirty. XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Oh Joy Sex Toy XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Order of the Stick XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Original Fiction – Tor.com XML 17:14, Monday, 18 October 17:56, Monday, 18 October
OSnews XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Past Events XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Paul Graham: Unofficial RSS Feed XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Penny Arcade XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Penny Red XML 17:07, Monday, 18 October 17:52, Monday, 18 October
PHD Comics XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Phil's blog XML 17:14, Monday, 18 October 18:02, Monday, 18 October
Planet Debian XML 17:07, Monday, 18 October 17:52, Monday, 18 October
Planet GNU XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Planet GridPP XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Planet Lisp XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Pluralistic: Daily links from Cory Doctorow XML 16:49, Monday, 18 October 17:29, Monday, 18 October
Property is Theft! XML 16:49, Monday, 18 October 17:29, Monday, 18 October
PS238 by Aaron Williams XML 17:14, Monday, 18 October 18:02, Monday, 18 October
QC RSS XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Radar XML 17:14, Monday, 18 October 17:56, Monday, 18 October
RevK®'s ramblings XML 17:28, Monday, 18 October 18:14, Monday, 18 October
Richard Stallman's Political Notes XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Scenes From A Multiverse XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Schneier on Security XML 16:49, Monday, 18 October 17:29, Monday, 18 October
SCHNEWS.ORG.UK XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Scripting News XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Seth's Blog XML 17:28, Monday, 18 October 18:14, Monday, 18 October
Skin Horse XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Spinnerette XML 17:07, Monday, 18 October 17:51, Monday, 18 October
Starslip by Kris Straub XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Tales From the Riverbank XML 17:28, Monday, 18 October 18:17, Monday, 18 October
The Adventures of Dr. McNinja XML 17:07, Monday, 18 October 17:52, Monday, 18 October
The Bumpycat sat on the mat XML 16:49, Monday, 18 October 17:29, Monday, 18 October
The Command Line XML 17:28, Monday, 18 October 18:14, Monday, 18 October
The Daily WTF XML 17:28, Monday, 18 October 18:14, Monday, 18 October
The Monochrome Mob XML 16:49, Monday, 18 October 17:30, Monday, 18 October
The Non-Adventures of Wonderella XML 17:07, Monday, 18 October 17:50, Monday, 18 October
The Old New Thing XML 17:07, Monday, 18 October 17:51, Monday, 18 October
The Open Source Grid Engine Blog XML 17:14, Monday, 18 October 18:01, Monday, 18 October
The Phoenix Requiem XML 16:49, Monday, 18 October 17:29, Monday, 18 October
The Rogues Gallery XML 17:14, Monday, 18 October 18:02, Monday, 18 October
The Stranger, Seattle's Only Newspaper: Savage Love XML 17:07, Monday, 18 October 17:52, Monday, 18 October
TorrentFreak XML 17:07, Monday, 18 October 17:50, Monday, 18 October
towerhamletsalarm XML 17:28, Monday, 18 October 18:14, Monday, 18 October
Twokinds XML 17:14, Monday, 18 October 17:56, Monday, 18 October
UK Indymedia Features XML 17:14, Monday, 18 October 17:56, Monday, 18 October
Uploads from ne11y XML 17:28, Monday, 18 October 18:14, Monday, 18 October
Uploads from piasladic XML 17:07, Monday, 18 October 17:50, Monday, 18 October
Use Sword on Monster XML 17:14, Monday, 18 October 18:01, Monday, 18 October
Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily XML 17:28, Monday, 18 October 18:14, Monday, 18 October
What If? XML 16:49, Monday, 18 October 17:30, Monday, 18 October
Whatever XML 17:28, Monday, 18 October 18:17, Monday, 18 October
Whitechapel Anarchist Group XML 17:28, Monday, 18 October 18:17, Monday, 18 October
WIL WHEATON dot NET XML 17:07, Monday, 18 October 17:51, Monday, 18 October
wish XML 17:07, Monday, 18 October 17:52, Monday, 18 October
xkcd.com XML 17:07, Monday, 18 October 17:50, Monday, 18 October