Posts

Code != Clothing, or How to neatly structure your code

Having been worked with countless technologies , frameworks  and 3rd party libraries, I can say that I have seen almost every possible way of organising the code for a project. From the approach of putting every file in a single folder “just for now” (where “now” becomes “forever”, because moving things around is just too complicated), to the one of creating humongous, monolithic do-everything libraries (which I nicknamed “walls of code”), to have everything is in one place, to the theoretically more rational modular system, where files are organized in sub-folders.

The reason why I stress the word “theoretically” is that, while the idea is certainly good, it can still lead to a messy, hard to maintain mass of files. The key of everything, in this case, is finding what logic should be used to structure the code. It may seem a simple question to answer, but the way one answers to it can lead to nasty surprises. Read more

The first rule you need to observe to become a Professional Developer

The inspiration for this post came to me while reading a few invitations I received from some of the “modern contracting” websites. I’d like to thank them for giving me a chance of some good bashing, but I won’t write their names here as they don’t deserve free advertisement.

A bit of background

I registered on some of these websites some time ago, because I needed to outsource some work I could not do myself. Despite being the Client and, thus, looking for someone to hire, I also completed my professional profile in the Contractors section. I did it  because I like to know the background of people with whom I collaborate, and I think it’s only fair that they get to know about me as well.

The drawback of this is that now I also appear as a Contractor, which allows other Clients to invite me to submit proposals to their projects. I was aware of this, and I thought it would not have been a big deal to reject an invitation, from time to time. Also, I saw it as an opportunity to get in touch with new prospective Clients and establish a relationship outside these platforms. Things went as expected for a while, until I started receiving invitations so disgustingly arrogant that ticked me off. Read more

New Release – Cron Jobs Plugin for Vanilla Forums 2.0

Today is a big day, I finally released my first plugin for Vanilla Forums. It was about time, I started using Vanilla in February, and worked on several plugins for many weeks, but they were all “work in progress” and I never felt that they were ready for release. It’s so typical of Developers, looking for an unreachable “perfection”.

Two words about Vanilla Forums

If you don’t know it, you should try it. There are many forum frameworks available on the market, but, in my opinion, Vanilla is by far one of the easiest to use, and one of the fastest. It’s not as widespread as phpBB or vBulletin, but it’s powerful and well designed. Although its documentation is somewhat scarce, such issue is more than compensated by Vanilla Community. Even though I joined only a few months ago, I feel that I already became famous, considering the plethora of questions I asked. Still, not a single one had been left unanswered.

 The reason behind the plugin

Unfortunately, one of the features that Vanilla is lacking (as of version 2.0) is the possibility of running scheduled tasks. If you’re familiar with CMS like Drupal, you’ll know that they expose a special URL which, when opened, will go through all the Cron Tasks registered by plugins and executed them one by one. Although many Users won’t miss such feature, it becomes very important for bigger communities, where the need of regular maintenance tasks acquires a higher level of importance.

I, for one, needed exactly that feature for the first plugin I developed. In its simplest form, it will query forum’s live tables to create statistics, but it will become slow once enough data will be collected. Its Cron Task will, therefore, involve consolidating older data and produce snapshot summaries, to be queried instead for better performances.

More details

I won’t go into much technical detail in this post, as all the information on how to use the Cron plugin is on its download page, on Vanilla Addons website. If you use Vanilla, feel free to download it and give me your opinion. Should you like it and find it useful, feel free to buy me a coffee. 😉

Enjoy!

A new section is open: Downloads

Over two months have passed since my last post, and I realize that the backlog of the things I wanted to write about is growing every day. However, I’m stubborn and I won’t get discouraged, especially now that I learned how to stop making goals, and I switched to projects. Much better feeling, stronger sense of accomplishment, definitely a better way of planning. If you’re a supporter of the idea the one should set goals, you definitely have to try working on projects instead. I promise you won’t go back to goals, ever. This is a topic for my other blog, though, and I might discuss it there.

Back to the original topic

As written in the subject, I can finally open the Downloads section, and I’m doing it by publishing a script that will hopefully save a good amount of work and some serious headache to all Developers who, like me, start working with the powerful, yet very complicated, Magento E-commerce framework. Read more

The effects of Technological Religion – Case Study

This post is an addendum to Golden Rule: a Developer is not a Priest. For better understanding of the context, I recommend to read that post first.

Technological Religion is something I found in several places where I worked and, trust me, its effects have never been positive. I remember a case where the fanaticism of two teams was so strong that it created a barrier between them. Here’s their (sad) story.

Once upon a time…

In a town, somewhere in Europe, there was a Company in which two teams lived in not-so-much harmony. Read more

Golden Rule: a Developer is not a Priest

One may ask what do the two figures can have in common. It’s better explained with a preamble.

Today I was reviewing a website (link no longer available, sorry) created by my protégé, when I spotted something that inspired me to write this post. As I usually do, I visited it using several browsers, to check if pages render correctly in all of them. When I opened it with Internet Explorer, all I got was the following message:

We don’t like Internet Explorer.

I’ve seen many websites declaring a browser preference, usually in the form of “this website is optimized for browser X, version Y”, but this is the first one that clearly rejects one so “harshly”. I know the author of the website and I’m aware of the reason why he decided to do it, but, personally, I don’t recommend taking such position.

The message reminded me of an (unfortunately) common issue in the world of Software Development: technological religion. This term can can be described as an almost-fanatic preference of a tool over another, and it explains the title.  Read more