Qualities of Quality Software
Wednesday, June 26th 02019
What makes good software good? What attributes does it have, how can someone converge on a solution that’s better than another and how do we judge a system? Why should we care? Quality software for its own sake doesn’t make any sense. It’s valuable for what it gets us…
Dealing with Unkown Unknowns
Monday, June 24th 02019
Unknown Unknowns are things that you don’t know you don’t know, made infamous by Donald Rumsfeld’s comments around the Iraq War. Any sane / rational person can deal with known unknowns, it makes sense to get a grasp on things that you don’t have much context on or are…
Fokal: A Retrospective
Sunday, June 23rd 02019
I started Fokal with the intention of making it easier to to find specific photos you’re looking for while also making it easier to have your own photos be found. It all started when I published this image to Unsplash. While it’s a good photograph, I don’t think it’s…
What Testing Gets You
Saturday, August 25th 02018
Often times testing is viewed as a guaranteed way to ensure your function behaves as you expect it to. However this is far from what is actually happening. A excellent example of this occurred a few years back and I want to take a look at the problem and see what standard testing practices would get you and the best way to approach the problem.
Values in Software Design
Sunday, June 24th 02018
I thought that the value of software comes for its reach, how much a person can accomplish using it. But that may have been a poor and disheartening way to view it. Poor in that it doesn't capture the true value of software and disheartening in that it forces a chase…
Monday, January 29th 02018
I last wrote about my goals in Mission Briefing back in March of 2017. It's time to reframe that post, with more detail and view the same problems outlined there at a lower altitude. The goal of all software engineers is to build quality software. Quality software…
Woodworking for Quality
Friday, January 26th 02018
How woodworking also applies to software. As with woodworking the goal of software is not to produce a piece of software, but rather to produce a quality piece of software. Approaching software as a craft improves how we think about software development.
Wednesday, January 24th 02018
When building some physical product the feedback loop between the creation of a new idea and actually testing it is far to high. Visual Engineering is a rapid feedback environment for validating hunches and answering questions about engineering.
Augmenting Human Intellect
Saturday, December 23rd 02017
If you have not had the pleasure of reading Douglass Engelbart’s Augmenting Human Intellect take the time to browse through the concepts he presents, you won’t be disappointed. As in most papers the abstract is the most information dense. Engelbart’s goal is not to develop frameworks for a specific domain on human endeavor, but rather to make a fundamental shift in how individuals see the world, represent their problems and work towards solutions.
Monday, April 3rd 02017
Traditionally we create tools to augment our own faculties. We wanted to fell trees, so we created the saw. We wanted to combine pieces of wood, so we created the hammer. However, we can also augment how we approach those problems in the first place, this is what it means augment human intellect.
Thursday, March 30th 02017
What I'd like to do here is give a sense of my own direction and focus. I've gone into this a little bit in my about page, but I'd like to expand a bit on the core themes, explain their importance and my thoughts on how they play out in the market place.
Saturday, August 13th 02016
Each of us is walking around with a lot of data. Not only what is physically on our smartphones and laptops, but also what we’ve got backed up to the cloud. The cloud gives us automatic backups, and places to store content by the terabyte, but the current model by which we interact with the cloud is far from optimal.
On Muhammad Ali
Tuesday, June 7th 02016
What I didn't know about Ali are perhaps his most defining attributes. He emphasized living a moral life. He was perhaps one of the most prominent people to do so. He used his prominence to advocate for tolerance, understanding and above all a focus on morality.
What we can learn from Unix
Saturday, May 28th 02016
The Unix Philosophy is a wonderfully cohesive way to thing about program execution and composition. Its beauty relies in its simplicity, somewhat unfortunately this is also tied to the fact that Unix is dealing with software on the operating system level. We’re going to explore what the Unix Philosophy is and what it allows us to do when working in a Unix shell. All the while exploring how Unix can guide our attempts to create simpler programs at a higher level of the stack.
Friday, May 27th 02016
Changefiles are an interesting way to approach thinking about updating a piece of software. Allowing for more productive programmers and better libraries that can be tuned for a specific use case.
Saturday, April 23rd 02016
I've found myself becoming increasingly dissatisfied with calendar applications. Fundamentally, I think they're solving the wrong problem. They should focus how to best spend your time, what’s the most optimal arrangement of these events for my productivity and well-being?
No Silver Bullet
Sunday, February 14th 02016
Programming, Brooks argues, can be separated into distinct tasks. The first is dealing with incidental complexity, and the second managing essential complexity. Brooks asks, How do we approach incedental complexity, and do those approaches have limits? What is the way forward to make the essential logic easier to manage?
Designing for a use case
Friday, January 29th 02016
When you develop an application or some software artifact you consider what task the program is to complete. You make a model of who your customers are, and how they interact with your service, and then you proceed to implement that.
Friday, January 15th 02016
These types generally take the form of persistent trees. This allows people to modify them as they wish and recover from any unexpected changes. I have in mind that these objects will be stored in a collections framework that allows for common operations over most data structures
Saturday, December 12th 02015
The Chinese Room experiment places Searle inside a room, in which he receives inputs in Chinese and instructions on how to process those inputs in English furthermore Searle has no previous knowledge of Chinese or its grammatical structures. Suppose that Searle and the programmers who are giving him instructions get so good at their respective tasks that Searle’s Chinese outputs become indistinguishable from those of a native Chinese speaker.
Design Principles Behind Smalltalk
Monday, December 7th 02015
Ingalls describes Smalltalk, a language that “Provides Computer support for the create spirit in everyone”. I love how the paper starts off with the describing the purpose of a language as communicating models between the user to the compuer, the goal is to develop an expressive yet simple language that that empowers its users. Ingalls goes over 17 principles that all languges ought to follow.
Wednesday, November 25th 02015
VTest is designed to allow you to see bugs that you did not anticipate. It does this by visualizing the results of function, and clustering their results. The goal is to show you the absence of bugs, in order to do this, the functions being tested have to be pure, and testing may be slow for functions that take complex objects.
Saturday, November 14th 02015
Purpose is planned. It is calculated. Our core motivations transcend purpose, they well up inside of us waiting to burst forward. Most of the time it sits there, dormant, as we buy groceries it yawns, and while washing dishes it goes for a nap. Sometimes, though it is…
Death shows us the way to life
Thursday, November 5th 02015
I've spent the past few months obsessing over purpose, legacy and meaning. In Job's quotation I gain a glimmer of understanding, which is comforting. Death drives us to ask the hard questions, it forces us out of our complacency. It's ironic that in this way, death is what gives us life, and not the other way round.
America and The Beautiful Game
Friday, September 18th 02015
I can't help but think that American's have a hard time understanding soccer. American sports emphasize the notion of an individual play, in which specific actions and therefore the entire play can be said to be good or bad. Part of the reason American's - in general - have a harder time understanding the dynamics of soccer.
Sunday, September 13th 02015
I recently had the pleasure of seeing Bjarne Stroustrup speak at an event at NYU. The talk focused on the role of C++ and his role at Morgan Stanley, but what was far more interesting was the manner in which he thought about programming concepts.
The Philosophy of vim
Wednesday, July 15th 02015
For those of you who have not heard of the text editor vim, it is a text editor lauded for its adaptability, and supreme extensibility. You can basically do anything you want in vim, and that’s nice, but at the same time it has the steepest learning curve for any piece of software you will encounter.
An endless Void
Wednesday, July 8th 02015
I awoke and found myself floating through a void. I was aware of it, but it seemed oblivious of my presence. I seemed to be moving quicker and quicker through space, I don't know how I know this to be true, but I do.
Haskell Pattern Matching
Tuesday, July 7th 02015
One of the most interesting aspects of computer science are programming languages, they are the means by which the user and the computer interact and in their choices support certain modes of thought. Some modes of thought are promoted more than others, the dominant…
The Timid One
Tuesday, July 7th 02015
The pods are all attached to an opaque dome, which lies in the middle of the circle formed by the pods. Inside the dome lies one of the 78 terraformed spaces on the surface of Karive. The members of the food pod spend their time here, examining the roots and soil…
Sunday, June 14th 02015
I awoke to the constant hum of the engines. These engines were different from ones I had heard before, they normally shook and reverberate throughout the ship, their tone always changing. These new engines were comforting, they had a sort of presence about them. They…
We shape the tools that shape us
Saturday, June 13th 02015
We build things in order to make us better at what we do, whether that be a saw to cut known materials more quickly or a piece of software to solve a well understood problem. This is well and good, but I can't help but wonder what it would have been like if the tools we…
The Brave One
Sunday, June 7th 02015
The brave one thought that there is something honorable about going out in a blaze of glory. Perhaps he was right. Perhaps he wasn't. Either way his parent's spoke of the first expedition to Karive with great admiration. If the brave one didn't know better he would…
A Unfortunate Dichotomy
Monday, May 11th 02015
The majority of cognitive science is curious about the framework of how you work; That is, how your beliefs and intentions are formed, how data points on the retina are translated into thought or how representations about the world get from out there to in here. This is…
Thursday, May 7th 02015
They giggled through the tall grass, the echoes of their voices bouncing off the small hills. They didn't stop running, they went and went, over shallow streams and smooth rocks, across large fields and sparse deserts they went. They didn't stop until they reached their…
Coming to grips
Monday, March 2nd 02015
You may be able to say there is no answer, but that doesn't mean that it doesn't scare you, or at least that's the case for me. It's so easy to understand logically that it must be so, but it is still terrifying to look at it. There's a certain sort of deep sorrow that…
Simple things are most impressive
Monday, February 9th 02015
It seems as though the simple things, those we take for granted, are always the most complex and impressive. It's quite incredible to know that I am breathing right now, not just because breathing is incredible (it is) but beyond that that I recognize myself. That's…
What machine ethics should look like
Wednesday, February 4th 02015
There’s a discussion going on over at USV regarding ethical algorithms. I can help but feel that a lot of these posts are missing the crux of the issue; which in this case isn’t really about applications of algorithms’ or differing value systems but rather the implications of having actors which lack values of their own making moral choices'
Hololens and Implications
Wednesday, January 21st 02015
For those of you who haven’t heard, Microsoft has just released a new augmented reality device called the Hololens. This is very exciting, primarily because it is the first product that seems to do a good job of merging our reality with a virtual one. Google Glass attempted this, but the feature set seemed rather lacking and the concept of always having an AR device on didn’t really appeal to most. Hololens is going after something different entirely, and that is a more rich merger of the digital and physical, to the point where you are no longer overlaying a screen into the peripheral vision but instead augmenting your surroundings.
The Role of Artificial Intelligence
Saturday, December 27th 02014
The goal of Artificial Intelligence, and in many ways computing as a field, is to remove the busy work. To remove the clerical from the equation leaving us to glean greater insights. In this way, I don't think of Artificial Intelligence as taking away the jobs created by such tasks, instead creating thousands of new fields waiting for people to leap in and explore. This does, however, require a shift in thinking, from looking for steady reliable incomes to experimenting with different fields and taking on projects as opposed to careers. When people choose to devote themselves fully to a new idea and have the help of an AI to aid their research and learning, people will create more, and enjoy their work and the work of others more.
Group B Rally
Monday, September 2nd 02013
Taken during the height of the Group B Rally craze, this photograph shows the true nature of the sport. Walter Röhrl, the two-time world champion, commanding his 350 BHP Audi A2 Quattro through the bends of the Italian Countryside, is truly the epitome of rally. Inside the aluminum roll cage, surrounded by safety gear and spare parts, sit two men wedged into bucket seats and 6-point harnesses. Despite the heat, they wear woolen fire retardant polymer suits; despite the lack of air conditioning, they wear full crash helmets with woolen fire masks underneath. This is no game for mere mortals.