Hi everyone, I have an example here for you of another problem in finding the area between two curves. This one's a little different because number one it's a trig function but it makes use of some of those characteristics of the sine and cosine curves in that they intersect obviously infinitely many times. And what we want to do is find the area of one of those regions. So let's take a look at it on our graphing calculator. To make sure you're in radiant mode when you go to do your graph it would be best to graph it with the zoom 7 zoom trig. So the first one you are seeing here is the sine curve and the red one coming up as your cosine curve. So if you take a look at those regions it kind of looks like a DNA molecule of sorts. We want one of those regions. You really could pick any one of those that you choose. You will have to find the points of intersection or just think of your unit circle values and where those sine and cosine curves would intersect. So really any one of these regions could work and you would just set up your integral accordingly. So I'm going to pick the one right here in the middle sort of right here kind of in this little corner of the second quadrant down into the third quadrant and I got a little little part there in the first quadrant. So I'm going to have to find these two points of intersection one in the third quadrant one over here in the first quadrant. And again there's a couple different ways you could do that. You could use your graphing calculator and get decimal approximations or you can think of your unit circle. So I think we should do that because it's a good exercise in the unit circle. So let's find the easy one up here in the first quadrant. So think about where sine and cosine are the same value. That happens at pi over 4 and since this would be a dx problem think again of the orientation of your rectangles, your representative rectangle. It would go vertically so therefore it's a dx problem. Therefore our limits of integration have to be x values. So the one limit of integration is going to be pi over 4. Then we have to think of the one over here in the third quadrant. So down in the third quadrant think about where it is that sine and cosine are the same. Once again your reference angle is going to be pi over 4. You do have to think in terms of negative angles though so it would be negative 3 pi over 4. Now of course you could go ahead and do decimal values for those. Find the points of intersection. You would have to store those in your calculator though to use. So sometimes it is actually easier to use the exact values. So take a look at the way we're going to have to set this up because remember our representative rectangle on the upper end it's going to be hitting this red curve. Remember the red curve is your cosine and the one at the bottom it's hitting the blue curve is your sine. So that's the way in which we're going to have to set up our integral. So let's go ahead and do that. So you could go ahead and do your antiderivative by hand if you'd like. So your antiderivative cosine of course remember is sine. Antiderivative sine is going to be negative cosine so that's going to be minus a negative cosine so it turns into plus. This would be a great example of one you might have to do by hand but or we could use our graphing calculator. So let's go ahead and try that. So my lower limit was negative 3 pi over 4. My upper limit was pi over 4 and cosine of x minus sine of x dx. So it looks like that. So let's see what we get. 2.828 that's actually 2 square root of 2 if you were to have done the exact value. The exact value of course is what you would have gotten if you did this by hand and evaluated your antiderivative that way.


Hello everyone. This is the Circuit Python weekly meeting for Monday, May 15th, 2023. This is the time of the week where we get together to talk about all things Circuit Python. I'm Dan and I'm sponsored by Adafruit to work on Circuit Python. You might ask, what is Circuit Python? It's a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support Adafruit and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to get an invite from adafru.it slash discord. We hold the meeting in the Circuit Python Dev text channel and the Circuit Python voice channel on the Adafruit Discord server. Typically this meeting happens on Mondays at US 2 p.m. Eastern time, 11 a.m. Pacific time, except when it coincides with the US holiday. In the Notes doc there's a link to a calendar you can view online or add to your favorite calendar app. We also send notifications about upcoming meetings via Discord. If you would like to receive these notifications, ask us to add you to the AdSign Circuit Pythonistas Discord role. So I mentioned the Notes document. There is a Google doc which we use to accompany the meeting and recording. That's available in the pinned messages in Circuit Python Dev. Let me just pop that up to show you. And then before the meeting, if you can add notes to that, that would be great and then we'll read that or you can read it. And the final Notes document gets time stamps included to go along with the video so you can use the document to skip around and view the parts of the video that interest you most. The meeting tends to run 3 to 45 minutes, maybe up to an hour sometimes. After each meeting we post a link for the next meeting's Notes document to the Circuit Python Dev channel and pin it, as I showed you. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. This meeting is held in five parts. I'll explain each part when I get to them. The first is community news. The second is the state of Circuit Python libraries. And the link of the third is hug reports. The fourth is status updates. And the fifth part, which may be empty, is in the weeds where we might have some longer discussions. So with that, we'll get started with community news. And let me silence my phone because it just beeped. Okie dokie. And get my timestamp working. Ok. So these community news is available from the weekly Circuit Python for Microchip News newsletter, which I'll tell you about later. So this news is called from that. So as of last week, there are now over 400 Circuit Python-compatible microcontroller boards, which is amazing. Those are listed on CircuitPython.org. There was a large addition this past week. They include board from many manufacturers. There are boards from the community, some companies that are not Adafruit, and entire new businesses and makers using and shipping boards with CircuitPython. Supported chips include chips from Espressif, Microchip Sandy Line, Nordic Semiconductor, NXP, RP2040 from Raspberry Pi, ST Chips from the ST company, IMX from NXP, and more. Ok. So NXP makes the IMX chips. The growth of CircuitPython-compatible boards since 2017, there's a chart of that. It's interesting that it's been less than a year since 300 boards, which is about two boards per week, which is fabulous growth. And I'll just note that we add Adafruit boards, boards that are made by Adafruit, or boards that are other manufacturers' boards that Adafruit sells. But if you would like to add a board, we have a whole guide on that about how to add a board. You can find it in the Learn Guides, and we welcome community contributions either from the makers of the board or from a community member who wants to add a board that whose manufacturer is not working on adding the board. Ok. Next up, Hackaday Supercon 2023 is on. Hackaday Supercon is going to run in 2023 and will take place November 3rd to 5th in Pasadena, California, in the U.S. The conference organizers will like to hear your proposals for talks and workshops. There's a call for speakers and the note stuck, and there's a blog entry about it. Read all about it. Ok. Another interesting thing that came up. Frequen, which is a Lora-based open-wan network. There's something in the note stock about it. Frequen is an effort to create a Lora-based open-wan network completely independent from the internet and the cellular phone network. It is coded in a micro-piphone with an XS1276 Lora chip driver. It is possible to send encrypted messages that will reach only other users with a matching symmetric key. Frequen also implements its own very small, lossless, and impressed 1-bit images. I don't know what a 1-bit image is, as proof of a concept that can send small media types over a Lora. I have a lot of 1-bit images when I eat crackers and get crumbs on my desk. Next up, using micro-piphone to get started with AWS IoT Core. You can now use micro-piphone to get started with AWS IoT Core with a recent guide by Amazon. Prototype your project to quickly test the full IoT solution. Micro-piphone makes it easy to connect the device to AWS IoT Core and route messages to other AWS services. This is very interesting to use micro-piphone and maybe somebody's also interested in taking a look at this and see if it could be adapted for Circuit Python or whether we already have support in the guide. I do not remember. I think we may have something about that. All these news items came from the Circuit Python Weekly newsletter, also known as the Python or Microcontroller's newsletter. They are complete archives in AdafruitDaily.com, and this newsletter comes out weekly. It highlights the latest Python and hardware related news from around the web, including Circuit Python, Python, and Micro-Python developments. You can contribute news to this newsletter. You can submit a poll request to GitHub. There's a link to the GitHub where the draft, which is handled on GitHub, in the note stock. You can also tag a tweet with hashtag Circuit Python on Twitter and probably on Maston also, and you can email cpnews at Adafruit.com. Any of those ways are great to get news to us. We don't really care what you choose. All right, let's move on to the next section, which is the state of Circuit Python, the libraries, and Blinka. We're going to go through a quantitative overview of the entire project. It will give us a chance to look at the health of the project, separate some of our qualitative status updates. We'll talk about the project overall and then separately discuss the core libraries in Blinka. First of all, overall, in the past week, there were 60 poll requests merged by 25 authors. Some people that I don't have recognized might be new or who have contributed. In the past, Peter, I5 or L5, not sure, 100 Visions guy, Stefan Fluss, C. Guardia, Tyath, Virtual Radish, Muddy900, Furbrain, Bojan Pototnik, Kangos Gal, and Pedro of 16. Sorry if I've mispronounced your GitHub username, but these are all people I don't recognize. They may have been there before, but I'd like to recognize any new contributors. Thank you very much. So I said 25 authors, there were 12 reviewers, and there were 42 closed issues by 11 people and 22 open by 20 people. So that's really great. We've got a lot of closed issues here. So next up, we'll talk about the Circuit Python core and Scott, are you available to read about the core? If not, I can hop in. Go ahead, Scott. Yeah, I think Scott's not muted, but maybe have more microphone trouble. Okay. All right, so this next section pertains to the core of Circuit Python, which is the part written in C that makes the stuff go. And over the last week, we had 19 poll requests merged from 12 authors and four reviewers. So thank you to all of those folks. That leaves us with 20 open poll requests ranging in range from 1 to 453 days old, although those oldest couple are in draft status. And if you do have an open poll request, like I do, we encourage you to go back, check in if there's something waiting for your action to go ahead and do that. And if you need any help finishing that poll request, please feel free to ping us. We'd love to help and get some of those older poll requests closed out. On to issues. We were slightly down with 13 closed issues by six people and nine new issues, excuse me, 10 new issues open by nine people. So that's net minus three. I won't bother telling you the total number of open issues because it is a big number. Instead, I'll talk to you about milestones. Adafruit manages the Adafruit people's time by assigning issues to milestones. And so for the 810 release, which will be our upcoming stable release, there are three open issues we'd like to solve. For the 8XX series, we've got 28 open issues. Those are bug fixes or improvements that we deem compatible enough to go into a minor version. And then for the next major version, 900, we've identified 29 things that we'd like to do. Typically those are breaking changes. And we'll be mentioning some of those a little further down because we're getting pretty close to releasing 810 final. And subsequent to that, we will make the main branch before version 9 development. Anyway, other milestones, we have 543 long term issues. And those are issues that aren't prioritized for Adafruit folk to work on right now, but we always welcome people in the community. If you have an itch there that you want to scratch, if you want to learn to contribute to the core, you can take a look at those long term issues. They aren't all intractably difficult. It's just that they aren't prioritized for Adafruit folk to work on. And we've got 5 issues not assigned to milestone. And so that may indicate that the core developers need to get together and decide if there are some of those to put on our version number milestones or whether to put those on the long term milestone. And that wraps things up for the core.  Okay, thank you, Jeff. Okay, next up is State of the Libraries and Katny, could you read that? Absolutely. So, this section applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore circuit python underscore, as well as the community bundle and a few extras such as our cookie cutter. And across all of those repositories, we have 37 pull requests merged from 13 different authors and 10 reviewers. Part of the number of PRs that we merged this week is related to we updated the version of Pylon to cross all of the libraries so that it works with Python 3.11. So, there's a patch that does most of that automatically, but there's always a few that slip through and so that increased the number. And the cookie cutter PRs are usually we have to update the cookie cutter, so all future libraries also have the update. And that leaves us with 67 open pull requests, which is about where we were last week. So, I would say that most of what's in this list was related to the update. We had 27 issues closed by five people and 12 opened by 11 people, leaving 604 open issues. 51 of those are labeled good first issue. If you're interested in contributing to Circuit Python on the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more. If you're interested in reviewing, check out the open PRs, take a look at the code, if you have the hardware, test it. If you don't, just leave us a comment, let us know what you think. And once you're comfortable with that, we can talk about leveling you up to the review team. If you're interested in contributing code or documentation or bug fixes, etc., check out the list of open issues. They are all available by library. You can search by label if you're new to everything. Good first issue is a great place to start. And don't let the process intimidate you. We have a guide on contributing to Circuit Python using Git and GitHub, as well as the fact that we're always available on Discord to help you. So we want to make sure you can contribute in a way that works for you. So library PyPI weekly download stats, total library PyPI downloads over 311 libraries was 119,313. And there is a list of the top 10 library downloads that I won't read off, but I will say all of them are over 1000 this week, which is not typically the case. So there's been a lot of activity. In terms of library updates in the last seven days, we have three new libraries, Circuit Python AXP192, Circuit Python BMP581, and Circuit Python STTS22H. And all three of these are community bundle libraries. And that's where we are with the libraries. All right. Thank you, Katny. All right. Next up is the state of Blinka.  Yeah, I'm here. This week we had Blinka's our Circuit Python compatibility layer for MicroPython, Raspberry Pi, and other single board computers. This week, we had four pull requests merged by three authors and three reviewers. They're current. We're down to two open pull requests now for amongst all the repositories that are Blinka-related. There were two closed issues by one person and zero open by zero people, leaving a net of 96 open issues. There were 15,603 Pi PI downloads in last week, 9,528 Pi wheels downloads in the last month, and we are now up to 120 boards, just a lot of that's due to community members contributing boards. And that's where we're at. All right. Thank you, Melissa. Yeah, I remember when it was 100 boards. So 120 is fantastic. Yeah, it was like 101 just a couple weeks ago too. That's great. All right. Okay, next up is hug reports. So hug reports is not bug reports. It's hug reports. It's a chance to highlight folks in the Circuit Python community and beyond for doing awesome things. I'll start and then we'll go down the list alphabetically to give everyone a chance to participate. If you've noted the notes that you're text only or you're not in the meeting, I'll just read your notes when I get to them in the list. So we'll start with me. So I'd like to thank Jeff Epler for continuing to work on Synth.io, which is making getting a lot of people very excited. And there are all kinds of already great demos based on the capabilities that he's adding to Synth.io. We're looking at really like a wonderful basis for using Circuit Python to do audio, synth and music synthesis. Okay. Next, thanks to T. Hess, who's continuing to contribute PRs and looking at bugs that are associated with various network related issues. I really, really appreciate that. That's Ted Hess. And thanks to Scott for suggesting last week that, by the way, we look like we were about ready for an 8.1.0 release, which I hadn't seen the light at the end of the tunnel. And now I see it. And I really appreciate that. Okay. Next up is C. Grover. I'll read theirs. Thanks to Jeff Epler and the team of testers for Synth.io. I was blown away when the foundational building blocks emerged and was utterly amazed when I heard polyphony envelopes and effects. Next up is DJ Devin. Go ahead. Thank you. I have a hug for Tyus for helping with an algorithm. He entered, well, I wrote the algorithm and he entered the script into chat GTP, GPT, which spit out a 99% correct answer. The only thing it got wrong was trying to import Numpy NumPy instead of ULab NumPy. And I no longer see chat GPT as an evil overlord, but as a relatively helpful tool. Thanks to Foamy Guy and Nairdark for an interesting conversation about REST APIs, what they are, what they do, etc. And a hug to Lady Aida and PT for dealing with Facebook incorrectly tagging show and tell as hate speech this week. And a group hug for everyone who doesn't engage in hate speech, which is everyone. All right. Thank you, DJ Devin. I have some like brief kibitzing about chat GPT. So, yes, you can use chat PT, but be extremely careful. It can be very confident and still be completely wrong. And it'd be interesting to see a more specialized, like, you can make your own chat GPT models. It would be interesting to see if we just fed the learn guides, the only the learn guides into something into a chat made a language model with, you know, selected content. We might get fewer mistakes, for instance. I took it with a grain of salt and was able to like kind of take what it spit out and modify it and actually use it. And it, it all, it does work. Right. That was great. And you just have to say like, just because it's, it says it's right, doesn't mean it's right. And everybody use it with that in that way. Yeah, it's, it's, it's hard to describe, but you have to like be prepared to modify whatever it gives you. Right. Exactly. Okay. All right. Next up is Foamy Guy. All right. Thanks, Dan. Hard reports for me this week. Thank you to Bill, 88 T and anecdote, who both helped me troubleshoot some issues I was seeing this morning with Wi-Fi, including testing it out on their own on debug builds to try to confirm whether or not they were seeing the same thing. I really appreciate that. It's outside of our community, but a hard report for me goes out to net ninja on YouTube. I've been following their view JS tutorial, basic view JS tutorial on YouTube, and I've found it to be a nice resource. And they actually have loads of other tutorials as well. Although this is the first time that I've found them, but it's great content. And then a hard report, thanks to maker Melissa for a point or two, confirm the behavior around the periods on the 14 by four segment display. It treats those a little bit specially. And I need to go back and test that again with some of the changes I submitted. And that's what I have for this week. Thanks. All right. Thank you. All right. Next up is Jepler. I have to find my unmute button. Hello. So I have a hug for you, Dan, for doing so much to bring 810 to stable and for offering to do one of the upcoming micro Python merges once we've started working on version nine. A big thanks to Todd Bot for making some demos showcasing Cynthia. Oh, I know those were getting some play on mastodon and on hacker news. So bringing people teaching people about what's coming up and hopefully getting them excited as well. And finally to JP Todd, but again, mark for feedback on the next direction for Cynthia, which I will talk about a little bit later when we get to status updates. And that's what I got. All right. Thank you. And next up is Catty. Hello. So first up, thanks to Tectric for updating pilot and black across all the libraries and fixing up the ones that had issues with the new versions. Hug report to FOMI guy for looking into an issue with one of our projects or with all of our projects on read the docs to Jeff for a ton of help with my current project code to you Dan for going through it to make sure I didn't leave any test prints in there and questioning my logic as well. Um, to FOMI guy for talking through a very specific circuit Python feature and whether it would work on a very silly project idea. Um, spoiler alert, it does so silly project may be happening. Um, to Naradoc for more help with my code to bill 88 T for a bunch of help with a Wi-Fi issue in my code and to Scott for adding the inky frame to the circuit Python core and a group hug. All right. Thanks a lot. Um, and then, uh, Melissa, if you're available, go ahead. I just had a group hug. All right. Thank you. Okay. Next is Mark, um, known as gambler 21, who's not, uh, here. So I'll read theirs. Thanks to Todd bot for answering some synth questions about a couple of YouTube videos he made. And thanks to Jeffler for all the synth work, the depth of what I can do is mind blowing. So is the math behind it. Okay. Uh, next is Carter, who's text only. Thanks to Tetric and Catney for heads up on, uh, continuous CI, that is continuous integration, uh, deprecation, needing attention in hybrid Arduino library repos. And thanks to Eva for updating all the repos for the above. So yes, we, there's a lot of maintenance that goes on in the libraries having to do with just preventing bit rot or compensating for bit rot in the library, uh, CI stuff. And next up is Scott. All right. Can you hear me now? Yep. Yeah, sweet. Somehow my setting got changed. Um, okay. So for hunger boards, just a quick one for Joshua from tiny vision AI who was cheering me on for, uh, adding support for the Pico ice to circuit Python. It's a board with a RP 2040 connected up to an ice 40, uh, up 5k, which is a, a well supported FPGA on an open source world, which is cool. So Joshua has been a help with that and they're continuing to help me with it. So thanks to them. All right. Thank you. And then finally, I'll read Tetric's, uh, he's out right now. Thanks to Dan H. Jose David, uh, uh, Catney and foamy guy for PR reviews last week for helping with reading recent passage patches. Yes. Tetric submitted like a bazillion, uh, updates, housekeeping updates to the libraries. And a bunch of us reviewed those and approved them and a group hug. Tetric says, okay. Next up, we've got status updates. So what is status updates? Status updates is our time to tell folks what we're up to individually. I'll start again. It's as we did before, and we'll go through the list alphabetically. When I call on you, you can take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be doing until the next meeting. This isn't also an opportunity to provide tips and tricks relevant to what people are working on. If the discussion comes too long for status updates, we can move it to in the weeds. So I will get started. Um, so I was, uh, I came back from a, a trip, uh, last Tuesday, so I've only been working since Wednesday or so and can't just catching up on things. But, um, late last week, I've been finishing off the last, as many final issues as I could for 810. Um, I fixed a bunch of rather specific bugs, that people had submitted that were somewhere old and somewhere new. Um, so we're down to, uh, three issues. Two of those are kind of related and we might push those forward to 8XX because that issue, it has to do with network crashes and we're still debugging it and it's not a regression, it's a regression from 7, but not from 8.0, unfortunately. So we might just push that forward. And I did a lot of reviews and as I mentioned, I did a bunch of reviews of the housekeeping, library housekeeping, uh, poll requests. All right, uh, next up is C Grover. Um, I've been running a three-ring PCB design and built Circus Laylia haven't been coding much. Nine more boards through Assemble followed by two new designs to send to Osh Park. After that, we'll put all the boards back into the clown car, take down the tent and move on to wrapping up some Circuit Python coding projects and associated guides. All right, great. Next up is DJ Devon. Uh, this week I wrote a basic algorithm, algorithm for temperature bias adjusting the BME280 sensor module. This is just the, the out-of-fruit module, not the one that's like on the boards or like the TFT boards. Um, but it was all Tyeth and Chat GPT who slimmed it down to a linear algorithm into like 10 lines of code. Um, I've calibrated the bias against mercury thermometers and the bias adjustment now makes the BME280 super precise to within a tenth of a degree no matter what the PCB temperature or the module PCB temperature is. It's almost as accurate as a mercury thermometer. The algorithm only needs to go down to 50 degrees to Fahrenheit below that. The PCB is sufficiently cooled and doesn't affect the reading. The algorithm is a work in progress. The more data points in the curve that I can feed it, the more accurate it becomes. By default, the BME280 is about 96% accurate, which that means there's an eight degree deviation when over 110 degrees Fahrenheit. Some of you up north might not reach that. In Florida, that's a yearly, like that's, it's just a matter of time. Uh, my algorithm brings the accuracy up to 99.1% and I'm shooting for 99.9% this summer. And since I'm in Florida, I'm in a good position to track these data points needed above 110 Fahrenheit. I went on show and tell this week with a feather DVI weather station, which I plan on using during a live stream or two live stream during hurricanes until I lose Wi-Fi or power. I tested my first live stream showing me organizing the GUI elements, which is kind of cool if you want to watch that. You can actually see Blanka like reloading in the background over the on-screen display stuff. I have a new project on the horizon using an itsy-bitsy NRF 52A40 with Seagrover's itsy-bitsy adapter and Adafruit Connect mobile app to control an LED candle through different colors. I thought about using WLED at first, but after staying all the different hoops you have to jump through, I just decided to go with Circuit Python and the NRF 52. So that's what I'm going to be doing this week and that's all I got. All right. Thanks for that extensive update. All right. Next up is Foamy Guy. All right. I, over the past week or so, validated a change that we put into the core a little while back that fixed some issues in the RTD docs pages where they don't, like some of the interactive elements don't work, like search and the pop-up for the versions. So I tested that, fixed the same one we did in the core out on the library to confirm that would fix over there as well and then passed that over to TechTrick to get it ready to go out with a patch to the rest of the libraries and it was successful. So that's in motion now. I, over this past weekend, I created an HTTP API for initializing and controlling RGB LEDs. In particular, it supports Neopixels and .stars right now and you can basically connect to it with get and post requests and just send it JSON data to tell it like which pins you want to initialize and how many pixels and things like that. And currently it has control to set all the pixels individually or use the fill functionality as well as like all the other properties like brightness and auto right and things like that. In the future, I'd like to add support for some of the existing LED animations to it.  I finally was dragged my feet for a week or so on the non-blocking marquee scrolling for the HT 16K33, but I did finally get that submitted, although I do have some more testing to carry out. I, this morning, set up a Feather S2 TFT running an HTTP server to try to catch a hard fault that I was thinking was related to running the HTTP server and actually breaking news on that about five or six minutes ago, it did finally hard fault with the debugger running. So I actually have the stack trace from that. Now I just got to debug it and post it back up in issue later. And the last thing that I am up to which is outside the circuit Python world sort of is I'm trying to learn the basics of Vue.js. However, the reason, the motivation for trying to learn it is to be able to tinker with the edu blocks project which does kind of tie it back to circuit Python a bit. But that's what I have got going on. Thanks. All right. Thanks very much. All right. Next up is Jeff. Hello. So the main thing over the last week was improvements to Synth.io and the pull request, I think that was merged late last week, adds tremolo, vibrato, frequency sweep and rig modulation. And we've been having a little discussion in a thread here alongside circuit Python dev. Anybody's welcome to join us and have opinions. But adding LFO objects that can be connected in some kind of topology is a sensible next step. I started the implementation this morning and it's close to the point where I can try to hook it up in a way that it actually replaces the original tremolo and vibrato controls with controllable LFOs. And then JP and Todd Bodd and anybody else who cares to can kick the tires on that. I'm hoping that I'll get a PR in tomorrow. I haven't tested this on a hardware yet. It's just a bunch of C code runs into testing environment, but it seems to be in pretty good shape when I started my meetings this morning. And I also made a lot of progress on my Xerox A20 CPM machine and I'm working on a passive adapter board for a PC34 pin floppy connector to the 39 pin connector on the Xerox drive box that would hypothetically let the Adafruit floppy Featherwing interact with the contents of these eight inch floppies. And I did put a blog post up about the machine. I'll drop a link to that a photo. And then I also asked Chad GPT what is under the yellow sticker on the upcoming Arduino. And I think it came up with some great ideas. So I'm just going to share those with you as well. So another Chad GPT item. And that's what I got. All right. Thank you. All right. Next up is Katnie. Hello. So last week I finally figured out that the issue with my canary nightlight code is that there's some problem with it and ESP32-S2 but that it works flawlessly on ESP32-S3. So the project now uses the S3 QT Pi. Related, I should probably still try my code on a different ESP32-S2 to make sure I don't have a bad board. That said, if it is still present, someone should probably look into why it fails so spectacularly. And that person will not be me, though I'm happy to test it.  There is now a STEM and QT connector on one of our feather wings, but it turns out there was never a guide in the first place. So we're writing the guide instead of just doing a STEM and QT update. So I started that guide and then started the guide for the canary nightlight. I updated the guide I updated two guides. One is the M7. There's specific PWM audio capable pins and that's in there. And then the RGB matrix shield. It had a new revision, so that's been fixed as well. So for this week in no particular order, I do as much of the feather wing guide as I can without the hardware. Should be here tomorrow. Finish up my part in the canary nightlight guide so that I'm not blocking Noah when he's ready to finish it. I'm going to be doing the new Chalk Neo Key breakout guide. Miscellaneous, a couple of guide updates, some guide fixes, and there's three more of those in my to-do list here. And as time permits, I do have some project stuff I want to eventually work on and or document write up some guides there, but there's been a lot of other priorities. So those are probably going to remain background stuff. And in other news, my brand new laptop started its first day of work. This morning, I decided to do a fresh install. So we'll see how this goes. Previous laptop is still ready to rescue things if needed, but I'm super excited. That's what I've got. All right. Thank you so much. Okay. Next up is maker Melissa. Hello. Let's sit here. My, I can't read the documents. Like the text is going to weird. I need to, can you come back to me? I'm going to reload. Sure. No problem. All right. Scott, can you go ahead? Yeah, totally. So I have two libraries that I need to wrap up. One is the Jason stream, which I'm using for this eink or ePaper weather display. Jason stream allows you to process Jason as it comes in, or as it streams in. So it reduces the amount of memory you need to use. It's not super fast, but it is helpful for memory. And then also prompts toolkit, which I'm using for the circuit pirate and note that the circuit pirate will is going to be renamed. We'll look at circuit pirate. This week, I'm going to look into adding circuit pirate support for ice 40 image loading and probably SWD as well. So this might be the chance for as to be able to use circuit Python as an SWD probe. And LaMoure wants to use it just to be able to load images straight from circuit Python. I also want to circle back to USB host on the IMX and do a bit of testing because I saw that TAC was working on it. So I want to follow along with that and kind of support him. If I have a chance, I'll circle back to the continuing IMX testing and I have this learn guide about porting that I need to get back to. Lastly, I made a PR for the inky frame 57. It's merged in and I'm using it here, which is nice. And I also made a prototype branch for the Pico ice board, which is an RP 2040 combined with an ice 45 K, which is an FPGA. And I got one of those boards and so I made the board death for that. So that'll be cool. And that's my update. All right. Thank you. All right. Melissa, are you all set? Yes. It's looking correct now. Okay. Let's see. Last week, I finished adding a bunch of blinker boards to circuit python.org putting set 120 boards. I finished updating the code for my collaboration project airing. I updated platform detects so it now decodes the Raspberry Pi revision code and intelligently determines the appropriate board. This will make it much less work to manage every time Raspberry Pi updates a board. Also makes adding new boards easier. I fixed some issues with the Raspberry Pi installer scripts, but the peers are still open. And I fixed the links for the RP 2040 Feather thinking on circuit python.org. I'm not sure if that's been merged or not yet. And I worked on a so this week, I'm going to work on the cloud project guide. And there's going to be and I'll work on some more issues, get the issues, and get back to improvements for like the Blinka repo and stuff. And that's it. All right. Thank you. Okay. And finally, Techfix out. I'll read theirs. Last week, updated pylon and other pinned versions of pre-commit tools across the libraries fixed an issue with the cookie cutter where community bundles would be missing a new line. Submitted a PR to the core to build the steps package and updated more recent method. Submitting a patch for review that will finish updating pylon for a deprecation warning as well as fix an issue with jQuery that when we got implemented. And this week, Techfix will continue to look through a backlog of issues to complete and look at to making some issues to the learn guide repo to speed up the CI checks. All right. Well, that's it. For status updates, we don't have any in the weeds unless anybody has anything they'd like to bring up. So I will wrap up. Take a timestamp. So just to recapitulate, this has been the Circuit Python weekly for Monday, May 15th, 2023. Thank you everyone who participated, whether in person or by entering your notes. Remember that if you want to support Adafruit and Circuit Python and those that work of us that work on Circuit Python, consider purchasing from the Adafruit shop and Adafruit.com. The video of this meeting will be released on YouTube at YouTube.com slash Adafruit in a little while and the podcast will be available on major podcast services. It will also be featured in the Python for Microcontrollers newsletter which will be coming out tomorrow. Visit AdafruitDaily.subscribe to subscribe. Next meeting. Next week. No, not next week. Never mind. Next week is at a regular time. Next meeting will be held Monday as usual at 2 p.m. Eastern, 11 a.m. Pacific. The meeting in two weeks is delayed because of a U.S. holiday. But we'll talk about that next week. The meeting is held on the Adafruit Discord which you can join by going to adafru.it slash discord to be notified about the meeting and any changes to the time or day you can ask to be added to the AdSign Circuit Pythonistas role on Discord. So we hope to see you all next week. Thanks for your contributions this week. Thank you everybody for attending or contributing. Okay, thanks everyone. I will stop recording.


Coming up on DTNs, workplaces are tracking for COVID. But what about after COVID? A way to let you feel touch in virtual reality and why you should always password protect your stolen passwords. This is the Daily Tech News for Friday, November 13th, 2020 in Los Angeles, I'm Tom Merritt. And from Studio Redwood, I'm Sarah Lane. From Studio Colorado, I'm Shannon Morse. Drawing the top tech from Cleveland, I'm Len Peralta. And two miles away from Tom, I'm Roger Chang, the show's producer. Yes, we have all the time zones covered, Ohio, Colorado, and two miles away from me. What about me? Oh, well, you're in the same time zone as me. Yeah, 150 or so miles away. Yeah. Hey, we were just talking about game consoles. Are you excited about them or are you not excited? Some of us are, some of us aren't. Some of us are excited about different ones. If you want that wider conversation, go get good day internet. Become a member at patreon.com slash DTNS. Let's start with a few tech things you should know. 4Dash filed its IPO with the US Securities and Exchange Commission to go public on the New York Stock Exchange. The company reported it earned $1.9 billion in revenue in 2020 through September 30th, which is up from $587 million in the same period last year. Quite a jump. Net losses for 2020 narrowed to $149 million compared to $533 million in the same period last year. DoorDash says it has 1 million delivery workers, 18 million customers, with 5 million subscribers to its DashPass service. Although the company warned, it may not be able to sustain the growth it's seen during the pandemic. Apple, Google and LG have joined the industry group NextG Alliance, which is creating a NextG development roadmap that will promote a marketplace for 6G. 6G is a real thing. Don't let them over-hype you on it, but it's the next evolution of mobile services. And this group wants to promote adoption, commercialization with North American innovation in mind. The group was created by the Alliance for Telecommunications Industry Solutions and already includes AT&T, Verizon, US Cellular, T-Mobile, Charter, Canadian Carriers Bell and Telus, Microsoft, Samsung, Facebook, Cisco, Ericsson, Intel, Nokia and Qualcomm. But not Huawei. No, weird. Yeah, strange. Austria, rather, Supreme Court dismissed an appeal by Facebook, ruling that the company must remove references to defamatory comments than it made about a local politician worldwide. The case dates back to 2016 when Green Party politician Eva Glawisnig successfully sued to have comments removed after Facebook refused to take them down. A statement from the U.S. Department of Homeland Security's Cyber Security and Infrastructure Security Agency says that the November 3rd election in the U.S. was, quote, the most secure in American history. The investigation determined, quote, there is no evidence that any voting system deleted or lost votes, changed votes, or was in any way compromised. Lot of concern about that going into the election. It looks like they did pretty good. On October 30th, a federal court in Pennsylvania issued a preliminary injunction against a U.S. executive order requiring ByteDances TikTok to either sell off or spin off its U.S. business by November 12th. On Thursday, November 12th, the U.S. Department of Commerce delayed enforcement of the order pending further legal developments, which presumably include an appeal for the injunction. Then Friday, the U.S. Committee on Foreign Investment in the U.S. issued a new deadline for ByteDance to sell off its U.S. TikTok operation by Friday, November 27th, which could only be enforced if the preliminary injunction is overturned by then. All right, let's talk a little more about what's going on with Apple. Our chefs have prepared the stories three ways. Yeah, we've got four Apple stories for you to touch on, so let's touch them. Nine to five Mac found evidence in the beta code for iOS 14.3 that Apple will suggest third-party apps for install during system setup. A message in the code reads, quote, in compliance with regional legal requirements, continue to view available apps to download. Microsoft Office and filmmaker tool DaVinci Resolve will both be available with native versions for Apple's M1 chip on day one. An analyst Ming-Chi Kuo believes that Apple will use something called soft board batteries in the next generation of iPhones. Soft board batteries have fewer layers, meaning phones could be thinner or have more capacity in the same size. Kuo also predicts displays that use 10 to 20% less power and possibly may always be on. Any kind of battery tech gets me going. I mean, the idea that Apple might be preparing for legal requirements to give you selection for things like music apps or browser or mail doesn't shock me, honestly. It seems like something we'd see coming. But using a little different battery tech to either give you more battery life or a slimmer phone, that is intriguing to me. I'm pretty intrigued too, even though I come from like an Android perspective, I just grabbed my first iPhone 12 Pro Max and iPhone 12 Mini, like the first iPhones I've had in like six years or something like that, just today. And I have heard anecdotal evidence from other tech YouTubers that they are noticing a slight decrease in the battery power on the iPhone 12s compared to the iPhone 11 series of like 30 minutes or less. So very close, but it's still a slight concern that there hasn't been an increase in battery efficiency with the iPhone 12s. At least that's what people are reporting. So it would be great to see Apple moving towards a different kind of technology that would allow them to expand it and not have to make the iPhone like a tablet size or make it extremely thick. Yeah, this is LCP soft board, liquid crystal polymer. So it's a more flexible alternative to printed circuit boards. And it also benefits high speed, low latency data transfer. So there's some other uses it might be used for too. So I think the question, oh, go ahead, Sarah.  I think the question for me would be, do you think Apple will choose to make the phones stay a smaller size? Or do you think they would choose to like increase the battery size and make a phone larger? If I'm a betting man, I'm a betting they make it slimmer. That just seems like the more Apple thing to do is you keep the battery life. Maybe let it improve a little bit, but maybe you improve it by using those displays that Sarah mentioned and then you make it slimmer and show off how slimmer it is. It's also a much better announcement, right? The thinnest iPhone ever. When you say like better battery life, people go, oh, that's cool. But for the most part, if your phone is working as it's supposed to work, it's got kind of good battery life at least out of the box. But if you have a phone that's half as thick than the previous phone, it's very exciting. I don't know, we're getting to paper thin at this point. I don't really look at my phone. They're gonna be so fragile. It's so thick. Yeah, it's just too thick. But you always say that until you get the thinner one and then you're like, why are we walking around with these like huge thick phones all these years? Yeah, I do think you're right. If they just get a little better battery life, they could say better battery life and that's all people hear, right? I personally would like a longer capacity, but it's not like the battery life I get now is so bad. It's okay. So yeah, I think that's probably where they go. Wall Street Journal sources say China's President Xi Jinping personally made the decision to halt Ant Group's IPO November 3rd, which if it had gone forward would have been the world's largest IPO yet. The largest before that or now the largest so far was Aramco, but before that, the largest was Alibaba, which was also a Jack Ma company. And it turns out Jack Ma may be the reason that President Xi shut this down because at an event October 24th, Ant Group's controlling shareholder and China's richest man, Jack Ma quoted President Xi saying, success does not have to come from me. That's what President Xi said. Jack Ma pointed that out and then criticized government financial regulation or for holding back into innovation. Ma said, there is no systematic risk in China's financial system. Chinese finance has no system. You could see where maybe that would rub the president and other members of the government the wrong way. Wall Street Journal sources claim President Xi read about the speech and ordered regulators to investigate Ant Group and all but shut down the IPO. Ant has made more than 20 million small business loans. It operates Alipay, which is used by 70% of China so it's quite dominant. However, Ant Group has not fallen under the regulations and capital requirements that traditional banks do until the day before their IPO. New regulations were announced November 2nd. That's the day before the IPO. Fundamentally increasing costs for Ant Group. For example, one regulation would require companies like Ant Group, doesn't name them by name but it basically describes a company that is exactly Ant Group, require them to fund 30% of each loan it makes itself. That's a lot of money that Ant Group would have to provide in each loan that it doesn't have to right now which fundamentally changes their balance sheet. In response to these new regulations, Shanghai's star market suspended the IPO and Ant Group went ahead and withdrew it from Hong Kong's exchange. Ant Group can list again but its valuation will likely be much lower and it would not be able to raise as much money because it's not going to make as much money under these new regulations. This is how you do it. You got an authoritarian regime and your tech companies getting a little rambunctious. You don't do an antitrust probe.   He was saying, this is what the president said that success doesn't have to come from the person at the top of government and Chinese finance has no system meaning there are many options and look at Ant Group success as a measure of that. So yeah, this seems petty argument between- I don't know man, power and rich. If I'm the person who has set themselves up permanently to develop the best systems in the world through Chinese innovation and you say my country has no system and you're a threat to me because you're the richest man in the country, I kind of see why she would react to that. Well, Facebook is rolling out something new. It's called vanish mode across Messenger in Instagram. After a message is viewed by another party and the chat window is closed, the message will no longer be accessible. All participants in a conversation will have to opt in. That's really important to vanish mode before it becomes active in a conversation. The apps will notify you if there's some kind of screenshot taken while in vanish mode and the feature is not available in group chat. So it's only between two different people. Vanish mode is available on Messenger in the US and some other countries now and it's going live in Instagram in the US and some other countries starting very soon. So vanish mode implies like, oh, I can send this. It'll vanish from both of the devices and no one will ever know. I'll even know if they took a screenshot. Shannon, I'm sure this means it's bulletproof in there. There's no way that that message could ever be saved. Oh yeah, totally bulletproof. Well, there's two things that sparked my concern from reading this article. And the first one, which I mentioned was the screenshots. They say, yeah, you get notified of screenshots, but there's still a screenshot being taken. And again, if somebody is choosing not to take a screenshot on their phone, they could still take the phone, point a camera at it and take a picture of the screen on a different device. So it's not like you're going to know bulletproof 100% that somebody is not taking a screenshot or if they are. And the second one was Facebook does say that you can report people for conduct violations even if they are using vanish mode. So my question would be, and I don't know the answer to this, how long do they keep a copy of the vanish mode conversation and how are they able to track reports and be able to review those reports to find out if people are actually in violation of some kind of code of conduct. Yeah, because this is supposedly encrypted. Yeah, exactly. And they've been doing encrypted conversations for quite some time. So how are they checking in on those violations or are they just taking it from the user's concern and not really reviewing it? I don't know. So I would love to know more. Take a screenshot. Yeah.  And it sort of implies that whatever I'm gonna tell you is more sensitive than your average messenger conversation. Right. So the fact that, yeah, if you take a screenshot and I get mad at you because I see that you did it, you still have it. You know, it might be too late for me, but if you're really trying to get me, you know, and you point another camera at the phone, then that's, you know, it's a feature that it seemed to come in handy. You know, when Snapchat first introduced it, I was like, oh, that's pretty clever. And then I was like, it doesn't really change anything though. It doesn't save anybody from anything. I think what we're saying is the primary usage of this is for teenagers who don't want their parents to see their chats, right? Like that's pretty much what it's good for. That's very true.  You're not going to use vanish mode on message or Instagram. Hey folks, if you want to join in the conversation in our Discord, your messages will not vanish, but you can talk to folks in there and you can join it by linking to a Patreon account at patreon.com slash DTNS. David Gershgorn writing for one zero discusses the rise of contact tracing devices in the workplace and their use for worker surveillance. An example is Austin's radiant RFID, which has expanded from selling Bluetooth and GPS trackers for equipment to selling stripped down Samsung smartwatches for social distance monitoring. This is important. It emits a signal and if a strong signal indicating proximity to another watch is detected for more than 15 minutes, that event is logged in case either of those employees wearing the signal watch test positive for COVID at a later time. That helps companies detect who might have been exposed to an infected worker. It's good contact tracing. It's a solid reason to do it and it's a way to protect people to say, hey, you were near this person, they tested positive and we know that you were near so you should go get tested yourself, et cetera. Other companies are offering similar products, including Arista Flow, Konexon is working with the NFL and 200 other companies. PricewaterhouseCoopers has been developing something along these lines and other companies are expanding as well. FLIR, you probably know FLIR as the infrared vision folks, they're selling thermal imaging cameras for detecting employee temperature to kind of do a mass scanning as you walk into a place or maybe as you're walking around to say, hey, that person looks like he might have a temperature. You might wanna go follow up and take their temperature just to check. Also facial recognition systems are being used to replace fingerprint sensors for touchless security. Gershkorn makes the point that physically tracking individual workers has usually been reserved for high risk workplaces like health or construction where safety concerns, legitimately outweigh privacy concerns. We wanna make sure that patients aren't wandering off, that nurses and doctors are going to the places that they're supposed to be. With COVID, that safety outweighing security and privacy kind of could describe any workplace. Sarah Kreps, a professor of government and law at Cornell University surveyed 2,000 people in the US and found that 44% were comfortable with contact tracing wearables. That seems like a very high number. It's not 50%, but it's close. When COVID-19 is no longer a concern, the systems will be able to be repurposed because companies will have paid for them. So they might start using them for tracking expensive equipment, for patients in hospitals, or even employees for safety or productivity reasons. And that's where the concern about mission creeps in. I have thoughts. I have thoughts, y'all. There's a lot of concerns about privacy when I read this, but I was also looking at it from a attacker or a hacker's perspective, not just hacking data, but also location hacking or location attacking as a criminal mindset might be. How can you use this data to, for example, potentially determine where employees are at during specific times of the day to kind of determine where you can go to have the least interactions with employees so that you could, I don't know, break into a bank or something. Don't get any ideas, anybody, that's listening to this. But that's something that you might wanna think about is how is this data being transmitted to the bosses, to whoever is tracking the employees? Is the transmission of data being encrypted? Is it stored on a control server that is being encrypted locally while it is stored in just a simple state? Who has access to it? And how is that data going to be protected? There's a lot of things that I was trying to think of in consideration of how they can protect their business so that there's not potentially liability concerns if there's like a break-in or maybe somebody is interested in stalking employees or harassment, because location can give away a lot of really potential privacy concerns for these employees. And not only that, but they talk about, you know, having locations tracked within the vicinity. Like if one of the examples given in the article is a radiant RFID could use wifi. What frequency are they using for the devices that people are using? Are they using a handshake to authenticate to a local wireless router or wireless network? Is it encrypted in transit? How do they know that they're, you know, connecting to the proper wireless network if it is over wifi? How do they know it's not like a wifi pineapple? Right, right, that's the key, right? Because with that situation, I think the PricewaterhouseCooper has a similar thing where you have an app that only tracks you when you are in the workplace, right? But is it using GPS or is it just connecting to the workplace wifi to say, oh, I'm connected to the workplace wifi, I must be at work. But if you have a wifi pineapple, that might not be true. Might not work. And that's another concern. Another example given is using geofencing to be able to only track employees when they are at a specific workplace. But we already know from experience that geolocation data can be spoofed. For example, Pokemon Go players were doing this for years so that they could get Pokemon from other countries. Like who's to say that you can't do the same kind of geolocation spoofing to make employees look like they're not there or make them look like they are there? So that's not even like a COVID concern necessarily, but a concern just about like the safety of the business and the safety of the employees. I also wonder the variety of workplaces. I mean, workplaces, I assume a lot of this is, you're in a building, there are people in proximity. I thought 15 minutes, huh? If I was in proximity to a coworker who was sick, I probably don't even wanna be in the same vicinity as 15 minutes in order to be concerned. I assume that they're trying to cut down on kind of mass hysteria if there isn't a need for one, but it really depends. How high is the ceiling? How is the ventilation? Is the workplace partially outdoors? So it really depends on where you work and how many people you're around. There's a lot of variables. The 15 minutes is a standard for contact tracing to say like, if you were near enough within two meters of someone for 15 minutes, you may have gotten enough viral load, even if they had mass on possibly, to be of a concern. That's a standard that's been set by a lot of health agencies around. So that doesn't really, that particularly just seems like, okay, they're just taking standard practices and using it, right? But it is concerning that, it's not perfect, none of this stuff is perfect. And you are giving up some of your privacy in order to have an imperfect protection. Now, I personally think it's appropriate right now, but I share a lot of Shannon's concerns about like, it needs to be implemented properly. And I think the point of this one zero article, which I thought was very good because it wasn't alarmist was to say, hey, it may be right to use these things right now, but there needs to be a plan to understand how they will responsibly be used or retired when we don't need them anymore. I think that if businesses want to use this after the pandemic has decreased and we can go back to a somewhat normal life, one of the positive ways that they could use this is allowing employees to wear them, but using it to understand the workflow of their environment. So maybe they could increase productivity based on where they put machinery or choosing how they're going to renovate a building based on the workflow of the employees in a restaurant. Like there's a lot of potential positives to doing this kind of location tracking on employees, but it really has to be regulated correctly. And I think that the data privacy and security and how they protect that data is a valid concern. Yeah, there's a lot to think about. I highly recommend going over to onezero.com and taking a look at this article. We'll have it in the show notes. All right, moving on, a scientist at Cornell developed a stretchable skin sensor that uses fiber optics to measure touch. Each finger combines a transparent polyurethane core with an LED-linked core loaded with absorbent dyes. When you bend the fingers, strain it or put pressure on it, the dyes light up and register what's happening where? The prototype glove was 3D printed and it uses Bluetooth. The glove could eventually be used in robotics to give it a sense of touch and better handle real objects. It also can be used in sports medicine for analyzing motion better. And combined with a haptic system, it could provide feedback when you touch a virtual object. Yes, and this is much better at it than the Nintendo glove as someone killing 556 mentioned in the Twitch chat. This is a little more accurate. And this is a big evolution because if we can get very accurate, very sensitive measurement of touch and then you combine that with haptics so you feel like you're touching, virtual reality can start to feel like you're actually picking up virtual objects. Yeah, not only not needing joystick type stuff, but being able to feel while you're in the world. That is very cool. That is so fun. I would love the idea of being able to play virtual games and be able to get some kind of feedback whenever I'm supposed to pick something up. Like if you're playing a FPS and you're supposed to pick up a heavier gun, wouldn't that be cool if you could tell that it's a weighted piece of machinery that you're picking up?  Don't pet the mean monsters. Like, you know, we're just talking about the haptic version of this, which isn't even part of this development, but just the idea of being able to sense pressure, sense touch, could be very useful for robots who handle fragile stuff and it's really hard to provide that kind of sense of touch. And actually the scientists developing this think that sports medicine might be the one that really benefits from it because you can actually tell how people are using their hands recovering from injury or maybe even just, you know, trying to optimize their ability to move. Yeah, or what is causing an injury, right? Yeah, right, right, yeah. It's the future. So cool. Yeah, well, my RSI thanks you in advance. That's great. It totally could work for RSI. Not even just sports medicine. It could work for occupational medicine too, yeah. Yeah, just like, what are you doing that's clearly, you know, the cause of the problem that somebody who's an expert could be able to point out that I don't really know? Like, oh, you're pushing on your keyboard much more than you need to, Tom. Right, yeah. Or like your pinky is doing something weird. Yeah, right, right. No, there's all kinds of good uses for this. And VR is not the least of them. I think the VR aspect is very important.  That's really cool. Well, we can sort of laugh and cry about this next story. A cyber crime operation apparently tricked hundreds of thousands of Facebook users into sharing their account passwords. Boo. However, the hackers ended up exposing their own work by forgetting to password protect a cloud database storing all of the login credentials, which meant anybody with a web browser could view the information, including the methods that the hackers used, which was things like websites posing as legitimate services, offering to show you as a Facebook user who viewed your Facebook profile, even though that's impossible, but people love that, which then sent the users to fake Facebook login pages with password prompts and you know how the rest goes. Israeli security researchers, Noam Rotem and Ron Locar published their research Friday with security website VPN mentor and reported it to Facebook. Facebook forced to reset of the passwords for affected accounts and the data is no longer exposed. Ah. I mean, that's that's the comment, right? I mean, obviously, they don't watch any of the security tutorials that I do because protecting your assets with password management. Is a very important topic that we all know. Yeah, it's kind of it's kind of two stories. It's like, well, Facebook users, it's like, you know, you fell for it. There are certain things that a company promising something to you, but you got to just be able to flag that stuff is, no, you can't do that. This is, you know, this is very sus, but the cyber crime operation itself, man, talk about sloppy work. Yeah, there may be honor amongst these, but there aren't always proper protocols. Mm-mm. Well, a reminder to everybody who has feedback on anything that we talk about on the show, we'd love to hear it questions, comments, all the like feedback at dailytechnewshow.com. Also, a big Friday the 13th shout out to patrons at our master and grandmaster levels, including Chris Smith, Martin James, and DeGrasia A. Daniels. And Len Peralta, as you heard at the beginning of the show, has been here to illustrate our stories today. Len, what have you drawn for us? Yeah, there should be a Darwin Award for cyber criminals. I think this, if there isn't already, this piece is called Show Your Work, which just kind of just writes itself, right?  I like that one of the hackers here, one of the criminal hackers here is one of those kinds of people that doesn't wear the mask over their nose. I'm glad you noticed that. Yes, he's showing the little nose there. A little bit crazy. Yeah, this piece called Show Your Work is available right now at my Patreon. If you're a Patreon banker, patreon.com.com.com. Or also at my online store, lennpraltastore.com, where you can also order your own custom card, custom holiday card. So go ahead and go check that out today if you can. Sorry, a spider was just crawling up my shoulder. Oh, I was like, I was looking at my own shot, and I was like, oh my gosh. Okay, no matter, it's cool, spiders are cool. Thanks to Shannon Morse for being with us today. Shannon, we love your work. All sorts of security tips, as you mentioned, tell folks where to go. YouTube.com slash Shannon Morse, just like my name is spelled. And yeah, there are no worries, no spiders on my YouTube channel, but I do talk a lot about security and privacy, and I have iPhone unboxings coming up very shortly, so keep an eye out for those. Listen, folks, don't ever accuse Sarah of not going all the way on Friday the 13th. Make things exciting. Hey, would you like a DTNS hat or a hoodie or a mask or a mouse pad? We have all that and more at the DTNS store. Go check it out, dailytechnewshow.com slash store. We're also live Monday through Friday, whether they're spooky or not, 4.30 p.m. Eastern 2130 UTC. Find out more at dailytechnewshow.com slash live. We'll be back Monday with Dan Benjamin. Have a great weekend. Talk to you then. This show is part of the Frog Pants Network. Get more at frogpants.com. Diamond Club hopes you have enjoyed this program.


Information, tips and tricks for Hillbilly Days 2024 presented by the Appalachian Wireless Arena. This is the Hillbilly Handbook. Pike County is buzzing with excitement and anticipation of the 47th annual Hillbilly Days Festival, which will kick off its festivities on Thursday, April 18th. Back years ago, my dad, the late Shady Grady Kenney, and Dirty Eager Stratton wanted to have a little parade and that money would go to Lex and Shriner's Hospital. And here we see it, you know, it's the 47th year of it. All three days of the festival will be filled with games, rides and food trucks. The opening ceremony for the event will be held at the Pikeville City Park on Thursday, starting at 5 p.m. I think that this little festival is one of the top festivals in the state of Kentucky. It's really worked good and it's helped so many kids. Appalachian Wireless wants you to save money this tax season. With the iPhone 13 for a penny. On the Appalachian Unlimited for Mix and Match Plans. In-store only. iPhone 13 for a penny. Terms and conditions to apply. We are you. We are Appalachian Wireless. Multiple stages will host musical performances throughout the event and Shriner's, both local and out of state, will be set up across from the city park to sell merchandise. While the festivities are fun and exciting, it is important to remember that proceeds from the festival go to the Shriner's Children's Hospital in Lexington. I know as of right now, just in our county here in Pike County, we're running over 300 kids. And we got to looking at the appointments. There's been over a thousand appointments last year. So the people in this area and the kids in this area are getting help. While you walk through the festival, be sure to stop by the Hillbilly Christmas and July booth to buy some merch. Purchase a raffle ticket for a motorcycle and take a photo with their Hillbilly outhouse. All proceeds from their merch sales go towards the Shriner's Children's Hospital. For Mountain Top News, I'm Kelsea Fidell.


It was about microbiology. She had come in from the doctors, and she said that she'd got some antibiotics for her cold. Being a microbiologist, I said that you don't get antibiotics for a cold because the cold's a virus, and antibiotics deal with bacteria. My mum felt that I was looking down on her, and she wasn't going to put up with that, so she stood her ground and wasn't backing off. Because I was a microbiologist and I was right, I wasn't backing off. By the time my dad came in from his work, the two of us were not so much discussing but more screaming at each other. My dad calmed us down. He listened to the arguments and he said that it's obvious that your mum's right. Off went mum, happy as Larry, into the kitchen. I looked at him and I said that she was so wrong. Dad said, yes, of course. I said, how could you take her side when you know that she's wrong? And he said, Jim, you don't need to sleep with her. My dad may have started as a sheet metal work apprentice for upper class ship builders but at that moment in time he was Yoda. He was a Jedi master and he was the wisest man on the earth because he saw that in the end it's not the winning or the losing of an argument that matters. In the end it's relationships that matter because he saw that the community in our house would draw or wither on what we see and what we do. Every faith, every philosophy has at its basis the importance of relationships, maybe with a higher being, definitely with other people. My simple words of advice to you this day are these.  Rely on them, trust in them, maybe see our legacy as how we make this country a community where everyone can call it home, a place where you can be listened to respectfully and know you're loved and cared for. I'm going to say a wee word of prayer if you want to regard it as a reflection and take it like that. I'm quite happy to do so. May we do what we need to do this day to help grow community and may we consider how every decision we make helps or hinders that community. Amen.


So the next talk is progressive apps ready to take over the world. I will show some examples from my little app. I'm Jarek Lipski. Well, I have a little company together with a better person. Clouder. Okay. Maybe I can put it closer. Okay. So my name is Jarek Lipski. I live in Paris. I'm from Poland. I currently have a little company. We develop progressive web apps as our specialty. We do other things too. So first question for you. What are the progressive apps? Who knows what are progressive web apps? Just a bit more than that. But yeah, good point. Okay. And who is actually developing progressive web apps? Okay. Quite a few people. Okay. Interesting. So yeah. So there are actually many definitions of progressive web apps I chose just a random one. It's a set of technologies and it's a bit blurred. The lines are not completely clear. This is just an addition to a web app, we can say. It's a progressive enhancement. Yeah. So the typical stuff that we, when we think about progressive web apps are, for example, that they are available offline, they load fast, they use HTTPS always, they are responsive. I will talk about this later. You can install them, you can launch them from your home screen from your mobile device. And other things and push notifications, I will not talk about this. Okay. So now a little demo. Yeah. So actually before the demo, I wanted to show that I have a question. Who is another question for you? Who is using FOSDEM mobile app here? All right. Almost everyone. Great. Who use this one? Who use the Sergerner? Okay. A couple of people. Great. Thank you. So now I would like to invite you actually, if you want of course, to visit this link at the bottom, HTTPS Sergerner Rocks. If you have a minute and take a look, and at the end of the talk, I will ask you for some feedback if you can. I mean, if you are interested, I will be talking, I will not be waiting here, right? I will continue, but yeah, if you want to play with it, I will be very happy. And yeah, I can talk with you later. It's open source. It's a little app that I created a couple of years ago. Okay. So yeah, so a little demo. So maybe I'll do a short demo on this. Oh, actually, does it work? No, it's not that. Not you. Sorry. Yeah, so this is actually my phone, right? So actually I wanted to show you a demo on my phone. Yeah, so first thing, I will talk about this later. Well, first thing that will happen, well, I can just visit the link, right? I hope I don't have any further Sergerner Rocks. I can just visit my link, and that's how it will look. So it's a website, basically. It's loading the entire Foslum schedule. That's why it takes a bit. Yeah, and that's how it looks. I can click on a keynote, I can click on it. Oh, we'll come back to this later, this thing that I just appeared. Stay tuned. There are a couple of things. One killer feature, actually, here, that I consider a killer feature, is the fact that you notice that there's a lot of things happening at Foslum. And for me, the only way to actually enjoy, actually, the second Foslum, 2013, I think, that's 2012, so the second Foslum I arrived, I discovered mobile apps, and this actually allowed me to, before coming here, to take a look on the program and actually decide what I want to see. So for me, the killer feature here in this app is the fact that you can bookmark things, right? So you can click on a link, and I can bookmark it. So for example, I wanted to bookmark the last one, so I bookmark it, and then I can take a look at my bookmarks during the day, and I can only choose from the talks I already preselected. So I have some time to actually read the description, because each of those talks, I can read the full description, let's close this, I can read the full description, I can get a bit more informed. By the way, there are also links at the bottom, you can also submit feedback from this app. It's not directly from this app, but yeah. I invite you to send feedback also through this, through the app. So yeah, so that's it for the short demo. I will come back to this later. So, coming back to my app. Oh yeah, let me just finish, because it's actually a progressive app. So the thing that is actually interesting is that I can use, I can visit the same site on the desktop, right? And I have, this is the same app. I have a different interface, because the device is so different that we decided to change completely the interface for the desktop, but yeah, this is the same app. It's basically a website. As I was saying before, right? The progressive apps are basically websites, right? As in the definition. Okay, let's see, how are we with the time? Okay, great. So, so yeah, a bit of stats. Okay, so yesterday we had about 600 visits. It's the same as last year. It's like 30% more than the last year, but this is not the best metric. So I actually have 165 users who added more than five bookmarks, I consider them active users. I can track it somehow. I will tell you later about this. Actually, you can be completely anonymous with this app, or you can decide to log in, and then, well, I obviously wouldn't track you, but yeah, this way, actually, I can also anonymously see how many bookmarks people add. So I can see this. And the second letter, use it, is that actually in December, I also adapted it to another conference. So very quickly, very easily. Basically, this is one function that converts the schedule to a common format. And this way, I can use it for a different conference. And I changed the interface a bit with the configuration file. So that's actually for FlowCon, which is for process geeks, for software process geeks, agile, this kind of stuff, but cool people. Also geeks, not like those corporates. You know, yeah, care-archical managers and stuff. No, no, no, those people are very nice. Recommend in Paris. Okay, so enough about my app. So I want to talk about just the three things about Progressive Web Apps. I wouldn't give you full overview of Progressive. It's much broader subject. We just have 20 minutes. So I just focus on those three things. I invite you to talk about the others. Obviously, what is missing here, well, one thing I wanted to talk about that I removed in the end, it was about persistent storage. So you can actually store stuff persistently on a device. So basically, it works like a mobile app. So there's no need to register. There's no need to create an account or anything. I can just run my app and store my data there, right? It's actually possible. It works across platforms as well. So I can actually never contact any, I mean, I can just download my app and just use it, never connect to the network again. And another thing that is missing here is push notifications. We all hate them. Sometimes they are useful. Actually, for a conference could be, for example, useful if there's an emergency or there's something that could be actually useful to do. I haven't implemented them in the app yet, but I probably do it. Okay, so let's talk about those three things. So the offline first. So the app actually is offline first. So, well, maybe a bit of technology. Okay, so let's talk about service workers for a bit. So actually, service workers are just our proxy, basically a proxy between your app and the network that allows you to store the data in the proxy. So never contact the network again, for example. Offline first is just one of the options. Actually, you can have all the mixes. So actually, that's what I did in this app. So I'm actually pre-caching all the resources or the static stuff, or we call it shell. I pre-cache all the HTML, CSS, and images, and everything. The first time you visit site and then it shouldn't be requested again unless it's updated. I will talk about this update in a second. So this is actually, I consider it static, right? Then there is another very interesting resource that is not so static, which is actually a schedule which is changing a lot more than I would hope so. I mean, I would need to probably change up the app a little bit. But for this resource, I use a special strategy because in the service worker, we can have different strategies, right? There is a good resource about this. At the end, I send a link. I add it a link. So actually what happens here, if you follow the numbers, right? So the first, I have my browser, my page, will request the service worker for a schedule. And then the service worker will check if the schedule is already in cache. And if it's already in cache, number three, it will respond. At the same time, it will send a request to the network to check if there's a new version. So this way, you can have your schedule immediately visible. I don't have to wait for a network if I'm on a GPR or something, or 3G. But in the background, the schedule will actually update. And if it updates, that's actually, this is also pretty cool. What we can do, what I can do is I can catch the signal, this, oh, exactly, this is because it's changing all the time. So I can show you a quick demo. So actually this message that you see here, the new schedule is available is actually this. So in the background, I actually send a request. The schedule itself is about, is couple of megabytes. So it's pretty big JSON file and also pretty expensive to parse. So that's why I, yeah, so I make this request in the background. So user can actually, I can either force the user to refresh, but that could be a bit abrupt. Maybe I will do it later. Or I can actually show a message to ask the user, do you want to refresh the schedule now or not? So I can quickly refresh. It's a bit slow, to be honest. I need to put it in another thread, probably. So now the schedule should be updated. The schedule itself, right? The toxics are descriptions, videos, links, et cetera. And the third thing, and the third types of resources, I would like to consider, discuss here, are the resources that are actually real time. So this is another killer feature I didn't tell you about. So I'm not caching them at all. So there is a little thingy. I noticed that it's not completely clear what it is. That's why UX, UI is very important. But actually, oh, okay, let's continue like this.  Actually, yeah, that means that I won't, well, we can also check this room. But this thing is actually coming from FOSDEM. There's a FOSDEM API that shows you the room is full or empty. The little thingy, yeah. It tells you that the room is full, right? It should be some, I try to save space here. That's why it should be some information about this. But this is another cool thing, and this is actually real time. So if I lose connection, this will stop updating, basically, or disappear, I don't remember exactly. Okay, so this is about offline, ah, the second offline first, a cool thing about offline first, I wanted to show you, is actually the fact that I can, I can search. So I never considered this, but actually, I didn't show you this, but I should actually go offline, right? Well, you're talking about offline first. So, yeah, sorry, I forgot to do it. So basically, I'm offline, right? So I can search for progressive web apps, and the search works, because it's fully, I have all the index on the local device, right? Whoops. So I can search locally without any access to network. You can search for JavaScript. So this is pretty cool. Actually, the way I did it, is actually pretty simple. I just searched in the JSON file. I do some simple rankings, so the title is more important than the other things, but that's very simple. You can actually, you can have full search engines in JavaScript on the client side. Okay, enough about the front end, about the offline first. Now something about installation. So how the progressive app actually installs? This is pretty magical. Actually, the first time you visit a website, the site installs itself, and the user has nothing to do with it, actually. Then there's something that we more consider as an installation. It will be, we call it add to home screen. So actually, I wouldn't show you this because it's not so simple to show, but there could be a little banner here that I'm implementing, that will ask you to add something to the home screen. It basically works on every platform. So it works on, well, I will show you where it works, actually. This is it. So on Chrome, it works everywhere, even on desktop. So you can add an app to the desktop, on Linux as well. On Firefox, it works only on Android. And on Safari, it works on iOS. And actually, the biggest group of my app users actually use iOS, use iPhones. This is pretty interesting because I suppose the Android app is good enough so everybody is sticking with the Android app, the native one. But iOS users seem to like my app. That's cool. So little demo very quickly. So yeah, so basically, yeah, I have wet hands, sorry. So yeah, so the add to home screen basically will add something like this to my screen if I click it, right? And then it will start behave to a normal app. So yeah, it's actually, I'm actually fully offline, right? So it's actually parsing the schedule because it's pretty big. I should probably optimize it a bit. So the app fully works, right? I can add my bookmarks even and it will stay offline in my device and they will synchronize. The way I do it, I use the proprietary software, sorry for that, I use Firebase. I could actually implement it with another one, with the paste, but I haven't had time yet to do it. So yeah, so this is how it looks. So it looks pretty native, right? It looks pretty like an native app. Yeah, you know, it stays as an app. I can switch to it, et cetera. Okay, how much time we have, four minutes. So the last, yeah, sorry, yes, 10 minutes left. Oh great, because yeah, there's also another five minutes for questions, yeah, cool. I will try to leave some room for questions because I'm really interested. So if you have some questions, feedback about the app, I'm really interested. Okay, and what is also cool, well what is also important is actually we need to update those progressive apps sometimes. So here is actually another, yeah, sorry, it's not very visible. So it says, new version is available and I can click refresh. So basically what happens with the service worker is that if the service worker detects a new version, it downloads itself, but it doesn't activate itself. It will activate itself next time I visit the site. So what I can do, I can detect this information, there's new version available, and show a message to the user, oh, there's a new version, refresh. All right, if you want to refresh immediately. So actually, this is pretty cool. I saw some discussion yesterday on the, false them, meaning these, that there could be some issue with the native, one of the native mobile apps because, because something, the room names don't match exactly to what's encoded in the app. And it's difficult to update a mobile app, the native app, a day before conference because even if you do it, even if you release a new version, users will not download it. And here, I can make a new change and you immediately see this five minutes later with the continuous integration, it will automatically pop up.  So there's no problem of versioning, there's no problem of, this is a big selling point of progressive web apps. So they are always up to date, always fresh. So this is, yeah, so for example, that's why this is one of the use cases for progressive web apps for me, conference apps. So the stuff that changes quickly that you need to maybe adapt very quickly or that you use only for a few days and then forgets. So I don't need to install anything native on my phone, I just install a little web app or even not install. If I prefer, if I can prefer, I can add it to my home screen. If I prefer, I can just use it as a website. This is pretty cool. Yes, and the next subject off. Yeah, sorry, the order is the new worker. So yeah, actually my little note here is here, I will try to switch it on. It's actually, the battery is actually dead. So oh yeah, it's starting up. So actually this is the evolution of the design of the interface. I wouldn't show you the intermediate step. So actually the Sojourner app is a descendant of an old app for Nokia N900 that I discovered a couple of years, I still have it in Nokia. I still sometimes use it, so actually and the first progressive app that I developed was actually based on this interface, was very similar to this one. And then I collaborated with a designer and I really suggest you to do it because especially for mobile devices, the user experience is very important. We have a very limited screen space, right? Well, there are normal people out there. I mean, I know FOSDEM is a bit special, so yeah, you would accept the interface like this, but normal, what does colors mean? What does it do? But yeah, definitely normal users much more prefer something more beautiful. Yeah, so I definitely recommend you that look into the design and actually that's what differentiates your, why can I say product, your projects, right? It's often, I mean, often we forget about this aspect. It's really important. One thing, one important mention I wanted to make is that if you know a bit about the, well, about the front end, right? So there are design systems. There is this idea to, for example, follow Google guidelines that are, that are Google for its material design and Apple, for example, has human interface guidelines and there's another thing from Microsoft. So the question is if I develop a Progressive Web Apps, what should I do, right? The Progressive Web Apps can work anywhere. We'll work on Safari on an iPhone, we'll work on my Android, we'll work on a desktop. What do I do? Which interface, which standards do I adapt? And that's a very good question. Actually, yes, you could implement different interfaces for different devices, but that's a mess. That's like a direction going to the native apps, right? This is the same direction that developing separate apps for each platform. Well, if you want really good experience, then yes, perhaps you could do it. But what I really recommend you to do is actually develop your own style, develop your own identity, visual identity, and try to follow it. So actually, the more you diverge from the standard material design or something, the better you look because it will be yours, right? It will be yours or your company, right? Obviously, we live in the commercial context too. So actually, good idea for me is try to diverge, to create something different. Not try to replicate exactly the standard to interface guidelines from anyone. So I think it's an interesting advice to try to make it different because the more it's similar, but because it will look like material design, but it's slightly different. It's called uncanny valley, right? It looks slightly different, so it feels wrong. So it's better to make it completely different than if it's right. So I didn't completely achieve it. I'm actually basing my design on material design, but pretty much modified. Yeah. So, okay, so just to finish, okay, we are running out of time. So are progressive apps ready to take over the works? The answer is, it depends. There are some use cases that they are much better in. I think conference is a good example. I think progressive apps give us more power as a front-end developer. If you are a front-end developer, give us more, it's just a continuation of the more features to the front-end. And I see them also as a descendant of stuff like Firefox OS. I was a big fan of this one. And the idea to write apps in the web technologies. So I find it interesting. In relation to free open source, I think progressive apps could be a step to break the Android versus iOS dual poly. Because if at some point, all your apps, all your important apps are web apps, then you don't care what device you use. It's like, for me, for Linux, I can many users, I can just propose Linux because most of the stuff they use on the web, the most of the apps they use on the web. So I think if we can get more progressive web apps, then perhaps it would be easier to switch between Android, iOS, and maybe some free open source system that will emerge, right? There will be no friction. Friction will be lower to switch because if I lose all my apps, if I switch the operating system, it sucks. So obviously there are use cases for native apps, so I'm not telling you to only use progressive apps, but it's developing, it's an interesting technology. Okay, that's all I wanted to say. Thank you very much. So if you have any questions or feedback, yeah, please should now or later, if you have time. Do you have some questions? Hi. There are a couple of difference between native application and PWA, such as speed and removing cache, how to solve it? You mean, yeah, I mean, if you want to write an AR, VR app, for example, they even start us for this, right? But if you try to do something that requires native power or write a game, I would stick to the native apps, unfortunately, right? So far, but you know, the web is progressing, like we just saw what you can do with JavaScript, right? You can write games in JavaScript too. So basically it's just a web app, yeah? So, well, they are ready, they are getting ready, yeah? But yeah, they will not, I think this is a wrong distinction, actually I have a text here saying, why progressive apps versus native is the wrong question to ask. Let's not, I wouldn't ask this question. I think, let's use the best tool for the target task. Cheers. Do you use web sockets behind notifications or just like querying all the time the server? No, no, the notifications actually is a mechanism built into the service worker, so the service worker knows that the new version is available and it will send something in my, so it's all happening in the front end. Okay, but... I make an HTTP request to check if the new version is available. I'm sorry, it's querying all the time. Wait. Is it a web socket client behind or just? No, it's not web socket, but if you ask about the schedule, yes, actually it's polling, it's polling every minute, but actually it's not downloading the whole thing because it's checking the e-tag, you know, the last modified e-tag, yeah? Okay, just tag, okay. Yeah, yeah, so it's checking the header, right? I send a check some or it's modified. Okay, I download the whole thing, so it's not... I think it will be better if you use web socket client, just subscribe for changes and server will notify you about each change. You are right. I was thinking about something even better, right? I'm actually using Firebase, as I said, if you know this technology, right? So I could put the whole schedule in Firebase and Firebase, well, it's a real-time database, so push me that data. Okay, I got it. But I wanted to increase the dependency on Google, so that's why I keep it minimal. Only to, Firebase is actually used for bookmarks to actually synchronize them between devices because if I can actually log in in this app, I didn't show you that. I can log in and then I can have my bookmarks between all the devices the same. I will show it very quickly. Is it okay? It doesn't answer your question? Yeah? Try my best. Yeah, so there are very good resources about this. I didn't include them in the talk, but yeah, it's approaching. So actually, you have notifications, you have geolocation, you have camera. You cannot ask Bluetooth, as far as I know, for example, from the web yet, right? So obviously, there will be things that you couldn't do and it's like a website basically, right? But as usual, it keeps surprising me how much you can do in each next year, right? But it's really evolving. Like last two years ago, there wasn't a two-home screen on iOS. In 2019, 2018, it was added. It's evolving very quickly, so yeah. Yeah, so just to prove it very quickly, I can actually log in, right? I cannot do my, oh, it's not here. Yeah, so I can actually log into this app and then synchronize bookmarks between devices. Okay, I think we run into this. Are there any specific frameworks that make it easy to write progressive web apps? Yeah, good question. I use Workbox. That's the library, very popular one. Sorry, yeah, sorry. So me, in terms of technology, I use Vue.js here. But yeah, the library that actually enables progressive apps is called Workbox. Sorry. Okay. Thank you. Thank you. Thank you.