* Posts by dafe

61 publicly visible posts • joined 25 Jan 2022


Raspberry Pi OS update beefs up security


Re: Linux and security

Unlike using Administrator as default account, sudo still requires a password for becoming root.

Of course if you use the default password, that doesn't matter.


Re: Linux and security

I've seen many Windows boxen where Administrator was the only user account, used for everything. And many applications that refused to install for any other user.

But that was a long time ago. I'm sure thingschave improved since then.

C: Everyone's favourite programming language isn't a programming language


Re: Moaning Minnie

Have you heard of Rust?


Re: Interfacing to OS has to work at low level for maximum flexibility

You couldn't be more wrong if you tried.

C is not low-level, it is not even the lowest common denominator, it is merely the de facto standard, and the great thing about standards is that there are so many to choose from. There are many C standards, and they don't even agree about what should be undefined.

So passing data erases the type, because that is the convention. ASN.1 unambiguously defines structures, but C does not.

And Lisp machines became extinct when an HP Tru64 ran a Lisp VM faster than hardware. Of course the VM had less control over the metal. But with the Raspberry Pi Zero 2 running Lisp with full control of the hardware, Lisp machines might just make a stealth comeback in the embedded space. Either way, Lisp is Turing-complefe, which means it can emulate any other machine.

The most widely used language today is a Lisp dialect called JavaScript.


Re: Confusing a language with an architecture

There are academic open source operating systems that use capability inheritance to restrict child processes.

But no, the architecture is not the point here. The point is that IPC, library calls, and system calls all inherit the insecurities of C, even where no actual C code is involved in either side, because the C conventions are the de facto standard that all programming languages adhere to for interoperability. This is how an Ada process reads an error text from another Ada process as an interger and Ariane 5 explodes, because C inhereted type unsafety from BCPL.


Re: Sorry, someone who found CORBA in any way praiseworthy?

Using C voids to pass data between processes isn't exactly clean. CORBA is a Lovecraftian horror, but that doesn't mean that something like ASN 1 can't be both structurally sound and efficient


Re: Not a convincing argument

The fact that you have to inline assembler in your C code is proof that C is not close to the metal.

I"ll give a simpler example: The overflow register. All CPUs have one. The PDP-11 had one. In C you have to write an if-condition that explicitly checks for overflow, and do so in such a way that the compiler recognises it as something it can replace with a check of the overflow bit.

Speculative execution is taking advantage of the superpipelining in every RISC machine (or in the case of AMD and Intel, the RISC core in the CISC machine), parallelism that is already there in the hardware, but not reflected in the software (except in MIPS assembly).

Parallelism is inherently safe in functional languages, and they don't even need the crutches that were invented for C. But it has been thirty years since bare-metal Lisp machines. Erlang is still in widespread use in the telecommunications industry, a functional language that is designed for network-transparent parallelism. But it uses a VM.


GOTO considered harmful

Dijkstra observed that people who use goto often make a mess of code. The kind of mess for which the term "spaghetti code" was invented, the kind that breaks flowcharts.

The title of Dijkstra's article was Wirth's idea, I'm told.

Anyway, Dijkstra formally proved that gotos aren't needed for code. Informally, Hoare and McCarthy had done the same. And experience confirms that code without gotos is cleaner.

C is the only reason why gotos are still in use. Even though tail recursion optimisation and function inlining can produce efficient code from small functions, C compilers shy away from refactoring the input just so that the debugger can step through the code line by line, because apparently that is better than proper debug output.

So gotos in C are more efficient only because C compilers are not.


Re: Other languages....

There are fundamentally two kinds of languages: Those that can be interpreted, and those that need to be compiled.

Of course those than can be interpreted can also be compiled.

Machine language is interpreted, and so are BASIC and FORTRAN and bash and python.

Virtual machines like the JVM or .NET or the Erlang VM interpret virtual machine code. Which can be text.

Higher level languages are compiled into languages that can be interpreted.


Text is a universal interface

Ken Thompson said that, and I think he knows a bit about inter-procrss communication.


Re: Programme in C, think in C -- sad but true (for any language, actually)

That wasn't Wirth, that was Stroustrup.

Ukraine's nuclear plants: Chernobyl off diesel power, explosions explained


Re: What is left unsaid

Their ghosts are doing the tasks now.

Are we springing into a Y2K-class nightmare?


Russia tried that

By popular demand they kept daylight savings time for the whole year. I guess they thought it was a clever way to get rid of those cold Russian winters.

By the next year they had switched to permanent winter time.


Re: USA change its date format ...

It was France who gave them that loan to back their colonial scrip with something fungible.

It was France who sent them General Lafayette.

It was France who sold them what they now call the Midwest, Cajuns included.

It was France who gifted them their Statue of Liberty.

And it was France who gave them their Freedom Fries.

You might be on to something here.

Germany advises citizens to uninstall Kaspersky antivirus


Re: Just don't use ANY anti-virus

Anti-virus is malware.

It has root access, reads all your files, monitors your traffic, and has encrypted connections to a command-and-control server that updates it with new instructions.

This is true of all anti-virus.

Microsoft, OpenAI method could make training large neural networks cheaper


This seems very similar to AutoML.

Russia labels Meta an 'extremist' organization, bans Instagram


Re: Classic Putin

What is the alternative to diplomacy?

Cryptocurrency ATMs illegal right now in UK


People being scammed is no reason to make scamming legal. Or easy.


Have you heard of cash money? It is anonymous, difficult to trace, widely accepted, easy to carry.

Crypto is inherently traceable, which wallets holds which coins, not just what amounts but the individual, unique, items, is public record, so every transaction is also visible to anyone who cares to look.

Driverless car first: Chinese biz recalls faulty AI


Re: Standards?

There are industry safety standards for self-driving vehicles, but they assume a workspace environment, not open road.


Re: The real problems are the ethical and legal ones

Human drivers cause a huge number of accidents, but that is considered normal and acceptable.

Robot cars can be much safer than human drivers and still not be accepted. Robots are expected to honour the First Law, while humans are not.

So by insisting that robots are 100% safe, we are continuing to keep the number of car accidents high.


"Enough eyeball make all bugs shallow."

The problems are the same, but there is a lot more testing, more code reviews, and more proposed patches than any company by itself could afford to do.

Sharing code helps. There are reasons why X was released for free. And XFree worked a lot better than the previous commercial release that RedHat had licensed and continued to use and patch for years.

But that goes against the medieval thinking of keeping the advantage of knowing something your competitors don't.

ICANN responds to Ukraine demand to delete all Russian domains


Re: firewall

Some countries do censor their internet. Saudi-Arabia for example routes its entire inbound traffic through a firewall that censors out all the porn (and who knows what else).

Sure, the problem with censorship is the loss of autonomy, but in international law the government has the right to do whatever they want to their own people as long as it's not torture or genocide.


All root servers are under US control. It used to be more diversified.

But yes, everyone can set up their own root servers. You only need to get the ISPs to refer to them, or otherwise convince users to configure their DNS settings to include them.

TikTok under investigation in US over harms to children


I don't know, but

I remember that showing ads to children was already a huge issue with YouTube. Is Biden demanding a law that already exists?

Does TikTok even show ads to children?

Or is "think of the children" just an excuse for something else? (If so, it is certainly not "personal responsibility".)

One decade, 46 million units: Happy birthday, Raspberry Pi


Re: Interesting.

I'm using a Pi4 with passive cooling. The heat sink is the entire chassis, but it works very well.

The Pi4 does need more Ampere than the Pi3. A USB2 hub would not suffice.

China makes using cryptocurrency a crime – again


Nothing about the digital Yuen? Or about anti-cartel measures? Or about how Kosovo and Kazakhstan oppose DeFi simply because of the high energy cost?

WeChat, AliExpress added to US Notorious Markets list



The Trade Rep was careful to note that the list [does not] reflect legal violations, government analysis of intellectual property, or enforcement-related matters.

So being listed does not mean you violated trademarks (counterfeiting) or otherwise broke any laws.

Does it actually mean anything at all?

UK starts to ponder how Huawei ban would work


What makes you think they won't?


Re: Childish behaviour

It is not against the WTO rules because it benefits those who the WTO exists for.


Re: Why do you keep tip-toeing around the bush ?

If it can't be imported, it can't be used.

Except if it is already in use in much of the infrastructure, and someone wants it removed.

GNOME Project retires OpenGL rendering library Clutter


GLX is horrible. You need two drivers, one in the kernel and one in X, to get hardware acceleration, with doesn't work when the client is not on the same machine as the server.

But it is what everyone is using. (Almost everyone. In the embedded space they use hardware acceleration in the kernel framebuffer.)

XGL was a much better solution.

Things would be much simpler if the X server itself was written in OpenGL.

DirectFB3D used to be a thing as well. But the attempt to build X directly on the framebuffer has mutated into just a fallback driver.


Python2 is the fault of RedHat. Python 3000 was a rewrite that is much faster and much more efficient that was supposed to replace Python2 over ten years ago. But too much tooling was written and never ported, so there was pressure to keep Python2 around even after it had been discontinued, dropped, abandoned, support cut, and officially retired. And so there was no pressure for other projects to port either.

GTK2 is different. Originally written for the GIMP, GTK was adopted by GNOME as a free alternative to Qt, and extended. RedHat soon replaced it with GTK-MM and GTK3, pulling in more GNOME-specific (and circular) dependencies. Many projects chose GTK2 over GTK3 because it is faster, more lightweight, and doesn't pull in as much cruft. RedHat have since gutted GTK3 of features GNOME doesn't use, even though other projects do, forcing those projects to port to GTK2, Qt, or GNOME. (And GNOME is actively preventing ports to BSD or any other system that isn't Linux or Windows.)



Linux Snap package tool fixes make-me-root bugs


Re: Snap is a bad idea

Snap, Flatpak, Docker – all work-arounds for problems you wouldn't have if you just compiled statically.


Re: Snap is a bad idea

Virtual machines are not what you think they are.

A sandbox is not (or not necessarily) a VM. A sandbox is a process that is forced to drop capabilities before it starts.

A process is already isolated: It is restricted by user privileges, and it has access to only its own virtual memory. (And so do all the libraries and plug-ins it loads.). It communicates through signals, files, sockets, and sometimes explicitly shared memory.

A sandbox restricts it further by preventing it from opening new files. Or only files contained in one directory subtree.

A virtual machine is a processor, an interpreter, that is not made of silicon wires, but exists only as software. An emulator that emulates a machine that exists only in emulation. Hence: virtual.

A container is run and managed by a shell process that sandboxes it, but it still uses the same machine code interpreted by the same non-virtual machine under the same scheduling by the same operating system. No VM involved.

Tax inspectors raid Huawei offices


So far, Huawei is only being investigated for tax fraud. That doesn't mean they actually committed tax fraud. India has a huge problem with tax dodgers in general, most of whom are Indian, so they may as well investigate the Chinese as well, why not.

Excluding Huawei from the 5G rollout does seem discriminatory to me.

Your idea of reciprocal business practices seems like a recipe for war. It seems fair and everything, but only if you ignore that not all macro-economies are equal. The West already doesn't allow investment in China, which is quite alright with China. Now imagine Jack Ma being forced to buy Amazon because if reciprocity.

Red Hat signals Intel's software-defined silicon will debut in Linux 5.18


Re: Not keen..

You're not wrong.

Russian 'Minecraft bomb plot' teen jailed for five years


Re: Checks calendar, nope, not 1st April

First off, Russia today is not the Soviet Union, which hasn't existed for 30 years.

Second of all, Minecraft is not illegal in Russia. Blowing up government buildings without a licence is. And intent matters in legal matters.

Third: Do those anti-Soviet games come with instructions for how to build pipe bombs? If so, awesome. And a bit scary.

This malware gang plants incriminating evidence on PCs, gets victims arrested


Re: "malicious Microsoft Office attachments"


File extensions are unnecessary, but file names should be displayed in full. The suffixes, if they are there, shouldn't even be called extensions.

Geomagnetic storm takes out 40 of 49 brand new Starlink satellites


Re: At least they're not additional, long-lasting space garbage

They burn up on re-entry.

To err is human. To really tmux things up requires an engineer


Re: Step outside

In many window managers, including kwin, the close button can be put in the top left corner where it belongs.

Suspected Chinese spies break into cloud accounts of News Corp journalists


So now it is no longer "Russian hackers", now it is "Chinese spies", whenever some script kiddies find an NSA backdoor.

I can only guess that the change is because Kaspersky have given a reason recently to say "if we are going to be blamed anyway".

12-year-old revives Unity desktop, develops software repo client, builds gaming environment for Ubuntu...


Re: Your reporter was very fond of Unity

Personally I like OpenBSD better, but Linux has the largest selection of hardware drivers. FreeBSD is an acceptable compromise.

Remote code execution vulnerability in Samba due to macOS interop module



Is it a holy war? Or is it inertia?

Execs keep flinging money at us instead of understanding security, moan infosec pros


Liquidating BitCoins to pay off drive-by ransomware incurs a substantial opportunity cost. Throwing money at redundant arrays of inexpensive disks solves that problem at a fraction of the cost. Especially if the RAID is in The Cloud.

OpSec? That's in Morocco, isn't it?

Google's DeepMind says its AI coding bot is 'competitive' with humans


I'm thinking it is solving the wrong problem

It can generate Python code from English, and that is nothing short of impressive. It is trained by test cases, which is how software development is ideally but rarely done.

What it does not do is devise a domain specific language to describe the problem in. Nor does it look for the most elegant existing tools to solve a problem. Instead, it makes the same mistake most novice programmers make: It creates a monolithic block of code that does everything in one process in the one language it knows. Not reusable, not maintainable, not provable, and not necessarily correct.

And that seems to be by design. AlphaCode is artificially hacking together one file by increments. It is incapable of solving the more general case, then applying the solution to the specific case. Any tool it writes can't be reused or repurposed.


Re: The problem with this approach

So the AI is already at the level of web developer. That's progress.

Trio of Rust Core Team members take their leave


Re: Fashions

Edsgar Dijkstra of 'Goto Considered Harmful" fame (and more importantly less famous for Dijkstra complexity, the Dijkstra algorithm, and his proof that recursions can be compiled into loops) said that it is almost impossible to teach someone how to write good code who had previously been exposed to BASIC.

Maybe that's why?

Internet Society condemns UK's Online Safety Bill for demonising encryption using 'think of the children' tactic


Re: Criminals will continue to crime...

I'd go further.

Without E2EE, criminals will have access to all of the files that the police and MI have compiled on everyone.