3 years Ago
Hard drives => SSDs
In the old days, we cleaned up our hard drives because we didn’t have enough space for all of our stuff. Our operating systems, applications and caches took up a reasonable portion of that hard drive.
Then we had gigantic hard drives with more than enough space for everything. Operating systems, applications and caches grew. Parsimonious software was no longer in vogue because it was a waste of time and money.
SSDs replaced hard drives, improving speeds drastically and... [More]
In the previous article, I explained how we were using NDepend to clean up dependencies and the architecture of our Quino framework. You have to start somewhere, so I started with the two base assemblies: Quino and Encodo. Encodo only has dependencies on standard .NET assemblies, so let’s start with that one.
The first step in cleaning up the Encodo assembly is to remove dependencies on the Tools namespace. There seems to be some confusion as to what belongs in the Core namespace versus what... [More]
A while back—this last spring, I believe—I downloaded NDepend to analyze code dependencies. The trial license is fourteen days; needless to say, I got only one afternoon in before I was distracted by other duties. That was enough, however, to convince me that it was worth the $375 to continue to clean up Quino with NDepend.
I decided to wait until I had more time before opening my wallet. In the meantime, however, Patrick Smacchia of NDepend approached me with a free... [More]
The summary below describes major new features, items of note and breaking changes. The full list of issues is also available for those with access to the Encodo issue tracker.
Data & Schema
- Applications can now choose a base class for generated ORM objects. (QNO-3107)
- Data driver: made various bug fixes and improvements. (QNO-4538, QNO-4554, QNO-4551)
- Improved schema migration for fields and constraint-violation messages under SQL Server. (QNO-4490, QNO-4111, QNO-4582)
- Improved... [More]
Quino is a metadata framework for .NET. It provides a means of defining an application-domain model in the form of metadata objects. Quino also provides many components and support libraries that work with that metadata to automate many services and functions. A few examples are an ORM, schema migration, automatically generated user interfaces and reporting tools.
The schema-migration tool
The component we’re going to discuss is the automated schema-migration for databases. A question that... [More]
To make a long story short: the compiler(s) and execution engine optimize by profiling and analyzing code and lowering it to runtimes of ever decreasing abstraction to run as the least dynamic version possible.
A brief history lesson
What does it mean to “lower” code? A programming language... [More]
At Encodo we had several ASP.Net MVC projects what needed to serve some files with a custom MVC Controller/Action. The general problem with this is that IIS tries hard to serve simple files like PDF’s, pictures etc. with its static-file handler which is generally fine but not for files or lets say file-content served by our own action.
The goal is to switch off the static-file handling of IIS for some paths. One of the current projects came up with the following requirements so I did some... [More]
I know that pointing out errors in iTunes is a bit passé but Apple keeps releasing new versions of this thing without addressing the fundamental problems that it has as a synchronization client.
The software has to synchronize with hardware from only one manufacturer—the same one that makes iTunes. I’ll leave off complaints about the horrific, very old and utterly non-scaling UI and just regale you with a tale of a recent interaction in which I restored my phone from a backup. In that sense,... [More]
- Download the presentation
- Unzip to a local folder
index.htmlin a modern web browser (Chrome/Opera/Firefox work the best; IE has some rendering issues)
We learned a few very interesting things:
- PowerShell is pre-installed on every modern Windows computer
- You can PowerShell to other machines... [More]
After some initial skepticism regarding Areas, I now use them more and more when building new Web-Applications using ASP.Net MVC. Therefore, I decided to cover some of my thoughts and experiences in a blog post so others may get some inspiration out of it.
Before we start, here’s a link to a general introduction to the area feature of MVC. Check out this article if you are not yet familiar with Areas.
Furthermore, this topic is based on MVC 5 and C# 4 but may also apply to older versions too... [More]
Encodo has never been about maintaining or establishing a monoculture in either operating system, programming language or IDE. Pragmatism drives our technology and environment choices.
Each project we work on has different requirements and we choose the tools and technologies that fit best. A good fit involves considering:
- What exists in the project already?
- How much work needs to be done?
- What future directions could the project take?
- How maintainable is the... [More]
I’ve seen a bunch of articles addressing this topic of late, so I’ve decided to weigh in.
The reason we frown on returning
null from a method that returns a list or sequence is that we want to be able to freely use these sequences or lists with in a functional manner.
It seems to me that the proponents of “no nulls” are generally those who have a functional language at their disposal and the antagonists do not. In functional languages, we almost always return sequences instead of lists or... [More]
In the previous three articles, we sped up the opening of the calendar in Encodo’s time-tracking product Punchclock. We showed how we reduced the number of queries from one very slow query per person to a single very fast query for all people at once.
Because we’re talking about latency in these articles, we’d also like to clear away a few other queries that aren’t related to time entries but are still slowing things down.
Lazy-loading unneeded values
In particular, the queries that “Load... [More]