ARIES: Falling asleep with my head on your shoulder during long car rides. Walking around our neighborhood with our dogs at dusk and telling you everything. The way your ambition inspires me, and the way your words are always exactly what I needed to hear. How I think of your voice whenever I get sad.

TAURUS: Staying up talking at sleepovers after all our friends had fallen asleep. Driving around everywhere after you first got your license and spending more money than either of us had. When you stole beer from your parents and we walked through the park in the middle of the night. 

GEMINI: Your big personality and stupid jokes and expensive coffee. Sitting around a bonfire at an after party and smelling 3 kinds of smoke. Sitting on top of our friend’s car in front of your house on a summer night and all of us looking at the stars. The weird texts you send to our group message.

CANCER: Going to our first Homecoming and you looking like a princess. Sitting next to you at the funeral service and feeling as if at least that one thing could make all of it bearable. Early morning Starbucks runs before school and affectionately referring to my old white clunker of a car as Greased Whitening.

LEO: Texting you when I was falling apart at 2 am and always getting an answer right away. Going to my first concert with you and losing our voices and having drunk people spill beer all over us. Driving around past curfew with our heads out the windows and getting icees barefoot at the gas station.

VIRGO: Trying to start a conversation with you and not being successful for weeks, but never being able to shut you up after that. The concern in your eyes when you knew I was going through something. You listening better than anyone else. Appreciating the way you know when sometimes the best thing to say is nothing at all.

LIBRA: Going to your room after I had a bad dream and sitting with you in the rocking chair in our living room. When we took a road trip to pick up our new puppy and stayed in a seedy hotel. When I told you I was scared of losing everything and you said you’d always be there, and how you haven’t let me down once.

SCORPIO: Ordering a pizza and paying for it all with coins. Watching the way your eyes crinkle up when you laugh and listening to you talk about the most mundane things like it was wisdom from above. When we argued about nothing because we were both too stubborn to back down.

SAGITTARIUS: Laughing at your strange doodles and the weird things you mumbled. Not worrying about judgment when I talked to you and telling you I loved you and how you never need to change because I think you needed a friend who would say that to you. Making plans that we never follow through with but knowing that I’ll always (figuratively) leave the light on in case you want to be as close as we were again.

CAPRICORN: Our first date, when we went to the beach boardwalk and stumbled through the haunted house and rode the ferris wheel over and over. Our second date, when you kissed me in the rain on the sidewalk outside the train station. Months later, when your heart went numb and you left without a trace.

AQUARIUS: Wanting to be your friend before I even started talking to you. Both admiring and resenting the way you said everything that popped into your mind without filtering it first. Knowing you for so long but still feeling like I knew so little about you. The respect I have for you for having such an established sense of self.

PISCES: Laughing hysterically in the backseat of our friend’s car while the rest of our friends try to figure out what was so funny. Crying on your living room floor after hearing the worst news. Missing my curfew because we were having a deep talk in a parking garage for two hours after seeing a movie.


Playing with a 1980′s IBM PS/2

I found an old IBM this weekend, and I learned the Pascal language just to play with it. The IBM is a 1989 PS/2 (so far as I can tell, but it may be older), or Personal System 2. These computers first came out in 1987 as IBM’s third generation of personal computers, you can read more about their history here.

Programming the IBM

While poking around on this computer’s DOS prompt I found a directory that contained all of the previous user’s programs - the most recent of which was edited in 1992. I noticed that the programs were written in the Pascal programming language and that I could make new programs with the included turbo IDE (Integrated Development Environment):

After downloading the free pascal compiler on my Mac, I started learning the language. I began writing pascal programs on my Mac to transfer to the IBM, but when I tried to load the programs into turbo I found that they were corrupted because I had not accounted for the carriage return character in DOS. In UNIX systems only the newline character (denoted by ‘\n’) is needed for newlines, but in DOS the carriage return character is also needed (denoted by ‘\r’, then ‘\r\n’ together). So I wrote a quick bash script to solve my problem:

I then proceeded to write Conway’s game of life in pascal - which is the seen running in the second gif above ( I have the source code here if you would like to read over it). The game of life is a simple simulation game that populates and repopulates a grid of cells based on simple rules. If a cell is filled it is considered “alive”, if it is not it is considered “dead”. Here is an example of an interesting configuration - known as a Glider Gun - in the game of life:

Making Life

I created two arrays, one to store the current state of the grid and another to store the temporary grid that helps calculate the next “generation” of cells.

For each “generation” - or step as I have called it here - I fill the grid with cells based on the following rules:

  1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by over-population.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

While looking at the gif above, you may have noticed that there are some cells that seem to pop into existence randomly. This is because I randomly turn 4% of cells in the grid ‘alive’ during each step. I do this to insure that the grid does not empty, because I like to have this programming running in the background as I do other things.

I am currently trying to install old DOS games onto the system. My goal is to get the old elder scrolls arena - the first elder scrolls game - onto the system. Because the file is big (9MB, well… big for 1980′s computing) I will have to break apart and transfer over multiple floppies. I currently have a script to split the executable and I am working on a pascal program to reconstruct the partial files on the IBM.

The Source Code:

To view the source code for this project, or to fork it, check out the github repo:

extra: How did I move the programs from my Mac to the IBM? well I had an old computer - now running puppy linux - that could take my files from a USB and put them onto a floppy disk!