I’m a big fan of audio learning, and of course there are tons of great, free, dev podcasts but did you know that there are quite a few great audiobooks for devs as well?
I’ve been a subscriber to Audible.com (and yes, these are affiliate links below) for a long time, but they have only recently started adding the types of programming books that I liked to read. I’ve kept track of the Audiobooks that I’ve picked up that intersect with books you frequently see on “best of ” lists. I’m proud to say I’m 6.5/7 through the list already and I’ve got the next one already on deck!
My 2020 (Dev|Re)solutions
New Year’s is my favorite holiday because I find the notion of periodic renewal invigorating. Let that old lasagna be forgot, I want to move forward! Overall, I was pretty happy with how my technical skills progressed last year, but I think I can do better. Much better.
This year I’m done trying to micromanage my future with limited information. I want to keep things simple by setting a high level focus and prioritizing habits over static goals.
[Read more…]Streaming process output to a browser, with SignalR and C#
I’m happy to announce that I’m taking part in the The Third Annual C# Advent this year along side many great articles and podcasts. If you have even a passing interest in C# then you should go check it out and follow all of the authors on social media!
Okay, enough with the niceties! See, when it comes to holidays I am more of a Grinch than a Griswold so I’m going to show you how to do something in C# that is cool, powerful, and … dangerous! I’m going to show you how, from a website, to invoke processes in a command shell and stream the results back to the browser via SignalR.
And before we get any further I should note, this blog post will not be a good introduction to SignalR, that documentation already exists. This article is intended for developers who have web development experience with C#, and are at least somewhat familiar with the concepts of SignalR, and web sockets.
But first, a disclaimer:
Warning! We are literally about to create a remote code execution injection vulnerability, as it allows any user or process with access to the website to run arbitrary commands. However, there are times when you may want to do something similar, very carefully and in a limited fashion. Check out Azure Cloud Shell and Coder.com for examples of web apps that let you interact with shells in a browser.
Now, with the disclaimer out of the way – let’s get our hands dirty!
[Read more…]In Defense of Big O
One of the few things that developers can agree on is that the interview process is terribly broken. There are ideas about how to fix it (links below) but the industry has yet to come to a consensus on a better way forward.
Many developers are particularly aggravated by the way some organizations insist on “academic” interview problems that test developers skill with algorithms and (big O) algorithmic analysis. The argument is that these types of problems are often irrelevant to the job, rewarding antiquated knowledge over practical skill, and are biased in favor of developers with more time and resources to spend on preparation.
Now, before we continue let me get this out of the way:
I agree with those arguments!
Why Avro?
Apache Avro is an open source data serialization system that lets you send information. It is frequently associated with “big data” and distributed systems because it has some distinct advantages over the competition.
The primary advantages are listed below, but read on for more information:
- Messages are highly efficient
- Strong schema support
- Schema versioning
- Dynamic schema support
- Different, but compatible, Reader and Writer versions allowed
- Union types
- Object container files can include schema along with encoded records
- Support for serialization/deserialization with human-readable JSON
Want to get into game programming?
I have dabbled with game programming many, many times over the years, but I kept bumping into the same problems and frustrations.
Lucky for me, I got a chance to bend Jason Weimann’s ear over on the Unity3D College YouTube channel and I got some great pointers and a fresh new perspective!
Make sure to subscribe to the channel if you have any interest in game development!
Elasticsearch is not just for search!
Elasticsearch is often described as an open-source, scalable, full-text search and analytics engine. This is true, but this sentence doesn’t really tell you much about what developers actuallydo with it.
Many people who hear “search engine” may have preconceptions about what developers use them for, thanks to the strong correlation with services like Google, Bing, or Duck Duck Go. To be fair, the full-text search of Elasticsearch can get you similar, but far less sophisticated, results as something like Google but that’s only part of the picture.
Because of the nature of the underlying technology and the focus on horizontal scalability, Elasticsearch is also a fantastic analytics tool. “Analytics” is vague term though, so I wanted to list out 4 common use cases for Elasticsearch that are hopefully more relatable.
[Read more…]Coding Lessons…from Factorio?
Factorio is a game where you are a teeny tiny engineer has been stranded on a very large and hostile alien world. Your goal is to build a rocket and shoot yourself out of there, but that’s going to take some serious work!
[Read more…]JAMstack Primer for Back-End Devs
The JAMstack is a methodology for building web apps that is based on client-side JavaScript, reusable APIs, and prebuilt Markup. I think that the emphasis on build-time rendering has interesting implications for all web developers, and I made a little video about it while working on a presentation about it for a group of Back-End developers.
I tried doing it in a fun “pop-up video” style, and I’d love to know what you think about it!
[Read more…]Calling all Full-Stack Haters
There are plenty of posts that discuss the benefits of specializing in either front-end or back-end development. I generally enjoy the types of articles that offer me the chance to see the world from another developer’s eyes. However, some of these articles are particularly antagonistic to Full-Stack developers, and I worry that the hyperbole is harmful.
[Read more…]