Typography has this weird effect on me

Just got this email from MyFonts. It made me smile.

Typography is such an interesting field. I could spend all day reading about how people make glyphs look the way they do to convey some kind of emotion or state of mind.



This Week ‘No Shit, Sherlock’ Moment

At least someone try to slap some sense into Nokia. I doubt Windows Phone 7 is any kind of solution but … Hey, its better than 3 competing operating systems.



Fan boy douchebaggery

Another rant about how Native apps are better than Web based. I agree, the experience is better but from there to say they are obsolete? I personally like how he calls himself a “entrepreneur, engineer, and social hacker”. Classy.



IBM Centennial Film: They Were There

A wonderful movie celebrating the 100 years of IBM.

I wish i lived in the beginning of the computer revolution when System/360 was designed, or when the Macintosh was created. Back then everything was undiscovered. It would be like having a daily sense of novelty. I envy that world.



A DOS emulator, complete with its own app store. The perfect useless nerdgasm app. Available for free on the App Store.

Seeing a DOS prompt on a iPhone is just wrong:

2011-01-20 14.29.40.jpg



3D video

I’ve always seen 3D video as a gimmick, especially using those funky glasses. This video captures the entire stupidity about 3D in a well shot movie. Like lonelysandwich said it is 3D without glasses but with nightmarish disfigurement.

via lonelysandwich.


What would an Apple car look like?

This morning while I was walking to my job I saw some hideous car parked and remembered Steve Jobs talking about car design back in the day. And then I got this crazy idea: What if Apple designed a car?

This is actually a running joke for fans of the brand but seriously, think about that for a minute. What kind of car would it be? Would it be small and hipster like a Mini or Smart, or a sports car like Porsche or Tesla. It would have a incredible design for sure but how would it look like? In my head it would be mixing both some kind of futuristic look and simplicity. The only thing I can come up is this Audi from 2004 “I Robot”:


It would probably be the most comfortable car ever made. Their attention to this kind of detail is legendary (remember the light sensor mimicking breathing patterns?). Also how would the In-Car Entertainment system be? And as Pièce de résistance, imagine having as car service and mechanic an Apple Store?

I wish the thing they are saving their money for was this, mostly because I need to buy a car.


Visualizing a college organizational domain graph

My current job is at Project Fenix, the academic administration tool for managing Instituto Superior Técnico – from student grades, occupation requests up to parking access. Fenix is a very large application with almost 1300 entities on a rich domain. I started working on this project when I was in college, and back then I had problems reading the 20000 line file describing the domain. In order to inspect the structural representation of the domain, I’ve built a simple tool that displays UML diagrams of the domain entities and their relations called Fenix Domain Browser. The UML diagrams are generated by Graphviz’s dot, and I have built a custom parser for our domain modeling language. This is an interactive system in which you explore by clicking each entity. An example follows:

Screen shot 2011-01-11 at 12.15.01 AM.png

For a long time I had the idea to make a poster with all the entities and their relations. However Graphviz’s dot can’t handle graphs this big. It blows up with a SegFault. After searching for a while I’ve found gephi, a tool design to data mine gigantic graphs.

Using tesseract I’ve build a few scripts to output the relational structure of the domain, outputting the data in a format called GDF. After that is just loading it up into gephi and spread the graph, and paint the nodes.

This is the result:

Screen shot 2011-01-11 at 12.17.39 AM.png

The cool part about this graph is that you can actually see how the college works. The colors are separation of important parts of the system:

  • cyan: Person
  • red: Teacher
  • ligher green: Student
  • orange: Accounting
  • blue: Personnel Section
  • purple: Assiduousness
  • darker green: PhD

Each line represents a relation. Pink lines represent inheritance in which a entity is the the specialization of another, while the rest represent a relation between two entities (e.g. Person has a Card, Student has a grade).

The most important entity is Person. This entity represents the concept of a person with which the college has a relation with, either being student, teacher or employee. This is at the heart of the graph because is the most connected entity.

Screen shot 2011-01-10 at 11.38.56 PM.png

In this highly connected area we can see three important entities, Teacher (in red), student Registration (right next to Teacher in green) and Student (farther away, in green).

Screen shot 2011-01-10 at 11.40.49 PM.png

The centre and the top right areas have the most chaotic relations. This is because this is the oldest code and the system core functionality. Also the center of the graph has the most abstract entities while the fringe ones are more specialized. Other interesting discovery the fact that account is spread through the system.

Screen shot 2011-01-11 at 12.21.45 AM.png

In almost every part of the graph there is an isolated accounting entity. However the accounting platform main section is located in the lower edges. The assiduousness code also shares features with accounting (has to do with employee daily checkins).

Screen shot 2011-01-11 at 12.22.56 AM.png

Also interesting, the phd section is away from the center. This is due being really recent (1-2 years old) and still being developed.

Screen shot 2011-01-11 at 12.24.00 AM.png

The tree shapes you can find on the graph are the result of a entity being inherited several times.

Screen shot 2011-01-11 at 12.25.02 AM.png

The dots unconnected to the main graph are entities that have no relation with the information on the system. They are normally things like system information (logs, cron jobs, etc.) or super abstract stuff that has no relation with the rest of the information (time tables, calendars, etc.).

After generating this, I did some labeling, printed it into a poster and placed it into the lobby of our office. Makes an awesome motivational poster!


This was a cool side project that yield a fun poster. However we can use this information to segment the domain file into smaller files, by separating the color clusters of the image.

You can download the images here:

The next step

This poster has about 1300 entities and 1500 relations. What I want to do next is the instance graph.

Fenix currently holds 40 million instances from all the entities. Generating such a graph creates both design and engineering problems. The first is that generating such graph is a tour de force . There are memory and computational problems. I don’t know if gephi can handle this many instances in a single graph. Most likely this must be done using distributed computing. Second is how to display over 40 million instances and actually see something. besides a gigantic blob.


Tools to start the new year organized

I was needing a cloud based todo application with support for the iPhone, preferably native. I need something that I can adapt to my workflow and doesn’t change it completely (as for instance OmniFocus). After evaluating several web applications I decided to use todoist . I thought about Things for Mac & iPhone but I have read some bad reviews about syncing and it has no web support, making it unusable on work. todoist has a freemium model so is free unless you want the extra features (notes and SMS alarms). On the mobile side, I have bought Doings, an iPhone application that works with todoist and can sync back to it.

And by the way, happy new year.