Hacker Public Radio

Hacker Public Radio

Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.

Episodes

  1. 2d ago

    HPR4740: Robert A. Heinlein in the 1960s

    This show has been flagged as Clean by the host. The 1960s were when Heinlein produced some of his most famous works. And they started to bring him fame outside the Science Fiction community, which was most unusual. Heinlein in the 1960s Heinlein had interests that he tended to keep hidden in the early years while he was establishing himself as a writer, particularly as he was feeding the lucrative Juvenile market. These included things like sex, nudism, and unusual political and religious views. But when Scribners rejected Starship Troopers he not only abandoned writing Juveniles, but decided he could be a lot more open about his views. And this resulted in his most famous novel. This is the one novel that people who are not science fiction fans are likely to have read, particularly in the 1960s. Stranger In A Strange Land (1961) This novel won just about every award possible: Hugo, Locus, Prometheus. It was the first science fiction novel to crack the New York Times Best Seller list. And the Library of Congress named it as one of 88 “books that shaped America”. And it even introduced a new word to the English language: grok.The stranger in the title is Valentine Michael Smith, an infant born to one of the astronauts, and then raised by Martians. He is brought back to Earth by a later mission, and his adventures in this strange land are what the book is mostly about. But in so doing, Heinlein writes a satire on religion and also espouses very different approach to love and sexuality than was considered proper at the time. And this attracted the hippies of the 1960s, for whom it became a Bible, much to the annoyance of Heinlein who did not appreciate them knocking on his door. The book had the original title of “The Heretic”, and was intended to challenge social norms about religion and monogamy. Heinlein’s own take on the reaction to the novel was that he was surprised that some readers thought the book described how he believed society should be organized, explaining: “I was not giving answers. I was trying to shake the reader loose from some preconceptions and induce him to think for himself, along new and fresh lines. In consequence, each reader gets something different out of that book because he himself supplies the answers … It is an invitation to think – not to believe.”The book also exemplifies the characters that Heinlein managed to put into most of his stories. Michael is the naive young man who needs to learn better, and Jubal Harshaw is the wise old man who becomes his mentor. Podkayne of Mars (1963) The heroine of this book, Podkayne, is a teenage girl who is invited along with her younger brother on a luxury cruise with their uncle Tom from their home on Mars to go to Earth. We learn along the way that Mars was once a prison colony (echoing Australia), and that Podkayne’s family are of Maori ancestry. In the United States, at least, this would count as “colored”, and reflects Heinlein’s subversion of racist ideas in his works. Much of the travelogue on the luxury liner reflects Heinlein’s own experiences as depicted in his non-fiction book Tramp Royale which covers his own world cruise. But old uncle Tom is actually a diplomat using the kids as cover, and they get kidnapped by people who want him to take a certain position at talks to held at Luna. Podkayne’s brother Clarke is portrayed as a genius but lacking certain qualities of empathy, and in the end he manages to get her killed. The publisher rejected this ending an insisted on one where she lived. Later Heinlein published a version with both endings and invited people to vote on which one they preferred, and the one where she died won. Heinlein’s own objection was that it was like changing the ending to Romeo and Juliet into one where they both lived happily ever after. Since then the book has been published with Heinlein’s preferred ending. Orphans of the Sky (1963) This is basically a couple of novellas from 1941put together as a complete novel. The first novella, Universe, was recognized by the Science Fiction Writers of America by including it in their volume The Science Fiction Hall of Fame, Volume Two. This is a story about a generation ship, i.e. a ship that will take generations to arrive due the speed of light limit. In this case, the people who understood what this was all about are long dead, and we learn that at one point there was a mutiny and the the ship’s officers were killed. In Universe, the descendants of the remaining people think the ship is all there is, it is the Universe to them. In the second novella, Common Sense, a few people find some of the old records and work out what the situation is. Then, seeing a star growing larger ahead of them, they take a life boat and land on a habitable moon of a giant planet.This is part of the Future History, as Rhysling and his “Green Hills of Earth” are brought up, and it is also referred to in Time Enough For Love, where it is revealed that this ship is the sister ship to the one the Howard Families stole in Methusaleh’s Children. But being that this is from 1941 it does not show the polish and mastery of Heinlein’s other work of the 1960s. Glory Road (1963) Some stories make you wonder if they are Fantasy or if they are Science Fiction, and this is one of them. Of course, Heinlein would just call it Speculative Fiction and not worry about it. A former soldier has just been discharged from a war in Southeast Asia. The country is not mentioned, but this is 1963 and Vietnam was just bubbling up into people’s consciousness. With nothing to do, he meets up with a gorgeous woman who invites him on a quest. This takes them to other worlds and involves a certain amount of swordplay, culminating in a sword fight against Cyrano de Bergerac. The woman turns out to be the Empress of many worlds, and the quest was to retrieve the Egg of the Phoenix, a cybernetic device containing the memories and personalities of most of her predecessors, and now she has to absorb all of this, which is fine for her but leaves or hero pretty useless. Finally he goes looking for another quest.This is a really good novel, and was nominated for the Hugo, but it lost out to Clifford Simak’s Way Station. We should probably discuss Simak at some point, he was an important writer with a distinct style. Farnhams’ Freehold (1964) This novel attempts to be satire on race relations, but is in my view a failure. A nuclear war happens, and a group of people in a fallout shelter find that they have been transported into the future (or is it an alternative universe?). The war pretty much destroyed the societies of the northern hemisphere, leaving things open for the Africans and other southerners to become dominant. And of course the blacks enslave the whites and re-enact the worst excesses of the ante-bellum American South. When I am in the mood to go back and re-read some Heinlein, this is not one I pick. The Moon Is A Harsh Mistress (1966) This is one of Heinlein’s best novels, set on a lunar colony. The moon has been used as a penal colony, but of course most of the people there now are descendants of the people originally exiled there. The Warden runs things, but as long as the grain shipments are on schedule he doesn’t bother much with the affairs of the “Loonies”. The background here is fascinating, describing a nearly anarchic society. Men out number women two to one, leading to some interesting marriage customs, including something called “line marriage” which is a type of group marriage. The wise old man role is played by Professor Bernardo de la Paz (Prof), while the young man he mentors is Manuel O’Kelly-Davis (Mannie). Mannie is computer technician who discovers the big mainframe computer that runs everything has become sentient. And since the computer has the acronym HOLMES, he names it Mycroft Holmes (Mike), for Sherlock’s smarter brother. They all become involved in a revolution against the Earth government, which in theory is led by Prof, but in fact is led by Mike. Since he is a computer, and keeps his sentience a secret, he creates a persona of Adam Selene to be the figureheadI said that the background of this lunar colony is fascinating in itself, but the book is also a discourse on the nature of government, libertarianism, and what it means to be free. That was something Heinlein was prone to do, and it did not always work well. In some of his last works he tended to pontificate in a way that left the story behind, but in this novel the story is interesting all the way through. This the novel that popularized the acronym TANSTAAFL, which means There Ain’t No Such Thing As A Free Lunch, and which is the motto of the Loonies. Hazel Stone, of The Rolling Stones, appears here as a 12-year-old girl involved in the revolution, and both she and Mike also appear in later works of Heinlein. I recommend this book highly.This novel won the Hugo award (by the fans), was nominated for the Nebula Award (by the writers), was named one of the Top 10 novels in the Locus poll, and won the Prometheus Hall of Fame Award. Links https://en.wikipedia.org/wiki/Stranger_in_a_Strange_Land https://en.wikipedia.org/wiki/Podkayne_of_Mars https://en.wikipedia.org/wiki/Orphans_of_the_Sky https://en.wikipedia.org/wiki/Glory_Road https://en.wikipedia.org/wiki/Farnham%27s_Freehold https://en.wikipedia.org/wiki/The_Moon_Is_a_Harsh_Mistress https://www.palain.com/science-fiction/the-golden-age/robert-a-heinlein/heinlein-in-the-1960s/ Provide feedback on this episode.

  2. 3d ago

    HPR4739: Happy by shower # 3

    This show has been flagged as Explicit by the host. We focused, until now, on things external as examples. Let’s proceed to internal. Before, I want to note that any of these is a formula. It’s not like we can repeat a past experience we ourselves or someone lived, and feel the same thing. It’s not a guarantee, and not even the idea in sharing. It’s only this: to share and to provoke reflection. I was abused as a child. Hard as it is, and unerasarable, also hard was to tell someone important and do not be trusted. Child abuse is associated with multiple disorders further in life. Remembering what I passed is a relief in what gives respect to where I am now. Not to authorize me to feel anger, or as a free pass to throw everything to the air without feeling guilty — that would make something, but not good after all —, but to recognize better what is real and what is important now, and that’s much more relevant, and influential to my being in the world, than that past experience. Coincidences sometimes make me “wow”. When I ask, and even when I don’t directly ask, specific direction in choices, or in what to trust, it’s not rare to receive something that I see as very clear. Even when it comes as a reproach, remembering me about what I should and could be doing, but am not because of many excuses, even then, I’m still impressed, and feeling loved, because someone cares specifically – about – me . In general, remembering something that gave me a bad taste when thinking about before, and then, as of now, feeling differently about that event, gives me a sense of maturity. Like, what a child I was to pay so much attention to this, or to that, and now those things, unimportant as they are, don’t matter any more. I find myself trying to remember a word, or a concept or memorized Bible verse. Sometimes I forget, and then I go to a chain of thoughts about and end up remembering, or forget about and it comes to mind minutes or hours later. Those are “aha!” moments, as discovering something, very beautiful, for the first time. Some people have a wrong notion of memory, as if it was created once and evoked latter. No, every moment one evokes a piece of information, he is reworking that piece, and every experience after the creation of the memory potentially affects that bit of information we call a part of the memory. It’s not static, it’s dynamic. And so it’s not objective, is it? Yeah, that’s it. Thank you and bye bye. Provide feedback on this episode.

  3. 4d ago

    HPR4738: Programmable Logic Controls - Episode 4

    This show has been flagged as Clean by the host. -------------------- 01 Introduction This is the fourth episode in an 8 part series. 02 In the previous episode we looked at the Allen Bradley PLC2, one of the very early successful Programmable Logic Controllers. In this episode we will look at another early PLC, the Siemens S5 series, and use it as an example of both how PLCs became more sophisticated, as well as an example of a different approach to the overall software architecture. Again, I will only touch on this topic lightly, this is not a course on how to program PLCs. However, I will give you enough technical detail to give you are rough idea of what they were like. -------------------- 03 S5 Historical Background Siemens are the largest PLC vendor on a global basis, and have been since the early days. Their first PLC was the S3, released in 1975, two years before Allen Bradley released the PLC2. There seems to be almost no information available on the S3, so I can't say much about it. In 1978 or 1979, sources are unclear about the exact date, Siemens released the S5 series. This was a huge step forward in capability and was the foundation of their PLC product line until replaced by the S7 series in the mid 1990s. In this episode I will focus on the U series, which were an upgrade to the original S5. -------------------- 04 A Complete Family of PLCs Fully developed, the Siemens S5 series was a complete family of products covering the entire size spectrum from smallest to largest. Siemens covered the entire industrial control market, and there was almost nothing they didn't have somewhere in their catalogue. You could spend an entire career using nothing but Siemens products for everything. 05 At the lowest end were the S5-100 series, consisting of the S5-100, 102, 103, 90, and 95. These covered everything from the small "shoebox" all in one form factor to ones which overlapped the mid range in terms of capability except for their compact I/O cards which were smaller and slower than the full size models. The S5-115 formed the mid range, coming in a "full size" form factor in terms of packaging and rack size. The S5-135 and S5-155 extended the S5-115 in terms of speed and memory. 06 In this episode I will focus on the lower end S5-100 series for the sake of simplicity, and will not make any reference to any additional capabilities of the larger models. It will be much too time consuming and confusing to try to cover everything, and there wouldn't be much point to it. -------------------- 07 Data Memory Types If you recall the previous episode, the Allen Bradley PLC2 had a data table, or memory system, that was a single linear range of memory with all I/O and internal capabilities mapped into fixed numerical addresses. Allen Bradley were to abandon this approach in their later PLC5 series introduced in the mid to late 1980s, but we won't cover that here. The Siemens S5 series however took the approach of having different types of memory addresses for different purposes. I will describe those for the S5-100 series now. 08 Input and Output Addresses The standard I/O modules for these compact PLCs had 8 inputs or 8 outputs per I/O module. These module plugged into a flat bus (as opposed to an enclosed rack) with slots numbered from 0 through 31 in decimal. Each of these slots had an associated byte number, and each I/O point on the individual modules had a bit number. 09 Input and output addresses had the following format. Letter , number, decimal point, number. The letter was either I or Q. I indicated inputs. Q indicated outputs. The first number was the byte number, which corresponded to the physical I/O module slot. The second number was the bit number within the byte, starting from zero. 10 So "I2.3" indicated an input module located in the third slot (numbered from zero) and addressed the fourth input (numbered from zero) on that module. Outputs worked the same way. For example "Q 5.1" 11 Analogue modules could be located slots 0 through 7. Analogue if you recall, refers to voltages which have varying levels rather than just on or off, and can represent things like temperature. Each analogue module was assigned 8 bytes per slot, starting at address 64 and going up to 127. In practice many of these so called "analogue" modules had nothing to do with actual analogue voltages, but rather any advanced module which needed more address space was used here. Even later high density digital I/O used these addresses. 12 Each of these addresses could be addressed as bytes or words. In this case input bytes were indicated by an "IB" prefix, and input words were indicated by a "IW" prefix. Output bytes used a "QB" prefix and output words used a "QW" prefix. 13 Flags Flags are individual bits of internal memory that are used for storing intermediate logic values. These began with an "F" prefix. An S5-103 had a total of 2048, numbered from F0.0 to F255.7. 14 Counters Counters started with a "C" prefix. An S5-103 had 128 of these numbered from C0 to C127. 15 Timers Timers started with a "T" prefix. An S5-103 had 128 of these numbered from T0 to T127. 16 Data Blocks Programs needing to deal with byte and word memory could create what were known as "Data Blocks". These were blocks of PLC memory that could be created as the discretion of the programmer. An S5-103 could have a maximum of 254 data blocks numbered from DB2 to DB255. Two additional data blocks were reserved for the PLC's internal operations. Data blocks could contain up to 255 16 bit words. 17 However, the actual number and size of data blocks would in practice be limited by available memory. Even 20 kilo bytes was considered to be a large memory, and this had to be shared with the program. A data block would be "called" to make it the current data block. Then individual words would be addressed with the "DW" prefix. For example "DW5". -------------------- 18 Program Blocks If you recall with the PLC2, there was a "main" program and a series of optional numbered subroutines. In the S5, programs were split into "blocks". These were Organization Blocks Program Blocks Function Blocks Sequence Blocks An S5-103 could have up to 256 of each of these blocks. 19 Organization Blocks When the PLC started up, it would look for Organization Block 1 and begin execution there. You could consider this to be the equivalent of the "main" function in a C program. Organization blocks had an OB prefix. For example OB1. With a very simple program in a very small S5 PLC, all of the program logic could be simply put in OB1. However, with larger programs , it was convention to put the logic in subroutines and simply have OB1 call each subroutine. 20 Program Blocks These had a PB prefix. For example PB10. Normal ladder logic style programming would go in these. It was convention to split up a program into pieces and put piece in its own program block. Normal practice was to have a program block correspond to a particular part of the machine. 21 Function Blocks These had an FB prefix. For example FB64. Function blocks differed from program blocks in that they could take parameters. This allowed you to write an FB that performed some sort of complex data transforms and re-use it by calling it with different parameters. Some instructions could only be used in FBs, not in other types of blocks. There were also built in FBs in some CPU models which performed certain operations such as converting BCD (or Binary Coded Decimal) to normal integer. 22 Sequence Blocks These has an SB prefix. For example, SB25. These were like PBs, but were intended for controlling sequences of operations where each SB performed as single step of the sequence and multiple blocks were used for a sequence. -------------------- 23 Programming Languages The S5 series offered four different programming languages. These were Ladder (abbreviated as LAD) Statement List (abbreviated as STL) Control System Flowchart (abbreviated as SCF) GRAPH 5 24 You should be familiar with ladder if you listened to previous episodes. Briefly however, it is a graphical programming language which followed the appearance of electrical ladder wiring diagrams which were familiar to engineers, technicians and electricians working with manufacturing equipment. 25 Statement List is a text based programming language which resembles an assembly language for an abstract processor architecture. Boolean logic results were calculated and saved on a stack, while integer values were operated on directly from memory or in two accumulators, ACCU1 and ACCU 2. 26 Control System Flowchart is a graphical language that takes the form of rectangular blocks with one or more inputs and an output. These blocks are laid out on a screen and then wired together rather like logic gates in a electronic schematic. 27 GRAPH 5 is Siemens' implementation of the GRAFCET (Graphe Fonctionnel de Commande Étapes Transitions) IEC 60848 flow chart standard. The IEC are the International Electrotechnical Commission, an international standards organization. 28 I will focus on Ladder and Statement List, as these were by far the most commonly used and we have limited time to discuss the S5. -------------------- 29 Statement List As mentioned above, Statement List can b

  4. Sep 22

    HPR4732: Webp

    This show has been flagged as Clean by the host. Webp is meant to replace GIF, JPEG, and PNG. Its features include: Lossy compression Lossless compression Metadata, including Exchangeable Image File Format (EXIF) and Extensible Metadata Platform (XMP) Transparency (an "alpha channel") Embedded ICC (International Color Consortium) profile Multiple frames (animation) The typical expectation is to achieve equal or better visual quality as a JPEG or PNG or GIF, but with a savings of 25% to 35% on file size. This is famously difficult to measure, because if you concede to an equal file size, then the quality ought to be better, but there is a "ceiling" to quality that can be detected by the majority of human eyes. So the metric is the unmeasurable: How good does it look to you? If it looks as good or better, and the file size is smaller, then it can be said that the format is superiour. The best and most common test is to look at an image compressed with JPEG or PNG compression, and then look at the same image compressed by WEBP. If you can't tell the difference, and the file size of WEBP is smaller, then it's an improvement for disk space and bandwidth. WEBP is an 8-bit format (based on the VP8 video codec) and lacks support for 10-bit, 12-bit, or 16-bit colour. Specifically, WEBP is YUV420, where Y is Luma (brightness and darkness), and U and V are Chroma (colour). Each 8-bit pixel in the UV (Chroma) corresponds to a 2-by-2 block of 8-bit Luma pixels, or in other words, Chroma gets half the resolution of Luma. This is not uncommon, because how sharp an image appears to the human eye is mostly (not entirely, to be fair) influenced by Luma. Our eyes differentiate bright from dark better than our eyes perceive subtle shifts in hue. The ICCP chunk starts with a 4-byte declaration (the ASCII string "ICCP"), then a 32-bit integer representing the length of the payload, then the payload (the ICC profile specification according to the International Color Consortium), and then optionally a byte to pad the header. The embedded ICC profile can define any old colour space you want. If none is defined, sRGB is assumed. The libwebp library only parses the ICC profile, it doesn't actually handle conversion. That's left to the client application, which is why you might get a notice sometimes in GIMP or a similar application about a colour space mismatch. (It's generally safe to convert to your current colour space, and if it's not then you'd know it because you're working in a multimedia production house where colour spaces and colour profiles are significant.) Converting to WEBP is available in most applications, at this point, including Image Magick and the cwebp command. Image Magick: $ convert foo.tiff foo.webp Or using cwebp with -q for a quality 0 (low) to 100 (high), and -o for output: $ cwebp foo.tiff -q 60 -o foo.webp Test images are available from a Mozilla test suite. Or you can test on a Hacker Public Radio image, such as the screenshot of the upload form on the episode_show_notes page: $ wget https://hackerpublicradio.org/images/upload_form.png $ cwebp upload_form.png -q 50 -o upload_form.webp $ ls -gl -rw-r--r-- 1 users 308K Sep 16 13:56 upload_form.png -rw-r--r-- 1 users 79K Sep 16 13:57 upload_form.webp References Developers Google Salivity.github.io Mozilla Provide feedback on this episode.

4.3
out of 5
33 Ratings

About

Hacker Public Radio is an podcast that releases shows every weekday Monday through Friday. Our shows are produced by the community (you) and can be on any topic that are of interest to hackers and hobbyists.

You Might Also Like