More Lost Pictures: Budapest
Last year I was in Budapest for UDS-O. Not many pictures since I had no camera other than a very bad phone.
But here they are
More Lost Pictures: Budapest
Last year I was in Budapest for UDS-O. Not many pictures since I had no camera other than a very bad phone.
But here they are
The Steady State of Open Source
The Steady State Theory says, in rough terms that the universe has been and will be more or less as it currently is, because there are parallel processes of creation and destruction.
So, galaxies exhaust but then there are new galaxies, and the thing, as a whole, remains unchanged, in a way. Sure, it's not the same galaxy, and nothing that was in the old galaxy remains, but if you avoid specifics, things are the same.
I feel the same thing happens in the free software universe. The two forces are reaction and features.
Reaction is the creative force. Most, if not all, free software is reactive. It itches, I scratch, scratching is reactive. There are many examples:
This even happens within a project:
And I am sure those familiar with any software product that has lived long enough to go through major rewrites and upheaval can do similar lists.
However, sometimes, the complains just don't go away.
And guess what people say about Chrome? It's slow.
So, the lesson there seems to me that writing a lightweight, generally useful, web browser is impossible. Why? Because of features.
As projects age, they grow features. Like the strange ear and nose hair men start growing in their 30s, features are a fact of the lifecycle. And with features come code, because that's how you do features.
And code is a liability, as (I hope) you all know. The more code you have, the more expensive it is to add things, and to be swift about improving your application. Most successful projects die, or grow senescent, hobbled by the weight of their features.
So how does a project stay young? I can think of a few ways.
It may have a benign (or evil, for that matter) dictator, with the right amount of hostility towards features (Linux). It may be so exquisitely modular that features don't couple with each other (emacs). It may reinvent itself every 5 years and throw everything away (KDE). It may have a very clear focus on one feature and a culture around it (Bacula).
And for each of those mechanisms, there are incountable examples of projects with too annoying dictators, projects overengineered to absurdity, stalled rewrites that never release and absolute focus on a feature noone cared about.
Sorry, the universe is a tough place.
Nikola: New Tag Index Pages
Short and sweet:
In Nikola my static site/blog generator, the Tag pages used to just be a big list of titles linking to the posts in the tag. Now they can (optionally) look just like the blog does, but filtered. Check it out.
Minor tweaks still needed (like, mentioning the tag somewhere in the title), but the basic functionality (filtering, pagination, layout, etc) is complete.
To enable it in your site, just use master from git and enable TAG_PAGES_ARE_INDEXES = True in your conf.py.
The end of lateral.netmanagers.com.ar
This site has been lateral.pycs.net, lateral.fibertel.com.ar, lateral.blogsite.com, and has been, for several years, lateral.netmanagers.com.ar.
Well, I am slowly going to deprecate that URL, and the new URL will be http://ralsina.com.ar where you already can find it since a few months ago.
It will involve some work moving comments around and such, but nothing much should change, all old links should remain valid, and all comments should stay attached to the right post.
I will contact the various planets that aggregate it, but since the feed will remain constant thanks to feedburner, I expect not to lose anyone in transition.
Qt Mac Tips
My team has been working on porting some PyQt stuff to Mac OSX, and we have run into several Qt bugs, sadly. Here are two, and the workarounds we found.
Native dialogs are broken.
Using QFileDialog.getExistingDirectory we noticed the following symptoms:
Solution: use the DontUseNativeDialog option.
Widgets in QTreeWidgetItems don't scroll.
When you use Widgets inside the items of a QTreeWidget (which I know, is not a common case, but hey, it happens), the widgets don't scroll with the items.
Solution: use the -graphicssystem raster options. You can even inject them into argv if the platform is darwin.
Istanbul, The Lost Pictures
I found a camera today at home, and then it hit me: this was the camera we took to Istanbul, dropped on the floor, never worked again, and I never found after we came back! And it still had the SD card in it!
So, here are the pictures (not even filtered), so family can see them.
Cloud Atlas
Finished reading Cloud Atlas, gave it 5 starts. Here's a quick review:
I am not going to explain this book. It's enough, I think, to say I loved it, and that it's strange, and that it's a bit of a mistery.
Imagining a universe in which all the contents of the book could be real at the same time in a way that would allow all the pieces to be written as they are and yet, be, somehow, not the novel they are, but a found artifact, is both depressing and ellusive.
At the end, I felt something I can only describe as retrospective hope, the feeling that things were supposed to end up better, but that even as terribly as they did end, were it not by that earlier hope, they would have been more grim.
The control the author has over his own style is impressive. This book feels written by half a dozen completely different writers.
Some quotes (which may only make sense once you read the book):
"The sun was deaf'nin' so high up, yay, it roared an' time streamed from it."
"In the first set, each solo is interrupted by its successor: in the second, each interruption is recontinued, in order. Revolutionary or gimmicky? Shan't know until it's finished, and by then it'll be too late"
"What wouldn't I give now for a never-changing map of the ever-constant ineffable? To posess, as it were, an atlas of clouds."
Nikola 4 Released
I have just uploaded release 4 of Nikola my static blog/site generator. Here are some of the changes in this version:
As usual, you can discuss bugs or make feature requests at the nikola-discuss group and I love to know of sites using Nikola.
Hope you like it!
Trying out CloudFlare
It's not that I need a CDN in any way, since the traffic for this site is little and the way the site is built is light, but hey, it's free, easy to setup and easy to leave when I feel like it. And I expect to have significantly higher traffic eventually after I finish some not-so-secret projects.
What's CloudFlare's service? They take over your DNS, then put a reverse proxy between your site and the clients. That reverse proxy then uses a CDN to serve you the pages from a conveniently located server, and can rewrite the HTML/JS/CSS in some ways to make it faster/safer/nicer.
It also supposedly will protect my site from different kinds of attack (the only one that could possibly affect me was DOS attack, but thanks anyway ;-)
Also, they offer a platform so apps can provide services for me, like intruder detection, analytics, and others, which is a very cool idea.
So, I created an account at cloudflare.com and configured it so that http://ralsina.com.ar (which is this exact same site except for wrong comment counts) is served via cloudflare, and lateral.netmanagers.com.ar is served directly.
What I've seen so far:
So: no pain, maybe some gain. I will probably move all sites into it tonight.
Sometimes More is More
We all hear all the time that less is more. That simple is better, that complex is worse, that options are evil, that defaults are what matter.
And yes, that is about 90% true. Except when it is false, which I know because I bought a coat a few weeks ago.
This is a rather nice coat, and if you saw it without much care you would miss one of its best features: it has two pockets on each side.
Let's think about why we want pockets in the sides of coats:
For the first use case, we want the pockets to be shallow angled, so that the hand goes in naturally, almost horizontally. Also, we want the access to be unobstructed, so no zippers, which also scratch the wrists.
For the second use case, we want things not to fall off. So we want either a vertical pocket (perhaps with a flap) or a zipper. Zippers suck because you can forget to zip them, and things fall off. Vertical pockets are awful to put your hands in.
So, my jacket has two pockets on each side, one with a zipper, one without. One for hands, one for things. Since it's a thick coat you don't see it unless you know what you are looking for, and it's trivial to use: everything goes in the zipped one, except my hand. I can even check the contents of the zipped pocket without getting my hands out of their pockets.
This is one case where more is more, complex is better, options are awesome, and defaults don't matter. Now, if you find a place in software where that's the case, that's an opportunity.
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!