haX0r3d

May 12th, 2008 by Jaybill McCarthy

Embarrassingly, my site got hacked. Again. I was running a slightly outdated version of Wordpress and they got me. Judging from some of the code comments in the injected PHP, it looks like the work of Brazilian spammers, probably the same ones that got me a few years ago. While I’m sure person who performed the hack didn’t create the thing, I have this to say to the creator of the hack: If you used your powers for good, we’d probably have a cure for AIDS by now.

Anyway, I had to do an emergency upgrade to Wordpress 2.5 (which I was planning on anyway) and some of my plugins are still MIA, but it looks like the worst is over.


Posted in Updates | 2 Comments »

Masked Bandits

February 11th, 2008 by Jaybill McCarthy

raccoon.jpg

So not one, but two raccoons took up residence in a tree in our neighbors’ yard last night, somewhere around three in the morning. It seems they were having some kind of loud domestic argument. They didn’t appear to be rabid or anything. In fact, they were sleeping until I went and took this picture. From the relative size of the two animals, I’m guessing they’re mother and child. Our dogs are guessing they’re…well, lunch. I’m pretty sure these too raccoons combined outweigh any one of our dogs. I’m also guessing the raccoons have a much greater survival instinct than dogs that get fed twice a day and who’s occupations consist mainly of sitting on the couch and pulling paper towels out of the garbage. It’s a fight I have no intention of witnessing, so the dogs will remain indoors until these guys move on.

Where we live isn’t exactly rural, but there’s a quite a thriving population of raccoons. I attribute this to the abundance of unmaintained decorative fruit trees. The pickins’ are pretty good, I imagine. They don’t have much in the way of predators in an urban area like ours. If they keep to themselves and stay out of trouble, I think most people are content to let them be.

I’ve always thought raccoons were really interesting creatures. They’re very smart and have eerily human-like hands. I read somewhere that raccoons have roughly the same portion of their brains wired to their sense of touch as humans have to sight. I imagine this is probably pretty useful if you spend most of your waking hours stumbling about in the dark.  Raccoons are decidedly nocturnal, and it looks like this pair picked this tree to camp out in for the daylight hours.


Posted in Updates | No Comments »

8 Web Apps You Should Look at Before Rolling Your Own

January 16th, 2008 by Jaybill McCarthy

When it comes to web applications, I spend a lot of time evangelizing the use of application frameworks. This stems from a desire to save people from writing mountains of new code that they’ll have to maintain. The less code you have to write to accomplish your goal, the better, as far as I’m concerned.

Frameworks promise you less work for greater return. This is good. What’s bad is that focusing on a framework can cause you to overlook an even easier solution: using something that already exists. I don’t care how easy it is to write blog software in Merb. If you’re writing blog software from scratch, please stop, for you are dumb. This problem domain has been conquered over and over. Don’t solve it again. The only time you should be looking to build an app from scratch is when you’re approaching a problem that’s never been solved before. The practical developer has no room for ego as far as inventing goes.

I can hear you saying, “But I don’t like the way other blog software is written! I want to write my own!” Well, go ahead. If you’re doing that for clients, prepare to a) maintain your non-standard app until you get fired, because you’ll be the only one on earth that can do it b) prepare to get your lunch eaten by a competitor who can install and customize Wordpress.

The other reason I thought it would be a good idea to compile this list is that there are a surprising number of people who don’t actually know about some of these apps. Everyone knows some of them, but very few people have a toolbox that includes all of these.

There’s a few things I look for in an off-the-shelf web application that I used as parameters when creating this list:

Good Documentation - If I can’t figure out how to use it, it’s of no use to me.
Solves a Specific Problem - The app must do one core thing and do it well.
Must Work Out of the Box - If there isn’t an outright installer, there should at least be some simple steps for getting the basic application working. If I have to customize or extend it before it’s useful, it’s not an app, it’s a framework.
Easily Extensible - There has to be a way for me to customize and extend the app without modifying the core code.
Plays Well With Others - There should be options for integrating with other apps via standard communication methods, like RSS, XML-RPC, JSON via HTTP or whatever.
Established Developer Community - I need to know there are other people using the thing that can help me if I get stuck or that could take over for me if I need to offload some work.
Minimally Picky - The app must run on standard web servers using standard tools and technologies without extensive tweaking and configuration.
Free and Open Source - Not negotiable. I must be able to use, customize and redistribute the thing without any legal or monetary restrictions.
MVC - There should be a clean divide between the presentation, controller logic and model layers.
Client Usage - This list is only stuff that a freelance developer might implement for a client.

Note that I did not say “has to be written in PHP”. For me personally, that certainly helps, but it’s not a strict requirement. I use plenty of things that aren’t PHP based. I probably won’t go to great lengths to customize things in languages outside of my core competency, but that doesn’t make them less useful. You’ll find this list heavily biased towards PHP, but that’s because it’s my list, not the list.

Okay, enough said. Here’s my list:

#1 - Wordpress - Blog/CMS
Pretty much the last word in blog software. You can be up and running in minutes. Lots and lots of pre-built themes and very easy to customize. With the advent of “pages” in Wordpress, expensive proprietary CMS systems seem kind of…quaint. The plug-in system is really neato and there are hundreds of available plug-ins.

#2 - Trac - Issue Tracking and Documentation
Trac uses Python, but I’m not holding that against it. Probably the best all-around issue-tracking and software documentation setup there is. Hooks directly into Subversion and has lots of other highly useful features.

#3 - phpBB - Discussion Forums
phpBB has been around for a long time and has grown up considerably over the years. The latest version has a really nice templating system. Plug-ins and themes abound and the installation is a snap.

#4 - Gallery - Image Archive
Feature-packed, easy to use and highly extensible, Gallery is as good as it gets for displaying large numbers of images in a useful way. I used to do a lot of sites for photographers, and Gallery was often a very good solution.

#5 - MediaWiki - Wiki
This is the package that powers Wikipedia, so I guess you could say it has a fairly good sized user base. Pretty much the gold standard for Wiki systems, it’s well known and well documented. It’s very well put together and can handle very high traffic quite efficiently.

#6 - eGroupWare - Groupware/Intranet
Why anyone would build their own intranet app when there’s eGroupWare is beyond me. There’s a ton of useful stuff right out of the box: webmail, timesheets, resource management (i.e. “Who has the freaking projector?”), threaded discussions, issue tracking, file sharing and a whole lot more. Writing your own extensions is a snap, too.

#7 - Sugar CRM - Customer Relationship Management
I’ll just go ahead and say it: CRM is very boring to me. For that reason, I’m very glad I’ll never have to write another CRM app again, because SugarCRM did right the first time. Companies that want CRM solutions also generally want enterprise support (whatever that means in the real world) which SugarCRM, Inc. is happy to provide.

#8 - Magento - eCommerce
eCommerce has long been a weak point for open source web applications. Before you say “osCommerce”, just…just shut up. If you haven’t implemented it, don’t talk to me about it. I have. It causes a burning sensation and leaves permanent scars. Magneto, though not even out of beta, is poised to shake things up quite a bit. It uses my very favorite framework and has a very nice set of features, even at this early stage.

WAIT, THERE’S MORE!

#9 - OpenAds - Ad Server
After I made my carefully crafted list of 8 apps, I realized there’s another important one I left out. OpenAds is a really nice ad serving app, capable of running some pretty complex campaigns with multiple clients. The admin tools are really awesome and there’s a very large community of people that use it if you get stuck.

“But wait! There are other great web apps that aren’t on your list!” Yes. I know. There’s even a few prominent ones that didn’t make the list. Here’s a few with explanations:

Drupal and Joomla - Both are indeed solid, well-written applications. They fail the “do one thing well” test, however. They both try to be all things to all people, though, and as a result they don’t do any one thing in particular very well. Both have an extremely high entry barrier for new developers. I also think they both have stupid names that don’t mean anything.

PHPNuke - Really? Are people still using that pig? Granted, I haven’t used it in a while myself, but from the looks of it, not a lot has changed. While it does have a lot of customization options, it’s a usability train wreck when it comes out of the box. By the time you’ve customized it back into something usable, you might as well have started from scratch. The back end code is (or at least was) a mess.

And there you have it. Commence the strongly worded comments about why the list should have X and shouldn’t have Y.


Posted in Updates | 5 Comments »

Google Blackout?

October 4th, 2007 by Jaybill McCarthy

countdown.PNGSomeone recently pointed me to the rather ominous sounding Google Blackout. The site has a black background and huge white numbers that count down. Some quick math reveals that the number is what appears to be the number of seconds until January 1st, 2008.

What’s also curious is that if you turn off JavaScript and refresh the page, the countdown is replaced with “37* 25′ 38″, -122* 5′ 57″, which would appear to be GPS coordinates. Coordinates for what, you ask? You guessed it: Google Headquarters.

A WHOIS comes up empty. It’s private registered through Dreamhost.

I did notice that the default RSS feed for the page seems to be pointing at http://feeds.technorati.com/search/Google, but I doubt highly that Technorati has anything to do with it.

So…what is this? A cheap P.R. stunt? Some crazy-ass A.R.G? Terrorism? Who knows? I’ll update if I figure anything else out.


Posted in Updates, arg, google, google blackout | 1 Comment »

WordTube HTML

September 16th, 2007 by Jaybill McCarthy

This is where the information about WordTube HTML will go.


Posted in Updates | No Comments »

Alpaca Finder

May 16th, 2007 by Jaybill McCarthy


Posted in Updates | 3 Comments »

‘Tag Cloud’ plugin for Smarty

May 4th, 2007 by Jaybill McCarthy

Here’s a tag cloud plugin for Smarty.

Download it here:

tag_cloud.zip

Here’s how it works:

  1. Place the ‘function.tag_cloud.php’ file included in the distribution in your smarty plugins directory.
  2. In your php script, do something like this:
    $tags['horse'] = 22;
    $tags['cow'] = 12;
    $tags['chicken'] = 30;
    $tags['goat'] = 23;
    $smarty->assign(’TagArray’,$tag);
    $smarty->display(’tag-cloud.tpl’);
  3. Then in your template (’tag-cloud.tpl’ , in this case.) simply use the {tag_cloud} tag, like so:
    {tag_cloud tags=$TagArray base_url='search.php?q='}

The script will take the following parameters:

  • tags (required) - the tags and the totals for each tag - associative array
  • base_url (required) - the base url to which the tag will be appended - string
  • min_font_size (optional) - minimum font size (default 12) - integer
  • max_font_size (optional) - maximum font size (default 30) - integer
  • id (optional) - css id (default ‘tag_cloud’) - string
  • class (optional) - css class (default ‘tag_cloud’) - string

I got the basic code for this from this really great tutorial over at scriptplayground.


Posted in Updates | No Comments »

Smarty Plugins

May 4th, 2007 by Jaybill McCarthy


Posted in Updates | No Comments »

What’s Wrong With This Picture?

May 1st, 2007 by Jaybill McCarthy

Posted in Updates | No Comments »

Contact

April 15th, 2007 by Jaybill McCarthy

I can be reached via email or Google Talk at jaybill [at] gmail [dot] com

Feel free to drop me a line!

If you’re looking to connect professionally, I’m on LinkedIn:

View Jaybill McCarthy's profile on LinkedIn


Posted in Updates | Comments Off

« Previous Entries