Photo by Mr Cup / Fabien Barral on Unsplash

I recently had the opportunity to work on a team of Ruby developers. For reasons, the project we were working on was to use .NET, so these developers needed to get up to speed with C# so that they could begin cranking out code. It was an interesting experience for me personally because I got to see C# from a Rubyist’s perspective. Fielding their questions is what inspired me to write my last article on C#’s growing complexity.

Now, they’re smart people, these Rubyists, so they acclimated quickly and had started writing C# within a weeks’ time. They were using…

Photo by Timo Volz on Unsplash

I’ll start off by saying that I’m a big fan of C#. It’s the language I recommend for new projects, it’s what I recommend to budding programmers, and it’s the language I think in when problem solving. It wasn’t the first language I learned (that would be Java) but once I started playing with C#, I was hooked. Recently though, I’ve been having a nagging feeling that C# is getting too complex for its own good. Every couple of years Microsoft releases a new version, the language becomes ever more packed with features, and it feels to me that it’s…

Not a python
Not a python
Photo by Jordi Fontana on Unsplash

I’ll say it again: Python is a bad programming language, and the only reason it’s so popular today is because Google pushed it so hard in the first decade of the 2000s.

The creator of Python, Guido van Rossum, actually worked at Google from 2005 to 2012. Go and Dart weren’t around back then (or at least they weren’t well known) and with C# gaining in popularity (stealing would-be Java developers) Google probably felt they needed a language of their own. They probably would have wanted to embrace Java, as they were already using it with Android, but they must…

Photo by Jess Bailey on Unsplash

I recently (ha…) implemented a Least Recently Used (LRU) cache in C#, inspired by the one in Python’s functools library.

The way it works is you take an ordinary C# method such as this one…

public int Add(int x, int y)
int result = x + y;

return result;

…and you add on an attribute from the LRU cache library:

public int Add(int x, int y)
int result = x + y;
return result;

The presence of the LRUCache attribute says that if the parameters passed in exist in the cache, don’t execute the method…

Photo by Aaron Burden on Unsplash

I just finished reading Buckminster Fuller’s “Operating Manual For Spaceship Earth”, and while the message of the book is a noble one — at times it’s framed in such verbose language that it’s nearly impossible to make out what Fuller is trying to say. In the chapter titled General Systems Theory, one sentence in particular stood out to me as comically impenetrable:

The system divides universe not only into macrocosm and microcosm but also coincidentally into typical conceptual and nonconceptual aspects of universe-that is, an overlappingly-associable consideration, on the one hand, and, on the other hand, all the nonassociable, nonoverlappingly-considerable…

Photo by Baher Khairy on Unsplash

Fiddler is a web debugging proxy server that was originally written by Eric Lawrence of Microsoft and has since been acquired by Telerik. It’s commonly used to view HTTP/S traffic between client and server software. A lesser-known feature is Fiddler’s AutoResponder. The AutoResponder lets you supply your HTML and JavaScript files in place of files that the server would send you.

How it works is you provide a matching rule for a URL, and if a URL matches, Fiddler responds with a file you specify.

Let’s try creating a simple rule for Our rule will match on the full…

Photo by on Unsplash

Recently my company decided to use DynamoDB for its data storage needs. DynamoDB is a NoSQL database and lacks many of the features that one would find in a relational database. One such feature is integer-based offsets.

DynamoDB provides no way to do what would otherwise be a simple query in SQL Server:

FROM MyTable
ORDER BY column_name

Paging is possible in DynamoDB, but instead of using integers, it uses values.

What this means is when DynamoDB returns the results of your query, it also returns a LastEvaluatedKey, which you…

Michael Moreno

Opinionated software engineer based in NYC.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store