For the first time in nine years, Sadhguru conducted the powerful Samyama program at Triple I in the USA for close to 900 participants. April 10th, Sadhguru attends the Happy Cities Summit in Amaravati, Andhra Pradesh and has a conversation with CM Chandra Babu Naidu about the making of the new city. We have forgotten where we come from. We have forgotten the land that we walk upon, we have forgotten the air that we breathe, we have forgotten the water that we drink. It's very important that we create spaces, if not the entire city, at least spaces, where people are inevitably guided to get engaged with everything that they are in touch with, all the ingredients that make our life. Physical creation is essentially geometric. Whether it's atomic structure, cellular structure or many, many things that the planetary structures or the universe or the cosmos, today modern science has come up with something called as constructional theory, where they're talking about how the atom and the cosmos are fundamentally same design. Complexity and sophistication is multiplying, but fundamentally same design. This is something always is the basis of the yogic process, but the way you are made in some way is the way the cosmos is made, how we can relate this. The entire system of yoga is about mastering the geometry of your existence, how you sit, how you stand, how you breathe. All these aspects because a city or a space or a building can create joy, simply because of the type of geometry it has and how it relates to your existence. So it's great that we are thinking of happy cities, happy world. April 13th, Sadhguru speaks at the Mint Asia Hindustan Times Leadership Summit in Singapore. Success is the sweetest thing in human life, but unfortunately if you look at the faces of successful people on the planet, you get an idea success must be a deep suffering and it is. Because if you look at people, you will see somebody who is not so successful, once they come to terms with their failures, they can walk on the beach, they can laugh, they can sing, they can dance. Successful people can't do a thing because they are successful and they are demonstrating to the world success is a great suffering. There's a wrong message to send to the next generation. It's very, very important that we send out a message. Success is the sweetest thing that can happen in human life.  It's very important at every level of life we are seeking success because this is the nature of human existence. You might have earned a billion dollars yesterday, but today if you can't hit the ball straight, you feel miserable because success is not just about big things in life. The very purpose of action is success, isn't it? April 14th to 15th, Satguru initiates participants into Shambhavi Mahamugra at the two-day Inner Engineering program in Kuala Lumpur, Malaysia. Right now, what Shambhavi means is if you sit here, your body is here, your mind seems to be somewhere else, what is you is elsewhere. Once there is a little space between you and your body and you and your mind for that matter, then you are moving from compulsiveness to consciousness. Compulsiveness means in your patterns of life, it is happening because of old memories and old habits, acquired things which makes you compulsive. When you become conscious of something, suddenly that compulsiveness is not there, isn't it? So the entire process is to see how to create a little distance between you and your physical nature and your psychological baggage. Then suddenly you find you're far more conscious and there is no limit. Once you're conscious, there is no limit. There's another dimension of intelligence within you where there is not an ayauta of memory, it's just pure intelligence as life is. Once you're in touch with it, then what a human being can do and cannot do, these lines are blurred, suddenly you seem to be hugely empowered. Chamba we can do that to you. April 19th, in conversation with Jonathan Coslett at Stanford Graduate School of Business on Capitalism and Spirituality. April 20th, keynote speech at US India Strategic Partnership Forum on Capitol Hill, Washington DC. April 21st, Inner Engineering program at Long Beach, California with intense seekers. April 25th, in conversation with actor Ed Bagley Jr. We take consuming more medicine than food. What's wrong with us? In this 60% of the consumption I believe is in United States. The wealthiest nation on the planet is not healthy because they don't know what to eat. Everything they eat, they've poisoned it themselves. Somewhere one little firm organic here, organic there, no, by law it should be so. The time is over for that where thinking people will do it consciously and it will happen. It has to be enforced. If it's not enforced, now it's going to be late because the amount of human suffering we're causing with this is too much. April 14th to 28th, 98 personnel from the Border Security Force of India underwent Isha Hatha Yoga Training at Isha Yoga Center. They were empowered with technologies for inner well-being. Upayoga, Angamardana and Surya Kriya, Omkar and Isha Kriya. Further, many of them were equipped to be trainers to impart these powerful practices to other BSF. Meanwhile, throughout this month, Rally for Rivers volunteers who have committed themselves to the cause of revitalizing India's rivers full-time for a period of three years have been undergoing training at Isha Yoga Center. They participated in training workshops led by national level experts in diverse areas such as soil science, agriculture, livestock, micro-irrigation, integrated rural development, policy-making and government functions, FPO's and hydrology. Upon completing this technical training this month, these Nadi Viras will set out into the six states of India which have signed MOUs with Isha Foundation and begin the on-ground work.


This study found that the global consumption of added sugars has been steadily declining since 2007, while the consumption of non-nutritive sweeteners, NNS, has been on the rise. This suggests that manufacturers are using NNS to replace added sugars in order to maintain product sweetness. Additionally, this study found that countries with more policy actions to reduce added sugar consumption have seen higher increases in NNS consumption than those without such policies. This article was authored by Sherry Russell, Philip Baker, Carly Grimes, and others.


Hello everyone, welcome back. My name is Rubik's Woman 38 and I welcome you to the Tinkus Canary Workshop. If you have not already joined us in the Discord chat, please go to blueteamvillage.org and click on DEF CON 28 and join us in the Discord. The text chat while we go through this presentation will be in the Text Workshop's Track 1 under Flamingo Hotel. Just scroll all the way down, go to Text Workshop's Track 1 and you can post your questions there. I'd like to welcome Adrian and Bradley from THiNKST. Go ahead guys, take it away. Thank you. Hello and thank you very much for that. That was a kind intro. And we are very excited to be here. And we're going to talk a little bit about how canaries and canary tokens are now going to be integrated into opensock and give you a little bit of context and background on them so you can understand how to use them when going through opensock. So again, big thanks to opensock. We're really excited to be part of it and really glad that they thought to include us in this. All right, so what we're going to do first is just go through some slides real quick here. We'll go through some live demos as well. A lot of what you're going to see is kind of a mix of the commercial product and the free product. Really, the free stuff we have out there work the same way, same principles, same data you get in the alerts. Just for convenience and time sake, you know, you might see a little bit of the commercial product here. So some of our goals when we design canary and canary tokens was, you know, a tool that gets deployed and gets used is useful. So a lot of work went into making them super easy and simple to use. They take minutes to set up and deploy. So a lot of work goes into making them super easy to do that and little to no maintenance. So again, you know, for a tool to be useful, it has to function, you know, so any kind of maintenance, you know, we try and make nonexistent or, you know, we can do it automatically for you in the background. Even the free tool, most of that you can just generate canary tokens, deploy them, forget them, deploy open canary and pretty much forget about it until it sends you alerts. So yeah, and those alerts, that's a big goal also is, you know, how can we get this as close to zero false positives as possible. And ultimately, you know, it's the goal here is to know when it matters to know when an attacker is in your environment as soon as possible when it matters to know that. Right. So as I mentioned, our open source and free products here open canary is available. It's well documented. You can grab it from GitHub. I think the Docker container has been downloaded tens of thousands of times so we know it's getting a lot of use out there. You know, the package has been installed and the you can run your own canary token server as well with a Docker container or you can use canary tokens.org. I think we have over 100,000 people using canary tokens.org. You don't even need to create an account to use it. You can just go there right now and start creating tokens and distributing them throughout your personal devices.  All right, so talking about the context a little bit here. What are these and why would you use them in a blue team environment or open sock. So the goal here is to let you know as soon as the attacker gets in the environment. So, you know, over the last couple of decades dwell time is really long attackers are in environments way too long and they just they go on undetected. And, and that's the problem we set out to solve here is, you know, what if we could get that dwell time down to minutes. So when you at least know that there's something suspicious going on inside the environment. So that's the goal here is the attackers already in the environment and doing suspicious things. And that's what we alert on. So that's important context to understand. And how do we do that. So I've got a quick diagram here just to show you simply what we leverage to make our product work here to make it win.  They're going to have to look around for what they're what they're hoping to find. And if you drop in these these canaries which are honeypots which can look like anything else in your network anything from Windows Server 2016 to a Linux server. You know the idea is it looks like a normal server but there's no there's no real reason anybody should be touching it or using it. So the attacker comes in does that same exploration, and they start setting off alerts. And furthermore, when you take canary tokens, you can set traps throughout even more of the environment you can make it even more tricky and difficult for the attacker to explore around the network without setting off even more of these alerts. So really what the attacker is doing when you've deployed these traps around in your network is they're they're painting a roadmap for you they're painting a picture for where they're going what they're doing.  When they open up some of these token files what are the file names that are getting them to double click that. You know the files that look like they have employee data files that look like they have customer data files that look like they just have more passwords so that they can pivot further into the environment. You know, a lot of strategies you can use when deploying both the canaries and the tokens here to understand what the attackers doing where they're going in your environment, and in paint you a nice picture of what's going on. And of course, when those alarms do get set off we want to make sure they go where you can get to them in the context of open sock this is going to be gray log that's where you're going to see any canary token alerts or any canary alerts. Of course, you know we can send them tons of other places but that's that's where you're going to see them for for open sock. So we'll take a closer look at the kind of details that you're going to get in those alerts. So, where is canaries sit on the network and let you know when suspicious stuff is going on on your network canary tokens can do it at a smaller level. Canary tokens can be a bit of code can be a file and highly complimentary to the canaries you can even have canary tokens on canaries or canary tokens within canary tokens which sit on another place that is triggered by canary tokens you can layer these really deep so that even if one or two aren't maybe triggered you know something is going to trigger if you deploy enough enough of these in your environment. And understand how these work and how you would use them or how you might see them used within open sock we're going to take a look at probably one of the most common and popular canary tokens that get used, which is just the word doc canary token. So in this scenario here, whoever's creating this canary token, you know our canary user creates a word canary token and this token can look like a real word file you can even upload an existing word file, you can copy any kind of contents you want in it. You can make it look as realistic as you want, and you're going to name it something the attacker wants so really thinking about this, you're fishing the attacker you're using the same principles attackers use against us against them. You know you're trying to trick them into opening a file into taking an action that's going to trigger a one of these trip wires that's going to trigger some of these alerts, and let you know what the attackers up to. So grab that, you know, maybe the they send it off to someone else, you know they're going to sell the data. But at this point it doesn't matter anybody that opens this, this word document this token word document is going to set off an alert. As soon as it's opened, you know before you've even seen the contents of that file it could be blank, you know it doesn't matter how clever the file is how cleverly you've made the rules. It could have just been lazy and left it completely blank. And by the time the attacker knows that it's already sent off an alert with some of their data attached to that. And the canary admin gets the alert and sees the details of who opened it where they opened it. And, and you know what's going on you know that that file has left that secure environment wherever you store that file. All right, so what can these alerts tell you at this point we're going to jump into an interactive demo here. I'm going to leave the slides behind. Right. See how big we can make this without it going off the screen here. All right, so this is my console here I've got two canaries running. One looks like a Cisco and one is set up as a Synology NAS. I've got my command line here I'm just going to I'm going to use this to run some in map scans against these hosts here just so you can see what it looks like when one of these alerts does go off. So I'm going to copy this IP address, do a quick scan against it. Hopefully that's big enough to see there, make that larger. All right, so the attacker sees this they see what they would expect to see on a Cisco router on maybe an older Cisco router it's still got telling that open MAC addresses Cisco. I'm going to go ahead and look at what the scan tracking system looks like Cisco looks like a Cisco 1920 router. And as you probably noticed there as I ran the scan we got a few alerts. So, you know, first, first thing we know somebody scans the canary. If you have port scan detection enabled, you're going to get alerts when you get scanned. And we can even tell that it was an end map scan, you know the OS flag and end map is is pretty easy to detect. It really looks like it so we know when we've been somebody's doing some OS fingerprinting with within maps specifically. So maybe the attacker tries to log into SSH, you know they saw SSH was open here, maybe they're hoping for some default credentials. And just like SSH, you know they try three times, you know it doesn't work. There is no correct username or password it's going to get you into a canary. They just exist all these services exist there for the attacker to spend their wheels waste their time trying to get in. They could try to get in through the web config there, which is just basic off nothing fancy here. But they could it could throw brute force, you know dictionary attack against it. All they're going to do is generate more and more alerts for you to see what they're doing. So already we have this picture here, you know they painted this story of what they're trying to do, you know they've scanned the network. They found something interesting they tried to log into it. That didn't work. They tried to log in a different way that didn't work. And you know you can see what this attackers trying to do. And the main thing you're going to use to pivot off of when you see an alert from one of these canaries is probably going to be the source IP. So some of these details can help you as well you can see the username and password that would that they tried. You can even see the remote SSH version that might tell you something about the host that they're trying to get in from. You know so some of these details might help you. But this IP address and the reverse DNS. These are going to be the main things that you're probably going to pivot off of looking through gray log looking through molloc. Some of these other tools that that's going to point you right direction and then you know the rest of the tools that you saw today. If you watch any of those presentations those are going to help you build that investigation and figure out what's going on. When they do hit a web server on the canary. Browsers are nice enough to hand off the user agent that tells you a little bit more about the attacker in this case obviously I'm using a Mac and that's revealed through it. Of course an attacker could you know they can change their user agent. You know they could even mask their IP address. But generally, you'd be able to tell if that's happening as well. You know there's other ways of telling that. Right so that's that's what that looks like. Just doing a scan and trying to log into a few things on the. On the Cisco honeypot there and this one the Synology NAS is also fairly interesting. We're going to do a quick scan of this one. This looks a little bit different. One of the key things that's different about it is it has a file share. So we're going to run a quick scan against it. Again, our results come back pretty quickly here. Mac address Synology services look like what you'd expect of a file share and a network storage device. They do run links and that's what comes back as so you know maybe the attacker any attacker that sees an open file share. You got to know what's on that file share right. So we're going to pop in there and take a look. And by default we're going to make it pretty easy for them to get on there. You know you could lock it down. Use some stolen credentials to get in there. But we really want to know what they're interested in. So we're going to make it easy. You know so with a guest login they can get on there. They can see the different files on there, you know, and this is where it gets interesting if you've got files that look like they have different types of data. Depending on what they go after, you know, maybe in this case they're going to go after the router config, you know, they're still hung up on that Cisco router. They really want to get in there. They want to check out this config see how it's configured. Bummer looks like the files password that's as far to go with that maybe trying on a few others here. But you get to see which files are interested in which files they go after. We see here in the alert they went right after that Cisco router config. And again, by now, you know, this is painted a pretty nice picture, you know, we know who the attacker is. We know they're scanning the network and we know they're trying to get into things. So pretty clear picture of what's going on. And that's really the goal of the product here is to paint a clear picture that, you know, yes, this is probably a malicious attack and we need to investigate it. That that early breach detections.  So I'm going to clean up these alerts real quick here. And we will talk a bit about canary tokens. So like I mentioned before, where canaries let you know when suspicious stuff is going on in the network as we saw with scans login attempts there. So in canary tokens, you can go even deeper, you can compliment that some of those files and that file share I just showed you could have been token files. And what that means. So in the case of the Word doc here. And as I mentioned before, you can even upload your own Word doc so I can take my fake pen test results here. I can just I need to give it a memo. So one of the key things here is you really want to use one token per location. So, you know, maybe, maybe I'm going to put this on my secret flash drive. I don't know why it's secret. It's just a flash drive. I only have one flash drive. Let's say that. So I'm going to put that there. I'm not going to put it in my email. I'm not going to put it on my desktop. It's only going to exist on that flash drive. So if I see any alert from this canary token, I know somebody's got my flash drive. Simple as that because that's the only way somebody could have found this token. So we download that. And remember this was an existing Word doc that I had. You know, I haven't done anything special this is a normal Word doc that you can grab you can upload. You just added a token to it. So the attacker opens it up. There's no indication that this canary token has sent out anything. There's no indication that the attackers fallen into a trap here. But in fact, it has sent out several alerts. Our Word doc canary tokens have what we call our DNS primitive, our DNS tokens embedded within it, and our web tokens embedded within it. And part of the reason we do that is because it doubles our chance of getting the alert out on some networks.  So this wouldn't have gotten back to the console. But as long as the person that opened that Word file had working DNS, we would still get that back. You know, so we've got a really good chance of knowing when somebody opens one of these Word docs. And you can see we get a, you know, the user agent here doesn't give as many details, but we can see what version of office they've got. But the key information here is somebody would have had to have physical access to my flash drive for this alert to trigger. And they were interested in this file out of all the files that were on my flash drive. This is, you know, the first token file that they opened. Let's say I had multiple token files on there with, you know, different file names suggesting they have different types of data in them. And they went after this one first. So that's useful to me also. And then I've got the, you know, both the DNS server that handed off that DNS token that triggered. And then the web token got out as well. So, you know, that that's my actual IP address that's assigned to me by my ISP. That's what the web server sees when this Word document opens and it reaches back to the Canary token server that lives on the console here. So couple, couple useful pieces of information there that I can, I can leverage. So yeah, that's the Word.Canary token. We do have, as you can see here that there's different tokens for all sorts of different purposes. And this is pretty similar to what canarytokens.org shows. I think we have almost every single one of these tokens there as well. The other one I'm going to show you here is the QR code token. This is a fun one because it's very versatile. There's a lot of ways that we see QR codes used in technology today.  You know, you see them out and about in physical places all the time. You know, scan here for more information about this house that's for sale, that kind of thing. So sky's the limit for how you can use these. You can use them digitally or you can use them in physical environments. So let's say I want to know if somebody gets into Adrian's lunchbox. You know, I don't want to know if somebody's just touched my lunchbox. I want to know if they've actually opened it. Because I've stuck this QR code on the inside of my lunchbox. I've printed this out, stuck it in there.  Something to that, that respect, you know, something somebody would be really interested in scanning. So I put this QR code there. If I ever get an alert on this, I know somebody has not only touched my lunchbox, but they've opened it up. They spotted the QR code on the inside. They read the words around it and they chose to scan it with their phone. You know, that's the only way I would get that figure. So that's that's the power there. And we've seen people put these in all kinds of locations. I think one of my favorites is somebody told me that the, they print this out on a sheet of paper, they put the words Microsoft authentic recovery around it and they just leave that sheet of paper on their desk at work and just wait. And that's great. Four people are checking out my lunchbox. They want to see that secret recipe. I know this one is me, you know, we, first of all, we just saw that source IP everybody knows this is me by now. We'll actually do a GOIP look up here. Get some details there. And, you know, we can even see what kind of phone I'm using here. You know, we, you get different details out of these user agents depending on on how they're scanned, what devices scan them. You know, so maybe there's some crazy situation where that those kinds of details are useful. You know, the key point here again is I've only put this token one place. You know, it took me 30 seconds to do it to scan it out, tape it to the inside of my lunchbox. But I can just leave it there forever. And if I ever get a trigger off of that, I know that somebody has been in that lunchbox. Maybe that lunchbox is maybe it's not a lunchbox, maybe it's a data center, maybe it's a network closet. Maybe it's underneath the battery on a laptop, you know, all kinds of different places that you could hide these. Looks like we've got somebody from Oklahoma that scanned it. Again, you know, if you're coming through VPN or something like that, that would be reflected here. But we've got an Android pixel three XL. We've got mentioned via host somebody coming from California. And a lot of these user agents will refer to the application used to open it like I think that previous one we looked at ZX ING that's a barcode scanner app. And then one more here, that would be Bradley. Bradley's in very early in the morning in South Africa and scanned it with his iPhone. So hope that helps to demonstrate the power of how you can use these tokens and how the canaries are used. And most importantly, when you see alerts from these understanding what the attacker had to do to trigger those alerts and what it tells you about the attacker, where they are, and maybe even their motivations and where they're going to go next. And help you pivot between some of the different applications here. So really that's, that's it in a nutshell, I think we still have 20 minutes. If there's any questions, we could absolutely take some of those. Bradley, I appreciate it. This was a great presentation. I did mark down a couple of questions that were asked during the presentation. Does canary token create or does the canary token created based off of the session plus protocol plus application? Is it that uniquely identified? I'm not sure I understand the question. So it might help to talk about the primitives a bit more that that might answer the question if I talk about the web and DNS tokens that are kind of sit behind this. Yeah, I think that would be the way to go Adrian is to look at how the token has been created because I think the question is related to whether it's being tripped by the protocol or the application. Okay. Yeah, so first one I'm going to create here is a web token.  So I can take this web token and I'm going to create a link in this email that this fake email that I put my inbox and I'm going to basically fish, you know, or social engineer the attacker into clicking it. And so what we're actually calling a token is this bit right here. This is the actual token that the web server is looking for. And this address here, and if you're using canary tokens that org, you know it would be something based on that you can run your own canary token server use it on your own domain. You know run your own Docker canary token server. So this could be anything you want. This could also be anything you want. We could name that admin files, we could name this password dot DB, and that's still going to trigger an alert when we go to that. So, and it's based component. And when we just demonstrated the QR code token, that's just using an embedded web token. So super simple way of doing it. So if you're looking a web server with this token here, we know to map that back to Adrian's inbox, we know that that's the token associated with this memo with this reminder that I set for myself. I hope that I hope that answers the question of how that how the token itself works. And, and that's the same token that we have embedded in a lot of these other ones so the word file has a web token embedded in it. And the QR code does, you know, in several of these others do. The other what we call our token primitive is DNS. So, again, there's ways to get, you know, if somebody gets in my inbox, we can, we can get a DNS name to resolve. So if I was to just copy this DNS name, and again here, this bit is the token, you can tell kind of from the length of it. And really it's a C name on the front of this domain, you know that maps back to us. So if I do an NS look up on that, I get an alert. So wherever I've that DNS address, any resolves it if it gets resolved for any reason, maybe I'm just sending it in clear text on the network. Somebody captures that traffic with wire shark and they view that traffic and they tell wire shark to resolve all the DNS addresses that would trigger it, you know something as simple as that. But if if I can find files, you know, any any kind of tricks any kind of ways to get a DNS address resolved that that can trigger a token and send me an alert. Just to add on to what Edwin mentioned is that we embedding HTTP request and the DNS request inside of a document, and we relying on when the document gets opened with MS Word, for instance, MS Word reaches out with those to those URLs of the DNS. So it's MS Word the application itself that's looking up those requests that I embedded into the document and that's what's triggering the alert. Yeah, and that's important to know, you know, some of these require action from the attacker like my example of the fake email my inbox, I've got to get I've got to convince them to click that link. In other cases like Bradley's example with the Word doc, simply opening it is all they need to do you know they don't see it. It happens in the background they don't even know that those alerts have been triggered. And there's nothing else that they need to do. Well, I appreciate it. Thank you, Bradley. Thank you, Adrian. This has been a great presentation. And so this concludes the presentation for the workshop for canary and any case if you have any follow up questions. The speakers will be around in the discord for a few minutes. And again, the discord that we are chatting in is the text s dash workshop workshops dash track one in the flamingo health hotel group to scroll all the way down to the bottom. And so if you guys consider coming down, I think there's a couple of questions if you've got some from follow up that would be great. Otherwise, I appreciate ready listening in today and thank you very much for attending.


Hello everyone, this is Amit Dan of amitdan.com. Today I'll have another episode of unboxing and review video and I'll be presenting the round box Men's Minimalist Slim Wallet. So we have this wallet right here and the reason I purchased a new wallet because my old wallet was also although a slim minimalist wallet but I had difficulty taking out the cards or driver's license. And there's no see-through cover or pocket for driver's license. And that's why I wanted to change it to a better one and hopefully this will address the issues we had with this one. So this one is in its original packaging here and I'll open this up and I'll take a look at it. Before I do that, just some specs for this wallet. So this is only 0.15 inches thin and in terms of size, this is 3.1 by 4.3 inch. So it should be slim and small. And this was handmade with leather. So this should be durable and stronger. So let's start opening up and then we'll take a look at it. The box looks like nice and very fancy. So I'll take out the wallet from inside the box. So there's some sort of a sticker with the recyclable logo. So it looks like you can recycle this thing. I have a feeling that they meant the box not the polyester or microfiber cover which is right here. So let's take out this one and the box is empty. So I'll just set this aside here and I'll take out the wallet out of this fiber cover. Okay, so it looks like this one is a nice piece but I don't see any point giving this because this is gonna be wasted. So I'll just set this aside and then here we have the wallet. Here how it looks and I'll remove this filler. So let's take a look here and so it says run box and it has just like a thank you note. There are many other wallets by different manufacturers and this is not a paid or affiliated review. There's no affiliated link, there's no nothing. I purchased this with my own money. So in terms of feel, it has the leather feeling and when I smell it, it looks like it has that leather smell. So it looks like this is genuine leather and I'll try to insert a card in here. So if I insert a card and you can see that there's a place here which you can use to slide out the card and that should be easier to take out the card but the problem with that is that this feature is only available for the first slot. So let's say if you have something in here or in here, then you cannot use this feature. So you can put the card you often use in here and then here we have another slot, you can put more cards and then here we have a slot for driver's license or other photo ID. So let's say if we pretend this is our driver's license then you can have it this way. Another benefit is that if you have a work ID which you require to swipe in to get in or out of your work, then you don't have to take it out. You can just keep it here and because there's a hole in it it should work through the electronic reader where you can just swipe it and without taking out from your pocket. Then here we have a pocket for cash or some other accessories or you can put in like your receipts or some small things. Even I can see that you can put in tokens for metro or subway and then here's another slot. So in terms of slot we have one, two, three, four and here's one, five and here's one, six. So we have six slots and then you can use even to put in more card in here if you need that space and then it looks like that's all there is. So yes, in terms of like the looks and fills, this fills okay and hopefully it will last for a few years but these slim, minimalist wallets are very inexpensive. So even if it doesn't last too long that should be a problem. Usually I get bored with the wallet and then I just change it to another one. So that's why I have lots of wallets and this one I think it looks so far so good and I will start using this one. So that's all for today. Thank you for watching this video. Forget about subscribing to this channel. Forget about liking this video. I'll see you shortly.


Hello, everyone. This is the Circuit Python weekly for Monday, February 12th, 2024. 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 adafruit.it.discord. We hold the meeting in the Circuit Python DevText channel and in the Circuit Python Voice channel. Typically, this meeting happens on Mondays at 2 p.m. U.S. Eastern time, 11 a.m. U.S. Pacific time, except when it coincides with U.S. holiday. In the Note Stock, there's a link to a calendar you can view online or add that calendar to your favorite calendar app. You 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, just asking the channel and anybody with moderator access can do that for you. There is a notes document that accompanies the meeting and recording. You can contribute to the document beforehand. The final notes document includes timestamps to go along with the video, so you can use the doc to skip around a few parts of the video that interests you most. The meeting tends to run 30 to 60 minutes. After each meeting, we post... You'll need to unlock your iPhone first. After each meeting, we post a link for the next meeting's notes document to the Circuit Python Dev Channel on the Adafruit Discord. Check the PIN messages to find the latest notes doc, so you can add your notes for the following meeting. 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. You hold this meeting at five parts. I'll explain the parts later as we get to each part. Okay. I'll go back here. At the beginning of the meeting, we will start with community news. Let me take a time step. So, we start out with community news, which is a look at sort of the latest news headlines about Circuit Python and Python on hardware in general. And mostly, this is taken from our weekly Python or micro-introduced newsletter done by Ann. So, these are like the top few items from that newsletter. I'll talk about at the end about how to contribute to the newsletter because it really is helpful if you get notices of things that are interesting that you'd like to see in the newsletter. So, I will start out with the first item, which is actually not in this week's newsletter because it was discovered over the weekend. If you remember, you may notice, especially if you have a Mac, that Mac OS Sonoma has a lot of trouble dealing with Circuit Pi drives on Circuit Python boards. This was really kind of a plague of a problem. Sonoma was delaying rights to files long enough so it would write the data and then not write the metadata for many seconds. And this caused it to drive to appear to be corrupt to Circuit Python. It also caused right problems when you were writing large number of files and it generally was a real mess. There were some workarounds, but they were quite painful. Well, as of Mac OS Sonoma 14.4 beta 2, this problem appears as if it has been fixed. I'll thank some people for working on that later, but there's a link in the notes to the blog post that I wrote about these problems, and it notes that there's an update. And I've also updated the Circuit Python thread on this posted by the Circuit Python user on Faustadon, which is a Macedon server. So, we're really happy about this because it's been a real problem for a long time. Next up, there's a really cute submarine hunting game that was done partially with Circuit Python. There's a link to a Twitter post about it, but for something called Global Game Jam, Piotr Gachsowski and his team built a 3D game using a mix of 2D and 3D assets found in their garages, et cetera. And it's about somebody who's... It simulates someone running a nuclear submarine. The vessel is controlled using discarded washing machine front panel. That's the control panel. There's a oscilloscope. Anyway, it looks really cute. So, there's a link to the notes in the notes doc that Twitter posted a lot of photos. Next item is called How to Fail with Circuit Python. And this is a really nice little thing that author Fede2, FEDE2, wrote in the Adafruit Playground, which is sort of like a user-level learn guide about how to handle failures in Circuit Python, soft and hard failures. And go ahead and look at the link for that. So, all these things, except for the Mac OS Sonoma problem, which we'll show up in next week's newsletter, I'm sure, are from the Python and Microcontrollers Weekly Newsletter, which is run by the Circuit Python community and it's emailed every Monday. Link to all the archives is in the notes document. The newsletter highlights the latest Python or hardware-related news from around the web, including Circuit Python, Python and MicroPython developments. You can contribute to this newsletter by submitting a PR to the GitHub repo where the newsletter is assembled, or you could email cpnews at Adafruit.com or you could tag a post with hashtag Circuit Python on Mastodon or Busky or X. Any of the things will get our attention and we'll really highly consider anything submitted for incorporation newsletter. So, thanks very much. All right. The next section is called the State of Circuit Python, the Libraries in Blinka. This is a quantitative overview of the entire project. It's a chance to look at the project by the numbers separate from our individual status updates. So, first up, overall, I'll say that you've had 25 pull requests merged in the last week by 17 authors. So, new authors I haven't seen before are Python MCPI, Jan Volk, Logan G. Smith and Linky Orr. And of those 25 pull requests, they were reviewed by six reviewers and there were 16 issues closed by 11 people and 17 opened by 12 people. So, we're still kind of even on how many issues are happening. Next up is a report on the Circuit Python core and Scott, are you available to read that? Yeah, happy to. Thanks, Dan. Okay. So, in the core for the last week we had 12 pull requests merged from eight different authors. I just want to give a quick shout out to QuestMobilize and Katny and Jerry Newdell and FOMIGuy for all being core contributors this week. Andy Bing and W. Timur are common translators so thanks to those folks as well. We had three reviewers including FOMIGuy so thanks to FOMIGuy for doing some reviewing in the core. We have 24 open pull requests which is one under that one page limit which is great. Many of these are open for a long time issues that are particular boards so please take a look at those again. If you have a certain board that could be super helpful to get those finished although some of them are difficult as well. We had 10 closed issues by seven people and nine opened by six people so high single digits participation and we're down one so that's been great. We have a total of 683 open issues which we prioritize those issues for eight different funded folks through the milestone system so the milestones we're looking at particularly right now are 9.0 which has 36 open issues. These are things that we want to deal with or punt on for the 9.0 next major stable release. We have two open issues for 10.0 which are basically things that we want to remember to do when we do the next major version. And then also we have 12 open issues for 9XX. At the time these stats were grabbed we had four issues not assigned to milestone which is not uncommon for over the weekend so we'll just have to make sure that we triage everything as it comes in and that's it for the core. Alright, thanks Scott. Next up is libraries and a foamy guy you available for that. Yep, I will tell you about the libraries. So this section covers all of the Circle Python libraries which are Python level code that implements either drivers for specific bits of hardware or helper libraries that allow you to build your projects at a bit higher level and not worry about as many of the lower level details. You can find all these libraries on GitHub under names like Adafruit underscore, Circle Python underscore and then the name of the library. Across all those libraries this week we had 10 pull requests merged by nine authors which is great to see nine authors a couple of the names that were newer to me which I think maybe Dan mentioned but I don't know for certain so I would do want to call out Python, MCPy, Linkior and Logan D. Smith those are a couple names that are less familiar to me so those might be newer or less frequent contributors who are much appreciated as are all of the more frequent contributors too. Across those 10 pull requests we had five reviewers this week mostly the usual suspects thanks to Jeff, let's see Jeff, Scott, Dan, Carter and myself of our pull requests that were merged the oldest one was 73 days we had another one that was 62 days and the rest are between one and four days those are all listed here in the note stock if you'd like to take a look at them that leaves us with 47 pull requests open the oldest one is 543 days and the newest one is just one day over the last seven days we had six issues closed by six people and seven new issues opened up by six people that leaves us with a total of 737 open issues and of those there are 19 that are labeled good first issue which is a great time to tell you about contributing to CircuitPython if you would like to get started contributing to CircuitPython on the Python side of things you can check out circuitpython.org slash contributing on that page you'll find a list of open PRs and open issues and if you're looking to contribute it's a great place to start if you want to get started in reviewing you can look at the list of open PRs find PRs that are for libraries you have hardware for or knowledge about or just an interest in you can go and test out those PRs or just take a look over the code and leave comments on GitHub about what you find once you get comfortable with that we can level you up to the review team where you can leave the official reviews in GitHub but comments are appreciated all the same too if you're interested in actually contributing code you can take a look through the open issues and try to find one that you've gotten interest in or hardware for and try to knock out your own PR for it to submit the ones that are identified as being best for folks with less experience or who are just getting started are labeled with the good first issue label on that circuitpython.org slash contributing page if you do click over to issues you can use a drop down near the top of the page to filter by those labels in order to highlight the ones that have that good first issue label if that's what you'd like to define so we want to help you contribute in whatever way you can whatever skill level you have all the different parts of the process between git and github and circuitpython and the libraries and everything else so if you need help don't hesitate to ask in the discord and folks are always around to help get you pointed in the right direction rounding out the rest of the library stats for the week in PyPI numbers we had, oh wow we cracked 200,000 so we had 207,619 PyPI downloads across 324 libraries this week and the list of updated libraries in the last 7 days includes HDP server BitBang.io requests US100 and over in the community bundled the mag cal library so check those out if you would like, thanks okay thank you I had a question in library PyPI weekly download stats so 7,000 that's for all time is that right? I think it's last week yeah no I think it is the past week I do think there are automated tools so I think those numbers represent just all pip installs across I don't know for certain but I do I believe it's a rolling window okay because these are PyPI downloads and so PyPI is not used is used mostly by people who are using Linux single board computers or who are using THANI right yeah it does not include downloads of libraries through the library bundles so it's sort of interesting but it's not a good picture about like the regular library downloads for use on boards in general or CirCup I believe as well is not included in there so yeah there's a couple segments that it doesn't catch and doesn't contribute to these counts yeah okay alright next up is the Blinka status and Melissa could you read that? sure so this Blinka is our CirCup Python compatibility layer for MicroPython, RaspberryPy and other single board computers and this week we had three pull requests merged by two authors and two reviewers currently six open pull requests there were zero closed issues by zero people and one opened one person and that leaves a net of 82 open issues there were 15,000 and 22 PyPI downloads in the last week there were 11,107 PyWheels downloads in the last month and we are at 129 boards and that's it okay, thank you Melissa alright next up we'll move on to hug reports which is a chance to highlight folks in the CirCup Python community and beyond for doing awesome things I'll start, it will go down the list alphabetically if you're text only or missing a meeting I'll just read your notes when I get them to them in the list so as I said I'll start first of all thanks to Romkey and ADCC for retesting the latest macOS Sonoma Beta and finding out that it's fixed the delayed write problem it's really helpful that people are keeping track of this and it's a great news about this as I mentioned earlier in community news thanks to Jerry for figuring out why ES32 SDI camera board build stopped working the camera part stopped working and PRing a fix to that there's still some mystery about that but the fix is working we're having to understand how the default configuration for cameras works thanks to Katny for redoing the Pimeroni inkyframe 7.3 inch board PR that's now merged thanks to Justin for doing a cascading set of PRs that clean up sort of python typing and also prepare for Justin's connection manager code it's been like Justin has to keep moving backward and fix things in dependent in previous libraries in order to get connection manager to be the best it can be and thanks to Scott for another catch up meeting I had with him when I came back to the Pimeroni application next up is C Grover who's text only thanks to John Park for the fader wave project the design was perfect for creating a physical test bed to create synthio wave tables and envelopes using Fourier series overtones and next step is DJ Devon thank you I have a hug to FOMI guy who three years ago added a wrap to wrap text to pixels functions which is basically word wrap can you turn up your microphone you're very low that's better that's great go ahead it was a word I needed a way to use word wrap text in a display IO project so I went back all the way in the back of get history to find out who made that function just to thank them because it saved me so much time and if you take a look at the function you'll see that it's not a trivial thing to word wrap text so you know three years later gifts keep on giving thank you guys a hug to Jepler for an example in a good hub related issue on spy bus sharing with SD card IO I was able to use six less GPIO pins on a new PCB design thank you for the lesson on spy bus sharing a hug to Justin for the work you're putting into connection manager having a consistent method for socket use is highly desirable and you've made it the neat infrastructure improvements along the way it's been enjoyable seeing your progress updates and engaging with the community a hug to Dan H for updating a lot of this a lot of display drivers with that use spy display and four wire to be both 8x and 9x compatible so it's kind of a transitional code for the the imports and it it does work very well so that was very helpful a hug to Seegrever for his touch calibration code even though it's not specifically designed to help people write touch drivers it does help you write touch drivers and that's what I got okay thank you next up is ADCC hi there everyone first off hugs to Dan and Scott for always being there with exactly the incisive responses I've needed to keep making progress on BLE for RP2 and just hugs to all the people who worked on solving the macOS Sonoma bug it was Apple's bug to fix but I think our analysis and reports gave them the prod they needed to fix it that's it okay thanks and I'll note that somebody who had submitted a feedback to Apple basically an issue did was acknowledged in theirs that the bug was resolved Lady Aida had also submitted one and she looked in her update and it was not yet marked there but hopefully it'll start showing up in all the places that where we complained about it it did show up in mind great that's good to hear okay phone we got you're next all right this week I have hug reports for Scott thanks for working on the SD card visibility through the web workflow that makes it really convenient compared to unplugging the SD card and put it into an adapter in order to see or copy the files you could just keep it plugged in and keep it connected and just access those files with the web workflow it's really really nice thanks to Jeff for working on JPEG in the core it's really cool to have support for new image format for display and thanks to Justin and DJ Devin 3 both for helping folks on the discord and the help with circuit python channel thanks okay next up is Jeff who's missing the meeting so I'll read his thanks to Todd Bowden JP thanks for lunch and chat while I was visiting LA okay and next up is Jerry hi it's group hug and thanks to everybody for letting me play here it's really a wonderful place to hang out have fun thanks very much Jeff Jerry next up is Justin Justin yeah I just wanted to give a thanks kind of a double thanks to Tenu for helping move connection manager long did that initial PR review and also for pointing me to an issue that they were having with typing it was it felt really good to be included in something to see that the effort of the time I put in has started making people actually think about me and point out issues that are happening and then also to Dan and Jeff for helping me work through that issue a little bit to try to figure out some things that were well out of my understanding of how things were currently set up okay great thank you alright next on to maker Melissa hi I wanted to give a hug to all the folks watching the macOS circuit pipeline compatibility issue I've been waiting to upgrade because of that issue and group hug to everyone else okay and finally Scott hello echoing back to Justin thanks for helping folks on the discord jumping into the Python typing rabbit hole and also working on connection manager I think we've we've seen that it's going to be super valuable to get all that stuff unified so thanks for working on it hugs to Romkey for doing the initial testing on the latest macOS beta I know other folks followed up but thanks to them hug to ESP sprite for getting back to me on the ESP32 forum they got back to me within like six hours or something which was great and gave me gave me the lead I needed for continuing my IDF5 escapades hug to Jerry for testing 9.0 and also a hug to FedE2 for the failing with circuit python Adafruit playground post I thought was really insightful and happy to see that there so thanks to all of them okay thank you Scott okay next up is status updates this is our time to tell folks what we're up to individually I'll start and go through the list as before when I call on you 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 is also an opportunity to provide tips and tricks relevant to what people are working on if the discussion becomes too long for status updates we can move it to the in the weeds section so I will start as we mentioned several times so macOS Sonoma 14.4 beta 2 seems to fix this delayed write issue that we were that was really plaguing the use of circuit python circuit pi drives on macOS so we really hope that this fix sticks there isn't a regression before it comes the final comes out and we'll continue to test as each beta and the RC come out given this Apple's usual schedule on this the 14.4 final version will probably come out sometime in March and that's also a time when they're announcing new hardware I believe otherwise besides that I've been shepherding various PRs and doing various bug investigations trying to fix the issues that we need to fix for 900 final relevant to that I would like to do a 900 beta 1 soon but there's a new bug that seems to have to do with network socket use on ESP32S2 so we like to fix that before beta 1 ships so we don't have a regression for that so we'll wait on beta 1 until we can do something about that alright and next up is DJ Devin thank you this week I received my ST 7796S spy TFT feather adapter prototype PCBs and I'll post an image of that the adapter basically turns the display into a TFT feather wing I only made one mistake during trace routing and I've already fixed it in the next revision Adafruit doesn't use this specific display so I had to write a circuit python display driver for it and as a display demonstration I'm updating a word wrap label using the display IO who display the introduction of hitchhiker's guide to the galaxy I have successfully tested the built-in SD card reader with SD card IO thanks to some example code that jebler unwittingly posted in a get issue that I just grabbed real quick that was very helpful I successfully adapted and updated a circuit python XPT 2046 touch driver control which don't think Adafruit uses they might use it in the ILI display it was written by Derek McMillan in circuit python but it needs to be updated with the latest updates and stuff it was based on a driver by user R Dagger for MicroPython that was in 2021 and this morning I added SeekRover's Minmax calibrated to the touch driver and this morning I got the touch driver working and drew on the resistant display with the stylus still working on improving the touch detection with the when the display is rotated and I'm over the moon happy because I got that working finally everything works that's it all right thank you all right and next up is ADCC confirmed by tracing that Apple has indeed fixed that Sonoma bug and Dan if you want to get ping me later about the tracing code continuing work on BLEIO for RP2 scanning and advertising now work and overall stability is improving by the build this week I'm digging into timer problems that seem to stem from assumptions in the PICO SDK about how BT stack is plumbed in and used I've already bypassed most of BT stack and it in the SDK likely have to bypass the rest anyway that's it for me all right thank you all right we'll have phone be guy next all right thank you last week I finished up work on the USB host keyboard text editor project and the guide for that was published I do have a couple of more advanced features in the back of my mind that I like to maybe pick it up after a while and attempt but I don't know for sure if I can actually succeed and I suspect it would be quite difficult so it was nice to get the guy done and set that down to work on some other stuff for a bit after that I have started to work on some prototype code for my next project which will be for making photo frame overlays with the momento camera eventually although I've been working on some alternative hardware for the moment kind of similar to like photo boots that you can go to where you will take a photo and it will kind of let you choose from a border or maybe even some like stickers and things to put on top of the photo in the process I've been it's been a fun but challenging deep dive into some more image processing and especially differences between color spaces and how the color converter class fits into everything with display but I am rocking a little bit more each time I mess with it so it's nice I made some modifications in bitmap saver that allow it to work with the color converter because the current one only works with the palette and that seems to be working but I haven't submitted it as PR yet so I'll get that done this week and then I am overall kind of trying to work towards getting all three of the jpeg decoding the bitmap tools operations and the bitmap saver exporting to play nicely together and output everything into colors to look correct I have gotten close to where different parts look correct but not other parts but not quite all the way there just yet with everything and I might start poking around in the core to see if there's something I can add either to bitmap tools or to color converter that maybe help with some part of the process but I gotta wrap my head around what's going wrong before I can actually do that so that is where I am at thanks alright thank you alright I'll read Jeff's next did some pos export work during downtime on vacation that's Jeff's working on the Unix port and making it a more like certified python we use the Unix port for testing I'm getting back Tuesday that's tomorrow we'll figure out what to work on then okay next up is Jerry yeah so it's just been spending a bunch of time playing with the various cameras and forging support cameras the new Amento has been fun and it's working really well then I had fun at the older ESP32 S3 eyes and now I've been trying to work with the Metro ESP32 S3 it's got enough pins to make it worthwhile to hook a camera up to it so lots of mixed results and a lot of it is just stumbling across things but making progress and still a lot to learn about these things and the cats trying to help and then yeah keep stumbling across some of the 9.0 issues so it's fun to help ferret them out as I come across I'm trying to open up coherent issue reports and again I appreciate how fast they've gotten dealt with and I'm really proud of myself yesterday for actually being able to remember how to submit a core PR it was a one line, trivial change to a file but a lot of pieces had to come together so that was fun alright thank you for that PR next Justin yeah so I learned quite a bit about some of the stuff for how we were doing typing since I've been knee deep in the requests in the medium QTT library when I was looking at the typing I was like wow this is the exact same typing stuff in this library that they have pasted requests and thus that I had copied over to Connection Manager and was able to drop out a whole roughly just shy of a kilobyte of data because although Markiplier Thunder's new typing it doesn't stop it from getting compiled if there's definitions into the mypy file so it's been a long time since I've been this excited about removing that much data from a Python file most of my stuff is large scale stuff so if it's megs or gigs it doesn't matter so that was really fun as I said got forward progress on the Connection Manager got it moved over into the Adafruit's domain and initial review so started working through some of that kind of one of the big comments that I got in there was kind of the complexity of the difference between kind of how requests does retries and Minium QTT does and so opened up a PR to potentially simplify at least one piece of that obviously Minium QTT we want to be mindful of if it actually starts communicating with MQTT server and there's issues to keep that delayed retry so we don't just flood that but for a regular like can't connect to the you know physically can't connect the sockets we can pull some of that complexity out so opened up that PR at least to get thoughts and see if I'm missing something so it's kind of what I got today all right thank you all right we have maker Melissa next I'm Mark and I'm hitting the snake eyes bonnet working with the newer Raspberry Pi's I updated the Python code to use Blanka which now isn't as HDMI only and I'm currently working on updating the frame buffer C code I have it compiling with 64-bit and now putting to the TFT displays and that's it okay thank you and our last person for status updates is Scott thanks Dan I'm still working on my RMT p-count pulse counter and timer API updates internally I'm testing them now a lot of last week was spent messing around with protomatter and RGB matrix stuff I did get it working it's just really challenging to try to get code that runs when the flash cache is unavailable so that's been tough I do want to get back to this week I've got an order to get some high density Neopixels for testing so I'm going to spend just a day this week sometime just testing the S2, the S3 and the ESP32 with Neopixels just to make sure that on the S3 and ESP32 they work okay there's some differences between the different ESP chips that make it harder or easier to make sure that Neopixels don't flicker so I'm going to do that I also want to move on to once I'm out at ESP, I want to get out at ESP land and onto the IMX RT there's a few things there to test including bus IO stuff so I'm going to do that and I've been updating this implementer's guide that I started last year and I want to work on that some more and then Jerry mentioned the trouble with S2 and HTTPS connections so I might tag team that with Dan and Jerry probably today or tomorrow just to try and make that a little bit better but the S2 is really not really not a favorite chip of mine the S3 is much much better Scott just to clarify the problems I've been reporting on S3 not S2s oh so yeah there's maybe two different problems going on here yeah it could be I did some aggressive turning off some SSL protocol so it's possible I was a little too aggressive for that the recent one that I came on across yesterday it was all of NS3 stuff and that was all the running out of retries on the connections here alright well that's good to know, thanks Jerry okay so now we're in the weeds section where we can have some longer discussions that folks have identified ahead of time or maybe that came out of status update so we'll give an in the weeds thing before we get to the section so we'll know what we're dealing with here so I have one thing to say about we've been talking in our internal meetings someone a user noticed me like that GIFIO was not turned on on the feather TFT ESP32 S3 feather TFT and it was like that's weird why that's very useful to have that if you want to play GIFAN animations for instance so what can we do about that and the reason it's turned off is that for some larger translations it just doesn't fit so the problem that we have on these boards is that 4 megabyte of flash even though it sounds like a lot is actually less than what we would want one reason is that there's just a lot of code in the ESPIDF so when we add all kinds of features it does grow that substantially and the other is that we have an over the air update partition so there's a firmware partition which currently is 1.4 megabytes and then the OTA partition is the same size because if you're doing an over the air update it's called circuit python and we have code to do that it's called dual bank you need reserve space so that you can switch partitions or copy it in and then copy it over to the other place I don't remember exactly how it works so what we think we're going to do for 9.00 is turn off on these boards with smaller 4 megabyte flash because we have other things that we want to be on on those boards and BLE does not work all that well right now anyway on ESP32 S3 because it's incomplete you can't act as a BLE peripheral and advertised services you can only act as a central and it's just so it's just sort of not that useful so you think we're going to turn this off for 9.00 we might turn it back on later when we can figure out maybe how to trim these a little bit Anecdata notes how many people actually use over the air OTA update we could consider turning it off by default and then we have larger firmware larger user file system and I would say the issue there is some people may we don't really know how many people use OTA we don't really know how many people need these other things it's very hard to tell so we can consider turning it off we can consider having two builds that just keeps increasing the number of builds that we have we already have you know 500 builds or something so I guess the question is not 500 but a lot so the question is does the sort of initial plan that we have sound okay to you or what other things that might you think about and this business about OTA or not I mean ideally you could say like well the best thing would be like oh I could just have a custom build and I'll get what I want but we don't have the infrastructure for doing that right now so are there any comments on this DJ heaven asked would we still progress for BLE with 16 or 8 megabyte flash yes because in ESP IDF 5 they made we were blocked on BLE support on ESP32 because there was a fundamental deficiency in the BLE stack that you couldn't add services dynamically at runtime which is what circuit python expects and that is now possible because they ESP folks added that feature to nimble so I guess that's what the question I'm curious is anybody used over the air update feature who's here now no one of the guys says I didn't know OTA updates were even possible I mean I you know this Dan but I'll say it publicly I really push to keep OTA there because I know that more and I really want to push people on the web workflow and and Jerry's asking is there a guide for OTA I don't think there is now I think there is a feature where we are going to want to do it we've talked a lot about the toy hacker board being like kind of our first enclosed board where you really don't have USB you only use web workflow and I think that the moment that you have something where it is like it's sold as something where it's wireless you're going to want OTA as well right like you're not going to want to just update circuit python code there's always this possibility that there's going to be a bug that you hit that you want to be able to update over the air so I think that I know we don't use it now and we added it long ago because we were going to use it but I think this is the year I think this is the year that we actually do start using it more especially because web workflow is being more and more adopted so I think more and more people will rely on having a wireless thing and I don't think you're going to want to not have wireless circuit python kind of core updating without it I think what is true right now is that we don't have the OTA feature that support that's there is available only through circuit python it isn't available externally through some sort of out of band feature in the web workflow right like the supervisor wouldn't manage an OTA update for you right right we haven't written the code to do that right now you can write circuit python code to do an OTA update but you can't initiate one without having that circuit python code right which is not super clear to me what you like do we need it as a core feature or not I don't know yeah well I think if it's if you really can't have access to the USB socket for some reason then maybe it has to be a core feature but I don't know or it's much more difficult yeah and I was thinking about that like you need to make sure you also probably need OTA boot loading yes or at least you need core support of like if you safe mode in the updated version you can actually try by switching back to the old version that sort of thing right so yeah there's there's details here but I really I do think people are going to want it once we do it and so I don't want to be super quick to get rid of it and I you know micro dev added to things so the other OTA partition by default gets used for user file system now too which is a bit weird and we're going to have to deal with that when this happens as well so I guess another question is whether people are using the limited BLE feature that we're having we have on these four megabyte boards but I think very few people are using BLE also so I think the work the sort of the stopgap is to take that away temporarily so that we can make the boards more functional for their primary purpose like the TFT boards you really want to have image processing more than BLE that's more important right and maybe not even like camera stuff but just like GIF and JPEG support it's also true that we do try to pick modules that have the largest flash possible but as Anecdata points out the mini actually has 8 if you don't have RAM and 4 flash if you have 2 megs of RAM right so the mini which is what we're using on other boards is limited in that way you can't there's 8-0 or there's 4-2 or 4-5 it is 4-2 alright so this is just sort of a warning basically the heads up on this and those of you who think it would be nice to have BLE on the 4 meg version it's not clear to me that once we actually added all the support to make it complete we'd be able to fit it that was the other thing I was thinking about was like we don't know whether we can actually fit BLE IO proper to the 4 megs anyway and a lot of them haven't turned off anyway that was I did a number of them already this is just kind of making it a more uniform blanket state right it's making it sort of official that's a good point okay so now let's we can move on to Jerry's item which I think is interesting Jerry you want to describe what you're asking sure the learning guide things are so nice when you go through and you want to grab the code and just hit little buttons and you know download the bundle and and the but you know right now what they do is they generate a zip file with a build with all the MPY files for 8.x and a separate one for all the 9.x but I know I like to use the .py files so I just wondered if it's a trivial thing to add in a switch so that you know to generate that as well into the zip file is that not worth doing does anyone else care you know it's I find it is really nice to just download the zip file and going to use it but then I find myself usually just manually copying all the all the PY files onto the board anyway I do that all the time for debugging reasons anyway it's like I download the project bundle I try it it doesn't work and then I go and copy the .py file or the library and maybe you know for the general user maybe it's you know not worth it but if it's like I said if it's a trivial I don't know what the scripts look like to generate these things but if it's a trivial addition to just generate one more folder in that file I certainly would appreciate it I don't know anyone else I think it's not hard and I think that as long as it's labeled properly so people don't copy it by default we make clear it's you know Python source only or you know for debugging or something then I think it's okay and the question is really is it going to add to the support burden in some way right exactly it is and it's not worse than a lot of effort than anyone's part but in fact it also is true that people often we often ask people when we are supporting them they tell them to download the source version anyway and then we have to tell them where to get it so in this in this case they're getting the latest version automatically so I think this is worth bringing up I don't think it's going to be hard either yeah I think we just we have to ask Justin our internal person named Justin who works on LearnDev who wrote the card the request out there and you know it goes anywhere that's that'd be great but you know if it's not worth the effort then by all means don't do it one thing I noticed all of the builds have bus device in them and yet I believe now all the boards are there any boards that don't have bus device frozen yeah there's very small ones that don't okay then I guess it's worth it right and we have well there are many so many projects that are not going to run on the small boards like you know a matrix portal s3 project that's an interesting thing I mean I think it's even a little confusing that bus device is there but that's another that's sort of another thing to think about you can why don't you put that in the notes Jerry if you really and I'll or we can make an issue about it okay I'm not sure how to fix that but because the code that generates the bundles doesn't really know anything about what kind of board it's doing it on okay DJ Devon asks can it be moved to an Amazon s3 bucket like that we build you mean the bundles the bundles are generated dynamically when you click the project bundle download link it's done in the web server I thought the question was getting rid of it to avoid user confusion to get rid of apparently I am completely wrong ignore me okay okay right the idea is you want the MPY files there but you might also want the PI files if you want to do any debugging or instrumenting of the libraries just to make it easier to get the source files for the libraries that you're doing okay alright does anybody have anything else they'd like to bring up okay well I will say next week is US holiday presidents day if I'm not mistaken right so next week the meeting will be on Tuesday it'll be delayed a day since Monday is an official US holiday so I'll note that in the follow up and I'll put that in the wrap up here later so if there's nothing anything else that anybody would like to discuss if not I will stop recording


The FBI is now involved in the search for a missing Ponima woman. 27-year-old Amy Dow was last seen leaving her home in Ponima on January 27th. Dow has had no contact with friends or family since then, which is very unusual for her, so authorities are concerned for her welfare. Dow has described as five feet three inches tall and weighs about 100 pounds. She has brown eyes and brown hair. Dow has two moles on the left side of her face, one on her cheek and one on the corner of her upper lip. She also has a tattoo on her left chest that says Castile. If you think you have seen Dow or know over whereabouts, please contact the Red Lake Police Department or the FBI at the numbers on the screen. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.