
Hugo Santos
I'm currently a Research Staff Member at NEC Europe, Network Labs in Heidelberg.
I'm a strong supporter of both Open
Standards and Open
Source Software. For enquiries regarding my previous or
current work, you may email me to h...@fivebits.net (follow the link to reveal the email, hint: it is my first name).
Through the years i've worked on several open-source software, you can find those projects hosted here:
- MRD6
An IPv6 Multicast Router for Linux
- dbeacon
a distributed multicast monitoring tool
- Mobile IPv6
A Mobile IPv6 implementation
Timeline
Late 2007, to present (2008)
I'm currently working in NEC Europe Ltd.'s network research lab, where my focus is IP mobility in heteregeneous environments and Identity management.
Nowadays i'm mostly interested on how to enrich user experience by extending existing mechanisms to support Identity management (besides all the trivial ones, i hope).
My work also continues in European projects, where it involves the development and integration of the support for multiple "Virtual Identities" in augmented network stacks, as well as support for Network-based mobility support (NETLMM).
Summer 2007
I was enrolled in Google's 2007 Summer of Code, developing several
parts of Haiku's
network stack. Some of my contributions included:
- Several network stack improvements and bug fixes, including
- TCP improvements and support for congestion control
- IP Multicast support
- The slab allocator
- A FreeBSD network driver source-level compatibility layer
Progress could be followed through Haiku's tag commit, a simple web application i developed to track project commits.
Q1 - Q2 2007
As my final year's project i was involved in a project to develop
a distributed and redundant Switch architecture at PT Inovacao.
Q2 2004 - Q4 2006
As a researcher in IT Aveiro, i
participated in the IST Daidalos
I and II projects, developing an integrated context-aware beyond-3G
network architecture, working specifically in the multi-layer
integration of heterogeneous technologies, including support for
seamless Local- and Global-Mobility, Multi-homing, Multicast and
Quality of Service (QoS).
Through the participation in this project i've had close contact
with several network architectures, such as Mobile IPv6 and HIP and
also several network technologies, including 802.11 (WiFi), 802.16
(WiMax) and DVB-T.
During this period i've also developed some software to support the activities i was involved in. Most times it was released as open-source, and some i still maintain. Some of this software included:
- MRD6 – An
IPv6 Multicast Router for Linux.
- dbeacon – a multicast
distributed monitoring tool which is currently used in several
multicast IPv6-enabled internet sites (see m6bone).
- Mobility framework – A mobility-oriented
IPv6 node management framework (developed for Linux, with
API portability in mind).
- Mobile IPv6 – A RFC
3775-compliant Mobile IPv6 implementation using the
Mobility framework above.
2003 - 2004
Developed a .NET prototype of an automatic content renderer and object
database based on type metadata.
2002 - 2003
Implemented some of the ITU T.120 standards as part
of the OpenT20 project, including most of the protocol suite core
protocols such as T.123, T.122, T.125 and T.124.
Programming Contests
Together with Joao Silva
i have participated in several programming contests, both national and
european, as the team "Aveiro Secreto". Some of the contests we've
participated include:
- MIUP – Maratona Inter-Universitaria de Programacao (National ACM
Programming Contest, teams of maximum 3)
- SWERC – South-western European Regional Contest (ACM regional contest, teams of maximum 3)
- CeNPLf – Concurso/Encontro Nacional de Programacao em Logica e
Funcional (National Logic and Functional Programming Contest, teams of 2)
The following is a list of our past participations:
A bit of history (and Software)
Still incomplete
It is incredible how experience builds up through life. Even today i stop to think how i came to learn about all the things i did, and how the simple thirst for knowledge fueled that drive. Here is a small text about how i got involved with computers and started programming, and how the Internet was the real enabler to all of it.
Around 10 years ago, in 1997, my parents gave me my first computer. Before that, my only contact with computers had been in junior-high (when i was about 10 or 11), where i had enrolled in a school club which teached students about basic computer operation. In reality we learned how to use Microsoft Publisher and some basic MS-DOS commands. Off-school i was able to interact with a computer in a local University where my mom was working. There i spent endless hours typing (I was compiling a list of information on all past Portuguese royalty...) and learned how to use other software, mostly by myself. In late 1997, now using my own computer, and after buying a book about HTML (the only book on the area i ever bought up to joining the University), i was writing pages just for fun and starting to try and use VBScript.
Without any computer-savvy friends, it was not until late 1998 when i got connected to the Internet that i really got to start and learn about software development. I was always very enthusiastic regarding other systems, i can't really explain why (I guess it was just pure curiosity), but during the first months i had a connection i spent them trying different emulators and operating systems. I remember using Mac OS 8 as my primary system on my Pentium 166, emulated using Fusion, a popular 68k emulator back then.
At the same time i was starting to get information about Pascal and later C when i got involved in the (very) local demoscene movement. Not because i needed it, but because it was natural in that environment, i started to write x86's assembly directly. First by reading on Pentium's two integer pipelines (by then I didn't really understand what they were) and trying to paralelize access to different registers as much as possible, and then by using some MMX registers and ops.
Eventually in 1998 i learned about "X-Windows" and "Linux", i don't recall exactly how but it was probably through some IRC reference. Having no idea of what they were, i was able to convince my parents and order a RedHat 5.2 CD-set (my 33.6k modem wasn't really up to par to be able to download it).
I installed it natively on my PC and started using it as my main system. Soon after i started learning C++. Now i wish i started by reading a book about it, but instead by that time reading KDE's source code, that was available in one of the CDs, seemed so much more compelling. I started experimenting with it, and in early 1999 i was already able to build small applications. In April i even published a very simple application that only wrapped the common (and by that time even more common) ./configure && make && make install procedure into a GUI application. I was 14.
This
page's content was last updated in July 2008.
Beware of
the crazy monkeys .