By mariya | Published:
October 9, 2009
Sometimes I’m stupid enough to subscribe to some online marketing newsletter. I got two this week from different “marketers” whose content was almost identical. They went something like this:
Want to make money off your blog?? I make $100000000 a week off my blog! Here’s How! Click here for this magic formula! Drive Traffic! Make dollars!
And of course, clicking takes you to an order page where you can shell out some hard-earned money for a PDF containing their “magic formula”.
Well I like you, dear readers, so I’m going to tell you their secrets, absolutely FREE! Here’s the trick to “monetizing your blog”:
- Put up a newsletter subscription form
- Write some nonsense about how much money you make off your blog, even if you don’t – this will drive traffic
- Blast your users with stupid annoying emails promising them the secret to blog monetization
- Put these steps 1-4 into a PDF and sell it for $30
It’s recursive!
By mariya | Published:
October 6, 2009
First of all, thanks to everyone who read and commented on the original post. If nothing else, I got some (angry) tips for how to improve my Drupal experience when I do have to use it. It reminds me of this bash.org gem: Start the sentence with “Linux is gay because it can’t do XXX like Windows can”, and you get Linux geeks rushing to angrily help you. So again, thanks everyone.
That said, I haven’t changed my general opinion about Drupal, and this week I’ll be addressing some of the recurring points from the comments.
Let’s start with:
Q. What do you recommend in its place and under what circumstances?
Read More »
By mariya | Published:
October 5, 2009
Need to test your site in multiple versions of Internet Explorer? I just downloaded DebugBar and was beyond impressed. With a couple clicks, you can open a url in a single tabbed window with all IE versions 5.5 through 8. Grab it here.
Two years ago I endorsed Multiple IE, but unfortunately they’ve dropped the ball on Vista and IE8 support. I recommend upgrading to DebugBar.
By mariya | Published:
October 4, 2009
Edit: First followup posted.
Are you choosing a Content Management System for your next site? Allow me to throw in my two cents against Drupal. In theory, Drupal is a CMS that lets you control your site out of the box. In practice, it’s a nightmare to configure and maintain.
I recognize that Drupal might work for small sites: install the software, upload your custom theme, and start adding content. But if you’re planning a serious site, with custom features and potential for high traffic, Droople, as I’ve christened it, might not be your best bet.
Apologists may protest that module X or hack Y might fix my gripes with Drupal. I think this is irrelevant. A CMS requiring a slew of third-party mods before it can be usable is useless to someone who can code a custom Rails CMS in a day or two. (Hint, hint. Build it in Rails.)
Without further ado, here is a breakdown of why Drupal is bad for the various parties involved, together with Why It’s Bad (WIB) notes for the less tech-savvy.
Read More »
By mariya | Published:
October 1, 2009
What embarrassing shortcomings do you have as a coder? I find that I often need reference material when dealing with:
- File permissions (chmod)
- Regular expressions (Apache rewrite rules, Ruby regexes etc)
Does anyone else feel the same way? Do you have any good tutorials that can rid me of these handicaps once and for all?
By mariya | Published:
September 23, 2009
I’m all over the web except here these days. Two highlights of my week:
By admin | Published:
April 30, 2009
I had a Symfony 1.0 app and I finally decided to make the leap to 1.2. Lo and behold, this mysterious error cropped up:
Notice: Undefined variable: site in /path/to/myproject/apps/site/templates/layout.php on line 10
If you’re upgrading from 1.0, you may suddenly notice that you get these “undefined variable” errors. That’s because global variables are deprecated in layouts as of Symfony 1.1, to be replaced with slots. Generally, a wise idea. More info here: http://trac.symfony-project.org/wiki/Symfony11LayoutUpgrade
By mariya | Published:
April 23, 2009
Remember to pay your domain fees, folks:

RubyOnRails.org actually showed this for a good few hours. TechCrunch has the full story.
By admin | Published:
April 16, 2009
My new Symfony app calls a remote web service as part of the user creation process. Since this is intimately linked with the model (I want this behavior executed for my fixtures, too) it makes no sense to call the web service from the controller.
Like Ruby on Rails, Doctrine has some handy built-in hooks to execute code before and after saving a record. Here’s what my updated model looks like:
class sfGuardUser extends PluginsfGuardUser {
public function preSave($obj){
some_voodoo_magic($this->get('id'));
}
public function postSave($obj){
call_my_special_webservice($this->get('id'));
}
}
By mariya | Published:
April 10, 2009
There I was, coding up a fresh Doctrine schema for a Symfony app, when my plans to implement foreign keys were repeatedly foiled:
SQLSTATE[HY000]: General error: 1005 Can’t create table ‘./mydb/#sql-xxxx.frm’ (errno: 150). Failing Query: ALTER TABLE cow ADD FOREIGN KEY (barn_id) REFERENCES barn(id)
I was using InnoDB, both tables were there, both columns were there, what else could MySQL want? Why didn’t it work?
Apparently, you must use the same data type for both columns. My cows.barn_id was an INT, while barns.id was a SMALLINT. This didn’t fly. Changing both to SMALLINT did the trick.
Hint: if you’re using Symfony with Doctrine, like I am, use “integer(4)” to get the MySQL INT datatype, or “integer(2)” for a SMALLINT data type. Plain old “integer” converts to BIGINT.