BINREV SPYD3R

Members
  • Content count

    3,078
  • Joined

  • Last visited

    Never
  • Days Won

    15

BINREV SPYD3R last won the day on June 7 2014

BINREV SPYD3R had the most liked content!

Community Reputation

-41 Troll

About BINREV SPYD3R

  • Rank
    I could have written a book with all of these posts

Profile Information

  • Gender
  • Country
  1. LinuxLugCast Memorial We are here tonight to share memories of our friend Donald Grier aka FiftyOneFifty Fifty was involved with many podcast over the years Obviously LinuxLugCast http://www.linuxlugcast.com https://archive.org/search.php?query=linuxlugcast Hacker Public Radio http://hackerpublicradio.org/ http://hackerpublicradio.org/correspondents.php?hostid=131 /dev/random http://devrandomshow.org/ http://devrandomshow.org/shows/?f=all.html Kernal Panic Oggcast https://archive.org/search.php?query=KernelPanic+Oggcast&page=2 Shared thoughts and memories: Ken Fallon I was in the back room pottering away when espeak notified me that 5150 had passed away. I went back to the computer and read the announcement in the IRC Logs and confirmed the news. Some dude I had never met, never seen in my life, and didn’t even know his real name, was gone and I was in the back room crying my eyes out. Crying for the loss of a friend. When had he become a friend ? People have been socializing since the dawn of humans, be it at the camp fire, the forge, pub, hairdresser, sports club, church, or wherever. For us it was via Linux podcasting. You are there because you share a common interest. If you were into Linux podcasting then you could not help but get to know fiftyonefifty. The guy turned up everywhere if not on the podcasts themselves he was commenting on them. I have 619 messages from him about HPR alone. He submitted his first show back in 2010 and has been a regular since then. At some point after that I knew that he was on my “special list” of people who I could rely upon to fill the queue if needed. And as I sat there crying I realized that he had also sneaked onto my list of friends. I’ve not always been a fan of the New Year Show, but now I am glad for it. While I may never get to share a beer with him any more, or take him up on his promise to let me fire off some rounds on his farm, I did at least get to shoot the breeze with him for many a happy hour. Goodbye old friend you will be missed Anonymous A Ramble for FiftyOneFifty: King of Ramblers I am writing a Ramble for a man I knew only as FiftyOneFifty. I never knew his real name, nor do I know if he knew mine. In many things, Names do not matter, People, Actions, and feeling do. We podcasted together off and on, over several years. I don’t recall exactly how many. It doesn’t matter now, since they are all that there will ever be. We grew to be good friends. I never met him in person, online life is like that. I only know my life would be much poorer, if I had not known him. Hearing he died, shattered me. This Ramble is my try at putting most the pieces back in place. Of course, nothing can replace the largest piece, the Man Himself. My heart and prayers go out to those friends and family dealing with his loss. His death is a harsh, unchangeable, fact. I shall focus on his life, and things better remembered than the wall we all will hit one day. Fifty was a man if Life, Joy, and passions. That is how I shall write of him. I had a far too short time, to learn about him, and from him. It will also warm my heart, where he live yet, and has for a long time. I learned this fact, only after I could no longer talk with him. I found him easy to talk with, and listen to. He was also “Vaccinated with a Victrola Needle ” as my relatives might say. He could ramble on for hours. enjoyably. He virtually always made sense, even when in his cups. He shared himself, his hobbies, experience, and his travels with us, on our podcasts. While he went to Linux events, he never limited himself to just linux topics. He reported the non Linux features of events. This great for choosing family trips to them. He included accommodations, restaurants, and pubs in the area. I don’t travel, or drive, so these second hand visit were a delight. His research and Linux activities made up much of his contribution to our podcasts. He life also flowed in, to entertain and inform us. He lived in the country, farming, cows, trouble getting Internet service were included. My parents can off farms, so he even kept my ties to that life alive. Firearms, cars, especially his beloved Hearse were shared interests. tale from his tech support work, for businesses and schools enlightened me. Farmers are natural pack rats, so gathering all sorts of discarded computer gear was natural. Unfortunately he lost most of it in the fire which destroyed his house. Losing his house, and even his dear father, never seemed to blight his spirit or life, in the long run. It would be natural to keep such private matters from more distant friends, as I was. Nor did his long illness color the side of him I saw. it got in his way, sometimes, as I recall, but never in his spirit. I wish I had been closer, to offer myself more to the man I miss dearly. I must just try to use his independent example, in my own life. Anyone could do much, worse. His quiet touch helped heal me in ways I am only now realizing. I started the day in tears, still aching from losing a rare, true friend. Then I recalled a song from Toby Keith, called “Cryin’ for Me (Wayman’s Song ) written about he loss of his close friend, Wayman Tisdale. Toby found about his friends passing on Friday. On Sunday Toby was driven to write the memorial song. In it he says his tears are not for his lost friend, who is now in Heaven, but for Toby himself, and all those family, and friends, Wayman left behind. I believe Fifty is in Heaven, with his Dad, and those who have gone before. He will see things from the Good Seats. He can enjoy all the Holidays, and never feel the cold. I was driven to write like Toby, to handle my own shock and grief. We Cry and Mourn, those left behind in the Mortal world, for our loss and pain. Our dear One is beyond pain, perhaps for the first time in years. He has earned his time in Grace. He as paid as we pay now, for life beyond grief, with those who have gone ahead. I hope my words and memories may help the ones he left behind. Pain is a Mortal thing. It need not be deadly, or poisonous. Fifty’s Life is a great example of this and many other things. I hope we can go forward, with his example helping heal our loss of him. God Bless You, Fifty, and those you touched in turn. View the full article
  2. As mentioned in the new issue of 2600, we've set Monday, October 21st as the date where we make public what our plans for the future of HOPE are. The recent tripling of costs at Hotel Pennsylvania put the entire future of the conference in jeopardy and we've been working all summer (and now it's apparently autumn) to try and find solutions. We appreciate all of the well wishers who have written in and really given us the strength to move forward. You can still write to us at hope@hope.net. Please also help us spread word of our brand new DRM-free PDF version of our new issue. Every purchase helps in both the continued operations of 2600 and future projects like HOPE. You can get your copy here. View the full article
  3. On October 15th, District Judge Engelmayer (Southern District of New York) extended the New York State Supreme Court’s temporary restraining order (TRO) from October 18th through the end of the next hearing, which is scheduled for next Monday, October 21st. Prior to the hearing, the parties are to submit briefs in support or opposition of the extension of the TRO. While Pacifica has been ordered not to lay anyone off at WBAI, they have refused to allow them to operate the station and automated programming from California continues to be piped in with no local broadcasting permitted. This includes "Off The Hook" which has been kept off the air for the past couple of weeks. The hearing will take place Monday, October 21st at 3pm in Courtroom 1305 at the U.S. Courthouse, 40 Centre Street, New York, NY. You can email the Pacifica National Board to voice your opinion at pnb@pacifica.org. View the full article
  4. The alarm clock on my bedside table had a very loud alarm—so loud that it scared me and made my heart race when it went off. I know you're thinking I should just use an alarm on my phone, but for whatever reason I wanted to use the alarm clock. In this episode I talk about installing a resistor in the speaker wires of the alarm clock so that it won't be so loud when it goes off. It's all good now. Loud enough to wake me up, but not so loud that it scares everyone. View the full article
  5. NEW 'Off The Wall' ONLINE Posted 16 Oct, 2019 1:08:41 UTC The new edition of Off The Wall from 15/10/2019 has been archived and is now available online. "Off The Wall" - 15/10/2019 Download the torrent here!!!! View the full article
  6. Below are examples of messages shown on the screen during operation System Up (Unfortunately I didn’t get a picture of this message) Shows the unit waiting to get a wi-fi connection and get given an IP address. Unit goes to the HPR site and gets the number of days to free slot in the show queue. At the time when I took the picture the queue had a healthy 22 shows! Links to three previous shows I did that mention the Blinkstick Solving a problem I had with my Blinkstick http://hackerpublicradio.org/eps.php?id=2089 Tracking the HPR queue using python and a Blinkstick http://hackerpublicradio.org/eps.php?id=2340 Follow on to HPR2340 (Tracking the HPR queue in Python) http://hackerpublicradio.org/eps.php?id=2344 Link to Moc, Music On Console https://moc.daper.net/ Menu 0 Podcasts screens 0 [PODCASTS] 0 1 <|| PLAY/PAUSE (Toggles moc between play and Pause) 0 2 << INFORMATION(Displays information about the current track) 0 3 << (Move to previous track in playlist) 0 4 << (Move to next track in playlist) 0 5 LIGHT (Toggle back-light on LCD screen) PUSH IN TOP TOGGLE BUTTON (Seek forward or back in current track) Menu 1 Audiobooks screens 1 [AUDIOBOOKS] 1 1 <|| PLAY/PAUSE (Toggles moc between play and Pause) 1 2 << INFORMATION(Displays information about the current track) 1 3 << (Move to previous track in playlist) 1 4 << (Move to next track in playlist) 1 5 LIGHT (Toggle back-light on LCD screen) PUSH IN TOP TOGGLE BUTTON (Seek forward or back in current track) Menu 2 System screens 2 [SYSTEM] 2 1 Sys Information (System information) 2 2 WiFi (Displays WiFi inofrmation such SSID & signal strength) 2 3 HPR (Displays the number days to the next free slots on FPR que) 2 4 Not shown, (Not in use) 2 5 LIGHT (Toggle back-light on LCD screen) PUSH IN TOP TOGGLE BUTTON (Shut-down the Raspberry Pi) Infra-red Sensor Example of my Samsung TV remote control Lirc Article from Wikipedia https://en.wikipedia.org/wiki/LIRC Infra-red sensor turned on Infra-red sensor turned off Kodi article on Wikipedia, (Formerly XBMC) https://en.wikipedia.org/wiki/Kodi_(software) Example of a message being sent to the unit telling me that a backup is complete. The bright pink LED on the Blinkstick lets me know at a glance that a message has been sent to the display. EEE PC article on Wikipedia https://en.wikipedia.org/wiki/Asus_Eee_PC Switch Bounce article on Wikipedia https://en.wikipedia.org/wiki/Switch#Contact_bounce A flavour of what information is shown when the information button 2 is pushed. The picture showing the title scrolling from right to left was blurred so I didn’t include this. The menu displayed during seek, this in initiated by pushing and releasing the toggle button while either in the Podcasts main menu 0 or Audio book main menu 1. The shut-down menu this in initiated by pushing and releasing the toggle button while in the System main menu 2. View the full article
  7. The Autumn issue of 2600 is now out. And this one is pretty historic. For the first time, we're offering a brand new issue in DRM-free PDF format. This is an experiment to see if we can reach all kinds of new people - or old people we've lost touch with over the years for one reason or another. You can help by spreading the word in whatever way you can. Of course, we still have all of the other digital formats (Kindle, Nook, Google Play) plus the standard paper edition. We've also made the paper edition much easier to find. If you're in the United States, simply click here for a handy guide to all of the known stores that sell 2600. Of course, nothing beats the ease of subscribing and having issues sent directly to you. And regarding those other digital formats, you can find them all here. View the full article
  8. This episode is Part 8 of the Stardrifter role-playing game playtest. The series is composed of two playtest sessions, held earlier this year. They were recorded and chopped into manageable bites, then edited down into separate episodes. This series is meant to give listeners some insight into the RPG construction process. Playtesting is not the final step, but rather, just another stage. The construction of an RPG can be convoluted, and feedback from players is absolutely vital. In this part, the characters reevaluate their life choices, and decide that negotiation is the better part of valor! Special thanks to my playtesters: Thaj, Mark (who was playing Brinn), and X1101! View the full article
  9. In this episode, Dave and his family wander the paths of Sandall Beat Wood in Doncaster to participate in the game of Geocaching. During this time, which demonstrates an unusual level of failure in us playing the game, we try and explain what the game is all about. No, not The Game... As I explain at the beginning of the episode, this is a fairly long episode which hasn't been edited down much, so there are a lot of ambient pauses and heavy breathing to be enjoyed. Recorded in the field on my Olympus DM-3 voice recorder. Caches explored Cache 1 - GC7F8ND - not found Cache 2 - GC50TVW - not found Cache 3 - GC7KRHH - found! Links Link to photos and screenshot geocaching.com Official Geocaching App: Google Play | App Store c:geo Geocaching app: Google Play View the full article
  10. MeWe is another platform that was advertised to users left high-and-dry by the closure of Google Plus. It is not federated, but does make strong claims of privacy protection, and is the slickest alternative I have seen to Google Plus. So when Google Plus disappeared, many people moved over to this platform. https://www.zwilnik.com/?page_id=1030 Links: https://mewe.com/ https://mewepro.com/ https://mewe.com/store https://mewe.com/# https://www.zwilnik.com/?page_id=1030 View the full article
  11. NEW 'Off The Hook' ONLINE Posted 10 Oct, 2019 5:17:31 UTC The new edition of Off The Hook from 09/10/2019 has been archived and is now available online. "Off The Hook" - 09/10/2019 Download the torrent here!!!! View the full article
  12. #!/usr/bin/env python import urllib.request import json import re import subprocess # see https://www.weather.gov/documentation/services-web-api #where are we? GPS coordinates lat = 39.275235 lon = -120.9199507 #what is the user agent string? agent = "Jezra's fun lil script" #minimum wind speed in mph? min_speed = 9 def get_api_data(endpoint): print(endpoint) #prepare the connection with custom headers request = urllib.request.Request(endpoint, headers={"User-Agent":agent}) #create a handler for the request handler = urllib.request.urlopen(request) #get the text text = handler.read() #parse the json text to a python object obj = json.loads(text) return obj def wind_is_good(s): #use regex to find the matches matches = re.findall("[0-9]+",s) for match in matches: #convert string to int m = int(match) #is the speed good? if(m>=min_speed): return True #if we get here, there is no match :( return False start_url = "https://api.weather.gov/points/{0},{1}".format(lat,lon) #get the json response from the start_url as a python object obj = get_api_data(start_url) #get the forecast url from the returned data forecast_url = obj['properties']['forecast'] # process the forecast url forecast = get_api_data(forecast_url) #loop through the forcast periods for period in forecast['properties']['periods']: #put name and windspeed into easier to handle variable names name= period['name'] wind = period['windSpeed'] print (name, wind) #check the wind speed if wind_is_good(wind): subprocess.call(["textjezra","{0}: {1}".format(name,wind)]) View the full article
  13. NEW 'Off The Wall' ONLINE Posted 09 Oct, 2019 2:28:21 UTC The new edition of Off The Wall from 08/10/2019 has been archived and is now available online. "Off The Wall" - 08/10/2019 Download the torrent here!!!! View the full article
  14. Intro We’re going to have a look how to select random item from weighted list. There isn’t that much code this time, but it certainly took many tries to get it working and looking nice. Analogy Imagine stack of building blocks of different heights stacked on top of each other. Height of the each block is chance of how often it will be selected. Selection is done by chopping a stick so that its length at maximum is height of the stack. Place stick next to the stack and select the block that stick reaches at. Explanation of algorithm We have list of items and associated weight, defined as Frequency a = Frequency Int a. Total is sum of all the weights and we select a random number n between 1 and total. pick function has signature of [Frequency a] -> n -> Maybe a. Empty list will result Nothing. When picking item, if n is equal or less than weight of the first item, return that item. Otherwise, drop the first item, subtract weight of that first item from n and try again. Eventually we either arrive to item which weight is greater than n or to empty list. Quick detour on random number generators Haskell functions are pure, meaning that with same input, you are guaranteed to get the same output (safe for some specific cases). Which makes concept of random numbers at first glance to be impossible. This is solved by passing in a random number generator, which can supply you a random value a new random number generator. Using this new random number generator to generate a value yields you a yet another value and yet another random number generator. Passing these random number generators around in code gets tedious, but there’s different solution: MonadRandom. Using it will thread along generators automatically behind the scenes, ensuring that you always have access to a fresh generator. There’s several functions that can be used to generate random values, but we’re using this one: getRandomR :: Random a => (a, a) -> m a. Given a lower and upper bound, it will return you a random value wrapped in context that carries that new random number generator. In the end, we need to take our computation (that can be complex and use multiple calls to random number generator) and turn that m a into a. This is done with runRand :: RandomGen g => Rand g a -> g -> (a, g). We give it our computation and a RandomGen g that can generate random values and receive (a, g) where a is our result and g new random number generator. In cases where we aren’t going to use the new generator, we can use evalRand :: RandomGen g => Rand g a -> g -> a, which discards it and returns just a. Actual implementation with explanation First, Frequency for expressing weight of individual item. It’s parametrized, so can be used with any data. data Frequency a = Frequency Int a deriving (Show, Read, Eq) Next, determining which item to choose, based on stack and measuring stick. In case a value outside of valid range has been selected, we end up with Nothing, otherwise with Just a. First case is for empty list (either we called this originally with empty list or picked number that is greater than total sum of weights), second one either picks the first item of list or recursive calls itself removing first item. pick :: [Frequency a] -> Int -> Maybe a pick [] _ = Nothing pick (Frequency x item:xs) i | i <= x = Just item | otherwise = pick xs (i - x) Finally, function for calculating total of weights and choosing random number. We’re using that Rand g (Maybe a) I explained earlier. First case is for empty list again and latter case for list with at least one item. choose :: RandomGen g => [Frequency a] -> Rand g (Maybe a) choose [] = return Nothing choose items = do let total = sum $ fmap (\(Frequency x _) -> x) items n <- getRandomR (1, total) return $ pick items n Notice how we can get random number by n <- getRandomR (1, total), without talking about generators. MonadRandom is handling generators and making sure that there’s always a fresh generator available and new generator is stored ready to be used. And that’s all the code this time (I told the amount of code is small this time). In closing This probably sounds a lot more complicated than it actually is. I arrived to the result after quite many detours, but the end result looks pretty nice. Next time we’re going to have a look where to use our choose function. In the meantime, questions, comments and feedback are welcomed. Best way to reach me is email or fediverse where I’m tuturto@mastodon.social. Or even better, record your own Hacker Public Radio episode. View the full article
  15. This is an experiment to see if we can offset the many challenges faced by trying to get a paper magazine into stores worldwide. If successful, this can solve these problems and ensure the future of both the paper and electronic versions of the magazine. We've made it as easy and as cheap as we can. Please support our efforts, spread the word, and buy the new issue! Click here to begin. View the full article