Creating a backend before a frontend

May 4th, 2010

I’ve started to brainstorm database and code structure for my Content Management System.

I do think I’m going to use Smarty, which will take a lot of the onus off of me for templates, and will also help to separate the different layers nicely into Database, Logic, and Presentation, like a proper Multi-tier Architecture is supposed to be.

I’m going to use ADODB Lite, because people use databases other than MySQL.

Everything about the system will be a module, with the base code in place to basically call in modules.

I like WordPress’ Hooks and will probably implement something similar for rapid plugin development.

Schedule

I finish school (Tuesday and Wednesday nights until 10) May 12th, so I anticipate being able to start working on this about 10 hours a week after that.

Goal 1: Be able to call in modules, using the database to see which ones are active.

Goal 2: Write an Authentication module, which will handle Administration Users / Groups, as well as people that register as site users.

Goal 3: Once I can log into a back end, I need to be able to add content.

I have to make sure throughout that I maintain the ability to re-use all core system code throughout all modules, and I NEED to be VERY DILIGENT in documentation. Something I’m not very good about at this time.

I pledge to myself that every single file , class, and function will be thoroughly documented in my system for future readability.

Custom Widgets for relevant and targeted information for your readers

May 3rd, 2010

Travis Campbell of MarketingProfessor.com posted a great Youtube video about displaying custom content in your sidebar depending on what page or post your visitor is viewing. The Custom Widgets plugin will automatically display content depending on the page or post.

I found it as part of ProBlogger’s 10 great tips from their readers. I’m still going through the rest of the list, and will probably type up another couple of them over here if for no other reason than to have them in my archives for easy finding.

Thanks Travis!

Collabtive is a kickass project manager

April 30th, 2010

If anyone needs an absolutely killer collaboration web application, try Collabtive. I installed it on my server a while back, and have been blown away by the robustness of it compared to the shitty job tracking system my full time work uses. Collabtive tracks projects, tasklists, messages, and all with a smile. The user functionality allows you to add as many users as you want, and add them only to specific projects or roles. For instance, I add all my clients to the system, and tell them that instead of sending emails, they have to log in there, and add any tasks to the system that need doing. They only see the projects that I assign to them, and every single one has found it wonderfully simple to use. This way, I don’t have to worry about looking back a month to find the email they sent about adding that widget to the web site.

I work with a few people on a regular basis that I have added to the system. This way, when I get a new client and add them to the system, I add the contractors that I work with that will be associated to the job. When I assign tasks, they get an email and can log in to see what’s going on.

Mostly coded in Ajax, current release is 0.6.3, but feels more like 0.9.

Really killer app. Give it a shot if you need something along those lines.

My SEO Experiment

April 30th, 2010

I created a site last week, and submitted the URL, sitemap, and other information to Google, Yahoo, and Bing yesterday. The point of the site was to see if by doing a few things, I could get my site listed well in the big three search engines, and hopefully even get on the front page for several of the pages on the site.

Since it’s an experiment, I’m going to collect and aggregate date before drawing conclusions, but I want to start documenting the time at which I do certain things on the site while it goes on, so that I can remind myself to update the site with new content every day, in an effort to get the site ranked higher.

This is not a black hat SEO project, but rather (I think) a different method of getting traffic to a site. It will remain to be seen what the search engines think about it; I haven’t been hit by any of the spiders yet, so I’m still waiting to see what they think.

I’m probably going to collect data, and hopefully use it to educate myself and others on traffic boosting methods that are not evil.

Here’s hoping!

Build out an existing CMS, or create my own?

April 29th, 2010

There’s a lot to be said for Open Source. To be able to deploy a website on a CMS like WordPress or CMS Made Simple is pretty awesome. Even better, if you have a paying client that will allow you to use one of them to build their website on top of one of these great systems.

Something on my mind lately though is the fact that I’m trying to grow as a programmer, and one of the things I feel an experienced programmer needs to have is software he or she has created. Sort of like designers with their portfolios, good programmers should be able to call upon their own library, in more ways than I call on some generic stylesheets I’ve created in the past in order to build sites faster.

I started to create a CMS a couple of months ago, and paying projects got in the way. However, at this time I’m trying to free myself up, dust it off, and continue with it. Right now, it feels like something too big for me. On the other hand, I’m trying to grow, right? Shouldn’t it feel bigger than what I can do, so that I go out and learn what I need to know to make this happen?

Creating Pingbacks with PHP

April 28th, 2010

Found this great post about creating the functionality for XMLRPC pingbacks using PHP.

It boils down the functionality into very easy to read things (things that I can understand anyway)

Thanks Eric!

My Experience with Wikipedia, and School

February 17th, 2010

I dropped out of college when I found that I was not ready (read: too lazy) to finish a degree the third try around. I got a job, and ended up working my way around New Jersey and New York until I found myself in the enviable position of opening the Interactive Team at Fort Group, Inc. (note: please don’t judge the design of that site. We know it’s awful, and are working to fix it.)

Anyway, I decided to finish a college degree so I could say I had the piece of paper. I’m attending the County College of Morris, and pursuing a Associate of Science in Business Administration. I had started (10 years ago) a Computer Science Degree, but I find that college professors in that field teach very little in the way of current programming skills, focusing more on theory. This is fine, but my theory is solidly grounded and I don’t need any more. If I find I do, I research what I need on the Internet and have had little trouble over the past 10 years implementing whatever it is I need to do. Moving on.

In the library, I attended a session on how to do research in the library. I can see why they would do it; there’s tools the reference librarian giving the lecture showed us that would not have been apparent to someone just walking in to do some research. However, it struck me as interesting how vehemently opposed she was to the idea of doing research on the Internet. Her objection to it partly came as no surprise; any 12 year old with a WordPress account can call themselves an author, publisher, architect, or whatever catches their fancy on a day-to-day basis. On the other hand, she did single out Wikipedia as a “completely unreliable source” of information. Her reason being that “anyone can edit Wikipedia.”

This is a belief I find over and over again, and I must point out a couple of things.

  • Wikipedia is free – You are not paying for Wikipedia. They are funded by their parent organization, Wikimedia. Most any other reference material online is available on a pay-per-use basis; if I need a quick article on Pablo Picasso, I’m not going to pay for something if I can find information for free.
  • Wikipedia is controlled – If an article gets a lot of edits, Wikipedia freezes the article, make sure everything is correct in it, and then will sometimes semi-protect it from edits by any anonymous user. Wikipedia errors are generally corrected within minutes by an administrator.
  • Students are not inherently stupid – This is what I find most frustrating about going back to school. On the main page of Wikipedia’s English Site, you will find the words “the free encyclopedia that anyone can edit.”

Why do teachers think that if a student sees free information on the Internet, they believe it must be correct? I am not an imbecile; part of writing a research paper is making sure that the sources I find are written by authors that are credible. If I find an article on the Internet, it might enhance or prove my point, but if I have no idea where it came from or who wrote it, I would not use it. This goes for Wikipedia; as cool as I think the concept is, I don’t know who is editing it.

This is not to say I’m going to speak out against teachers that oppose Wikipedia; I just think that pointing out the obvious to students is enough. The folks over at Wikipedia put a lot of time in on that project, and don’t deserve to be ridiculed by self-titled experts, (which everyone on the Internet is anyway) just because their efforts are sometimes inhibited by a 9 year old that thinks it would be funny to vandalize George Washington’s entry in the site.

County College of Morris pays numerous publishers for the use of articles online, most of which are not otherwise accessible unless you have a subscription. This is a good thing; it allows students (most of which have little in the way of means) to do their research without having to pay for it.

All in all, I found her lecture rather insulting. To say that the only people that are allowed to have a say in the matter of literature (the class we were researching for) should have doctorates in the field is pure idiocy. I happen to have my own opinions on the materials that we read, and they often do not intersect those of our instructor. However, I back up my points with references to the material, and he does concede that my opinions are valid.

All in all, I suppose I don’t really have much use for any classes that aren’t teaching me about business administration. The social convention is to get a degree. The social expectation is that you’ll get paid better. The fact that my motivation for getting a degree is money should tell you something. The fact that I have to go through classes that mean nothing to me and I will take nothing away from is part of the not-very-enjoyable process.

tl;dr: Students know better than to exclusively research with Wikipedia, and Teachers should respect the body of work it represents a little more. In the very least, it represents a social phenomenon: that many people getting together to build something as structured as Wikipedia is pretty remarkable. One last thing: Britannica has errors too.

Project Management

February 15th, 2010

Since for some reason I can’t find a good project management program written in PHP, I’m going with a Google Spreadsheet, shared with whoever is on the project with me. Archaic, yes. But I need something so that I can be organized.

Resuming development on mpCMS

February 15th, 2010

I use a number of open source development things. CMS Made Simple, WordPress, and a couple of others.

CMS Made Simple is excellent for deploying a fast website, landing page, personalized URL, or otherwise easy project.

WordPress simply can’t be beat for blogging.

As a developer, I want more. I had started my own CMS, but I’m dusting it off and I’m going to try and make some progress.

HTML Tidy

February 12th, 2010

Today is apparently Web Developer Tools day.

Ever copy and paste from Work or Outlook, put it online, and have someone call you screaming about “weird characters”?

This is because Microsoft like to “help” you output nice text. Down side is, it comes along with a copy and paste.

Clean that bad markup with HTML Tidy! Paste in a URL, copy and paste text, or upload a file, and outputs neatly structured HTML goodness.