This website uses third party cookies exclusively to collect analytics data. If you continue browsing or close this notice, you will accept their use. The EU now requires all sites to display this banner which confuses users and does nothing, actually, to improve your privacy.
Read more on why this law is ignorantLearn about this website's cookiesDisallow cookies
Carlos Fenollosa

Carlos Fenollosa

Engineer, developer, entrepreneur

Carlos Fenollosa — Blog

Thoughts on science and tips for researchers who use computers

Startup school

December 05, 2014 — Carlos Fenollosa

The amazing How to start a startup class just finished today.

How fortunate we are to live in a world where the most successful minds of our time can teach the whole planet through the Internet, and decide to allow that possibility.

Open education isn't just a fad, it's been a fight for a long time, and now it's starting to root strongly. Thanks to all who have joined on this fight, the world is becoming a better place.

If you're interested in education as a source of progress, don't miss the XPRIZE episode of the Tim Ferriss podcast, definitely my favorite podcast now

Tags: learning, startups

Comments? Tweet  

You are not late

October 12, 2014 — Carlos Fenollosa

Can you imagine how awesome it would have been to be an entrepreneur in 1985 when almost any dot com name you wanted was available? All words; short ones, cool ones. All you had to do was ask for the one you wanted


But, but... here is the thing. In terms of the internet, nothing has happened yet. The internet is still at the beginning of its beginning. If we could climb into a time machine and journey 30 years into the future, and from that vantage look back to today, we'd realize that most of the greatest products running the lives of citizens in 2044 were not invented until after 2014

You are not late

Tags: internet

Comments? Tweet  

You only do it when nobody else will do it

October 03, 2014 — Carlos Fenollosa

Maybe the difference between a junior and a senior programmer is that the first will sometimes say "I don't know how to do this", while the second will always say "Give me a week".

When you finish college with a computer engineering degree, everything seems possible. You just learned how to design a computer from the zeros and ones up to the applications. From logic gates up to a CPU, from TCP to HTTP, from assembler to Java.

Then, time passes, you get a regular job, and regardless of its awesomeness you start forgetting stuff. Furthermore, you discover super smart people who are light years ahead of you, and for some reason, your mind thinks of them as superheroes, almost magical creatures who can write an ultrafast x86 emulator or make a disk drive play the Imperial March

Don't get me wrong, these are amazing feats. But psychologically you start to feel dumber and dumber up to the point where you believe that the only thing you can aspire to is write webpages and some normal stuff. Even if you have great skills and do a great job at a great company, it's difficult not to feel just a tiny peg of the machine.

I didn't know how to do anything else, and I thought I'd fail if I tried. In college, I suffered a lot with some courses, and to date I still don't know how I passed. But the truth is that college is very dense, and without all the stress from exams and projects, and thanks to age and experience, things actually get easier to learn.

That's why side projects are important.

Three years ago I launched my first successful project to the Internet, bashblog. It's no big deal, but it's a commitment. People use it, contribute patches, discuss ideas, and I have the responsibility to make it work.

Then I started learning things that have always tickled my curiosity. It started with functional programming, one of the academic topics which has been discussed since the 60s but never took off. Then I did more courses on astrophysics and statistics.

This year I left my job to take a sabbatical and start new projects. In some countries it's normal to take a sabbatical before starting college to travel and learn. But almost nobody thinks about a sabbatical when you're 30. You can choose a wrong career path when you're 18 and fix it, but the 30s are critical and one needs to be really sure that they want to spend the rest of their life doing what they love.

I have recently found, don't know how to put it, some change of mind, new strength, inspiration. I want to learn how to write an OS. I started writing mobile apps. I want to launch a product. I'm contributing to an industrial patent to do really cool stuff with cellphones.

As usual, every of these projects hides many challenges. I've had to read RFCs, learn how to extract voice patterns from an audio file, write device drivers, deal with lawyers and read formal documents 1

We live in the information age. There are plenty of resources, some of those University-grade, to learn new skills. Discipline and planning can go a long way. There is no excuse.

Github and other websites have also made it effortless to collaborate with total strangers. It really makes me happy and proud to see other people commenting on things I've done. Years ago you had to go to a computer hobbyist meeting to show your work, now you can do it online... and others will improve it.

Stack Overflow will provide code samples and guidance. I've now started hearing undergrads utter "Did you really code programs without Stack Overflow?" in the same way that I used to say "Did you code programs without the internet?" to people who had to read manuals and go to a library.

Hacker News and Reddit can guide you on what's cool nowadays. Live in the future, then build what's missing.

I guess that it's comfortable to dismiss some ideas just because "we don't know how to do it". And that's a waste of our university degrees. We have some responsibility to do cool stuff. If we don't build it, who will? If we can build it, why wait? If you don't have the skills, learn them. Just Google it. Work on it for a week, and you will succeed.

Do you miss the adrenaline rush that you used to get when you first discovered something? The "oooh" and the "aaah"? Learn something new, something radical, something cool and futuristic. Start a project, and release it. It doesn't need to be complete.

The greatest force that pushes us to build things is the knowledge that nobody else will build them for us.


[1] One of the multiple things that managers usually do and engineers don't appreciate enough

Tags: programming, life

Comments? Tweet  

Creating an OS from scratch

September 29, 2014 — Carlos Fenollosa

I am a Computer Engineer major, so I took some classes in college on how to build operating systems. For many reasons, I don't remember most of it, but it is a world which has always excited me.

There has been a recent post on HN which points to a very simple and detailed tutorial on how to write an OS from scratch and it has really inspired me, so I decided to create a Github repo to publish the code at the same pace that I learn to write it.

It is not for everyone; rather, for CS/CE majors who were overwhelmed by college but always were curious about what happens from the moment you turn on your machine up until when an application loads.

I split each "lesson" into one-concept increments, so it can be easy to follow for people like me who don't have a lot of time and brain power to learn at a University pace. This is a work in progress, again, I publish code while I learn and extract it from the original document and other internet resources, so expect it to be updated regularly!

Tags: software, hardware

Comments? Tweet  

Hey NSA, as you sow, so shall you reap

September 25, 2014 — Carlos Fenollosa

It looks like the new "encrypted by default" policy on smartphones is freaking out law enforcement agencies. Honestly, what were they expecting? They have been abusing laws and courts for so long that we are starting to take measures to let private companies protect us from our governments. How twisted is that, huh?

"When I see a police officer now, instead of protected, I feel threatened." That's a bit demagogic but bears some truth. People seem to have interiorized that concept and we now prefer to have some privacy, regardless of what police think. Yes, we are so busy caring for our safety that we don't give a crap if that interferes with the FBI —probably necessary— counterterrorism work.

But wait, is that true? I mean, isn't that reasoning a bit flawed? Are people stupid or careless?

When you think about it for a minute, there is a crucial point. Who is more likely to have resources to circumvent police investigations? Of course, professional criminals. That's why you can't make a backup of your DVDs, but pirates can. Professionals always find a way, it's regular citizens who have no means to protect themselves.

This is a comic I made in 2005 (click to zoom).

It says, "The EU wants to keep a record of phone calls, SMS and emails as a security measure against terrorism." Then, an Al-Qaeda terrorist who's planning to bomb the twin towers starts using carrier pigeons. Both his phone and computer are wired to the CIA, but that's of no use now.

As time told, they passed that law, and now everyone's communications are under police eyes. It's ironic, but nowadays the communications protocol which is the most protected by law is... postal mail.

In the end, it is a false sense of security. We have to give our laptop password to a random guy on an airport and let him check our email and pictures while real terrorists have a decoy encrypted partition. They can manage all the hassle, we can't, so they win.

Or better, they will carry paper documents in a briefcase. Expect next decades' spy films to stop portraying criminals as cyberpunk hackers and go back to the 50's analogic look. In the age of Apple Watches, nobody will suspect that a Casio watch hides a microfilm with the schematics for a bomb.

Tags: internet, law

Comments? Tweet