Archive for the ‘Uncategorized’ Category

Programming Questionaire

1 August 2007

Some compadres (numero uno and numero…2) filled out a questionaire that came about from the Emacs/Vi flame wars.

- How did you learn programming? Were any schools of any use? Or maybe you didn’t even bother with ending any schools :) ?

Well I first learned how to program in a High School course. I took AP programming (a college level course) which focused on object oriented programming in Java, and at the same time normal programming which focused on Karel++, C++, and Java.

The course was taught by Dr. Gregory Winston Neat who worked at JPL, which was just down the street from the High School. He was perhaps the best teacher I had in High School, he kept encouraging us to do things that were seemingly impossible.

My friend and I first tried to make an operating system then for our AP final project. It was a simple program which was written to the floppy disk boot sector that printed out to the screen “Raffi and Alex are cool”. Raffi was my partner in that project. That’s how I became interested in operating systems.

The courses I took were enough to push me to learn more. I learned Python, Perl, Scheme/Lisp, and C on my own within that year, as well as some x86 assembly.

I do intend to take a C++ course Winter quarter next year to help my friend out; it’s the so-called “weeder” course for computer science. It’s insanely difficult and has a failure rate of some ridiculously high rate like 80%…or something.

- What do you think is the most important skill every programmer should posses?

Hmm…I think perhaps the ability to think critically is the most important skill to have.

Recently, I went to my friends place to talk about programming and math. He was surprised I came dressed in a suit without a laptop.

I think that he didn’t realize that my laptop isn’t my computer. My ability to solve problems is my computer.

- Do you think mathematics and/or physics are an important skill for a programmer? Why?

Hahaha, what a loaded question to ask a theoretical physicist!

I think that any programmer that hasn’t read Polya’s How to Solve It is not a good programmer. That’s my bias though, as I see programming somewhat as a parallel to what geometry was to the Ancient Greeks.

Eventually, physics will become necessary when quantum computing becomes more wide spread. I think that physics for programmers teaches them how to solve problems quite well.

- What do you think will be the next big thing in computer programming? X-oriented programming, y language, quantum computers, what?

Uh, hmm…perhaps quantum computers?

It depends how big you want to talk about…of course quantum computing will be a big thing, just as an object oriented operating system would be big. Although the former is bigger than the latter I suppose. It depends on your perspective.

The biggest step forward for the end user would be having cheap, powerful, multiple core RISC processor computers. That would be nice :)

- If you had three months to learn one relativly new technology, which one would You choose?

Uh…well, if I had three months straight without sleep to study a new field, I would choose nanotechnology applied to medicine.

I have always eagerly looked forward to every stride forward in medicine, and I think that nano-medicine would be the next penicillin.

- What do you think makes some programmers 10 or 100 times more productive than others?

Well, the same thing that makes mathematicians more productive: amphetimines and coffee.

- What are your favourite tools (operating system, programming/scripting language, text editor, version control system, shell, database engine, other tools you can’t live without) and why do you like them more than others?

Hmm…

OS: Linux (really, I don’t care specifics, any *nix is good with me)

Programming Language: C/C++/D/Java

Text Editor: Emacs or Jedit

Shell: BASH

Scripting Language: Python/Perl/Lisp/Scheme

Database engine: nihil

Laptop: AlienWare Sentia m3400…or something like that

Preferred processor: any RISC processor

Preferred Desktop Architecture: Pizza Box/Luggable architecture (think of a modern Apple ][ c that’s really light weight and upgradeable).

- What is your favourite book related to computer programming?

Well, uh perhaps Polya’s How to Solve It, which teaches the most important aspects on how to solve math problems which can be applied to programming.

On the other hand, SICP has been very influential on me. I carried it around like a bible back in High School Programming.

Then again, Tanenbaum and Woodhull’s Operating Systems Design and Implementation (Third Edition) is like my programming bible at the current moment…along with various other operating system books.

- What is Your favourite book NOT related to computer programming?

Misner, Thorne, and Wheeler’s Gravitation is my favorite book. Period.

- What are your favourite music bands/performers/compositors?

Well, this is a long response. I’m a musician you know (I play violin and viola).

I like: The Clash, Brahms, Bach, Flogging Molly, Vivaldi, Rossini, Judas Priest, Led Zeppelin, Miles Davis, Emerson Lake & Palmer, Duke Ellington, van Halen, Bebop Jazz, Hard Bop, Jethro Tull, Ink Spots, Motörhead, Louis Armstrong, Iced Earth, Cannonball Adderly, Man-O-War, Mozart, Aerosmith, Deep Purple, Black Sabbath, etc., but neither Beethoven nor Wagner.

Mark Twain accurately stated “Wagner’s music is better than it sounds”.

As for why I dislike Beethoven, I dislike it only to spite one of my friends who dislikes Bach to spite me.

Category Theoretical Harmonic Oscillators

6 June 2007

If you haven’t seen the paper yet, I highly recommend reading it:

A categorical framework for the quantum harmonic oscillator Authors: Jamie Vicary

Abstract: This paper describes how the structure of the state space of the quantum harmonic oscillator can be described by an adjunction of categories, that encodes the raising and lowering operators into a commutative comonoid. The formulation is an entirely general one in which Hilbert spaces play no special role. Generalised coherent states arise through the hom-set isomorphisms defining the adjunction, and we prove that they are eigenstates of the lowering operators. Surprisingly, generalised exponentials also emerge naturally in this setting, and we demonstrate that coherent states are produced by the exponential of a raising morphism acting on the zero-particle state. Finally, we examine all of these constructions in a suitable category of Hilbert spaces, and find that they reproduce the conventional mathematical structures.

I haven’t read a whole lot of it, and what I have read I don’t pretend to understand, but it is impressive to say the least.

Some Random Technical Papers to Read…

23 May 2007

This post is roughly divided in two: the physics half, and the operating systems half (both are fascinating subjects, it’s something one just has to accept).

Math/Physics

1) “Operating Order Ambiguities Versus Representation

2) “Deformation Quantization of Relativistic Particles in Electromagnetic Fields

3) “The inevitable nonlinearity of quantum gravity falsifies the many-worlds interpretation of quantum mechanics

4) “Gauge Theory of the Star Product

Operating Systems

1) “User-Level Socket-Based Checkpointing for Distributed and Parallel Computation

2) “The Unix KISS: A Case Study

Edit: Even More Papers to Look at!

1) “Virtualization: A double-edged sword

A paper reviewing virtual machines and how god awful they are (I was hoping for more of an angry rant against Java, but what can one do?).

2) “Star Products for Relativistic Quantum Mechanics

3) “Spin Description in the Star Product and the Path Integral Formalism

4) “Is quantum field theory a genuine quantum theory? Foundational insights on particles and strings

I can’t tell if this is a crack pot paper or a genius paper.

5) “Quantum Darwinism in quantum Brownian motion: the vacuum as a witness