Last week I was studying outside of a lecture hall where someone was teaching an introductory course on computer programming. There was a lot that I overheard that I disagreed with; this essay is an attempt to help me crystallize what exactly I disagreed with.
Heisenbug: The concurrent exception in the transaction that will only occur if you observe it
Recently we had to tackle a seriously strange bug. A customer reported that under a specific set of circumstances, when loading the database with many concur...
It's surprisingly hard to make a map today, and people in 15+ industries rely on them to do their jobs. Felt is the first easy-to-use collaborative mapping app, on mission to help everyone think in maps.
Ditch the switch: stealth-exiting Rockport Networks says it has a better way – Blocks and Files
Rockport Networks has exited stealth with a switchless datacentre network product that it claims can carry data traffic faster and with better latency than switched networks, yet is a drop-in replacement for Ethernet and InfiniBand cabling and switches with no application software changes. It says switch-based networks are reaching a dead-end of increased complexity and […]
Token-based identity systems move us from talking about who, to thinking about what, so that people can operationalize their digital lives. Token-based identity systems support complex online interactions that are flexible, ad hoc, and cross-domain.
It's common for me to get excited about a personal project, put a bunch of time
into it, and then lose interest. As much as possible, I want these projects to
continue working; upkeep isn't fun. What does designing for minimum maintenance
look like?
The biggest piece is minimizing your dependencies, and limiting them to ones
that value backwards compatibility. Most of my projects are on the web, which
means I have an unavoidable dependency on browsers, but this is fine because
browsers strongly prioritize keeping existing websites working.
On the server I run Ubuntu LTS until it's near the end of its supported
lifetime. Every two years I run do-release-upgrade and move to the next one.
This cost is shared over manyjefftk.com projects, so it isn't too bad.
Many projects can just be hand-written HTML/JS/CSS. No build system, no
libraries, just speaking the browser's native languages. These don't need any
technical maintenance; they just keep working.
One step from there are projects where I need a little bit of server-side
support. For example, I write my blog posts as plain HTML, but I need headers,
footers, indexes, and RSS. Each time I change my site I run a scriptwhich
creates/updates all these additional files. If I want to change something about
the presentation of my site then I need to dig into code, and very occasionally
something will break when updating the site, but just displaying my existing
stuff doesn't require any maintenance.
Then we get to the tricky stuff: projects which need real time custom code.
Things like Bucket Brigade and blog comment inclusion. How I approach this:
* Code in python, with no dependencies beyond the standard library. As with
browsers, python rarely drops support for widely used functionality. Moving
to python3 was a bit annoying, but I waited a long time and then used 2to3.
Avoiding dependencies made this easy.
* Store data on the file system, including for caching. It's not as elegant as
a prope
Create a Monitoring Subnet in Microsoft Azure to Feed a Security Stack - The New Stack
This post will cover how to create a monitoring subnet within Microsoft Azure that captures packet data and feeds it to downstream cloud native security tools.
As the author of GCeasy – Garbage collection log analysis tool, I get to see few interesting Garbage Collection Patterns again & again. Based on the Garbage collection pattern, you can de…
Edsger Wybe Dijkstra was one of the pioneers and one of the most influential members in the field of computer science.Dijkstra had contributed in many domains such as algorithm design, operating sy…
Building your own browser sounds like a terrible idea, especially if you’re a front-end developer by trade and don’t know any C++ or other native language. Even so a couple of years ago I decided to see if I could and by now my browser has developed into a serious project. How’d I get the […]
Why use Message Brokers in your System Design Interview?
In my experience, nailing the system design interview is not about knowing the real-world architecture of youtube, google search, dropbox, Netflix, Twitter…