Redundancy vs dependencies: which is worse?
I believe that there are just two intrinsic forces in programming: You want to minimize redundancy and, ideally, define every piece of nowledge once. You want to minimize dependencies – A should depend on B only if it absolutely must.
architecture 
18 days ago
The Coming Software Apocalypse
here were six hours during the night of April 10, 2014, when the entire population of Washington State had no 911 service. People who called for help got a busy signal. One Seattle woman dialed 911 at least 37 times while a stranger was trying to break into her house. When he finally crawled into her living room through a window, she picked up a kitchen knife. The man fled.
architecture 
22 days ago
Inadequacy and Modesty
This is a book about two incompatible views on the age-old question: “When should I think that I may be able to do something unusually well?”

These two viewpoints tend to give wildly different, nearly cognitively nonoverlapping analyses of questions like:
life 
24 days ago
Something Rotten In The Core
There's a key thought of UNIX philosophy which centers around the idea of linking programs together. You know, piping the output from grep into sed and then into sort, that kind of thing. It kinda works well, I guess. For text at least.
architecture 
29 days ago
Systems Analysis and Programming: Thoughts from the Attic
But the issue that had the biggest effect on me was the September 1966 on Information (which I read about 40 years ago). The issue featured a terrific collection of authors who are now acknowledged as pioneering leaders in computer science: Evans and Sutherland explaining computer hardware; Fano and Corbato on operating systems; Tony Oettinger describing his natural language parser; and the two giants of my own subfield (Artificial Intelligence), McCarthy and Minsky, on Information Theory and AI. If I had somehow been able to comprehend everything in this issue, I could have cut a decade's time off my education in Computer Science.
programming 
29 days ago
What should follow the web?
In part 1 of this series I argued that it’s time to start thinking about how to replace the web. The justifications are poor productivity and unfixable security problems.
architecture 
5 weeks ago
Put Your Husband in the Kitchen
I am tempted to think that the perplexed businessman might discover a possible solution of his troubles if he would just spend a few days in his wife's kitchen.
life 
6 weeks ago
Every Noise at Once
This is an ongoing attempt at an algorithmically-generated, readability-adjusted scatter-plot of the musical genre-space, based on data tracked and analyzed for 1536 genres by Spotify. The calibration is fuzzy, but in general down is more organic, up is more mechanical and electric; left is denser and more atmospheric, right is spikier and bouncier.
life 
7 weeks ago
It’s time to kill the web
For the first time, a meaningful number of developers are openly questioning the web platform. Here’s a representative article and discussion. Here’s another. Yet another. I could list more but if you’re interested enough in programming to be reading this you’ve already read at least one hilarious rant this year about the state of modern web development. This is not one of those articles. I can’t do a better job of mocking the status quo than the poor people who have to live it every day. This is a different kind of article.
architecture 
8 weeks ago
How great leaders inspire action
Simon Sinek has a simple but powerful model for inspirational leadership -- starting with a golden circle and the question "Why?" His examples include Apple, Martin Luther King, and the Wright brothers ...
leadership 
9 weeks ago
The Hard Thing About Software Development
The most valuable asset in the software industry is the synthesis of programming skill and deep context in the business problem domain, in one skull.
arch 
july 2017
Preferred Numbers
In industrial design, preferred numbers (also called preferred values, preferred series or convenient numbers[1]) are standard guidelines for choosing exact product dimensions within a given set of constraints. Product developers must choose numerous lengths, distances, diameters, volumes, and other characteristic quantities. While all of these choices are constrained by considerations of functionality, usability, compatibility, safety or cost, there usually remains considerable leeway in the exact choice for many dimensions.
life 
july 2017
My own private basic income
I have a private basic income – a small, regular cash income without means test or work requirement. It’s probably large enough to meet my basic needs. And I got it thanks to privilege, nepotism, and two big lucky breaks.
life 
june 2017
Classification of Character Strengths and Virtues
Character Strengths and Virtues is a groundbreaking handbook that was created built on reports from a prestigious group of researchers who have attempted to create a systematic classification and measurements of widely valued positive traits. The aim was to present a measure of humanist ideals of virtue in an empirical and scientific way.
life 
june 2017
Training Your Brain to Be (and Stay) Happy
What do you need to be happy? If you’ve read a few articles about the roots of happiness, you are probably–and correctly–resisting the urge to say “more money.” Despite our intuition that being richer would doubtlessly make us happier, additional wealth actually does not bring much additional happiness. It’s due to acclimation; we simply adjust to a new norm.
life 
june 2017
Create Your Own Shell in Python
I’m curious to know how a shell (like bash, csh, etc.) works internally. So, I implemented one called yosh (Your Own SHell) in Python to answer my own curiosity. The concept I explain in this article can be applied to other languages as well.
python 
may 2017
Stop the Daily Standup Meeting
So, your Scrum Master (or product owner or some line manager) is out of office. She cancels the daily standup meeting, a.k.a "Daily Scrum". Did that ever happen to you? Does it happen all the time? If yes, stop doing daily standup meetings. Yes, completely stop them.
leadership 
may 2017
Code boilerplate: Is it always bad?
A key principle of programming that we all learn is Don’t Repeat Yourself (DRY). In a way, that’s the entire point of programming: To automate a task that we keep repeating manually. Who wants to keep artisanally sorting text files each morning when we could have a program do it for us faster and more reliably? Similarly, why should we keep writing some code pattern over and over when we should be able to abstract it away into some terser syntax?
programming 
may 2017
Developer Hegemony: The Crazy Idea that Software Developers Should Run Software Development
In the final days of writing Developer Hegemony and throughout launch preparation, I wrestled with an elevator pitch. As regular readers know, you wouldn’t find “brevity” listed on my resume, even if making resumes was something I did. And so I struggled. But I think I have it now.
leadership 
may 2017
Fossil Versus Git
Fossil and Git are very similar in many respects, but they also have important differences. See the table below for a high-level summary and the text that follows for more details.
architecture 
may 2017
Snowflake Method for Software Projects
In software development, we have a lot of planning and design methods that should help us in creating a vision of a final product. However, as it usually is, they are designed with commercial products created by full and paid teams in mind. What if we are doing our personal project in spare time? We could try to employ those methods too, but they would usually be an overkill and even complicate things more. So, what instead?
design 
may 2017
ROD DREHER’S MONASTIC VISION
An orthodox Christian says his side has lost the culture wars—and argues for a “strategic retreat.”
life 
april 2017
Mermaid
This is why mermaid was born, a simple markdown-like script language for generating charts from text via javascript.
design 
april 2017
Fossil vs Git
Fossil and Git are very similar in many respects, but they also have important differences. See the table below for a high-level summary and the text that follows for more details.
architecture 
april 2017
Crafting Interpreters
A handbook for making programming languages. This book contains everything you need to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. It’s gonna be a blast.
proglang 
april 2017
mini.css
mini.css aims to provide as much functionality as possible in less than 7KB gzipped. This very small footprint means that your websites and web applications will load faster, while still looking great utilising the modern components we provide!
webdev 
april 2017
Native JavaScript Development after Internet Explorer
Welcome everyone to the third and last part of this series, dedicated to the retirement of oldIE and the changes this event has in the field of front-end development. So far we covered the obsolete techniques that can be safely discarded and the HTML5 and CSS3 properties that now have full native support along the mainstream browsers. Today we will focus on native JavaScript techniques and anything else that didn’t fit in the categories mentioned before.
webdev 
january 2017
Writing An Interpreter In Go
n this book we will create a programming language together.

We'll start with 0 lines of code and end up with a fully working interpreter for the Monkey* programming language.

Step by step. From tokens to output. All code shown and included. Fully tested.
proglang 
december 2016
intercooler.js
Use familiar, declarative HTML attributes to add AJAX to your application. Use web standards like CSS, REST and Javascript events to enhance your app.
webdev 
november 2016
UpdateModel/TryUpdateModel gotchas with models created through reflection
The Model Binding feature takes away most of the burden from developers by taking the responsibility of model instantiation from the information available in the request. Sometimes we meet cases where we need to trigger the model binding process explicitly inside a controller. MVC provides two methods for rescue: UpdateModel and TryUpdateModel. Both these methods perform the same operation, that is they update the model from the value providers. The difference between them is the UpdateModel throws an exception if the model state is not valid while TryUpdateModel not. Though both these methods are generic and we don't need to explicitly specify the generic parameter.
programming 
october 2016
Python Tutorial
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during 1985- 1990. Like Perl, Python source code is also available under the GNU General Public License (GPL). This tutorial gives enough understanding on Python programming language.
programming 
september 2016
Let’s Build A Simple Interpreter.
Do not worry. If you stick around and work through the series and build an interpreter and a compiler with me you will know how they work in the end. And you will become a confident happy camper too. At least I hope so.
proglang 
august 2016
Typed.pw
I created typed.pw from the desire to have an online tool with which it was dead simple to share thoughts and ideas. typed.pw's main feature is the lack of features.
technology 
august 2016
Generating naming languages
These are some notes on how I generate the placenames in my Twitter bot @unchartedatlas, which is based on a generator I originally produced during NaNoGenMo 2015. There's JavaScript code for the generator on Github here, and the original messy Python generator code can be seen here.
conlang 
july 2016
Cross-platform (node.js) and multi-datasource query module
I think you should be able to query all mainstream data sources from any machine, and this module is the abstraction for that functionality to be consumed by CLI or GUI tools
programming 
july 2016
How to implement a programming language (tutorial for beginners)
This is a tutorial on how to implement a programming language. If you ever wrote an interpreter or a compiler, then there is probably nothing new for you here. But, if you're using regexps to “parse” anything that looks like a programming language, then please read at least the section on parsing. Let's write less buggy code!

The ToC on the right is in “simple-to-advanced” order. I'd recommend you not to skip forward, unless you know the subject well. You can always refer back if you don't understand something. Also, questions and feedback are very much appreciated!

The target audience is the average JavaScript / NodeJS programmer.
proglang 
july 2016
You Kicked My Dog
Why did you kick my dog?
fun 
june 2016
now: realtime node.js deployments
now allows you to take your JavaScript (Node.js) powered websites, applications and services to the cloud with ease, speed and reliability.
architecture 
june 2016
10 Ways to Wreck Your Database
Want to make sure your database loses data, duplicates records, and can only handle 5 transactions a minute? Want to make your application developers curse you, your sysadmin hate you, and get yourself fired without a reference? These ten database design techniques will set you on the road to downtime perdition and maintenance hell.
architecture 
june 2016
Cutestrap
A sassy, opinionated CSS Framework. A tiny alternative to Bootstrap.
webdev 
may 2016
Why wind turbines have three blades
In this column I’ll try applying the principle to one example of renewable energy — wind power. Why, when it comes to windmills, wind turbines, wind generators — whatever you want to call them — why are things done the way they are? The answers may surprise you.
architecture 
may 2016
Barking Up The Wrong Tree
This site brings you science-based answers and expert insight on how to be awesome at life.
life 
march 2016
Buoy, A Better User Interface Toolkit
Buoy is a toolkit for creating user interfaces in Java programs. You can think of it as a replacement for Swing and AWT, although that is not entirely correct. Buoy is built on top of Swing, so when you use Buoy to create a user interface, Swing components are still being created behind the scenes. A better description might be to say that Buoy is a replacement for the Swing API, although it is really more than just that.
programming 
march 2016
« earlier      
arch architecture conlang design fun helpdesk kids leadership life politics proglang programming python science technology webdev

Copy this bookmark:



description:


tags: