Astro 585 discussion 3

05 February 2014

Bottom lines:

  • Profile your code!
  • If you are going to be running a code a lot - benchmark it.

Worrying about hardware?

Not so much. The thing is: in a few years you will be running your code on a different chip on a different system, maybe somewhere on the cjoud. So at this point, don't worry too much about the low level hardware side of the coding. Moreover, ignore RISCs and CISCs - except if you are planning on buying a supercomputer!

When should we use vector processors?

The most common vector processors today are graphics chips. If you are doing the same operations on the same data again, and again, and again, then you might be better off using a graphics card, letting it perform these operations. It is not uncommon to get around 2x performance or more that way, with little effort.

Make your compiler optimize for your computer? Can get around 10x performance.

Jobs on a supercomputer

If the supercomputer is homogeneous, i.e. has the same type of chips as computing nodes, then it might be very advisable to compile your code for that exact chip. It might just be worth your while to spend those 5 minutes reading that man page to check what flags you need to use in order to optimize the code, to get that performance increase you are looking for!

If your supercomputer is heterogeneous, i.e. has different types of chips as computing nodes, some AMD over here, and some Intel chips over there. Then you have to two choices:

  1. You compiled it and optimized it for one particular chip. Then it won't run on the other types (it will probably crash!). The code might run faster, but you might just be spending your time waiting in the queue line!

  2. You compiled it more generally, not optimizing for a particular chip. Then the code will probably run slower, but you'll be quicker out of the queue line!

Real world testing vs micro-benchmarking

Where you are blazingly fast at multiplying a bunch of numbers, but Microsoft Word performs differently.

More about caches

In practice a computer has multiple cache levels. Normally what you do is specify the L2 cache size, as the L1 is usually more constrained in size, and sometimes you see the effect of the computer moving data around in these different levels.

Can cache sometimes be too big - so that it might actually slow you down?

Yes, this applies to L1 caches. For a larger cache it is harder to have a fast clock speed; it takes longer to move electrons over a bigger distance, than a smaller distance.

Is there an optimal ratio of processor clock speed, and cache size?

Yes, the fastest, and the biggest L2 cache size! Well, still its not exactly that simple. The chip manufacturers are kind of trying to figure this out for you - they want to make chips that people buy.

Example (see graph in last class): If I were to go from 2mb to 8mb in L2 cache size, the range of which it took the same amount of time while still increasing the data size steadily, would probably be around 4 times as big (see graph in last class).

Using SSD drives - does it mean performance increase vs. using magnetic disks?

It depends on what you want to do.

For sequential reading, and sequential writing the old magnetic disk actually perform quite well with respect to the SSD drives (the platter is reading of a very fast spinning disk), and the old fashioned ones are still a cheaper option if you are working with huge amount of data.

However, for random reading the old fashioned disks are much slower, while SSD are much better - physically moving things like the platter needle in the old hard drives is much slower than moving electrons around in an SSD.

Are there hybrid systems, that combine a normal processor, and a vector processor?

Yes, there are; usually it is a CPU processor, bundled with a graphics co-processor.

Two different parallelisms


When you can have your code such that is making use of structure-level-parallelism; you can get the benefit of the hardware doing different instructions at the same time - meaning performance increase via pipelining.


Write your code so that is easy for the compiler to find ways to do data-level-parallelism. Modern compilers, have instruction level cache, and are constantly trying to figure out how they can use its computation units effectively. They break the instructions into smaller chunks, and try to order them in a smart way.

Write the working set data small enough so that it can fit into the cache - this way you can potentially get an increase the performance several times.

When optimizing - optimize the slowest part!

Still you have to be aware that the total execution time will still depend on all the parts of the program. For example:

  • You have a program that is 10 parts, each of which takes 10% of the time to run. You choose one part to optimize, making it effectively free to perform. - This way, you only make the program 10% faster.

  • You have a program that is 10 parts, where one of the part takes 90% of the time to run. You choose this part to optimize, making it effectively free to perform. - This way, you make the program 10x faster!

Branch predictions

Pretty cool way to make your compiler to work for you - Need to look better into this! You can speed things up by reducing the instructions performed on your branch. Still sometimes the only thing to do is: compile, and compile, and hope!

Astro 585 discussion 2

03 February 2014

One of the general themes of this course (and perhaps in real life as well?);

Try not to do work that you don't need to do

RISC-y chips, and CISC-y chips

Comments about Homework 2

Coding habits in Julia

Put an exclamation mark at the end of a function if your function modifies some of the input arguments.

Performance checking

People who did memory allocation in the for loop:

  1. asserts didn't really make any difference in time

  2. making generic function calls didn't really make a difference either

People who didn't do memory allocation in the for loop:

  1. asserts didn't really make any difference in time

  2. making generic function calls did really make a difference

Explaining performance curves in homework 2

Check the following code:

    using PyPlot
    n_list = [ 2^i for i=1:24 ] #Increasing i from 1:10 to 1:24 to see further
    elapsed_list = map(calc_time_log_likelihood,n_list)
    plot(log10(n_list), log10(elapsed_list), color="red", linewidth=2, marker="+", markersize=12);
    xlabel("log N"); ylabel("log (Time/s)");    

Note that we are using map - next it might be cool to check out pmap. This gives the following result on my computer:

Sometimes things that you think should take longer don't: look at the first part from 0.5 to around 2 - the curve is almost flat. There we are probably making good use of the caches. Then as we keep using bigger and bigger arrays, we see a linear increase in time: we are starting to use the main memory.

Note: Some people saw strange bumps/spikes in their curves; probably due to memory-cache interactions, where the computer is trying to be smart, but pays a price in performance for it.

What are caches though?

Caches, are a small amount of memory that is better accessible to the CPU; the memory access is much, much faster, than accessing the main memory. Accessing the memory is slow, and expensive. Smaller caches are relatively fast, while bigger ones are slower.

Discussion on chapter 6: Computer Organization

When do we need queues, and when do we need stacks?

If you wanna get a Starbucks - you stand in line and get your coffee the last. However, if you are the last one to check in your flight-luggage, then there is a good chance that you are the first to get it back (bags are usually stacked on top of each other).

Queues: - Well if you need to do things that require you to do them in a particular fixed order.

Stacks: - Function calls for small variables. They are not efficient when you have dynamic memory allocation. Moreover, you have to be careful with using stacks and recursive functions - can lead to stack overflows!

Check out tail recursion though: The ability to implement neat recursive algorithms without doing terrible things.

Registers, stacks, and heaps

Registers are a property of the hardware, while the stacks, and heaps are software constructs. And accessing the registers is basically free - this is what you would like to do in an ideal world.

stack vs heap
If its dynamically allocated, it is almost certain that the compiler will put it into the heap - its safer, and a reasonable thing to do. Still however, it costs time and performance.

A function can return data types that are small, on the stack, or return a pointer to a memory location on the heap (if the return data is big).

Language choices

Some languages were written a long time ago. Ideas like "I would like to access the web" were non-existent when the people were developing the initial versions of Fortran. If you are doing text processing - then it makes sense to use Python or Perl - don't really try to do it in Fortran or C; you have to do some real acrobatics.

In general if you use a higher level language - then hopefully you need a fewer lines of code; and hopefully you have less bugs, and are quicker to get things done. However using an interpreted language you have to live with the overhead it has to go through when interpreting.

One of the nice things about Julia - is that it combines some of the best of the ides of high-level language, as high performance, but its syntax is similar to Python's.

Higher level language parallelism

Macro-use-framework Sometimes referred to as embarrassingly parallel - still, this is often the best parallelization you can come up with. Why? A) its easy for you, and B) its easy for the computer to do.

Astro 585 discussion 1

29 January 2014

I'm taking Eric's class: Astro 585, topics in Astronomy and Astrophysics; High-Performance Scientific Computing for Astrophysics. Its a very discussion based class, and I thought I might try to post my notes here.

These notes are typed quite quickly during class - but I'll try my best to minimize wrong spelling!

Anyways, lets see how it goes!

Discussion Wed Jan 29, 2014

Q: IDL precision, single or double?

IDL's default is single precision - many oblivious grad students have suffered through history because of this.

I myself, a grad-student am started to be exposed to this! - Why are we still using a thing born in the 70s of which you can almost physically see the rust covering it? - Not even mentioning the digital handcuffs... Stallman, are you picking your feet about this?

Automating processes

Using scripts like make

Often if you find yourself doing stuff again, and again (3 or 4 times). Then automating might be useful. Say you have a humongous table that lists lots of things about a new planet you found. For the next planet you find, you might want to have this table be automated.

You can automate things pretty easily in Julia.

Reusing code

The difference between writing astronomical software and developing drugs for a pharmaceutical company

The readings were pretty supportive of reusing code. However, you have to have two things in mind:

Beware of Licenses - This can be troublesome, and can become very hindering for the expansion of projects. - Remember Eric's story about Numerical Recipes - sort of like: All of your thoughts belong to us type of deal.

Libraries - Be sure to know that they are actually doing what you want them to do!

Any tips about refactoring code, or start from scratch?

Difficult to answer, depends on the problem. Rather than rewrite everything maybe focus on rewrite a few functions. And do it in a ridiculously incremental level. Use assertions, debuggers, warnings, print statements etc.

Q: Top-Down vs. Bottom-Up type programming

Difference between academic programming and commercial programming

In the old days, everybody had these massive plans (in the Extreme Programming movement) to make everything perfect from the beginning. Then it sort of transitioned to the quick-and-dirty movement (sometimes making programs that didn't even work!). Nowadays its a kind of pendulum between the two extremes.

For an academic setting: Its very good to make small incremental changes. Still you have to have some overview. So maybe actually programming from the middle might be the right thing to do. Do keep in mind Donald Knuth's words: "Premature optimization is the root of all evil"

Somebody suggested: Bottom up, but keep it general.

Q: Functional programming vs. Object oriented programming

Reusing objects as containers, or making functions do all the work.

For example, you can have a galaxy-class and you can make it do photometry, redshifts, etc.

Object oriented Languages like C++, and Java, make it easy to think in that way. Once you start writing functions that have. You don't need classes really, you can do things you want in C!

Template meta programming (still not exactly sure what this is - you can do it, but supposedly it is a little bit obnoxious).

Say you have a function, an abstract integrator say, and you are gonna pass it a variable. But what if your function doesn't know what type you are gonna pass it? Those types have different internal data structures. If you had a pre-compiled language, the compiler wouldn't really know what type you are gonna pass it - and it might barf. Julias approach is to compile everything at runtime, so it then knows the type, and does it right. So it is a way of getting a compile-type function arguments.

Northern Lights

19 January 2014

"The prospects are at 6! The prospects are at 6!! Have you seen what's happening outside? It's green! Everything! I'm heading out in 5. Are you with me?"

I'm quite impressed of those of my friends that decided spontaneously leave the things they were doing after receiving such an abrupt phonecall without any other notice, then quickly put on a jacket and an extra pair of socks, grab a snack and to join me to drive into the night in an attempt to capture the Aurora. Different ways were used: some tried filming; other took handheld pictures; others pictures on a tripod; and still others on a dolly; some wrote short stories and poems; some stood and leaned their head gaping just a little bit too much, straining their neck; others lay down on the ground on the cold winter snow, laying absolutely still to see if they could hear them; others tried running around and dancing, either dancing with their rhythm or plainly just to keep warm. Some of my friends were irritated, hung up and went right back to sleep. I tended to call back the former.

In particular I remember the expressions of my friends who were seeing them for the first time. Becoming active in the Erasmus community back home was a logical extension of my own exchange program, and I made many international friends, all of which absolutely adored the place - and probably even more than us Icelanders! - haha!). They came to Iceland to study (some I think were more inclined on the parties, and having a swell time; but that is another story), also hoping to see the Northern Lights - at least once; "Solamente una vez!" - that would be enough for me, one of my friend said. And all of them did! - those that took the time to look for them at least!

I sometimes think if capturing the expressions they showed when seeing them for their first time, along with the plethora of foreign words and slang they used to describe them as they saw them (I believe I still remember some of the Italian ones!), might have been a worthier material to capture than the lights themselves. The Aurora will come again, but those first time expressions only happen once.

The northern lights do not wait for anybody. Although various websites that try to predict their visibility they are not always that accurate as viewing conditions depend on many dynamic factors; cloud cover, seeing, time of day, and solar activity, capriciousnes of Icelandic weather, etc.

Still, as 2013 was at the peak of the sun-spot cycle, the trips added up, and over the course of last year I ended up accumulating quite a few timelapse scenes - some of which made use of a homemade wooden Arduino+car-battery-dolly - sometimes referred to as the "Icebox", or "Bomb Slider". I decided to make a video-project out of it. Below you can see the result:

Northern Lights Time lapses Iceland 2013 from Guðmundur Kári on Vimeo.

Plotting Planck's Law

18 January 2014

The Planck function or Planck's law describes the electromagnetic radiation emitted by a black body in thermal equilibrium at a given temperature \( T \). Max Planck - the originator of quantum theory - proposed it in 1900, solving the Ultraviolet catastrophe. It remains a very important in physics (and particularly so in astrophysics) to this day.

Planck's law can be formulated in terms of frequency, \( \nu \) in the following way

\begin{align} B_\nu(T) = \frac{2 h \nu^{3} /c^{2}}{\exp\left( h\nu/kT \right)-1} \label{eq:planck} \end{align}

and equivalently, in terms of wavelength \( \lambda \)

\begin{align} B_{\lambda}(T) =\frac{2 h c^{2} / \lambda^{5}}{\exp\left( hc/\lambda kT \right) -1}. \label{eq:bL} \end{align}

In the figure below I plot the latter equation for two temperatures. Here is the Python script,, which I used to produce the plot.

Fossá - (The River of Waterfalls)

27 December 2013

"Lets cut to the case we talked about: lets go somewhere!", I told my friends upon arriving back at the Iceberg.

"Alright, where then?", they answered back.

We kind of worked out a loose plan: To go to Snæfellsnes a peninsula in the West of Iceland sometimes known for containing a pathway to the center of the Earth (ask Jules Verne!). We also knew that it offers quite a few scenic places. Still, however, it is also renowned for its capricious weather this time of year (commonly called algjört vindrassgat in Icelandic; for English speakers: it has bad connotations with wind). And sure enough we heard:

"Its gonna be windy out there, perhaps a storm - so watch out!". Our plans changed. Instead of going North-West, East it was instead. The journey to the center of the Earth had to wait a better time.

The plan: No plan really, lets just go to our friend's house in the countryside and take it from there, taking care to bring the following things with us:

  • Cameras, tripods, lenses and other camera equipment
  • Clothes, lots of them - its gonna be cold!
  • Sleeping bags
  • Food
  • A thermocup to keep our coffee warm - again, its gonna be cold!
  • A copy of the whole Hitchhiker's guide (The Big Blue Bundle-edition, containing all the books)
  • Towel (recommended by The Guide)
  • Showels

"What kind of car do you guys have?" my friend's dad asked.

"A jeep!", we promptly answered.

"Good", he nodded while bringing a book of Icelandic roads loaded with pictures of iconic places near them.

"See those waterfalls here? Háifoss (Literally: Tall-Waterfall), and Granni (either; neighbour or something thin), where the former one is the second tallest waterfall in all Iceland. Also, do notice that this picture is taken during summer. I've never seen it during winter - it might be worth for you to take a look at and see how it looks like. What do you think?"

And indeed, we took it from there. Resolving to start the journey before sunrise the following day to get some sunrise time-lapses. This might sound more ambitious than it was - twilight was at around 10 am, and sunrise at 11:15 am - it really wasn't that hard.

Still, on our way there we managed to get our jeep stuck in the snow- the type of stuck that all crew members had to get out of the car and start showeling - at least 4 times. Intelligent as we were, we only brought one showel, so the ones not showeling defaulted to using their hands and boots to help out. When you got tired you had fun by photographing the others working their asses off.

In retrospect we did learn a few things after the trip: bring at least two shovels, and definitely more coffee - in the cold you drain it much faster than you thin!

Eskimos had over two hundred different words for snow, without which their conversation would probably have got very monotonous. So they would distinguish between thin snow and thick snow, light snow and heavy snow, sludgy snow, brittle snow, snow that came in flurries, snow that came in drifts, snow that came in on the bottom of your neighbor’s boots all over your nice clean igloo floor, the snows of winter, the snows of spring, the snows you remember from your childhood that were so much better than any of your modern snow, fine snow, feathery snow, hill snow, valley snow, snow that falls in the morning, snow that falls at night, snow that falls all of a sudden just when you were going out fishing, and snow that despite all your efforts to train them, the huskies have pissed on.

-- The Guide

A trip to the North; Canada

01 December 2013

"What are you doing for Thanksgiving break, and more importantly: where are you eating turkey?" a friend asked me. "Who, me? I'm heading North, to Canada - I might not eat any Thanksgiving-turkey this year. Don't worry though, I'll just eat twice as much next year!"

We don't celebrate Thanksgiving in Iceland, so I didn't really mind missing out on the turkey (also: my family eats it during New Years Eve). And yes, my Thanksgiving dinner ended up being a quick wrap-sandwich on the cold road, somewhere in the province of Quebéc.

We headed out, a crew of 4; three French, and one Icelander, travelling over 1800km in 5 days, covering 2 states, 2 provinces, in 2 countries. We had a rough destination outline: A) Niagara Falls, from there swing up to B) Toronto to check out the CN-Tower; and then spend the remainder of the holidays in C) Montreal. It was an ambitious goal. It took some resiliance (mostly on the driver's part), some enthusiasm, and some power-music, but we did it.

As anticipated, the journey itself was a large part of the trip. However, for me - the co-pilot and one of two master DJs - the time passed relatively quickly; for the driver I'm not as sure. We did come prepared with a carefully crafted music playlist, consisting largely of songs made by indie and electronic groups that originate from an island a part of the Mid-Atlantic Ridge. Judging by the fact that we all had certain songs playing in our mind for the rest of the trip, I might have played some of them once or twice too often. Moreover, countless stories were told (some in French with English subtitles) about things that first came to our minds. Those stories will not be listed here - they would fill volumes.

As we were heading straight to the capital of Québec, the French-speaking state of Canada, I felt I had to shape up my (totally non-existent) French skills. And sure I did: I learned some very crucial first words, providing me with a diverse and lucid vocabulary, forming a sturdy basis to further build on. In return, I provided an equally descriptive vocabulary in my own mother tongue; words that ended up forming an effective and encrypted code language used in the midst of the French speaking Canadians - nobody speaks Icelandic, right?

I immediately felt that there was something about Canada that I resonated with. Maybe it was the chilly weather, temperatures routinely dropping to -8C or -10C, and sometimes to -15C. It was very interesting to see the Mediterranians' expressions seeing the temperature drop by one degree for every hour we drove North. The Icelander grinned. Or maybe, maybe I was just glad to be finally travelling again.

Having only a rough outline of what to do, this trip - like all good trips are - was largely characterized by on-the-fly decisions and last minute finalizations. Despite a few minor delays, everything went quite smoothly. Living in a digital age where your smartphone has a better idea where you are going than yourself, and where you can find, read reviews, book, and pay for a hostel in less than 5 minutes, it is getting exceedingly easy to travel. So what are you waiting for dear reader, give yourself the time (and some money - but money is best invested in travelling), open your door and step out!

Mt. Nittany

21 November 2013

Every time I walk up the stairs in Davey Lab, I get an exceptionally good view of a prominent geographic feature in Centre County, Pennsylvania, called Mount Nittany. One day, walking up those flight of stairs, from the 4th floor to the 5th, with a warm cup of coffee in my hand, I noticed that there was something different about the old hill. She had changed colors; the copious green blanket that she usually wears, she had swapped for a gleaming yellow and red coat! Postponing my duties, leaving them to cool off with my undrunk coffee; I stepped off into the outdoors.

According to local legend the mountain was formed in a very dramatic way; I summarized the lore surrounding its formation below, but you can read the whole legend here.

The legend says that Nit-A-Nee (the wind-breaker) an Indian Princess, fell in love with a handsome Indian Brave of the tribe called Lion's Paw. This fearless Brave was killed in a fierce battle with the wicked Wind from the North.

When Princess Nit-A-Nee heard of Lion's Paw's death, she carried his body to the center of the Valley where she laid the fierless warrior in his grave, and built a mound of honor to commemorate his strength. On the last night of the full moon, after she had finally raised the last of the soil and stone over his high mound, a terrible storm came unleashing itself with thunder and lightening and the wailing of a horrendous wind from the depths of the Earth. Every Indian in the Valley shuddered and all eyes were directed to Lion's Paw's high mound upon which the beautiful maiden Princess Nit-A-Nee was mounted with arms outstretched to touch the sources of the lightning bolts in the sky.

Through the night they watched with awe as the Indian Brave’s burial mound grew and rose into a Mountain penetrating the center of the big valley between the two legs of the Tussey and Bald Eagle ridges. When the dawn finally came a huge mountain was found standing erect in the center of the Valley.

A legend had been born. The mound and the maiden had given place to a Mountain, and standing on its summit was a Lion surrounded by eleven orphaned male cubs, each of whom had the courage of the fearless Indian Brave and the heart of the mysterious Indian Princess. From that day forward every place in the valley was safe, and the Wind wrested nothing from the fields on which these Lions strode as fearless heroes from the Mountain - the Mountain which still stands as a breaker against the wicked Wind of the North.

Reno, Nevada

10 November 2013

"I wonder how tall people feel in long flights?" my friend once asked me. Generously speaking she is only around 165cm, not a centimeter more. I'm 192cm. Upon arrival in a new country, 8 and a half hours of flight-time later, my legs felt like a pair of stiff logs. Those logs somehow got me past the gate, for my next flight.

I remember sleeping, or dozing off, with my head leaning to the brown fabric off the airline seat in front of me. It smelled a bit, I couldn't place of what. Lemon peanut butter? Anyways, - "... dear passengers, we will be arriving in Reno, Nevada, in approximately 1 hour and 50 minutes - we want to remind you to remain seated... ". When I woke up, I was already there.

It definitely felt different. As I walked the tapered isles of the airport, I saw a box covered with flashy and colorful lights, spinning wheels. The box played joyful tunes, the kind you quickly get tired of if you have nothing better to do. I however wasn't bored at all; some of the lights even blinked in sync as the tunes played. Yes, this was a slot machine: a box that keenly takes in bills or coins, that never seems to give anything in return, except for the pretty lights and playful tunes.

For a moment my right brain hemisphere wondered; should I? My left hemisphere then thought about negative expectation values combined with The Law of Large Numbers - I walked on. As I walked, I noticed other boxes - they were everywhere, some neatly arranged in groups; 4 over here, 16 symmetrically placed over there; dozens and dozens along the isles you walked. Waiting passengers tried their luck, with that gleam in their eye that said, this time, this time it will work. The wheels spinned.

I remembered my friend telling me that you will never find a clock in a casino, as they don't want you to be able to tell the time. But wait, this was in an airport, one of those places you really, really want to be able to tell the time! As I sunk into ideas about the distribution of clocks in this peculiar airport; wondering if the combination of singing slot boxes and the lack of clocks could potentially lead people to miss their flights, I heard Icelandic! 2 friends, and surely enough I had met one of them before. We left the airport.

The next days were packed. I was in the midst of the internationals, and there were quite a few of us. A typical introduction went like this:

"Hi! Where do you come from?
What do you study?
What school are you going to?"

"Well, I come from Iceland, and I'm going to PSU to study the stars. Next!" - This perhaps might sound superficial, but all of us immediately became good friends. We were in the honeymoon stage: we came from all around the world, with our own cultural luggage; everything and everybody looked interesting.

One thing I immediately noticed how few of us where going into science related fields. Management, Law, Economics, Fine Arts, Economics, Political Theory, and Public Administration seemed more popular career choices. For a while I introduced myself as a student of astronomy, which in some rare cases was confused with astrology. A bit disappointed, I quickly corrected them. I wondered; how does this miscommunication happen? Was it purely a language error (being nonnative English speakers), or was it the plain misconception that astronomy and astrology deal with the same thing? I hoped for the first. I then tried a few variations; Hi, I'm the Icelander with the unpronounceable name that studies law: the laws of the universe. Well.., I quickly just defaulted to plain astrophysics.

I had a hell of a time, my lenses and my vague colloquial S-American Spanish skills did too. We travelled, we visited places, we took pictures, we told stories, and shared jokes about our respective countries and cultures, we got our personality traits analyzed (supposedly I'm an extrovert analyzer with a very unclean desk - those who have ever my desk will be quick to know if I was classified correctly or not!), we all caught a cold with the ultra-cool air-conditioning, we ate & drunk well, and took various on-the-fly decisions that in the end turned out pretty good.

What I took most from these days was not necessarily the seminars I attended (although those were very good, I won't complain at all!), but rather getting to meet the other students. Even though we knew we came from such vastly different places, we had more things in common than we thought; we were all starting out a big trip in a new place. I think a good measure of your friendship is how long you are willing to stay up with people on the night before you have a long flight (or a chain of flights for that matter): With that as a measure, I can surely say I made many. Leaving to the strange airport-casino again, direction first West and then a lot more East, I knew I would be making good use of of sofas in various locations around the US, hopefully sooner rather than later.

A chain of flights later, I arrived in central PA; a place I noticed that is is characterized with having the word Nittany in front of everything. "Spontaneously, your luggage decided to take a trip to the edge of the universe" - What? Of course it hadn't, not that far, it was still somewhere in the western spiral arm of our Galaxy, still orbiting our small unregarded Sun, it had just taken a ride to the third largest city of a very remote state, I daydreamed in a Douglas Adam-ish fashion.

On that note, without luggage, without a towel, I Hitchhiked a ride, I hit the road again.


28 October 2013

Ég er að læra stjarneðlisfræði. Í íslenskutíma í MR var eitt ljóð sem stóð upp úr; ég hef ekki gleymt því síðan:

Kóperníkus - eftir Hannes Pétursson

Á kvöldin undir kveiktu tungli og stjörnum
koma þeir heim af ökrunum. Lágan óm
ber vindur frá klukku er álútu höfði og hljóðir
halda þeir stíginn hjá veðruðum róðukrossi með
feðranna gömlu, gnúðu amboð á herðum
en glaðir að allt skuli bundið svo föstum skorðum:
sjá þarna tungl og vindar, hér vegur og blóm.

Þeir vita' ekki að hann sem heilsar þeim oft á daginn
hjó þessa jörð af feyskinni rót - og henti
sem litlum steini langt út í myrkur og tóm.

Kvæðið virðist kannski einfalt við fyrstu sýn; auðskyld orð og tákn (róðukross - ítök kirkjunnar), smá rím, ljóðstafir (yfirleitt) og einfaldar myndlíkingar.

Ástæðan að ég held upp á þetta ljóð er undirliggjandi hugmyndin að það þarf bara eina athugasemd frá einum manni, vel studda af sönnunargögnum, til að kollvarpa heimsmynd heils samfélags algjörlega. Við búum ekki sérstakan stað í alheiminum, heldur ósköp lítin stein í gapandi tómi - ég er óviss hvort hægt sé að komast betur að orði.

Pældu í því að vera Kóperníkus á þessum tíma; kannski búinn að átta sig á þessu öllu saman; ekki búinn að segja neinum frá, meðan allt annað er enn á sínum stað og gengur óafvitandi sinn vanagang.

Ergonomically handwritten code, with a little help from my friends; vim, jekyll and twitter bootstrap