Recent Posts

 

How AGI can conquer the world and what to do about it

We have seen many calls warning about the existential danger the human race faces from artificial general intelligence (AGI). Recent examples include the letter asking for a six month pause in the development of models more powerful than GPT-4 and Ian Hogarth’s FT article calling for a slow-down in the AI race. In brief, these assert that the phenomenal increase in the power and performance of AI systems we are witnessing raises the possibility that these systems will obsolete humanity. I’ve already argued that some of the arguments made are hypocritical, but that doesn’t mean that they are also vacuous. How credible is AGI’s threat and what should we do about it?

Continue reading "How AGI can conquer the world and what to do about it"

Twitter’s overrated dissemination capacity

Many of us are worried that Twitter’s increasingly erratic post visibility and user verification policies will curtail our ability to disseminate our work and ideas to a wide audience. Having spent years to attract followers on Twitter, setting up shop on Mastodon sounds like a tough call. Fortunately, anecdotal evidence suggests that dissemination via Mastodon can be more potent than Twitter, even with a fraction of a follower base.

Continue reading "Twitter’s overrated dissemination capacity"

The hypocritical call to pause giant AI

The recent open letter calling for a pause in giant AI experiments correctly identifies a number of risks associated with the development of AI, including job losses, misinformation, and loss of control. However, its call to pause some types of AI research for six months smacks of hypocrisy.

Continue reading "The hypocritical call to pause giant AI"

AI deforests the knowledge’s ecosystem

Big-tech’s dash to incorporate ChatGPT-like interfaces into their search engines threatens the ecosystem of human knowledge with extinction. Knowledge development is a social activity. It starts with scientists publishing papers and books that build on earlier ones and with practitioners, journalists, and other writers disseminating these findings and their opinions in more accessible forms. It continues through specialized web sites, blogs, the Wikipedia, as well as discussion and Q&A forums. It further builds upon our interactions with these media through web site visits, upvotes, likes, comments, links, and citations. All these elements combined have yielded a rich global knowledge ecosystem that feeds on our interactions to promote the continuous development of useful and engaging content.

Continue reading "AI deforests the knowledge’s ecosystem"

How I fixed git-grep macOS UTF-8 support

As a speaker of Greek, I’ve been fixing issues in the handling of non-ASCII characters for over 40 years, using techniques ranging from simple lookup tables to dynamic patching of in-memory images. Here’s how I debugged and fixed the handling of UTF-8 characters in the git grep command, which was broken for almost a decade.

Continue reading "How I fixed git-grep macOS UTF-8 support"

The sorry state of software quality

Thanks to a tweet by Aaron Toponce I learned about the Linux /dev/full pseudo-device. Write system calls to it always fail with a ENOSPC (no space on device) error. With it finding software that doesn’t check for failed writes is a piece of cake. Let’s see this in action.

Continue reading "The sorry state of software quality"

Rather than alchemy, methodical troubleshooting

I recently encountered a pesky problem while trying to build a React Native project under Apple’s Xcode. The build would fail with an error reporting: EMFILE: too many open files, watch. Frustratingly, all available advice on the web pointed to different (often inexplicable) directions, none of which worked. After tormenting myself with these, I decided to troubleshoot the problem methodically, which allowed me to pinpoint it and solve it with an uncommon and noteworthy application of the git bisect command. Here’s the story.

Continue reading "Rather than alchemy, methodical troubleshooting"

The Evolution of the Unix System Architecture

Unix has evolved for more than five decades, shaping modern operating systems, key software technologies, and development practices. Studying the evolution of this remarkable system from an architectural perspective can provide insights on how to manage the growth of large, complex, and long-lived software systems. In 2016 my colleague Paris Avgeriou and I embarked on this study aiming to combine his software architecture insights with my software analytics skills. Here is a brief summary of the study, which was published this month in the IEEE Transactions on Software Engineering.

Continue reading "The Evolution of the Unix System Architecture"

Reviving the 1973 Unix text to voice translator

The early Research Edition Unix versions featured a program that would turn a stream of ASCII text into utterances that could be played by a voice synthesizer. The source code of this program was lost for years. Here’s the story of how I brought it back to life.

Continue reading "Reviving the 1973 Unix text to voice translator"

Fast database UPDATE/DELETE operations

You may be familiar with the use of a database upsert of MERGE operation to insert a record into a table or update an existing record, if that record already exists. This evaluates the condition for finding the record only once, and is therefore more efficient than other alternatives. How can you efficiently handle a reverse operation of updating a record and deleting it if some condition holds?

Continue reading "Fast database UPDATE/DELETE operations"

Become a Unix command line wizard
edX MOOC on Unix Tools: Data, Software, and Production Engineering
Debug like a master
Book cover of Effective Debugging
Compute with style
Book cover of The Elements of Computing Style
Syndication
This blog is also available as an RSS feed:

Category Tags
AI (4)
AWS (4)
Android (2)
Apple (11)
C (21)
C++ (16)
Computers (58)
Databases (5)
Debugging (10)
Discussion (6)
Electronics (15)
Environment (1)
FreeBSD (26)
Funny (14)
GSIS (5)
Git (2)
Google (6)
Government (3)
Hacks (26)
Hardware (26)
History (13)
Information systems (1)
Internet (12)
Java (26)
JavaScript (1)
Linux (7)
Management (27)
Microsoft (11)
One Laptop Per Child (3)
Open source (57)
Opinion (30)
Parenting (11)
Perl (13)
Photos (13)
Politics (5)
Programming (108)
Python (2)
R (1)
Raspberry Pi (6)
Risks (7)
Scala (1)
Science (34)
Security (26)
Sights (19)
Smartphones (3)
Software (22)
Software engineering (93)
Standards (7)
System administration (46)
Teaching (9)
Technology (33)
Testing (3)
Tips (43)
Tools of the Trade (52)
Travel (9)
UML (6)
Unix (51)
Web (31)
Windows (16)
Writing (45)
XML (10)
vim (5)
Archive
Complete contents (378)
2023 (4)
2022 (2)
2021 (3)
2020 (15)
2019 (4)
2018 (5)
2017 (20)
2016 (7)
2015 (6)
2014 (5)
2013 (13)
2012 (17)
2011 (14)
2010 (13)
2009 (40)
2008 (40)
2007 (41)
2006 (48)
2005 (44)
2004 (30)
2003 (7)

Last update: Thursday, April 13, 2023 8:06 pm

Creative Commons Licence BY NC

Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.