Getting Started with Containers

For a while now, I’ve been wanting to know and learn more about containers. Nothing like a new job that specializes in containers to jump start that process.

If anyone is wondering where a good starting point is for learning what containers are, might I recommend the Docker tutorial container getting-started.

$ docker run -d -p 80:80 docker/getting-started

This is a simple image that includes a tutorial website that takes you through the basics of using Docker. Goes through how to pull an image, build an image with code, update an image, and deploy all with using the CLI. Doesn’t really get into orchestration but does bring it up near the end. However, an added benefit in my book, it’s a fully functioning image that includes a multi-page website. Perfect for running quick container tests.

It may not be what you intend to do with a container, but it is very nice baseline. So much so, I’ve started using it to play around with the container services in AWS. Started off by deploying a copy of it to an ECR repo. From there, I’ve used it to test out different scenarios in ECS and EKS. Testing out EC2 vs Fargate instance types; testing out multiple deployments behind a load balancer; and testing a multi-container task. Perfect for helping me know I’m deploying my containers correctly and they work. I know I can build my own container and test it locally, but I haven’t gotten to that point yet.

I do have a couple of my own ideas to try testing out as well. Just need to build the images. Current plans include my Discord bot, a V Rising game server, and some of my own website builds. The bot will be interesting as I haven’t yet tested .NET Core in Linux and want to give that a try. The V Rising server is Windows only, so that will be nice experience with a Windows container. The websites will likely be Blazor/.NET Core, so Windows is a given; but Linux is an unknown. Similar to my Discord bot currently. Either way, I’ll be learning along the way.

VS Code, the Ultimate Open Source Editor

Between work and school at the moment, my progress through the HTML5/CSS3 learning course in YouTube has been slow, but I’m making progress. While most of what I’ve learned is what I already know, there have been some new concepts I have not touched yet such as HTML Forms. However, one item I’ve been learning a lot more about has nothing to do with HTML5 or CSS3. It is Visual Studio Code.

Now, I’ve been technically using Visual Studio Code for a few years now, just never to the extent of how I’m now using to write my web code for the HTML5/CSS3 course. I’ve used it somewhat for helping write SQL queries and saving a local copy of a C# class/method I’m working on. However, this is the first time I’ve really started using it with extensions beyond the language support. A few great extensions that I’m using for web design, but I’ve started using for my C#, are Bracket Pair Colorizer 2 and indent-rainbow. I can’t say how often I’ve spent more time trying to match brackets and fix mismatch indents then actually writing code. For web design, I’m also using Highlight Matching Tag, Live Server, and Prettier – Code formatter. Live Server is honestly extremely simple, but a heck of a time saver when making page edits and not having to constantly reload pages. Prettier isn’t exactly necessary as I do feel getting into a better formatting habit is more ideal, I’m not perfect and overlook indents from time to time. Just nice to make sure I have a more consistent format without to much fuss. Although none of these are necessary, they make coding so much nicer.

My latest fun with VS Code has to do with Microsoft finally bringing it to Raspberry Pi. I’ve been sitting on a Raspberry Pi 3 for a while now not really knowing what to do with it. With my decision to start focusing on web development, I figured why not use as a lightweight web server. Now, I can use VS Code on my Raspberry Pi to help work on site code. Set it up with SSH, VNC, VS Code, and Apache2. Not sure what kind of site I’ll try to build first, but now I’ve got a perfect lightweight Linux testing environment to play around with. If I don’t want to VNC into the Pi, I just found out that I can use VS Code on my desktop to remote into my Pi’s file system to also edit files over SSH with the Remote Development extension. Granted, I don’t think you need the entire Remote Development extension as you can get the individual components, but I figured why not. Just need to play around with it more, but I’ve already setup a connection and it really nice. Side note, I kept getting this error when trying to connect initially: Resolver error: The process tried to write to a nonexistent pipe. Found a nice fix on Stack Overflow that worked perfect for me.

In all, I really feel that Visual Studio Code really is the ultimate open source editor. It’s free and has one heck of an extension library. Also, you can get it across Windows, OSX, and Linux. If you are looking for a good editor that you can also use for code development, I strongly recommend giving Visual Studio Code a shot.

2021 New Years Resolution

I’m a little late on this, but better late than never. For 2021, my goal is make sure I’m practicing my programming skills. Either by taking some training courses or just fiddling with personal projects. Noticed with 2020, I was dealing with depression which was really impacting my motivation. Still dealing with depression, but wasting my time isn’t doing me any favors. As another personal project, I finally started to learn how to play the guitar. Nothing to do with development, but I realized how much learning how to play the guitar was helping me feel more motivated.

Taking that same idea, I remember seeing a 100 Days of Code challenge on Twitter last year. Not going to necessarily commit to 100 days of coding specifically; but I’m going to work on fitting in some coding each week whenever I find myself just wasting time (which is quite a bit of time at the moment still). Something I did happen to catch while reading some of the posts was a link to Learn HTML5 and CSS3 From Scratch – Full Course YouTube training course shared via freeCodeCamp.org. I know I said I’m going to focus on C#; but considering I want to do web development, I need to also make sure I have a solid grasp of HTML and CSS for that front-end development. Won’t do me any good if I’m proficient in the back-end development if I don’t actually have a site to showcase anything.

The video is 11 hours and 30 minutes, so not going to blow through in one sitting. Just going to break it up into smaller sessions. Fortunately, the video itself is from a course that was originally broken up into small parts, and the the first pinned comment breaks up the timestamp for each section start. Will most of this is all a refresher so far, never hurts to re-review the basics to make sure I have them down. Made it through the first 15 parts today so far. I might watch more tonight; but if not, there is tomorrow. Just as long as I’m working on them consistently.

Fall 2020 School Update

So, finally wrapped up my final course for the year. Only one more year to go and I’ll finally have my bachelor’s degree. I have to say, my original focus heading into my bachelor’s program at DeVry wasn’t Web Development and Administration, but I’m happy that it is now. The primary reason I switched was because my original degree program went away while working on it. It was a degree program more focused on business application programming and was the closest to a pure programming course DeVry offered. When they updated all their IT degrees, they dropped that one and replaced it with something that would have resulted in pushing my progress back. The only course program at that time that wouldn’t result in delaying my progress was Web Development and Administration. A blessing in disguise to be honest.

With only four classes remaining, I have to say that I’m extremely comfortable with ASP.NET/C# website design. Chances are, there are still elements of ASP.NET that I haven’t been exposed to, but I can guarantee it won’t take me long to figure them out at this point. Just need an appropriate use case for me to play around with them. I learn so much better writing out code then just reading about it.

Next up, .NET Core MVC website design. A change from using Forms but looks interesting. That, and I’d rather get more familiar with architecture less platform dependent. The fact that .NET Core works across Windows, OSX, and Linux is far more appealing to me then limiting myself to just the .NET Framework and Windows. Not to say that knowledge is wasted; but I prefer the flexibility.