Chris Carlson

Thinking Out Loud

One night while I dreamed I found myself walking down the street in a giant wonderful city. The buildings in the city were all white, and they were so tall that you couldn’t even see the tops of some of them. The streets were paved with golden pearlescent bricks, and they were lined with neat rows of evergreen trees and shrubs.

Dear Caitlin Johnstone,

Hello. My name is Chris Carlson. I’m writing to share my story with you, and I hope it will offer you some encouragement. Why should you take encouragement from anything I have to say? Who knows, maybe you will not. I am not anyone important or relevant. I am not leading a revolution. I do not bring word of a great change taking place in the hearts and minds of American Youth, (I am an American, a title I prefer to that of U.S. citizen). I hope you will take encouragement from what I have to say because, based on what you write, I believe you and I have a lot in common; We are concerned about the same kinds of things, we hope for a similar kind of revolution to begin, and we have a similar intellectually based view of the world. With that being said, I hope you will find the following encouraging or at least interesting. As with everything I write, I will try to be concise.

Looking for sound and rational interpretation of recent events, there are many ways to approach the situation logically. The articles below are various approaches to reasoning about the situation, in particular they are ones that helped me find a way to move forward with confidence.

Because everyone in the world needs to take a breather.

The world is all wound up. The news on every channel is an endless stream of alarming events, people are struggling to make ends meet all over the globe, and people everywhere face the reality of terrorism and violence in their daily lives. There is talk of rising nuclear tensions. War is breaking out in some places, and it is threatening to break out in others. People are starving on every continent, and governmental oppression is running rampant in places all over the globe as well. There is a sense that almost nothing can be done to save the human race. But something can be done…

Everyone should listen to this, especially my libertarian friends, it presents a number of intellectually challenging issues. These were ideas I hadn't ever encountered before, and they're forcing me to reevaluate my ideas about government and society.

This is an example of extreme bias in writing.

An essential web dev resource.

My introduction to computer science professor, Mr. Robert Hardin, explained, “An algorithm is simply a set of instructions for how to do something.”

“The algorithm for brushing your teeth”, he said, “is something like: Pick up toothbrush, Squirt toothpaste on it, Scrub each tooth for 30 seconds with the toothbrush, Spit toothpaste into sink, Rinse mouth and toothbrush with water, Replace toothbrush into holder.”

I added a few more elements to the circuit, this schematic is much closer to the circuits I am currently testing.

Don't mess with electricity if you haven't been adequately trained to do so. The circuit discussed below is a high voltage circuit and is potentially dangerous. Mishandling the circuit could lead to electrocution causing serious bodily harm or death. Please do not attempt to recreate or assemble this circuit unless you are an experienced professional. Additionally, the circuit discussed is only a prototype. It has not undergone safety testing by any third party, and its design has not been reviewed by anyone other than myself. If you attempt to construct or reproduce this circuit, you do so at your own risk and against my advice. I am offering the following information as an evolving documentation of the state of this project and nothing more.

I became totally engrossed reading Eloquent JavaScript last night. Wow, it's good.

I wonder how often people read it for pleasure? And what size following does it have among folks not learning to program?

Marijn Haverbeke’s writing style left quite an impression on me. He has that magical ability to write text which conveys precisely what the author wants it to, and nothing more. His meaning is always crystal clear. He demonstrates a unique voice, a wacky sense of humor, and an a keen intellect. I was an instant fan.

Here is an excerpt beginning near the middle of chapter 6:

There once was, living in the deep mountain forests of Transylvania, a recluse. Most of the time, he just wandered around his mountain, talking to trees and laughing with birds. But now and then, when the pouring rain trapped him in his little hut, and the howling wind made him feel unbearably small, the recluse felt an urge to write something, wanted to pour some thoughts out onto paper, where they could maybe grow bigger than he himself was.

After failing miserably at poetry, fiction, and philosophy, the recluse finally decided to write a technical book. In his youth, he had done some computer programming, and he figured that if he could just write a good book about that, fame and recognition would surely follow.

... [ for a few paragraphs Haverbeke recounts some of the programming challenges the Recluse faced, relating them to programming concepts he had been describing, and then his focus returns to the Recluse." ] ...

After he had struggled painfully with his book for six months, the recluse had still only finished a few paragraphs. At this point, his hut was struck by lightning, killing him, and forever putting his writing ambitions to rest. From the charred remains of his laptop, I could recover the following file:

Below the surface of the machine, the program moves. Without effort, it expands and contracts. In great harmony, electrons scatter and regroup. The forms on the monitor are but ripples on the water. The essence stays invisibly below.

When the creators built the machine, they put in the processor and the memory. From these arise the two aspects of the program.

The aspect of the processor is the active substance. It is called Control.

The aspect of the memory is the passive substance. It is called Data.

Data is made of merely bits, yet it takes complex forms. Control consists only of simple instructions, yet it performs difficult tasks. From the small and trivial, the large and complex arise.

The program source is Data. Control arises from it. The Control proceeds to create new Data. The one is born from the other, the other is useless without the one. This is the harmonious cycle of Data and Control.

Of themselves, Data and Control are without structure. The programmers of old moulded their programs out of this raw substance. Over time, the amorphous Data has crystallised into data types, and the chaotic Control was restricted into control structures and functions.

When a student asked Fu-Tzu about the nature of the cycle of Data and Control, Fu-Tzu replied 'Think of a compiler, compiling itself.'

A student asked 'The programmers of old used only simple machines and no programming languages, yet they made beautiful programs. Why do we use complicated machines and programming languages?'. Fu-Tzu replied 'The builders of old used only sticks and clay, yet they made beautiful huts.'

A hermit spent ten years writing a program. 'My program can compute the motion of the stars on a 286-computer running MS DOS', he proudly announced. 'Nobody owns a 286-computer or uses MS DOS anymore.', Fu-Tzu responded.

Fu-Tzu had written a small program that was full of global state and dubious shortcuts. Reading it, a student asked 'You warned us against these techniques, yet I find them in your program. How can this be?' Fu-Tzu said 'There is no need to fetch a water hose when the house is not on fire.'{This is not to be read as an encouragement of sloppy programming, but rather as a warning against neurotic adherence to rules of thumb.}

A student was complaining about digital numbers. 'When I take the root of two and then square it again, the result is already inaccurate!'. Overhearing him, Fu-Tzu laughed. 'Here is a sheet of paper. Write down the precise value of the square root of two for me.'

Fu-Tzu said 'When you cut against the grain of the wood, much strength is needed. When you program against the grain of a problem, much code is needed.'

Tzu-li and Tzu-ssu were boasting about the size of their latest programs. 'Two-hundred thousand lines', said Tzu-li, 'not counting comments!'. 'Psah', said Tzu-ssu, 'mine is almost a *million* lines already.' Fu-Tzu said 'My best program has five hundred lines.' Hearing this, Tzu-li and Tzu-ssu were enlightened.

A student had been sitting motionless behind his computer for hours, frowning darkly. He was trying to write a beautiful solution to a difficult problem, but could not find the right approach. Fu-Tzu hit him on the back of his head and shouted '*Type something!*' The student started writing an ugly solution. After he had finished, he suddenly understood the beautiful solution.

A beginning programmer writes his programs like an ant builds her hill, one piece at a time, without thought for the bigger structure. His programs will be like loose sand. They may stand for a while, but growing too big they fall apart{Referring to the danger of internal inconsistency and duplicated structure in unorganised code.}.

Realising this problem, the programmer will start to spend a lot of time thinking about structure. His programs will be rigidly structured, like rock sculptures. They are solid, but when they must change, violence must be done to them{Referring to the fact that structure tends to put restrictions on the evolution of a program.}.

The master programmer knows when to apply structure and when to leave things in their simple form. His programs are like clay, solid yet malleable.

When a programming language is created, it is given syntax and semantics. The syntax describes the form of the program, the semantics describe the function. When the syntax is beautiful and the semantics are clear, the program will be like a stately tree. When the syntax is clumsy and the semantics confusing, the program will be like a bramble bush.

Tzu-ssu was asked to write a program in the language called Java, which takes a very primitive approach to functions. Every morning, as he sat down in front of his computer, he started complaining. All day he cursed, blaming the language for all that went wrong. Fu-Tzu listened for a while, and then reproached him, saying 'Every language has its own way. Follow its form, do not try to program as if you were using another language.'

The Grid - Design with Ease

Just over a year ago I signed up to be a Founding Member of a new experimental website design platform called The Grid. It cost just under a hundred dollars for the membership, but it promised early access to the website design framework whenever the developers were ready to release it.

Well, I received my invite link to test out the platform last week. It took me between 4 and 6 hours to migrate my old website to the Grid’s Platform, including completely redesigning the look and layout of the site in the process. Color me impressed.