Podcasts about Unix

Family of computer operating systems that derive from the original AT&T Unix

  • 736PODCASTS
  • 2,257EPISODES
  • 49mAVG DURATION
  • 5WEEKLY NEW EPISODES
  • Aug 27, 2026LATEST
Unix

POPULARITY

20192020202120222023202420252026

Categories



Best podcasts about Unix

Show all podcasts related to unix

Latest podcast episodes about Unix

BSD Now
678: Ceiling Cat has another meaning

BSD Now

Play Episode Listen Later Aug 27, 2026 47:37


Switches in your ceiling, AI affecting interest in things, Commodore Phone and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines How you wind up with switches above your office's false ceiling On AI News Roundup Attempting to reproduce the missing etcmerge from 15.0 to 15.1 upgrade Commodore is releasing a flip phone running Sailfish OS! Why a Flip Phone? $399 - $640 preorder BSD Make extravaganza HardenedBSD June / July 2026 Status Report MidnightBSD 4.0.7 RELEASE Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
677: Butler at your service

BSD Now

Play Episode Listen Later Aug 20, 2026 70:49


Home Assistant Setup, OpenBSD Updates, Wine 11.14, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines My Home Assistant Setup Huge!!! OpenBSD Updates WPA3 support coming to OpenBSD Game of Trees 0.127 Released OpenBSD relayd(8) adds ECDSA support with CA engine code from smtpd(8) httpd(8) gains support for custom HTTP headers LLVM toolchain coming to OpenBSD/sparc64 Call for testing: OpenBSD vmm(4)/vmd(8) fd-ification News Roundup Wine 11.14 Brings New WoW64 Mode to FreeBSD I Built a FreeBSD Cloud to Use with FreeBSD How Unix Spell Ran in 64kB RAM Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Tyler - IPv6 Question Reese - WebZFS Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
676: 10 print "goto 10"

BSD Now

Play Episode Listen Later Aug 13, 2026 60:22


The Future of the FreeBSD Kernel LLDB Plugin, Stop Ruining "10 PRINT", BoxyBSD Returns to FreeBSD, The Apple Lisa inside an FPGA, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Future of the FreeBSD Kernel LLDB Plugin Please, Just Stop Ruining "10 PRINT". Seriously. News Roundup BoxyBSD Returns to FreeBSD Google Summer of Code 2026 Reports: Testing Compat Linux: Syscall testing The Apple Lisa inside an FPGA! The Virtual OS Museum Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Marcus - Linuxulator vs Bhyve - Reese - Feedback on episode 673 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
675: Going GPL Free

BSD Now

Play Episode Listen Later Aug 6, 2026 39:28


FreeBSD 16 goes GPL Free, The computer at the bottom of the lake, FreeBSD's new Board member, Phaethon, a new 68010 based Unix machine and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines The Computer at the bottom of a canal FreeBSD 16 goes GPL Free News Roundup FreeBSD Foundation Welcomes New Board Member: Dave Cottlehuber Phaethon 1 - a 68010-based Unix machine Add a new m68k port oriented towards home-brew m68k machines Bringing Swift to the Apple II Working around dragons with the Lemote Yeeloong laptop and OpenBSD Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Producer note : Ive been insanely busy this past week and I've fallen behind on a few things, including checking the show email. If you sent an email in and we havent covered it yet, we'll get caught back up soon. If yuo haven't sent in an email... shame on you. You should email us and ask us something. Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4698: ID3 Tags and Vorbis Comments

Hacker Public Radio

Play Episode Listen Later Aug 5, 2026


This show has been flagged as Clean by the host. -------------------- 01 Introduction In a response to a post on a previous episode, I said that I would take a look at ID3 tags. ID3 tags are text information that is added to an MP3 audio file, such as the author, date, name, and other information. 02 While I am at it I will also look at Vorbis comments, which perform a similar function for vorbis, the container format for "ogg" audio files. As example audio files, I will use a recent HPR episode, hpr4678 in both mp3 and vorbis formats plus also one from another podcast as well. 03 There is Free Software which you can use to view, edit, or remove both types of tags or comments, and I will describe how to use it in this episode. 04 I will cover how to view tags and extract the text information, as well as how to strip the tags from a file and why you may wish to do so under certain very specific circumstances. I won't cover how to add to or edit tags in an MP3 or OGG file, as that is a more involved subject that I don't have much experience with. 05 I will mainly talk about ID3 MP3 tags rather than vorbis comments for the simple reason that the situation with MP3 files is an utter mess while vorbis comments are very straightforward and so there isn't as much to say about them. 06 As often happens when researching a subject to write a podcast script, I have learned quite a bit that I didn't know previously, and discovered that things that I thought I did know were wrong. I hope that you may learn a few things from this episode that you didn't know previously either. -------------------- 07 Background I won't go over the detailed history of ID3 tags, as I don't have a reliable source for this. Briefly however, so far as I can determine, there is no official independent standard for ID3 tags or vorbis comments. Both seem to be more in the nature of a convention that was created by an unofficial group of contributors rather than something issued by a standards body. 08 However, I don't see the lack of a conventional standards body as necessarily a problem with respect to the use of ID3 tags or vorbis comments. I just am not familiar enough with the industry to know who to regard as being an authoritative source when it comes to the history and development of them Since I am unsure as who to credit with what developments, I will avoid that sort of detail. 09 ID3 Tags There is a web site with the URL of ID3.org that seems to have the best reference material on the topic of ID3 tags. According to this site, the term "ID3" means "IDentify an MP3". 10 Vorbis Comments For vorbis, the reference site seems to be xiph.org. Although the implementation details may differ from ID3, from our perspective as podcast listeners, they can be seen as more or less equivalent in terms of what I am going to address here. -------------------- 11 ID3 Details Versions One of the problems with ID3 is that there are multiple incompatible versions, particularly from the very early days. ID3v1 tags are located at the end of the audio file in the last 128 bytes. This was done for compatibility reasons to allow early MP3 players to simply ignore the tags if they didn't know how to deal with them. The tags would simply appear as a short burst of static from the perspective of these early players. 12 ID3v2 moved the tags to the start of the MP3 file to allow players to scan the tags for information such as titles without having to read to the end of the file to find them. There are far fewer limits on the amount of information that can be placed in ID3v2 tags. 13 ID3v1 is obsolete and only very old players will require it. However, it is still used by some publishers for backward compatibility reasons. ID3v1 included numerical musical "genre" category codes which apparently turned out to be a very bad idea in practice. 14 Furthermore, all genre categories above 70 were defined by an audio software company called Nullsoft who created software such as Winamp. These codes were never actually part of the ID3 standard, although there was never really a standard to begin with. 15 The current ID3 version is 2.3. There is a version 2.4, but apparently it is not actually generally accepted and may be a developmental dead end. 16 The id3.org web site contains a copy of the ID3v2.3 standard, but I am not going to address the technical details here. This would only be of interest to someone who was creating software to read and write ID3 tags. 17 ID3v2 Frames The ID3v2 information is encoded into what are called "frames". The text information is contained in text information frames. 18 Text information frames start with a set of four character identifiers, all starting with the capital letter 'T'. Examples "TALB" is the "Album/Movie/Show title" frame. "TIT2" is the "Title/Songname/Content description" frame. "TYER" is the "Year" frame. There are many more, but I won't go into more detail here. 19 HPR ID3 Tags HPR makes an interesting case study because they use both ID3v1 and ID3v2 in the same file. This can cause some interesting problems with software that tries to read those tags. This is because most software appears to expect one or the other, but not both. However, so long as this does not cause problems with anything that actually plays the files, this is not a problem so far as people who just want to listen to podcasts are concerned. It does mean though that we have more to talk about than we would otherwise would have had. -------------------- 20 Vorbis Comment Fields The situation with Vorbis comments is much simpler, as there seems to be just one standard that was adhered to from the start rather than a succession of hacks. Information is stored in "fields", which xiph describes as being like Unix environment variables. These consist of a field name followed by an equal sign and then the information intended for that field. Field names are case insensitive. 21 The field names are not firmly defined at this stage, but there is a list of recommended names. Examples are "TITLE" is the Track or Work name. "ARTIST" is the person responsible for the work. "LICENSE" is the license information. 22 You can see the complete list for yourself on the comment field and header specification page at xiph.org -------------------- 23 Software for Listing, Adding, and Modifying Tags and Fields There are three software packages that I will now describe which allow you to list, add, modify, and remove tags and fields. There are other packages which can do the same, including some which offer a GUI interface. However, I will limit myself to describing these three. The principles should be the same for others. 24 ffprobe ffprobe is part of the ffmpeg package. If you have listened to my previous episodes on audio, you will have heard me talk about ffmpeg. ffprobe is used to display information about media files rather than for modifying them. ffprobe is licensed under the GPLv2 or later. ffprobe can be used to display information about both MP3 and OGG Vorbis files. 25 ID3v2 The next is the rather aptly named id3v2 and works with MP3 files. On Linux systems, this should be provided by the id3v2 package. On Debian derivatives this can be installed as follows sudo apt install id3v2 26 This also installs a man page which provides a brief list of the options. According to the README file in the source tarball, this is published under the LGPL ID3v2 is particularly useful for displaying ID3v1 tags. 27 vorbiscomment The third is "vorbiscomment" and works with OGG files. On Linux systems this should be provided by the "vorbis-tools" package. On Debian derivatives this can be installed as follows sudo apt install vorbis-tools 28 The vorbiscomment program is used to list or edit comments in Ogg Vorbis files. This also installs a man page which provides a brief list of the options. According to the license.lgpl file in the source tarball, this is published under the LGPL version2. 29 The display format for vorbiscomment follows the data definition format in the vorbis standard, whereas ffprobe re-formats it to match its own preferred appearance. -------------------- 30 Examples from HPR With the background out of the way, I will now give several examples of how to list the tags or fields. 31 Listing ID3v1 Tags As previously mentioned HPR uses both ID3v1 and ID3v2 tags in the same file. However, so far as I can tell, most software seems to look for ID3v2 tags first, and don't display the ID3v1 tags if both are present. 32 The ID3v2 program however seems to do the opposite, at least with HPR podcasts. However, the number of samples that I have which have both are rather limited, so I can't be sure if this is always the case or if this is a side effect of something else. I did mention that ID3 tags were a mess, didn't I? 33 Let's go on to our example however. If we want to see the ID3v1 tags, then using hpr4678 as an example, if we type id3v2 -l hpr4678.mp3 = we get the following result. 34 id3v1 tag info for hpr4678.mp3: Title : High Resolution Elapsed Time i Artist: Whiskeyjack Album : Hacker Public Radio Year: 2026, Genre: Unknown (186) Comment: https://hackerpublicradio.or Track: 0 hpr4678.mp3: No ID3v2 tag 35 The first line tells us that this information is ID3v1 tags. The last line tells us that there are no ID3v2 tags. This last line is incorrect, but we will come back to that later. 36 In between are three lines of text. The first line contains the title and the artist. The title is the name of the HPR episode, or at least part of it. The artist is the HPR contributor who made that episode. 37 The second line contains the album name, the year, and the genre. The album name is this case is simply Hacker Public Radio, as the concept of an album doesn't really fit a podcast. The year is the year that the episode was recorded, or at least the year in which the MP3 file was assembled with the HPR intro and the tags added. 38 The genre is listed as "unknown 186". Recall that with ID3v1 tags there is a one byte numeric genre code, but that no genres above 70 were ever officially assigned. It seems to be a general convention though to use a code 186 for podcasts. 39 The third line contain a comment and track number. The comment in this case is the HPR web site URL. The track is zero. "Track" would appear to serve no useful purpose in this instance. However, it may be there for reasons of compatibility that I am unaware of, so I would be very reluctant to remove that without very good reason. 40 If we look at the above information in detail we can see that two of the tags appear to have cut their text information off short. The title is cut off in mid word after the 30th character. The final "g" in "hackerpublicradio.org" is cut off in the comment. 41 Alternative Method for ID3v1 We can confirm whether the text being cut short is due to a problem with the id3v2 program, or whether it really represents the data in the file by using a rather simple check. 42 Recall that ID3v1 tags are simply the last 128 bytes of the MP3 file. All we need to do is to extract the last 128 bytes of the file. We can do this using the standard tail command. tail -c128 hpr4678.mp3 | tr '' ' ' | tr -c '[:print:]' 'x' 43 The -c128 option used with tail tells it to extract the last 128 bytes of the file. We then pass the result through the "tr" command and tell it to replace null bytes with new line characters. Then we replace any remaining non-printable characters with an 'x'. When we do that we get the following 44 TAGHigh Resolution Elapsed Time iWhiskeyjack Hacker Public Radio 2026https://hackerpublicradio.or x 45 The first three characters are capital TAG. This is a flag which indicates that what follows are ID3 tags. 46 Next, we have 30 characters which specify the title. The next 30 characters specify the artist. The next 30 characters are the album, or in this case just "Hacker Public Radio". The next 4 characters are the year. The next 30 characters are a comment, or in this case the HPR URL, except for the final "g". The last character is the genre code, which we have replaced with an "x" because it is otherwise non-printable. 47 Taken together, these add up to 128 bytes. We can see that the field lengths are of fixed length with pre-defined meanings based on position. -------------------- 48 ID3v2 Using ffprobe Now lets move on to ID3v2 tags, which is probably more useful for most people. For this, we will switch to using ffprobe. The command for this is ffprobe -hide_banner hpr4678.mp3 The -hide_banner option suppresses extra data about the codecs which doesn't interest us much and leaves mainly the tag information plus a few other things. 49 The output gives us the full data that is associated with the podcast episode from the HPR web site. This includes the episode number, year, full title, author, license, and full summary text. You can see a full copy of this in the show notes. Input #0, mp3, from 'hpr4678.mp3': Metadata: track : 4678 year : 2026 title : High Resolution Elapsed Time in Shell Scripts author : Whiskeyjack copyright : CC-BY-SA artist : Whiskeyjack album : Hacker Public Radio comment : https://hackerpublicradio.org Clean; Surprises encountered when measuring elapsed time in shell scripts The license is CC-BY-SA genre : Podcast encoder : Lavf61.7.103 date : 2026 Duration: 00:30:10.18, start: 0.023021, bitrate: 64 kb/s Stream #0:0: Audio: mp3, 48000 Hz, mono, fltp, 64 kb/s 50 The ID3v2 tag version contains all of the information which was provided by the author, including the full title and description without the 30 character limit of ID3V1. If you want any of this information for some reason you should be able to extract it from the MP3 file using a combination of ffprobe, grep, and cut rather than trying to scrape the HPR web site and matching it to the MP3 later. -------------------- 51 ID3v1 Using ffprobe I previously mentioned that HPR MP3 files have both ID3v1 and ID3v2 tags in the same file, and that ffprobe will default to using ID3v2 tags if present. However, what happens if we remove the ID3v2 tags and leave the ID3v1 tags? I will describe how to strip tags later on in this episode, but let's just assume for now that I have done this. If we then use ffprobe to read the ID3 tags using the same command as before, we get the following output. 52 We get a series of lines in the same format as with ID3v2, but with each data element limited to at most 30 bytes. These include title, artist, album, date, comment, and genre. You can see the full output in the show notes. Input #0, mp3, from 'test.mp3': Metadata: title : High Resolution Elapsed Time i artist : Whiskeyjack album : Hacker Public Radio date : 2026 comment : https://hackerpublicradio.or genre : Podcast Duration: 00:30:10.18, start: 0.023021, bitrate: 64 kb/s Stream #0:0: Audio: mp3, 48000 Hz, mono, fltp, 64 kb/s 53 The information is the same as when read by the id3v2 program, but formatted for display in the manner that ffprobe uses. This shows that ffprobe can indeed read ID3v1 tags if they are the only ones present. -------------------- 54 Reading Vorbis Comments Now let us turn our attention to vorbis comments, which are the equivalent to tags for ogg files. We will look at this using two methods. 55 Using vorbiscomment The first method we will look at is using the vorbiscomment package. The command is vorbiscomment -l hpr4678.ogg 56 The output of this is a series of lines with key value pairs separated by equal signs. The output is also exactly the same as the MP3 file, except that there is an additional "language" field, "track" becomes "TRACKNUMBER", and there is no "date" field. You can see the full output in the show notes. encoder=Lavc61.19.101 libvorbis TRACKNUMBER=4678 year=2026 language=English title=High Resolution Elapsed Time in Shell Scripts author=Whiskeyjack copyright=CC-BY-SA artist=Whiskeyjack album=Hacker Public Radio DESCRIPTION=https://hackerpublicradio.org Clean; Surprises encountered when measuring elapsed time in shell scripts The license is CC-BY-SA genre=Podcast 57 Using ffprobe Now lets do the same again using ffprobe. The command for this is ffprobe -hide_banner hpr4678.ogg 58 The output content is the same of course, but the field names have all been forced to lower case, and instead of an equal sign as a separator between the key and value, this has been replaced by a colon and white space has been added to make the output look a bit nicer. You can see the full output in the show notes. Input #0, ogg, from 'hpr4678.ogg': Duration: 00:30:10.14, start: 0.000000, bitrate: 86 kb/s Stream #0:0(English): Audio: vorbis, 192000 Hz, mono, fltp, 4294967 kb/s Metadata: encoder : Lavc61.19.101 libvorbis track : 4678 year : 2026 title : High Resolution Elapsed Time in Shell Scripts author : Whiskeyjack copyright : CC-BY-SA artist : Whiskeyjack album : Hacker Public Radio comment : https://hackerpublicradio.org Clean; Surprises encountered when measuring elapsed time in shell scripts The license is CC-BY-SA genre : Podcast -------------------- 59 Another Example from Another Podcast The above is interesting, but it's a sample of one podcast. Let's look at another different one altogether. For this test I used two episodes of the Linux Matters podcast, episodes 68 and 82. As to why I am using two different episodes I will explain in a moment. 60 Episode 68 We will start with examining episode 68 Using id3v2 The command using id3v2 is id3v2 -l LMP68.mp3 61 This provides output as a series of lines containing the official 4 character identifiers from the standard, a description of the identifiers, and the text provided by the authors. The identifiers include TIT2 indicating title, TALB indicating show title, TRCK indicating track number, and a number of others. You can see the full output in the show notes. id3v2 tag info for LMP68.mp3: TIT2 (Title/songname/content description): 68: Frameworks, Filesystems and Fixes TPE1 (Lead performer(s)/Soloist(s)): Linux Matters TALB (Album/Movie/Show title): Linux Matters TYER (Year): 2025 TRCK (Track number/Position in set): 68 COMM (Comments): ()[]: https://linuxmatters.sh/ APIC (Attached picture): (LMP-3000-moon.jpg)[, 3]: image/jpeg, 554576 bytes LMP68.mp3: No ID3v1 tag 62 From this we can see what the id3v2 program would normally do with ID3v2 tags. Note that it outputs the actual 4 character identifiers, plus a description of what they mean, and then the actual data. This helps when trying to understand the actual encoding of the data. 63 Using ffprobe Now let's try that with ffprobe. The command is ffprobe -hide_banner LMP68.mp3 64 This provides the same publisher provided data as before. However it does not display the 4 character identifiers but instead uses its own format for display. Also note in both cases that there is a picture embedded in the MP3 file which is used to generate an icon for display in your file manager. With ffprobe this results in there being two keys called "title" and two keys called "comment". This makes grepping for the metadata more complicated, but it should still be possible. You can see the full output in the show notes. Input #0, mp3, from 'LMP68.mp3': Metadata: title : 68: Frameworks, Filesystems and Fixes artist : Linux Matters album : Linux Matters comment : https://linuxmatters.sh/ track : 68 date : 2025 Duration: 00:28:12.45, start: 0.025056, bitrate: 114 kb/s Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 112 kb/s Metadata: encoder : LAME3.100 Stream #0:1: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 4166x4166 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn (attached pic) Metadata: title : LMP-3000-moon.jpg comment : Cover (front) 65 Episode 82 Now lets try that again with a different episode, 82. Using id3v2 The command for id3v2 is id3v2 -l LMP82.mp3 This results in id3v2 saying LMP82.mp3: No ID3 tag What happened here? 66 Using ffprobe Let's try that again with ffprobe. The command ffprobe -hide_banner LMP82.mp3 provides the expected output. Input #0, mp3, from 'LMP82.mp3': Metadata: date : 2026-05 title : 82: Ditching Grammarly for Open Sauce album : Linux Matters track : 82 artist : Linux Matters comment : https://linuxmatters.sh Duration: 00:33:37.83, start: 0.025056, bitrate: 113 kb/s Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 112 kb/s Stream #0:1: Video: png, rgb24(pc, gbr/unknown/unknown), 3000x3000, 90k tbr, 90k tbn (attached pic) Metadata: title : Linux Matters Logo comment : Cover (front) 67 This results in a few minor changes from episode 68, but otherwise it looks the same. So there are ID3 tags, but for some reason id3v2 couldn't recognize them. A bit more research and experimentation shows that this change appears to have happened right after episode 68, when they changed hosting and processing arrangements. I suspect that something changed with respect to the ID3v2 tag formatting somewhere along the way in the change over, and this in turn has affected the ability of the id3v2 program to recognize the tags. I will come back to the implications of this later in my conclusions. -------------------- 68 Stripping ID3 Tags Now let's turn to a differen topic. Stripping ID3 tags refers to removing the ID3 tags from the audio file. I will start off by emphasizing that normally, you don't want to do this. You should only be doing it if you suspect the ID3 tags are causing a problem with the playback or ordering of the files. 69 In my case I do it when I have problems with my MP3 player when playing certain podcasts. This MP3 player orders files according to ID3 tags rather than by file name. This can result in the podcasts being played in an unpredictable order which I find undesirable. This is particularly a problem with podcasts from certain publishers where the title data does not follow any consistent pattern, but is whatever someone felt like doing that day. 70 I also often have to normalize the files from the same publishers to get a consistent audio loudness. See my series on Simple Podcasting for information on how to use ffmpeg to normalize the audio loudness. The solution to the inconsistent tag formats in these cases is to simply strip the ID3 tags altogether. The player then falls back on using the file names, and I can readily rename the files to a consistent format. I have never had these sorts of problems with HPR podcasts. If you are not having any problems of this nature, then as I said, don't bother stripping the tags. 71 To strip the ID3 tags from an MP3 file use the following. id3v2 -D hpr4678.mp3 id3v2 will strip the tags and overwrite the existing file. If you wish to keep a copy with the tags, be sure to keep a backup before you try things. 72 When it comes to stripping tags, the options are "-s" deletes ID3v1 tags. "-d" deletes ID3v2 tags. "-D" deletes both v1 and v2 tags. -------------------- 73 Conclusions In this episode we took a very brief look at ID3 tags and vorbis comments and ways of reading them. 74 ID3 tags and Vorbis comments provide a means of allowing information about an MP3 or OGG Vorbis file to be embedded in the file itself. Podcast publishers very often use this to label the file with information such as title, publisher, and author. We can read this information using Fee Software tools such as ffprobe, ID3v2, and vorbiscomment. 75 ID3 tags seem to be a mess with more than one incompatible versions, and difficulties in reading them even within the same version. They are difficult to test for because there is so much hardware out there of varying ages, much of which you will never have heard of let alone had access to. If you are recording episodes for HPR you do not have to worry about this, as HPR will do this behind the scenes for you. However, if you are responsible for producing a podcast or other similar audio and you have a setup that works, it is probably best not to change anything without good reason. 76 Vorbis comments seem to be much less of a problem. However, there are far fewer devices which can play OGG files compared to MP3, so simply switching to OGG may not be a realistic solution to the ID3 tag problem. 77 If you wish to have one tool that can read ID3 tags of all sorts and vorbis comments, then ffprobe is your obvious choice. 78 The ID3v2 program will provide more information about the ID3 tags, including the actual identifiers used. However, it does not work in all cases. 79 The vorbiscomment program will read Vorbis comments from OGG files in a manner which is closer to the actual vorbis format than ffprobe does, which uses its own display format. 80 HPR includes both ID3v1 and ID3v2 tags in its MP3 files. ffprobe can be used to read the ID3v2 tags, and the id3v2 program can be used to read the ID3v1 tags. You can also read the ID3v1 tags using the tail command. 81 I have barely scratched the surface of this subject and have not talked at all about creating tags or comments. If anyone else would like to take up the challenge of providing more detail, or of correcting any mistakes that have made, please send in a podcast episode on the subject. If you have any comments you would like to make, leave them in the comment section below this episode on the HPR web site. 82 I hope to see you all again in future in another episode of HPR. -------------------- References https://id3.org/Introduction https://www.xiph.org/ https://wiki.xiph.org/VorbisComment -------------------- Provide feedback on this episode.

PING
Canonical Cache Representation

PING

Play Episode Listen Later Aug 5, 2026 35:25


In this episode of PING, we talk with Job Snijders about secure Internet routing again, focusing on an approach to preserving the state of RPKI as a longterm historical record for research and analysis. Job was last on PING to discuss the “Erik” protocol. Job has been running an archive of RPKI state for some time, as a volunteer activity but an exercise which was feasible when BGP speakers producing ROA objects was measured in the hundreds to low thousands is significantly more expensive when the population of ROA producers is a more realistic percentage of the around 80,000 AS holders worldwide. Because Public Key Cryptography depends on a regular re-signing, and re-cataloging (as another signed object, the RPKI “Manifest” file) even when there is no substantive change in the state of signed information, a large amount of “churn” can be seen in the data, and even a compressed form of this state in turn incurs a huge overhead in storage of hard-to-compress data. Job reached the limits of his free activity, and started to explore a more compact and useful representation. This has emerged in the IETF standards process as two related activities. The Canonical Cache Representation or CCR, and the aggregation over this for data represented as the RPKI Spool data model for “materialising” the state of RPKI objects. Along with his fellow IETF draft authors Bart Bakker , Tim Bruijnzeels, Theo Buehler and Fedor Vompe Job has managed to define a remarkably compact, highly compressible representation of RPKI validated objects, and the cryptographic payloads. These systems have been designed to leverage well known UNIX and other techniques for data management such as the “tar” format for spooled data, ASN.1 for binary encoding, Merkle Trees to hold compact hash state, and data compression using the zstd encoding. It's a nice approach to solving the scaling problem.

Hacker Public Radio
HPR4697: Correcting the Dates of Files

Hacker Public Radio

Play Episode Listen Later Aug 4, 2026


This show has been flagged as Clean by the host. I recently had an experience where UNIX tools proved very useful. A relative had an old mobile phone running Android that stopped connecting to the carrier's network and bought a new one to replace it. I took on the job of trying to copy their files (consisting of just photos and videos) off of the old phone. Google's software was desperate to convince me to upload everything to the cloud, but I wasn't interested. It offered the option of copying the files over to an SD card, but failed on repeated attempts to do that. The option I tried next was to transfer them to another device via Bluetooth—that one did actually work, although it was slow and would only handle sending about 100 files at a time. They came over to my laptop OK, but the problem with that method was that all of the file times were set to the time when they were transferred. I'm not super familiar with how mobile apps manage metadata, but would presume that they look to file times for organizing photos by date. Fortunately, the names of each of the files included the date and time they were created. I recognized that I could write a bit of shell script to parse the filenames and set the file times accordingly. While there were over 800 files, the good news is that there were only three different categories of filenames, so the logic to extract the information needed was relatively simple. Each file had eight numerical digits representing the date and six digits representing the time. It would definitely be an option to come up with a more sophisticated parser that could handle a wide variety of filenames, but I went the lazy way and just handled those three cases. Another nice aspect was that none of the filenames contained spaces, which allowed me to be a bit less careful when using them in command lines. I didn't need to worry about time zones because my laptop was set to the same time zone as the phone—also, if a time was off a by a few hours it wouldn't make a practical difference. Examples of the three different types of filenames I had to deal with, labeled with the relevant values: YYYY=year, MM=month, DD=day, hh=hour, mm=minute, and SS=second. 00001IMG_00001_BURST20250525140124.jpg YYYYMMDDhhmmSS IMG_20220223_124023.jpg VID_20221017_095024.mp4 YYYYMMDD hhmmSS 20191224_195939.jpg 20161021_122620-1.jpg 20191130_134317_Burst01.jpg 20200129_223612_010.jpg YYYYMMDD hhmmSS I considered awk as an option (see Whiskeyjack's comment on HPR episode 4657 ), but realized it has no built-in way to change file times, so I set it aside. Don't worry, I will come back to that later. My approach was to use an if-then shell construct to choose how to treat the three categories of filenames. For the if condition, I fed the filename into the grep -q command with an appropriate regular expression to test whether it matches. The -q option to grep causes it not to output anything—it returns a zero exit status if there's a match and a status greater than zero if there isn't. Then, there is an elif statement with another grep -q test for the second category of filenames. Finally, an else statement is followed by the command to run for all other filenames. The whole thing is wrapped in a for loop that runs over all the files in the current directory. The touch command , when used with the -t option, can be given a string consisting of the year, month, day, hour, minute, and second. These are all numerals that are run together, except that a period sits between the minute and second. So we need a way to extract these numbers and to insert the period. That's where the cut utility comes in. It can be given a set of characters to select, and I specified a different set representing the appropriate ones depending on which category a filename fit into. To insert the period, I used sed to replace the last two characters with a period followed by those characters. The first script was to test out that I was getting the correct results. for fn in * do if echo "$fn" | grep -q BURST then printf "$fn " echo $fn | cut -c '21-34' | sed 's/..$/.&/' elif echo "$fn" | grep -q -E '^(IMG_|VID_)' then printf "$fn " echo $fn | cut -c '5-12,14-19' | sed 's/..$/.&/' else printf "$fn " echo $fn | cut -c '1-8,10-15' | sed 's/..$/.&/' fi done This one actually sets the file times. The -c option to touch prevents it from creating a file if one with that name doesn't already exist. for fn in * do if echo "$fn" | grep -q BURST then touch -c -t "$(echo $fn | cut -c '21-34' | sed 's/..$/.&/')" "$fn" elif echo "$fn" | grep -q -E '^(IMG_|VID_)' then touch -c -t "$(echo $fn | cut -c '5-12,14-19' | sed 's/..$/.&/')" "$fn" else touch -c -t "$(echo $fn | cut -c '1-8,10-15' | sed 's/..$/.&/')" "$fn" fi done The script ran over all the files in less than 15 seconds and correctly set the file time on each. Job done, right? Well, after I did this, it struck me that there was room for improvement. The script would probably run more quickly if I used a case construct instead of an if construct that called grep multiple times. While the pattern-matching notation used with case is not as flexible and can handle fewer situations than the regular expression syntax available with grep , in this case (see what I did there?) it is sufficient. Testing it out, using case reduced the running time by 45%. Replacing if with case —the commands to be executed for each category of filename can remain exactly the same. for fn in * do case "$fn" in *BURST*) printf "$fn " echo $fn | cut -c '21-34' | sed 's/..$/.&/' ;; IMG_*|VID_*) printf "$fn " echo $fn | cut -c '5-12,14-19' | sed 's/..$/.&/' ;; *) printf "$fn " echo $fn | cut -c '1-8,10-15' | sed 's/..$/.&/' esac done for fn in * do case "$fn" in *BURST*) touch -c -t "$(echo $fn | cut -c '21-34' | sed 's/..$/.&/')" "$fn" ;; IMG_*|VID_*) touch -c -t "$(echo $fn | cut -c '5-12,14-19' | sed 's/..$/.&/')" "$fn" ;; *) touch -c -t "$(echo $fn | cut -c '1-8,10-15' | sed 's/..$/.&/')" "$fn" esac done I couldn't completely put awk out of my mind, though, and I eventually came up with an awk script for the same purpose. This is far faster, probably because everything can be done within awk except actually modifying the file times, which is possible using the system() function to call touch . I was able to knock 90% off the running time, which for 800 files isn't a big deal but might make a difference if you have hundreds of thousands of files. The awk counterparts to both scripts above. Unlike those, ls is used to feed it with the list of filenames. We have the full power of extended regular expressions available to use for matching against the filenames. The next statement causes awk to skip any remaining pattern-action pairs and go to the next line of input. ls | awk '/BURST/ { print $0, substr($0, 21, 12) "." substr($0, 33, 2) next } /^(IMG_|VID_)/ { print $0, substr($0, 5, 8) substr($0, 14, 4) "." substr($0, 18, 2) next } { print $0, substr($0, 1, 8) substr($0, 10, 4) "." substr($0, 14, 2) }' ls | awk '/BURST/ { system("touch -c -t " substr($0, 21, 12) "." substr($0, 33, 2) " " $0) next } /^(IMG_|VID_)/ { system("touch -c -t " substr($0, 5, 8) substr($0, 14, 4) "." substr($0, 18, 2) " " $0) next } { system("touch -c -t " substr($0, 1, 8) substr($0, 10, 4) "." substr($0, 14, 2) " " $0) }' A further optimization that came to me later was to not call system() from within awk , but to instead just have awk print out a set of command lines. These can then be piped to sh to actually be executed. This cut the running time down by 95% compared to my original script. The fastest version I was able to come up with. If you run it without the | sh on the end, you can check that it's outputting the right information before actually modifying anything. The backslash on the end of a couple lines causes the subsequent line to be treated as a continuation of the existing line. Normally I would just keep everything on one line even if it runs longer than 80 columns, but for display purposes this looks nicer. ls | awk '/BURST/ { print "touch -c -t " substr($0, 21, 12) "." substr($0, 33, 2) " " $0 next } /^(IMG_|VID_)/ { print "touch -c -t " substr($0, 5, 8) substr($0, 14, 4) "." substr($0, 18, 2) " " $0 next } { print "touch -c -t " substr($0, 1, 8) substr($0, 10, 4) "." substr($0, 14, 2) " " $0 }' | sh It is probably true that this could have been carried out just as easily on Windows using Microsoft's PowerShell. I'm not very familiar with it, but would imagine (or hope) that it includes commands for managing these basic things like text manipulation and modifying file times. If you are stuck in an environment where you don't have a UNIX-like system available, investigate how to accomplish a task with the tools you do have. While I had the necessary information in the filenames to use, that might not be the case in all situations. You could look for other sources of dates—most digital cameras will add EXIF tags to a JPEG file giving the date and time it was created. (Hopefully, the clock in the camera will be set accurately.) While there is no standard UNIX utility to read those tags, free and open source software tools are widely available for that purpose. I found one called exiftags that included the utility exiftime , which specifically outputs EXIF data relating to time. The output format was a little trickier to handle, but awk was able to manage it with a little coaxing. Example of output produced by exiftime . Note that the first line with the filename is only printed if more than one filename is given as an argument. Also, for amusing-sign.jpg , apparently I edited that photo after taking it and the editing software updated the "created" tag but left the others intact. Not all images will necessarily have created, generated, and digitized tags; we will just take whichever ones exist. I redirected standard error to /dev/null to get rid of error messages for files that don't have EXIF tags; we'll handle those below. $ exiftime *.jpg 2>/dev/null 20260508_154743.jpg: Image Created: 2026:05:08 15:47:43 Image Generated: 2026:05:08 15:47:43 Image Digitized: 2026:05:08 15:47:43 20260508_155044.jpg: Image Created: 2026:05:08 15:50:44 Image Generated: 2026:05:08 15:50:44 Image Digitized: 2026:05:08 15:50:44 3704a78e771c2a25a894ef2f0b5a2a629f1eba80.jpg: amusing-sign.jpg: Image Created: 2017:01:24 23:14:04 Image Generated: 2017:01:24 21:18:07 Image Digitized: 2017:01:24 21:18:07 dscf3011.jpg: Image Created: 2015:01:01 00:02:19 Image Generated: 2015:01:01 00:02:19 Image Digitized: 2015:01:01 00:02:19 window-view.jpg: $ We can take advantage of the fact that different records are separated by a blank line. In awk , when RS is set to a null string and FS is set to a newline character, each set of non-blank lines is treated as a record and each line within those sets is treated as a field. One or more blank lines separate each record. For the output of exiftime , this means that $1 will contain the filename and $2 will contain the first line after the filename. For those files without an EXIF date tag, $2 will be a null string, which is treated by awk as FALSE, so the pattern will not match, the action will not be taken, and nothing will be printed. If a file has multiple tags, I will just use the first one reported by exiftime (contained in $2 ). The sub() function call removes the colon that exiftime prints after the filename, and the gsub() function call removes all non-numeric characters from the date and time in the tag. (After a comma within a print statement, a backslash is not necessary to continue a line.) Also, this time I bothered to print quotation marks around the filename in case it contains spaces. $ exiftime *.jpg 2>/dev/null | awk 'BEGIN { FS = "n" ; RS = "" } $2 { sub(":$", "", $1) gsub("[^0-9]", "", $2) print "touch -c -t", substr($2, 1, 12) "." substr($2, 13, 2), """ $1 """ }' touch -c -t 202605081547.43 "20260508_154743.jpg" touch -c -t 202605081550.44 "20260508_155044.jpg" touch -c -t 201701242314.04 "amusing-sign.jpg" touch -c -t 201501010002.19 "dscf3011.jpg" $ I would imagine that there's some photo management program out there that I could have used to accomplish this. But then I would have had to locate it, verify that it wasn't some malware-loaded garbage, download, and install it. And chances are it would want to take over all the photos on my laptop. Instead, with standard UNIX tools and shell capabilities like if , case , process substitution, and pipelines, I was able to complete the task without having to install anything. The techniques I described can be used in different circumstances and with the output of different utilities. My intention was not just to explain how to solve this specific problem, but to hopefully teach you some things that you can apply in many situations. Perhaps if you use them to tackle a challenge of your own, you'll record an episode for HPR to share what you know. Provide feedback on this episode.

Advent of Computing
LIVE from VCF West - Wait, Is That Really UNIX?

Advent of Computing

Play Episode Listen Later Aug 3, 2026 48:08


It's no secret that I've been fascinated by odd UNIX clones for a while. When I got invited back to speak at VCF West this year I decided to share that fascination with a captive audience. In this talk we look at Idris and CROMIX, and ask the simple question: why would you want UNIX free UNIX? VCFed will be posting the video version of this presentation in the coming weeks. I'll add a link here once that's up. SEE my slides, here: https://docs.google.com/presentation/d/1v21An2jTGbKn4HV7Orr7xQcjnj3Cju_iMgNX50UcjeI/edit?usp=sharing Install Co-Idris: https://github.com/hansake/Whitesmiths-Idris-OS Install ST-Idris: https://github.com/9nut/IDRIS-OS-for-Atari-ST And DEFINITELY install CROMIX: https://www.sydneysmith.com/wordpress/run-cromix/

BSD Now
674: Software development never changes

BSD Now

Play Episode Listen Later Jul 30, 2026 60:40


Scrub Design, WebZFS Updates, The Foundations role in the FreeBSD Ecosystem, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines If Scrubs Hurt, Your ZFS Design Is Broken WebZFS Updates Beta Announcement Why wont my pool export zfs iostat - Pictures so you can get a better idea of how it works News Roundup Understanding the Foundation Board's Role in the FreeBSD Ecosystem Monitor your devices with LibreNMS on FreeBSD Diskless Workstations Two Models Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Davi - BSDCan 2026 Follow up Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
673: There's somebody at the door

BSD Now

Play Episode Listen Later Jul 23, 2026 50:19


Leaving Port 22 open to the internet, FreeBSD Foundationals, GhostBSD Finance Report, Making your own read-only device with NetBSD, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines I Left Port 22 Open on the Internet for 54 Days. Here's Who Showed Up. FreeBSD Foundationals: The Boot Process - From the Loader to Boot Environments News Roundup FreeBSD 15 on a Laptop GhostBSD - March 2026 Finance Report Make your own Read-Only Device with NetBSD NFS-problems I didn't expect at all Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4687: UNIX Curio #11 - Merging Files

Hacker Public Radio

Play Episode Listen Later Jul 21, 2026


This show has been flagged as Clean by the host. ether This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. I frequently find myself reaching for the cut utility when writing scripts to extract one piece of data from a line, or to select specific fields from a log file. While I am familiar with its counterpart, paste , I don't employ it very often because I don't typically need its functionality. This perhaps has to do with the fact that I rarely work with text files containing lists. For shorter lists, I usually end up using a spreadsheet and for larger ones, a relational database. Both are valuable tools with their own strengths and weaknesses, but it is good to also know about standard utilities for working with lists. After uploading UNIX Curio #8 ( HPR episode 4657 ), I felt like maybe I had been too dismissive of the comm utility in that episode and should talk more about tools that are useful when managing lists. I don't frequently find myself using paste 1 , but can explain how it works. Briefly, it is a rough opposite of cut —when given multiple files as arguments, it assembles the first line from each one separated by tabs, then the second line, and so on. Instead of tabs, a different delimiter can be chosen with the -d option. Another option is -s , which swaps rows and columns so that the contents of each named file would appear on one line. While paste itself doesn't qualify as a UNIX Curio in my opinion, there is one feature that does: a hyphen can be given as an argument multiple times. In this special case, the output is taken line by line from standard input, but is spread across as many columns as there are hyphens. Example of using paste to turn the output of ls into columns. Because these columns are separated by tabs, they don't necessarily line up when a filename is eight or more characters long. The -1 is not required for the second ls command since that behavior is implied when output isn't going to a terminal. The -C option to ls usually gives nicer-looking output on a terminal—also, it lists in ascending order down by column. (Most implementations default to -C when output goes to a terminal.) If you want items ascending along rows like the paste example does, try ls -x instead. $ ls -1 /proc/net anycast6 arp bnep connector dev dev_mcast dev_snmp6 fib_trie fib_triestat hci icmp icmp6 if_inet6 igmp igmp6 ip6_flowlabel ip6_mr_cache ip6_mr_vif ip_mr_cache ip_mr_vif ip_tables_matches ip_tables_names [...35 more entries not shown...] $ ls /proc/net | paste - - - - anycast6 arp bnep connector dev dev_mcast dev_snmp6 fib_trie fib_triestat hci icmp icmp6 if_inet6 igmp igmp6 ip6_flowlabel ip6_mr_cache ip6_mr_vif ip_mr_cache ip_mr_vif ip_tables_matches ip_tables_names ip_tables_targets ipv6_route l2cap mcfilter mcfilter6 netfilter netlink netstat packet protocols psched ptype raw raw6 rfcomm route rt6_stats rt_acct rt_cache sco snmp snmp6 sockstat sockstat6 softnet_stat stat tcp tcp6 udp udp6 udplite udplite6 unix wireless xfrm_stat $ ls -C /proc/net anycast6 if_inet6 l2cap rfcomm tcp arp igmp mcfilter route tcp6 bnep igmp6 mcfilter6 rt6_stats udp connector ip6_flowlabel netfilter rt_acct udp6 dev ip6_mr_cache netlink rt_cache udplite dev_mcast ip6_mr_vif netstat sco udplite6 dev_snmp6 ip_mr_cache packet snmp unix fib_trie ip_mr_vif protocols snmp6 wireless fib_triestat ip_tables_matches psched sockstat xfrm_stat hci ip_tables_names ptype sockstat6 icmp ip_tables_targets raw softnet_stat icmp6 ipv6_route raw6 stat $ ls -x /proc/net anycast6 arp bnep connector dev dev_mcast dev_snmp6 fib_trie fib_triestat hci icmp icmp6 if_inet6 igmp igmp6 ip6_flowlabel ip6_mr_cache ip6_mr_vif ip_mr_cache ip_mr_vif ip_tables_matches ip_tables_names ip_tables_targets ipv6_route l2cap mcfilter mcfilter6 netfilter netlink netstat packet protocols psched ptype raw raw6 rfcomm route rt6_stats rt_acct rt_cache sco snmp snmp6 sockstat sockstat6 softnet_stat stat tcp tcp6 udp udp6 udplite udplite6 unix wireless xfrm_stat The paste command has limitations—the files you give it must all be already arranged in the same order, and if any file is missing a value, it must have a blank line so that subsequent lines will match up correctly. The files do not necessarily have to be sorted alphabetically, but whatever order they are in has to be the same. Check out HPR episodes 962 and 4201 for some more background on the paste utility. Example of using paste with files where some values are empty. Bob works from home so doesn't have an office assigned, and the laboratory Carol works in doesn't have a phone. This relies on the fact that the same line number in every file relates to the same person/entry. $ cat names Alice Bob Carol Dave $ cat offices 203 Lab6A 117 $ cat phones +1 212-555-1234 +1 919-555-2345 +1 212-555-1278 $ paste names offices phones Alice 203 +1 212-555-1234 Bob +1 919-555-2345 Carol Lab6A Dave 117 +1 212-555-1278 Our second UNIX Curio for today is a utility called join 2 , which has a bit more sophistication. It operates on two files, which can have multiple columns, and combines them using the join field. By default, the first column/field in each file is the join field, and only entries that exist in both files are printed. The -1 and -2 options can be used to join on a different field, and -o selects specific fields to be output. To make it so lines with missing entries also appear, you need to use the -a option, but an actual empty string with separator won't be printed unless -o is also present and includes the field. The default field separator character is one or more "blanks" in the current locale—for the POSIX locale, this means a space or a horizontal tab. The -t option selects a different character and also removes the treatment of multiple occurrences as a single separator, making it possible to have an empty field in one or both of the files. By default, a single space is used to separate fields in the output. If -t is given, the same character is used for separating fields in both input and output. You would need to pipe output through another tool like tr if you wanted to have a different separator in the output. The join utility might be an improvement over paste in some cases, since the join field makes it a little easier to identify which entries match up across files. It is limited to operating only on two files (one of which can be standard input), so combining more than that requires either creating temporary intermediate files or chaining together join commands in a pipeline. Another requirement is that all files must already be sorted in the current locale. Example showing how join can be used with two tab-separated lists. The LC_ALL assignment forces join to sort using the C (POSIX) locale instead of whatever might be set in your environment. The "@" on the header line has no special meaning; it is just there to make sure it sorts before any letters or numbers (in the C locale; it might not in other locales). Note that if -t were not specified, plist would be treated as having three fields because of the space separating the country code from the rest of the phone number. $ export tab="$(printf 't')" #To more easily use tab characters below $ cat olist @Name Office Alice 203 Carol Lab6A Dave 117 $ cat plist @Name Phone Alice +1 212-555-1234 Bob +1 919-555-2345 Dave +1 212-555-1278 $ LC_ALL=C join -t "$tab" olist plist @Name Office Phone Alice 203 +1 212-555-1234 Dave 117 +1 212-555-1278 $ LC_ALL=C join -t "$tab" -a 1 -a 2 olist plist @Name Office Phone Alice 203 +1 212-555-1234 Bob +1 919-555-2345 Carol Lab6A Dave 117 +1 212-555-1278 $ #By default, join acts as if empty fields don't exist; use -o to include $ LC_ALL=C join -t "$tab" -a 1 -a 2 -o 0,1.2,2.2 olist plist @Name Office Phone Alice 203 +1 212-555-1234 Bob +1 919-555-2345 Carol Lab6A Dave 117 +1 212-555-1278 $ #The -e option sets a placeholder to use for empty fields $ LC_ALL=C join -t "$tab" -e "(none)" -a 1 -a 2 -o 0,1.2,2.2 olist plist @Name Office Phone Alice 203 +1 212-555-1234 Bob (none) +1 919-555-2345 Carol Lab6A (none) Dave 117 +1 212-555-1278 The brief description for join is "relational database operator"—I won't dispute that, but in my view it offers far fewer capabilities than people would expect from today's relational databases. I would imagine that when most people think of those they have Structured Query Language (SQL) in mind, which offers a lot more flexibility and functions to operate on data. However, I can see how join could be suitable for simple operations. Our last UNIX Curio for today relates to the sort utility 3 . While, as you might expect, it is well-known for its ability to sort data, it has another feature that is more obscure. When used with the -m option, instead of sorting the files given as arguments, it merges them together. All of the files are expected to already be sorted—once combined, the list that is output will also be sorted. The order in which the files are named does not matter; it is not required for the contents of the first file to start before the second, just that both are sorted. $ cat women Alice Carol $ cat men Bob Dave $ sort -m men women Alice Bob Carol Dave Imagine that you organize an annual event and have a separate pre-sorted list of attendees' e-mail addresses for each of the past three years. You are planning this year's event and want to send out an announcement to all of these people, as they will probably be interested. The command sort -m -u 2023list 2024list 2025list would spit out a combined list that you can use for your e-mail blast. Because it is likely that some people would have attended in more than one year, I included the -u option—it removes any duplicate entries. It is probably no surprise that the sort utility appeared early on—it was in 1971's First Edition UNIX, though it didn't gain the merging functionality until Fifth Edition 4 in 1973. What did come as a shock to me is that both cut and paste didn't show up until 1980 with System III 5 , and were actually preceded by join , which was in Seventh Edition UNIX 6 from 1979. I assumed that at least cut would have been around far earlier, given its usefulness and how firmly established it is, but I suppose it just seems to have been with us forever. As mentioned, I don't typically manage data as text files containing lists, and I probably won't start using the join utility or these features of paste and sort very much. But it is still useful to know that they exist and how they work. Hopefully this episode has taught you a bit about them. References: Paste specification https://pubs.opengroup.org/onlinepubs/9699919799/utilities/paste.html Join specification https://pubs.opengroup.org/onlinepubs/9699919799/utilities/join.html Sort specification https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html A Research UNIX Reader: Fifth Edition sort manual page https://archive.org/details/a_research_unix_reader/page/n19/mode/1up System III paste manual page https://www.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/man/man1/paste.1 Seventh Edition UNIX join manual page https://man.cat-v.org/unix_7th/1/join Provide feedback on this episode.

BSD Now
672: Kitchen Calculator

BSD Now

Play Episode Listen Later Jul 16, 2026 47:00


Unix Pipes under Load, Powering up a IBM Calculator from 1948, FreeBSD AI assisted Vulnerability Discovery Project, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Unix Pipes Under Load: Streaming, Barriers, Backpressure, and Bottlenecks Powering up a module from the IBM 604: an electronic calculator from 1948 News Roundup FreeBSD AI-assisted Vulnerability Discovery Project launch Sometimes it actually is the network: a war story FreeBSD Tribal Knowledge: Boot Enviroment Management Beastie Bits OpenSSH 10.4/10.4p1 released! OpenBSD/amd64 kernel virtual address space is now 512GB OpenBSD's pledge(2) and unveil(2) are developer-friendly, study finds Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Late Night Linux
Late Night Linux – Episode 394

Late Night Linux

Play Episode Listen Later Jul 14, 2026 24:02


Mozilla is paying for Firefox to be on the front of Wrexham football shirts, SCO vs IBM might not be dead after all, Red Hat will support RHEL forever if you are willing to pay, OpenMandriva discovers why distros need good governance, Félim awaits his statue, and a quick Kagi update. News Wrexham AFC and Firefox announce a multi-year, front-of-kit partnership Zombie ‘who owns Unix?' lawsuit comes alive again Red Hat Enterprise Linux Long-Life Add-On: Your path to RHEL with no pre-determined end date OpenMandriva Statement regarding attempted distribution sabotage KDE at 30 Support us on patreon and get an ad-free RSS feed with some early episodes See our contact page for ways to get in touch. RSS: Subscribe to the RSS feeds here

Late Night Linux All Episodes
Late Night Linux – Episode 394

Late Night Linux All Episodes

Play Episode Listen Later Jul 14, 2026 24:02


Mozilla is paying for Firefox to be on the front of Wrexham football shirts, SCO vs IBM might not be dead after all, Red Hat will support RHEL forever if you are willing to pay, OpenMandriva discovers why distros need good governance, Félim awaits his statue, and a quick Kagi update. News Wrexham AFC and Firefox announce a multi-year, front-of-kit partnership Zombie ‘who owns Unix?' lawsuit comes alive again Red Hat Enterprise Linux Long-Life Add-On: Your path to RHEL with no pre-determined end date OpenMandriva Statement regarding attempted distribution sabotage KDE at 30 Support us on patreon and get an ad-free RSS feed with some early episodes See our contact page for ways to get in touch. RSS: Subscribe to the RSS feeds here

This Week in Tech (Audio)
TWiT 1092: You Brought a Knife to a Wolf Fight - Apple Accuses OpenAI of Trade Secret Theft

This Week in Tech (Audio)

Play Episode Listen Later Jul 13, 2026 206:43 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

This Week in Tech (Video HI)
TWiT 1092: You Brought a Knife to a Wolf Fight - Apple Accuses OpenAI of Trade Secret Theft

This Week in Tech (Video HI)

Play Episode Listen Later Jul 13, 2026 206:42 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

All TWiT.tv Shows (MP3)
This Week in Tech 1092: You Brought a Knife to a Wolf Fight

All TWiT.tv Shows (MP3)

Play Episode Listen Later Jul 13, 2026 206:43 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

Radio Leo (Audio)
This Week in Tech 1092: You Brought a Knife to a Wolf Fight

Radio Leo (Audio)

Play Episode Listen Later Jul 13, 2026 206:43 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

All TWiT.tv Shows (Video LO)
This Week in Tech 1092: You Brought a Knife to a Wolf Fight

All TWiT.tv Shows (Video LO)

Play Episode Listen Later Jul 13, 2026 206:42 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

Radio Leo (Video HD)
This Week in Tech 1092: You Brought a Knife to a Wolf Fight

Radio Leo (Video HD)

Play Episode Listen Later Jul 13, 2026 206:42 Transcription Available


Apple is suing OpenAI for allegedly stealing trade secrets, sparking a heated debate about AI, hardware ambitions, and Silicon Valley's shifting alliances. Leo, Wesley, Lou, and Patrick tackle what Apple's legal gambit could mean for OpenAI's IPO and the future of AI development. Apple Sues OpenAI for Trade Secret Theft in Blockbuster Case Apple's OpenAI lawsuit highlights broader tensions Microsoft says the world is changing faster than it can keep up as it guts commercial, Xbox teams Claude Fable 5 promotional access Meta says four states want $1.4 trillion in penalties at August youth-safety trial Meta Removes A.I. Feature on Instagram After Days of Backlash Meta tests 'super sensing' AI glasses that can capture every moment Meta Ordered by E.U. to Alter 'Addictive Design' of Instagram and Facebook The backlash against Sony ditching PlayStation discs is not slowing down Colibrì proof-of-concept gains frontier-level 1.5-TB AI model — novel approach runs on only 25GB of RAM and shows promise for local AI setups Waymo called the cops on teen riders, raising privacy concerns Waymo says some of its robotaxis ran out of power during San Francisco's July 4 gridlock and had to be towed Zombie 'who owns Unix?' lawsuit comes alive again Copy That Floppy! - Copy That Floppy! Host: Leo Laporte Guests: Wesley Faulkner, Louis Maresca, and Patrick Beja Download or subscribe to This Week in Tech at https://twit.tv/shows/this-week-in-tech Join Club TWiT for Ad-Free Podcasts! Support what you love and get ad-free audio and video feeds, a members-only Discord, and exclusive content. Join today: https://twit.tv/clubtwit Sponsors: blackhat.com/us-26 and use code TWIT joindeleteme.com/twit-biz NetSuite.AI/TWIT zscaler.com/security bitwarden.com/twit ZipRecruiter.com/twit

BSD Now
671: Rage Against the Machine

BSD Now

Play Episode Listen Later Jul 9, 2026 53:35


The 40 Most Rage-Inducing Problems in Tech, ZFS vs Cep, Detecting and removing dangerous secrets on dev workstations before Shai-Hulud does and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines The 40 Most Rage-Inducing Problems in Tech ZFS vs Ceph: Do You Actually Need Ceph? News Roundup Detecting and removing dangerous secrets on dev workstations before Shai-Hulud does FreeBSD sh for MacOS syslogd(8) privileged and non-privileged parts now separate binaries Getting Victoria Logs running on FreeBSD Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4677: UNIX Curio #10 - Checksums and Hashes

Hacker Public Radio

Play Episode Listen Later Jul 7, 2026


This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. In UNIX Curio #8 ( HPR episode 4657 ), I talked about using standard utilities to compare files. Left unmentioned, however, was a method commonly used today—the hash function. As I've stated in previous entries, while I am an engineer, I don't have a background in computer science, so my understanding of the mathematics is limited. But I can give a practical description of what a hash function does. It takes an input, performs a set of calculations on it, and produces an output. As hash functions are practically used, the input is a set of bytes, such as a file or another piece of data like a password. The output is a numerical value in a fixed range—most often, expressed as hexadecimal characters. Because this "hash value" can always be represented in a certain number of bytes, its length as printed is usually a constant number of characters, padded with leading zeros if necessary. This episode will not cover the use of hashes in programming, focusing instead on using them to validate data. A hash function, or more specifically, a cryptographic hash function, has an additional property. It should be very difficult to predict what changes to the input would be required to produce a specific change in the output. An older, related concept is called a "checksum". While these are designed to vary when the input data is damaged or digits are transposed, they do not necessarily have that last property mentioned for cryptographic hashes. You have probably already encountered a checksum, even if you didn't recognize it. On a 16-digit number assigned to a Mastercard or Visa 1 credit or debit card, the first six digits identify the card issuer (such as a bank), the next nine digits are assigned to you by the issuer, and the last digit is a check digit. The check digit is calculated using the values of the previous 15 digits, and it is a simple way to avoid typos in entering a card number. In another example, every Ethernet frame that your devices send or receive includes a checksum 2 to help ensure that the contents weren't scrambled in transit. This is 32 bits long and is called a cyclical redundancy check, commonly referred to as a CRC. A CRC is also used in many other places—for example, the .zip file format includes one for each archive member, and this allows a program extracting files from the archive to identify if any were damaged. Our UNIX Curio for today is another example, the cksum utility 3 . It generates a 32-bit CRC based on the Ethernet algorithm. It operates on either a named file or standard input and outputs the CRC value, the length of the input, and the pathname if a file was given as an argument. Unlike most modern hashing programs, the checksum is printed as a decimal integer and is not padded, so it can be anywhere from one to ten digits long. The length value is the number of bytes in the input (actually specified as the number of octets , as systems could potentially use a byte that isn't eight bits long), also expressed as a decimal integer. There are two major ways that one could use cksum to check the validity of a file. First, if you are transferring a file from one UNIX-like system to another, you could run cksum against it on both systems and check that the CRC and length are the same. The utility can also be given multiple filenames as arguments, which would generate a list that can then be compared. The second way would be for someone publishing a file or set of files to also publish the CRC values, lengths, and names so that people downloading them could verify that they match. However, I don't think the practice of publishing lists like this really started until more recent hash functions like MD5 and SHA-1 came about so it is unlikely that anyone would publish CRC values instead. The advantage of these tools should be pretty obvious in comparison to cmp , one of the utilities discussed in UNIX Curio #8. To verify a file using cmp , you need two files to compare—if you're trying to check a large file you downloaded, you would need to spend the time and bandwidth to download a second copy. And if they didn't match, you would have no idea which of the two, if either, was correct. By contrast, cksum is quicker to run, doesn't require downloading a massive amount of excess data, and if run against the original file, makes clear what the correct value is. This utility is a follow-on from a program called sum , which operated very much the same. I had a bit of trouble tracking down the exact development history, but what seems clear is that two different variants 4 were popular: a BSD version and a System V version. Both output 16-bit checksums, but used different algorithms so they didn't give the same results. Also, the BSD version printed the length of the input data as the number of 1,024-byte blocks, while the System V version instead gave a count of 512-byte blocks. (Some sources claim that System V sum generates a 32-bit checksum 5 , which could possibly be true internal to the algorithm, but I have tested several independent implementations of the utility and all of them output a 16-bit value for both the System V and BSD algorithms.) From what I can tell, the BSD version 6,7 came first; it was in 3BSD but probably appeared even earlier. An identical copy of BSD's sum was included with UNIX/32V 8,9 , which was AT&T's 1979 port of Seventh Edition UNIX to the VAX and became one of the ancestors of System III. The divergence seems to have started with System III, released in 1980; its version of the sum utility 10,11 changed to a new default algorithm, though it could be made to use the BSD algorithm via the -r option. System V looks to have kept the same behavior as System III. It's not clear to me why this algorithm is universally called the "System V algorithm" rather than the "System III algorithm"; perhaps it is because System V saw much more widespread use. Instead of trying to reconcile these differences, the POSIX committee decided to create a new utility with a unique name, use a separate algorithm entirely, and avoid the block-length dispute by printing the length in octets instead of blocks. I should point out that POSIX states that the CRC algorithm for cksum does not strictly meet the mathematical definition of a "checksum". I don't know enough to say exactly why it doesn't qualify or to say whether either of the sum algorithms do. However, in less-formal usage the term "checksum" has gathered the meaning of any value used to represent or validate a set of data, so I am fine with using it no matter the technical details of the algorithm. When two different inputs produce the same checksum or hash value, this is called a "collision". Because the output value has a limited range, there are an infinite number of possible inputs that could produce a collision. From a practical standpoint the possibilities are more limited—the majority of these inputs are larger than the number of atoms in the universe, which can't fit on any machine. Unlike a cryptographic hash algorithm, the CRC is not specifically designed to resist an attacker crafting a malicious input that would cause a collision. However, it should be sufficient to detect accidental damage. Programs implementing more modern cryptographic hash algorithms are superior to the checksum utilities in avoiding collisions (whether malicious or accidental), but there are still three advantages that the older programs have. First, a system running a historical operating system might not have the hash programs available, but is more likely to have cksum or sum already included. Second, the checksum values are much shorter than the hashes output by the newer programs, making them easier for a user to compare by looking at them. This advantage is not as great as it might appear at first, because a common way to check a hash these days is to save a list of hashes and filenames—the hash programs can use that and do the comparison themselves, sparing the user from having to validate it character by character. The third advantage is that cksum prints the input length in bytes. This greatly limits the number of inputs that could be maliciously crafted to create a collision. I did a moderate amount of research on implementations of modern cryptographic hash algorithms and found that some, such as MD5, SHA-1, and SHA-2, do use the length of the input (often termed "message length" in the literature) as part of the material fed in to the algorithm, but none of the hashing utilities present this length to the user as part of its output. There are two possible reasons for this that seem evident to me. First, if one is hashing a password, you would certainly not want to give a clear indication of its length—that would give any attacker a massive head start on guessing the password. However, that doesn't explain why one would avoid printing the input length for a file that is made publicly available. Second, it is convenient in many contexts, such as database entries or in software (such as git ), for the hash to be a fixed length. Including an extra value that can be of variable length would complicate those use cases. However, the length value could simply be dropped and they would be no worse off than they are currently. Historically on UNIX, password hashing was treated differently from checksumming files— the crypt() function 12 was used for passwords while sum and later cksum were used to confirm a file's integrity. So even rather early on, these two use cases employed algorithms with different properties, but I haven't dived into the history deeply enough to know how intentional this was. My discussion in this episode focuses on the file use case, so understand that I'm largely avoiding the topic of password hashing. Digital signatures are yet another use case, one that I'm ignoring entirely. Every few years, some security researcher declares a particular hash algorithm to be "broken" and that everyone should move over to a new one, which generally has a longer hash. While the larger hash space certainly reduces the opportunity for collisions, this disrupts workflows, such as publishing information about software releases by e-mail, which still tends to observe a 78-character limit on each line 13 , making it harder to include a list of hashes with filenames next to them. This is in addition to the work of modifying software and scripts to use the new algorithm and managing how to treat past data. It seems to me that publishing the input length along with the hash would make it far more difficult to craft a malicious input that matches both, but I haven't found discussion of that during my investigation. (See the Appendix for a possible implementation.) Perhaps someone listening can record a response episode for HPR explaining that. References: Payment card number https://en.wikipedia.org/wiki/Payment_card_number Ethernet frame: Frame check sequence https://en.wikipedia.org/wiki/Ethernet_frame#Frame_check_sequence Cksum specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/cksum.html GNU coreutils manual: sum https://www.gnu.org/software/coreutils/manual/html_node/sum-invocation.html FreeBSD 15.0 sum manual page https://man.freebsd.org/cgi/man.cgi?query=sum&sektion=1&manpath=FreeBSD+15.0-RELEASE+and+Ports 3BSD sum manual page https://www.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/man/man1/sum.1 3BSD sum source https://www.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/sum.c UNIX/32V sum manual page https://www.tuhs.org/cgi-bin/utree.pl?file=32V/usr/man/man1/sum.1 UNIX/32V sum source https://www.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/cmd/sum.c System III sum manual page https://www.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/man/man1/sum.1 System III sum source https://www.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd/sum.c Crypt specification https://pubs.opengroup.org/onlinepubs/009695399/functions/crypt.html RFC 2822: Internet Message Format: Line Length Limits https://datatracker.ietf.org/doc/html/rfc2822#section-2.1.1 OpenSSH 10.1 released https://lwn.net/ml/all/dd12623ae86aa5eb@cvs.openbsd.org/ Appendix The MD5 hash algorithm was (and still is) widely used, but many people characterize it as being "broken" and discourage its use. Let us imagine a variant of this, called MD5.L, where the normal MD5 hash is followed by a "." character and the input length expressed as a hexadecimal number. Take, for example, the e-mail message announcing the release of OpenSSH 10.1 14 . At the bottom, it includes an SHA-1 hash and an SHA-2 256-bit hash for the available gzipped tar files. That longer hash is encoded with Base64 because if it were given as a hexadecimal number, it would make the line longer than 78 bytes. The MD5.L hash of the file would be one character shorter than the SHA-1 hash, as shown below. (The extra length of the name makes them both consume the same number of characters. The hashes shown are for the "portable" version of OpenSSH.) Some people claim SHA-1 is also broken, seeking to have people use newer and longer hash functions. For an attacker to compromise MD5.L in this example, they would not only have to create a valid tar file compressed with gzip containing a malicious payload having the right MD5 hash, that file would have to be exactly 1,972,831 bytes long (the decimal equivalent of 1e1a5f). While there are still many possible inputs that could be tried (256 1972831 , to be exact*), this is far fewer than the infinite possibilities for plain MD5, SHA-1, or SHA-2. If for some reason it is super important to have a fixed hash length, let's imagine another variation called MD5+L. In this one, instead of L being the input length, it is the input length modulo one terabyte (2 40 bytes), which can be represented by 10 hexadecimal characters, left-padded with zeros. While this approach substantially increases the number of possible inputs an attacker could try, it is likely that an intended victim would notice that the file they downloaded is larger (or smaller) than expected by that much. The MD5+L hash is longer than a SHA-1 hash, but still shorter than a 256-bit SHA-2 hash. SHA1 (openssh-10.1p1.tar.gz) = 7fd17b99d1beffb47cd380d64079e920bb0bd91f SHA256 (openssh-10.1p1.tar.gz) = ufx6K4JXlGem8vQ+SoHI4d/aYU3bT5slWq/XAgu/B1g= MD5.L (openssh-10.1p1.tar.gz) = 80dd9bb00a86519934710d05903fdf07.1e1a5f MD5+L (openssh-10.1p1.tar.gz) = 80dd9bb00a86519934710d05903fdf07+00001e1a5f Of course, if MD5 is considered to be too weak even with the inclusion of the length, one could produce a ".L" or "+L" version of any hash function. However, longer hashes will end up running into the 78-character limit. *This is a number with 4.75 million digits that the bc utility on my laptop took almost 5 minutes to calculate. Provide feedback on this episode.

The Buzz with ACT-IAC
Justin Wade on Leading Through Change

The Buzz with ACT-IAC

Play Episode Listen Later Jul 1, 2026 37:11 Transcription Available


Justin Wade is the new chair of ACT-IAC Voyagers' 2027 Professional Development Program and CTO of the Interior Business Center at the U.S. Department of the Interior. We talk about why this is a critical moment to develop agile leaders amid rapid technology shifts and increased pressure for efficiency. Wade shares his lifelong path in IT, from learning programming in first grade, studying computer science at CU Denver, early leadership as a Unix system administrator, entrepreneurial work with venture capital-backed startups, and then federal roles including Associate CIO for the Office of the Secretary, highlighting lessons in resilience, balancing technical depth with business strategy, and leading through uncertainty.Agile Product Discovery Course | ACT-IAC Summary - A Hole in One with ACT-IACSubscribe on your favorite podcast platform to never miss an episode! For more from ACT-IAC, follow us on LinkedIn or visit http://www.actiac.org.Learn more about membership at https://www.actiac.org/join.Donate to ACT-IAC at https://actiac.org/donate. Intro/Outro Music: See a Brighter Day/Gloria TellsCourtesy of Epidemic Sound(Episodes 1-159: Intro/Outro Music: Focal Point/Young CommunityCourtesy of Epidemic Sound)

BSD Now
669: Poudriere Speed Run

BSD Now

Play Episode Listen Later Jun 25, 2026 37:09


inotify in FreeBSD, how changes to poudriere.conf affect the build time, Migrating mail servers from exim to OpenSMTPD, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Native inotify in FreeBSD News Roundup How changes to poudriere.conf affect the build time Follow on Giving poudriere a jump start Migrating mail servers from exim to OpenSMTPD (smtpd) is fun and useful Orion PDA Recap of the April 2026 Frankfurt Area FreeBSD Hackathon – Sven Ruediger Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Atareao con Linux
ATA 808 Por qué deberías dejar de usar Cron hoy mismo (y qué uso yo)

Atareao con Linux

Play Episode Listen Later Jun 25, 2026 27:27


En este episodio vamos a hablar de una de esas herramientas míticas del ecosistema Linux y Unix que prácticamente todos hemos configurado alguna vez: Cron. Ese servicio fiel, un clásico entre los clásicos, que lleva décadas ejecutando nuestras copias de seguridad de madrugada o eliminando ficheros temporales. Sin embargo, las cosas cambian, la tecnología avanza y yo creo que ha llegado el momento de que todos jubilemos a Cron. Sí, como lo oyes. Ha llegado la hora de darle una merecida jubilación dorada y abrir los brazos a una alternativa mucho más moderna, integrada y potente: los Systemd Timers.¿Por qué deberías jubilar a tu viejo Cron?Sé que puedes estar pensando: "Lorenzo, pero si a mí Cron me funciona de maravilla". Y es verdad, para un comando sencillo que se ejecute cada hora, Cron cumple. Pero a poco que intentes complicar la tarea, empiezan los problemas. El gran drama de Cron es que trabaja a ciegas y en absoluto silencio. Si tu script falla por falta de internet, por un error de permisos o porque un recurso no está disponible, no te vas a enterar a menos que te hayas tomado el trabajo de programar tus propios registros de log, gestionar lógicas de reintentos o configurar desvíos de errores dentro de tu script.El poder de los Systemd TimersCon los Systemd Timers todo esto se soluciona de forma completamente automática y sin añadir complejidad a tus scripts. Systemd se encarga de gestionar de manera integrada el estado de tu sistema y te ofrece superpoderes como:Logs centralizados automáticosGestión inteligente de la persistenciaControl de dependenciasAleatorización horariaLa anatomía de una tarea en SystemdPara conseguir toda esta potencia, Systemd utiliza un enfoque muy limpio en el que dividimos la tarea en dos archivos de texto sencillos que se complementan a la perfección:El Servicio (.service)El Timer (.timer)Automatización sin root: Los timers de usuarioPero mi funcionalidad favorita, y la que utilizo en mi día a día para casi todo, es la posibilidad de ejecutar estos temporizadores en el espacio del usuario corriente, sin necesidad de tener privilegios de administrador ni usar el comando sudo. Estos temporizadores se guardan en tu propia carpeta de configuración personal de forma limpísima y se ejecutan dentro del contexto de tu sesión activa.Capítulos del audio00:00:00 Introducción y el adiós definitivo a Cron00:01:43 Los fallos silenciosos de Cron: Logs, reintentos y dependencias00:03:06 Las grandes ventajas de usar Systemd Timers00:05:21 La anatomía de la automatización: Timer y Servicio00:06:48 Configuración de la sección [Timer], OnCalendar y persistencia00:07:55 Tareas relativas: OnBootSec y aleatorización de tiempos00:10:00 Comandos de systemctl para gestionar tus tareas programadas00:10:33 Ejemplos prácticos en el sistema: Backups y limpiezas00:12:13 Notificaciones de escritorio e integración con el entorno gráfico00:14:11 Timers de usuario: Automatización segura sin usar root o sudo00:15:25 El truco de Linger para mantener tareas activas en VPS00:16:53 Sincronización continua de notas y cambio automático de fondo00:20:07 Cómo ver los logs y depurar fallos de forma sencilla con journalctl00:21:25 Evita estos errores típicos y valida con systemd-analyze00:24:51 El futuro de la automatización, modelos de lenguaje y despedidaMás información y enlaces en las notas del episodio

AwesomeCast: Tech and Gadget Talk
SteamOS, Shokz Headphones, Retro Phones, Sports Tech & a T-Pain Social Media Fail | AwesomeCast 784

AwesomeCast: Tech and Gadget Talk

Play Episode Listen Later Jun 24, 2026 59:35


This week on AwesomeCast, Sorg is joined by Dave Podnar while Katie is on assignment. The crew digs into practical tech, gaming platforms, open-source operating systems, sports broadcast innovation, retro-inspired phones, and one very funny automated social media mistake involving DoorDash, soccer, and T-Pain. Stories and gadgets discussed: Dave's Awesome Thing of the Week: Shokz OpenRun Pro 2 headphones Dave finally upgrades from cheap running headphones to the Shokz OpenRun Pro 2, praising the open-ear / bone-conduction-style design for running safety, comfort, sweat management, USB-C charging, and situational awareness. Link: https://www.amazon.com/dp/B0D2HKCMBP?maas=maas_adg_api_582366218564361552_static_9_129&ref_=aa_maas&tag=maas&aa_campaignid=lv_IGvrl5TTBxiweexlXK&aa_adgroupid=lv_fdLHIcjvJhpJZvQxFb&aa_creativeid=lv_MMLFRb8MTdZvGlnqFv&gad_campaignid=23921418215&gbraid=0AAAABDw_RJg26Vr6MY-sVAPsmwCxwK4mX&gclid=CjwKCAjw3ejRBhAdEiwADkqPn36qoEfzRElmQ3e9OXSxZdGKjw0DyckEdeqo82D8qqlMdTFDyLXuXhoCVn8QAvD_BwE&th=1 Valve opens the door to SteamOS installs on AMD PCs Sorg talks about Valve allowing SteamOS installs on normal PCs with AMD GPUs, giving PC gamers a way to build their own living-room Steam Machine instead of buying Valve's new box. The conversation also touches on Steam Deck, Linux gaming, Proton, GPU costs, tariffs, and the economics of gaming hardware. Link: https://www.pcgamer.com/hardware/steam-machines/valve-greenlights-steamos-installs-on-normal-pcs-with-amd-gpus-so-you-can-go-make-your-own-steam-machine-if-you-dont-wanna-fork-over-usd1-049/?brid=YWdncwFV2uAIYy2jMECl21FxWfGS Bazzite as an open-source SteamOS-style alternative Sorg brings up Brother Sorg's recommendation of Bazzite, a Linux-based gaming OS with Steam gaming mode and support for launchers like Xbox Game Pass, Battle.net, EA, Epic Games Store, GOG, Rockstar, and Ubisoft Connect. Link: https://bazzite.gg/ Pride Month tech history: Jon “maddog” Hall Dave spotlights Jon “maddog” Hall, a major Linux and Unix figure, sharing stories about Hall's long programming history, his connection to Linus Torvalds, and the importance of recognizing LGBTQ contributors in technology history. Article: https://www.lpi.org/blog/2025/09/10/a-lifetime-in-code-jon-maddog-hall-reflects-at-linuxfest-northwest/ Talk: https://www.youtube.com/watch?v=758QuvXrttM Chachi Says Video Game Minute: GTA 6, Nex Playground, and Ubisoft news Chachi covers three gaming stories: GTA 6 cover art and pre-orders, the Nex Playground motion-based console for kids, and the death of Claude Guillemot, co-founder of Ubisoft. GTA 6: https://www.ign.com/articles/gta-6-cover-artwork-revealed-pre-orders-begin-june-25 Nex Playground: https://www.bbc.com/news/articles/czx50rrz7zro Claude Guillemot: https://apnews.com/article/france-assassins-creed-ubisoft-plane-crash-2df2ea469c3fca0a45c38ae8805a6033 Baja SAE filmed on a “gas station camera” Sorg highlights a low-fi, retro-looking Baja SAE reel from Fairfield University, celebrating the charm of VHS-style and “bad camera” aesthetics in modern social media content. Link: https://www.instagram.com/reels/DZ6BjfCtzo-/ World Cup referee technology, digital twins, sensors, and 3D body scans Sorg discusses advanced soccer officiating tech, including camera sensors, player tracking, digital twins, and automated offside detection that can help reduce blown calls and give officials faster alerts. Link: https://apple.news/ABeSFqwyjRpehEy0x8Nc9nQ Ribbie turns MLB games into pixel-art broadcasts Dave shares Ribbie, a fan-built project that uses real-time Major League Baseball data to recreate live games as a retro 16-bit-style baseball broadcast. The conversation connects it to vibe coding, AI-assisted development, and new ways fans can build creative sports experiences. Link: https://techcrunch.com/2026/06/23/ribbie-turns-real-time-baseball-stats-into-arcade-like-pixel-art-broadcasts/ Commodore phone brings retro branding to a distraction-light flip phone Dave and Sorg look at the Commodore phone, a Sailfish OS-based flip phone designed as a step above a dumbphone, with calls, texting, maps, music apps, Uber/Lyft, classic Commodore games, and limited/no social media access. Link: https://order.commodore.net/callback-audio/?brid=YWdncwHwIXnsUg8Nsyh9q_45Lj2C DoorDash accidentally tags T-Pain in soccer posts The episode wraps with a funny social media fail where DoorDash appears to tag T-Pain instead of soccer player Tim Payne during World Cup-related posts. Sorg and Dave discuss automation, agency workflows, social scheduling, and why T-Pain's response made the whole situation better. Link: https://www.instagram.com/p/DZ56tKCnedX/?brid=YWdncwG5YHkt5InxWn1IZ1Apa3Gc&img_index=2

Sorgatron Media Master Feed
AwesomeCast 784: SteamOS, Shokz Headphones, Retro Phones, Sports Tech & a T-Pain Social Media Fail

Sorgatron Media Master Feed

Play Episode Listen Later Jun 24, 2026 59:35


This week on AwesomeCast, Sorg is joined by Dave Podnar while Katie is on assignment. The crew digs into practical tech, gaming platforms, open-source operating systems, sports broadcast innovation, retro-inspired phones, and one very funny automated social media mistake involving DoorDash, soccer, and T-Pain. Stories and gadgets discussed: Dave's Awesome Thing of the Week: Shokz OpenRun Pro 2 headphones Dave finally upgrades from cheap running headphones to the Shokz OpenRun Pro 2, praising the open-ear / bone-conduction-style design for running safety, comfort, sweat management, USB-C charging, and situational awareness. Link: https://www.amazon.com/dp/B0D2HKCMBP?maas=maas_adg_api_582366218564361552_static_9_129&ref_=aa_maas&tag=maas&aa_campaignid=lv_IGvrl5TTBxiweexlXK&aa_adgroupid=lv_fdLHIcjvJhpJZvQxFb&aa_creativeid=lv_MMLFRb8MTdZvGlnqFv&gad_campaignid=23921418215&gbraid=0AAAABDw_RJg26Vr6MY-sVAPsmwCxwK4mX&gclid=CjwKCAjw3ejRBhAdEiwADkqPn36qoEfzRElmQ3e9OXSxZdGKjw0DyckEdeqo82D8qqlMdTFDyLXuXhoCVn8QAvD_BwE&th=1 Valve opens the door to SteamOS installs on AMD PCs Sorg talks about Valve allowing SteamOS installs on normal PCs with AMD GPUs, giving PC gamers a way to build their own living-room Steam Machine instead of buying Valve's new box. The conversation also touches on Steam Deck, Linux gaming, Proton, GPU costs, tariffs, and the economics of gaming hardware. Link: https://www.pcgamer.com/hardware/steam-machines/valve-greenlights-steamos-installs-on-normal-pcs-with-amd-gpus-so-you-can-go-make-your-own-steam-machine-if-you-dont-wanna-fork-over-usd1-049/?brid=YWdncwFV2uAIYy2jMECl21FxWfGS Bazzite as an open-source SteamOS-style alternative Sorg brings up Brother Sorg's recommendation of Bazzite, a Linux-based gaming OS with Steam gaming mode and support for launchers like Xbox Game Pass, Battle.net, EA, Epic Games Store, GOG, Rockstar, and Ubisoft Connect. Link: https://bazzite.gg/ Pride Month tech history: Jon “maddog” Hall Dave spotlights Jon “maddog” Hall, a major Linux and Unix figure, sharing stories about Hall's long programming history, his connection to Linus Torvalds, and the importance of recognizing LGBTQ contributors in technology history. Article: https://www.lpi.org/blog/2025/09/10/a-lifetime-in-code-jon-maddog-hall-reflects-at-linuxfest-northwest/ Talk: https://www.youtube.com/watch?v=758QuvXrttM Chachi Says Video Game Minute: GTA 6, Nex Playground, and Ubisoft news Chachi covers three gaming stories: GTA 6 cover art and pre-orders, the Nex Playground motion-based console for kids, and the death of Claude Guillemot, co-founder of Ubisoft. GTA 6: https://www.ign.com/articles/gta-6-cover-artwork-revealed-pre-orders-begin-june-25 Nex Playground: https://www.bbc.com/news/articles/czx50rrz7zro Claude Guillemot: https://apnews.com/article/france-assassins-creed-ubisoft-plane-crash-2df2ea469c3fca0a45c38ae8805a6033 Baja SAE filmed on a “gas station camera” Sorg highlights a low-fi, retro-looking Baja SAE reel from Fairfield University, celebrating the charm of VHS-style and “bad camera” aesthetics in modern social media content. Link: https://www.instagram.com/reels/DZ6BjfCtzo-/ World Cup referee technology, digital twins, sensors, and 3D body scans Sorg discusses advanced soccer officiating tech, including camera sensors, player tracking, digital twins, and automated offside detection that can help reduce blown calls and give officials faster alerts. Link: https://apple.news/ABeSFqwyjRpehEy0x8Nc9nQ Ribbie turns MLB games into pixel-art broadcasts Dave shares Ribbie, a fan-built project that uses real-time Major League Baseball data to recreate live games as a retro 16-bit-style baseball broadcast. The conversation connects it to vibe coding, AI-assisted development, and new ways fans can build creative sports experiences. Link: https://techcrunch.com/2026/06/23/ribbie-turns-real-time-baseball-stats-into-arcade-like-pixel-art-broadcasts/ Commodore phone brings retro branding to a distraction-light flip phone Dave and Sorg look at the Commodore phone, a Sailfish OS-based flip phone designed as a step above a dumbphone, with calls, texting, maps, music apps, Uber/Lyft, classic Commodore games, and limited/no social media access. Link: https://order.commodore.net/callback-audio/?brid=YWdncwHwIXnsUg8Nsyh9q_45Lj2C DoorDash accidentally tags T-Pain in soccer posts The episode wraps with a funny social media fail where DoorDash appears to tag T-Pain instead of soccer player Tim Payne during World Cup-related posts. Sorg and Dave discuss automation, agency workflows, social scheduling, and why T-Pain's response made the whole situation better. Link: https://www.instagram.com/p/DZ56tKCnedX/?brid=YWdncwG5YHkt5InxWn1IZ1Apa3Gc&img_index=2

Hacker Public Radio
HPR4667: UNIX Curio #9 - printf

Hacker Public Radio

Play Episode Listen Later Jun 23, 2026


This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. The echo command is very useful—it prints the arguments given to it, followed by a newline character. (The newline is sometimes also called a linefeed character depending on who is writing or speaking, and has the ASCII decimal value 10.) It has many uses, either in a script or interactively on the command line. The echo utility is used to display text, the value of a variable, or the result of a pathname expansion. It can also feed text to another command in a pipeline. As useful as echo is, it should come as no surprise that it first appeared early on in Bell Laboratories' Second Edition UNIX 1 in 1972. This initial version accepted no options 2 —although the manual page doesn't explicitly say output is followed by a newline character, the description of writing "as a line" seems to imply it. In Seventh Edition UNIX, the manual page 3 makes that clear, and also features the addition of the -n option, which causes echo to print the arguments without a trailing newline character. Eighth Edition UNIX's echo 4 gained the -e option, which allows certain escape codes from the C programming language to be used. These variations caused differences in behavior between different versions of echo . Will running echo -n something on your system output the text "something" without a newline, or "-n something" followed by a newline? Things get even trickier when the command arguments include parameter or pathname expansions. If there are files named "-n" and "something" in the current directory, what does echo * output? Like the previous question, that depends on whether or not your version of echo treats -n as an option. You can't get around this ambiguity by quoting or escaping the "*", because that just causes echo to print a literal asterisk. Example using GNU utilities on Debian 12; both the "echo" utility and the "echo" builtin of bash recognize "-n" as an option. $ ls -1 -n something $ echo * something$ #Shell prompt is on the same line because "-n" was treated as an option to echo $ echo "*" * The solution was to create a new utility, which is the first UNIX Curio for today: printf . This command allows a user to print text similar to the way the identically-named function works in the C programming language. You run printf 5 followed by a format string, followed by zero or more arguments. No newline characters are printed unless specifically indicated by the format string or the arguments. To use printf to print "something" without a newline, that would just be printf something . This demonstrates that you don't need any arguments—in this example, the format string is just a set of regular characters to be displayed. If you wanted a newline character at the end, printf "somethingn" would give you that. (In this case, the format string needs to be quoted so the "n" isn't interpreted by the shell.) In addition to "n" for a newline, you can also use "a" for an alert (rings the terminal bell), "b" for a backspace, "f" for a formfeed, "r" for a carriage return, "t" for a horizontal tab, "v" for a vertical tab, and "" to get a literal backslash. In addition to these special characters, any arbitrary byte can be included using a backslash followed by one to three octal digits; however, it might be difficult to predict what will be output because it can differ based on the character set the terminal is using. It is safer and more portable to stick to the pre-defined characters if possible. The real magic of the printf utility comes from using "conversion specifications" in the format string. Probably the simplest of these to explain is the "%s" conversion specification—it represents a string of any length. The command printf "Hi, %s, how are you?n" followed by a list of names would print the greeting for each name, putting it in the place occupied by the "%s". $ printf "Hi, %s, how are you?n" Alice Bob Carol Hi, Alice, how are you? Hi, Bob, how are you? Hi, Carol, how are you? The format string is reused as many times as needed to consume all of the arguments. Take, for example, the command printf "Hi, %s, have you met %s?n" . If this is run with two name arguments, it would print the sentence on one line, using both names. If run with four name arguments, it would print the sentence twice, once with the first two names and again with the second two names. If you only gave it three names, the last "%s" conversion specification would be replaced with a null string. $ printf "Hi, %s, have you met %s?n" Alice Bob Hi, Alice, have you met Bob? $ printf "Hi, %s, have you met %s?n" Alice Bob Carol David Hi, Alice, have you met Bob? Hi, Carol, have you met David? $ printf "Hi, %s, have you met %s?n" Alice Bob Carol Hi, Alice, have you met Bob? Hi, Carol, have you met ? Three other items can also be given in each conversion specification: flags, the field width, and the precision. The exact meanings of these depend on which type of conversion specifier character you are using. For "%s", using a "-" as the flag causes the text to be left-justified instead of the default right-justified, a field width causes the printed field to be at least as long as the number given, and a precision limits the number of bytes written from the string to the number given. $ #Example of %s with a precision value $ printf "Hi, %.3s, how are you?n" Alice Bob Carol Hi, Ali, how are you? Hi, Bob, how are you? Hi, Car, how are you? $ #Example of %s with a field width $ printf "Hi, %8s, how are you?n" Alice Bob Carol Hi, Alice, how are you? Hi, Bob, how are you? Hi, Carol, how are you? $ #Example of %s with a left-justify flag and a field width $ printf "Hi, %-8s, how are you?n" Alice Bob Carol Hi, Alice , how are you? Hi, Bob , how are you? Hi, Carol , how are you? $ #Example of %s with a left-justify flag, a field width, and a precision $ printf "Hi, %-8.3s, how are you?n" Alice Bob Carol Hi, Ali , how are you? Hi, Bob , how are you? Hi, Car , how are you? While "%s" is probably the most commonly-used conversion specification, others are available. A whole set of them are dedicated to printing integer values as a signed decimal, an unsigned decimal, an unsigned octal, or an unsigned hexadecimal number. These also can take flags, a field width, and a precision. I think the details and nuances of all this are too complex to clearly explain here, so I will just refer you to the POSIX "file format notation" specification 6 . Be aware that unlike the printf function in the C programming language, the printf utility is not obligated to accept conversion specifications for floating-point numbers. While some implementations might support this, scripts intended to be portable should limit themselves to the restricted set required by the POSIX standard (%d, %i, %o, %u, %x, %X, %c, and %s, plus %b and %% described below). Two more conversion specifications are worth mentioning. The first is only required by the standard for the printf utility, not the C function, and is "%b". This is the same as "%s", except that certain backslash escape sequences in the argument will be treated specially. This includes all the ones described above except for the one using octal digits to represent a byte. In an argument, this is instead represented by "" followed by one to three octal digits. An additional backslash escape sequence accepted is "c"—this does not print anything itself, but causes printf to immediately halt output. The final conversion specification is "%%", which just outputs a literal "%". You can't use a bare "%" in the format string, because printf expects that to introduce a conversion specification. Be careful not to be tripped up by this when trying to print some value as a percentage. Example assuming that the hypothetical "/dev/batterycharge" file on your laptop outputs the battery charge level (42% in this case). As you can see, in some cases an error message might be displayed, but in others it might just behave in a way you didn't intend without complaining. GNU's "printf" utility and the "printf" builtin of bash both support "%e" as a conversion specification as an extension to POSIX. $ cat /dev/batterycharge 42 $ #Wrong $ printf "Your laptop's charge level is $(cat /dev/batterycharge)%.n" bash: printf: `': invalid format character Your laptop's charge level is 42$ #Shell prompt appears here from the error $ #Right $ printf "Your laptop's charge level is $(cat /dev/batterycharge)%%.n" Your laptop's charge level is 42%. $ #Next one treats %e as the specifier, with the space and "l" as flags $ printf "Your laptop has $(cat /dev/batterycharge)% level of charge.n" Your laptop has 42 0.000000e+00vel of charge. $ #Because no arguments were given, "0" was used for the value to convert Let's go back to the situation I was describing with echo —we have files named "-n" and "something" in the current directory and want to print all their names, separated by spaces. We could do that with printf "%s " * , which would not treat the "-n" as an option. However, the output might look a little weird because there wouldn't be a newline character at the end. We could insert a newline by using "%b" instead of "%s" and following the asterisk with a "nc" as the second argument. The "c" is there to prevent the final space in the format string from being printed after the newline. $ ls -1 -n something $ printf "%s " * -n something $ #No newline was printed here $ printf "%b " * "n" -n something $ #There's a newline, but also a spurious space before the shell prompt $ printf "%b " * "nc" -n something $ #No space before the shell prompt this time Using the "%b" conversion specification can therefore solve one problem, but it also introduces another. Arguments which include a backslash can be interpreted as escape sequences, and many systems are fine with allowing backslashes in filenames. In cases where you're just using the printf utility to display text, it's usually not a big deal if the output looks a little wonky. Where you really need to be careful is when the text is being piped to another program, as control characters and other oddities might cause unexpected results, and can potentially create security problems if processed by a script or utility running as a privileged user. $ #GNU "ls" displays filenames containing a backslash in single quotes $ ls -1 apple banana 'cherry' durian $ printf "%b " * "nc" apple banana $ #"c" in "cherry" stops output immediately The printf utility looks to have shown up first in 1986's Ninth Edition UNIX 7 , though the earliest manual page I could find 8 is from the Tenth Edition. Its first appearance in BSD seems to be from 1990 in the 4.3 Reno release 9 . Two years later, it was added to Issue 4 of The Open Group's CAE Specification. From what I can tell, it did not seem to be in AT&T's System III—presumably the printf utility did make it into System V at some point but I found it difficult to track this down. While echo is still suitable for use where you know for certain that you want a newline character printed at the end and none of the arguments will start with a hyphen, consider using the printf utility instead for displaying text. It offers more flexibility and features than you are guaranteed to get with echo , although it does require a bit of forethought in constructing a proper format string and arguments. That is not necessarily a bad thing, because a script's author should be thinking about what might happen if it is called with "strange" text or filenames. This episode also provides a good case for being careful when naming files—many filesystems will allow you to use hyphens, control characters, quotation marks, and potentially any character other than a slash or a null byte in a filename. As we've seen, some of these characters can create problems for standard utilities. While it can feel limiting, especially for people not using English, the safest filenames to use on a UNIX-like system consist only of characters in the "portable filename character set" as defined by POSIX 10 and where the first character is not a hyphen. This set includes the lowercase and uppercase letters "a" through "z", the numerals "0" through "9", and the period, underscore, and hyphen. Notably, it does not include the space character. That leads me to another UNIX Curio that I only just now discovered while researching this episode. This is the pathchk utility 11 . It can be run with one or more strings as arguments, checks each one against a set of rules for pathnames, and outputs an error message for each problem found. By default, it checks against the following limits on the system where it's being run: maximum number of bytes in the full path, maximum number of bytes in any component of the path, all byte sequences must be valid in the given directory, and the user running the program must have access to all directories referenced. If run with the -p option, instead of those limits, it checks against POSIX limits: a maximum of 256 bytes in the full path, a maximum of 14 bytes in each component of the path, and each component must only include characters from the portable set. The -P option adds warnings if any component starts with a "-" or if the pathname is completely empty. While the exit status will tell you if the checks succeeded or not, I don't feel like the pathchk utility is well suited to be used in an automated fashion, as the exact wording of its output is not specified and checks cannot be selected individually. However, it can be used interactively to validate pathnames you aren't sure about. See the linked specification for full details. References: A Research UNIX Reader: Combined Tables of Contents https://archive.org/details/a_research_unix_reader/page/n99/mode/1up A Research UNIX Reader: Second Edition UNIX echo manual page (although this page has "v1" typed at the top, the date and the tables of contents indicate it first appeared in v2, a.k.a. Second Edition) https://archive.org/details/a_research_unix_reader/page/n22/mode/1up Seventh Edition UNIX echo manual page https://man.cat-v.org/unix_7th/1/echo Eighth Edition UNIX echo manual page https://man.cat-v.org/unix_8th/1/echo Printf specification https://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html File Format Notation specification https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap05.html A Research UNIX Reader: Ninth Edition Table of Contents https://archive.org/details/a_research_unix_reader/page/n95/mode/1up Tenth Edition UNIX echo/printf manual page https://man.cat-v.org/unix_10th/1/echo 4.3BSD Reno printf manual page https://man.freebsd.org/cgi/man.cgi?query=printf&sektion=1&manpath=4.3BSD+Reno Definitions: Portable Filename Character Set https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_282 Pathchk specification https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pathchk.html Provide feedback on this episode.

BSD Now
668: Wiring up the BSDs

BSD Now

Play Episode Listen Later Jun 18, 2026 60:43


FreeBSD to OpenBSD Wireguard, Object storage with OpenZFS and SeaweedFS, a zfs script for labeling drives, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines FreeBSD to OpenBSD Wireguard Using Object Storage with OpenZFS and SeaweedFS News Roundup zfs – a helper script for labelling all those drives AI errno(2) values The vi Family Creating a Samba Active Directory Domain Controller on FreeBSD Beastie Bits Let's find out how to get predictable IPv6 addresses assigned to OpenBSD VMs Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Davi - BSDCan 2026 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Shadow Warrior by Rajeev Srinivasan
India will collapse without digital sovereignty and Pax Indica: lessons from Hormuz

Shadow Warrior by Rajeev Srinivasan

Play Episode Listen Later Jun 18, 2026 23:07


A version of this essay has been published by Open Magazine at https://openthemagazine.com/world/india-will-collapse-without-digital-sovereignty-and-pax-indica-lessons-from-hormuzBy now it is clear that the Iran War (or West Asia War) has been a disaster to all concerned, including the principals as well as assorted passersby. The massive amounts spent by the US (at last count $25 billion) are at least articulated; the bill for the enormous infrastructural and human suffering inflicted on Gulf states, in the theater of war, must be greater, by definition.The collateral damages suffered by the rest of the world from the cessation of trade through the Straits of Hormuz will presumably run into the trillions of dollars. As one of the worst affected, India, which imports 90% of its hydrocarbons from the Gulf, not to mention other essential items such as urea (for fertilizer), sulfuric acid, helium, etc., is on track to take a massive hit. As an article in The Economic Times said, “India must brace for broad-based economic shock”.Indian exports of up to $50 billion are also affected, especially agricultural products including perishable foodstuffs, but also gems and jewellery, electronics, textiles and garments. Some of this can be diverted via Oman and the UAE's Fujairah port, but much of it passes through the Straits of Hormuz and is potentially blocked and/or stranded at sea.The Hormuz closure is a body blow to India's economy. What can and will India do about it? The Indian State has a habit of rising to the challenge only when there is a crisis, while vegetating otherwise. The 1991 economic crisis is a case in point; the sanctions following “The Buddha is smiling”, and the denial of cryogenic rocket engines and supercomputers are other examples where the nation rallied. So were covid vaccines. Necessity, they say, is the mother of invention.Turning a threat into an opportunityIf I were to be an optimist, I could say that the current crisis is actually an opportunity. In fact, a major opportunity. My reading of the Iran War is that it is President Trump's strategic tit-for-tat against China for denying him rare earths and cutting off soybean purchases. In return Trump decided to deny China access to oil by closing access to Venezuela and Iran. Whether this will work, or whether the G2 condominium (read ‘surrender') will prevail, is unclear.But that is, in a sense, background noise that needs to be managed. India needs to focus on its own issues, of which I see several as critical, and the solution in general is to become Atmanirbhar, self-reliant, and from that, to create an Anti-Fragile nation:* National security/defense* Food security* Energy security* Digital security/narrative control* Trade securityThe first three do not need an explanation: they are obvious. Internal and external security are pre-requisites for any successful society. If India's hard-won food security can be threatened by external threats, then there needs to be some deep introspection. Energy security means diversification, both of hydrocarbon sources, and of types of energy, including renewables, nuclear, biomass, coal-based, and so on.Malign narratives and digital sovereigntyNarrative control is something that the Indian State has failed at so far; it is laughably easy to create hate speech against Indians and India (as has been demonstrated freely by any number of players, starting from the MAGA crowd, to Audrey Truschke to a”Cockroach Janata Party” and some nitwit Norwegian journalist in just the last fortnight) and there are no consequences to the culprits. It's enough to make me pine for Lee Kuan Yew's aggressive legal battles against the media.It's one thing if it were only a problem with foreigners, but with the massive spread of social media, and in particular generativeAI, it is becoming a serious domestic issue. Since India is an avid consumer of social media, and because generativeAI is trained on things like Wikipedia, X, Whatsapp and Google content, biased and motivated material becomes ensconced as The Truth. I have written about narrative warfare and manufacturing consent.This used to be a one-way tsunami of (mis)-information by legacy media, but now there is also the opposite: the wholesale and free vacuuming-up of Indian data (whatever happened to “data is the new oil”?). The “Great Firewall of China” both kept out foreign BIg Tech applications and prevented their plundering Chinese data: is that the way to go?Manufactured narratives are intended for regime change: all the color revolutions today are hatched with massive bot-farms funded by some combination of Deep State, CCP, ISI, Qatar etc. (for example the alleged Gen-Z uprisings that rocked Nepal, drove Sheikh Hasina out of Bangladesh). Thus muzzling malign narratives, and ensuring data security, are imperative.Even Singapore is not immune: it had to block anti-India narratives that likely originated from Chinese sources.A particularly striking example of narrative warfare is the virtual hate speech inducted into Wikipedia by deeply prejudiced anonymous editors. Ashley Rindsberg, who exposed the mighty New York Times' biases in his book The Gray Lady Winked, provides many examples of this.Of note to Indians and Hindus is his recent substack titled “Wikipedia's India War” where he identifies just four editors as having created most of the content condemning the Hindu American Foundation (HAF) in ‘Wikivoice', i.e. the allegedly neutral perspective of Wikipedia. They are, on the contrary, shown to be highly one-sided.As Rindsberg mentions, Wikipedia being central to generativeAI, the damage is baked into the world-view of all AI applications. Truly Orwellian. Says Rindsberg: “four… anonymous accounts can have an enormous impact on what millions of people believe to be the truth.” “Over four years (2021-2025), editors systematically erased HAF's identity as an American civil rights group, transforming its Wikipedia page into a heavily curated dossier of accusations.”Trade, and how the Spice Route was far superior to the Silk RoadFinally, something that is becoming increasingly important: ensuring freedom of trade. This is more than just freedom of navigation, although I find it instructive that Emperor Rajendra Chola sent a huge fleet 1,001 years ago simply to open up the Straits of Malacca. India can make an active attempt to regain primacy in Indian Ocean trade, the whole Pax indica idea.Here is another example of the power of narrative: we have been led to believe that the Silk Road to China was some major highway of commerce between ancient Rome and ancient China, but it was a term coined only in 1877 by the German Ferdinand von Richthofen. There was no highway. A large caravan might take six months, and with 500 camels traversing treacherous deserts and braving bandits, it might carry a maximum of 100 tons. That is puny.In comparison, on the Spice Route, a single stitched ship from Muziris could carry 400 tons of ivory, pepper, silk, tigers and elephants; and the historian Strabo around 1 CE talks about fleets of 250 ships going from Alexandria to India on a six-week monsoon-powered journey. That is 100,000 tons of merchandise. No wonder Pliny the Elder complained that Rome's treasuries were being emptied of gold by India.Simple question: where are hoards of ancient Roman coins found in Asia? Answer: not along the Silk Road. The hoards are in Kerala, Tamil Nadu and Sri Lanka.Today, it is possible for India to aspire to port-led development of trade, especially with the major ports at Trivandrum (Vizhinjam), Maharashtra (Vadhavan), and Great Nicobar (Galathea Bay). The underlying ‘software' of India's millennia-old trade competency was a ‘multi-protocol switch' as I pointed out, and today's India Stack can replicate that. Then there is the need for a blue-water navy: muscle to provide security on the Hormuz to Malacca sea-lanes.So there is a vision. How can India get there? This is where policy matters, as I discussed with policy expert Anuj Gupta. Policy, especially industrial policy, has had a bad reputation in certain circles because it was deemed to violate the virginal purity of classical capitalism. However, in a recent U-turn, even the World Bank admitted that industrial policy may not be all that bad, after all: the success of Japan, the Asian Tigers, and China can't be ignored.That leads to the question of why policy in India has produced mediocre outcomes, what is different now, and where the best use of policy might be.Industrial Policy: What went wrong in the past?There are many problems here. To begin with, the Soviet model, which Nehruvians swore by, was, in hindsight, a dead end. Second, there is the problem of governance: post-Independence bureaucrats have awkwardly borne the legacy of imperial hauteur and the needs of a developing society. Third, until recently, the bare necessities (food, electricity, road access) were not available to many citizens, and GDP growth was not their priority.There is also the culture of jugaad: of clever ways in which you overcome constraints through frugal improvisation and seat-of-the-pants making-do. This is fine for one-off things (e.g. converting a tractor trailer into a makeshift transport vehicle because your truck broke down), but it does not make for efficient and replicable industrial products. As The Economic Times said recently, it is time to junk jugaad. Quality has to become ingrained in people's minds.The issue of governance is significant: the bureaucracy and the judiciary have both under-performed, politicians, as everywhere, have been venal. It is said that China's growth can be attributed to the fact that its babus are engineers, and therefore with engineering ruthlessness move in straight lines. The US' babus are lawyers, and India's are humanities graduates. Well, engineers are not very good at second-order effects (eg. China's lurch from one-child policy to demographic collapse), but a little bit of ruthlessness is probably good.What is going reasonably well?There are a few modest success stories: for example, in electronics manufacturing or assembly. The PLIs (and DLIs) have produced the desired effort, with clusters of excellence where global suppliers have also set up shop (as they did earlier for the automobile industry in, say, Sriperumpudur). The fact that a lot of iPhones in the US are now imported from India is laudable, even though it may be derided as “screwdriver jobs”. That's where one starts the move up the value chain.The current semiconductor policy is a big hope, especially after the landmark agreement by the Dutch firm ASML with Tata Electronics in Dholera, Gujarat. Given that ASML has a near-monopoly position in Deep Ultraviolet Lithography (DUV) this is a major boost to India's chip ambitions. My recent conversation with AMD CTO Suraj Rengarajan went into India's chances to realize its ambitions.A recent announcement from Trivandrum-based fabless startup NetraSemi (a recipient of DLI) of the commercial availability of its edge AI chips is a landmark.Next is the newly announced plan for energy security revolving around both coal gasification and intensive offshore exploration. These fall squarely into the Atmanirbhar category: India simply cannot afford to have its energy held hostage by distant nations. It also needs distinctly Indian innovation.The Samudra Manthan initiative is also showing some promise. At least one out of three deep-water wells in the Andaman Sea (SriVijaya Puram-3) are reported to be showing the availability of natural gas, although it will take 5-10 years for this to be commercially available.What should the future look like for India's Industrial Policies?This of course is the hard question. Here is my personal perspective, and I accept that reasonable people may disagree. I think three areas need to be focused on, and will pay large dividends.* Drones and swarming software* Social media and AI stack* Maritime Trade and Blue-Water NavyI admit that these are not the only worthwhile industrial policies. Another is for copper, which would reverse the catastrophic effects of the closure of the Sterlite plant in Thoothukkudi, as the metal is an increasingly important component in electronics, data centers, etc., and far from being self-sufficient earlier, India now imports 50% of its needs. Another area of interest in quantum computing.There are also failures from which the right lessons need to be learned. The policy for EV batteries has apparently failed: according to Swarajya magazine, India has not been able to escape from near-total dependence on imported Chinese batteries.Drone swarmsI wrote recently that drones may well herald a step-change in warfare. For the moment, though, they are searching for their niche in offensive/defensive warfare. Drone hardware is already a well-trodden path with Chinese and other nations dominating it, although with IdeaForge, Paras, Garuda, IoTechworld Avigation etc., India is also making progress there. And India is indeed buying the hardware, $2 billion-worth, according to the Economic Times.But I believe the real game is in drone swarms. AI-based control software (similar to HiveMind) that would allow an entire swarm to act autonomously, just like a murmuration of starlings, would be the gold standard to aim for. Such a self-managing swarm would be virtually impossible to defend against, and I think India should put in place a PLI to support it, leveraging software capability in the country.Of course, drones are not just for military purposes, but also for commercial uses including things like logistics and agricultural use, such as precision delivery of fertilizer and pesticide to crops (as Garuda demonstrates). An Indian initiative that supports both drone hardware, and especially drone software, would be a potential winner.Digital Sovereignty: Social media and AI stackThere is a raging battle over which part of the AI stack India needs to invest in. As an old Unix hand, I believe the foundational model is not where the differentiation is. In analogy with Linux (the open-source Unix variant that was popularized by Linus Torvalds and an army of volunteers), there is little value in re-writing the operating system, but one can differentiate by building on top of it, or by judiciously choosing certain modules of it.Besides, the cost of building an entirely new foundational model would be astronomical and would consume the entire budget of IndiaAI Mission.Thus, my personal opinion is that the foundational model (especially when, it is believed, there are more or less open-source models available for free, e.g. Llama, DeepSeek) is not where India should expend its precious R&D resources, but on the layers of the stack above it. It is the data that matters, as Larry Ellison apparently suggests too.But there is the interesting counter-example of Sarvam AI which is producing its own sovereign model: multi-lingual and presumably otherwise tuned to Indian needs. The question is whether this can survive when hundreds of billions worth of capital investment are going to the US Big Tech companies and their Chinese rivals. The sad history of Koo, a Twitter rival, comes to mind. So does Arattai, a Whatsapp rival, whose popularity has waned. .A well-thought-through industrial policy on generativeAI is therefore essential. The status quo ante is unsustainable; given the fact that Sarvam has also found it difficult to raise funds in the US, it is worth pondering whether a China-style massive subsidy is the answer. And where should it go, into foundational models or into the layers of the stack above it? The answer is “both”, but with priority to the latter.Here is where I would prioritize investments, in order:* Vertical applications in specific domains: e.g. defense, healthcare, agriculture, governance (particularly in the judiciary and in ease of doing business in the bureaucracy)* Fine-tuning and customization: for the needs of the Indian context, e.g. multi-linguality under Bhashini* Compute infrastructure: GPUs, sovereign and protected indian datasets* Sovereign Small-Language Models such as Sarvam AIAs mentioned above, at the moment India's data is being sucked up for free by US Big Tech. In addition, there is the real danger that Indic Knowledge Systems will be mined and digested, as has happened to yoga, pranayama, etc., which have been given Western analogs and nomenclature, as in Pilates, ‘coherent breathing' etc.These two problems are connected, and both need to be tackled in parallel. Social media is being weaponized against India, and this is magnified by the legacy media in a positive feedback loop. Three examples: one was the rage against Adani based on the dubious research of Hindenburg, which then went under; the second is Bloomberg's reckless accusation about gold reserves being sold by the RBI, which they were forced to retract, but social media and Wikipedia will remember it; the third is the meteoric (media) rise of the Cockroach Janata Party.Trade using major ports, Digital Public Infrastructure and a blue water navyUsing trade for competitive advantage is an age-old tactic. The trade tiffs between the US and China are examples of this: we are witnessing war by other means. Many nations are getting into this act, and India does have some advantages, partly based on geography. Maritime trade is likely to continue to be the key, which makes naval chokepoints the big story, but not the only story to watch out for.The major aspects of maritime trade include infrastructure, the digital “multi-protocol switch”, and security. On the one hand, India is developing not only major container ports, and the road/rail links to get to them, and the industrial goods to ship out through them, but also a serious shipbuilding industry, which was one of India's historical strengths. Then it used to be stitched wooden ships (teak beams lashed together with coconut rope). Now it's modern steel ships.There are the big, efficient new ports, which can now turn ships around with Singapore-like efficiency; the proposed third aircraft carrier group which will make it possible to patrol the Arabian Sea and the Bay of Bengal at the time; the Air-Independent Propulsion diesel submarines and nuclear submarines that can monitor (and if necessary, deny) narrow straits; the sale of supersonic Brahmos cruise missiles to the Philippines, Vietnam and Indonesia (and Cyprus) that create ship-denial zones: all this is muscle.And the final piece, the ‘software' for trade, the “multi-protocol switch”. This last is complicated. Its value is underestimated by many. But this is what enables friction-less transactions between various unrelated parties. The India Stack and the Digital Public Infrastructure can be utilized to provide such a facility. But it is complex enough to need significant study as to what is possible, and how to roll it out.Second-order effectsIn closing, it is worth considering some of what the (unintended) consequences of these proposals may be. Let us note that the G2 has no interest in allowing India to grow and make it a G3. They will do everything in their power to kneecap India, by all means possible.There is also a certain derision for India in some circles. Here is a generic western opinion on why China got rich, and India didn't. Well, the author doesn't consider the second-order effects of the wholesale destruction of Chinese civilization: that is a tradeoff Indians may not prefer for themselves. We all know how China's well-intentioned One Child Policy turned into demographic collapse within a few years. Besides, as The Economist asks, “China is innovative. Its economy is a mess. Which will win out?”This is why I think planning for these second-order effects is important. We tend to ignore them because they seem counterintuitive or unlikely, but Nassim Taleb has sensitized us to how low-probability Black Swan events can have grave consequences.As an example, attempting digital sovereignty may have unwelcome side-effects: Big Tech have the first-mover advantage and network effects and there are increasing returns to scale. They will surely make it hard for a new player to break in. Besides, the large investments in data centers and GCCs that they are making in India would make it very difficult for them to be ejected with a “Great Indian Firewall”.Even taxing their capture of Indian data will be complicated; not to mention that they have demonstrated that they can happily violate copyright laws with no consequence; therefore they will find ways to chew up and spit out Indian Knowledge Systems, and essentially re-colonize India. Digital colonialism is not a threat, it is a reality today, and it is a consequence of the relatively open Indian system.In addition, there is a malign group, the “barbarians within” as Arnold Toynbee once put it, who are ready to sacrifice Indian sovereignty for a pittance.Given all this, it will be very difficult to put in place serious measures to gain digital independence; and the narrative-peddling is likely to gain further momentum: just consider the caste allegations that have haunted BAPS in the US (despite the cases being dismissed by the US DoJ), the Cisco Systems case where, again, the case was dismissed, but the narrative continues, and the persistent efforts in various US states to turn caste into a weapon to bludgeon Indians.Another sensitive issue is that of the multi-protocol switch for trade. While from an Indian point of view, it eases trade and harks back to a Golden Age of Indic maritime commerce, but that will be viewed elsewhere very differently, for instance by the US as an attempt to de-dollarize. The US has jealousy guarded – with very good reasons that we will not go into here – the dollar's reserve currency status.We have also seen what happened to those who attempt to hurt the dollar's primacy: in 1985, the Plaza Accord devalued the dollar, and that was a body blow to Japan's economy, which has not recovered its mojo to this day. Later, Iraq's Saddam Hussein and Libya's Muammar Gaddafi both had ideas about replacing the petro-dollar with, respectively, the Euro and a new pan-African gold-backed currency. We know what happened to them.If the India Stack multi-protocol switch is perceived as an alternative to the US dollar, there may be grave consequences. Therefore, it should be conceived and deployed only as an adjunct to it and to the almighty SWIFT settlement system.ConclusionIndia is at a crossroads now. Even though the Hormuz closure is a serious problem, if it plays its cards right, adversity can be turned into opportunity across a variety of perspectives. The key is Atmanirbhar, self-reliance. If India can now implement a crash program of industrial policy, and at the same time overcome an ingrained Third-World tendency to cut corners, it can finally break free of the years of underperformance, what I called the Nehruvian Penalty in 2004.It is possible, but there are caveats: unforeseen consequences. Hic sunt dracones. Here be dragons. Be afraid. Be very afraid.3700 words, 7 June 2026This is episode 192 of the Shadow Warrior podcast. Here is a companion AI-generated slideshow. (Note that the borders of India are not necessarily depicted correctly here, because it is generated by an AI, notebookLM.google.com) This is a public episode. If you'd like to discuss this with other subscribers or get access to bonus episodes, visit rajeevsrinivasan.substack.com/subscribe

airhacks.fm podcast with adam bien
Split-Brain, ContainerD, Quarkus and a Postgres Cloud Control Plane

airhacks.fm podcast with adam bien

Play Episode Listen Later Jun 12, 2026 55:23


An airhacks.fm conversation with Alvaro Hernandez (@ahachete) about: discussion about the quarkus Insights episode "#337 The Database Cloud" stackgres live demo, StackGres as a Quarkus and GraalVM native kubernetes operator for running Postgres, comparing CloudNativePG (CNPG) by EnterpriseDB to StackGres, Patroni for Postgres high availability, the split-brain risk of relying on Kubernetes and etcd alone, distributed consensus and leader lock election via etcd, why distributed systems and cryptography should not be self-implemented, async, synchronous and quorum (semi-synchronous) Postgres replication trade-offs, cascading and cross-region replication topologies, the false-positive problem and heuristic exceptions in two-phase commit, the ondb ("own your database") project for self-hosted Postgres, losing control with managed cloud services and untestable backups, vanilla unmodified Postgres on StackGres, the "Kubernetes without Kubernetes" (Kubeless) pattern, talking directly to ContainerD through the CRI API, runc and the Docker to ContainerD chain, a self-contained native binary that embeds ContainerD over Unix domain sockets, the slony node-local component named after the Postgres slonik elephant mascot, the Matriarch orchestrator component, reverse gRPC tunnels with Slonies phoning home across NAT and firewalls, a multi-tenant cloud control plane provided as a service, curl-pipe-shell node installation with a token, end-to-end encrypted Postgres protocol tunneling for JDBC from anywhere, psql compiled to wasm in the web console, Tailscale-inspired user experience, unifying nodes, Kubernetes clusters and cloud pools as resources, Slony Kubernetes controller, Java 25 source-mode scripting without dependencies, implementing your own MCP server for Postgres JDBC metadata, the Goose agentic UI donated by Block to the Linux Foundation, AI Rails BCE, Java, Web Components skills Alvaro Hernandez on twitter: @ahachete

BSD Now
667: Don't exceed by security boundary

BSD Now

Play Episode Listen Later Jun 11, 2026 47:48


.NET on FreeBSD 15, Klara and TrueNAS fixing dedup, dhcpcd and unbound in FreeBSD Jails, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Running .NET 10.0 on FreeBSD 15.0 How Klara and TrueNAS collaborated to fix one of ZFS's longest standing limitations News Roundup Back to FreeBSD: Part 1 dhcpd and unbound in FreeBSD jails How our environment still needs the security boundary of Unix logins Increasing a bhyve vm disk Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4657: UNIX Curio #8 - Comparing Files

Hacker Public Radio

Play Episode Listen Later Jun 9, 2026


This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. Most users of UNIX-like systems are probably familiar with the diff utility. It is widely used with source code to compare two files and see what the differences are between them. Non-programmers, like me, also use it to examine what has changed in different versions of scripts or configuration files. Quite a few pieces of newer software can compare different versions of data and express changes in a format either identical to or similar to diff output. However, there are two other long-standing tools for this purpose that are far less known and deserve in my view to be termed UNIX Curios. The first of these is cmp 1 . While diff is primarily intended to be used on text files and compares them line by line, cmp compares files byte by byte. In my experience, its main use is to see whether two binary files are in fact identical—if they are, cmp outputs nothing and returns an exit status of 0. Back when methods of transferring files were not as reliable as they are today, this was a tool I would reach for sometimes. For example, you could use it to confirm that the data on a CD-ROM you burned was the same as the original. If there is a difference between the files, cmp will return an exit status of 1. By default, it will also print the location (byte and line number) of the first differing byte. When used with the -l option, it will print the location and value of every byte that differs. There is one exception to these: if the files are the same except that one is shorter than the other, it will print a message to that effect. The exit status will still be 1 in that case. Using the -s option with cmp will cause it to be totally silent and output nothing. Only the exit status will indicate whether the files are the same, different, or if the exit status is greater than 1, that an error occurred. This makes it useful for scripting, for example in case you wanted to confirm that a file copied to another location arrived fully intact. It is worth noting that diff is also capable of comparing binary files—however, it is not required by POSIX to report what is actually different or where differences occur. The same exit status as in cmp is returned: 0 if the files are the same, 1 if they are different, or greater than 1 if an error occurred. While many implementations offer an option to suppress the output, this is not in the standard 2 so the most portable method would be to instead redirect output to /dev/null . On my system the diff utility is three times the size of cmp , so if you don't need its extra capabilities, it is a less efficient way of doing the job. The other UNIX Curio for today is comm , and this utility 3 is also intended to compare two files to see what is common between them. Ken Fallon briefly talked about it a few years ago in HPR episode 3889 . Compared to the others, it has a much more specific use case. The two files are expected to be text files that are already sorted. What comm will do is print a tab-separated list of all the lines appearing in either or both files. Lines only in the first file will appear in the first column, lines only in the second file will be in the second column, and lines in both files will be in the third column. Any combination of the options -1 , -2 , and -3 can be used with comm to suppress printing of the first, second, or third column respectively. Using all three options at the same time is supported but it results in no output, so that isn't very useful. Unlike the other utilities, the exit status of comm doesn't tell you anything about the two files. It will be 0 if the program ran successfully, and greater than 0 if it didn't. I'm not sure if I have ever actually used comm for anything practical. I find its default output a bit difficult to meaningfully interpret, plus you need to ensure the two files are already sorted. It seems to be best suited to comparing lists, and one use case that Ken Fallon mentioned would be comparing two lists of files to see if any are missing. The command comm -3 listA listB would print files that only appear in listA in the first column and those only in listB in the second column. This would let you ignore all the filenames that appear in both and focus on those that were absent from one or the other. If on the other hand you only wanted to see the filenames that are on both lists, comm -12 listA listB would give you that. Some more frivolous potential uses also come to mind. If for some reason the cat utility is broken on your system, you could use comm listA /dev/null to print the file listA instead. If you want to insert tab characters before every line of a file but have an aversion to using sed or awk , then comm /dev/null listA would output listA with one tab before each line, and comm listA listA would insert two tabs. A bit silly, but it would work. The GNU implementation of comm even lets you choose something other than a tab to separate the columns 4 , so you could go wild with that. According to the POSIX specifications for cmp and comm , one of the two filenames given as arguments, but not both, can be a " - ", in which case standard input will be used for that "file" in the comparison. Also, the results are undefined if both arguments are the same FIFO special, character special, or block special file. Some implementations might not have these limitations, but you shouldn't rely on that everywhere. All three of these were developed quite early. The cmp utility appeared in 1971's First Edition UNIX 5 , while comm and diff seem to have made their debut in Fourth Edition UNIX 6,7 from 1973. The original versions might not have behaved exactly like their modern counterparts, and newer implementations (especially of the diff utility) have acquired additional options and capabilities, but the basic operation of each has stayed the same. The next time you need to compare files against each other, consider whether cmp or comm might be appropriate before automatically reaching for diff . They all have their uses in different situations. References: Cmp specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/cmp.html Diff specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/diff.html Comm specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/comm.html GNU coreutils manual: comm https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html First Edition UNIX cmp manual page http://man.cat-v.org/unix-1st/1/cmp Fourth Edition UNIX comm manual page https://www.tuhs.org/cgi-bin/utree.pl?file=V4/usr/man/man1/comm.1 Fourth Edition UNIX diff source https://www.tuhs.org/cgi-bin/utree.pl?file=V4/usr/source/s1/diff1.c Provide feedback on this episode.

The Six Five with Patrick Moorhead and Daniel Newman
Microsoft Declares Independence, Alphabet Raises $80 Billion, and the Multi-Silicon Era Arrives | The Six Five Pod Ep. 307

The Six Five with Patrick Moorhead and Daniel Newman

Play Episode Listen Later Jun 8, 2026 57:13


Microsoft Build 2026 announced an end-to-end agentic AI stack. COMPUTEX Taipei confirmed heterogeneous AI infrastructure across ARM, Marvell, Intel, Qualcomm, and NVIDIA. Alphabet raised $80 billion. Cisco Live repositioned the network as the AI platform. Patrick Moorhead and Daniel Newman break it all down alongside earnings from Broadcom, HPE, Palo Alto Networks, and CrowdStrike, plus the token cost conversation, the edge AI push, and what Palantir and Oracle are saying about proprietary data as the real AI moat. The handpicked topics for this week are: Microsoft Build 2026 Announced an End-to-End Agentic AI Stack: Microsoft shipped MAI-Thinking-1, its first homegrown thinking model, alongside Scout, Microsoft IQ, Project Solara, and a Majorana 2 quantum update targeting a 2029 commercial timeline with claims of a 1,000x reliability gain. Pat describes MAI-Thinking-1 as likely better than Sonnet 4.6 in blind testing and delivering close to GPT 5.5 quality at a far lower cost. Scout is Microsoft's first autopilot agent, anchoring the M365 Agent Suite with Office Pilot Agent Mode and Agent 365. Microsoft IQ serves as the context layer, integrating M365, business data, boundary IQ, and web IQ with GitHub Copilot, Foundry, and Copilot Studio. Project Solara is a new Android-based platform built for agent-first devices across transportation, retail, and hospital settings. Microsoft also added 83 Unix commands to the Windows stack. Dan frames Microsoft's real play as distribution, not frontier model development, noting that the open model ecosystem being pulled into the platform will matter more to CFOs managing token costs at scale. (The Decode) The AI Stack Goes Multi-Silicon — COMPUTEX Taipei 2026 Confirms Heterogeneous AI Infrastructure: ARM's AGI CPU is in production with Google moving its TPU head node to ARM, and adding Oracle and ByteDance as new customers. ARM also introduced a new switch, the TT100, and put the 51T CPO switch on stage. Marvell received a trillion-dollar company endorsement from Jensen Huang, adding $90 billion in market cap on the comment alone. Intel announced disaggregated inference details and Xeon 6+ Clearwater Forest, its first 18A data center processor. Vista Equity and Cambium Capital announced a NeoCloud called Vector Core Compute, with Xeon 6 handling orchestration, Salmonova RUs handling decode, and Blackwell GPUs handling pre-fill. Qualcomm's Cristiano Amon announced the Dragonfly data center brand with Snapdragon C details coming at their June investor day. The WSTS raised the 2026 semiconductor TAM forecast by 90% to $1.51 trillion, with Pat noting the market could hit a trillion dollars if memory is excluded entirely. (The Decode) NVIDIA RTX Spark and the Edge AI Push: NVIDIA coordinated with ARM and Microsoft around the RTX Spark at COMPUTEX, with the shared message being that the future of Windows is here. Signal65's Ryan Shrout asked Jensen directly why NVIDIA wants to be in the PC business, given low margins and diminishing returns. Dan frames the answer in the context of devices increasingly becoming mobile data centers, capable of running models at much greater efficiency than cloud delivery. The edge AI conversation is also directly tied to token cost economics: as intelligence delivery moves closer to the device, the cost per token drops significantly. The jury is still out on whether NVIDIA will meaningfully disrupt the PC market, but its influence over OEMs like Lenovo and Dell that depend on it for data center gives it real leverage over SKUs. (The Decode) Token Economics and Frontier Model Cost Pressure: Dan and Pat discuss a substantive shift in how enterprises are thinking about AI consumption costs. Dan argues that "token maxing," the practice of defaulting to the most powerful frontier model for every task, has now effectively peaked, as bills have come due at scale. Companies paying for tokens in volume are starting to question whether they can afford the prices that frontier models actually cost to deliver. Pat pushes back, saying the dynamic is still present, but both analysts agree that the market is moving toward a model where token selection is matched to the job, with Microsoft's MOE approach and thinking models positioned to help CFOs manage that economics story. (The Decode) Continuum Goes Public at Highest Valuation for an AI Platform: Dan notes that Continuum, the Honeywell-spawned quantum company, went public this week at what he calls the highest valuation for an AI platform to date. He flags that IonQ will likely contest that characterization. The broader context is Microsoft entering the quantum conversation with Majorana 2 at Build, a name that has largely been absent from the quantum race, while IBM has received most of the attention. (The Decode) AI CapEx Has Outgrown Cash Flow — Alphabet's $80 Billion Equity Raise: On June 1, Alphabet announced an $80 billion equity capital raise, upsized to $85 billion, structured as $40 billion ATM, $30 billion underwritten, and a $10 billion private placement with Berkshire Hathaway anchoring. Pat frames the questions over CapEx returns as entirely dependent on whether you are an AI boomer or a doomer: if the payback comes, the raise is the right move. If it does not, the math doesn't close. Dan argues the investment is existential, drawing parallels to how infrastructure-first companies have always spent ahead of monetization, and notes that Google's equity is being used as a capital engine that may be more efficient than the debt markets right now. Both analysts flag the downstream implications for Broadcom, MediaTek, and Marvell given the TPU connection. (The Decode) The Network Becomes the AI Platform: Cisco Live 2026: Cisco launched Silicon One P200, the Secure AI Factory with NVIDIA and Spectrum X, AgenticOps, MCP-native automation, Cisco IQ, LiveProtect, and folded Astrix Security and Galileo into Splunk under one control plane. Pat identifies Cisco Cloud Control as the biggest announcement of the entire show, pulling together Catalyst, Meraki, Nexus, Firewall, and WebEx under agentic ops that run natively through MCP, with code running directly on smart switches that have x86 processors. Pat also credits Cisco for establishing Silicon One as a credible chip alternative for hyperscalers capable of taking on Tomahawk and Jericho. Dan frames the long-term opportunity as campus and branch enablement when industrial AI and robotics deployments accelerate, arguing that the numerator of AI's economic impact has barely started, as edge deployment spending has not yet begun. (The Decode) The Flip: Did Microsoft Build 2026 Effectively End the OpenAI Partnership? Pat argues the divorce decree has been filed. MAI-Thinking-1 was built with zero distillation from third-party models offering clean enterprise data lineage, with Maia 200 in production plus Anthropic chip supply, which signals vendor hedging. OpenAI is going all-in on AWS, which means you cannot be married to two people, and the full Build stack covering model, OS containment via MXC, agents via Scout and Agent 365, and context via Microsoft IQ removes every architectural dependency on OpenAI. Dan counters that Microsoft is hedging rather than leaving and predicts the partnership will run through the decade. Enterprise Copilot customers are explicitly showing in data that they demand GPT 5.5, internal benchmarks have not been independently validated, and Microsoft stands to make meaningful money from the OpenAI IPO. (The Flip) Broadcom Q2 FY26 Earnings: Broadcom posted revenue of $22.19 billion, a narrow miss depending on which consensus data set is used, with EPS of $2.44 beating estimates and AI semis at $10.8 billion. Hock Tan declined to raise the $100 billion full-year AI chip target, and the stock dropped 13% in premarket trading. Q3 guide came in at $29.4 billion. Pat calls the miss a timing issue driven by Google's multi-sourcing across Marvell, MediaTek, and Broadcom rather than a fundamental problem. Dan flags that Hock Tan opened the earnings call by accidentally reading from the 2025 print, calling it "not the best moment." Sell-side re-ratings held in the 500s across Jefferies, Mizuho, and Deutsche Bank despite the drop, with Futurum Equities having it at 600. (Bulls and Bears) Hewlett Packard Enterprise Q2 FY26 Earnings: HPE delivered revenue of $10.68 billion, up 40% year over year, and EPS of $0.79, up 100%. Juniper integration and AI servers both outperformed, and all FY26 guides were raised. The stock jumped 19% after hours before settling into a roughly 15% gain, with HPE up 68% over the last month. Pat frames HPE as a value play rather than a volume play, methodically targeting enterprise and sovereign cloud deals where it can maintain profitability, rather than competing for massive NeoCloud volume. Antonio Neri was clear on the call that the profitability pull-forward is a one-shot deal. Pat and Dan will both be at HPE Discover the week after next to interview Neri and the C-suite. (Bulls and Bears) Palo Alto Networks Q3 FY26 Earnings: Palo Alto posted revenue of $3.0 billion, up 31% year over year, beating the $2.94 billion estimate, with non-GAAP EPS of $0.85, beating the $0.79 to $0.81 range. NGS ARR reached $8.1 billion, up 60% year over year, including $1.6 billion from CyberArk and Chronosphere. RPO hit $18.4 billion, up 36%. Both FY26 revenue and EPS guides were raised. Adjusted FCF margin came in at 38.5% TTM, up 430 basis points. The stock jumped 11% immediately after hours, then drifted lower. Pat points to 2,200 platformized customers and 120% net retention as the most important metrics. Dan notes the SaaSpocalypse thesis continues to be wrong. (Bulls and Bears) CrowdStrike Q1 FY27 Earnings and the Proprietary Data Moat Argument: CrowdStrike posted revenue of $1.39 billion with EPS of $1.10 and ARR of $5.51 billion. Net new ARR of $255.8 million set a Q1 record, up 32% year over year. FY27 net new ARR guide was raised by $52 million to a $1.29 billion midpoint, and FY27 revenue was raised to $5.915 to $5.959 billion. A 4-for-1 stock split was announced effective July 2nd. The stock dropped 11% despite the beat after a 64% year-to-date run into earnings. Dan uses the results to make a broader argument against the software disruption thesis, referencing Palantir CEO Alex Karp daring customers to build without him using Anthropic or OpenAI, and Larry Ellison's argument that the real AI value unlock sits in proprietary enterprise data that is not accessible to frontier models. Enterprises with governed, secure, proprietary data will continue to need platforms like CrowdStrike regardless of what frontier models can do. (Bulls and Bears) Six Five Summit is coming. Salesforce CEO Mark Benioff will kick off the event. Register and stay current at sixfivemedia.com/summit. Watch the full video at sixfivemedia.com, and be sure to subscribe to our YouTube channel so you never miss an episode.   The Decode Microsoft Declares Independence — Build 2026 Ships an End-to-End Agentic AI Stack (MAI-Thinking-1 + Scout + Microsoft IQ + Project Solara + Majorana 2) https://www.theverge.com/tech/941738/microsoft-build-2026-biggest-announcements The AI Stack Goes Multi-Silicon — Computex 2026 Confirms a Heterogeneous AI Infrastructure (ARM + Marvell + Intel ASIC + Qualcomm + RTX Spark); WSTS Raises 2026 Semi TAM Forecast 90% to $1.51T https://www.tomshardware.com/tag/computex AI Capex Has Outgrown Cash Flow — Alphabet's $80B Equity Raise Is the Largest in U.S. Corporate History; Berkshire Anchors $10B https://abc.xyz/investor/news/news-details/2026/Alphabet-Announces-Proposed-80-Billion-Equity-Capital-Raise-to-Expand-AI-Infrastructure-and-Compute-2026-b0myAMewCa/default.aspx The Network Becomes the AI Platform — Cisco Live 2026 Launches Silicon One P200, Secure AI Factory (with NVIDIA), AgenticOps, Astrix Security + Galileo https://www.cisco.com/site/us/en/about/whats-new/index.html The Flip Did Microsoft Build 2026 Effectively End the OpenAI Partnership? MAI-Thinking-1 Beats Sonnet 4.6 in Blind Testing, Microsoft Claims GPT-5.5 Parity at 10x Cost Efficiency — Will MS Quietly Wind Down OpenAI Exclusivity by FY28, or Is OpenAI Still the Frontier Anchor Microsoft Needs?   FOR:  MAI-Thinking-1 beating Sonnet 4.6 in blind preference + GPT-5.5 parity at 10x cost efficiency is a frontier-model independence proof point https://www.latent.space/p/ainews-microsoft-build-mai-thinking Build 2026: Accumulating Evidence of Microsoft's AI Independence — EDN (June 4) — https://www.edn.com/build-2026-accumulating-evidence-of-microsofts-ai-independence/ Maia 200 in production + Anthropic-Maia chip talks signal Microsoft is hedging its inference vendor stack https://blogs.microsoft.com/blog/2026/01/26/maia-200-the-ai-accelerator-built-for-inference/ Microsoft canceled Anthropic's internal software licenses + pivoted to chip-supply pursuit — customer-not-competitor positioning https://www.cnbc.com/2026/05/21/anthropic-microsoft-maia-200-ai-chip.html   AGAINST:  Enterprise Copilot customers explicitly demand GPT-5.5 — internal benchmarks don't replace the brand https://learn.microsoft.com/en-us/microsoft-365/copilot/release-notes?tabs=all MAI-Thinking-1 benchmarks haven't been third-party verified — Microsoft is the only source https://www.latent.space/p/ainews-microsoft-build-mai-thinking The MS-OpenAI partnership is contractual through 2030+ — unwinding it is impractical and expensive https://blogs.microsoft.com/blog/2026/04/27/the-next-phase-of-the-microsoft-openai-partnership/ Microsoft's actual strategic risk is OpenAI leaving, not MS leaving — Anthropic + OpenAI IPOs make OpenAI exit risk the real concern https://www.anthropic.com/news/confidential-draft-s1-sec Bulls & Bears Broadcom (AVGO) Q2 FY26 ACTUALS — Rev $22.19B (Narrow Miss) + EPS $2.44 (Beat); AI Semis $10.8B; Hock Tan Refuses to Raise the $100B Full-Year AI Chip Target — Stock −13% Premarket; Q3 Guide $29.4B https://www.cnbc.com/2026/06/03/broadcom-avgo-earnings-report-q2-2026.html Hewlett Packard Enterprise (HPE) Q2 FY26 ACTUALS — Blowout: Rev $10.68B (+40%), EPS $0.79 (+100%); Juniper Integration + AI Servers Both Outperform; FY26 Guides All Raised; Stock +19% AH https://www.businesswire.com/news/home/20260601866494/en/HPE-Reports-Fiscal-2026-Second-Quarter-Results Palo Alto Networks (PANW) Q3 FY26 ACTUALS — Beat-and-Raise: Rev $3.0B (+31% YoY, Beat $2.94B), Non-GAAP EPS $0.85 (Beat $0.79-0.81); NGS ARR $8.1B (+60% YoY, $1.6B from CyberArk + Chronosphere); RPO $18.4B (+36%); FY26 Revenue + EPS Guides BOTH RAISED; Adj FCF Margin 38.5% TTM (+430 bps); Stock +11% Immediate AH, Then Drifted Lower https://www.paloaltonetworks.com/company/press/2026/palo-alto-networks-reports-fiscal-third-quarter-2026-financial-results CrowdStrike narrowly beats estimates on AI tailwinds, but stock falls 9% — CNBC (June 3) — https://www.cnbc.com/2026/06/03/crowdstrike-crwd-q1-2027-earnings.html  

BSD Now
665: 60 Puffies

BSD Now

Play Episode Listen Later May 28, 2026 60:09


OpenBSD 7.9, Critical Infrastructure in FreeBSD, GhostBSD Finance report, Solaris 11.4 updates, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines OpenBSD 7.9 60th Edition has been released and Reported over on Undeadly Cleaning Up Critical Infrastructure in FreeBSD News Roundup Apple Wants to Kill Your Time Capsule but They Run NetBSD So They Can Not Oracle To Reduce The Frequency Of Solaris 11.4 Updates FreeBSD on a Thinkpad T14 Gen 2 Intel January 2026 Finance Report Beastie Bits The DragonFly site has a recently-updated page describing how DPorts is assembled and the process to contribute. TUHS - Unix use of VAX protection modes Origin of the rule that swap size should be 2x of the physical memory - The Duke and the Beastie - Improving OpenJDK support for FreeBSD Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4647: UNIX Curio #7 - Compression

Hacker Public Radio

Play Episode Listen Later May 26, 2026


This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. In UNIX Curio #4 ( HPR episode 4617 ), I teased the subject of file compression. Today I'm circling back to that. The history of data compression goes back at least to the 1970s, and in contexts outside UNIX and computers, probably even earlier. Somehow, it is refreshing to learn that humans have always struggled to have enough storage space to keep all the data they want to hang on to. One way around this limitation is to use some form of compression. I am only going to dive into lossless compression for this episode—that is, a compression method that can be reversed and will spit out the original data bit for bit. Lossy compression methods also have their places: you might be familiar with their use for audio (such as Ogg Vorbis or MP3); it's also used for images (such as JPEG). Lossy compression allows some of the original data to be thrown away, resulting in a smaller file than is possible with lossless compression, but the intent is for the result to still sound or look "good enough" to a human observer. Also, I am going to limit my discussion to generic methods used for many types of data; while FLAC does lossless compression, it is specifically designed just for audio. I should make clear that I have never studied computer science or information theory, so this episode will not get into the science behind various types of compression algorithms and how they differ. But in general, these methods take advantage of the fact that many types of data have recurring patterns. English text mostly consists of words that often re-appear many times—source code similarly has keywords and variable names that recur. Compression is accomplished by representing a piece of data that occurs multiple times with a symbol that is shorter in length. The first compression program in the UNIX world I could find is called pack , from 1978 1 . It was shortly followed in 1979 by a similar program called compact 2 . Both of these used a technique called Huffman coding, but with some differences between them. Files compressed with pack were given a .z extension and compact gave filenames a .C extension. Roughly every five or ten years after this, a new program would come along and achieve lasting popularity. There were, and still are, two opposing forces facing any new form of compression. Working in favor was the advantages it provided—first among these was achieving a better compression ratio, but performance improvements such as speed or reduced memory usage could also be compelling. The force against any new method was the fact that it was not yet widely supported—it doesn't much help to have a smaller file if the people you share it with cannot decompress it. The next major advance in compression arose out of three scientific papers: two in 1977 and 1978 by Abraham Lempel and Jacob Ziv (called LZ77 and LZ78), and one by Terry Welch in 1984 which built on LZ78. This last method is typically referred to as LZW. Our UNIX Curio for today is a program called compress 3 that implements the LZW method. Files compressed this way are named with the extension .Z . I had always assumed that this was to honor Jacob Ziv, but now that I've researched the history, it seems more likely to be a follow-on from how files compressed by pack were named. Since pack did not use any of the Lempel-Ziv methods, I would guess that it used .z because that wasn't already taken by anything else, but that's pure speculation. I do recall encountering .Z files in the wild, but feel certain that hasn't happened in the last 25 years, maybe longer. If you need to expand one of these, uncompress 4 is the program to use ( GNU's gunzip can also handle them 5 ). However, there was a serious problem that arose with the LZ78 and LZW compression methods. Both of them were patented, and the owner became aggressive in seeking payment from developers and users. The compress utility was developed within two months of the publication of Welch's 1984 paper and was included in Bell Laboratories' Eighth Edition UNIX before these shakedowns started. The paper did not disclose that a patent had been filed, and apparently Spencer Thomas and the other developers of compress were unaware of it. The utility became popular for a while, and was even standardized by POSIX, but people moved away from LZW once the legal threats started. Another important advance came in 1991 and was called the DEFLATE compression method. It combined the un-patented LZ77 method with Huffman coding to achieve a similar level of compression as LZW (actually, often better) without the legal trouble. DEFLATE was developed for PKZIP and was soon adopted by the GNU project's gzip compressor. While Phil Katz (the "PK" in PKZIP ) patented one way of implementing the DEFLATE method, it was possible to write a compressor and decompressor without infringing 6 ; also, he apparently never tried to enforce the patent 7 . As I mentioned in UNIX Curio #4, .zip is both an archive and a compression format. Each archive member can be compressed with one of several possible methods (or stored without compression). Unlike a tar file where compression can be applied to the entire archive, in .zip each archive member is compressed individually. This often means a .zip file will be slightly bigger than a tar file with the same contents compressed with gzip , because the .zip format cannot take advantage of duplication that occurs among more than one member of the archive. The vast majority of .zip files use only the DEFLATE and uncompressed storage methods and these are the only options if you want to follow the profile standardized in ISO/IEC 21320-1. Actually, since they both use DEFLATE, gzip is able to extract a .zip file in the special case where it only holds one member compressed with that method. From the 1990s onward, people paid significant attention to avoiding patent landmines, so only methods that didn't have that problem became broadly popular. While the patents on LZ78 and LZW have since expired, I feel like their most successful legacy was in discouraging people from using those methods, leading to DEFLATE taking the popularity crown. The next step came in 1996 and 1997 with the development of bzip and bzip2 by Julian Seward. The original method was quickly followed by bzip2 , which was the version that achieved true popularity. They use the Burrows-Wheeler transform, which does not itself compress data but re-arranges it to make it more compressible; this is combined with other techniques 8 . (At least, that's my understanding. I told you, I'm not up on information theory.) This provides a significant reduction in the compressed size of the data compared to earlier methods—however, it is slower than DEFLATE both during compression and decompression. Separate projects have developed parallel versions of gzip and bzip2 that can take advantage of multi-processor machines, but the original utilities run single-threaded. Another five years later, in 2001, Igor Pavlov added the Lempel-Ziv-Markov chain algorithm (LZMA), an enhancement to LZ77, to his 7-Zip compression tool. This was followed a few years later by LZMA2, a container format that allowed for LZMA compression to be split between multiple threads. Broad LZMA2 support came to the UNIX world in 2009 with the xz utility 9 . It offers roughly similar compression ratios to bzip2 , though it can be better or worse depending on the data to be compressed. While compression generally takes even longer than bzip2 , decompression is significantly faster (though still not as fast as gzip ). The Linux kernel relatively quickly supported booting from xz-compressed images 10 because it was a good match for that use case—compression, the time-consuming activity, only has to be done once while the more frequent decompression during boot happens relatively fast. The last method I will cover is Zstandard 11 , often written as zstd . This came about in 2015, and is another variation on LZ77 that uses finite-state entropy (which means nothing to me, but you might understand it). It performs about as well as DEFLATE in terms of compression ratios, but is much faster both when compressing and decompressing data. I should say that these statements are true with the typical default settings—depending on the compression level selected, it can compress more slowly, but compress the data smaller. However, decompression is always speedier than DEFLATE. This makes it attractive for some uses, and it is heavily promoted by Meta/Facebook, where Yann Collet developed it. For example, shipping large amounts of actively-used data between machines in a data center can go more quickly when the size is reduced; however, if the compression and decompression steps take too long that benefit is lost. A speedy method can be valuable even if it doesn't result in the greatest reduction in size. This use case stands in contrast to, say, a compressed backup file which might only be accessed in a disaster recovery scenario or never accessed at all, making size more important than speed. Both the xz and zstd utilities have some built-in support for multi-threading, but the default is to run in a single thread. While xz can use multiple threads for decompression (but only if the file was compressed in multi-thread mode), the reference zstd utility can only use more than one thread for compression, not decompression. There are many other methods of lossless compression that have been developed over the decades, but I believe these are the ones you are most likely to encounter in the world of UNIX-like systems. This is a personal opinion, and others might choose a different set. As mentioned, it can be tough for a new method to gain popularity and 35-year-old DEFLATE is still probably the most commonly used despite not being the fastest or offering the greatest reduction in size. Even systems like FreeBSD, NetBSD, and OpenBSD that do not like to include GNU tools supported it by developing their own version of gzip based on the permissively-licensed zlib library. Technically, the LZW method used by the compress utility is still standardized by POSIX, so one might expect it to have the widest support. However, aggressive patent enforcement discouraged adoption, especially by Free and Open Source Software systems—even though the patent has expired, it is still out of favor compared to DEFLATE. For this reason, I feel justified in calling it a curio. References: Eighth Edition UNIX pack.c https://www.tuhs.org/cgi-bin/utree.pl?file=V8/usr/src/cmd/pack/pack.c 2.9BSD compact.c https://www.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/compact/compact.c Compress specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/compress.html Uncompress specification https://pubs.opengroup.org/onlinepubs/009695399/utilities/uncompress.html GNU Gzip manual https://www.gnu.org/software/gzip/manual/gzip.html RFC 1951: DEFLATE Compressed Data Format Specification version 1.3 https://tools.ietf.org/html/rfc1951 History of Lossless Data Compression Algorithms: The Rise of Deflate https://ethw.org/History_of_Lossless_Data_Compression_Algorithms#The_Rise_of_Deflate bzip2 https://en.wikipedia.org/wiki/Bzip2 XZ Utils https://en.wikipedia.org/wiki/XZ_Utils 2.6.38 merge window part 2 https://lwn.net/Articles/423541/ zstd https://en.wikipedia.org/wiki/Zstd Appendix The table below demonstrates the results of compressing different types of data using tools described in this episode. While not totally rigorous, I did run each compression and decompression multiple times to ensure I was getting consistent results. The laptop I used has an Intel Core i5-6200U CPU running at 2.30GHz, and the system had at least 5 GB of free memory for each run. While this processor has two cores and can run four simultaneous threads, all utilities were run single-threaded. The term "best" means the highest level of compression available (the exact level used is shown). For bzip2 , the default is the best. For zstd , "best" is -19, which is the highest "normal" level, but "ultra" levels that are even higher also exist. Ratios are the percentage of the original size that the file was reduced to (other sources might instead express the compression ratio as the reduction in size achieved). In all results, smaller numbers are better. ┌────────────────────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐ │ │ gzip │ gzip │ bzip2 │ xz │ xz │ zstd │ zstd │ │ │(default -6) │ (best -9) │ (-9) │(default -6) │ (best -9) │(default -3) │ (best -19) │ ├──────────────┬─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Size (ratio) │ 22,036,508 │ 21,891,623 │ 15,795,698 │ 13,487,768 │ 12,938,464 │ 20,454,657 │ 13,709,078 │ │ │ │ (24%) │ (24%) │ (17%) │ (15%) │ (14%) │ (23%) │ (15%) │ │English Text ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │(90,532,092 │Compression │ 4.8s │ 7.6s │ 8.5s │ 49.8s │ 58.8s │ 0.6s │ 65.2s │ │bytes │time │ │ │ │ │ │ │ │ │uncompressed) ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Decompression│ 0.7s │ 0.8s │ 3.7s │ 1.2s │ 1.2s │ 0.4s │ 0.4s │ │ │time │ │ │ │ │ │ │ │ ├──────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Size (ratio) │ 125,291,122 │ 124,189,544 │ 98,016,512 │ 84,882,492 │ 81,954,344 │ 120,604,855 │ 87,298,645 │ │ │ │ (21%) │ (21%) │ (17%) │ (14%) │ (14%) │ (20%) │ (15%) │ │Source Code ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │(590,008,320 │Compression │ 22.0s │ 39.3s │ 54.8s │ 241s │ 298s │ 3.7s │ 348s │ │bytes │time │ │ │ │ │ │ │ │ │uncompressed) ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Decompression│ 5.1s │ 5.1s │ 20.3s │ 8.1s │ 7.8s │ 2.4s │ 2.4s │ │ │time │ │ │ │ │ │ │ │ ├──────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Size (ratio) │ 32,830,905 │ 32,371,241 │ 26,856,579 │ 20,717,288 │ 20,352,880 │ 28,538,810 │ 23,154,582 │ │ │ │ (19%) │ (19%) │ (16%) │ (12%) │ (12%) │ (17%) │ (13%) │ │Binary Program├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │(171,972,264 │Compression │ 6.4s │ 22.4s │ 18.6s │ 62.2s │ 67.8s │ 0.8s │ 111s │ │bytes │time │ │ │ │ │ │ │ │ │uncompressed) ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Decompression│ 1.5s │ 1.5s │ 5.6s │ 2.3s │ 2.3s │ 0.7s │ 0.7s │ │ │time │ │ │ │ │ │ │ │ ├──────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Size (ratio) │ 146,397,772 │ 146,397,757 │ 144,485,451 │ 131,950,232 │ 130,926,780 │ 147,154,979 │ 145,703,840 │ │ │ │ (89%) │ (89%) │ (88%) │ (80%) │ (80%) │ (90%) │ (89%) │ │WAVE Audio ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │(164,396,302 │Compression │ 9.2s │ 9.2s │ 25.1s │ 70.4s │ 97.7s │ 0.7s │ 58.3s │ │bytes │time │ │ │ │ │ │ │ │ │uncompressed) ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │Decompression│ 2.0s │ 2.0s │ 13.5s │ 12.2s │ 12.1s │ 0.6s │ 0.8s │ │ │time │ │ │ │ │ │ │ │ ├──────────────┴─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ │ │ gzip │ gzip │ bzip2 │ xz │ xz │ zstd │ zstd │ │ │(default -6) │ (best -9) │ (-9) │(default -6) │ (best -9) │(default -3) │ (best -19) │ └────────────────────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘ English text consists of Titles 1 through 10 of the 2020 U.S. Code of Federal Regulations . Source code consists of a tar file containing the Linux kernel source, version 4.0. Binary program consists of an ELF-format executable of the pandoc application, version 2.17.1.1 found on Debian 12. Audio consists of a 24-bit Signed Integer PCM WAVE file with 2 channels at 44.1kHz, about 10:21 in length. For comparison, the audio-specific flac lossless compression utility reduced this file to 97,962,711 bytes (60%) in 2.6 seconds at the default (-5) level and to 97,714,876 bytes (59%) in 5.4 seconds at the highest (-8) level. Provide feedback on this episode.

BSD Now
664: No one misses SPARC

BSD Now

Play Episode Listen Later May 21, 2026 62:50


The NetBSD/FreeBSD Merge announcement, the rise and fall of SPARC, GhoseBSD 26.2 and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines NetBSD/FreeBSD will not merge, November 1993 announcement Rise and Fall of SPARC: Why No One Misses It News Roundup Help needed testing GhostBSD 26.2 Redundant DHCP server and DNS Resolver using OpenBSD and FreeBSD Universities And In house Tech Beating my head on OpenVPN Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Paul - Feedback Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Latent Space: The AI Engineer Podcast — CodeGen, Agents, Computer Vision, Data Science, AI UX and all things Software 3.0

Take the 2026 AI Engineering Survey and get >$2k in credits and AIE WF tickets!On the product side, everyone is getting Computer - Perplexity, Manus, Cursor, and so on. Meanwhile on the research side, agentic evals like TerminalBench and GDPVal are also assuming computer (Harbor). On both ends, the consolidating LLM OS stack has become a standard toolkit, and Daytona is one of a small set of AI Infra companies that are booming because of it.“The end of localhost” has been Ivan Burazin's obsession for more than a decade.Something that is all too familiar…Long before agents became the default way people talked about software development, Ivan was already chasing the idea that development should not depend on a fragile local machine. CodeAnywhere, one of the first browser-based IDEs, was an early attempt at that future: move the development environment into the cloud, make setup reproducible, and free developers from the endless “works on my machine” tax.The thesis was directionally right, but the market wasn't ready yet.However, agents changed that. They do not care about a laptop, desk setup, or favorite editor. They need a computer they can access through an API: something stateful enough to keep working, fast enough to spin up instantly, flexible enough to resize, isolated enough to be safe, and composable enough to run the messy real-world workflows that real software engineering actually requires.Daytona isn't just selling “sandboxes” in the narrow code-execution sense. It is the latest version of Ivan's original localhost thesis.In this episode, Daytona's CEO joins swyx to explain why AI agents need more than code execution boxes: they need composable computers, stateful sandboxes, instant startup, dynamic resources, and infrastructure that can survive workloads going from zero to 100,000 CPUs.We go deep on the new agent compute market: Daytona's hard pivot from human dev environments to AI sandboxes, the New Year's Eve MVP that customers begged for, why Daytona runs on bare metal with its own scheduler, how one customer runs almost 850,000 sandboxes a day, and why RL/eval workloads went from 0% to roughly 50% of usage in just months. Ivan also explains why agents need Windows and macOS machines, why CLI may matter more than MCP, why Kubernetes is painful for this workload, and why the future AI cloud may look more like Stripe than AWS.We discuss:* How Daytona grew out of CodeAnywhere, Shift, and the “end of localhost” thesis* Why Daytona pivoted from human dev environments to AI sandboxes* Why agents need composable computers instead of disposable code execution boxes* The New Year's Eve MVP that customers chased API keys for* Why Daytona chose bare metal, stateful snapshots, and its own scheduler* How Daytona spins up one sandbox in ~60ms and 50,000 sandboxes in ~75 seconds* Why Daytona's biggest customer runs ~850,000 sandboxes a day* How RL/eval workloads create zero-to-100,000 CPU spikes* Why RL workloads went from 0% to roughly 50% of Daytona usage* Why customers compare Daytona against EKS/GKS and say they're “never going back”* Why every AI agent may need a computer, including Windows and macOS environments* The Apple licensing constraints that make macOS sandboxes hard* Why CLI gives agents more power than MCP* How open source helps agents integrate Daytona* Why agent-generated PRs may break today's CI/CD assumptions* Why AI SaaS companies reselling tokens may face a cold shower* Why the AI cloud may look more like Stripe than AWSIvan Burazin* LinkedIn: https://www.linkedin.com/in/ivanburazin* X: https://x.com/ivanburazinDaytona* Website: https://www.daytona.io* X: https://x.com/daytonaioTimestamps* 00:00:00 Hook* 00:01:12 Introduction* 00:03:15 CodeAnywhere, Shift, and the end of localhost* 00:05:58 What Daytona is: composable computers for AI agents* 00:08:07 The pivot from dev environments to AI sandboxes* 00:10:17 The New Year's Eve MVP and customers begging for API keys* 00:12:56 Bare metal, stateful sandboxes, and Daytona's scheduler* 00:17:28 60ms startup, 50,000 sandboxes, and 850K daily runs* 00:21:53 Spiky RL/eval workloads and the new agent infra problem* 00:28:12 RL workloads, Kubernetes pain, and dynamic resizing* 00:33:31 Why every AI agent needs a computer* 00:38:48 macOS sandboxes and Apple's licensing problem* 00:44:28 Why CLI may matter more than MCP* 00:48:11 Open source, GitHub stars, and agent integration* 00:53:11 Git, CI/CD, and agent collaboration bottlenecks* 00:58:15 Founder life and building a 25-person infra company* 01:02:44 AI SaaS, token resale, and API-first business models* 01:06:10 GPU sandboxes, data centers, and compute growth* 01:09:48 Why the AI cloud may look more like Stripe than AWS* 01:11:26 Closing thoughtsTranscriptIntroduction: Daytona, CodeAnywhere, and the End of LocalhostSwyx [00:00:02]: Okay, we're in the studio with Ivan Burazin, CEO of Daytona. Welcome.Ivan [00:00:07]: Thanks for having me, man.Swyx [00:00:08]: Ivan, you and I go back.Ivan [00:00:10]: Way back.Swyx [00:00:11]: How I don't even know how, you found, did you reach out or, for Shift.Ivan [00:00:17]: I reached out to you. The reason was you - we were just - we were thinking about I was one of the co-founders of CodeAnywhere, the first browser-based IDE, and so we were thinking a long time of, localhost should die. And you had this article.Swyx [00:00:29]: End of localhost.Ivan [00:00:30]: Then I reached out to you because of that, and then we talked, and I was actually at a different job and learning about I was the head of, developer experience, and you were quite well-versed in that, and I actually reached out to you, among other people, how do we go about that? What are the key things and whatnot at this point in time? And you were nice enough to take the call, and I remember I was late on your call with you.Swyx [00:00:51]: I don't remember.Ivan [00:00:52]: I remember because I was with my then I'm thinking of a girlfriend or wife at that point in time, I'm not sure. It's the same person, so that's great, and I was late ‘cause we were, in, Italy on, vacation, and then I was late for something. I felt so bad, and you were so nice to be, good about.Swyx [00:01:10]: The reason I'm nice is because I'm also late to other people, so it's like, who's, who's without sin here, yeah, so I have to, for those who don't know, InfoBip Shift, there's this whole thing that, you did in the past, and, and that was basically one of the inspirations for me starting AI Engineer, which is like, I have to thank you for giving me that push to be like, “Oh, you can, you can build and sell conferences?”Ivan [00:01:34]: I remember you asked you asked me at the beginning to give me advisory shares, and I was so focused on what we were doing, I said no, and I should've took the advisory shares. So I'm sorry, dude. But anyway.Swyx [00:01:43]: We're not, we're not venture backed.Ivan [00:01:44]: No, it doesn't matter.Swyx [00:01:45]: It's Yeah, anyway, so I think what's impressive about you is that CodeAnywhere is the thing that you've been trying to build, and, you kind of put it on hold and then came back after InfoBip. Just give us the story, do you - the story and the origin story, going into Daytona.From CodeAnywhere and Shift to DaytonaIvan [00:02:05]: Sure. Like, really way back, me and my co-founder have been together. I say this, I've said this multiple times, it's like we were married and divorced and married. Some people actually ask me is my co-founder my partner. they thought it literally. It's not literally, but we have done multiple companies together, and to your point, we had this shift where we went from the CodeAnywhere to the conference called Shift, and then back to, Daytona. We originally started stacking servers, doing like virtualization in the early 2000s and, routers and doing basically all these things, at a foundational level, and that was a services company which we sold to focus on what my co-founder actually invented, which was the very first browser-based IDE, right, I say the first. Before us was actually Heroku. They did it for a very short time until they became Heroku. But outside of them, we were the only one, and it was called.Swyx [00:02:55]: There was Cloud9.Ivan [00:02:57]: Cloud9 came out slightly after us. There was Replit, which came out when we stopped doing it, Replit came out, and they have been successful since then, which is great. There was Nitrous.io. There was quite a few that existed at the time, but it was like too early. But the interesting part is that we, at that point in time, because there was no VS Code, there was no Kubernetes, and Docker had just started when we Or I'm not sure if it was even public at that point in time. And so we had to build everything to the whole stack ourselves and that was the key learning that we brought into and that we've been using in Daytona today. So it was super early. There's about 3 million people used CodeAnywhere. It was slightly, it was angel-backed more than venture-backed. We ended up paying everyone back because it didn't have that sort of scale. But, three years ago, we started something similar with Daytona, which is not what we are today, but it was automating dev environments for human engineers, the basically the underlying stack of CodeAnywhere. And then we did a hard pivot last January to sandboxes. And so here we are.Swyx [00:04:01]: Historic pivot, yeah, and, it's one of those things where, I had independently invested in CodeAnywhere, but also in E2B, and then both of you pivoted into the same thing, and I'm like, “F**k.”Ivan [00:04:12]: You invested, you invested in Daytona. You invested in Daytona. But you were the first If we had not got your check, we wouldn't have done it.Swyx [00:04:18]: No way.Ivan [00:04:19]: No, it was like, “We have to get him on board first,” and you were that kicker that we, that got us off the ground.Swyx [00:04:23]: No, because you were putting me on your pitch deck, man. I was like, “Man, this is like a good trip if I don't invest.”Ivan [00:04:29]: That's because it was your quote. It's like we.Swyx [00:04:30]: Yeah. It's the end of localhost.Ivan [00:04:31]: Did a bunch of research about end of localhost and who was interested in that,.Swyx [00:04:34]: No, that's like, I put, I wrote that blog post, and every single company in that field reached out to me, and then every VC who was receiving those pitches then also had to call me and, talk it, talk through it with me.Ivan [00:04:47]: It's finally happening though.Swyx [00:04:48]: It was really super interesting.Ivan [00:04:48]: It's finally happening.Swyx [00:04:49]: It's finally happening.Ivan [00:04:49]: Yeah, it's finally.Swyx [00:04:49]: It's finally happening, with maybe sort of non-human users. Yeah, so what is Daytona today? Let's get like a quick description. I'm wearing the shirt.What Daytona Is Today: Composable Computers for AI AgentsIvan [00:04:58]: You're wearing the shirt. Yes,.Swyx [00:04:59]: It says, I think your branding is very good. Like, it's very consistent. It runs AI code. Like, it cannot be simpler.Ivan [00:05:05]: Exactly, but we're gonna probably have to change that.Swyx [00:05:07]: Oh, s**t.Ivan [00:05:07]: It's also a subset of what we do. Unfortunately, we really love this, Run AI Code is super simple. People interpret it different ways. I think we've given out 5,000, 6,000 of these shirts. People wear them with pride because it doesn't really market about us.Swyx [00:05:21]: Yeah, Daytona's on the back.Ivan [00:05:22]: It markets the back. It markets to the person itself, so I think we did a really good job on that one. But it is also a subset of what we do, because people, when they think about Run AI Code, they just think about these small, let's call it isolates, code execution boxes that, you send some code, you get an output. Whereas what Daytona is today is essentially composable computers for AI agents. It is, the market calls them sandboxes which can be misleading.Swyx [00:05:44]: All these things. All these things on.Ivan [00:05:45]: Yeah, exactly, ‘cause it can be misleading ‘cause people usually think about sandboxes as a demo or a test environment versus a production-grade environment. But what Daytona does, if you think of the laptop that you have in front of you or the computer that's over there, or, my wife is an architect, so she has like a Windows with a 3D graphics card inside to do 3D rendering. Like, as humans, we have different computers or different compositions of computers. And our belief is strongly that agents today and going forward will need all these different compositions of computers to do different types of tasks. And so we offer that basically through an API.Swyx [00:06:19]: Yeah, to give people - I'm trying to sort of front-load all the aha moments or the wow moments so that people can, stay engaged and click like and subscribe. the market is exploding, right? Like, you have been reporting 74% month-on-month growth, and it also, it's just been growing for a while. Like, it's been going like this. And every single - It's not just you guys. It's every single.Ivan [00:06:41]: Everyone, yeah.Swyx [00:06:42]: Sort of, compute provider. I don't know if you agree with me saying compute provider or not.Ivan [00:06:48]: It's fine.Swyx [00:06:48]: Yeah. So like organically PLG-driven growth, but also enterprise is doing super well, I think I wanna rewind to January of last year when you did the pivot. Like, so you obviously called this market early, and you were positioned for it, and you are now one of the market leaders. But what was the insight that made you do the pivot?The Pivot: From Human Dev Environments to Agent SandboxesIvan [00:07:06]: The insight that made us do this pivot is the quarter before that, so end of 2024, when we had - Basically, we did a demo with - I don't I think we discussed this as well, Devin was not public. You actually gave me access to Devin at that time. So Devin.Swyx [00:07:25]: I did?Ivan [00:07:26]: Yeah, you gave me access.Swyx [00:07:26]: I don't think I was supposed.Ivan [00:07:27]: Yeah, exactly.Swyx [00:07:28]: Yeah, I.Ivan [00:07:28]: So it doesn't matter. You.Swyx [00:07:29]: Yeah. I gave like three friends access.Ivan [00:07:31]: Yeah, or it was a call and you showed it to me. It doesn't matter. but OpenDevin was available, which is now called OpenHands. And so we're like, “Oh, this seems to be a thing. This is not public. Let's take our for human automation of dev environments and take, OpenDevin and launch that as a SaaS.” And we did that. Not very many people signed up and used it, but a lot of people reached out that were building agents, and they were like, “Hey, my agent needs a compute sandbox runtime,” whatever you wanna call it. I forgot what it was called at that point. And then we were like, “Oh, amazing. This is a new market. Here is our infrastructure. Here's our product, and go.” And what we found really fast, soon, was that people did not like what we had built. It didn't work. And I remember talking to people at the beginning when we're doing this, the sandbox we're building for agents. People were like, “Oh, why is it different? It's the same thing. We have like EC2, we have VMs, we have all these things.” But we saw that everyone we gave it to, it was like 20, 30 people, they all said, “No.” Like, “This is not what we need. This sort of breaks.” And basically, me and my co-founder not knowing a lot about - ‘cause we're infra people. We're not AI people. So I basically took it upon myself to like watch every single podcast that exists, including all of, all of these and all that, and sort of get up to date, read all the blogs, like get, understand what's going on.Swyx [00:08:45]: Do you wanna shout out who else was useful, just in case people are also looking.Ivan [00:08:49]: Generally we -, I looked at There's a few of podcast, different segments and different types. So there's you guys, No Priors, Bill Gurley's was great while.Swyx [00:09:04]: VG2, yeah.Ivan [00:09:05]: Yeah, while it was around. So there's a few. 20VC is interesting from a different dynamic, and some are different dynamic. But there was, also Red Points.Swyx [00:09:14]: We're not really about the compute market.Ivan [00:09:15]: It was also already - Sorry?Swyx [00:09:16]: You're, you want - You're looking at the agent infra market.Ivan [00:09:19]: I was looking at the agent market and the AI market in general and sort of understanding who are the players, what the perception, and how that goes. And like obviously you complement this with like going to conferences, going to events, going to meetups, reading white papers, like doing all the things that you have to do to understand what's happening. And so when we figured, when we sort of had an idea of what we had to build, literally over the New Year's Eve, literally on New Year's Eve, I half vibe coded the first MVP, first minimal viable product of what Daytona is today. And I went to sleep at like 3:00 AM or something like that. I was doing - I just put my like baby daughter and wife to sleep and, Happy New Year's, and go back to just, doing this. And I sent it to my co-founder, my CTO, and he saw it in the morning. He's like, “This is absolute garbage.” “Do not show this to anybody at all, but the idea is good.” And so he took two weeks, and he rebuilt it.Swyx [00:10:09]: Did it like look like that? Listen, I - It was rough idea.Ivan [00:10:12]: Oh, not even, not even close. Like it was it was way worse. But it was like a very - It was a simplistic view of what it should be. Like, it worked, but it was not ideal. And so he went, we went down the whole, which is his job as CTO, to go, and he came back with this version. We then called all the people that had said like, “This is garbage,” a quarter ago. And we set up these calls, and we gave it to - We just demoed it to everyone. And all the calls went long, every single one. They were 15-minute calls, and they all went to like 25, 30 minutes or whatnot. And everyone said, “We need, we want access.” There was no login, just an API key, ‘cause it was just a beta or an alpha. And they said, “Oh, we want access.” And we're like, “Sure, yeah. Okay, thank you very much.” But after like the next day, if we'd not send it, every single one, like every call that we did, everyone came back, “Where is my API key?” Like everyone wanted it. We're like, “S**t.” Like this is it. Like I've never felt So one, the understanding to your point was like most people thought it was the same infrastructure for humans and agents. We understood a quarter ago it's not. We just didn't know what was the right primitive. And then when we came, and we can talk about what that is, and we gave it to these people, I've never seen, I've never experienced - I've done multiple companies in my life. I've never experienced this, that people literally call you if you do not give them access. Like they want access right now. And so it's like, okay, they don't want this. the thing that they want doesn't seem to exist, or they have not found it, and they really want what we want. And then when we understood that we're onto something, and then when you think about the size of the market, like the market for human engineers and enterprise is a very large market, so think GitLab or whatnot. But the market for every single agent that will exist ever in the future is just like, what is that market? How big is that? And we're like, “We are all in on this.” And so that is where we made sort of the cut between the old product and the new one.Bare Metal, Stateful Sandboxes, and the Lambda + EC2 ModelSwyx [00:12:02]: Yeah. But it wasn't composable at the time?Ivan [00:12:05]: It was very - It was basically just a Linux box that you could change, that you could define number of CPUs, disk, and RAM. Like that is what you could do, but you couldn't have multiple operating systems, you couldn't resize it on the fly, you couldn't add a GPU, you couldn't do like all the things. It was just the, just the first sort of variation of that, yeah.Swyx [00:12:22]: Was it bare metal from the start?Ivan [00:12:24]: It was bare metal from the start. And so the interesting thing that we thought about right away, so our.Swyx [00:12:29]: Which, give people the background, what is the normal path?Ivan [00:12:32]: Yeah, so, basically most providers run this on top of VMs. And also.Swyx [00:12:37]: Firecracker.Ivan [00:12:38]: Yeah, they run on Firecracker and VM. And so we also fire - We can get - We have multiple isolation layers and we can do that. But the common way to do it is that they, one, that the state of the machine, or the hard disk is not part of the sandbox itself. And the other thing is they're not meant to last forever. So most of them are preemptible, like they can There's a time that they can live. And so our thought was when we were going into this is, agents will be like humans in the sense of you don't want your laptop to be shut down until you're done with work. Like, and you want to close the lid and open the lid, it's the same state. So you - Agents would want that, like the pause and come back. They want those two things. But also agents really want speed, right? Can they get it? So when we thought about it's like we need something insanely fast, how to make it fast, how to make it long-running, and stateful. And so those two things, it's like combining a Lambda and an EC2, right? Those two things together. And so we didn't have an idea how others did it, ‘cause we didn't know too that there was a market around this. It was more like, okay, this is what we need, what they need. And we looked at Kubernetes, it wasn't wasn't good enough for that. We looked at Nomad, it didn't enable that. And so our history in rewriting our own scheduler at CodeAnywhere is basically what my CTO came up with. Like, he's like, “Oh, the learnings from there,” and he brought it. And the funny thing is, our third co-founder, when he saw it, he's like, “Dude, what is this? This is like 2008.” Like, we went back in time, and he's like, “Exactly.” And so the reason why Daytona is like super fast, and you see this on benchmarks, is we essentially, we run on bare metal. We have our own scheduler, we use the underlying, disk, CPU, and RAM of the underlying machine, which means your IOPS are insanely fast because there's no, there's no network between an EBS or something like that. But also the snapshot, the point in time, the templates, are also preloaded on the bare metal machines. So when you fire off a sandbox from a template or a snapshot, you're essentially directed to the bare metal machine where that snapshot is based on that NVMe drive, and then it literally just turns on that machine, and it's local. There's no network latency, anything on there. And so that is sort of the specificities that we, when we're thinking from first principles, what a computer would look like for an agent, that is what we came up with, and that's what we created.Benchmarks, 60ms Startup, and 50,000 SandboxesSwyx [00:15:02]: Yeah. I should maybe, I don't know if you endorse this, but there's someone that does compute SDK, you guys do very well on there, with like the TTI, right? I. is this a, is this a is this a relevant benchmark for you guys? I don't know.Ivan [00:15:16]: I don't know, and it changes every day. So today RKL is.Swyx [00:15:18]: I don't know what RKL is. Never heard of it.Ivan [00:15:20]: Yeah. RK, yeah, so it is there.Swyx [00:15:22]: You are, at least a third of the next tier of performance, and then, there's a lot of other better-known names that are very slow to start.Ivan [00:15:31]: Yeah. We've been the number one by far for a long time, and now there's different, there's different definitions also of sandboxes, different isolation patterns, different other things. So RKL runs it literally on the S3, the data, so it's very different, and they spin up a sandbox, spin up a container for that, so it's a different type of thing. So the definition of a sandbox is something that we can all, we all need to get along with. But yeah, we're insanely fast on getting these things, up and running. And so you can see even there that it's a zero point 0.10 to 0.11, so.Swyx [00:16:03]: Close enough. Yeah. what else do you need, right?Ivan [00:16:05]: Yeah. So the benchmarks itself, so, in this, in I don't think the benchmarks equate to market ownership or revenue or anything like that. and I've seen this with multiple benchmarks, not just in sandboxes, but in general benchmarks around.Swyx [00:16:20]: It's table stakes. It's just like.Ivan [00:16:21]: Exactly. But it doesn't hurt.Swyx [00:16:22]: Just roughly check.Ivan [00:16:22]: Like you definitely have to be up there and you have to be competing so that people know that, oh, this is definitely one of the top. Because this is only one dimension of what customers look for. There's other things like how many can you spin up consecutively? There's a feature set, there's support, there's like all different things that people look at, but you definitely have to be there, on the benchmarks.Swyx [00:16:40]: How many people do people spin up consecutively?Ivan [00:16:43]: So we have.Swyx [00:16:43]: Or concurrently, is the Concurrency, right?Ivan [00:16:45]: There's three metrics that we look at. And so one is like time to spin up one, and so our time to spin up one is 60 milliseconds with network latency. So request, spin up, reply, 60, the whole thing, 60 milliseconds. That is one. But if you wanna spin up 50,000 at once, we are now at about 75 seconds. So it takes about 75 seconds to spin up concurrently 50,000. Some others, there's public data around this, like take 2,000 seconds, which is 30 minutes. Like there's different variations of that. And then there is the so it is speed of one, speed of like multiple, and then how many can you consistently have up and running. And so we basically have right now no limit to how much we can add because we basically own our own metal. But the biggest customer of ours does like about 850,000 every single day is sort of where they're, where they're just shy of a million every single day that they're running, we do have a request for half a million concurrent, which is literally half a million CPUs somewhere running. So that's an interesting.Swyx [00:17:44]: They pay by like vCPU seconds.Ivan [00:17:47]: By seconds, yeah.Swyx [00:17:47]: Or whatever. Yeah. Okay, and so and then, and the other thing is, the sleeping and the resuming, ‘cause it's all the stateful resumption of all these things, how, what kind of workload are people putting through this, right? Like how is it Do we measure by gigabytes in memory, gigabytes in storage? I don't In like network attached storage. I, what are the costly ones of, out of all these features?Workload Economics: CPU, RAM, Network, and StorageIvan [00:18:15]: The most expensive thing are CPU.Swyx [00:18:18]: Okay. Yeah, of course.Ivan [00:18:18]: The second one, yeah Then it's RAM, then it's disk. We actually don't charge.Swyx [00:18:22]: Which is snapshotting, right?Ivan [00:18:23]: No, it's actually the, snapshotting's part of it, but basically the size of your hard disk, of your machine. So do you have 10 gigabytes, do you have 20, do you have 50, do you have whatever? And then the transference of that. Right now, currently we don't charge for, network at all at Polychron.Swyx [00:18:37]: Oh, you gotta, yeah, you gotta fix.Ivan [00:18:38]: Yeah. It is very much a it's a larger and larger part of our bill, so we're working around, that part there. Obviously, that is the least, expensive, so the hard disk is the least expensive, so it's basically CPU, RAM, for us network, ‘cause we don't charge the customer, and then hard disk, is how it's split up. But there's also different types of workloads, so we basically split it up into two types of workloads in Daytona. One is what we call background agents or long-running agents. and the other is, basically RLs and evals, which I put sort of together. And so they have very different patterns of usage, and if you look at the usage of a background And I'll just name names of companies, not specifically.Background Agents vs. RL/Evals: Two Usage ShapesSwyx [00:19:21]: Yeah, open, all hands.Ivan [00:19:23]: Yeah. So like a background agent's a Cognition, a Lovable, a like all these things are Harvey. These are all long-running, background agents. And so if you look at their usage patterns, their usage patterns are similar to human, which is like follow the sun. Basically, the usage patterns of that is like noon is probably the highest, and the midnight is the lowest, and then weekends are lower. weekday is higher.Swyx [00:19:42]: Yeah, that's a fun question. How global is it? Is it very US-centric or?Ivan [00:19:46]: The US is a large part, but we have currently, we have Asia, Europe, and the US regions.Swyx [00:19:52]: So it's quite global.Ivan [00:19:53]: Yeah, it's quite global. We have it all over. It's interesting that our I talked to you a bit about this. Our number one city by user.Swyx [00:20:01]: Hmm.Ivan [00:20:02]: Is Singapore.Swyx [00:20:04]: Oh, wow. Amazing.Ivan [00:20:05]: Which is an interesting one, right? Not by revenue, just by just like by individual head count.Swyx [00:20:09]: Really?Ivan [00:20:09]: Just like an interesting thing.Swyx [00:20:10]: Singapore is, Singapore is weirdly high in the adoption charts of AI for the population. It's like an, seven, eight million population. And it's like keeps showing up.Ivan [00:20:20]: No, it's quite interesting. We were quite shocked, and I was like, “Oh, this is interesting.” And also one that's up there.Swyx [00:20:24]: There's a reason I'm doing AI using Singapore. it's because I'm from there.Ivan [00:20:27]: We're there. We're gonna, we're gonna be there as well. and it's interesting that Japan is in the top or like Tokyo's in the top, which is in all the tech cycles it has never been. It has never been, so it's quite interesting that they're.Swyx [00:20:39]: I think the Japanese just love AI. Yeah. It's that, and then it's Brazil. That's it.Ivan [00:20:44]: Brazil has always been in.Swyx [00:20:45]: I think.Ivan [00:20:46]: Even when I look, if you look at like GitHub's data and ask historically with CodeAnywhere, it was always like US, Western Europe, and then you'd have like India, Brazil, China, like that would be there. But like Singapore was not in, specifically Japan was never in sort of that top, that top.Swyx [00:21:01]: Yeah. Weird pockets.Ivan [00:21:01]: Weird. Yeah, so it's very global.Swyx [00:21:02]: Okay, so actually that, but that's helps you to distribute your load through, all time?Ivan [00:21:08]: The interesting thing is like we have those kind of loads, but if you look at the researcher loads, they're quite different. So what they are is like if you give them concurrency of 10,000 or 50,000 or 100,000 CPUs at ARMb, when they fire off a run, it's just 100%. And then it just runs, and then it stops. So it's very, the usage pattern is squares basically, right? And it's also not follow the sun, because people will fire it off at midnight before they go to sleep but then wake up and so it's very unpredictable, so you don't know where that is. So the shapes of the usage are quite different than we have had before. And also what's interesting is when it's sort of a follow the sun, even if you have a high growth company, you can sort of predict your usage patterns and have enough capacity for that, because it's sort of, it grows in a, in a way you can project. When you have companies doing sort of like evals and RL, they're super spiky. So they're gonna come in, it's like, “We're gonna use nothing, then can we have 100,000?” Right? And then go back down. And then 100,000, go back down. So it's very different, right? And.Swyx [00:22:09]: Do you want to lock them into commits so.Ivan [00:22:11]: Yeah, we do.Swyx [00:22:12]: Yeah, okay.Ivan [00:22:12]: We so we have to lock them into some sort of commits to have that capacity, because we have to have, basically we have to have the capacity for peak. Right? And so right now, Daytona's mean utilization is 15%, 1-5.Swyx [00:22:25]: Oh my God.Ivan [00:22:26]: So it's very low.Swyx [00:22:27]: Because it's very spiky.Ivan [00:22:27]: It's very spiky, but we get up to 90%. so we have these things. And so what we're, what we're looking at right now as a company is similar to Cloudflare where you can like geo move things around, but that works really well for basically the background agent where it's follow the sun. But this, it's not. Like it's a very different shape. Obviously with scale you figure these things out, but that's an interesting new problem that we have, as a compute provider in the agent space. And when we were doing the conference recently, and so we talked to like Nikita from Neon and.Swyx [00:22:57]: I should bring it up.Ivan [00:22:58]: Parag from Parallel and whatnot, everyone has the same problem. Whereas the usage is super spiky, and this is something that has not happened before, that you have these types of like it was always, it the amplitudes were not this high, right? So it's quite interesting use case and problem solve.Compute Conference and Spiky Agent InfrastructureSwyx [00:23:12]: Yeah, I don't know if we're gonna bring this up again, but let's just talk about the conference, you had like 1,000 something people at the Warriors game, at the Sorry, where is it? What's.Ivan [00:23:22]: Chase Center.Swyx [00:23:23]: Chase Center.Ivan [00:23:23]: Chase Center.Swyx [00:23:24]: I went. It was, it was very impressive. Obviously, you can, how to throw a conference, what did you learn? you put, you pulled together all these impressive names.Ivan [00:23:33]: What I.Swyx [00:23:34]: What were you looking for?Ivan [00:23:35]: My thesis behind the Compute Conference was let's bring together people that are building infrastructure for AI agents. Because when I think of what we're building, it is the agent is the primary user, what are the ergonomics and usage patterns of agents, and so we can do that. And what I found, this was a theory, it wasn't proven, is that we all have these problems, as I touched onto. And I was, as I was talking on stage, it was like we all have the same underlying infra problems, which is this spiky workloads, unpredictable workloads that we've never had before, in human, compute or human infrastructure. And it's, again, it's the same when I was talking to Parag or when I was talking.Swyx [00:24:20]: Lynn. Nikita.Ivan [00:24:21]: Lynn, Nikita. Lynn especially, I was talking to her the other day as well. Like the It is a very interesting type of problem to solve because I can touch on Cloudflare because there's a lot of like talk about that recently as to how they solve that, which is they have a bunch of geos, and basically, as users work in different places, and depending on your tier, they can move you around the geos. And so that how, that's how they get the higher utilization. But you can sort of predict these, and it's If it's something in You'll rarely get a spike that is 10 orders of magnitude. Like you'll get a like let's say one of your customers has some like an exponential curve. What is that to I'm using Cloudflare as an example. 10%, 20%, whatever it is. I don't, I don't have this data, I'm just assessing. It's surely not 10x, right? It's surely not something there. And so how do you go out and solve this problem? And we're all solving this in different ways. So we have.Swyx [00:25:11]: She also has the same thing.Ivan [00:25:12]: Yeah, I know specifically that like Neon had that issue as well. Like how are we solving these spiky loads and things like that ‘cause we talked about it. And so the interesting thing for me to actually internalize was, yes, everyone that's building for agents first is going through this, and we're all solving similar problems, which is quite.Swyx [00:25:28]: Let me let me double-click on this. Okay. So for example, Neon, I happen to know that they're very sort of S3 oriented, right? so they're just like fully bet on S3. And you get to benefit from S3's distribution and infrastructure. So I would imagine that Neon doesn't have to care, whereas Lynn maybe has to care a bit more because obviously she's doing GPU inference. And, for listeners, we did an episode with her, one and a half years ago. And you have to care. But like, right?Ivan [00:25:54]: Parag cares for sure, and Nikita.Swyx [00:25:58]: And Parag is C of, Parallel.Ivan [00:25:59]: Parallel, yeah.Swyx [00:26:00]: Former CTO of Twitter.Ivan [00:26:01]: Twitter, yeah.Swyx [00:26:02]: They are the search.Ivan [00:26:03]: Yeah, they're search, yeah.Swyx [00:26:03]: I You and I know but the listeners don't know.Ivan [00:26:08]: Yeah, we can put it down in the screen, and so ‘cause we, when we were talking.Swyx [00:26:11]: I'll put it up on the, on the screen.Ivan [00:26:12]: Yeah, right.Swyx [00:26:12]: People can look it up if they need.Ivan [00:26:14]: Look it up. And, yes, but they still have CPU and RAM, allocation that you have to have up and running. And so CPU and RAM, you have to allocate that and have that ready. And so there's basically two ways to do it. One is you either over-provision and you can handle the bursts, or two, you basically have, I don't know if this is a term, just-in-time compute, which is like as your load becomes, as your usage comes in, you can fire off requests for VMs or bare metals at other cloud providers and then get them up and running.Swyx [00:26:43]: This is if you go above 100%, right?Ivan [00:26:45]: Yeah, this is.Swyx [00:26:46]: Like your overflow.Ivan [00:26:46]: If your overflow, like spillage or whatever you do.Swyx [00:26:48]: You probably lose money on it, but it doesn't matter, right?Ivan [00:26:50]: It, not Well, you might, you might not That is a more cost-effective way to do it but it's a slower way to do it. Because basically what you have to do is you have to like queue your requests, spin up these just-in-time compute, get it all ready, provision it, and then get your workload there. And so if the time isn't important that much, that's fine, and you can do that. But if your customer, and especially for, let's say, the RL training runs, the reason why a lot of people come to us is because GPUs are more expensive than CPUs, right? So you want your GPU running at, what, 100% the entire time. And so when you're running runs on CPUs, when the when the CPU cycle is like down and spinning up the next one, you want that to be instantaneous so that your GPU doesn't go down, right? And if you then have to like go out and provision machines, you're essentially telling the GPU that it has to wait, and that's incurring our cost. So there's things that you have to try to solve for there.RL Workloads, Declarative Images, and Kubernetes ReplacementSwyx [00:27:43]: Yeah, let's talk about the different workload, right? You said that, what was it? A few months ago, you had zero RL workload and now it's 50%.Ivan [00:27:52]: It will be this one, 50%, yeah.Swyx [00:27:54]: Let's talk about how different it is, right? Like I imagine, for example, a lot less dynamic code generation of like arbitrary code. Like here, it's probably all the same code. You're just doing parallel runs or something, I don't know.Ivan [00:28:05]: Yeah. So you'll have multiple Depends on the like for each run, you'll have a snapshot. And they, for the most part, they actually do use our declarative image builder, which is like, “Oh, we, the agent wants these dependencies, these env vars.”Swyx [00:28:17]: These ones, yeah.Ivan [00:28:18]: Yeah, the declarative image builder, it.Swyx [00:28:20]: Which is a very modal like thing that they.Ivan [00:28:22]: Yeah. And so we build it on the fly and then we propagate that snapshot, and you can spin up as many sandboxes as you want against that snapshot. And then if you have to do changes, the model can, or like it could be also be automated. It's like, “Oh, now for the next run, we need to install these things or remove these things or whatever to get, a task done,” and then it goes off and runs that. So yes, that is something that it seems that they prefer. The number one reason I found, or should I say, let's take a step back. What we are competing against in that environment is essentially managed Kubernetes. So EKS, GKE, whatever. That is what the vast majority run on. And anyone that has tried Daytona versus GKE, EKS is like, “I'm never going back.” That has always been. There's a few reasons. One is the ergonomics. So if you have, if you're using Kubernetes to spin that up, you have to essentially manage the interface interactions with that. Daytona, although as a compute provider, it's more akin to a Twilio and Stripe from a consumption perspective than it is an AWS. Like you have an API, an SDK, it's quite like easy and seamless to get these things up and running, that's one. The other is the speed to which we spin up, which we mentioned earlier, which is much faster, and the scale to which we can go to. We haven't got into features, but an interesting feature is that it's very hard to OOM, or out of memory, our sandboxes, because we can dynamically on the fly.Swyx [00:29:48]: Resize.Ivan [00:29:49]: Resize, which is like impossible on almost any other thing. There are some technologies that enable you to do that, but it's like a very hard thing. And so we actually saw this when, the Terminal Revenge team is, brought us actually. So thank you, Alex and the team, that brought us into this whole space.Swyx [00:30:05]: It's just very rare that, a framework would just say, “Guys, just use Daytona.”Ivan [00:30:11]: Yeah, I think it says it somewhere. Yeah.Swyx [00:30:13]: Yeah. I was like, “What is this?”Ivan [00:30:15]: There's all, there's multiple there, but they also mention a few other places. and so Daytona specifically-We have, the, just jumping on themes here We, I don't know where it says Data Center.Swyx [00:30:27]: I, there.Ivan [00:30:27]: Doesn't matter.Swyx [00:30:28]: There's a very strong recommendation, which is, very unusual. Which is, it's.Ivan [00:30:33]: We do not pay them for this, just.Swyx [00:30:34]: I know, yeah. They just like you.Ivan [00:30:35]: Yeah, they like us. yeah, and also a thing, so, Data Center has multiple isolation sets underneath. The customer doesn't have to know what they are. But basically we have Docker, which is a container, that's hardened with Sysbox. So it's Docker's, isolation that is a security equivalent to a VM, but it's still a container. And that is the default, and they, especially in these training workloads, really like that as an interface to be able to use just a basic Docker container, and we enable Docker and Docker. Which for these RL runs, if you need to do a Docker compose or Kubernetes, you can spin up a K3S inside of these things, which unlocks a huge amount of workloads that you can do that you cannot do on other providers. So just on that part is much more interesting. And so we went that, through that. We showed them that we could do that, and they enjoyed that quite a bit. They being the general venture people.Swyx [00:31:28]: Those people, yeah.Ivan [00:31:29]: And Harbor people.Swyx [00:31:29]: Harbor people, do are they, are they a company yet?Ivan [00:31:33]: As far, I do not know.Customer Pull, Slack Connect, and the Computer Use BetSwyx [00:31:35]: Okay. All right. Yeah. It's like super obvious that like, there's a lot of excitement and success around these things, okay, so yeah, tell us more, right? Like, this is an exploding workload, Harbor adopted you, which helped speed things along. But what are you learning as this new workload comes online?Ivan [00:31:53]: There's a couple things that we learned, which we chat about in the beginning. We, and this has led our story, as we mentioned, we like talked to a lot of customers along the way, and we add more features and more tool sets as we talk to customers. And it's interesting that And I think it's that the ecosystem is so small and/or the models get smarter, where when we see one user come with a request, we know it goes on a roadmap if like three to five customers come with the same request in that week. It's like very bizarre. It happens so many times, which is.Swyx [00:32:27]: Because they're all friends.Ivan [00:32:28]: Sorry?Swyx [00:32:28]: They all, they're all friends. They're all in the same group chat.Ivan [00:32:30]: Yeah, probably, yeah. ‘Cause and they're like, “Oh, can you do this?” And I'm like, “Okay, this is interesting. We'll put it on a feature request.” And then the next one's like, “Oh, can you do this?” “Okay.” It's all the same, right? It's always the same. And so what we try to do, and I personally try to do, I try to be on as many call, quote-unquote “sales calls” I can. I'm in every Slack channel. We literally have about 1,000 Slack Connect channels, something like that. It's an interesting, there's so many interesting things you find out when you have all the Slack channels. You can also see where people, transfer between companies. You see leave Slack channel, enter Slack channel. It's an interesting thing. Also, just I digress, I feel that Slack Connect is literally LinkedIn what it should be. You have a list.Swyx [00:33:08]: LinkedIn charges you to, use your own connections, but Slack doesn't, right? Slack is like, do it for free. It's more lock-in. It's great.Ivan [00:33:15]: Yeah. It's amazing. Yeah. It's one of the reasons.Swyx [00:33:17]: You're gonna pay Slack for life.Ivan [00:33:18]: Exactly. You're there for life. So that's interesting. And so one of the things, the newer things we were talking about earlier is we made a big bet and put a lot of investment on computer use. that is not seen publicly the light of day. We haven't GA'd that yet, but we have.Swyx [00:33:32]: Is there a thing I can pull up?Ivan [00:33:33]: There is computer use there. It's right up a bit.Swyx [00:33:36]: Oh, yeah. Okay.Ivan [00:33:38]: What we have, what we talked about and what we've seen publicly is there's this theme now about, the human emulator where And Elon from XAI has talked about this publicly, and if you think about the models today, they're actually quite sophisticated and they can do a lot of work, but they still don't have access to all the tools. Like, I'm a strong believer that the most efficient way for an agent to work is essentially headless or through, terminal or whatnot. But if we, if we look at knowledge work in general, there's about 100 million knowledge workers in the US, about a billion in the world, and knowledge workers, and the salaries of them aggregate to 10 trillion in the US 50 trillion worldwide.Swyx [00:34:24]: Wow.Ivan [00:34:25]: Something like that. And if we look at, the five most important sectors of that, so like healthcare and government and financial services and whatnot, that's about 56% of that. So let's say it's about half of that. So in the US it's about 25 trillion, and most of them, most of that work is actually still locked into legacy apps inside of Windows, which is not going anywhere for a very long time. Like, people just won't invest in that. How much of it? our assumption is the following: if, in the RPA market, which is similar market, well, not the same 25% of, these white collar, workers', work is automated. If an agent is more sophisticated, can go through more runs, figure stuff out, let's say it's, 40%, right? And so if you take 40% of that, you get to essentially, $10 trillion a year.Swyx [00:35:17]: That's a TAM.Ivan [00:35:18]: That is a that is a TAM. So that's the TAM of the models, right? That's not our, essentially ours. But you get to that size, and to be able to do that, you essentially have to give agents these computers with the legacy. So computer use, either Mac or Windows or Linux. Linux we also obviously have and others have. But Windows specifically is something very new, and the only option right now is an EC2 with, Windows or on Azure. Both of them take anywhere from three to five minutes to spin up. We've created an actual sandbox, so it's a second instead of milliseconds, but you have, point in time snapshots, you have, forking, you have all the things that you have from a sandbox, but essentially enables you to hopefully unlock all this value. And so that's been our big push and bet, but we've sort of, kept our ear to the ground. What is sort of the next things in the market?RPA Returns: Why Agents Still Need ComputersSwyx [00:36:06]: Yeah, knowledge work, and building, and sort of RPA, the next wave of RPA. I got very excited about RPA kind of during COVID times. The UI path was IPO-ing. And it was, a very hot Isn't it, Eastern European?Ivan [00:36:20]: It is, Romanian.Swyx [00:36:21]: Romanian?Yeah, it might be the only Romanian, big unicorn okay, yeah. This I don't I don't, I don't have like a I think there's, I think there's a stage being set for the resurgence of RPA, ‘cause everyone understands that, yeah, no one wants to deal with these shitty apps and no one's gonna rewrite them. Like, you just have to do, a remote operation and programmatic operation of them.Ivan [00:36:45]: If you wanna unlock it, my own setup was basically the following. So I was doing a board deck recently, last month, whatever, and I'm like, “Okay, let's just, let's just do automated.” So, all our data's in, ClickHouse and PostHog and QuickBooks, where everyone else's is, and I'm basically, connected that all to, my Cloud code, like go off and go Cloud code whatever. Go off and, here's the integrations, go do that. It pulled out the first report, which was great. It connected to Brex and all these things, pulled it, which was great, and then I say, “Okay, now pull out this, and this,” and I kept getting, really well McKinsey-style design reports, but the data said partial data. all the missing data, partial data. Like, it can't access all the things, and I got so frustrated, and so I got, I got, my Mac Mini virtual sandbox with OpenClaw. I gave it its own account in our company, and then I went to all these services and created a read-only account, so literally like an intern in your company. And so I would say, “Now go and do this report,” and it would get the same, or like, “I can't via the MCP or the API or whatever. I can't get all the information.” I'm like, “Go log in.” And it will log into the website, then go in, export the data. It'll export the data and do the thing end to end. So even for things that have today APIs, not all of it is exposed, and I to get value, I get immense value right now, but it has to be a computer usage, unfortunately, and so I spend a bunch of tokens just on that, but I get the job done. And so if even a startup like ours, and using all the hottest tools, still needs a computer agent what hope does, Goldman have to have a headless, right?Swyx [00:38:22]: Yeah, what a - Why isn't Microsoft doing this?Ivan [00:38:27]: I'm pretty sure, Satya had a post yesterday.Swyx [00:38:29]: Oh, okay. I see.Ivan [00:38:29]: Which was like, “Every agent needs a computer.”Swyx [00:38:31]: I see, I see.Ivan [00:38:32]: So they have launched something recently.Swyx [00:38:34]: Yeah, they have Microsoft Power Automate, I'm sure, I'm sure, they're gonna have their version.macOS Sandboxes, Apple Constraints, and the Windows OpportunityIvan [00:38:39]: Version of that, yeah.Swyx [00:38:39]: You're gonna try to do yours, and it - I always know there's always demand for Mac, but I know it's, tricky to host, macOS sandboxes.Ivan [00:38:49]: We will have macOS sandboxes fairly soon. The problem with macOS, OS sandboxes is, I'm deep in this, I don't know how much interesting is.Swyx [00:38:55]: No, it's.Ivan [00:38:56]: MacOS has this problem.Swyx [00:38:57]: It's a licensing thing, right?Ivan [00:38:58]: Licensing thing. So one, you're allowed to run only two parallel VMs per machine, so that's one. Two, you can only license to a different user every 24 hours. So if you come in and theoretically, if I wanna charge you per second and I charge you one second, I have to have it idle for the rest of the day. I can't have anyone else doing that. So the pricing will be different in the sense that I will have to - we would have to charge for 24 hours, and that's not even, that's not even the most difficult thing. But the, thing above that is, from a security perspective, they enable you to do memory snapshot, pause, resume, but only on the same physical drive, physical machine. And so what you can do in, Windows world or Linux world is that I can move in the background, your snapshot from one to the other and manage load, right? Here, if you wanna do that, you essentially have to have your.Swyx [00:39:49]: Yeah, snapshots. Yeah.Ivan [00:39:50]: Your.Swyx [00:39:51]: It's like.Ivan [00:39:51]: Physical machine.Swyx [00:39:52]: You can't break it up.Ivan [00:39:53]: You can't, you can't move things around that, and all of that is, that part is, from a security standpoint, if it is written. Like, I understand the security aspect of that, but it disables you from doing these agentic, like really scalable agentic workloads.Swyx [00:40:08]: You need to do a vibe-coded, clean room implementation on macOS that you can then - That's like Clean OS or something. I don't know.Ivan [00:40:17]: So. We have.Swyx [00:40:18]: ‘cause like Linux was originally like a clean room rewrite of Unix.Ivan [00:40:21]: Okay. Yeah.Swyx [00:40:21]: Or something like that, right? Like same thing to macOS. Someone needs to do it.Ivan [00:40:25]: Someone will do that, and someone will have some long-running agents for a few days to figure this stuff out. But yeah. So definitely we - we're really close to offering something ‘cause people do want it, but the pricing will be different, and the feature set will be sort of stringent.Swyx [00:40:38]: Yeah, nobody's gonna use this. like, the labs, the labs will because they want to automate macOS.Ivan [00:40:42]: They have to do RL. They have to do RL again. But even if you The - So the point is with the RL part, if you, if you do RL on macOS, then the next iteration of the model comes out, it will be able to use these tools significantly. Then you actually need to run those, that somewhere. So you're gonna have to have that, later on. And from, if anyone at Apple is listening, I very much feel that they are shooting themselves in the foot of the scale of the revenue of compute or licensing they could get if they would just enable a concurrency model similar to what you can get on a Windows and a, and Linux.Swyx [00:41:17]: Yeah. Yeah. And I'm sure they've heard this before. They just don't care. Yeah, it's And maybe they will change their mind with the new CEO.Ivan [00:41:24]: Yeah. We'll see.Swyx [00:41:25]: We'll see.Ivan [00:41:25]: High hopes.Swyx [00:41:26]: High hopes.Ivan [00:41:26]: High hopes.Swyx [00:41:27]: Okay. But I, it's very clear the market opportunity is huge in Windows, and you can go for a long time on just Windows, but your customers are gonna want both. and I think, it is interesting to me that, this is the sort of God application of agents, right? Like, I don't It was - How big was OpenClaw for you guys? Like, was it, was there, a significant bump.OpenClaw, Agent Labs, and the B2B2C Sandbox MarketIvan [00:41:54]: Not for us because we.Swyx [00:41:54]: Because you already.Ivan [00:41:55]: We're kind of positioned differently. Whereas although it's completely PLG and we have individual developers that use it, most of the users that use Daytona are sort of a B2B2C. Sort of it's either B2B or B2B2C. So, in the researcher world, it's B2B, so you're selling to, labs and neo labs and things like that. But on the long-running agents, it's mostly, from a scale revenue perspective, it's mostly B2B2C, where you have a app layer agent that uses you at a big scale.Swyx [00:42:26]: Like a Manus. Yeah.Ivan [00:42:28]: Like a Manus Lovable type of thing.Swyx [00:42:31]: Yeah. I think that's the question of, well how, um-Uh, yeah, B2B to C is basically to me what I've been calling an agent lab, which is kind of like you're not in a model lab, but you're making a very good wrapper that is a platform that other people can sign up so they don't have to code those things. Yeah, it sound, it sounds like a much better market than the direct OpenClaw market.Ivan [00:42:56]: I've like - We I've done multiple things. So the CodeAnywhere's part of our career path R in the calendar, was very much an end user developer product. And so that is great. It You can get a lot of developer love, and I feel that we do as a company have a bunch of developer love. But it's a different type, where it's people building these things. Again, it's more akin to a Twilio because you don't really run - As a person, you wouldn't run Twilio. I don't know how many people remember. It was like ask your developer billboard and whatnot. And people really love Twilio, but they only used it inside of like, “Oh, I'm building this app or service for thing.” And so we're very much directly to that. And you also know that I used to work for a competitor for Twilio, so it's kind of ingrained, in my DNA.Swyx [00:43:35]: People don't know InfoBip is that big.Ivan [00:43:38]: Yeah, it's.Swyx [00:43:39]: Because.Ivan [00:43:40]: It's a billion euro.Swyx [00:43:40]: They're all American. They're like, “Whatever's in Europe doesn't matter to me.” But like it's the, it's the same size or bigger? Same size?Ivan [00:43:46]: It's about half the size.Swyx [00:43:47]: Half the size?Ivan [00:43:48]: Yeah, about half the size.Swyx [00:43:48]: It's like, yeah.Ivan [00:43:48]: Still huge. Multiple billions a year. Yes.Swyx [00:43:51]: That's crazy.Ivan [00:43:51]: Exactly, and so that - These are like really interesting and large revenue-generating, very sticky businesses. Whereas when you're selling to the - When your focus is the end developer, it is a very hard sell because they're very price sensitive, very price conscious, very around that. And there's very It's very hard to scale. Your cap is the number of people that are willing to spin up - First of all, wanna spin that up, and then spin up multiple of these. Whereas if you're in the enterprise one, like we know everyone's talking about like how many tokens they're spending, I'm spending. Like a lot of companies today are like, “If this is our company, spend as much as you can.” Like basically that is where we're going. And so if you think about that paradigm, where you're selling to companies that say, “Spend as much as you can to generate, productivity,” versus, “Oh, I'm a single person. I have this much budget, and I'm doing this thing because it's fun or it's helping me out or whatever.” Like it is a different, it's a different go-to-market, I think, strategy.MCP, CLIs, and Sandboxes as the Agent RuntimeSwyx [00:44:50]: Yeah, there's a lot of discussion. I'm just kind of going through like the mental list of things that are in your favor, which is, for example, MCP versus CLI. Like obviously you want CLI. It's been very good for you. I feel like it's maybe a drop in the bucket or maybe it's huge. I'm just checking whether it's like these are big trends.Ivan [00:45:10]: Those things you - work well in our favor, to your point just because every.Swyx [00:45:13]: They're kind of drop in the bucket, right?Ivan [00:45:15]: I think it's like sort of all the things come together. And so there's so many things that impact that. To your point, like OpenClaw wasn't huge for us, but like having the agent SDK, from Anthropic, so or Cloud Claude Code was very interesting. The reason why it was interesting is that a lot of, let's call them app I don't know what to call them, app layer agent companies, essentially they are like, “Oh, I can create this new app, this new agent. All I need, I just use Claude Code, and I throw it into a sandbox, and then I have my interface to the human to that.” And so that enabled so many more companies to actually offer this, and then they would pull on sandbox. So that was, that was interesting. And to your point, like MCP, versus the CLI, the MCP is an interface against an API, whereas the CLI is like you can actually go do things. Like this is it. The difference between integrations and actually running scripts or data or analysis against a thing. So being able to use a CLI very well enables the agent to do more things, and it's because that people will invoke a sandbox, they'll run it in the CLI, and but it'll do anal-analysis on that data and then give you an actual result versus just, pulling data from an API source.Swyx [00:46:29]: Yeah, it's a layer of indirection basically, it's the same thing as agentic search versus RAG, which where you're.Ivan [00:46:34]: Exactly, yeah.Swyx [00:46:34]: Just like you just win whenever people put more agents into their workflow. And so like it doesn't really matter, but I'm just kinda teasing out like what else have people heard about that like it's sort of, “Oh yeah, this is another sandbox use case. Oh yeah, that's another one.” Am I, am I missing any big ones?Ivan [00:46:51]: The thing, the thing that people, which is the computer use stuff, which I think is probably the most interesting one, is, and to your point, we've talked to so many people over the last year. It's like, “Oh, like why do you need a sandbox? Why do you need this? Why this?” And to your point, it's like, “Oh, I need sandbox for this. I need sandbox for that. I need sandbox-” It's like, “Oh, I need it for every single thing.” And so basically what I, what I - and it sounds like a broken record, it's like you use a laptop every single day, right? And you are n of one. It's just you. But now imagine how And by the way, the laptop, the computer PC market, the PC market is about equal to the cloud market in total. So it's about 150, 180 billion a year. Something like that. It's about roughly the three cloud hyperscalers is about equal to like Apple, HP, Lenovo, whatever, It's a little bit less, but it's sort of like that. And now imagine And that's just like, so how big is the addressable market? What, how many people are there in the world now? What's the last data?Swyx [00:47:45]: Let's call it eight billion.Ivan [00:47:46]: Eight billion. And so let's say you can have two computer, like you have one personal and one business, whatever. Like so it's double that, right? and so that's 16 billion, right? How many agents are gonna be running in two years, in 10 years, in 100 years? Like And for every single task, they will need one of these. And so how big is that? That market is essentially quote unquote “infinite”. You will get to the point, and Dylan Patel was at the conference talking about, from SemiAnalysis, that talks usually about GPUs, was also talking about how CPUs will now be a bottleneck because it will be the constraint. You won't be able to grow, or we won't be able to have enough of these because there won't be enough CPUs to basically do.Swyx [00:48:23]: Yeah. Well, I actually had a really good podcast with Doug Oliphant, who, which was his president at SemiAnalysis, where they've basically been like, yeah, it's been a GPU shortage first, but then it's cascaded down to memory and now to CPUs.Ivan [00:48:35]: CPU, yeah.Swyx [00:48:35]: It-What's next? So networking. So, networking actually has been in shortage for a while if you're looking at, just GPU networking. But, yeah, it's really crazy the amount of computer use that's going on, yeah, cool. I, other questions are, just the one very big part is the open sourceness which you didn't have to do, your competitors don't do, like it's not, a lot of people are worried about keeping their projects open source because some competitor can just slot fork it. I don't know if there's any reflections on just being an open source company.Open Source, Trust, and Enterprise ProcurementIvan [00:49:15]: Yeah. There's a bunch. So we the original product that we did was open source.Swyx [00:49:19]: Yeah. CodeAnywhere.Ivan [00:49:20]: So doing that was actually very good for us. There's basically a saying of, What's the saying? Like, companies that are, that are doing really well, measure themselves against, free cashflow, that are kinda okay, it's EBITDA, then, it's, it goes all the way down.Swyx [00:49:36]: The worst is like GitHub stars.Ivan [00:49:37]: GitHub stars. GitHub stars are the worst, yeah. So you go all the way down to GitHub stars. And so our original one was GitHub stars. That's what we talked about, we're at the point we're talking about revenue, so we're we've gone up the stack on that. And so we started.Swyx [00:49:47]: No, profit.Ivan [00:49:48]: Yeah. We haven't, we're, we'll get there. We'll get there. But basically at that point we did stars and GitHub and it was useful, and the original variation that we did, it we split the core into its own repo and it was Apache 2.0, so very, permissive. And then we basically would bundl

Hacker Public Radio
HPR4644: Response to comments on HPR4424: Newsboat...

Hacker Public Radio

Play Episode Listen Later May 21, 2026


This show has been flagged as Clean by the host. Hi this is your host, Archer72 for Hacker Public Radio. In this episode I share some of my findings about a problem with the Newsboat naming of the HPR feeds, which was brought up in comments about my Newsboat show, HPR4424. hpr4424: How I use Newsboat for Podcasts: comment #6 : download-filename-format for HPR podcasts Ken already had some findings of his own about the ccdn.php extension in the feed. hpr4424: comment #10 : Summary of findings I thought that this might be able to be fixed on an invididual basis, and set out to ask Claude.ai a few questions. But first, some colaboration from Dave Morriss about a good renaming format. This was definitely more on Dave's side than mine, but came up with this. You can tell Dave's handywork from the short variable names, which stems from his extensive experience on Unix type machines in the University days. exif-rename-hpr-dave.sh #!/bin/bash URL="$(cat /tmp/hpr-url.txt)" echo "DEBUG URL: $URL" >> /tmp/hpr-debug.log AUDIO_URL="$(curl -s "$URL" | grep -Eo 'https?://[^"]*.(ogg|mp3)' | head -1)" echo "DEBUG AUDIO: $AUDIO_URL" >> /tmp/hpr-debug.log if [[ -z "$AUDIO_URL" ]]; then echo "ERROR: Could not find audio URL from: $URL" >> /tmp/hpr-debug.log exit 1 fi # Changed destination to HPR-queue DEST=~/podcasts/hub.hackerpublicradio.org/HPR-queue/ # Record files present before download BEFORE="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)" wget -nc --content-disposition -P "$DEST" "$AUDIO_URL" cd "$DEST" # Record filename just downloaded (new file not in BEFORE) AFTER="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)" DOWNLOADED="$(comm -13 /dev/null | sort)" RENAMED="$(comm -13 /tmp/hpr-url.txt && ~/bin/download-and-rename-hpr.sh"; open-in-browser ; set browser "your-normal-browser" A few Claude questions later… After asking to add a function to the macro in order to add the resulting downloaded file to the queue, the file name hpr1234.ogg was being added to the queue instead of the renamed file. Two things to fix: The renamed file isn't being found because ls -t runs before the rename has fully settled, or the glob isn't matching the new filename format (which includes spaces and semicolons) The existing queue entries show the correct format: "url" "path" downloaded — we need to match that, with downloaded status and the full renamed path including extension Exif rename script #!/bin/bash # ~/bin/download-and-rename-hpr.sh URL="$(cat /tmp/hpr-url.txt)" echo "DEBUG URL: $URL" >> /tmp/hpr-debug.log AUDIO_URL="$(curl -s "$URL" | grep -Eo 'https?://[^"]*.(ogg|mp3)' | head -1)" echo "DEBUG AUDIO: $AUDIO_URL" >> /tmp/hpr-debug.log if [[ -z "$AUDIO_URL" ]]; then echo "ERROR: Could not find audio URL from: $URL" >> /tmp/hpr-debug.log exit 1 fi DEST=~/podcasts/hub.hackerpublicradio.org/HPR-newsboat-test/ # Record files present before download BEFORE="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)" wget -nc --content-disposition -P "$DEST" "$AUDIO_URL" cd "$DEST" # Record filename just downloaded (new file not in BEFORE) AFTER="$(ls "$DEST"*.{ogg,mp3} 2>/dev/null | sort)" DOWNLOADED="$(comm -13 /dev/null | sort)" RENAMED="$(comm -13 /tmp/hpr-url.txt && ~/bin/download-and-rename-hpr.sh"; open-in-browser ; set browser lynx Provide feedback on this episode.

The Jim Rutt Show
EP 343 Worldviews: Peter Wang on the Metaphysics of Quality, Sucker’s Bets, and Ofness

The Jim Rutt Show

Play Episode Listen Later May 19, 2026 86:13


Jim talks with Peter Wang—chief AI officer, cofounder and CEO of Anaconda, board member of the Center for Humane Technology, and founder of the Austin STEM Center—about Robert Pirsig's metaphysics of quality, how modernity encourages defection, and a secular conception of the sacred. They discuss: Peter's self-description as "the music in a violin that can kind of hear itself" The "Peter Wang-shaped hole in the universe" thought experiment Subject-object Cartesian dualism as a false alienation Minimum viable metaphysics & atheistic agnosticism Religion as an evolutionary emergent coherence mechanism for human collectives Figure and ground as a metaphysical lens—the anonymous soil that allows religion to sprout The Unix fortune "Man was invented by water to carry itself uphill" & Peter's teleology origin story Process metaphysics & presentism—"we're not going anywhere, we're becoming someone" Pirsig's metaphysics of quality & the four strata of static patterns of value The intellectual plane vs. the social plane & Ken Wilber's pre-trans fallacy Defection within collaborative groups as the dynamic all human social systems try to constrain "Death from a Distance"—throwing, beta coalitions & the emergence of a middle class of power Modernity's shrinking locus of care & the collapse of embedded social context The agglomeration of defectors & how fluid capital enables sociopathic hoarding Money-on-money return as today's dominant pruning rule Joint attention as a scarce collective resource & social media's perforation of shared intersubjective infrastructure Human agency & "micro-abdications" as the aggregate source of Moloch / Game A The augmented currency thought experiment—metering human thriving alongside financial returns Broken collective sense-making & the search for dynamic, adaptable values Peter's secular conception of the sacred—the "eternal golden braid of humanity" "Ofness"—holding both distinctness and belonging to the world ... and much more. Links: Episode Transcript JRS EP 278 Peter Wang on AI, Copyright, and the Future of Intelligence JRS Currents 092: Peter Wang on The Meaning Crisis and Consequentiality JRS EP 16 Anaconda CTO Peter Wang on The Distributed Internet "The Silent Sky and the Test Ahead," by Jim Rutt "A Minimum Viable Metaphysics," by Jim Rutt Zen and the Art of Motorcycle Maintenance, by Robert M. Pirsig Lila: An Inquiry into Morals, by Robert M. Pirsig Chaos: Making a New Science, by James Gleick Death from a Distance and the Birth of a Humane Universe, by Paul M. Bingham and Joanne Souza The Selfish Gene, by Richard Dawkins Center for Humane Technology Peter Wang is the Chief AI and Innovation Officer and Co-founder of Anaconda. Peter leads Anaconda's AI Incubator, which focuses on advancing core Python technologies and developing new frontiers in open-source AI and machine learning, especially in the areas of edge computing, data privacy, and decentralized computing.

BSD Now
663: Proxhyve

BSD Now

Play Episode Listen Later May 14, 2026 61:51


Switching from Proxmox to Sylve, FreeBSD Quarterly report, FreeBSD's laptop program, Migrating ZFS, Haiku and OpenSSL news, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines I Switched from Proxmox to Its FreeBSD Counterpart on My Home Server – Here is How it Went FreeBSD Quarterly Report The FreeBSD Foundation's Laptop Support Project News Roundup Migrating ZFS filesystems from one zpool to another – same host Haiku Isn't Just For X86 Anymore, Boots On ARM In QEMU OpneSSL 4.0 Other schedulers? Illumos? Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Hacker Public Radio
HPR4637: UNIX Curio #6 - at and batch

Hacker Public Radio

Play Episode Listen Later May 12, 2026


This show has been flagged as Clean by the host. This series is dedicated to exploring little-known—and occasionally useful—trinkets lurking in the dusty corners of UNIX-like operating systems. I would imagine that most users of UNIX-like systems have heard of cron —certainly any system administrator should have. Briefly, cron is a way of running a job repeatedly based on the time and date; for example, a job could run every hour, at 5:00am every Tuesday, or the 3rd of every month. It is commonly used for administrative or maintenance tasks that should be done on a regular schedule, such as checking for software updates, rotating log files, or updating the database for the locate command. As well-known as cron is, there is a similar utility that very few seem to be aware of: at . This is the word "at", and has nothing to do with the at symbol "@". An at job is very much like a cron job, except that an at job only runs one time. A job is submitted by running at timespec 1 , where timespec is the time and date the job is to be run. The linked POSIX specification page describes acceptable formats for timespec ; some examples are " now ", " 14:00 ", " noon tomorrow ", " 14:00 + 3 months ", and " 14:00 January 19, 2038 ". The utility then waits on standard input for you to enter a set of commands to be run in the job. You end input by typing Control-D to mark the end of text. (As an alternative to typing in the job, you could instead use the "

Crazy Wisdom
Episode #546: Beyond Postgres and Node.js: What Happens When Your Database Runs Your Code

Crazy Wisdom

Play Episode Listen Later May 11, 2026 56:42


In this episode of the Crazy Wisdom Podcast, host Stewart Alsop sits down with Tyler Cloutier, founder of Clockwork Labs and creator of SpaceTimeDB. They explore how SpaceTimeDB functions as more than just a database—it's essentially a distributed operating system that merges server logic with data storage, enabling real-time applications and time-travel capabilities. The conversation ranges from the technical architecture of databases and operating systems to the philosophy of distributed systems, touching on everything from Unix and Linux to how SpaceTimeDB could revolutionize AI-generated software deployment. Tyler explains how their system reduces the complexity of building real-time applications, makes deployment simpler for both humans and AI agents, and why games like their MMORPG BitCraft Online drove them to create this new infrastructure. They also discuss the future of the internet, the role of bots in gaming, and how SpaceTimeDB fits into the broader landscape of cloud computing alongside tools like Cloudflare, Vercel, and Docker. For more information, visit spacetimedb.com or check out Clockwork Labs on GitHub and Twitter.Timestamps00:00 Stewart introduces Tyler Cloutier, founder of Clockwork Labs, discussing the origin of SpaceTimeDB's name inspired by Einstein's theory and its time travel capabilities that store all operations indefinitely05:00 Tyler explains SpaceTimeDB as more of an operating system than a database, using tables instead of file systems while running code in a sandboxed environment with full atomic properties10:00 Discussion of how SpaceTimeDB replaces both Node.js and Postgres by merging web server and database functionality, eliminating separate deployment concerns15:00 Tyler explains JavaScript execution through Chrome's V8 engine and JIT compiling, leading to Node.js creation for server-side JavaScript development20:00 Explanation of stateless web servers versus stateful game servers, and why games require in-memory state management for real-time performance25:00 Tyler introduces reducers and real-time subscriptions, questioning why more applications aren't real-time when state changes should update immediately30:00 Discussion of Facebook as essentially a text-based MMO, comparing social media architecture to game server requirements and the need for unified systems35:00 Tyler explains ACID properties in databases: atomic, consistent, isolated, and durable, using game item trading examples40:00 Comparing SpaceTimeDB to smart contract systems without cryptocurrency or global consensus, positioning it as a smart database with centralized trust45:00 Tyler reveals SpaceTimeDB uses 43% fewer tokens than Postgres for AI-generated applications, making it valuable for vibe coding platforms50:00 Conversation shifts to bots in games and proof-of-human concepts, with Tyler proposing biometric systems and discussing potential in-person gaming applications55:00 Closing discussion about tracking AI-driven traffic through UTM parameters and finding SpaceTimeDB at spacetimedb.comKey Insights1. SpaceTimeDB is fundamentally a database that runs application code directly inside it, combining what traditionally required separate systems like Postgres and Node.js. Users compile their application logic into WebAssembly or JavaScript and upload it to run within the database itself. This architecture provides high performance because the entire server backend operates inside the database environment. The system also features time travel capabilities, storing every operation and change to data persistently and indefinitely, allowing users to set application state back to any earlier point in time. This makes SpaceTimeDB more accurately described as an operating system rather than just a database, where the abstraction is that everything is a table rather than a file.2. The inspiration for SpaceTimeDB came from building BitCraft Online, an MMORPG where all players exist in a single persistent world and rebuild civilization together. Traditional MMO backends required complex custom solutions to handle real-time state, with game servers storing state in memory and periodically writing to databases. This complexity existed because games cannot afford the latency of constantly delegating to distant databases like traditional web applications can. SpaceTimeDB solved this by making the database fast enough to handle real-time requirements directly, eliminating the need for separate game servers. This same performance advantage that benefits games also applies to web applications, which is why SpaceTimeDB evolved from a game-specific tool to a general-purpose platform.3. SpaceTimeDB functions as a distributed operating system where each database acts like a process in an actor model system, similar to Erlang or Scala Akka. Databases can send messages to other databases and be spawned across a cluster for horizontal scaling. This represents an overlay operating system running on top of Linux rather than competing with it, providing a distributed abstraction across many machines while Linux handles device drivers and hardware support. The vision is for the cloud to function as a single enormous computer running one operating system, where developers simply publish their programs without managing separate services, deployment, routing, networking, or persistence infrastructure.4. The real-time capabilities of SpaceTimeDB address a fundamental limitation in how most web applications work today. Traditional web servers are stateless, delegating all state to databases and accepting network round-trip latency for each request, which is why users often must refresh pages to see updates. SpaceTimeDB allows queries to be subscribed to, maintaining open connections that stream changes whenever query results update. This makes applications like Discord, Facebook, or banking systems naturally real-time without requiring page refreshes. The historical accident that more things are not real-time represents a problem SpaceTimeDB solves by unifying the web world with the game world's real-time requirements.5. SpaceTimeDB implements ACID properties—Atomic, Consistent, Isolated, and Durable—ensuring database operations are reliable and safe. Atomic means operations either fully happen or not at all, preventing issues like item duplication in games when trading between players. Consistent means declared invariants like unique usernames are always enforced. Isolated means concurrent operations do not interfere with each other. Durable means changes persist even if computers restart, with varying levels from in-memory on one machine to disk storage across multiple geographic locations. These properties are managed through reducers, functions inspired by React Redux that fold changes into application state incrementally.6. For AI and large language models, SpaceTimeDB offers significant advantages in building and deploying applications. Testing showed that creating applications with SpaceTimeDB uses 43% fewer tokens compared to Postgres implementations, costs less, has fewer bugs, and is easier to extend. This matters because the primary cost for vibe coding platforms is tokens. As more software gets written in the next twelve months than ever before, there is insufficient focus on infrastructure required to run all this AI-generated software. SpaceTimeDB positions itself as ideal for LLMs to target because of its simplified deployment model where developers just publish code and the system handles everything behind the scenes.7. SpaceTimeDB can be understood as a smart contract system without cryptocurrency or global decentralized consensus. Like blockchain smart contracts, it executes code with atomic, consistent, isolated, and durable properties, but avoids the expense and slowness of requiring all computers worldwide to agree on everything. Instead, it offers centralized trust where users trust Clockwork Labs not to modify deployed contracts, rather than the trustless but extremely costly blockchain approach. This makes it functionally similar to Cloudflare's durable objects but with full relational database capabilities. The system exists before the networking layer where Cloudflare operates, handling deployment, server, and database functions while Cloudflare could provide DDoS protection in front of it.

BSD Now
662: I need a hero

BSD Now

Play Episode Listen Later May 7, 2026 51:48


Cybersecurity Looks Like Proof of Work Now, Compensating for RAM Constraints with L2ARC on ZFS, GhostBSD 26.1, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Cybersecurity Looks Like Proof of Work Now Compensating for RAM Constraints with L2ARC on ZFS GhostBSD 26.1 News Roundup I connected a phone to my FreeBSD server My Journey to the BSDs The unseen hero of OpenBSD Beastie Bits BSD Can Schedule up OpenBSD Campaign 2025 OpenBSD Campaign 2026 Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
661: Break up Big Tech

BSD Now

Play Episode Listen Later Apr 30, 2026 46:24


Breaking up Big Tech, Porting MacOS to the Nintendo Wii, OpenBSD on the Pomera DM250, Postgres is your friend and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Breaking up with Big Tech Porting MacOS to the Nintendo Wii News Roundup Installing OpenBSD on the Pomera DM250 Postgres is Your Friend. ORM is Not Java Sun SPOTs I like to use Soviet control panels as a starting point Beastie Bits OSHintosh - an open source 68000 Macintosh Time to update 2.11BSD: biggest patch ever landed before 35th anniversary A quick and easy Guide to Tmux Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Producer Note, If you have emailed in and you havent heard back and we havent covered your message, email again. Our email is flooded with spam and I might have missed your message. Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
660: I just work here

BSD Now

Play Episode Listen Later Apr 23, 2026 43:56


Proxmox to FreeBSD, Hidden values of CPU-Intensive Compression, Cells for NetBSD, OpenBSD 7.8 on RPIs, and more... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines From Proxmox to FreeBSD and Sylve in Our Office Lab The Hidden Value of CPU-Intensive Compression on Modern Hardware News Roundup Cells for NetBSD – Kernel Enforced Jail Like Isolation with User Friendly Operations OpenBSD 7.8 on Raspberry Pi Zero 2W OpenSSH 10.3/10.3p1 released I'm just the Barista Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Tim - Are OCI Images useful for Freebsd.md Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

Technology Tap
Linux Troubleshooting Essentials: Tech Exam Prep for IT Skills Development

Technology Tap

Play Episode Listen Later Apr 23, 2026 26:17 Transcription Available


professorjrod@gmail.comIn this episode of Technology Tap: CompTIA Study Guide, we dive into essential Linux troubleshooting techniques vital for IT skills development and tech exam prep. Understanding how to diagnose system issues is crucial when preparing for your CompTIA exams and enhancing your practical IT abilities. We explore how to view the system as a dynamic set of processes, using tools like ps and top to monitor CPU and memory usage in real-time. Learn why process IDs (PIDs) matter and how to effectively manage problematic processes with commands like kill and kill -9. We also cover managing system services properly with systemctl to check statuses, start stopped services, and halt errant processes. Whether you're studying alone or in a study group, these insights serve as a valuable part of your CompTIA study guide, equipping you with hands-on knowledge for technology education and IT certification success.Then we zoom out to the tools that keep Linux stable in the real world: package managers like apt and dnf/yum for verified software installs, plus network troubleshooting with ping for connectivity and dig for DNS resolution. We also talk about cron automation, because scheduled tasks can be your best friend or the hidden cause of recurring issues.To round it out, we compare Linux's exposed control with macOS design choices: Finder, Dock, and Spotlight for speed, while still keeping a Unix foundation underneath. We hit key macOS security and recovery features like FileVault, Keychain, and Time Machine, and we close with CompTIA-style practice questions to lock in the concepts. Subscribe, share this with a friend studying A+, and leave a review with the command you want us to cover next.Support the showArt By Sarah/DesmondMusic by Joakim KarudLittle chacha ProductionsJuan Rodriguez can be reached atTikTok @ProfessorJrodProfessorJRod@gmail.com@Prof_JRodInstagram ProfessorJRod

BSD Now
659: Full traffic send

BSD Now

Play Episode Listen Later Apr 16, 2026 68:04


Wayland setting back Linux, Dr Callahan's semi retirement, holding onto your hardware, PF queues breaking the 4gbps barrier, and mroe... NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines Wayland set the Linux Desktop back by 10 years Semi-retirement, or, really, changing my relationship with the BSDs [Hold on to Your Hardware](https://マリウス.com/hold-on-to-your-hardware/) News Roundup PF queues break the 4 Gbps barrier Nobody said there was math on this exam! The web is bearable with RSS The Pipe Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

BSD Now
658: It's the vibe of it

BSD Now

Play Episode Listen Later Apr 9, 2026 60:02


FreeBSD and OpenZFS in the Quest for Technical Independence, Reviews make you 10x slower, OpenBSD on a Motorola 88000, Jailrun, and more. NOTES This episode of BSDNow is brought to you by Tarsnap and the BSDNow Patreon Headlines FreeBSD and OpenZFS in the Quest for Technical Independence: A Storage Architect's View Every layer of review makes you 10x slower News Roundup The story of OpenBSD on Motorola 88000 series processors Jailrun + jailrun github FreeBSD Users: We Need to Talk About Claude Code Vibe-coded ext4 for OpenBSD Tarsnap This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Feedback/Questions Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Join us and other BSD Fans in our BSD Now Telegram channel

a16z
Marc Andreessen on AI Winters and Agent Breakthroughs

a16z

Play Episode Listen Later Apr 3, 2026 77:28


This episode originally aired on the Latent Space Podcast. swyx and Alessio Fanelli speak with Marc Andreessen about the arc of AI from its origins in 1943 to today's breakthroughs in reasoning, coding agents, and self-improvement. They cover the parallels between AI scaling laws and Moore's Law, the architectural insight behind Claude Code and the Unix shell, the coming supply crunch in compute, and why the messy reality of 8 billion people means both AI utopians and doomers are too optimistic about the pace of change. Follow Marc Andreessen on X: https://twitter.com/pmarca Follow Shawn "swyx" Wang on X:  https://twitter.com/swyx Follow Alessio Fanelli on X: https://twitter.com/FanaHOVA Listen to Latent Space. Stay Updated:Find a16z on YouTube: YouTubeFind a16z on XFind a16z on LinkedInListen to the a16z Show on SpotifyListen to the a16z Show on Apple PodcastsFollow our host: https://twitter.com/eriktorenberg Please note that the content here is for informational purposes only; should NOT be taken as legal, business, tax, or investment advice or be used to evaluate any investment or security; and is not directed at any investors or potential investors in any a16z fund. a16z and its affiliates may maintain investments in the companies discussed. For more details please see a16z.com/disclosures. Hosted by Simplecast, an AdsWizz company. See pcm.adswizz.com for information about our collection and use of personal data for advertising.