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…
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…
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…
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;
…and you add on an attribute from the LRU cache library:
public int Add(int x, int y)
int result = x + y; return result;
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…
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 example.com. Our rule will match on the full…
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:
ORDER BY column_name
OFFSET 25 ROWS
FETCH NEXT 25 ROWS ONLY
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…
Opinionated software engineer based in NYC.