Java based IDE = Very bad IDEa

Tags:

Have you ever used Eclipse or any Eclipse-based IDE, such as Zend Studio Neon or Aptana Studio?

All fine tools, but they have a big problem: Java

Note: this post is a bit old (late 2007), and IDEs have gotten better since then. For example, NetBeans 6.5 is a personal favorite of mine now. If you still want to read me bashing Java IDEs, feel free to continue reading!

Read More

Are spammers masking themselves with innocent posts?

Tags:

I had recently been getting increased amounts of spam comments and I was wondering why. You probably hadn’t noticed this, though, thanks to WordPress’ excellent spam detection which has so far made a very good job in detecting suspicious comments.

Up until today.

Today, a single spam comment got through the detection. I had received comments exactly like this one earlier, and they had been flagged automatically. Why did this single comment get through?

Read More

Is targeting a single browser okay?

Tags:

When I encounter a website which is broken in Opera, my browser of choice, I hate it. I know that Opera is perfectly capable of displaying any site Firefox or Internet Explorer can. It makes me feel like lecturing whoever made the site about cross-browser compatibility, valid XHTML, valid CSS, you name it.

But if you think about it, is it okay, on todays web, to target just a single browser or a selection of browsers?

Read More

What are the controller and model in MVC?

Tags:

A lot of people seem to be slightly confused about what the M and C, Model and Controller, of MVC are, in regards to web applications.

  • What does the Model do?
  • What does the Controller do?

View is what everyone seems to know, though… I wonder why is that so? What is so confusing about Models and Controllers?

Read More

Quick introduction to using Zend_Layout

Tags:

Lately, the Zend_Layout component has been a very popular topic on #zftalk. It is indeed a very useful component, but a lot of people are having trouble understanding how it works.

Adding to the confusion is the outdated documentation regarding the component proposal and the equally outdated articles about Zend/Xend_Layout.

Let’s demonstrate the usage of the current Zend_Layout implementation, which can be found from the Zend Framework SVN or Snapshots in the Incubator directory.

Note: if you are using the Zend_Layout from 1.0.3, the stuff mentioned here will still work.

Zend Framework 1.5 users: there is an updated version of this article available here

Read More

Localize your site in 3 easy steps

Tags:

Internationalization and localization means making your site usable in more than one languages. Well, to be honest, you could call a site that’s only in english localized to english visitors too, but in any case…

These two are also known as I18N and L10N. Can you guess where these acronyms come from? The first and last letter from each word and then the number of letters between… Someone’s been feeling really creative ;)

While PHP has an extension for GNU Gettext, which can be used for localization, it isn’t the easiest thing to use. Additionally, PHP can also do number and money formatting based on the locale, but this depends on the server: You must have the locale installed on it. On Shared Hosting accounts, some locales may be unavailable and you may not be able to install them. Not to mention that gettext can be a bit of a hassle to get working.

So, rather than using PHP’s native support, why not use Zend Framework’s Zend_Locale and Zend_Translate?

Read More

The mythical HTTP protocol

Tags:

The HTTP protocol is what powers todays web. While not useful for most people, knowing how HTTP works is important for those who work with dynamic web sites.

Still, it seems that the protocol is mostly a mystery to a lot of developers and some features of the protocol, such as the accept-language header, aren’t really used.

Read More

Geek humor

Tags:

Sunday morning, 5 AM…

– Hi
– Haven’t seen you in a while, but I have seen you in a foreach!

Proof against homosexuality: You can’t connect two male cable connectors.

note: I have nothing against sexual minorities, the above is just a funny fact ;) )

Camel-casing is fundamentally flawed

You know how camelCasingWorks, right? Well, I think it’s flawed.

Here is a camel
A camel

So, in fact, camelCasingNeedS to have the last letter in upper case!

Routing and complex URLs in Zend Framework

Tags:

We were talking about routing on the #zftalk IRC channel. One of the users mentioned that rather than using routes, he was using the __call method in the IndexController.

I then asked him why is he doing that, as I knew routes would be more than a good choice for most kinds of URLs.

I found out that he was working with SEO and he was using a very interesting URL scheme: domain.com/productname-numbers-categoryname.html

This is actually quite interesting thing to think about. Not the SEO part, but how to make ZF understand these kind of URLs. The default routing in Zend Framework works very well for typical Zend’ish URLs like domain.com/hello/world/stuff/goes/here, but if you want to do some more specialized URLs, like the example here, you may need to do some thinking.

Because ZF is so flexible, I can think of four different ways to route complex URLs:

  • Using __call
  • Using a controller plugin
  • Using Zend_Controller_Router_Route_Regex
  • Customizing the Route class

These methods can be used for other things as SEO URLs as well, so let’s check out how to utilize these four and their pros and cons.

Read More

Zend Framework initialization shell scripts

Tags:

I’ve had a couple of cases where I’ve wanted to quickly test some stuff with the Zend Framework. Now, to get the framework up and running, you’ll need a couple of things:

  • Directory structure – controller dirs, view dirs, public_html, etc. etc.
  • .htaccess files – To enable routing
  • Bootstrap
  • Controllers

I can never remember what to put in the .htaccess files and I often forget the parameters for the front controller in the bootstrap. But what if you could do all these steps with a single command?

I want to be able to run a single command and get the framework up and running without doing anything else.
So, I decided to whip up my trusty Vim and write a couple of shell scripts to do it!

Read More