I love emulators. I love that they exist. I love that we have computers that are not only fast enough to translate and emulate instructions in real time for totally different computers that may not even exist any more but also for computers that are shipping today! I love these C# based emulators:
Today I learned about Ryujinx, an experimental Nintendo Switch Emulator written in C# on .NET Core. The homepage is at https://ryujinx.org/. Emulators are great for learning about how to write and factor great code. Some are certainly “big ball of mud” architecture, but RyuJinx is VERY nice. ![]() Ryujix is particularly cleanly factored with individual projects and modules that really follow the single responsibility principal. It’s written in .NET 5 and you can just git clone it, and go into the Ryujinx folder and “dotnet run,” or build from Visual Studio. There are also daily builds on their site. Some of the impressive features - and again, this is written in C# on cross-platform open source .NET 5:
Most emulators are created for educational and experimental purposes, so don’t look to be using this for nefarious purposes. This is a fantastic codebase to explore and experiment with. Using a computer is like riding in a Lyft. Writing an Emulator is like disassembling an internal combustion engine and putting it back together differently and it still works. It won’t make you a better person but it will make you appreciate your Lyft. Sponsor: Simplify code, reduce costs, and build faster without compromising the transactionality, scale and flexibility you need. Fauna - a global serverless database for all your applications. Learn more! © 2021 Scott Hanselman. All rights reserved. Ryujinx is an Experimental Nintendo Switch Emulator written in C# for .NET Core published first on http://7elementswd.tumblr.com/ via Tumblr Ryujinx is an Experimental Nintendo Switch Emulator written in C# for .NET Core
0 Comments
This idea of “time-boxed freak outs” has always stuck with me. A few times a year I get overwhelmed. I think we all do to some extent. Often I’d try to fight it, don’t cry, don’t get overwhelmed. But I remembered what my Mom said and I started being present in the freak out. I’d set a timer for 10 or 15 minutes and REALLY own it. Get upset, cry, and not feel bad about it. I deserve the release and by time-boxing it, it allowed me to own it and accept it. I can ramp up, and then ramp down. I’ve found this to be far more healthy than trying to swallow feelings and hold it in. Sometimes it needs to be OK to go and cry in your car in the parking lot.
I tweeted about this idea and found a number of replies that also found this technique helpful. Here are some anonymized quotes:
and
and
and finally
Again, as with all random internet advice, you are under no obligation to do anything you don’t feel is safe for you. However, some have found this helpful. I hope it helps you. Be well! Sponsor: Simplify code, reduce costs, and build faster without compromising the transactionality, scale and flexibility you need. Fauna - a global serverless database for all your applications. Learn more! © 2021 Scott Hanselman. All rights reserved. Try time-boxed panics published first on http://7elementswd.tumblr.com/ via Tumblr Try time-boxed panics I’ve long run a few dozen websites in Azure and while I’ve long noticed people (frankly) wasting money by having one Azure App Service (a Web Site) per Azure App Service Plan (a VM) I tend to pack them tight. A Basic 1 (B1) Azure App Service running Linux is around $13 a month but has nearly 2 gigs of RAM. Up that to about $26 a month and you’ve got 3.5 gigs of RAM and 2 Cores AND 10 gigs of storage. Use ALL that RAM. Max out that storage - use the resources you have paid for. If you hit up against a limit you can always add more and scale up. Run those boxes hot, you paid for them! While my blog and podcast and main site run on Azure Premium SKUs (and are fast and it’s worth it) I have a dozen little one pagers, brochureware sites, and toys like https://www.keysleft.com/ and I’ve managed them all in an App Service as well. But they are static sites. They are nothing sites…so why do I need an App Service? It’s overkill. Turns out Azure Static Web Apps are a lovely thing and they are FREE while in Preview. It’s great for static sites, sites made with static site generators, or Jamstack sites with serverless functions behind them. So I converted a bunch of my little sites to Azure Static Web Apps. Took maybe 90 minutes to do 8 of them as seen below. ![]() Since the code for these sites was already in GitHub, it was very easy to move them. For example, the code for the KeysLeft site is at https://github.com/shanselman/keysleft and Azure Static Web Apps has a GitHub Action that easily deploys it on every commit. It’s butter. It’s created for you but you can see the generated GitHub Action as it lives alongside your code. ![]() The docs are clear and it works nicely with Vue, React, Angular, or just regular HTML like my son’s Hamster Blog. https://www.myhamsterblog.com/ As it’s in Preview now it’s free, and I’m sure it’ll be super cheap when it goes live. I have no idea how much it will cost but I’ll worry about that later. For now it’s allowed me to turn off an entire Azure App Service and replace it with Azure Static Web Apps. They also support custom domains and they automatically make and assign you an SSL cert. My only complaint is that there’s no easy support (today) for apex domains (so all mine have www. as CNAMES) but you could proxy it through a free Cloud Flare account if you really want. Check it out, I suspect you have a site right now that’s either generated or just static and this could save you some money. Sponsor: Protect your apps from reverse engineering and tampering with PreEmptive, the makers of Dotfuscator. Dotfuscator has been in-the-box with Microsoft Visual Studio since 2003. Visit preemptive.com/hanselminutes for a professional-grade trial. © 2021 Scott Hanselman. All rights reserved. Penny Pinching in the Cloud: Azure Static Web Apps are saving me money published first on http://7elementswd.tumblr.com/ via Tumblr Penny Pinching in the Cloud: Azure Static Web Apps are saving me money I spend so much time at the command line using the Windows Terminal. Then I spend a ton of time using git at the command line. But then I ALT+TAB over to GitHub and mess around in the browser. Why have I been sleeping on the GitHub CLI? - there’s a command line interface for GitHub! I installed with “ Then you run gh auth login Now you’ve got a new command “gh” to play with! I went over to one of my local git clones for the Hanselminutes Podcast website and I can now list the open Pull Requests from the command line! ![]() Here’s the real time saver that Dan Wahlin reminded me about: > git init Fantastic! You can even gh issue create Checking out a Pull Request is a great time saver as well. Go check out http://cli.github.com/ and see how it can help you today! Sponsor: Protect your apps from reverse engineering and tampering with PreEmptive, the makers of Dotfuscator. Dotfuscator has been in-the-box with Microsoft Visual Studio since 2003. Visit preemptive.com/hanselminutes for a professional-grade trial. © 2021 Scott Hanselman. All rights reserved. Don’t forget about the GitHub Command Line published first on http://7elementswd.tumblr.com/ via Tumblr Don't forget about the GitHub Command Line
As such I was excited to see their new Kickstarter called CrowBits. These are magnetic, programmable, electronic blocks that are also LEGO element compatible, which as you likely know, is a huge plus for my family. I’ve blogged a lot about STEM toys before, usually at Christmas, but this is a lovely spring surprise! The devices are ESP32, Arduino and Micro:bit compatible, and there’s over 80 of them. 30 of them need no programming. The whole system has a Scratch 3.0 software sitting on top, so my kids and I are already familiar with how to program these. If you’re not familiar, MIT’s Scratch is a visual block language that abstracts away the text aspects of programming for visually nested blocks. It’s very intuitive. ![]() Since the people at Elecrow have successfully delivered on all their previous KickStarters and I’m personally holding both CrowPis from those Kickstarters, I have high confidence in their ability to deliver the CrowBits. ![]() Even better, I’m seeing in the comments on the Kickstarter that the company is aiming to allow their programming system to run on the Raspberry Pi CrowPi devices I already own, so that’s a bonus that it’ll all work together. Go check it out https://www.kickstarter.com/projects/elecrow/crowbits-electronic-blocks-for-stem-education-at-any-level Sponsor: The No. 1 reason developers choose Couchbase? You can use your existing SQL++ skills to easily query and access JSON. That’s more power and flexibility with less training. Learn more. © 2020 Scott Hanselman. All rights reserved. Crowbits are Electronic Programmable LEGO Compatible Blocks for STEM Education published first on http://7elementswd.tumblr.com/ via Tumblr Crowbits are Electronic Programmable LEGO Compatible Blocks for STEM Education
However, many times blogging is just keeping track of a fix for a nagging problem. There may just be 5 or 6 of us with this issue, but if you’re that person, this blog post is for you! Welcome to the solving of the issue you just googled for. I recently bought an Elgato Key Light, and when I purchased it I did not realize that it did not have any external controls. You can only control the light with Wi-Fi and remotely. Personally I think that’s a product flaw, this means I’m always going to have to be dependent on their software, and I can’t just turn the thing to another level or color with a button. The biggest issue with this light - and other picky IoT devices - is that it doesn’t like my network. It happens to be the one and only device on my Ubiquiti network that doesn’t seem to want to get along with the others in the house. It uses multicast DNS in the form of Apple’s weirdo Bonjour service to broadcast itself, and it’s notoriously hard to get the Elgato Control Center software to find the light. I know it’s on the network, I can see its IP. There’s lots of blog posts with folks trying to solve this issue, and if you found your way to this blog post I figure that you’ve already done the obvious things like opening the firewall, turning on multicast DNS at the router level, and now you’re just sick of it. Here’s my brute force solution that made my Key Light show up in Control Center. First, I’m assuming a few things:
I put my Settings.xml file in this gist but the salient points are the SerialNumber and the IpAddress. You’ll find the Serial Number on a sticker on the back of the light. You’ll find the IP address in your router’s IP table. Go to this folder on your PC
Make a copy of the settings.xml in that folder so you don’t blame me with this whole affair goes horribly wrong. This is not the complete settings.xml, again that’s in the gist, but this was the missing piece for me. <Accessories> Change the Elgato Settings.xml to include YOUR light’s serial number and IP address. Start Control Center. BTW, I also found this lovely blog post from Trevor Sullivan where he shows the Elgato Key Light internal API (on /elgato/lights) and a PowerShell Module that lets you change the Elgato Key light with script. To be clear, this doesn’t excuse not having buttons, but it’s a start. Hope this helps both of you with this problem I had! Sponsor: The No. 1 reason developers choose Couchbase? You can use your existing SQL++ skills to easily query and access JSON. That’s more power and flexibility with less training. Learn more. © 2020 Scott Hanselman. All rights reserved. Fix for Elgato Key Light not found by Control Center published first on http://7elementswd.tumblr.com/ via Tumblr Fix for Elgato Key Light not found by Control Center You probably know that you can download free developer tools for Windows 10 up at the Windows Dev Center here. Visual Studio Community IS effectively the Pro SKU and is free for Open Source. You may even have a “Take Home” license at your work since the paid version of VS is licensed per-user, not per-machine, so ask your boss if you can install it at home and get the same pro tools you use at work. BUT, did you know (I did not!) that you can download a free time-boxed Windows 10 Development environment for your Mac, Windows, or Linux machine as a virtual machine? That means, there’s a pre-configured VM for VMWare or Hyper-V or VirtualBox or Parallels up at https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ right now. This has been super useful when I wanted to get a build running fast on a system to test something or get started TODAY. This evaluation virtual machine includes:
These are for eval or quick testing and expire regularly, so check back to get another if you need to. (BTW there are also free VMs for testing IE11 or Edge Legacy but we don’t talk about those.) ![]() Again, VS Code is free for Windows, Mac, and Linux, and VS itself is free for Windows and Mac so you may not need these VMs, but knowing there are Windows developer VMs available free for eval is a super useful way to bootstrap development on any machine. Enjoy! Sponsor: Have what it takes to code securely? Select from dozens of complimentary interactive secure coding labs, test your skills, and earn a badge. Learn more! © 2020 Scott Hanselman. All rights reserved. Free Windows 10 development virtual machines for HyperV, Parallels, VirtualBox, and VMWare published first on http://7elementswd.tumblr.com/ via Tumblr Free Windows 10 development virtual machines for HyperV, Parallels, VirtualBox, and VMWare According to the Dapr open source website:
![]() Since a lot of folks who read my blog use .NET, I wanted to let you know there’s a free eBook on how to use Dapr with .NET available now. This free book covers common needs for complex cloud apps and how to make it happen with Dapr and .NET, including:
Dapr enables developers using any language or framework to easily write microservices. It addresses many of the challenges found that come along with distributed applications, such as:
There’s also a project at the dotnet-architecture GitHub that includes a complete sample app (go give them a GitHub star, please, for their hard work!) that takes the eShopOnContainers project and instruments it with Dapr! ![]() eShopOnDapr runs in containers and requires Docker to run. There are various ways to start the application:
Hope you enjoy it! The team would really hard on making it happen. Sponsor: Have what it takes to code securely? Select from dozens of complimentary interactive secure coding labs, test your skills, and earn a badge. Learn more! © 2020 Scott Hanselman. All rights reserved. Free eBook: How to use Dapr for .NET Developers published first on http://7elementswd.tumblr.com/ via Tumblr Free eBook: How to use Dapr for .NET Developers This is pretty cool. As you may know, when you type “ ![]() Some folks feel there should be more included “out of the box.” Enter “dotnet-boxed” templates! You can install them from the command line easily like this: dotnet new --install Boxed.Templates You can confirm they are there by running Templates Short Name Tags Let’s try them out! I can see them here in the File New Project dialog in VS2019: ![]() There’s a really nice project that sets up a NuGet package right from File New! It can even set up Test, GitHub Actions, .editorconfig, license, cake build, code of conduct, and more. All that boring boilerplate is done for you! This is just one template example, there are also ones for WebAPIs, GraphQL projects, and Microsoft Orleans projects. DotNet-boxed is a great community supported project! Head over to GitHub now and give them a STAR and get involved! Even better, I see some “help wanted” issues on their GitHub. I’m sure they’d appreciate your help. https://github.com/Dotnet-Boxed/Templates Sponsor: Tired of not finding the code you’re looking for? Get Sourcegraph universal code search and search code across ALL your repos, languages, and code hosts. Find and fix code fast with Sourcegraph. Try it now! © 2020 Scott Hanselman. All rights reserved. DotNet Boxed includes prescriptive templates for .NET Core published first on http://7elementswd.tumblr.com/ via Tumblr DotNet Boxed includes prescriptive templates for .NET Core One of the things I’m always working on and am always excited about is making C# simpler for new folks. With .NET 5, today, this works, as it includes C# 9 > dotnet new console That’s C# 9 top level programs. We should be able to remove even more. Skip the first command completely and do it all on one line, one file. A hello world is either using System; or System.Console.WriteLine("Hello World!"); or, scandalously using System; Not sure how I feel about that last one. Regardless…would this work in Visual Studio 2019? What if I was teaching a class and wanted to have one file per homework assignment, for example? Right now Visual Studio only supports one top-level program per project. Make sense why, but for learning, why not allow folks to choose from the run/debug menu? I’m going to add a reference to SmallSharp like this (or in Visual Studio) > dotnet add package smallsharp Now here’s what my homework looks like in Visual Studio 2019! There’s one menu item per top level program! This lovely prototype was done by Daniel Cazzulino (kzu) and you can learn more at https://github.com/devlooped/SmallSharp, or just try it out as I have here! What do you think? How can small top-level programs help new people? What about this? > dotnet new microservice Sound off in the comments. How tight and simple would that be? Sponsor: Tired of not finding the code you’re looking for? Get Sourcegraph universal code search and search code across ALL your repos, languages, and code hosts. Find and fix code fast with Sourcegraph. Try it now! © 2020 Scott Hanselman. All rights reserved. Tiny top-level programs with C# 9 and SmallSharp and Visual Studio published first on http://7elementswd.tumblr.com/ via Tumblr Tiny top-level programs with C# 9 and SmallSharp and Visual Studio |
About UsIf you want to keep up with the latest in web design, you have to be willing to study and learn on an ongoing basis. If you are a web developer or web designer, you’ll find a lot of useful tutorials and code snippets collection here. Furthermore, we also discuss more general topics of web design and how the role of a web designer has evolved over the years.
|