Articles

Category Archives — Articles

My opinions on software development, web design, music and life in general. You’ll find some code snippets and useful tips about working with WordPress too.

More Thoughts on Writing Accessible Code

Recently, two articles from Tom McFarlin drew my attention. In fact, it was two months ago, like years in internet time, but I think the matter is still relevant, despite the fact that this post has been sleeping in my Evernote account much longer than I would have liked. The first article (Simplifying Code in WordPress: Option Arrays) was an attempt to address different ways of checking the availability of array keys in WordPress Options API. There Tom offered a couple of methods to do so, and that led to a discussion in the comments area about one-line solutions, platform compatibility, readability, and simplicity versus complexity.

The second article (Don’t Just Get It Working), published one day after the first, was more of a reflection on how we, as developers, sometimes tend to try (or not at all) to have our software built in a somewhat ideal way, being not enough for us to just have it working and doing what it’s supposed to do. We know how it goes from here: that way we can build products with higher quality and maintainability, but also take the risk of becoming so perfectionist that our projects end up being delayed because we can’t decide if braces should be put before or after a new line (for me it’s always before, BTW). There are also those who don’t care too much about what they write and just want to have things working as soon as possible just to make it home, watch Wilfred and bathe in cynicism and depression. There’s no blame nor shame in that, because programming sometimes can destroy all the purity of your soul, though I think we can make the life of that kind of people a lot easier. And there’s another group of people, those who used to write good code, but got so lazy and confident of their own work that ended up writing pieces and pieces of real ape-bull-boar crap while thinking of it as an epiphany. Such a paradox, uh?

This last group is the one that interests me the most. I think it’s easy to see how, once we gain experience, sometimes we write complex code for the sake of brevity or performance, but forget to make it accessible for other people that could eventually work with it. That often leads to code that is only easy to understand by its own author, but over time the author himself may find it hard to read. I think we don’t give enough attention to this fact.

Read more

Buenas Prácticas en PHP: Funciones Privadas

Uno de los grandes problemas que podemos encontrarnos al trabajar con PHP es que, por carecer nativamente de una separación de ámbitos, podemos ejecutar casi cualquier bloque de código en casi cualquier lado. Eso puede ser una gran ventaja en muchos casos, pero también puede llevarnos a provocar, muchas veces inconscientemente, un desorden enorme en la organización de nuestros proyectos, tanto a nivel código como a nivel de archivos.

Teniendo en cuenta este problema, este post es un intento de repaso por algunas prácticas que, creo, deberíamos considerar al programar con PHP. Más concretamente, cuando trabajamos con funciones privadas o internas.

Read more

La Mona y la Seda: lo Irrelevante de la Buena Presencia

Hace unos días revisaba, junto con dos compañeros de trabajo, un CV que nos llegó por un puesto laboral que estamos ofreciendo. Algo que nos tuvo discutiendo un rato fue el hecho de que la persona en cuestión incluyó “buena presencia” como un item entre sus habilidades.

Algo en lo que los tres estuvimos de acuerdo fue en que no nos gustó que eso estuviera ahí. Las razones que teníamos eran diferentes, como también algunas justificaciones que creíamos posibles para que el postulante pusiera eso. Acá básicamente intento hacer un repaso por esas razones.

Read more

Now With Random Cats Included

I wouldn’t say I am exactly a cat person. I do have a cat, but I’m not really more into cats that I am into dogs. I don’t completely share all of the cat related crazyness that’s been around the internet for years now, but I enjoy it as something cool, funny and cute at different times.

Cats have also become a meme on their own, so in those moments of tension or boredom both at work and home, a gif of a cat going batshit crazy serves as a relief from the awful pits of common life. At least for a while. Then you start looking for more photos, and boom, there goes your day.

Read more

Meetup, Buenos Aires y 11 Años de WordPress

El primer post de Matt Mullenweg, de enero de 2003, sobre empezar a construir una plataforma de blogging de código abierto sigue ahí, como un pedazo de historia viva, con el primer comentario de Mike Little ofreciéndose a colaborar. Poco más de tres meses después, la primera versión de WordPress estaba siendo lanzada. Diez años más tarde, en 2013, alrededor del 20% de los sitios web estaban hechos con WordPress, y miles de personas en todo el mundo colaboraban para seguir haciendo crecer tanto el software como la comunidad, dos cosas que se retroalimentan constantemente y que no podrían explicarse ni existir de manera separada.

El 27 de mayo de 2013 se llevaron a cabo festejos en todo el mundo por los 10 años de WordPress. En Buenos Aires no quisimos ser menos, y a pesar de que aún no habíamos siquiera empezado a constituir una comunidad local, tuvimos nuestra pequeña y humilde celebración, organizada a través de Meetup. Esa reunión fue el puntapié inicial para armar algo más grande en Argentina (sobre lo cual ya conté acá), y este año quisimos repetir la experiencia.

Read more

Mejorando tu Trabajo: Deploy Automatizado de WordPress con Capistrano

Nota: este artículo se publicó originalmente en inglés acá.

Si desarrollás sitios web con WordPress de manera profesional (básicamente, si vivís de eso o si una parte significativa de lo que ganás viene de ahí), y si todavía no implementaste un sistema de deployment automatizado, deberías considerar fuertemente hacerlo. Siendo sincero, no es lo más fácil del mundo. De hecho, muy probablemente te lleve unas cuantas horas de trabajo, de pruebas infructuosas y de lidiar con la comunicación entre servidores. Lo bueno es que podés aprovechar unos cuantos recursos variados en la experiencia de mucha gente que se quemó las pestañas poniendo en práctica un sistema de deployment antes que vos. Incluso existen herramientas especialmente pensadas para WordPress que te pueden resultar recontra útiles.

Read more

Follet Is Now Available Through the WordPress Themes Directory

Well, the wait was worth it, and finally Follet can be downloaded from the WordPress Themes Directory. The guys in the Theme Review team do an awesome job by giving advice on how to improve your theme, which is very useful not only for the directory, but to improve the overall quality of your work too.

Downloads are doing pretty good, and some people gave me very positive feedback about the theme. I’m very glad and thankful for all of that, so I hope to start seeing Follet installed in some websites soon. Right now I’m looking forward to version 1.1, which will correct some glitches and present some new useful features. Also, pretty soon there will be some little tutorials on how to take advantage of all the hidden functionalities that Follet has built-in.

If you already tried Follet, thank you 🙂 And in case you don’t know what I’m talking about, you can download Follet from the theme directory here, or see the demo site here.

Read more

Some Thoughts On Writing Accessible Code

A couple of days ago I was reading an interview with Kate Swaffer, a very popular blogger who suffers dementia (you can check her blog here, it’s really good!). That interview led me to think about a number of things we left aside in our daily work that could push people away from it, or make an approach really hard. Sometimes we choose to do that and sometimes we’re just ignorant.

Sometimes our website is not well prepared for screen readers, or is not crossbrowser. Maybe our CSS doesn’t have line-breaks, or our Javascript is minified without leaving the source at hand. We may often prefer using our time to write more code instead of documenting what we already have. Perhaps we use a very technical language in our blog posts without a real need to do it. The admin of a community site may take decisions that favor a minority of users above others. I myself, being a native Spanish speaker, write most of my posts in English, maybe leaving behind some potential readers. There’s a ton of things we can do to push people away.

But we sure can’t contempt everyone, right? Doing that would be like an impossible dream. People is different from each other, and that’s what makes the world keep running, for right or wrong. But I do think we can know our public, or at least we can try to do it. And I also think the same can be applied to programmers, because the fact that our work is not so evident for the final users doesn’t mean that we don’t need to be accesible for each other.

Read more

How to Deal with Users Being Automatically Generated by WP e-Commerce

In the last four months there was a lot of discussion about some decisions made by the developers of the famous shopping cart plugin WP e-Commerce. I think that discussion would not have exist if there were no users affected by the decisions that originated it. It is to be noted that version 3.8.14, the most recent release of WP e-Commerce, is supposed to definitely fix the issue, but I’m sure there will be a lot of people not putting the plugins on their sites up to date, and there can appear some possible issues with backward compatibility that need to be solved. That’s what this article is meant to.

You can read the first page of the thread if your interested in the technical implications, but basically, since version 3.8.13, WP e-Commerce saves the session data of anonymous customers into the wp_users and wp_usermeta tables, instead of doing it into transients, as was formerly done and other shopping cart solutions, such as WooCommerce, still do. This means that every time a non-registered visitor enters your site a new user will be created and some meta data for that user will be stored. So, if your site gets a lot of visitors, your database will be populated with lots of dummy users in a considerably short time. There is a scheduled task meant to remove this users hourly, but it doesn’t work quite well in some server configurations, so there will be sites where the tables won’t ever be automatically cleaned, with databases growing uncontrollably larger and larger in just a matter of days. That’s not something that any capable developer or site owner wants for his website.

So let me stop here for a minute. I’m not in the train of detractors of this practice. I don’t think it is ideal, but I do think there is a really good reason to do things this way and not another. I’m not that into discussing things that were already done as I am for trying to fix what’s wrong with them. There has been a lot of hate comments, ranting and whining in the thread I linked at the beginning, and I’m pretty sure that’s not the way to solve things, and don’t have me start on the kind of motivation that a programmer finds to get something fixed when he or his product is being attacked. So please, if you need some software to be fixed, be nice and friendly to your programmer. Otherwise, either he won’t do it well or will just walk away from you.

Now let’s get into the problem. This is not exactly a tutorial, so if you’re looking for a copy & paste kind of solution, you’re not gonna find it here. If you have this problem, the solution will depend on your specific server configuration, so you may need to do some modifications to the examples of code I’m gonna provide here.

Read more

How to Remove Yoast’s Google Analytics Warning in Network Admin

First of all, I admit I may be missing something here, but this issue annoys me big time, and I’m sure some people will feel the same.

So, what’s the deal? Well, I’ve been using Google Analytics for WordPress for quite a lot of time now in many installations, some of which are multisites. I love this plugin and all its functionality, and I wouldn’t change it for another one in most of the sites I run. But every time I download and install it in a multisite environment, I keep seeing a notice which reads “Google Analytics is not active. You must select which Analytics Profile to track before it can work”.

Some of you may say “why don’t you just set your Analytics Profile and stop whining?”. Well, I’d wish it was that easy. And that’s because, for some of this multisite installations, the main site is just an internal hub that will be hidden from the public, and doesn’t need to have an analytics profile set up.

Read more