lfborjas: tech blog

After a decade-long hiatus

11 minute read Published: 2020-10-29

I haven't posted anything to this blog in almost 10 years . In fact, for a while there I've considered it defunct, because I didn't have anything to say. Or rather, I lacked the emotional and intellectual wherewithal to write about technology. But I hope to get back into the groove of things, and I'd also like to look back at these ten years, for a lot has happened. Let's take a whirlwind tour.

Continuations in ruby

8 minute read Published: 2011-03-27

In the weekends I like to learn lisp (my favorite lisp is scheme), and, whilst I do it in a chaotic fashion, I end up actually learning. Today I'm reading about continuations, a theme that is mentioned over and over in schemeland and which I hadn't the guts to try and understand. Until I found this chapter in the book "Teach yourself scheme in fixnum days". As eye-opening as it is, what I found most surprising is that ruby also has continuation! So I'll sum up what I learned about continuations using ruby for the examples. All the examples and content are either paraphrased or taken directly from the above book.

Magic considered harmful: teaching the first programming language

8 minute read Published: 2011-03-26

This might come off as yet another developer ranting against java, so let me state this before even stating my goal today: I think java is a neat language which shows off some good ideas that have clearly influenced the programming community for the past years. But, as highly as I think of java as a kinda good designed product and harbinger of very nice things, like the java virtual machine (cradle of fine languages like scala and clojure)and the widespread use of just-in-time compilation, I consider that teaching it as a first programming language is harmful, because in teaching it you have two choices: either delve into thorough and sometimes hard explanations as to why things have to be done the way they're done or resort to magical explanations: "write it like that because I say so". And both have equally pejorative consequences: the former leaves little time to teach the fundamentals of programming, like control flow, functions, recursion, environments/computational objects, logic and testing; and the latter sets a rather weak foundation which dooms the future of future engineers/computer scientists.

Hosting a fossil repo with lighttpd

4 minute read Published: 2011-03-25

I started working in a project, and it was using fossil as it's scm. I cloned it and began doing my stuff, at first it felt weird, as I am a git user, but eventually I got the knack of it and it feels nice and clean, definitely easier than git. However, because I'm not part of the official project (i.e. I'm working on a fork, if you wanna hear git-speak), I didn't have write privileges on the server, so I decided to host my own copy.

Git in the classroom: cloning/pushing exams in programming courses

7 minute read Published: 2010-10-30

I had to apply an exam this week for a web development for beginners course I'm teaching. We're using ruby for the server side for a couple of reasons: heroku is an excellent option for one's first deployments and I wanted to get a better grip on Ruby on rails 3 and html5 for my own improvement (and I've found that there's no better way to learn stuff the good way than teaching them).

No decent developer can survive without some sort of source control management. The one I know more of is git and I'm a huge fan of github. We're actually using github organizations to manage the class projects (the github staff is really great, they've let me use private repositories for the student groups at no extra charge).

Teaching about git and github with a nice blog post

2 minute read Published: 2010-10-16

Today, I was writing a tutorial for a class I'm teaching on how to use git+github for group projects. We had a lab earlier so I already knew which things needed more support (like diagrams or screen-captures) and which needed real-life code results.

The unholy alliance, discovering a command line java interpreter

4 minute read Published: 2010-09-26

I'm gonna give a little talk about java to some people in a couple of days. Yes, java, the new cobol, the language I secretly know, lest I'm banished from the cool kids club. But it has cool stuff. The java virtual machine, the bytecode compiling, the support for unicode and the blessed jruby. I mean, we can run ruby on appengine thanks to java! So get that frown off your face and let me tell you 'bout something cool.

Installing mongrel2

1 minute read Published: 2010-09-02

Mongrel2, the language agnostic web-server. That sounds rad. So, naturally, I had to install it. I am, at the time of writing, barely reading the chapter three of the book but managed to go through the installation thanks to the very detailed guide provided there.

But I ran into some (easily fixable) issues, which I'll share for posterity and the sanity of others.

Pagination in jekyll

2 minute read Published: 2010-08-30

I migrated my personal site to jekyll today, as I said before; for my blog, I wanted something simple, codinghorror, simple and yet a little simpler than that: I don't like the clutter of sidebars and footers, but there had to be a way for people to navigate amongst my entries (I also don't assume that people have the best internet connection ever to load all my posts in one page).

The internerd, indeed

1 minute read Published: 2010-08-29

Ruby jewelry

2 minute read Published: 2010-08-29

Yesterday I had no money to go out and the weather sucked. So I decided to pick up one of my side projects and hack for a while.

For that project I need to fundamental components, a way of extracting keywords in a text and a wrapper for the public rss feeds of delicious.com. So I created webtagger and deliruby (this morning I thought to rename it to "delirious", which is cooler, but, well, nevermind) and released them as opensource gems for whomever wants to to hack them and use them. I think it's cool to be able to release something easy to use for others (using gem install instead of downloading the source, extracting it, installing it and all that fuzz).

So, how do you create a gem?

Mixed indentation in python, the phantom menace

1 minute read Published: 2010-08-25

Little known python microframeworks

1 minute read Published: 2010-08-23

The last couple of days I've been doing some Sinatra hacking, and in a serendipitous google search, stumbled upon these two little guys: itty and juno. They look like interesting python microframeworks, take 'em for a spin!

Vimwebdev, a bundle of web-development plugins for vim

2 minute read Published: 2010-08-23

Lo and behold, something not very fancy, but perhaps useful

I'm a vim dude, though I still cling to eclipse for django development just because I haven't had the time to read the manual and make the switch. But my ruby and javascript (with node.js ) based projects are proudly developed in vim: from the haml templates to the sass stylesheets to the models and controllers.

And I'm also a paranoid: every day I dread that everything I have in my computer will disappear and I will be lost and forlorn. That's why I have redundant git repos for my really important projects and why I love using Dropbox for my mundane file-related needs.

Slicing bread with chainsaws, one size doesn't fit all webdev needs

4 minute read Published: 2010-08-22

Ok, world, big fat disclaimer here: I'm not an experienced developer in all of the web frameworks that have existed in the history of ever (I've only done kinda serious stuff in three of 'em) and this thing I'm saying here is more of a hypothesis that I'm currently putting to experience's scrutiny than a rational, exhaustively thought, conclusion. Now, read on.

Nowadays, there are lots of web frameworks, and people have done wonderful stuff with them (twitter was written initially with ruby on rails, p.e.). And, truly, they have allowed the now commonplace fast, yet robust and standards compliant, development of big projects. But what about the little projects? Those little apps with at most a couple of tables in a database and a simple service to offer? Well, the really cool and experienced developers just do that in the big frameworks too...

Ay, there's the rub that makes big frameworks of so big a hype.