My Tumblr Blog
A CMS? A custom CMS? I just need a website.
Fri, 27 Jan 2012 16:06:45 -0500So what is a CMS? CMS stands for content management system. When thinking about creating a website, choosing a CMS is very important. Not everyone is a software engineer and knows how to code up websites. There are a lot of tools on the internet which engineers have built to allow users to write information, this information is then turned into “website code” and then a website is created from that generated code. This tool is referred to as the CMS.
There are a lot of prebuilt CMS solutions out there, or you can have an engineer build you a custom CMS, molded to fit your needs. This is a very hard decision to make, choosing between a custom and prebuilt CMS. This decision should be made with the sole purpose for creating your website. If your going to choose a prebuilt CMS you need to fit into the following buckets.
1. Content (Blogs, News, Text based data)
2. E-commerce (Online stores, Auctions)
3. A little bit of both of the above with slight more flexibility.
Highlight’s of a CMS: Efficiency, Community, Upkeep
Some Popular CMS solutions for your bucket:
( Note that these suggestion are all written in PHP, a popular server programming language, which is one of the most commonly used in the world next to java)
If your in the Content bucket, then you’ll fit perfectly into Wordpress. Wordpress is a out of the box solution, that is free to download and install on top which ever server you will be hosting your website from. Wordpress usually comes with free out of the box themes and you can be up and running within seconds. Most of the time these themes are not as great so you might end up either paying for a theme or have a engineer develop a custom one for you. Wordpress is the most commonly used CMS in the world. If you can use Microsoft word, you will be able to use Wordpress. The learning curve is very small for Wordpress and it contributes to the reason why its at the top spot.
If you’re in the E-commerce bucket, then you’ll fit perfectly with Magento. Magento offers great tools for managing your products and your inventory. It is the best tool on the market for managing an online store. But most of the time, just managing a store isn’t enough, you need to be able to manage content and build custom features on top of the way the store works.
If your in the third bucket, you’ll fit perfectly with Expression Engine. Expression engine is a paid CMS. Expression engine comes with both content and e-commerce solution plugins bundled in. With a prebuilt CMS you are bound to what the CMS does. Most of the time it is very hard for developers to build on top of these products. Most state of the art CMS solution like the ones above, give a feature called (plugins) this allows for the community members to build extensions to the CMS to added additional functionality. This additional function however is still limited to the general audience and might not have every feature you wish to have.
Prebuilt CMS are usually “open source”, which basically means the code to make the CMS is released to the public, this allows for the community of developers to upgrade and built better feature and keep improving and building on top of the CMS.
So wow, you might be saying, why would I ever need a Custom CMS if there are already so many solution for my needs already made. Most of the time that’s all you need is a prebuilt CMS. All of the CMS solutions one can have an engineer try to build on top of, but because they where initially made for the “general” audience, most of the time the plugins is not as efficient or as custom as it could have been.
Custom CMS solution’s is for project out of the box that doesn’t really fit into the general use case of a prebuilt CMS. A custom CMS is used when one wants his/her website to be very defined to their organization. It is created for just what you need and not built with a million and one features.
With a custom CMS, it is usually mush more expensive than a prebuilt solution. Also because there isn’t a community for a custom CMS like a prebuilt, a lot for the feature cant simply just be added within seconds like a prebuilt CMS. Also because of this your CMS is not open source you have no community updating your CMS feature sets like a prebuilt CMS.
Most of the top fortune 500 companies use a custom CMS, they don’t want to “look like the rest”. Custom CMS allows for “custom” feature sets, defined to your needs. If you not in the top buckets, you cant use a prebuilt CMS. Your needs at that point are far greater.
So to paint a clear picture, lets use two use case study members and see why prebuilt or custom was their pick.
User 1 - John:
John is a well-established writer. He needs a website to be able to share his thoughts about his books and reach out to his readers and hear what they have to say.
John best bet, based on our buckets would be Wordpress. John pays an engineer for a custom designed and implements the site. He creates a blog and start receiving comments from his readers. John saved a lot of time and money and was up in about a week with everything he wanted to do online.
User 2 - Sara:
Sara is also a brand new writer. She needs a website like john to be able to share her thoughts about her book and reach out to her audience. Sara is a little bit more tech savvy than john and started creating digital eBooks which she wants to sell online and also allow her users to download right from her website. Sara also decides to use Wordpress. Sara pays johns designer friend to create her website and her website gets created within 2 weeks. Sara website however doesn’t have an online store yet and no downloadable feature. Sara decided to look for any community plugins to accomplish this with Wordpress. She finds a plugin to create a online store, it doesn’t look the way she wants it, and doesn’t function the exact way she intended. This custom secure downloadable book that allows for security locking on any file she uploads doesn’t have a plugin, she has to think about getting a engineer to build that custom, so she contacts a engineer and the engineer wont be able to build this because of the way files are stored in the Wordpress database the way she intended to have done. If this were a custom CMS project, this feature would have been built without any issues.
Usually speed and optimization is a huge factor when considering a custom solutions. Most wordpress sites reply heavily and alternative-caching mechanism to speed up website because of the amount of feature sets it needed to have to handle “every general situation”.
As stated above, the decision between choosing custom CMS and prebuilt CMS is really based on your website needs.
Sublime Text 2 and Nodejs
Thu, 26 Jan 2012 09:34:01 -0500Just found an amazing plugin for nodejs for my favorite editor sublime text 2, make sure you guys all check it out, come with a lots of autocomplete options, hopefully they upkeep it through all the new node js versions.
Node.js and ejs
Tue, 24 Jan 2012 09:11:26 -0500So I been working with node.js for about 3 months or so now on a new project and I started out use swig.js as my templating language.
Swigs syntax will be very familiar to you all if your used to using twig for php and especially python Django’s templating language where pretty much everyone got their ideas from.
{% extends "base_generic.html" %}{% block title %}{{ section.title }}{% endblock %} {% block content %}
You can do cool things with this style templating language, especially my favorite, filters
{{ story.headline|upper }}
The above will turn the dynamic value of that variable to all uppercase case letters. Cool eh? The only problem is that swig doesnt really come out the box for expressjs. I got it to work but it doesnt really play too nice, especially when it comes to development. Testing code is not so great when having to restart the application everytime when making html edits.
So Ive turned my energy to EJS. Which if you looked at my packages blog you can just require(‘ejs’) in your dependacies and add
app.set(‘view engine’, ‘ejs’);
to your app.configure(); function for expressjs. Now your all set and ready to use it right out of the box for expressjs. If you want to start playing around with ejs and see how cool it is, visit thier website and checkout the live editor at
It doesnt have all the cool features of the polished Django framework, but with cool features like the json live update, it really fit perfectly for my node.js app. It also is sooo micro compared to a lo templating t of other engines out there. Hope you guys check it out and let me know what you all think.
AuthorsAlley.com
Thu, 19 Jan 2012 11:28:53 -0500
Super excited to reveal that my Authors Alley project is now in beta! Show your support and sign up today for the free account. Please note im still working on the help docs and the advanced billing areas. Thanks for the support!
Node Package.json
Sun, 15 Jan 2012 17:15:18 -0500Node handles dependencies pretty cool, within your node application go ahead and add a file called packages.json
Once this file is created go ahead and paste this sample inside
{
“name”: “Sample Project”,
“version” : “1.0.0”,
“description”: “Need Dependancies”,
“author”: “Your Name”,
“dependencies”: {
“express”: “2.5.6”,
“express-mongoose”: “0.0.4”,
“swig”: “0.8.0”,
“socket.io”: “0.8.7”
},
“engine”: “node >= 0.4.12”
}
Now if you have npm installed with node, open your console to your in the app folder and type
npm install
By doing so, npm will install all the packages within the dependency list, for more info, check our the official npm site
Domain Names
Sun, 15 Jan 2012 08:45:03 -0500So the worst thing about a new project is picking what to call it. Well even that is easy compared to the time its going to take to get a domain name that you can actually register ! So make sure you all do that in reverse, find a good domain name, register it and then name you project.
My domain name hunts, if i get lucky usually take about a week or so, some have gotten almost a year to get right. All in all everyone has registered every common english name you can possible think of.
So a brand new cool tool I use is called domai.nr, a cool ajax search tool that gives me a cool list of shorthand domain names for my search, that are available. But my main domain search tool is domaintools whois search, which lets me know exactly the domain name im looking for is available or not. I do however wished it had some cool suggestion features. So last but not least a cool tool is godaddys domain auctions, a cool tool to grab domain names that people have dropped, soo awesome and soo cheap, definitely worth the time. If anyone has any other suggestions on domain name search tools, please let me know.
So of course as I was starting out I used Godaddy and Dreamhost to also be my registrar for domain names. This was fine when I was registering a couple of domain names, but it quickly got messy when I started getting more and more clients because its crazy to manage domains. So I took an investment and got a Enom account. Then i transferred all my domains to enom and now I can manage all them in one place. The coolest thing about enom is there api which you can use to check expire dates and search for new domains and many more cool uses.
Asana
Thu, 12 Jan 2012 22:50:38 -0500![]()
So its been about a month now and I am addicted to asana project manager. If you guys havent tried it out yet definitely look into it.
My life is basically composed of millions of projects. Some personal most are for my business and some are just life projects. After using asana everything is so much simpler and I can spend more time doign what I need to do, rather than spend it trying to figure out how to managing my time.
Check out their into video to get a peek into the awesomeness.
Adwords Api
Thu, 05 Jan 2012 22:56:58 -0500
So I been messing around with the adwords api today, looks like im going to have to build a nice php5 codeigniter wrapper for this one too. What a mess, who wrote this sample code for google anyway? Garbage!!!!
So come to find out reading the tearms and conditions google has a Required Minimum Functionality.
So what that means is this : If you using the api to build a client you must make sure the app can do all the list of items google requires you to have.
http://code.google.com/apis/adwords/docs/requirements.html
Check out that list, i can count over 20. Who the hell wants to make sure a user can do all of that?
I sure dont, all i want to to grab some specific data and display is a dashboard. Why the hell would i need to satisfy the rest of this crap? Well reading the doc, if my app simply just is going to be a reporting only app all I need to do it make sure that I show the following:
A level of the AdWords hierarchy means one of Account (R.10-R.100), Campaign (R.110-R.246), Ad Group (R.250-R.346), Ad (R.350-R.440) or Keyword (R.450-R.560)
Well ok fine.. I guess it not all that bad then.. I was going to show that anyway.. Thank god im not building any management tools!
Codeigniter Google Analytics Library
Wed, 04 Jan 2012 22:49:00 -0500So another day has gone and today was spent creating a codeigniter google analytics class. I started by going to google and downloading some client libraries.
http://code.google.com/apis/analytics/docs/gdata/v3/gdataLibraries.html
Which by the way google, the library is horrible.
So did some hunting around the web and found this
https://github.com/ronan-gloo/Codeigniter-Google-Analytics-library
A outdated codeigniter library. So with a little tweaking I got it to work for codeigniter 2.0 I havent posted the class on gist yet because im still going through it and getting it to a much better state before releasing the code. So look out.
Once I get this wrapped up I might be looking at the adwords api next. Goal is to make an awesome customized analytics dashboard for clients.
Here is the class ive adjusted for ci 2.0
https://github.com/chonthu/Codeigniter-Google-Analytics-Class
Hello World
Tue, 03 Jan 2012 22:48:26 -0500So starting today I decided to start keeping track of my daily thoughts and contributions to my community, so what better way than a personal tech blog.
So if you all dont know who I am, well, my name is Nithin Meppurathu. Im a dude, 25 years old currently and i live in the greatest city ever, New York!
I am a full time web developer, and freelancer and owner of my company Nitmedia Web Studio Inc. I am happily engaged to the love of my life Jessy.
So more of the tech me. I am knee deep in php every day, full time senior developer for resolute digital, a media company in new york near penn station. Recently worked at a style blog, StyleCaster.com and been in the business for about 5 years.
My favorite framework to work in php is codeigniter, why, because its simple and powerful.
I really love rails but since i dont use it very often i tend to stay in the php community more.
So my new endeavor is laravelphp a new php5.3 framework that i recently discovered through the php community. I am loving the gist of it and currently working on some cool advancements to the framework I think everyone will like.
On the db side, 90% of the time its mysql but I love me some mongodb. As I keep writing everyone will get a hint of all my favorites and what I love about programming and being a developer.
so to wrap up.. Hello world..
