<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6388607847937624419</id><updated>2011-07-29T01:18:24.396-07:00</updated><category term='productivity development thunderbird outlook google calendar'/><category term='amazons3 s3 serverbackup sysadmin'/><category term='ecommerce'/><category term='web20'/><title type='text'>Web 2.0 and E-Commerce Ponderings</title><subtitle type='html'>Check me out on twitter:
http://twitter.com/drupalninja/</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-8660173149522914539</id><published>2009-04-05T20:22:00.000-07:00</published><updated>2009-04-05T20:25:23.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity development thunderbird outlook google calendar'/><title type='text'>Mozilla + Google Calendar Solution For Non-PC Users</title><content type='html'>See my blog post on the awesomeness of Thunderbird Calendar at my mediacurrent blog here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mediacurrent.com/blogs/mozilla-google-calendar-solution-non-pc-users"&gt;http://www.mediacurrent.com/blogs/mozilla-google-calendar-solution-non-pc-users&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An excerpt:&lt;br /&gt;&lt;blockquote&gt;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 &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Entourage"&gt;Mac's Entourage&lt;/a&gt; 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.&lt;br /&gt;&lt;em&gt;In brief here are the steps below:&lt;/em&gt;&lt;/blockquote&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-8660173149522914539?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/8660173149522914539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=8660173149522914539' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/8660173149522914539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/8660173149522914539'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2009/04/mozilla-google-calendar-solution-for.html' title='Mozilla + Google Calendar Solution For Non-PC Users'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-6441900021494956110</id><published>2008-12-23T19:04:00.000-08:00</published><updated>2008-12-23T19:36:19.313-08:00</updated><title type='text'>Why I choose Drupal</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;Here are my top 5 reasons why I use Drupal for web sites:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Drupal is modular &amp;amp; extensible&lt;/li&gt;&lt;li&gt;Drupal is open source&lt;/li&gt;&lt;li&gt;Drupal is theme-able&lt;/li&gt;&lt;li&gt;Drupal is easy to learn and setup&lt;/li&gt;&lt;li&gt;Drupal solves many of the problems in the website "domain"&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;1. Drupal is modular &amp;amp; extensible&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Drupal is open source&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Drupal is theme-able&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. Drupal is easy to learn and setup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Drupal solves many of the problems in the website "domain"&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Have a comment/question? Agree/disagree? Drop me a line!&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-6441900021494956110?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/6441900021494956110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=6441900021494956110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6441900021494956110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6441900021494956110'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/12/why-i-choose-drupal.html' title='Why I choose Drupal'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-2648175806077530270</id><published>2008-11-11T16:47:00.000-08:00</published><updated>2008-11-11T16:55:36.433-08:00</updated><title type='text'>My web application wins an award! - Yay!</title><content type='html'>&lt;a href="http://www.ec3.org/awards.php"&gt;http://www.ec3.org/awards.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Innovation in the use of social networking to enhance citizen involvement in government&lt;br /&gt;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.&lt;br /&gt;Winner&lt;br /&gt;&lt;br /&gt;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."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://governor.arkansas.gov/"&gt;http://governor.arkansas.gov/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-2648175806077530270?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/2648175806077530270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=2648175806077530270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/2648175806077530270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/2648175806077530270'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/11/my-web-application-wins-award-yay.html' title='My web application wins an award! - Yay!'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-1932759271091292832</id><published>2008-10-25T07:28:00.001-07:00</published><updated>2008-10-25T07:38:11.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amazons3 s3 serverbackup sysadmin'/><title type='text'>Server Backups to Amazon s3</title><content type='html'>I was able to find this article recently: http://www.timlinden.com/blog/server/backup-mysql-amazon-s3/&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;1. subversion repository&lt;br /&gt;2. user files (such as drupal files directory - almost all our sites are drupal)&lt;br /&gt;3. databases&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;One other thing, the "s3 Manager" tool is great for viewing files in your Amazon account and it's free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-1932759271091292832?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/1932759271091292832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=1932759271091292832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/1932759271091292832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/1932759271091292832'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/10/server-backups-to-amazon-s3.html' title='Server Backups to Amazon s3'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-6878038079656188645</id><published>2008-07-23T17:33:00.000-07:00</published><updated>2008-07-23T17:36:41.380-07:00</updated><title type='text'>Newly re-modelled website</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-6878038079656188645?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/6878038079656188645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=6878038079656188645' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6878038079656188645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6878038079656188645'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/07/newly-re-modelled-website.html' title='Newly re-modelled website'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-6269617776811111902</id><published>2008-05-24T17:47:00.001-07:00</published><updated>2008-05-24T17:48:26.942-07:00</updated><title type='text'>My first Open Source Drupal Module</title><content type='html'>It's here, finally!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://drupal.org/project/role_subscription"&gt;http://drupal.org/project/role_subscription&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-6269617776811111902?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/6269617776811111902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=6269617776811111902' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6269617776811111902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/6269617776811111902'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/05/my-first-open-source-drupal-module.html' title='My first Open Source Drupal Module'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-872763519996598102</id><published>2008-04-24T20:06:00.000-07:00</published><updated>2008-04-24T20:10:48.956-07:00</updated><title type='text'>Launching my first open source project</title><content type='html'>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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-872763519996598102?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/872763519996598102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=872763519996598102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/872763519996598102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/872763519996598102'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/04/launching-my-first-open-source-project.html' title='Launching my first open source project'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-4752888553019702544</id><published>2008-04-15T16:54:00.001-07:00</published><updated>2008-04-15T17:06:43.176-07:00</updated><title type='text'>My First Open Source Code Contribution</title><content type='html'>Ah, my first open source code contribution. I specify "code" contribution bc I guess answering some questions in forums has it's merit. I usually take more than I give to be honest.&lt;br /&gt;&lt;br /&gt;Anyways, I made my first code contribution today to my first love, that is drupal. I submitted a tiny patch that might even be rejected to the currency module on drupal. I was happy that I figured out how to checkout the module from the drupal cvs repository using eclipse (I might have to post later on how much I love eclipse), then I made a small change, created a patch using eclipse (thank you!) and posted the patch back to the project on the module project page. To some this is probably trivial, but to me this is a milestone.&lt;br /&gt;&lt;br /&gt;I didn't get the point of CVS for a long time. I didn't start using it until I started working at my full time job in Little Rock. I used it for ab a year and then we made the switch to SVN which is even more marvelous.&lt;br /&gt;&lt;br /&gt;Even after using CVS for a year I still really had no idea how to set up my own CVS repository on our dedicated server, but with a little help from our hosting company and some research, I fumbled my way through it and figured out how to checkout and commit changes using eclipse, yay! That was a massive milestone. I also created a deploy script that would deploy projects from CVS from the command line making deployments much easier, yay again. Another milestone!&lt;br /&gt;&lt;br /&gt;OK so I haven't exactly figured out how to set up SVN which I think is better, but I'll leave that for another day.&lt;br /&gt;&lt;br /&gt;Today's topic is contributing to open source. I actually figured out how to create a patch and post it back to the project. I'm thrilled. I feel so alive! OK, that feeling is bound to wear off. I suppose it's similar to the first time I outsourced overseas. I couldn't sleep I was so excited! I've done it several times since and not been really thrilled with the results (a lot of miscommunication, over-promising and under-delivering).  Anyways, maybe it will be like that.&lt;br /&gt;&lt;br /&gt;I really like working on projects with other developers tho. With Lynxmark, I'm a one man show so I don't get to work alongside other programmers at all really. Only a couple times, I've done it and I hadn't had CVS set up at that time.&lt;br /&gt;&lt;br /&gt;Open sourcing things seems to have quite the alure to me. I envision creating CVS projects on drupal's sites for things I'm working on in our "e-commerce generic solutions" (see my other blog posts) and using the community to test and make those modules better. Not sure if it will work out or not. I just love how module drupal is and the fact that you have a large community who knows the "drupal" way to do things so that you can semi-be-on-the-same-page with other developers. I don't know, I might try it out, we'll see. I just thing that code with more eyes on has a better chance of survival in this world where code routinely finds itself extinct.&lt;br /&gt;&lt;br /&gt;Any thoughts out there on the subject? (I'm pretending like someone reads my blog...someday Jay...someday...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-4752888553019702544?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/4752888553019702544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=4752888553019702544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/4752888553019702544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/4752888553019702544'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/04/my-first-open-source-code-contribution.html' title='My First Open Source Code Contribution'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-8349029817520601454</id><published>2008-04-03T20:00:00.000-07:00</published><updated>2008-04-03T20:30:16.535-07:00</updated><title type='text'>Drupal as a software platform - falling in love all over again</title><content type='html'>I've been racking my brain for the last few years to find a platform, framework or programming language to throw my weight behind. I love e-commerce and I want whatever framework or tools that are going to empower me to get the job done fast.&lt;br /&gt;&lt;br /&gt;I've been programming in PHP for a while and that's the language I'm most familiar with. It's also frustrating bc I don't think it has plenty of warts such as a fragmented community, no killer framework and lacks some cooler features that other languages has such as blocks in ruby for example. Anyways I've posted before ab how I've flirted with the idea of moving to Django or Ruby on Rails, 2 really popular frameworks that save time by creating a "domain" specific framework dealing primarily only with web applications. I still have those 2 on my short list of "maybe someday" but in the mean time I've done all my work in Code Igniter or Drupal. I've used drupal for all our client CMS websites and Code Igniter for custom PHP development thus far only at my day job.&lt;br /&gt;&lt;br /&gt;I tried unsuccessfully to create our generic listing software idea using all custom PHP with Code Igniter until finally I said enough's enough. And so here we arrive at the topic of this blog, "falling in love with Drupal all over again" -- i.e. rediscovering Drupal as not just a CMS platform, but a web platform. I have discovered that I can do about anything I want to do with Drupal now. Partly bc it's features have grown in version 5/6 since I first started playing with v 4.6 a few years ago.&lt;br /&gt;&lt;br /&gt;Why Drupal? First and foremost drupal is great for any web app that is also a website bc you have all your website features, content management, blocks, layouts, custom content types, etc. - wonderful features for setting up a web site full of content.&lt;br /&gt;&lt;br /&gt;Drupal also has a built in user system, has an amazingly powerful theming engine, is modular, extendable, and has a solid framework/platform to build on. You can create modules that do just ab anything. You can extend content or alter the way different parts of the drupal engine function without "hacking" which is incredibly important. The biggest shift in thinking for me has been when I learned how to do what I needed todo within the "drupal" way of doing things with no longer relying on hacking system files or hacking modules, etc. which always causes maintenance problems down the line. For drupal or any platform/framework to be viable long-term, it has to be extendable without hacks, I can't stress that enough.&lt;br /&gt;&lt;br /&gt;With drupal modules you can drop in any "section" of code you want. It can pull from a separate database, it can do anything you want and spill it out within the layout. Sure you can use existing drupal functionality or you can ignore most of it and just use PHP to spit out what you want. I'm more and more using the drupal API available to me and doing less just anything goes PHP.&lt;br /&gt;&lt;br /&gt;Here's why I've gone back to rethinking how to do web-apps in drupal. I have learned how time consuming custom code is, especially when you're doing it part-time. It absolutely takes forever. I think modern frameworks like Ruby on Rails can possibly really reduce the time of development but I don't think even RoR can beat how quickly you can put up webapps in Drupal. And the fact that everything is plugged in with modules means that you have more stability, less code, more maintainable code and less headaches, errors etc and much more can be done within the drupal interface rather than with code. This is huge.&lt;br /&gt;&lt;br /&gt;And so we are now using drupal for our listing engine. It uses mostly existing drupal modules, and the only real custom code is for search forms and for the subscription module, everything else is existing drupal code or theme files. That means our solution has drastically less code. Instead of thousands of lines of code, it becomes maybe hundreds of custom code. This is so important in being able to support the application in the lifetime of the app.&lt;br /&gt;&lt;br /&gt;I am now rethinking just ab every "idea" we have on our list for the next e-commerce solution some could easily fit within the drupal platform, some maybe are a stretch. I am, however, thrilled in what drupal can do for our little company, especially for myself being a part-time developer/entrepreneur with not a lot of time on my hands.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-8349029817520601454?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/8349029817520601454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=8349029817520601454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/8349029817520601454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/8349029817520601454'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2008/04/drupal-as-software-platform-falling-in.html' title='Drupal as a software platform - falling in love all over again'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-5868650702459532747</id><published>2007-09-17T18:44:00.000-07:00</published><updated>2007-09-17T19:47:49.905-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web20'/><category scheme='http://www.blogger.com/atom/ns#' term='ecommerce'/><title type='text'>Generic Solutions and Subscription Apps - The Web 2.0 Money-makers</title><content type='html'>I am a fan of generic solutions. I define generic solutions as solutions that can be re-purposed and re-used across a whole organization. That might be internally or externally.&lt;br /&gt;&lt;br /&gt;I like generic solutions when applied to e-commerce especially because it means I can make more money with less work. Now when creating a generic solution as a web developer that means I will have to think more abstract. This is not easy for many of us details people who have trouble thinking abstractly. But the payoff is big.&lt;br /&gt;&lt;br /&gt;I also love me some subscription apps. I am speaking of those web 2.0 tools out there that are modeled off of basecamp. Fresh, clean, simple solutions with easy pricing. We at Lynxmark use a couple of solutions like this, namely pbwiki.com and mojohelpdesk.com.&lt;br /&gt;&lt;br /&gt;In the olden days, say 1995 you bought your software and installed it on your server and then had to upgrade it periodically if it even offered upgrades.&lt;br /&gt;&lt;br /&gt;In today's web you sign up in 2 minutes and you're setting it up immediately. Nothing to install and you have the whole support team right there. These are the kind of apps that make a ton of money and these are the apps we want to build.&lt;br /&gt;&lt;br /&gt;Back to generic solutions. In the olden days (back to 1995) people thought of an idea to sell such and such widget or service on their website. Now savvy web businesses build online shopping carts (like shoppify.com) and freshbooks.com, etc. etc. A lot of money makers these days are the business to business solutions.&lt;br /&gt;&lt;br /&gt;These are the products we're trying to build at Lynxmark.com. We we got started we thought we would make a lot of money creating websites for people. We got good at making websites but even as great as our customers are the long term survival of most web businesses I think have to have a plan for making money outside of just making websites for people. It's a lot of work for usually a one time payment. Some more creative business models are addressing that much including maintenance contracts, support contracts, etc. but I like to go with the philosophy of E-Myth which champions the philosophy of making a business work for you. Instead of spending all my time creating and maintaining websites and web applications I'd much rather spend my time creating solutions which can stand on their own and make money. That's the direction we're going with Lynxmark.&lt;br /&gt;&lt;br /&gt;In conclusion, gentle web reader - generic good - work bad.&lt;br /&gt;&lt;br /&gt;I hope this little introduction gives you a feel as to where this blog is going. This is the underlying philosophy that will guide my ponderings. Thanks and come back!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-5868650702459532747?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/5868650702459532747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=5868650702459532747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/5868650702459532747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/5868650702459532747'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2007/09/generic-solutinos-and-subscription-apps.html' title='Generic Solutions and Subscription Apps - The Web 2.0 Money-makers'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6388607847937624419.post-5585527664156972446</id><published>2007-09-17T18:27:00.000-07:00</published><updated>2007-09-17T18:37:43.685-07:00</updated><title type='text'>Welcome to Jay's New Blog</title><content type='html'>Welcome to my new blog! Glad you have come. Please take a seat and get comfy. If you like web 2.0 you have come to the right place. If you like e-commerce and making money you have come to the right place. Let's ponder web 2.0 together, shall we?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6388607847937624419-5585527664156972446?l=web20ponderings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://web20ponderings.blogspot.com/feeds/5585527664156972446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6388607847937624419&amp;postID=5585527664156972446' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/5585527664156972446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6388607847937624419/posts/default/5585527664156972446'/><link rel='alternate' type='text/html' href='http://web20ponderings.blogspot.com/2007/09/welcome-to-jays-new-blog.html' title='Welcome to Jay&apos;s New Blog'/><author><name>Jay Callicott</name><uri>http://www.blogger.com/profile/02894239815256855794</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
