Showing posts with label Magento. Show all posts
Showing posts with label Magento. Show all posts

Wednesday, 23 November 2016

Website Building in the New Millennium (Part 1/2)

Know what a Content Management Framework is? How about an Online Website Builder? Are they one and the same, or totally two different creatures?

A fair amount of confusion has been generated among laypersons (and even among techies!) as to what Content Management Frameworks and Online Website Builders are. And, for the purposes of the end product, they are pretty much similar. The end game is for a user to be able to maintain and update the content of a website, without the need for the user to know anything beyond how to type. Where the two differ, however, is the approach.

On to the comparisons!

Now before I get deeper into this, I want to make it clear that given a choice, I would rather not be using either a Content Management Framework or an Online Website Builder. Call me old-fashioned. I'm going to draw a few comparisons, but this is not going to be about their respective pros and cons. The simple reason being that, between Content Management Frameworks and Website Builders, there's no such thing as an absolute pro or con. It's all subjective. A pro can turn out to be a con depending on what you're looking for, and vice versa. As I'm so fond of saying, there are no blanket solutions in this business. You want a blanket solution, go look for Linus!

A blanket solution.

What is a Content Management Framework?

This refers to a system which is a collection of resuable software components and modules, used to create websites and web applications. Notable examples are Joomla!, Wordpress, Drupal and Magento. Follow this link for a more comprehensive listing.


Origins

Content Management Frameworks came about originally because some genius decided that customers should be able to update their content without the help of a developer, resulting in faster turnaround times. That certainly was the intention. Customers also found the prospect of not needing to pay maintenance packages to vendors highly attractive. Now they could change their minds every 30 minutes without being billed for it!

The result, however, was that customers decided that the whole process of uploading and editing content was just too complicated and ended up offloading the work to developers anyway. And vendors began charging a premium for the installation of a Content Management Framework.

Another effect was that soon people with only HTML and CSS knowledge could make data-driven websites without knowing how to write scripts and manage databases. So technically-trained developers who were doing web development as their day job or even as a side hustle, now found a whole lot of competition flooding the market.

Hosting

A Content Management Framework is software which has to be installed on the user's hosting service of choice, including offline. In that respect, websites created from Content Management Frameworks are just like any other website. Hosting and domain name are handled by the user's provider of choice. This can be a burden, especially if there are upgrades available for the Content Management Framework. Choosing not to upgrade is not a viable choice, as this leaves the website open to security attacks. Think about it - if you could download the Content Management Framework software for free, so can everyone else. Chances are that the software you're using has already been scrutinized and reverse-engineered by hackers, and that security loopholes have been found. However, upgrading brings its own set of problems. After an upgrade, previously installed plugins may fail due to incompatibility.

And if you made any changes to the core, God help you.

Components

Content Management Frameworks make extensive use of plugins and, of course, a Content Management System where users can type in text content (which the plugin will convert to HTML) and upload images. The selection for any given Content Management Framework is vast, especially if the software is built on open-source scripting, such as PHP or Ruby. Of course, as mentioned earlier, there are no guarantees that those plugins will still work after your next upgrade, or that they are at all secure.

Control

Content Management Frameworks come pre-packaged with certain features such as W3C Compliancy, cross-browser compatibility and responsive design. In the case of Content Management Frameworks, the user is pretty much allowed to do as he pleases. Need to customize a carousel? Sure. Need to implement some server-side scripting? Go ahead. Need to disable those annoying validation checks in the interface? You're the boss. But, but, if you up breaking something, a messy re-installation is in order.

Next

A look at Online Website Builders.

Saturday, 14 March 2015

So you want to be a Web Developer? (Part 1/4)

Think web development's the life for you? Want to get your hands dirty and be part of the process? Want to get into the industry but aren't sure what skills to pick up? Hey, look no further. This four-parter shows you the bare minimum you'll need to get started.

If we exclude design and SEO, which are just about separate and distinct disciplines anyway, the areas you'll want to look into are front-end, back-end and databases.

Front-end

If you're thinking HTML, you're right. But only partially right. What you should really be thinking of is HTML, JavaScript and CSS. Seriously, if you only know HTML, don't even bother mentioning it to an interviewer.

I thought JavaScript and CSS were optional!

Technically, it's true that HTML can work on its own, while JavaScript and CSS need to be embedded in a HTML page in order to work. In practice, we have a term for aspiring web developers who only know HTML: secondary school kids. You can make a living with only knowledge of HTML. But unless you want to spend your entire career writing EDMs, do consider picking up the rest.

We live in an exciting age where JavaScript and CSS are no longer just nifty add-ons to make your pages more interesting. Knowing JavaScript is a precursor to mastering AJAX, which adds a whole new dimension to the interactivity of your pages altogether. And CSS is great for styling and layout, and pretty damn useful for large-scale projects. That's not even mentioning the fact that CSS3 now does for web development what Flash did years back - great animations.

What you must know

You'll need to know all these like the back of your hand. Off the top of your head. It better be more familiar to you than your mother's birthday.

For HTML,
- Basic page anatomy, ie head and body tags, and what goes into each.
- Form elements and their attributes.
- Color codes.
- W3C Compliance.

For CSS
- Text formatting.
- Layout, in particular the position property.
- Responsive and adaptive design.

For JavaScript
- The DOM (Document Object Model), elements and properties.
- Data types.
- Operators.
- Number and date formatting.
- Arrays.
- Programming constructs, ie. For, While, If-Else, etc.



HTML5

When you're done with basic HTML, know the ins and outs of form and page elements, the next useful thing to know would be HTML5. It's the way of the future, or at least it will be once the World Wide Web Consortium stops dicking around and actually cements some industry standards.

More about HTML5 (http://www.w3.org/html/wg/drafts/html/master/)

Good-to-haves

I would never recommend that you start off with these. But they're such a mainstream part of the web development landscape, they're worth a mention. If you're up to speed with the basics, you may want to consider expanding in the directions listed below.


HTML5 Boilerplate and Twitter Bootstrap work great if you're pressed for time and you're trying to make it look like you know your shit.

HTML5 Boilerplate (https://html5boilerplate.com/)
Twitter Bootstrap (http://getbootstrap.com/)

If you're good with JavaScript, JavaScript libraries such as jQuery or MooTools is the next logical step in that direction. You'll do fine without them because they can be a right pain in the posterior. But they're respectable items in the resume.

jQuery (http://jquery.com/)
MooTools (http://mootools.net/)


CSS Frameworks such as SASS and LESS would come after you've mastered CSS syntax. Again, not compulsory. Know your basics first.

SASS (http://sass-lang.com/)
LESS (http://lesscss.org/)

And then there are the CMS platforms. These require a quite a bit of tweaking, a lot of it on the front-end. There are two ways to interact with these - as a non-technical user, and as a developer. You will, of course, be doing the latter.

WordPress (https://wordpress.org/)
Drupal (https://www.drupal.org/)
Joomla! (http://www.joomla.org/)
Magento (http://magento.com/)

For the record, I absolutely hate this crap. Worked with Joomla! and WordPress over a year, and never found a reason to like them.

What are my career options?

If you only know HTML, there's still a job for you in Marketing. You know those mass emails they send out, with advertisements, newsletters and all that jazz? Those are called EDMs. (Electronic Direct Marketing). Since email clients have not caught up with browser standards, the safest way to render them would be using only HTML - no CSS, no JavaScript, no forms.

But that kind of job pays miserably. Plus, if you say you want to go into web development, I assume that means you're up for a challenge.

If you know your HTML, CSS and JavaScript, and know the best practices that come with using them (W3C Compliance and cross-platform compatibility, etc), and don't wish to expand your skill-set any further beyond the front-end, you can still hack it as a Web Designer.

Next

What you need to have in your back-end repertoire.