Older blog entries for ralsina (starting at number 670)

2012

So, this is 2013. Could have fooled me if you claimed it was 2012. I did a resolutions post a year ago. How did it go?

  • I aimed to write a post a day. That was 366 posts, and I failed miserably. I did post 215 times, though, which is a heck of a lot.
  • I aimed at improving at my work. I think I did do better for a while, and dipped a little near year's end because of tiredness. I will give myself a pass there.
  • My health got better. I did lose some weight (although I recovered some of it) and my blood pressure is looking good. My energy levels have improved.
  • My marriage is doing much better. Probably happiest since 2008.
  • I did not get my teeth fixed because of insurance issues. That should be ok after march.

As bonuses:

  • Took my mom to Paris.
  • Made some moves to achieve financial security in the far future.
  • I gave the closing conference at PyconAr
  • I revived my free software projects

So, not horrible!

As for 2013:

  • Again, will try to get my mouth fixed.
  • Will try to lose much more weight.
  • I will aim for 200 posts.
  • I will try to finally write a whole book.
  • I will have eye surgery to get rid of the glasses.

We'll see how that goes.

Syndicated 2013-01-01 20:55:09 from Lateral Opinion

Client-rendered, one-URL, dynamic, static site.

My vacations end tomorrow. So, the time to spend hacking fun, personal, free stuff is going to be limited because of the time spent coding fun, free stuff for money. So, I decided to finish with a bit of whimsy.

I implemented a completely client-rendered, one-URL, dynamic blog. Which is actually totally static.

In fact, that blog is this blog, just with a twist. If you go to this URL you will see what's basically this very site, with comments and everything as usual. But if you click on "Previous Post" ... well, it stays in the same page, even though it displays a different post :-)

The magic is the new, experimental, dynamic task_mustache plugin for my static site generator, Nikola. which does the following:

  1. Renders post data as JSON files instead of HTML
  2. Creates a HTML file that is really a mustache.js template
  3. Creates a HTML file with some bits of Javascript that loads the template and the newest post's data.
  4. If you access that mustache.html with a fragment, it uses that to fetch JSON data and rewrite itself.

And that's it. It actually loads fast, and regenerates very fast, since it does much less than the real site. There are a bunch of things that will dump you out of the "dynamic" site, like tag links, and whatever, but it works surprisingly well (and if you want to theme it, it's just one template).

This is the first of a new kind of thing for Nikola, the "extra plugins". Basically, stuff that is too weird, specific or useless for the general distro, will go there, and to use those plugins, you have to create a plugins/ folder in your site and add it there manually.

Enjoy!

Syndicated 2013-01-01 19:03:43 from Lateral Opinion

Nikola 5.1 released.

Nikola , my static blog/site generator. Details, changelog, etc, at Nikola's site

Syndicated 2012-12-31 20:48:33 from Lateral Opinion

Creating a Theme for Nikola From Scratch (almost)

There is some documentation about creating themes for Nikola, but maybe a tutorial is also a useful way to explain it. So, here it is. I'll explain how to create a theme (almost) from scratch. Alternatively, you can take an existing theme and modify only parts of it via inheritance, but that's for another document.

I will try to create a theme that looks like Vinicius Massuchetto's Monospace Theme.

Read more...

Syndicated 2012-12-28 21:12:38 from Lateral Opinion

Nikola Feature-by-request: tag cloud!

I asked for feature requests for Nikola my static site generator. I got some. One was from long-time user Kay Hayen, so I just couldn't say no.

He asked for tag clouds. Look:

Anything in here will be replaced on browsers that support the canvas element

Cute, isn't it? And it's real, actual tag data from this very site. With links!

How it's done:

Nikola generates a JSON file that has the cloud data (tag name, size, link), and that's processed by JQuery and tagCanvas and ... well, it works.

You have to add jquery.tagcanvas.min.js somewhere and embed a whole pile of raw HTML (see here for details) but hey, it works.

Hope you are happy, Kay, you made me code javascript, dude ;-)

It's probably rather "easy" to make it use any of these instead of tagCanvas if anyone is so inclined.

Syndicated 2012-12-27 22:31:23 from Lateral Opinion

New in Nikola: slideshows (work in progress)

This is nowhere near ready for release, but why not show it?

Nikola can now turn this:

.. slides::

   /galleries/london-paris-2012/P1000198.JPG
   /galleries/london-paris-2012/2P1000235.JPG
   /galleries/london-paris-2012/3_P1000298.JPG

Into this (which will not look good in RSS):

Missing:

  • Customization
  • Support for slideshows that are not made of images
  • Styling

This is based on slidejs which seemed neat, but I am not 100% sure it's the way to go (it seems to look bad if the images are not all the same width, for example).

Syndicated 2012-12-27 13:52:22 from Lateral Opinion

Why Use Something Else?

I wrote a static site generator, called Nikola a while ago, and it's starting to get some adoption and contributions.

I think it's a fairly nice piece of code, to be honest, and it pretty much does everything I need. On the other hand, it's fun to code with.

So, if you are using another static site generator, or are researching into it, or just have opinions about it... what's missing? What should it have that it doesn't have now?

No feature too small, no idea too crazy, please share! I promise to make a good effort to implement any that seem like a good idea :-)

Syndicated 2012-12-26 20:22:58 from Lateral Opinion

New in Nikola Master: Interactive Console

Inspired by Django's interactive console, I added one to Nikola, so that if you want to play with its internals, you can do it easily. Here's an example session:

$ nikola init pepe
A new site with some sample data has been created at pepe.
See README.txt in that folder for more information.
$ cd pepe
$ nikola console
Scanning posts
.
.
done!
You can now access your configuration as conf and your site engine as SITE
>>> [p.title('en') for p in SITE.timeline]
[u'Listings Demo', u'Nikola: it generates static', u'Welcome to Nikola',
u'A reStructuredText Primer', u'A reStructuredText Reference', u'Sample
Nikola Config File', u'The Nikola Handbook', u'Theming Nikola']

Have fun!

Syndicated 2012-12-25 19:34:09 from Lateral Opinion

Son Saqueadores, no Idiotas.

Ayer estaba pensando acerca del saqueo aniversario del otro día. No me sorprende que haya saqueos a supermercados el 20/21 de diciembre porque bueno, habrá quien quiera conmemorar, organiza un saqueo con los amigos, esas cosas.

Pero hay algunas cosas que no entiendo.

La idea de "el gobierno no hace nada"

Hasta donde sé, robar un supermercado no es un delito federal. Es una cosa que la maneja la policía de la provincia. Entonces, el que no hizo nada mientras saqueaban en Villa Gobernador Gálvez fue el gobierno de Santa Fe ¿no?

O sea, un gobierno opositor al gobierno nacional es el que le da las órdenes a los policías que miraban mientras se robaban las cosas. ¿O acaso esperan que haya gendarmes cerca de cada supermercado del país y vayan corriendo a reprimir? ¿Si eso pasara, no sería un atentado contra la autonomía de las provincias?

La idea de que "lo organizó el gobierno"
Escuché a varios decir eso. Si el gobierno nacional lo hizo, son pelotudos. No creo que lo hayan hecho. Realmente, es parecerse a De la Rua, y si hay algo que este gobierno no quiere es eso, ¿no?
La idea de "no tienen hambre, se robaron un LCD"

FELICITACIONES SEÑOR CHORRO. Una de mis molestias constantes con el chorro promedio es la falta de ambición. SI vas a robar, la pena es la misma no importa lo que robes, mas allá de cierto punto. Robar $1000 o $2000000 es más o menos lo mismo.

Si tenés hambre, robate 1 (una) bandeja de churrascos y un LCD. El churrasco es para morfar esta noche, el LCD lo vendés y comés un mes (aunque habría que analizar el precio de reventa de un LCD comparado con, digamos, 25 kilos de lomo).

Pretender que haya una "nobleza" en el tipo que está choreando un super es cosa de locos. Como decía Olmedo, si lo vamos a hacer, vamos a hacerlo bien. Si vas a chorear, choreá bien, choreá con ganas, y sé un excelente chorro.

En fin, que como casi siempre, las cosas que la gente opina no me cierran mucho.

Syndicated 2012-12-25 09:55:54 from Lateral Opinion

Windows is *HARD*

I am on vacation, by the sea. So, I don't have my usual internet connectivity. I decided to buy a 3G modem and decided purely based on price, ending up with a ZTE modem provided by Claro.

On Windows, it works well enough:

  1. Plug it in
  2. Get the autostart window
  3. Start the installer
  4. Click Next a few times
  5. Reboot
  6. Start the client to connect
  7. Click on the "world" icon
  8. Wait a little
  9. Internet!

I tried it on windows first because I assumed it would work on my wife's computer, and I could do an ad-hoc wifi network so I could connect mine. Well, no.

So I tried it on Ubuntu. It does work too:

  1. Plug it in
  2. Say I am in Argentina
  3. Say it's a Claro 3G service
  4. Go to Network Indicator
  5. Click on "Claro 3G"
  6. Wait a little
  7. Internet!

And yes, I can do an ad-hoc connection and provide service to everyone else. Plus I don't have an unclosable window laying around all the time.

Syndicated 2012-12-25 09:21:06 from Lateral Opinion

661 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!