The provided JavaScript code appears to be for a web application named IEEG underscore spectrum underscore 16 underscore Chan underscore denoise underscore music. This app seems to process electroencephalography, EEG, data to create a visual and auditory experience. Key features of the code include initialization, the app initializes when the DOM content is fully loaded. It sets up various UI elements like sliders, selectors, and toggles. Data handling and rendering, the main functionality revolves around fetching EEG data based on user inputs, like channel selection, window size, etc., and rendering this data visually using plotly, a popular graphing library. Audio processing, the app also includes an audio context for playing sounds. It maps EEG data to musical notes, which are then played back as sound frequencies. User interactions, several event listeners are attached to UI elements, enabling dynamic updating of the displayed data and sound output based on user interactions. Wavled denoising, there's an option for wavled denoising, suggesting the app applies wavled transforms for signal processing. Spectrum analysis, the app appears to display both raw EEG signals and their frequency spectrums, giving users insights into the spectral characteristics of the EEG data. Data endpoints, different endpoints are used for fetching data depending on whether the app is in a production environment or running locally. Error handling, the code includes basic error handling, especially for fetching data and audio processing. SNR and MSC outputs, signal to noise ratio, SNR, and mean squared error, MSC, are calculated and displayed, indicating some form of signal quality or denoising effectiveness measurement. The code is structured to handle user inputs, process EEG data, and provide an interactive visual and auditory representation of this data. Yay, so we have this JavaScript that we were working on for a while now. We actually came to a point where we started from scratch using a code for a different application. So now it's working okay, it's 226 lines of code. I actually removed all the empty lines and comments from it, because that's essentially what the GPT-4 was just explaining. This code would potentially have more questions about it later. I just saw that GPT has the whole context. We also have this Flask application, Python code. Some of the functions are not being used. I don't know why we can remove any spaces and comments from it.  I'll pop it into GPT-4 as well. Let's see what it says, and we run it as well. Currently running locally, plan to deploy it sometime very soon. This is what the front page looks like. It does been explained before. There are remnants of previous applications that are already deployed. This one, the new feature is that it's also converting this AEG into sound. That's how it sounds like when you scroll through this file, channel 7. This is the whole segment as a seizure in it on different channels. This channel 14 sounds more interesting. It needs to be made wider, trying to select 10 moving trouble. Let's keep it 14. It shouldn't matter much. That's what the seizure sounded like. You can try a different window in 5 seconds. It can hear the difference between seizure and no seizure. But yes, it's not great. We'll be trying to improve it in the future. It's the description of the Python code. Data with a focus on noise reduction and spectrum analysis. Key components of the script include. Flask setup, the application is built using a Flask framework, a popular choice for web applications in Python. Data loading and preparation, the app loads EEG data from a text file and prepares it for processing. This includes setting parameters like sampling frequency, start time, and duration. But with bandpass filter, functions are defined for creating and applying a but with bandpass filter, which is used to isolate specific frequency bands in EEG data. Endpoint definitions. The root endpoint serves the main HTML page. Get underscore data, endpoint handles requests for EEG data processing and visualization. It takes various parameters from the request, such as the time window, EEG channel, and whether to apply waver denoising. Waver denoising, the app optionally applies waver denoising to the EEG data, which is a method for reducing noise in signals. Spectrum analysis, the app performs spectrum analysis on the EEG data, both for the whole spectrum and specific frequency bands, Delta, Theta, Alpha, Beta, using the Welch method. Signal visualization, the processed EEG data, both original and denoised, is prepared for visualization, including a computation of signal to noise ratio, SNR, and mean squared error, MSE. JSON response, the endpoint returns a JSON object containing the processed data, including raw signals, spectrums, SNR, and MSE, which can be used for rendering visualisations on the client side. Main execution, the script runs the Flask app in debug mode when executed directly. This application appears to be a sophisticated tool for analysing and visualising EEG data, where focus on noise reduction and frequency analysis. The integration with a web interface suggests it's designed for interactive use, allowing users to select different parameters and view the corresponding EEG data and its analysis. Yes, one of the problems, for example, of future improvement, is the fact that the wavelet denoising doesn't actually make much difference. It doesn't make a difference at all. In terms of the sound, it makes a little bit of difference. You can actually see the difference over there. Yeah, this is two of them, overlaid on top of one another. You can see it even more. And how different wavelets are doing. That's what it's giving in the RNY. It seems like bi-autogonal 1.1 makes the larger difference. Yeah, if the training is off, the filtering doesn't really work. There's also this crackling noise when nodes are changing. It's only happening when scrolling. We actually tried addressing it yesterday. So, I'm wondering now if Python was the last code that was uploaded to ChBD. If I ask any questions now, it will try and address them through Python code instead of JavaScript. I don't know. There is a bit of crackling noise when nodes are changing. So, when scrolling through the EEG file, there's some sort of sound interference. It seems to be between the different nodes. The crackling noise you're experiencing when scrolling through the EEG file and triggering different nodes could be due to several factors related to audio processing in your application. There are also some potential causes and solutions. Audio buffering issues. If the audio buffers are not being handled smoothly when switching between nodes, it can result in a crackling sound. Ensure that the transitions between audio buffers are seamless. Yeah, I think we checked it yesterday. It wasn't the buffering, but something else. Actually, now, I don't know if you can hear it, but it's doing some sort of decay. So, it's not just turning the node off when it's playing, but there should be a function for it. There should be some sort of delay. Why don't I see that code? It's actually unusual. It should be changing play frequency. This function. Yeah, this ramp. It's called ramp. Right, yeah, this duration. Increase that. It's not working as expected. Making a difference. You need to see for any magic numbers. This duration is longer. Yeah, there is this crackling sound between when scrolling. I think channel 14 or something, that's something more interesting. I don't know if you can hear it as well, but I want to get rid of that crackling sound between nodes. What could it be? Audio buffering issue. Ensure that the transitions between audio buffers are seamless. Rapid frequency changes. Sudden changes in frequency can cause a crackling noise. Implementing a smooth transition or a fade-in, fade-out effect between nodes can help. Overlapping nodes. If multiple nodes are being played simultaneously or if a new node starts before the previous one has completely finished, it can cause interference. Implement a mechanism to stop the previous node before starting a new one. Volume peaks. High volume levels or sudden volume changes can lead to distortion. Apply normalization or dynamic range compression to manage volume levels. Waveform discontinuities. If the waveform of your audio signal has discontinuities, sharp edges, it can produce a crackling sound. Using waveforms with smooth transitions like sine waves can mitigate this. Yeah, we are using four A sine waves playing at the same time. This tells you how the mapping is actually happening. Nodes to play can go. It's normalize power. It's the normalize power range, which should be from 0 to 1, should it? Based on the code, what normalize power range should be. Based on the JavaScript code you provided earlier, the normalize power range for each EEG frequency band, Delta, Theta, Alpha, Beta, appears to be between 0 and 1. This is inferred from the normalize power function in the code. Here's a brief breakdown of how the normalization is done. Yes, it was normally way too small. Power array aggregation. The function takes an array of power values for a specific EEG frequency band and computes the average power. Look it over here. Control of 5. Yeah, that's the theme. The first, this power value is way too small. Should have had the amplitudes as well. Power array aggregation. The function takes an array of power values for a specific EEG frequency band and computes the average power. Clamping. The aggregated power is then clamped between a minimum, min power, and a maximum, max power value. In your code, min power is set to 0, and max power is set to 3,000. Normalization. The clamped power value is normalized to a range of 0 to 1 using a formula. This normalized power is then used for further processing, such as mapping to musical notes. The normalization process ensures that the power values are scaled to a consistent range, which is important for comparing values across different segments of EEG data or different EEG channels. Numbers seem to be too small. These values fall within the expected range of 0 to 1, as per the normalization process described in your code. The normalization ensures that the power levels of different EEG frequency bands are scaled to uniform range, making them comparable and suitable for further analysis or mapping to other modalities, like musical notes in your application. The values indicate the relative power within each frequency band as a fraction of the defined maximum power, which was 3,000 in your code. Lower values suggest lower power within that specific frequency band. For instance, the delta band has the highest normalized power among the four, though it's still quite low in absolute terms, suggesting that the overall power in the EEG signal for this segment is relatively low across all bands. We're at just the maximum power to 2,000 instead of 3,000. So yeah, this normalized power for a delta band is higher. It's going up to 15K. With this number, it's very low to 12K. Alright, so now it's more sensitive and these numbers go, you get some larger closer to 1 values as well. Let me know if it's better or not. It essentially became way more sensitive. It actually shows you the exact mapping. Reducing a maximum power from 3,000 to what will this do? Reducing the maximum power in the normalization process from 3,000 to 100 will have a significant impact on the normalized power values of your EEG frequency bands. Here's what you can expect. Higher normalized values, since the denominator in your normalization formula becomes smaller, max power, min power, the resulting normalized values will be higher for the same raw power measurements. This is because you're compressing the range of possible raw power values into a smaller scale. Increased sensitivity to changes, with a lower maximum power value, small changes in the raw power will result in more significant changes in the normalized power. This could make the system more sensitive to minor variations in the EEG signal. I was saying, sorry, my microphone was muted, but I was saying it's not clipping, so it could make the system more sensitive to minor variations, potential clipping. Potential for clipping. If the raw power values exceed the new maximum power, 100 in this case, they will be clipped to the maximum during a clumping step. This means all power values above 100 will be treated as 100 in the normalization process, potentially losing some granularity in the higher range of the power spectrum. Right, so it's not clipping in this particular case, but yes, it might clip with other signals. I don't know if this power goes higher than the current at 20K. Impact on further processing. Since the normalized power values are used for further processing, like mapping to musical notes, you can expect a more pronounced and varied response in this subsequent processing. For instance, if you're using these values to control aspects of music or visualization, the changes might become more dramatic or noticeable. Right, yeah, they're definitely more noticeable. Adjusting for realistic EEG power levels. If the actual power levels of your EEG data are generally much lower than 3000, reducing the maximum power to a more realistic value like 100 might provide a normalization that is more representative of the actual power distribution in the EEG signal. Using the maximum power to a more realistic value like 100 might provide a normalization that is more representative of the actual power distribution. Yes, so this power distribution, the normalized power distribution is more realistic, yes. In summary, reducing the maximum power value in the normalization process will make the system more responsive to changes in EEG power levels, but it may also increase the risk of clipping for higher power values. This adjustment should be made carefully considering the typical power range of your EEG data and the desired sensitivity of your application. So that's what a seizure sounds like on channel 15, with a clip over there, you know, with more power in there. I was trying to see what the fact window size has. Why is it only two powers? Ah, no, it is clipping. Right, so it is clipping on channel 14. That's the problem. Yes, when the mapping power is one, that means the normalized power is clipping. I don't know how bad is it because it's still playing note. Let's just double check it should be playing the highest note using index 36, playing SC6, check the code, using index 36, SC6. Yes, so it's playing the highest note in the delta range. It should be also playing the highest note in theta range. In alpha range, the mapping power, the normalized power is 0.57, which translates into G5. So G5 should be somewhere in the middle of between E3 and E6, I think, just assume that is correct. Anyway, reducing this max power, essentially a magic number because it's not a maximum power, it's the maximum normalized power anyway, but that's resulting in normalized numbers between 0 and 1. So we had a description of that already, I think yesterday, try copilot to explain this. So for each type of primary band, a frequency band within the EG, the normalized power is passed to the map power to note function, the normalized power of delta waves is mapped to note between C3 to C6, that's correct. Inside the map power to note function, the get note range function is called to get an array of all the notes. Get note range, start note and note, start this again. I have channel 7 as default, it's not the most interesting one. Music wise, 15 sounds a bit better. Let's try 30 and we haven't tried 30. So window size obviously matters a lot. Let's try 5, 6. You can also use your keyboards. The other thing there's an obvious overlap. Yeah, the overlap quite a bit, that's the other problem. Yeah, we actually should have something that changes by how much the scroll is moving. It should depend on the window size. We have the standard 8, 10 seconds of a cross. Anyway, you can use your keyboard, mouse, there's an overlap in the scrolling. It's kind of obvious we can change that. So on one hand we want to keep as many things as default as possible. On the other hand we want to give you more control over how this works. So let me know what you think. Essentially all these variables could be made unified. Well, they're not constant, but they are. Well, I call them magic numbers, but let's see if it understands. Magic numbers in programming is a numeric value that is used in a code without any explanation of what it represents. That's right. Here's the magic numbers in the provided code. File scroller. Yes, this file scroller is important. We have the volume, the volume seem to be okay. Well, yeah, that's the one I can let you adjust, like the user to adjust, but that's probably a bad idea. Duration, yeah, we could have a slider for the duration as well. I know the 10 is passing into base 10. So now that is explainable. That's not magic. Volume, duration is the magic numbers. We can just let the user control those. Yes, 1000 if it's converting from seconds to milliseconds. It's not a magic number as well, because we know why it's 1000. Yeah, those are magic numbers. Zero, four, mean and max, normalized power. Minimum maximum power values used for normalization. The 100 there is a magic number. That will be harder to explain. Why is it 100? Is that 11? Start node index. This is the index of the last node in the nodes array. Why? Because there's 11 of those. I don't know why there's 11 of those. Yeah, we did explain this yesterday. Well, GPT-4 explained yesterday. I didn't quite understand it. There's a 49. It's a constant using a formal to convert a node to a frequency. These three and one looks like magic numbers to me. That seemed to just work. Yeah, we might add the volume and duration. At this stage. That's how all channels sound like. I don't think we can look at channel one as well. It's not clipping. Channel one. If it sounds any better or worse. We also ideally have a selection of the musical instrument. Eventually we want to extract some other features, not just a power in each frequency band and map them into pitch and timbre. How is mapping EEG to music currently happening? I don't know if this is a generic response. Certainly. Let's look at both the JavaScript and Python Flask code and suggest some improvements for each. Optimize performance for large datasets. If the EEG data can be large, instead of optimizing how the data is processed and rendered. For example, use web workers for data processing to avoid blocking the main thread. Refactor repeated code. The fetch data and render function contains repeated blocks of code for setting up clock configurations. This can be refactored into a separate function to improve readability and maintainability. Improve error handling. Add more robust error handling, especially for network requests and data processing. Display user-friendly error messages in the UI if something goes wrong. UI responsiveness. Ensure that the UI remains responsive when data is being fetched or processed. Indicators like loading spinners can be helpful. Audio processing. Investigate and address the crackling noise issue during note transitions. Consider using a library like Tone. JS for more sophisticated audio processing capabilities. Code documentation. Add comments to complex sections of the code to make it easier for others or yourself in the future to understand the logic and flow. Code organization. Separate the data processing logic from the Flask Roots. This can involve creating a dedicated module or class for handling EEG data processing. Error handling. Improve error handling in the Flask Roots. Catch potential exceptions, especially when dealing with file operations or external libraries. Input validation. There is a more comprehensive validation for the query parameters in get underscore data root. Ensure that the inputs are within expected ranges and types. Optimize data loading. Loading large data files can be resource-intensive. Consider using a more efficient data storage format like HDF5 or implement caching mechanisms to reduce load times. Use of global variables. The data variable is loaded globally. This can be problematic for larger datasets and can affect scalability. Consider loading data on demand or using a database. Restful API design. Make sure your API follows restful principles. This includes using proper HTTP methods, status codes, and structuring endpoints logically. Unit tests. Add unit tests for data processing functions. This ensures that any changes in the code do not break existing functionality. Configuration management. Move configuration settings, like FS, start underscore time underscore in underscore seconds, etc. Separate configuration file or use environment variables. This makes it easier to modify settings without changing the code. Logging. Implement logging to capture important events, errors, and debugging information. This will be invaluable for maintenance and troubleshooting. Both sets of code could benefit greatly from these improvements, enhancing performance, maintainability, and user experience. Certainly. Matic numbers in programming refer to numbers that appear in the code without clear explanation, so you can start to understand and maintain. Here's a list of magic numbers from the provided JavaScript and Python Flask code. 10 in const second value equals pass int, file scroller, value, 10, base for passing string to integer. 0.5 in gain node. Gain, set value at time, volume, audio context, current time, initial gain value for the audio node. 0.03 in play frequency, frequency, volume equals 0.03, duration equals 1.2, default volume level for playing a frequency. 1.2 in play frequency, frequency, volume equals 0.03, duration equals 1.2, the default duration for playing a frequency. 0.2 in gain node. Gain, linear ramp to value at time, 0, audio context, current time plus duration 0.2, time before the end of the duration to start ramping down the volume. 1000 in set timeout equals greater than oscillator, stock, duration 1000, millisecond conversion factor. 2 in multiplier equals 2 used in the wavelet denoising section. 0.5, 4, 8, 13, 30 in the band underscore range's definition, specific frequency values for EEG bands. 400 in FS equals 400 sampling frequency. 31,610 in start underscore time underscore in underscore seconds equals 31,610 start time for data loading in seconds. 110 in duration underscore to underscore load underscore in underscore seconds equals 100 in duration underscore to underscore display underscore initially underscore in underscore seconds equals 10 durations for data loading in initial display. 5 in defbutter underscore band pass, low cut, high cut, FS, order equals 5, default order for the butworth filter. 0.5 in nyq equals 0.5 asterisk FS, used to calculate the Nyquist frequency. 2 in multiplier equals 2 within the get underscore data route for wavelet denoising. 3000 in the normalization process, maximum power value for normalization. 0.5, 4, 8, 13, 30 in the band underscore range's definition, specific frequency values for EEG bands. In both cases, replacing these magic numbers with well-named constants or configuration parameters would enhance the readability and maintainability of the code. For example, you might replace 400 with sampling underscore frequency or 10 with default underscore window or duration to make the codes in 10 clearer. If I continue this next time, let me know if there's any relevant questions. Hopefully that tool will become available on binarykills.com this week or next week. And I'll see you later.


Daily Tech News Show is made possible by you, the listener! Thanks for listening, even if you're watching.  Thanks to all of you, including Mark Gibson, Reed Fishler, Larry Bailey, and James Irizari. On this episode of DTNS, the new app model is no ads monetized with premium features and don't use algorithms. Plus, Google Meet lets you use your phone, even if you're at the meeting in person, and envidia's new AI for your local PC. This is the Daily Tech News for Tuesday, February 13th, 2024. In Los Angeles, I'm Tom Merritt. And from Studio Animal House, I'm Sarah Lane. And on the show's produced, Sarah Rodgerson. And sometimes we all come together to form Daily Tech News Show, like a mecca, right? A Voltron of the form of it. Excellent, I like to say. Like a Triforce. Not to toot our own horn too much, but we're kind of good at this. We should toot our horn a little more. We're a link to the tech news. A link to the tech news, indeed. All right, let's start with the quick hits. Regulators in the European Union had decided that Apple won't have to make iMessage interoperable with other iMessaging platforms. Messaging platforms, rather. Microsoft also won't face tighter controls on how it can operate its search engine Bing. The European commission concluded the services aren't popular enough to count as core platform services under the DMA or Digital Markets Act. The commission also gave Microsoft's Edge browser and Microsoft advertising a pass. Apple says it will still support RCS on iMessage later this year. Sick burn, EU. Oh, sorry, you're not popular enough to comply. The Flipper Zero is a digital multi-tool that's popular with pen testers and other kinds of hackers. Partnership with Raspberry Pi has produced a video game module that can run games programmed in C, C++ and MicroPython. The module also has sensors for hand tracking, a three-axis gyroscope and a three-axis accelerometer. Now, yes, you can play the games on the built-in 1.4-inch monochrome display on the Flipper Zero, but you can also output the video to an external display. The video game module costs 49 bucks. The Flipper Zero itself, if you didn't already have one, costs 169 bucks. And in other small ways to play games news, the Playdate Handhold Console is now available for immediate shipment after ordering. If you were waiting for that delay to come down, well, it came down. Rumor has it that Microsoft plans to take Xbox exclusive titles to competing platforms, including the PlayStation 5 and the Nintendo Switch. The company plans to share its Xbox vision for the future of Xbox on a live podcast Thursday, February 15th, at 12 p.m. Pacific Time, that 3 p.m. Eastern. The event comes after weeks and weeks, it seems like rumors suggesting games like Hi-Fi Rush, Sea of Thieves, Starfield, Indiana Jones could all appear on non-Xbox platforms for the first time. Microsoft has confirmed gaming CEO Phil Spencer, Xbox President Sarah Bond, and head of Xbox Studios Matt Booty will all share updates on the Xbox business at this Thursday event. Bond, Booty and Spencer. For those chat GPT power users tired of reminding the chat bot how they like their emails formatted every time they ask for help or other stuff like that, OpenAI is introducing a feature called memory. The feature lets chat GPT remember things about you over a time. Now you can do this in a couple of ways. You can tell it specifically, Hey, remember to do this, or you can let it pick the details up itself and remember them as it monitors what you do. Each GPT you use can have its own memory. So if you've been using some of the chat bots from the store, they can have specific memories. You can ask the bot what it knows about you too if you let it learn on its own just to make sure it's not keeping some stuff you don't want it to keep. And you can actually remove that stuff either by telling it to remove it or going to the manage memory section. Memory is not rolled out for everybody though. It's available to begin with for a small portion of users. Along with putting ad-free Amazon Prime video content behind a paywall that charges users an additional $2.99 per month, Amazon put support for Dolby Vision and Dolby Atmos on movies and TV shows that support it behind that paywall as well. Some folks were not super thrilled about this. The change was first noticed by the German website 4k film and later confirmed to Forbes. I call this shrinkflation for digital video. Slowly take away features, but don't raise your price. Alright, Nvidia released a demo chat bot called Chat with RTX. It runs locally, not in the cloud, and can answer questions about the data you give it. You'll need Windows. You'll need a machine with an RTX 30 or 40 series GPU and at least a gigabytes of VRAM. This is a demo as well, not a finished product. So if you want ease of use in a slick user interface, don't do this. But if you're okay tooling around with stuff a little bit, it installs a web server. Don't worry, it's not actually going to connect out to the internet. It's just using it to give you the information and an instance of Python and can use either the Mistral or Llama 2 models to query the data you feed it. Nvidia's Tensor cores on those RTX GPUs are the things that speed it all up. The app itself is 40 gigabytes. The Python instance takes up three gigabytes of RAM, and it creates a JSON file in every folder you ask it to index.  Nvidia says you probably need about 50 to 100 gigabytes of space free on your hard drive. And that web server, like I said, it does not send your data to the web, but it does mean you use a browser to access the interface. And output is given to the command line. So you'll also need that running. This really is a demo. You can feed it text documents PDF documents dot docs dot dot X and XML, as well as YouTube URLs. If you wanted to do like a transcript or summary or something. It does not remember context. So each query is fresh. You can't say something that refers to the previous query. And Nvidia says it does better at answering questions than it does at summarizing. It also does better with larger amounts of data than single documents. Very, very much a demo, Sarah, but kind of a cool demo in that it's showing that you could have a lot of the features of these larger LLMs, these larger large language models. Yeah, locally on your own machine.  I also, you know, I guess one of the things, and I get asked this question a lot, and some of some folks out there either are asking that themselves or maybe know somebody who is going to ask them this later is how, how important is it when something is run locally versus in the cloud, especially when we're talking about, you know, a language model? Yeah, it's it's one of those questions. It's easy to answer from the trust no one side of things. It's a little fuzzy when it's like, but how much do I really need to worry? So if you are someone who's like, Hey, I want to make sure I don't accidentally give any kind of information to anybody who wouldn't use it. Well, having it all locally means it's under your control. If you do send things to the cloud, like with chat GPT or co pilot or Gemini, you are relying on that cloud service provider open AI, Microsoft or Google to maintain good stewardship of your data, not only keeping it out of the hands of people who might try to get it from them, but also, you know, not using it themselves for something you don't want to use it for. So I guess it's all an individual choice. How concerned are you about your data being used for things like training models, which open AI says chat GPT does all the time unless you're an enterprise user, and how much you trust those companies to keep that data to themselves. Also the whole not remembering context again, totally depends on, you know, where you fall on, you know, privacy versus I don't know how context can can help your next query, but it feels so limited in this sense. I feel like that's something that the next version of this will include. They just are trying to keep it simple. Because again, you're running it locally, you're not using a big old data center. So, you know, once you add context, chat GPT used to not remember context. It was a big deal when they added context to it. So it's more it's just more process intensive for it to do that, which is again, but to your point, another reason why this is just a demo, right? Yeah. Well, if anybody does end up playing around with this, let us know how it works. And yeah, it's not that tinkery, like it's not like you have to go and do registry hacking or anything. It's just not user friendly out of the box, you know. Yeah, exactly. When I hear sort of like web server, but not really a web server command line, you know, I know some people are like, eh, talk to me later. Web server can sound scary, but you have all kinds of web servers on your machine right now. You don't realize it because nobody called them out. It just the only reason to know it's a web server is that you're going to have to use a browser to access it. It doesn't have its own independent GUI, which, you know, fine. But there's a lot of stuff like that, mostly websites. A little further context on this too, Nvidia CEO Jensen Huang was talking to the World Government Summit and said that he thinks each country should quote, codify the language, the data of your culture into your own large language model. Now, obviously, Huang thinks that Nvidia's localized AI processing is the right hardware for the job. But this comes right along with the news this week that Nvidia stock got to the point where it was slightly ahead of Amazon and market cap briefly. And then it fell behind, but it's pretty much even with Amazon, which makes it the fourth or fifth largest tech company, the fourth or fifth largest company in the world behind Microsoft, Apple and Alphabet. So we're going to talk with Scott Johnson a little more in part two of this conversation tomorrow about how did that GPU maker that only gamers cared about suddenly turn into the fifth largest company in the world and the leader in AI hardware? Well, another company that some folks around the world are familiar with Google has a feature called Google Meet that many people who are part of meetings are well aware of. Google Meet introduced a new companion mode, which is designed to better help participate in video conferences. Companion mode actually already existed, but they've just furthered it, I guess, because enough people were using it even when you're in a conference room. So you could be remote, you could be in the conference room, but companion mode will allow you as a user to check in on a mobile device, share something like an emoji reaction without having to interrupt the speaker, maybe raise your hand virtually to indicate that you'd like to speak, turn on captions, send chat messages, kind of just be in the conference room but without being sort of too disruptive to the conference room and view and zoom on any presented content to follow along on their device as well. Companion mode has been available on the mobile web version of Google Meet as well as Google's Nest Hub Max device. Now it's available as its own dedicated app for iOS and Android. And Tom, before the show started, we were kind of going back and forth where you were like, so this is for people within the conference room, right? Yes. But you don't have to actually physically be in the same room as everyone else in the conference room because, of course, as many of us either who are remote workers or some form of hybrid work know very well. That doesn't happen as much as it used to. Yeah. So a little bit of the, I looked into a little bit of the history of companion mode. If people aren't familiar with it, they launched it, like Sarah said, originally for laptops for the mobile web and the Nest Hub Max as a way for people who were in the conference room but like part of the meeting was not, part of the meeting was remote. You couldn't do any of the other stuff, right? Because there was one device connecting you to the meeting and your only other option would be to get into the meeting yourself but then you'd have to turn off your camera, mute yourself and you'd still see all the tiles and all of that. So what companion mode does is say, hey, if you don't need voice video or to see everybody, just turn on companion mode, then you won't be distracted with all of that stuff. You won't have to remember to mute yourself or anything like that but you'll still be able to raise your hand and see the chat and all of that sort of thing. So if you're using companion mode, you won't see anyone else in the meeting. You won't hear anyone else in the meeting. They won't hear you but you will be able to do all of those interactive things. And the news here today, like Sarah said, is that instead of having to open a laptop to do that in a meeting, now you can do it on your phone, which is a little less bulky, right? If you're sitting in that conference room to be able to just pull out the phone and be like, okay, now I can send smiley emojis to my boss while they're talking. Isn't that great? I mean, I don't know. It depends on how much you like your boss, I guess. But I do find this, first of all, thank you. That was a good explanation. But there was a time, not that long ago, well, I guess it was sort of a long time ago when I was actually physically in a conference room regularly to be part of a meeting. But when I was to kind of be looking at my phone, pressing a couple of buttons here and there, people would be like, what is she doing? Super rude. She's obviously distracted. These are, I don't know, I mean, this is the modern era of meetings. Some people love meetings, some people don't. But if you have to be part of a meeting, you're not always going to be running the meeting, being the main speaker. It's not really that different than just being like, I'm on mute, but I'm listening, kind of thing. If you happen to be in your car, maybe you're coming back from a doctor's appointment, whatever you're doing, a lot of people just aren't in the same room anymore. But if you are, this just allows you to, I guess, be a little less checked out. That's kind of what I see this as. Well, because I imagine a lot of people have run into this where they're like, well, I need, I need to put this in the chat room, but now I have to reach over to the Google Nest Max and like type into it. No, I'm not going to do that. So I guess I'll open my laptop, but then I have to remember to mute and all of that. So companion mode solved a lot of that. And what the mobile one does, I think is funny, but I imagine this is something people really run into is, hey, if you don't have room to open your laptop, you're in a small conference room, right? And you're like shoved in there might be a little uncomfortable to pull that laptop. Now you can do it on your phone. So yeah, all of this, all of this underlines, right? That hybrid meetings are here to stay like their companies are developing these features because everyone's doing hybrid meetings. Yeah. I mean, when I, when I was looking at this story earlier today, I was like, is this even really that important?  But it all just illustrates how much these little, little tweaks, little tweaks to make it easier to be part of a group while, you know, not necessarily all being in the same room, or just not necessarily all having the same equipment, or having to participate in the same way is just, you know, it's an evolution. Must be between four and 25 letters in our Twitch chat says, Oh, good. I can keep playing Candy Crush, but look like I'm paying attention to the meeting chat just to be able to switch between apps. Thanks Google. We see you. Right. Yeah. I'm just, I'm paying attention. If you want to share your favorite meeting hacks, let us know on the socials. You can get in touch with us at DTNS show on X at DTNS show at mstdn.social on mastodon at daily tech news show on tiktok and DTNS pics DTNS PIX on Instagram and threads. See you there. So TechCrunch had an article today that caught my eye on an app called Memorizer. Now, not every time TechCrunch or the Verge or anybody does an app review, does it make the news? But I thought there was something really interesting about this one. Memorizer is an iOS app that's kind of part Goodreads, part tracked and part Yelp or Foursquare. It offers to let you track anything, books, movies, shows, video games, restaurants, recipes, et cetera, as memories. Memories can be things you did, like a movie you saw, things you're doing. So you can, you can check into reading a book and say it's ongoing or it could be a thing you want to do. It's like, you know what, I want to go to that restaurant. I'm gonna put that as a memory. So I remember what restaurant I want to go to. Memories can be public or private, although you got to pay for the premium to get the private. And you can follow people's public memories in the inspirations tab and add some of their memories as recommendations you want to follow up on. It also has groups that you can recommend to each other, so groups around like sci-fi books or, you know, action movies. Users can create lists of their favorite things, another premium feature. You could make like best movies of 2023, best restaurants in Austin, something like that. And these are the other interesting aspects of Memorizer that I thought made it worth talking about. There is no recommendation algorithm. There's AI all over this thing, but the AI is in your memory to help flesh it out, you know, to bring in like if you put a movie, it'll like bring in summaries and directors and enrich as they say your memory, but they don't use AI for recommendations.  The company makes its money on these premium subscriptions I was talking about. That lets you make your memories private, create more custom lists, etc. So Sarah, it's kind of a social network built around interests rather than news or viral hits, but it's still kind of for influencers, right? Because, you know, you're influencing people with your recommendations and stuff. I guess, yeah. I mean, if you really wanted to go all in on Memorizer, you could influence lots of people.  But I think that in past cases where, you know, you mentioned Foursquare, you know, I got no problem with Foursquare or Yelp or Path or, you know, any of the apps that I used to use a lot more back in the day. But this does feel sort of throwbacky, but I downloaded it, I installed it earlier today, played around with it, you know, just like, I think you should leave. One of my favorite TV shows, you know, I added that in there.  I already know that I like the show, but let's say I just saw it last night type thing. Sometimes there is a little context like, oh, Tom and Roger and I were, remember, you know, it was, it was that Monday when we all hung out and had pizza and watched the show that we all liked.  But if you don't write it down right away, there's a lot of context that just gets lost. Even if you think like in 10 hours, I'll still remember all of this, you just never do. You just don't, or you don't care anymore, but you might wish that you cared later, you know, in a week or a month or a year when you go back to it. I like this. I like stuff like, you know, the sort of minutia of things I like and why and where and how this is, this is a great app. Yeah, I think it's different than Foursquare and the others, not just because it combines multiple things. I think that that is key. It's not saying it's a restaurant app. It's like, it's for following things, whatever they are, but also lets you keep those private, like it makes that front and center. I'm sure you could do private things before in Foursquare and Yelp and others, but they didn't really want you to the point of Facebook and Twitter and Foursquare was like, share it with the world. What's interesting is this is like, share it with people you want to share it with. You can share it with the public, you can keep it private. You can have a private group where you only invite certain people and then what's shared in that group is, so there's more of a balance between, yeah, there might be some things you're comfortable like letting the world know, but let's not just assume that you want to always let the world know everything. This doesn't strike me as a place to like blast out like, hey everybody, here's what I just did, which is why I mentioned PATH. PATH for anybody who wasn't familiar, which gosh, I don't know. PATH's heyday was 2010, 2011, but it was a great app, but the whole idea was like, you know what, social networks are fine, but what about the stuff you really care about? You only really want to share that stuff with your close knit friends. So, you know, pick those 10 to 30 people and that's a different conversation than what you might be having on Twitter. And I don't know. I mean, I always liked that idea. I think there's room for both of these things and also for, you know, for example, okay, so I mentioned on the show last week when we were talking to Scott Johnson that I watched a Clockwork Orange after many, many years and, you know, it was horrified all over again. So I looked it up and it's like, all right, what's the thing that you want to remember for yourself that then I could share with you, Tom? I can rate the memory, you know, between one and 10, like, is this a really bad memory? Maybe that's important. It doesn't have to be something that you love. It's like, this is a thing. This is an experience. I watched this and I need to remember I didn't like it. Yeah, right. Or, you know, if someone asks later, Sarah, requiem for a dream, should I watch that with my grandma? I'd say, heck no, don't do it. Yeah, good for the grandma, I suppose, but probably in most cases. Yeah. Maybe if I didn't have a memorizer, I'd be like, ah, maybe. I don't remember that movie very well. But yeah, I like stuff like this. I think it can be as interesting as you want it to be. I think the key thing that caught my eye, though, is that it is a different approach to what seems like the same sort of thing. But it's saying we're going to use AI. I mean, it's memorize.ai, but we're not going to use an algorithm to make recommendations. We think those are better from people. That you're not going to be subject to weird algorithmic fluctuations that way. And in fact, it's a social network, but it's not like Facebook and Twitter have been in the past, which is everybody follow everyone because that leads to chaos. What we want is people following other folks with similar interests like on Reddit, because that seems to work a little better. So it's combining a lot of these different things that we've started to identify as working better in these spaces. Not to mention, it's not ad supported. So it is not selling your privacy. It's asking you to pay for the privacy. Now that might rub you the wrong way. But then you don't have to use the app at all. But I think it is fair for them to say like, Hey, if you want to maintain the best version of the app, you should pay it pay us for it. And we'll give you some of the stuff for free. Subscriptions are $6 a month $45 for a year. So it's, you know, it's not outrageous that might be more than you want to pay for something like this, but it depends on how useful it is. One thing they know is that they have 70,000 monthly active users and 50% of new users keep using the app after three months, which is an insanely high retention for apps, people download apps all the time and never go back to them. So this one is holding onto its users a lot longer than others. All right, let's check out the mailbag. This one comes from Technomanche who said, Tom mentioned, this was on Monday show, I believe, that he has an external Blu-ray drive that works with his Mac. Technomanche says, I have yet to find one that does my old external DVD drive was a micro USB to USB a used to work on the Intel max until I upgraded to a newer model. That wasn't supported. It's been gathering dust ever since is your drive USB C or are you using a hub with USB a support? What have you found that works? My drive is USB C. I still can't tell you what it is because I can't find it, which is I think revelation into how often we use it. So I will I will dig that up as soon as I can. But Roger came up with an OWC link at max sales.com with Blu-ray drives both internal and external. If you want ones that definitely work with Mac. And if anybody else has recommendations for Technomanche of like, oh, yeah, this is my external Blu-ray drive. I use it. I love it. And especially I think if it works with USB a because I think that's one of Technomanche's situations as well, send it to us feedback at daily tech news show dot com patrons stick around for the extended show. We've got more good content for you on good day internet. You may have seen the story that the on demand version of the Super Bowl halftime show fixed a few audio issues like a cracking note and some low mic volume so that you wouldn't know they happened live. Is this smart? Is this ethical? Does this bother us? Stick around and find out. Just a reminder, we do the show live. You can catch it live Monday through Friday at 4pm Eastern 2100 UTC. Find out more at daily tech news show dot com slash live. We are back tomorrow talking about how Nvidia pivoted from gaming to AI with Scott Johnson. Talk to you then.


Alright, what's going on everybody? This is 1920 Select Team All China Basketball. Two box break, number four random team sold out in JazzPieceCaseBreaks.com. The first thing we have to do is roll the dice for all three randomizers and then we're gonna randomize the first 15 people to buy spots in this break and the top name will win a free spot in the break after five times. So here's what I got for the first 15. What's up Obi-Wan? How's it going? Good luck in this break. One, two, three, four, and five. Joshua H congrats you are the early bird. So we will randomize the list of customer names now. One, yeah this is a new release kind of you know just got brought over from China. Five, there's Ryan down to Matthew. Team All though is like I didn't know what it was before this product. It's like a Amazon for China I think. Big e-commerce site like Alibaba. Alright five times on the NBA teams. Yeah two, three, four, Alibaba is a great stock to follow. Alright there's Mavericks down to Grizzlies. Ryan with the Mavs, Nikolas Lolli-Nuggets, John Hawks, Josh Clippers, Nancy Thunder, Andrew Heap, Rick Wizards, Ryan Knicks, Joe Jazz, Ryan Sixers, Cedric Kings, Skype with the Pelicans, Ryan with the T-Wolls, Jeffrey with the Warriors, Joe with the Magic, Marissa with the Spurs, Globug with the Pistons, Joshua with the Nets, Matthew with the Cavs, Zach with the Raptors, Edward with the Bulls, Ryan with the Suns, Chad with the Blazers, Ryan Shackleton Hornets, Ross Bucks, Juan Celtics, Chad Rockets, Edward Lakers, Zachary Pacers, Matthew Grizzlies. So we're going to pause the video, see if there's any trades. If not, we're going to rip these pecs. Alright no trades, so here you go. Two boxes from the same case and we're going to run it until we hit number 10. It's a 20 boxer. Or no, maybe it's a 12 boxer. The football is 20 boxers. The basketball is 12 boxes. So seven and eight are actually from a different case. I'll note that once this breaks over in the description. I was thinking football. Those I'd imagine would be tomorrow anyways. I don't know. I'm not a Bitcoin guy, Todd. I don't know enough about it. It's also, I don't know. Maybe I don't understand the technology, but I just feel like it won't ever be used on like for its original purpose, you know, which is transactional. But maybe, you know, it could be really dumb and wrong on it. Yeah, we, yeah, it's good for like shady stuff, right? By drugs, dark web stuff. Yeah, I don't either. I definitely never do that. Rex says he's got an email that a Jassy package on the way. Yeah, we shipped out about 200 today. And I think we'll probably get another 100 or so out tomorrow. So we're a little behind, but we're working as hard as we can. All right, there's this on white side, red, those all get sleeved. There's Oladipo. There's a jaw. Nice concourse jaw. Hamorant.  Deandre Aten. Here's gold, Chris Paul. Courtside, Chris Paul. Nice gold there for the OKC Thunder. That's Nancy. There's Drummond. We've got another gold. This one's for the Clippers. That's Paul George. These gold waves are pretty sharp. Brandon Clark for the Grizzlies. This guy sales pretty well too. Matthew White. Grizzlies are pretty good in 1920, if I say so myself. Hot take. There's Russell Westbrook. Ignas Calden Johnson. Marvin Bagley. That's a concourse. And bam, out of buy of. That was box one. Yeah, I've always made the offer. If anybody wins the lottery of over, you know, 50 million that you could just, you know, basically kind of buy out Jasties. We just be your personal breakers. So everything lists on the website will be yours to break. And you can give away teens or whatever.  We wouldn't have to sort anything. We just top load it, get it on the way to you. It would make our business a lot more efficient. We're watching the George Brett time targeting. Although the thing about this game, like after what ending does George Brett get tossed? Like what if it's a second ending? Then I'm going to have to sit through seven innings of this game with no George Brett. I want to say it was late in the game, which is why it was such a big deal. That makes sense. John says it was in the ninth. Okay. Yeah, we could put everything in a one touch. There's a Kobe white. There's a Darius garland like this guy a lot. That's a concourse red. Lonzo. Zion there. Nice. There he is. Nice. Zion for the pelicans at sky done. That's a premier level. Zion. Todd saying he thought it was a walk off. Global says it's the top of the night. He hits it off a goose gossage. Bowl Bowl gold. Nuggets. That's Nicholas Lolley. We don't do that Mac, but we would do if like he had like 50 million in the bank. I'd take that. Joel on bead. Saku. There's a RJ. There's a Luca. And there's a gold LeBron James. Wow. Who's got the Lakers? Edward. Very nice. LeBron. Gold wave. Court side. That's a beaut. Post that to Instagram. People like that. All right. There's a hero. There's a garland. Yeah, it's got to be right. Admiral Schofield red.  There's a Kevin Porter Jr. There's a hollow KZ Oak Paula. Court side. There's another RJ. There's a Deandre Hunter. And there's Matisse Taibu. There's a red JJ Redick and what a box. Another Zion. I don't know if you bought this box. Teddy's got a few boxes on Instagram. You want to break a box with him? I'm pretty sold out for the night, I think I would imagine. But if you want to do some breaks, I'm sure he'll stay for a couple more hours. Here's here at 10, though. mailing stuff and shipping out packages. I don't know how long. Go check with him. Grant Williams hollow. Prism silver. What a box. Gosh. Wow, that's the first parallel. Zion red. Look at this box. I want to say that these two Zions came from this box here. Pretty good. We're selling. We're selling these boxes for $6.99 on our website. I actually needed to take some down here. I need four boxes. So I'm going to take him down to there's a Rui. This was a number four. La Fondue Cabin Gale, another Lebron and PG 13. So there you go. That was a break. Thanks everybody for getting in. No randomizers or nothing like that. Congrats to all the big winners. Thanks everybody. The next one will be coming up pretty soon.