jay callicott

Check me out on twitter: http://twitter.com/drupalninja/

Sunday, April 5, 2009

Mozilla + Google Calendar Solution For Non-PC Users

See my blog post on the awesomeness of Thunderbird Calendar at my mediacurrent blog here:


An excerpt:
I recently stumbled upon a little known trick for getting your calendar to sync up with Outlook. I used to work for a web shop where all the managers had PCs and all the developers had Macs. Most of the Macs ran Thunderbird or Apple Mail and all the managers had Outlook. We tried Mac's Entourage for a while but found it could not integrate with Exchange Server. I remember being very annoyed that calendar invitations would come over as garbled emails, while the PC clients got nice little popup reminders. I often thought, couldn't Microsoft have an option to send a regular email for non-Outlook clients? Well now onto our little integration solution. I don't believe this solves the problem of integration with Exchange Server, but I think it does allow non-PC or non-Office users to accept, send and cancel calendar invitations.
In brief here are the steps below:

Tuesday, December 23, 2008

Why I choose Drupal

I am a confessed Drupal fanatic, and I often get asked why I use Drupal over some other platforms, so I thought I'd give a quick run down.

Here are my top 5 reasons why I use Drupal for web sites:
  1. Drupal is modular & extensible
  2. Drupal is open source
  3. Drupal is theme-able
  4. Drupal is easy to learn and setup
  5. Drupal solves many of the problems in the website "domain"
1. Drupal is modular & extensible

Drupal is powerful because everything is a module. Drupal has a lean system core in my opinion and everything else is modular. And modules are easy to build or extend. The Drupal community has a host of good modules available and those can been extended as well - without hacking! And that should always be the goal because if you hack code you are creating a maintentance nightmare for yourself (or your successor). Drupal is big on "hooks" which isn't unique to Drupal. Other CMS's have hooks, I just think Drupal's are better.

2. Drupal is open source

As mentioned in my last point, Drupal has hundreds (thousands?) of modules available in it's repository at http://drupal.org. I have contributed a couple that are still in development myself, CSS Rules and Role Subscription. The Drupal community is great at continually improving Drupal and it's modules as well as supporting those modules. And it's free!? Sometimes free is better than paid. I have done some Sharepoint development lately and I can tell you Microsoft doesn't help support much of it's software. And the places that do want to get paid.

3. Drupal is theme-able

The first thing I looked for a few years ago when I was looking for a CMS or framework was theme-ability (is that a word?). I looked at Joomla and Mambo and Blueshoes and some others and what turned me off to Mambo clones was that they were really ugly underneath. Wordpress is like that too. And this was 3 years ago so I suppose things can change but I thought the templating just wasn't flexible enough for me. Drupal let's you theme everything and with a great degree of granularity that I think would rival any competing system on this planet. You can override the theming of just about anything. It's quite amazing and straight forward in my opinion. And most themes are made with phptemplate which is just straight PHP, no need to learn a special theming language. And Drupal is very smart in giving the developer some sensible defaults in it's core CSS files. Just the bare minimum, but not too many styles that would get in the way of a themer in my opinion.

4. Drupal is easy to learn and setup

I also was drawn to Drupal quickly because I could set it up quick and easily and start adding my code immediately. Even if you don't buy into everything, if all you want is a CMS and want to hook in a module that just executes arbitrary PHP you can do that. With just a couple hooks you could have the module interact with Drupal without having to learn pages and pages of the Drupal API. The barrier to entry is low. And that's what I did at first. One of my first projects was a real estate website and I used Drupal and creating a module that displayed real estate listings. It didn't really hook into anything except it display the listings from within the layout and I found theming to be easy enough and the basic content management / menu management / configuration easy so in no time I had a very functional website.

5. Drupal solves many of the problems in the website "domain"

This might the most compelling reason for me at least. I don't use Code Igniter or Ruby on Rails for websites. I draw a distinction between web sites and web applications. Web applications require a lot of custom business logic that may or may not have anything in common with a typical public facing publishing website. To use one of these custom frameworks for a website in my opinion is making things too hard for yourself. Drupal has a built in user system, menu system, content management system, etc etc out of the box. All these things you have to code yourself. And some things are a real pain to code. Drupal allows the developer to do more theming and configuring and less actual coding. While that may be offensive to some hardcore coders but for me that is a god send.

We (Lynxmark) recently launched Ultimate Escape (http://ultimateescape.com) which is a good case study and illustrates this point. I needed a calendar, so should I code a calendar? No I integrated google's calendar which is a fine calendar - why reinvent the wheel? I needed to take credit cards. Would I want to code a payment engine? NOPE! I installed ubercart and could set up products quite easily, even was able to turn on recurring billing using Authorize's ARB service. Did I have to comb through the ARB API docs? Nope (tho I actually have). I needed a place to add videos. I found a module that allows you to add videos from a host of services, youtube, yahoo video, etc etc by just supplying the url. I added that as a CCK field (CCK is a great module for creating content types from within the Drupal CMS) and voila, we have an easy content type for adding subscription videos. I could go on but I think I have illustrated my point, Drupal makes things easy.

Have a comment/question? Agree/disagree? Drop me a line!

Tuesday, November 11, 2008

My web application wins an award! - Yay!


"Innovation in the use of social networking to enhance citizen involvement in government
Traditional government surveys its citizen for input though public hearings, town hall meetings and providing a period of time for the public to comment on proposed policy. The award in this category will go to the jurisdiction making the best use of social networking to collect and evaluate citizen input.

Gov. Mike Beebe’s Information Network of Arkansas encourages citizens to help craft a positive vision for their state. Arkansas.gov offers numerous online services and an e-newsroom with audio/video, podcasts, four different electronic newsletters, listservs and RSS feeds."


Saturday, October 25, 2008

Server Backups to Amazon s3

I was able to find this article recently: http://www.timlinden.com/blog/server/backup-mysql-amazon-s3/

and was quite pleased that it was so easy to create a job to backup server files to amazon s3. In ab an hour I was already backing up to s3. The way we do it is targeting the files that matter:

1. subversion repository
2. user files (such as drupal files directory - almost all our sites are drupal)
3. databases

Also targeting those 3 things really keeps things focused and keeps the backup sizes small. Now some servers have files all over the place. I think scripts/websites should all be in subversion. There shouldn't be anything that isn't in subversion and that keeps everything centralized even tho they may be scattered all over the server. In each project folder in the subversion repository you should have documentation as to where the file(s) are deployed. For many hosts like ourselvces we run all mysql databases so that is pretty simple. User submitted files can also lie in many different places. Thankfully since most of our sites run off of one drupal install we have a centralized place where we store those files.

The backup script does all 3 quite nicely. The only thing I have left to figure out is how to delete files that are older than a week. The s3 perl module is pretty easy to use, altho it means I have to dust off my perl skills. I was very pleased that it was so easy to install that module through the whm interface, neat stuff.

And so we have a remote backup system that we've been wanting for sometime. And Amazon s3 is incredibly stable, cheap and infinitly scalable -- now that's exciting.

One other thing, the "s3 Manager" tool is great for viewing files in your Amazon account and it's free.

Wednesday, July 23, 2008

Newly re-modelled website

So I didn't do too much at http://jay.callicott.name/, just spruced some things up. I think the site makes a lot more "sense" now that it has some direction.

One interesting note is that after my spring (summer?) cleaning I started getting spam on my contact form which was a bit odd so I finally have an excuse to try my one last hope for spam deterrent, the fancy new recaptcha plugin which is very easily enabled and looks great. Now unfortunately as many in the community well know the captcha has been defeated numerous times but this particular one seems to think it can out-duel spam so this will be a great test since I know that my contact form is getting spammed. I woud love to see recaptcha kick these bots out!

Saturday, May 24, 2008

My first Open Source Drupal Module

It's here, finally!


Really fumbling my way through CVS and everything to get it out there but it's out there and so I've begun a new era in my life. I am an open source contributor!

Thursday, April 24, 2008

Launching my first open source project

Well, it's kind of official. This is a short post, but basically I'm launching my first open source endeavor. A subscription e-commerce module for drupal. Armed with my new "Pro Drupal Development" book, I'm ready to take on the world. This module will rock. I've already got the beginning's of it worked out. The idea stemmed here: http://drupal.org/node/237538 and now development is underway. Basically it's a simple concept. The admin sets up subscriptions and the user pays for subscriptions and is thus granted user role(s) for his subscription. I use authorize.net as the backend payment engine and I use a lot of existing drupal modules to enforce the business logic for the roles that are granted. Voila! It should be a lovely module that helps myself and others build subscription drupal sites. Not particularly pay for access to such and such site, but pay to post content on such and such a site. Sound good? Let me hear from ya!

Web 2.0 and E-Commerce Ponderings

Check me out on twitter: http://twitter.com/drupalninja/

About Me

Drupal expert/consultant, PHP/MySQL Ninja, and entrepreneur - Working for Drupal shop Mediacurrent.com. Consulting services available.