Revival

soon…

On what we gain and how little we miss what we lose

As a species, we perceive (and this very assumption is ironical, since my whole point is that we do not) technological progress as something inherently good. But as of late, its impact has become something of a side dish to the main course - the benefit we reap from it. Why don’t we fear what we are becoming? If change faces such hurdles in other situations (a new phone, a new boss, a new work methodology) why don’t we fear what we, as a species, are becoming, and how we are becoming increasingly addicted and in fact defined by our little “prosthetic brain augments” like PDAs, smartphones, and media access gadgets?

The obliviousness of the Average Joe (in a broad sense, it can even be the smartest geek) to whether this is good or not is symptomatic of what can truly be our blueprint towards demise - gliding through life obeying to our minds instead of to our hearts. Where does compassion fit in a media-saturated world? Isn’t it just another profit-turning capable buzzword?

A “weird numbers” finder in Ruby

I’m a big big fan of Boards of Canada. They have a track in their Geogaddi album called The Smallest Weird Number.

Turns out, weird number is indeed a mathematical concept! So I set about to do a weird numbers finder in Ruby. Here it is:

#
# for each positive integer (A)
#
# get divisors (including 1 but not self)  D
#
# sum them (B)
#
# B must > A
#
# if !exists (subset of D which sums to A) A is weird
#
def any_subset_of_equals ( divisors, value )
  size = divisors.length
  for i in 1...2**(size) do
    if !power_of_two(i)
      mask = ('0' * (size - i.to_s(2).length)) + i.to_s(2)
      thisSubset = Array.new
      for j in 0...mask.length
        if mask[j..j] == "1"
          thisSubset.push(divisors[j])
        end
      end
      thisSubsetSum = thisSubset.inject(0) { |sum,item| sum + item }
      if thisSubsetSum == value
        return true
      end
    end
  end
  return false
end
 
def power_of_two (value)
  (value & value -1 == 0) # awesome oneliner1
end
 
def get_divisors (value)
  result = Array.new
  for i in 1...value do
    if value % i == 0 and i != value
      result.push(i)
    end
  end
  result
end
 
# main loop
 
candidate = 3   # start at 3 (why not?)
while true
  divisors = get_divisors(candidate)
  sum = divisors.inject(0) { |sum,item| sum + item }
  if sum < candidate  # no good!
    candidate += 1
    next
  end
 
  if !any_subset_of_equals(divisors, candidate)
    puts "wow - #{candidate} is weird!"
  end
 
  candidate += 1
 
end

I love this language :D

The SCTP protocol

I wish this would be adopted sooner rather than later.

Multi homing with failovers? Check. Multi-channel per stream? Check. Flooding protection? Check. Cool! Too bad it’s not in Windows yet…

The Quest for knowledge storage

We all gather knowledge during the course of our lives. And, with this Information Age thing going on, it is becoming increasingly difficult to manage the nuggets we gather along the course of our existence.

Most people are content with re-learning (”I heard about this once but I don’t remember it anymore, lemme check again”) and although it works since you don’t start from scratch on retries, it would be much better if one could recall it - if not from memory, then have a helper handy.

One such helper is a wiki. I myself began using PBwiki’s services for personal wikis and so far it has been a smooth ride, but I haven’t got to the point of actually needing it as a memory aid. Mac OS X users have apparently specific tools for mind mapping and so on, but for me it has to be a cloud thing for mobile usage and so on (already antecipating a tomorrow with permanent, broad, Internet access).

The biggest problem with such a broad-sense use tool, is the organization for your entries. I myself am still struggling with this one!

Until next time! (going to re-organize my wiki :D)

Getting things done (I know, I know…)

First time I read about Getting Things Done (GTD) I thought “what a bunch of New Age crap” and for me, it is kinda hard to swallow that the guy who invented it makes a lot of money in 1 hour presentations talking about it (doesn’t it sound like those “Make a Lot of Friends” books?). But still - hey, if it works…

And it does, apparently. At least for me. My biggest personal “at work” peeve is how much time I lose during the day doing crap that I know is crap but still I just get distracted. And all this having a positive feedback from my work, so if I am productive an average of 7 hrs a day in an 8 hrs day and excel, what if I could tap in my daily non-productivity? :) I needed focus.

Click to continue reading “Getting things done (I know, I know…)”

Hordes of minions

XMPP, the eXtensible Messaging and Presence Protocol (aka Jabber) is a very promising engineering achievement by an entity with supposedly little stake in pushing a product (the IETF) so you know it’s technically above the average. Besides instant messaging delivery and presence notification, a whole slew of extra services and capabilities can be offered as extensions (hence the X in it’s name) such as VoIP gateways, disk storage and gateways to other popular IM services not based on XMPP like Yahoo!, AOL and MSN (GoogleTalk is XMPP-powered).

Click to continue reading “Hordes of minions”

My Fedora installation check list

Installing Fedora is something any newb can do these days, but for me installation is just the first step. Here is my checklist to make it look and behave my way.

Click to continue reading “My Fedora installation check list”

The Holy Grail of Programming?

Programming is hard. It’s what almost everybody (including programmers) seems to say. I always thought it was a matter of getting into it and achieving instant enlightenment, like bike riding but for most people it appears to just make no sense at all. BUT here’s a thought: since people understand things far better with pictures, why not have “visual” programming.

Forget “Visual” C++ and crap like that, I mean really *visual* code. Something in the likes of

Click to continue reading “The Holy Grail of Programming?”

Interactive fiction?

Yes, interactive fiction (IF). As in, a story that unravels according to your input. Or, as they are more known, “text adventures”. I’ve known text adventures as a kid, and never payed much attention to them. But lately, bored with the all-mighty textured polygon’s lack of substance, I have turned to the deep, fulfilling, somewhat frustrating world of IF.

To this day, new adventures come out and some of them even include bolted-on sounds and graphics. But suculent text is always the main story driving device. Showing only text began as a technical constraint, I believe, but the people who choose to author IF stories today do it because a) it’s super easy to do it and b) graphical adventures don’t convey the same level of depth. I mean, you CAN have good graphical adventures (BASS, Broken Sword, DreamWeb, etc) but they are much harder to author. One of the most sucessful IF makers was Infocom. Their whole business was shipping IF and so, predictably, they went under in the late 80s.

But why a blog post about IF and Infocom? :D What’s interesting about all of Infocom’s IF releases is that all of them ran in a virtual machine! Designed in 1979 on top of a coffee table in Pittsburgh by the two founders of Infocom, the Z-Machine was the answer to the multitude of home computers of the age. By targetting a virtual machine they could write once, run in many and have a common set of features across machines that did not necessarily support them (virtual addressing to overcome memory addressing capabilities, for example). There were many versions of Z-Machine, allowing for more features over time, but by far the most used one is version 5 that allows for 256k long stories (version 6 added graphics and sound).This may not seem much, but no story file to date has reached that size (remember, it’s just plain text and even features some compression, so…)

Long before Java and .NET, VMs were already a feature in the gaming world. Impressive :) I took upon myself to implement a standards-compliant interpreter for Z-Machine story files, and I’ll keep you posted on my progress.

←Older