• Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by BINREV SPYD3R

  1. Links hpr 1282 john kulps efforts hpr 2869 part one of my build hpr 2875 part two recycled recumbent fish mouth cutting on Pictures (The images below may be clicked to view the full-sized versions) mocking up parts to see spacing, especially the crankset laying out ‘fishmouth’ cut, used to connect two tubes lay out fishmouth another layout picture, note marks on tube finished product test fitting assembly one, the engine room brazing complete! assembly one done setting up assembly tube, gray tube slips inside the red tube need to cut that small tab off, get to hear this in the recording jigging up the frame, similar to john kulps set up, see hpr 1282 still in the jig but all brazed up, top half of frame done! the next part will be modifiying the rear triangle and brazing it where i’m pointing to. Summary all in all, went better than expected, i’ll clean up those brazing joints after the bike is done and has been ridden for a while, before I paint it. brazing isn’t as difficult as i thought it might be. give it a try its a cool hacker skill! View the full article
  2. We talk about terms often used when using Kubernetes. Terms we talk about Node - Machine to run jobs on. Cluster - Grouping of nodes to deploy work to. Container - Compute unit that we can run in the cloud Pod - One or more containers that are one unit in the cloud that could be started, stopped, or restarted. Service - Different network services that serve the pods Load balancers - Balance network calls to different pods Certmanager - Handles certificates, for instance, let’s encrypt. Ingress - Handles traffic from the external network Volumes - External resources used by pods to keep state ConfigMap - Configuration parameters that could be changed without restarting the pods or deployment. Deployment - A configuration of all the terms mentioned that you use to deploy as a unit to the cluster. View the full article
  3. I have begun to dehydrate fruits and vegetables at home with my own dehydrator, and it lets me have fresher products without all of the additives. In this episode I discuss both the why and the how. View the full article
  4. NEW 'Off The Hook' ONLINE Posted 05 Dec, 2019 2:54:53 UTC The new edition of Off The Hook from 04/12/2019 has been archived and is now available online. "Off The Hook" - 04/12/2019 Download the torrent here!!!! View the full article
  5. In today's show Ken interviews Josh Clements from the project. Josh answered the call to arms he heard on the Ubuntu Podcast. We discuss the plan and explain how you can also get involved. Links View the full article
  6. With small programs it’s easy enough to have all code in single file. But as the program grows, you eventually want to organize things into separate files. In this episode I’ll talk a bit how to define modules and how to use them. Defining Each module is defined in separate file. In our example, we have file called multiplexer.hs, which contains our module definition. At the beginning of the file, we have following: module Multiplexer (mix, match, Plexer, Scooper(..)) where .... We’re omitting actual function and type definitions as they aren’t important to this episode. In any case, there’s two functions: mix and match and two types: Plexer and Scooper that module exports (that is, these are available outside of the module). Plexer is imported as a type only and Scooper with field accessors or value constructors depending if it’s a record or algebraic datatype. Using modules In order to be able to use identifiers defined in separate module, we have to import them into our current one. In our imaginary program, we have main.hs that defines entry point for our program and we would like to import the definitions from Multiplexer module. Easiest one is to just have import Multiplexer at the start of the main. This brings all exported identifiers from Multiplexer and we can then use them. Both qualified and unqualified names are imported. Qualified means name is prepended with module name: Multiplexer.mix instead of just mix. If we want, we can specify what exactly should be imported: import Multiplexer (mix, match). This causes only functions mix and match be imported, while Plexer and Scooper are unavailable for us. Again, both qualified and unqualified names are imported. In case we want only qualified names, we’ll write import qualified Multiplexer. After this mix isn’t available, but Multiplexer.mix is (and all the other identifiers exported by Multiplexer). Sometimes module name is long and tedious to repeat when using qualified names. In these cases, renaming module while importing is a good option. This can be done by writing import Multiplexer as M. After this, instead of Multiplexer.mix you write M.mix. Final thing I’m going to mention is importing everything else except specified identifiers. This is done by writing import Multiplexer hiding (mix). This imports everything exported by Multiplexer, except mix. Summary There are many ways of importing and they can be mixed. Here’s a list of them: import Multiplexer import Multiplexer () import Multiplexer (mix, match, Plexer, Scooper(..)) import qualified Multiplexer import qualified Multiplexer (mix, match, Plexer, Scooper(..)) import Multiplexer hiding (mix, match) import qualified Multiplexer hiding (Plexer, Scooper) import Multiplexer as M import Multiplexer as M (mix, match) import qualified Multiplexer as M import qualified Multiplexer as M (Plexer, Scooper(..)) In short: Some identifiers can be chosen to be imported, while leaving others unimported Modules can be imported qualified (forcing an obligatory namespace qualifier to imported identifiers). Some identifiers can be skipped via the hiding clause. The module namespace can be renamed, with an as clause. Prelude Prelude is base module containing lots of helpful types and functions, which is automatically imported by every module. If this is not what you want, there’s two options. First one is to use pragma at start of the file: {-# LANGUAGE NoImplicitPrelude #-}, which causes Prelude not to be imported. Another one is to manually import Prelude, which turns of automatic import: import qualified Prelude as P. Closing When system grows, it’s helpful to break it into more manageable pieces. For this we use modules. import is used to bring identifiers from other modules into current one. Questions, comments and feedback is welcomed. Best way to reach me is either email or in fediverse where I’m View the full article
  7. Ever Written/Directed by Josh Beck Starring Wendy McColm & Christina Elizabeth Smith Cinematography by Micah Van Hove Running Time: 1:37:42 A young woman named Ever, while grieving over a devastating loss, meets Emily, who helps her to heal and find love again. View the full article
  8. As part of our strict adherence to Cyber Monday, we've made a number of special items available for our loyal readers as well as anyone else who happens to stumble into our store for the month of December. Simply visit to see some pretty good deals on everything from hacker clothing to subscriptions to digital versions of the magazine - past, present, and future. And, of course, you can always wander the digital aisles to find all kinds of other items we keep in stock. All while staying off the roads. View the full article
  9. New hosts Welcome to our new hosts: Nihilazo, Daniel Persson. Last Month's Shows Id Day Date Title Host 2935 Fri 2019-11-01 The work of fire fighters, part 3 Jeroen Baten 2936 Mon 2019-11-04 HPR Community News for October 2019 HPR Volunteers 2937 Tue 2019-11-05 Lord D's Film Reviews: His Girl Friday lostnbronx 2938 Wed 2019-11-06 Naming pets in space game tuturto 2939 Thu 2019-11-07 Submit a show to Hacker Public Radio in 10 easy steps b-yeezi 2940 Fri 2019-11-08 Better Social Media 05 - Mastodon Ahuka 2941 Mon 2019-11-11 Server Basics 107: Minishift and container management klaatu 2942 Tue 2019-11-12 Why I love lisps Nihilazo 2943 Wed 2019-11-13 Music as Life brian 2944 Thu 2019-11-14 ONICS Basics Part 4: Network Flows and Connections Gabriel Evenfire 2945 Fri 2019-11-15 Saturday at OggCamp Manchester 2019 Ken Fallon 2946 Mon 2019-11-18 Sunday at OggCamp Manchester 2019 Ken Fallon 2947 Tue 2019-11-19 The Mimblewimble Protocol mightbemike 2948 Wed 2019-11-20 Testing with Haskell tuturto 2949 Thu 2019-11-21 Grin and Beam: The 2 major mimblewimble blockchains mightbemike 2950 Fri 2019-11-22 NotPetya and Maersk: An Object Lesson Ahuka 2951 Mon 2019-11-25 A walk through my PifaceCAD Python code – Part 2 MrX 2952 Tue 2019-11-26 Publishing your book using open source tools Jeroen Baten 2953 Wed 2019-11-27 How I got started in Linux Archer72 2954 Thu 2019-11-28 Wrestling As You Like It episode 1 TheDUDE 2955 Fri 2019-11-29 Machine Learning / Data Analysis Basics Daniel Persson Comments this month These are comments which have been made during the past month, either to shows released during the month or to past shows. There are 16 comments in total. Past shows There are 2 comments on 1 previous show: hpr1585 (2014-08-29) "36 - LibreOffice Calc - Financial Functions - Loan Payments" by Ahuka. Comment 1: timttmy on 2019-11-30: "Thanks" Comment 2: Ahuka on 2019-11-30: "I'm glad it helped" This month's shows There are 14 comments on 8 of this month's shows: hpr2935 (2019-11-01) "The work of fire fighters, part 3" by Jeroen Baten. Comment 1: Ken Fallon on 2019-11-05: "That sucks" Comment 2: Ken Fallon on 2019-11-05: "That blows" Comment 3: Ken Fallon on 2019-11-05: "You're Fired" hpr2936 (2019-11-04) "HPR Community News for October 2019" by HPR Volunteers. Comment 1: lostnbronx on 2019-11-04: "Ken's Voice Is Better Than espeak" Comment 2: Jon Kulp on 2019-11-05: "Pots" Comment 3: clacke on 2019-11-19: "Release order or episode order?" hpr2939 (2019-11-07) "Submit a show to Hacker Public Radio in 10 easy steps" by b-yeezi. Comment 1: Ken Fallon on 2019-11-07: "Clarification" hpr2940 (2019-11-08) "Better Social Media 05 - Mastodon" by Ahuka. Comment 1: ClaudioM on 2019-11-08: "Simple Mastodon Timeline View Option" hpr2942 (2019-11-12) "Why I love lisps" by Nihilazo. Comment 1: tuturto on 2019-11-12: "welcome" Comment 2: Carl on 2019-11-21: "Well Done" Comment 3: gerryk on 2019-11-22: "loved it" hpr2943 (2019-11-13) "Music as Life" by brian. Comment 1: Carl on 2019-11-21: "Interesting Episode" hpr2944 (2019-11-14) "ONICS Basics Part 4: Network Flows and Connections" by Gabriel Evenfire. Comment 1: Dave Morriss on 2019-11-27: "This is wonderful" hpr2955 (2019-11-29) "Machine Learning / Data Analysis Basics" by Daniel Persson. Comment 1: b-yeezi on 2019-11-29: "Great first episode" Mailing List discussions Policy decisions surrounding HPR are taken by the community as a whole. This discussion takes place on the Mail List which is open to all HPR listeners and contributors. The discussions are open and available on the HPR server under Mailman. The threaded discussions this month can be found here: Events Calendar With the kind permission of we are linking to The Community Calendar. Quoting the site: This is the community event calendar, where we track events of interest to people using and developing Linux and free software. Clicking on individual events will take you to the appropriate web page. Any other business Stand at FOSDEM Our proposal for a “Free Culture Podcasts” stand at FOSDEM was accepted for the Sunday 2nd February. This is fantastic news as this is the largest FLOSS event in Europe and is absolutely thronged the whole day. Anyone going to FOSDEM, and who would like to help staff the booth on Sunday please get in touch. Tags and Summaries Thanks to the following contributor for sending in updates in the past month: Dave Morriss Over the period tags and/or summaries have been added to 5 shows which were without them. If you would like to contribute to the tag/summary project visit the summary page at and follow the instructions there. View the full article
  10. In this episode, I talk about different techniques that we can use to predict the outcome of some question depending on input features. The different techniques I will go through are the ZeroR and OneR that will create a baseline for the rest of the methods. Next up, we have the Naive Bayes classifier that is simple but powerful for some applications. Nearest neighbor and Decision trees are next up that requires more training but is very efficient when you infer results. Multi-layer perceptron (MLP) is the first technique that is close to the ones we usually see in Machine Learning frameworks used today. But it is just a precursor to Convolutional Neural Network (CNN) because of the size requirements. MLPs have the same size for all the hidden layers, which makes it unfeasible for larger networks. CNNs, on the other hand, uses subsampling that will shrink the layer maps to reduce the size of the network without reducing the accuracy of the predictions. Links Some references for further reading on Wikipedia. A video I made some years ago where you can see some visual aids for this subject. View the full article
  11. NEW 'Off The Hook' ONLINE Posted 28 Nov, 2019 5:57:00 UTC The new edition of Off The Hook from 27/11/2019 has been archived and is now available online. "Off The Hook" - 27/11/2019 Download the torrent here!!!! View the full article
  12. TV and pro wrestling go hand in hand. Both have fed off of each other, and with the internet we are now exposed to many different promotions with their own visual style in order to broadcast wrestling in the ring. View the full article
  13. NEW 'Off The Wall' ONLINE Posted 27 Nov, 2019 2:56:28 UTC The new edition of Off The Wall from 26/11/2019 has been archived and is now available online. "Off The Wall" - 26/11/2019 Download the torrent here!!!! View the full article
  14. is the website that I mentioned while distro hopping. Unfortunately, as of August 2019, their site is no longer sending CD’s/DVD’s. How I recorded: Android phone, lapel mic, and Audio Recorder app found here: And here: View the full article
  15. Printing on demand website: View the full article
  16. Code The script being discussed in this show is available for download with this show: GENERIC FUNCTIONS def get_hpr_que(): Goto hacker public stats page and extract the number of days to next free slot turns on blinkstick LED with colour dependent on the number of days to next free slot in HPR queue prints number of days to next free slot to the display GENERIC BLINKSTICK FUNCTIONS def bstick_off(): Search for all attached blinksticks and turn them all off def bstick_on(colour): Turn blinkstick on and set led colour to string value stored in var colour. valid colours are, black, silver, gray, white, maroon, red, purple, fuchsia, green, lime, olive, yellow, navy, blue, teal, aqua def bstick_on_random(): Turn blinkstick on colour random def bstick_blink(colour): Turn blinkstick on with supplied colour END BLINKSTICK FUNCTIONS def run_cmd(cmd): Used to run an external linux command def get_my_ip(): Returns ip address def get_my_essid(): Returns wifi ESSID def get_my_wifi_strength(): Returns wifi signal strength as a percentage def wait_for_ip(): Tries 10 times to get IP address def show_wifi_info(): Show WiFi information on display, shows essid on first line and both the wifi signal strength as a percentage and ip address on the second line. def custom_bitmaps(): Selection of custom bitmaps to use on LCD display Article in pifacecad documentation giving details about creating custom bitmaps on the pifacecad This tool referenced in the pifacecad documentation link above can help design custom bitmaps. Make sure you select 5x8 def writelongstring(longstring): Writes a long string to the piface control and display LCD & scrolls it to the left until the last character appears on the right hand side of the screen # Local Variables (for function writelongstring) DisplaySize = 15 # Number of characters that can be displayed on 1 line of display StepSize = 4 # Step size when scrolling message on display ScrollSpeed = 0.55 # Adjusts scroll speed, delay in seconds between scrolls Scroll = 0 # Default value for scroll, used when string is smaller than display size def init_display(): # Setup LCD display for selected menu 0 (Podcasts), 1 (Audiobooks), 2 (System) def display_main_menu(event): # Clear LCD & dsplays the appropriate main menu message View the full article
  17. We previously looked at the NIST Security Framework, which lays out how organizations should manage their network security. That may have seemed a bit dry, so let’s look at this case study to put some flesh on those dry bones. Failing to manage your security risks properly can have significant consequences. Links: View the full article
  18. NEW 'Off The Hook' ONLINE Posted 21 Nov, 2019 5:48:58 UTC The new edition of Off The Hook from 20/11/2019 has been archived and is now available online. "Off The Hook" - 20/11/2019 Download the torrent here!!!! View the full article
  19. Last time we reviewed the mimblewimble protocol for blockchain networks. This is an innovative protocol focused on privacy and scalability. In this episode we take a closer look at the two major implementations of mimblewimble, called Grin and Beam. They are both interesting projects that take very different approaches, yet both have managed to launch working blockchains that preserve the core strengths of the protocol. View the full article
  20. NEW 'Off The Wall' ONLINE Posted 20 Nov, 2019 1:20:39 UTC The new edition of Off The Wall from 19/11/2019 has been archived and is now available online. "Off The Wall" - 19/11/2019 Download the torrent here!!!! View the full article
  21. Intro I have liked writing automated tests for a long time, so it’s not a surprise that I end up writing them in Haskell too. This is very broad topic, so this episode only scratches the surface. HSpec HSpec is testing framework that automatically detects tests, like most of the modern systems. It supports hierarchies, so one can organize tests by feature for example. spec :: Spec spec = do describe "Very important feature" $ do it "Execution should be error free" $ do ... it "Flux capacitors can be charged" $ do ... describe "Somewhat less important feature" $ do ... Unit test Unit test tests a single case with fixed set of inputs. With pure functions these are a pleasure to write as they’re really just data in, data out, verify results. Below is two examples: spec :: Spec spec = do describe "Markov chain configuration" $ do it "Adding new starting element to empty configuration creates item with frequency of 1" $ do let config = addStart ("AA" :: DT.Text) emptyConfig config ^? (configStartsL . _head . itemFreqL) `shouldBe` Just 1 config ^? (configStartsL . _head . itemItemL . _Just) `shouldBe` Just "AA" it "Adding same element twice to empty configuration creates item with frequency of 2" $ do let config = addStart "AA" $ addStart ("AA" :: DT.Text) emptyConfig config ^? (configStartsL . _head . itemFreqL) `shouldBe` Just 2 config ^? (configStartsL . _head . itemItemL . _Just) `shouldBe` Just "AA" Both are for testing configuring markov chains. First one checks that adding a starting element in empty configuration results correct item with correct weight being added. Second checks that adding same starting element twice results weight of 2. Both tests use lenses for reading nested data structure. Episode doesn’t cover them much at all, as it’s enough to know that (configStartsL . _head . itemFreqL) focuses on starting elements of configuration, selects first item of the list and then selects frequency of that item. Lenses can also be used for modifying data and they don’t have to focus on only one element. Unit tests are easy enough to write, they verify single thing about the unit being tested and are usually super fast to run and not error prone. Property based test Property based tests are used to check that a certain property holds with randomly generated input parameters. I’m using HSpec as testing framework and QuickCheck as tool for generating test data: spec :: Spec spec = do describe "planets" $ do describe "food" $ do it "food requirement for positive amount of population is more than zero" $ do forAll positivePopulation $ \x -> foodRequirement x > RawResource 0 it "food base production for farms is equal or greater than their amount" $ do forAll someFarms $ \x -> (sum (fmap foodBaseProduction x)) > (RawResource $ length x) Above we have to tests. First one checks that with any non-zero population, foodRequirement is greater than 0. Second one check that with any positive amount of farm, foodBaseProduction is greater than amount of the farms. positivePopulation is Generator, that is used by QuickCheck to generate random data for testing. Its definition is shown below: singlePopulation :: Gen PlanetPopulation singlePopulation = do let aPlanetId = toSqlKey 0 let aRaceId = toSqlKey 0 aPopulation <- arbitrary `suchThat` \x -> x > 0 return $ PlanetPopulation aPlanetId aRaceId aPopulation positivePopulation :: Gen [PlanetPopulation] positivePopulation = do k <- arbitrary `suchThat` \x -> x > 0 vectorOf k singlePopulation Generated data can be really simple or very complex. Generating complex data is often convenient to break into smaller steps and write generators for them. Property based tests are somewhat harder to write than unit tests, but they can potentially cover edge cases that might otherwise not been discovered. Working with database All tests shown so far have been testing pure code, that is, code that is data in, data out. When database is introduced, things get more complicated. Suddenly there’s much more possibilities for errors. Below is an example of such a test: spec :: Spec spec = withApp $ do describe "Status handling" $ do describe "Planet statuses" $ do it "Expired planet statuses are removed and news created" $ do sId <- runDB $ insert $ StarSystem { starSystemName = "Aldebaraan" , starSystemCoordX = 10 , starSystemCoordY = 20 , starSystemRulerId = Nothing } fId <- runDB $ insert $ Faction { factionName = "Star lords" , factionHomeSystem = sId , factionBiologicals = 10 , factionMechanicals = 10 , factionChemicals = 10 } pId1 <- runDB $ insert $ Planet { planetName = "New Earth" , planetPosition = 3 , planetStarSystemId = sId , planetOwnerId = Just fId , planetGravity = 1.0 , planetRulerId = Nothing } _ <- runDB $ insert $ PlanetStatus { planetStatusPlanetId = pId1 , planetStatusStatus = GoodHarvest , planetStatusExpiration = Just 20201 } let status = Simulation 20201 _ <- runDB $ insert status news <- runDB $ removeExpiredStatuses (simulationCurrentTime status) statuses <- runDB $ selectList [ PlanetStatusPlanetId ==. pId1 ] [] loadedNews <- runDB $ selectList [] [ Asc NewsDate ] liftIO $ statuses `shouldSatisfy` (\x -> length x == 0) liftIO $ news `shouldSatisfy` (\x -> length x == 1) liftIO $ loadedNews `shouldSatisfy` (\x -> length x == 1) There’s a lot more code that had to be written for this test and majority of it is for setting up database state. The test if for ensuring that when good harvest boost expires, it is removed from database and respective news article is created. These kinds of tests have a lot more code and are much more slower to run because of the communication with a database. There’s also more cases where something can go wrong. But in the end, these kinds of tests are needed if one wants to verify that interaction with database is working as planned. Testing API Last example is about testing REST API. There are two tests, where the first one is checking that proper access control is in place and second one checks that pending messages are correctly retrieved. spec :: Spec spec = withApp $ do describe "Message handling" $ do it "unauthenticated user can't access messages" $ do _ <- get ApiMessageR statusIs 401 it "pending messages are loaded" $ do (pId, fId) <- setupPerson _ <- runDB $ insert $ researchCompleted 25250 fId HighSensitivitySensors user <- createUser "Pete" (Just pId) authenticateAs user _ <- get ApiMessageR resp <- getResponse let jsonM = join (decode <$> simpleBody <$> resp) :: Maybe Value assertEq "message tag" (jsonM ^? (_Just . _Array . _head . key "tag" . _String)) (Just "ResearchCompleted") assertEq "star date" (jsonM ^? (_Just . _Array . _head . key "starDate" . _Integer)) (Just 25250) assertEq "technology" (jsonM ^? (_Just . _Array . _head . key "contents" . key "Technology" . _String)) (Just "HighSensitivitySensors") statusIs 200 Here extra complication is created by the fact that many features of the system are behind authentication and authorization. Luckily Yesod comes with helper function authenticateAs, that allows code to authenticate when system is running in development mode. These test are even slower than any of the previous ones, but on the other hand, they test whole chain from user interaction to database and back. In closing There’s lots of things that I couldn’t cover in such a short time, like various types of tests: UI testing, performance testing, security testing, long running testing…, the list goes on and on. But hopefully this episode gave you ideas what kinds of tests one can write and how to get started doing so using Haskell. Best way to reach me is email or at fediverse, where I’m View the full article
  22. Financial privacy is critical for adoption of cryptocurrency as a means of exchange. Individuals worry about employers monitoring their spending details, insurers increasing rates based on purchases and landlords raising rents when they get a promotion. Businesses can only operate using cryptocurrency if they can prevent disclosure of vendor payments, rates paid to suppliers, payroll details, and so on. At the same time, they need to selectively disclose financial data to governments and might need to demonstrate compliance in some industries. Mimblewimble is a new protocol that uses cryptography to achieve striking reductions in blockchain size, so users can run a full node on low powered devices like phones. It offers the strongest privacy protection assurances around, through a variety of clever tricks. For one thing, transaction history is not recorded, which also results in a smaller blockchain. There are no addresses and no transaction amounts are recorded. We’re not going to focus on the cryptography, although it’s a fascinating example of just how much progress is being made in recent years. We’ll focus instead on what makes this mysterious network protocol unique among cryptocurrencies. View the full article
  23. beni, Andrew Conway/mcnalu, Timttmy, and Dave at the HPR booth. Michael from Electric Flap Jack Custom Built Guitars, and author of Fretboard Template Generator available on GitHub Perspex template for carving the body and neck. A work in progress. Tools for making guitar, including the tool to round the frets. And of course you need a guitar stand. Fretboard Template Generator available on GitHub Tai Kedzierski hanging out with "Grumpy" Mike Cook. Mike produces electronic musical instruments for people with accessibility issues. He also has a book called Arduino Music and Audio Projects to help you do this yourself. At Drake Music we are leaders in music, disability and technology. We are innovators, educators, curators and advocates. We believe everyone has the right to express themselves creatively through music. We use new technologies and ideas to open up access to music for all. Our vision is a world where disabled and non-disabled musicians work together as equals. The bat base. The Cattle Caster. The Arduino Caster The Open Rights Group. Open Rights Group protects the digital rights of people in the UK including privacy and free speech online. We are funded by over 3,000 people like you. Manchester Grey Hats Manchester Grey Hats is a place for all those interested in hacking and cyber security to learn and share. We run capture the flags, workshops and perform/present security research. We encourage all skill levels and those from all backgrounds. Are you an aspiring hacker or a developer thinking about security? Come along and learn. Presenting is open to all members, so if you have something you’d like to present but aren’t ready for the big conferences, get in touch. Said best by The Mentor – “This is our world now… the world of the electron and the switch, the beauty of the baud” Although we meet face to face once a month, MGH is mostly an online community. We encourage people to join us in person for workshops and events but if you can't, join us on Slack and our live stream. An example of the of the locks that needed to be picked for the FlawCon Capture the Flag event. How to hold the lock while you are picking it. View the full article
  24. OggCamp is an unconference celebrating Free Culture, Free and Open Source Software, hardware hacking, digital rights, and all manner of collaborative cultural activities and is committed to creating a conference that is as inclusive as possible. This year a team of HPR volunteers hit the show. Ken's recording kit and some of the stickers. Dave, Andrew Conway/mcnalu and Timttmy getting the booth ready. Only HPR hosts can sign the booth. Yannick signs the booth. Timttmy's script to turn an Android phone into a webcam. Two versions of the script to take a screenshot and post it to the web. Surveillance state ? Our latest host Nihilazo signs the booth. An Interview with Ban Parsons from the Matrix An open network for secure, decentralized communication An Interview with makers of the open FPGA. An FPGA chip is a re-programmable piece of silicon hardware, it can be reconfigured or programmed to a logic circuit of your own design. In 2016 we decided to setup up the myStorm project in order to build OpenSource FPGA hardware. Several years later we are building the 5th generation of BlackIce Development boards. BlackIce Mx the latest generation of our hardware has been built using BlackEdge open hardware standard which enable the 'Core' Board IceCore to be separated from its carrier board which provides MixMod and Pmod hardware add-ons. Please take a look at the myStorm forum to ask questions and participate in our community. An Interview with Erik Grun of the Free Software Foundation Europe about their campaign for Public Money? Public Code! View the full article
  25. NEW 'Off The Hook' ONLINE Posted 14 Nov, 2019 4:46:14 UTC The new edition of Off The Hook from 13/11/2019 has been archived and is now available online. "Off The Hook" - 13/11/2019 Download the torrent here!!!! View the full article