A388

Review: Star Wars - Thrawn Trilogy Series

I recently finished listening to the Star Wars: Thrawn Trilogy audiobook series, and I quite liked it. At times I didn‘t do anything but sit and listen to it, that‘s how captivated I was with it.

Going into it I didn‘t know much about Thrawn except that he was a tactical genius and that he was the "bad guy". Now, having completed the series, I find him to be quite likable. He‘s still the "bad guy", but he’s the lovable bad guy. Also, yes, he is a tactical genius. His ability to piece together the big picture out of bread crumbs is amazing.

I think this series also introduced Talon Karrde, whom I already liked, but didn‘t know much about either. He‘s Thrawn‘s "good guy" counterpart in my opinion, even though he resists fully committing to being that.

Mara Jade is also introduced, I think, but she‘s kind of mean, although that‘s because she was still under the influence of Palpatine. I‘m glad she finally breaks out of it, although I have a feeling that Palpatine‘s influence was to undermine Joruus C‘baoth‘s plan to claim the Empire as his own.

Overall I really enjoyed the series and I highly recommend it to any Star Wars fan.

Review: Star Wars - X-Wing Series

Since I recently posted a review of the Michael Vey book series, I decided to write a short review of the Star Wars: X-Wing book series since I finished it first. This was the book series that I used to start listening to audiobooks when driving to and from work. I really like Star Wars and specifically Legends (because new cannon is weak, to say the least...) so I started out with the X-Wing series.

I quite enjoyed the series and learned about the campaigns to capture Coruscant, against Ysanne Isard and the capture of the Lusankya SSD, and the defeat of Warlord Zsinj, amongst other events. Having subscribed to EckhartsLadder YouTube channel and watched his videos on those events I had a rough idea of what happened, but I still liked going through the books. Sadly, I think the audiobooks were abridged, so I probably missed on quite a bit of detail. Maybe one day I'll actually read through the books and see, but that requires spare time...

As I was getting the list of the book titles for this post, I saw that there is a book that I haven't listened to yet. X-Wing: Mercy Kill, listed as a side novel to the Fate of the Jedi series, which I haven't gone through yet, so I'll wait until then.

Anyway, if you like Star Wars and Legends, then I highly recommend reading the books or listening to the audiobooks.

Cleanly Optimize and Embed Font Awesome in Your Website

This is a sort of a follow up to the Website Font Optimization post I wrote a while back, but it would still be beneficial because sometimes I forget how to properly embed Font Awesome (or any font) in a website even though I've done it correctly before.

I was embedding Font Awesome in a new project I'm working on and I started messing around with CSS rules to get the glyphs to actually display and I was thinking to myself that there should be an easier way to do this. Turns out there is, and I was using that on a different project that I happened to update over the last couple of days and it reminded me how to do it properly.

Follow the instructions from the Website Font Optimization post to get your final WOFF2 font. Base64 encode and embed it into your CSS if you want to, I usually do. Here's the crucial step. By default you would use Font Awesome by writing this: <i class="fa fa-font-awesome-flag"></i>, and you still can with my method, except you would copy the glyph into the content of the <i> tag like: <i class="fa"></i>.

When you read this, it will probably show as a blank space, but the glyph is actually there. Then in your CSS, you would simply write a rule for .fa to have font-family: FontAwesome. This way you don't have to mess around with ::before or ::after rules to fill in the glyph since you're bypassing the usual way to use Font Awesome.

Make sure that when you're optimizing your font that you update the character code because if IcoMoon doesn't recognize it it will generate a new one and the glyphs will not show up. I usually just go into the icon details on Font Awesome's website and copy the code from there. I also use the IcoMoon pre-download page to copy the glyphs out. Here's a more complete example of how I do it.

CSS

@font-face {
    font-family: FontAwesome;
    font-display: swap;
    src: url("data:font/woff2;base64,...base64_encoded_font...");
}

.fa {
    font-family: FontAwesome;
    font-style: normal;
}

HTML

<a>
    <i class="fa"></i>
    <span>Font Awesome is awesome!</span>
</a>

Hope this helps you, and if nothing else, it will help me to remember in the future how to do it easily.

Review: Michael Vey Book Series

I've been wanting to add non-programming content to my blog a little while now, and now I have something to do so with. It's a little late since I finished the series a few weeks ago, but I wanted to do a short review of the Michael Vey series of books by Richard Paul Evans.

I originally learned about the series when Mr. Evans did an interview with Glenn Beck years ago when he was releasing the first book, Michael Vey: The Prisoner of Cell 25. I purchased the book, read a few of the beginning parts, and then I put it on my bookshelf. I didn't dislike the book, but it was a little slow in the beginning and I just had quite a bit going on at the time in real life and couldn't dedicate the time to read it.

Then, about January of this year (2019 as I'm writing this), I decided to start listening to audio books while I'm driving since I spend an hour each way to and from work. I actually started out with a different series, which I might review as well, but when I finished it I decided to start the Michael Vey series again.

Like the first time when I was reading the physical book, the beginning was a little slow, but eventually, it picked up the pace and never slowed down. I'm not going to spoil anything from the books because I really enjoyed the story and would like you to as well.

There are many emotions throughout the story from anger to happiness, sadness, and sorrow to satisfaction. A sad moment occurred around the middle of the series and I got quite teary eyed. Other times I wanted to slap the main character for falling into the psychological traps of the villain.

I did learn quite a bit from the books though and have found myself using that knowledge in day-to-day conversations. There's a very satisfying feeling when that happens.

Overall, I consider this one of my favorite book series and my only sadness is that it's over. I highly recommend reading the books or listening to the audiobooks. The audiobooks themselves were very well done. I would be very happy if this was made into a TV series since there's too much to fit into a movie series.

You can purchase the books from Amazon or the audiobooks from Audible (of course, from other retailers as well).

Windows Server 2019 Migration, Windows 10 Cleaner Bug Fix, and Other News

I spent most of the weekend migrating to Windows Server 2019, coming from Windows Server 2016. I didn't really have a reason to do so other than to dip my toes into Server 2019, and to be on the latest and greatest. Everything went pretty smooth, mostly, so now I'm on Server 2019.

In the process of migrating to Windows Server 2019, I decided to use my handy-dandy Windows 10 Cleaner PowerShell script..., and found out that it had a bug. Once I finished the migration, I dove into figuring out what was causing the bug. It turned out that my HTML minifier middleware was minifying every response, regardless of its content type. After a few hours, I fixed it to only minify text/html responses, and the script is now being sent correctly. Yay!

Lastly, after the migration, I found out that Visual Studio 2017 FTP publishing over TLS is ancient and only supports up to TLS 1.0. I'm not happy about it because I was really trying to get to an A+ rating on SSL Labs, but I couldn't simply so I can publish from within Visual Studio. Really not happy about it. If anyone runs into an issue like that, you have to at least have the TLS_RSA_WITH_AES_256_CBC_SHA (0x35) cipher enabled on your server, if you have control of that. Microsoft, please update and fix the FTP publishing in Visual Studio 2019 to support TLS 1.2 and higher!

Website Font Optimization

When I was setting up my blog originally I tried to optimize the font download. I only use three glyphs from my custom font so it was a waste of data to download the full font, which was 72KB, just for that. The solution was to simply remove the unused glyphs.

At first I used a tool called FontForge to do that, but it was a very slow and manual process. I also messed up twice so I had to start over each time. When I finally finished I got a 4KB file and I left it at that.

Earlier this week I decided to try again, this time with some better tools. The first tool is called IcoMoon and it allows me to just export the glyphs I need just like the original tool I used, just much easier. But there was an issue, it doesn’t like TTF fonts. So, I used Everything Fonts to convert my TTF into an SVG font. I then imported it into IcoMoon and exported the glyphs I needed.

The resultant WOFF file was just 2KB, but I knew I could do better. I used Everything Fonts again to convert it to a WOFF2 file and that further reduced it to 1KB, which is pretty darn good coming from 72KB.

Lastly, I base64 encoded it and embedded it into my CSS. You don’t have to do this, but I just wanted to avoid an additional request for it. I may revisit this when I upgrade the site to HTTP/2. I decided to leave it in place even with HTTP/2.

Cleaning up a Fresh Install of Windows 10 using PowerShell

Windows 10, in my opinion, is a great operating system, but it does have its quirks and annoyances. One major annoyance is the number of apps that come pre-loaded on a new installation. At my work, I wrote a PowerShell script around two years ago that does some configuration when domain joining a new computer. It removes the annoying apps, and locks down some settings, among other things.

I had been thinking about re-writing the script to be a bit more generic, and I did. You can find it by going to the TOOLS section and downloading it from there. Here, I will explain how to use it. The script will need to be ran for a total of three times for the best results.

Before we continue, be aware that this has been tested on Windows 10 version 1803 (April 2018) update only. You can follow along below or watch the video demonstration.

1st Run

You will first need to set the execution policy to unrestricted within PowerShell to allow the script to do its job. Open a PowerShell window in Administrator mode and run the following command:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Confirm:$false

Then find the downloaded copy of the script and right click on it and select Run with PowerShell. The first run will:

  • Set the power plan to High Performance
  • Disable UAC

After UAC is disabled, the computer will be restarted. Once it's up we'll do the second run.

2nd Run

After the computer has restarted, find and run the script the same way you did in the first run. The second run will:

  • Repeat 1st run
  • Disable hibernation
  • Attempt to run the Windows 10 Decrapifier script
  • Remove app packages
  • Remove OneDrive

If the Windows 10 Decrapifier script was not found in the same directory as my script, then a browser window will be opened to the download location. Download it and wait for the computer to restart to continue into the third run.

3rd Run

On the third and final run, we just re-run the script one more time. This time if the Decrapifier script is available, it will be invoked. The third run will:

  • Repeat 1st run
  • Repeat 2nd run

After the final restart you should have a clean fresh copy of Windows 10. The only annoying thing is that sponsored apps are not removed. You will have to right click and "Uninstall" them yourself, however, thanks to the Decrapifier script they will not reinstall themselves again. From here on out you can customize Windows 10 how you want it to be.

Welcome to my Blog!

Hello and welcome to my blog!

My name is Arex and I work as a software developer. I’ve wanted to make a blog for quite a while now to share things I’ve learned while doing my work and here we are, I’ve finally done it.

I primarily work with ASP.NET and Entity Framework. I’m making my way through ASP.NET Core and Entity Framework Core as well. I’m also the administrator and IT guy at my work, so I have a fair amount of experience with Windows, client and server, and Amazon Web Services. Oh! I forgot, I’m also the database administrator, so I have at least above average SQL skills. Rounding things off are the standard HTML, CSS, and JS.

I’ll also include other topics such as cooking, gardening, herbalism, health, I hope some gaming, and anything else that has my interest.

My mom and I are both vegan, mostly raw, for health reasons and we’ve learned quite a bit about health and nutrition that we want to share.

I hope to get some gaming in and I’m kind of going to use the blog to make that happen. I’ve sadly spent far too many years focusing on thing but work and have abandoned playing video games, amongst other things, except for the 10 hours or so I can put in throughout a year.

Pretty much everything I post will be accompanied with a YouTube video, so if it interests you, please like and please subscribe to the channel, of course once there’s content on it. I’ll be honest, I do intend to monetize the channel once it’s possible, so I’ll be putting in the work and effort to grow the channel with quality content. Hope to see you there!