Sunday Jul 26, 2009

I've changed this blog's layout a few times since I started it, and usually the licensing information is lost somewhere in the process. Time time, I'm simply posting it.

Creative Commons License

So for what is worth, everything I've written here in English is under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. This means you can't use any of the content for commercial use without my authorization, and you're free to use, distribute and modify it as long as you share it in the same way and provide credit.

Wednesday Oct 24, 2007

Let's think about this for a second.

Imagine that we are nothing more than threads. That we are spawned by parents and that our time here will eventually end and our bodies consequently reaped.

In different moments in our life we're stopped and we stand around waiting for some event to come around and put us back towards our goal. Some of us wait intensely, spin locking on something/someone/somewhere. Occasionally getting in the way of others.

Others just sit around and do nothing, occupying physical space - sometimes wasting, sometimes just occupying. Sometimes causing others to wait too, a deadlock is a couple of steps ahead and then back.

We may have to wait on others too. During this madness of racing forward so intensely we think too much of ourselves, sometimes forget about other threads and so they might wait more than necessary (or give up and quit). Sometimes that happens to us too. But that wouldn't be a semaphore... that would have to be a barrier (or a shared lock), as we can depend on more than one person at a time. And vice-versa.

When lucky, we have someone to dispatch us towards the right place, so we can execute peacefully with all the resources we need. Other times we have to fight everything and everyone to get our share of space. Hopefully that struggle wasn't in vain and we're not just saying "Hello, World!".

What would be worth facing all the other threads and waiting in line, blocked somewhere, for ?
That's the big question, right ? Relax, a thread is just a flow of execution, we don't have any true conscious of why we exist.

What about processors, where do we execute ?
Maybe that's our cities, and we're racing through a mile long pipeline every time we decide to do something. To that goal, somethings can take place out of order, some can't. Some stages are longer, some shorter. And we always get mad when the wait is too long.

If a city is a processor, semaphores are part of the instruction set. Right ?

Or maybe the world is the processor, and every bridge, railroad and air route are parts of this huge NOC interconnect. We are just threads scheduled from one core to the other, migrating our data with us.

What about our sleep ?

That's easy. That's the garbage collector.

And I obviously need to get some.

Monday Jul 02, 2007

So, I'm doing my graduation project about NUMA architectures and what OpenSolaris and Linux do to support them. I'm halfway through it, getting to the implementation part of the project.
Here's the current book pile residing at my desk, it started lower, got a little bigger with some other OS books that I had to return to the library, and it's been stable (except for the occasional accident) for the last couple of weeks.


Starting at the top:
   "Just Enough UNIX", Paul K. Anderson
   "Solaris 9 Administration Guide", Paul Watters
   "Concurrent Programming in Java: Design Principles and Patterns", Doug Lea
   "Design Patterns", the Gang of Four one
   "Operating Systems: Internals and Design Principles", Stallings
   "Linux Kernel Internals", Beck and a bunch of equally intelligent folks
   "Solaris Internals", Richard McDougall and Jim Mauro
   "Linux Kernel Development", Robert Love (from Novell)
   "UNIX Systems for Moderns Architectures", Schimmel
   "Pthreads Programming", Nichols et al
   "Linux Programming", Neil Matthew and Richard Stones
   "UNIX Internals", Vahalia

Check out a couple of paragraphs from the VM part of the monography, feel free to comment on it. It's what I'm calling a "release candidate for a draft".

"Usually, UNIX processes on 32bit architectures can theoretically occupy as much as 4Gb of space. However, memory is a scarce resource and the system shares it between all running processes. So when it is time to bring a new process to memory, the system begins by bringing a few necessary pieces of the program. This portion that resides in memory is called the resident set of the process. If the processor encounters a memory reference to a part of the process that is not currently loaded, it blocks the execution of such process and brings that data to memory from disk [STA 05]."
...
"UNIX systems use both virtual memory and paging as memory management techniques. We now have processes divided into pages, being loaded into memory frames as these pages are needed during execution. Such method of bringing pages as they're necessary is called demand paging."

I'm currently finishing the MPO/liblgrp and libnuma part of the paper. Once that's done, it's just a matter of polishing the whole thing and making it more readable. It gets difficult to explain even the simpler concepts with a new perspective, focusing on what the project is about.

But I'm getting there.

Thursday May 10, 2007

Last year, me and a friend from college were taking this course early in the morning and since we're both caffeineaholics, we adapted a bunch of CS terms and expressions to our favorite drink.
Here's the list:

Coffee Critical Application
Coffee Underrun
Empty Coffee of Death
Coffee-stop Model
Single Coffee Failure
Coffee Swap
802.39 Wi-Coffee
802.3f Ethercoffee
Triple Coffee Redundancy
Coffeeability
Bad Coffee Pointer
Illegal Coffee Access
I, Coffee
Hitch-Hikers Guide to Coffee
Micro Coffee Inside
Coffee Enabled
IEEE Certified Coffee
Coffee Triggered
Defcon Coffee
Bug-free Coffee

Can you guess what kind of course that was? :)

Thursday Apr 26, 2007

During FISL, I attended a talk by Erwin Tenhumberg about the Open Document Format. He talked about how OASIS worked to get an ISO for ODF and how important that is in terms of data longevity and data freedom.

Now, think about that for a second. Data freedom. Sounds cool, doesn't it?
Like a march of 0's and 1's burning their underbraws in public - bits do have gender, they're females, I'm convinced.

But back to the point.

When you (or your lawyer) asks for some public document while filing a complaint because your tax returns are taking too long to process, in what format is that stored?

Better yet, what format or application does your government use to store information about _you_?

Do they use proprietary stuff that you need ($$) access to in order to view it?
Why should you have to buy someone's product to read public information produced by a public institution?

What if the company that makes such product goes under in two years?
How would the government understand those docs?

Reverse engineer it?
Keep using legacy versions of the software?

Because of those reasons, and many others, governments and institutions all over the world are adopting the Open Document Format and OpenOffice as their standard.

Because it's free, because it's an international standard and because it should be open.

More here:
Oasis ODF Adoption Committee
ODF Alliance

Monday Mar 05, 2007

So I finally got around to setting this thing up.. but I'll be honest with you, I was never much of a blog-person.

Not saying that I've become one, but I gotta admit it, techblogs are a pretty cool way of writing about computers and technology.

Hey, maybe one day blogs will be as important as..... as.... hmm..... see what I mean?
I always had a hard time getting it. Maybe 'cause I mostly seen blogs used in a way that would just put more distance between people, like a lot of people nowadays wait for their friends to go online on their IMs instead of picking up the phone and calling them when they wanna talk.

So you'd ask "Then why are you doing it, anyway?"
Well.... I don't think this will be the case.
Besides, this is a techblog :)

So next time I'll have something more interesting to say, tech-wise.
Promise.

By the way, if you don't know your Hendrix the title for this post came from a song called "1983...(A Merman I Should Turn To Be)" from the 1968 record called "Eletric Ladyland". Check it out.

This blog copyright 2009 by rv