KillerSites Blog

Nerd Concepts in English

Building an Ecommerce Website – a Layman’s Perspective

March 25, 2009

There are plenty of articles on how to build an e-commerce website. The problem is that they speak to web-nerds and not to the business people who want to build on online business.

This article speaks to those not so tech savvy entrepreneurs.

What we want to do:

The goal is to create an e-commerce website that builds a business using all the cheap and free tools available in the market today. One great thing about the nerd driven computer revolution, is the strong sense of community and desire to give opportunity to the masses.

Because of this freely available cheap and/or free technology, it is just so much easier today to start a business than it was just 15-20 years ago.

These are some of the questions this article will answer:

  1. What are the components of an e-commerce site, and how do you best get those components into your web site?
  2. What makes an e-commerce website successful?

read more

Is HTML a scripting language?

August 24, 2006

I’ve seen this confusion come up from time to time – is HTML a scripting language?

Short answer: no.

Yes a nerd detail, but nonetheless, this is something that should be made clear.

THE DETAILS:

HTML is actually a markup language and not a scripting language.

Scripting implies decision making capabilities (the code can actually evaluate and take an action based on what it finds) – PHP, PERL, Ruby, Javascript are examples of scripting languages.

Markup languages create structure for a document … they only describe data. For example:

  • HTML
  • XHTML
  • XML

… but you knew that already.

[;)]

Stefan Mischook

read more

3 Categories of Programming Languages

August 2, 2006

I wrote my first script back in 1996 – some really simple JavaScript that validated HTML forms and presented users with ugly ‘alert’ boxes when errors occurred.

I always wondered why on Windows, ‘alert’ boxes looked so ugly?

… they probably looked good on Macs though.

Since then, I’ve written software for business purposes in perhaps 8-9 languages. Over the years, I’ve come across many ways in which people classify languages:

  • Object Oriented vs. Procedural vs. Prototype
  • Scripting vs. Programming
  • Compiled vs. dynamic

… and many more.

Recently a more practical way of classifying languages has come to my attention – classifying languages by problem-domain or in other words, context.

  • System Languages
  • Architectural Languages
  • Application Languages

I like this list, because it really conveys a sense of practical use for a language. I’ve hammered out the details below:

System Languages

… best used to build operating systems, hardware drivers etc. Fast and gives you low level (close to the core) access to the computer. These languages are used when speed is critical.

These languages include:

  • C
  • C++
  • Assembler

Architectural Languages

… best used to build frameworks that support (make easy) application building. Not as fast (at run-time) as system level languages, but they provide a higher level of abstraction that makes writing software quicker and more productive.

These languages include:

  • Java
  • C#

Application Languages

… best used to build the actual business applications like web shopping carts/stores, connecting to databases and creating the screens for users to interact with the database.

These languages include:

  • PHP
  • Ruby
  • Perl
  • Python

These language all allow for extremely fast development.

Programmers are freed from the low-level details that you have to contend with when working with architectural and system level languages.

The fact that they’re all scripting languages (that don’t need to be compiled,) adds to the ease of use and speed of development.

MY POINT

It makes for an interesting way to look at languages … and our choice of what language(s) to use for a given project.

Stefan Mischook

read more

WHAT ARE DATABASES – PART 1

July 3, 2006

WHAT ARE DATABASES?

Databases are programs that are built to store and manage information. You can think of a database as a virtual filing cabinet – with extra bells and whistles.

Types of databases:

There are several types of databases used today. The most common being:

1. Relational databases.
2. Object databases.
3. Flat file databases.

You can think of each type of database as a different way (conceptual and practical) to store and manage information.

Each type of database has its advantages and disadvantages. That said, by far, the most popular database type is the ‘relational database’. That’s why we concentrate on them here.

WHAT ARE ‘RELATIONAL’ DATABASES?

As I hinted at above, each database type has a different concept on how data/information should be stored and organized.

A relational database stores (and organizes) its data/information by creating relationships between different pieces of information (stored in virtual containers) that are … uh, related to each other.

To illustrate the point: if you had a brother, your mother would be the ‘key’ that forms the relationship between you and your brother.

With this analogy in mind, we can say that a relational database stores and tracks data by establishing relationships by using ‘keys’ (in this case, your mother) that are consistent between two pieces of information – you both have the same mother.

Popular relational databases include:

· MySQL (often used with PHP because it’s free)
· Oracle
· Microsoft SQL Server

WHAT ARE VIRTUAL CONTAINERS?

We all know that it’s much easier to store and find stuff/things (in your home) if you put the stuff into boxes and then label the boxes … much better than just leaving all your junk on the floor.

Though naturally a messy bunch, nerds have picked up on that fact, and realized that computer information should also be stored in boxes (virtual containers) that are labeled. In a relational database, we call these ‘boxes’: tables.

In a nutshell: the virtual containers in relational databases are called ‘tables’ and information is stored in tables.

MORE ABOUT TABLES

Database tables are virtual containers designed to hold and organize data. In many ways they look like spreadsheets where database tables have both rows and columns.

The difference between a spreadsheet (like Excel,) and a relational database table, is that the spreadsheet is designed (has built in capability) to manipulate data for the purposes of presentation – creating charts and reports etc.

Where on the flip side, a database table is designed (has built in tools/capability) to organize and maintain information and it can hold much, much more information than a spreadsheet.

So yes, you can store information in a spreadsheet, but it lacks many capabilities (and capacity) that you would find in a database.

We will learn more about the makeup of a table (purpose of the rows and columns) when we actually build one.

THE ‘RELATIONSHIPS’ IN RELATIONAL DATABASES

As I mentioned above, a relational database stores information in tables (the virtual containers) and then creates relationships/connections between the tables (and thus the data that is stored in the tables.)

This system/method of storing information (by creating relationships,) is efficient because of a few reasons; the most important being is that this style of storing information (in tables that are related to each other,) helps to prevent information from being duplicated needlessly.

A FUNDAMENTAL PRINCIPLE OF DATABASE DESIGN

One of the fundamental rules in database theory/design, is that information should not be duplicated:

… if you have multiple copies of the same information floating around, it takes up more disk space and can easily become a nightmare to organize.

By storing information in different tables, and linking that information to each other (that are related,) you avoid duplicating information. This will become clear when we actually build our first database … I know (that for now,) many of you are probably unclear about a few things … have faith, it will come!

Part 2 coming out soon …

Thanks,

Stefan Mischook

read more

Web 2.0 Explained

June 8, 2006

Web 2.0 Explained

The Internet is buzzing these days about the emergence of what people call ‘Web 2.0’. It’s important for web designers to understand what this is, because it affects all web design.

IN A NUTSHELL: Web 2.0 is a combination of factors/elements that leads to a much more social, interactive Web. Here is a short list of some of the key elements that make Web 2.0 possible:

  • AJAX allows for the rise of the truly ‘rich’ Web user experience: web pages that act like desktop programs … no need to refresh entire pages to see new content on the page.
  • Auto-syndication (sharing of content) via RSS/XML feeds – and software that allows you to easily create and access these XML feeds.
  • New ways to mass-communicate over the Web – podcast (mp3) and video.

BLOGS GOT THE WHOLE THING GOING

Blogging tools like WordPress and TextPattern got the whole thing going: most blogs automatically create RSS feeds.

Blogs also make it easier than ever before, for people to write content for the Web. No need for Web design software like FrontPage or Dreamweaver and no need to know HTML.

As such, there has been an explosion of content creation of the Web: people are writing like crazy! The three points to take away from this is:

  1. Blogs make it simple to (essentially) create web pages.
  2. Blogs automatically syndicate/share content via RSS.
  3. Blogs make it easy for readers to interact with blogger’s (the authors,) via a built-in system that allows people to make comments … the social aspect enabled.

WEB 2.0 IS MORE THAN JUST BLOGGING

Another major characteristic of Web 2.0 is the remixing and combining of information from many different sources.

For example:

A Web 2.0 web site may grab many RSS feeds and massage them into a new filtered presentation. The advantage is that users can now access this information from one spot, instead of having to visit many different sites.

CONCLUSION

This (automated) sharing and mixing of content/information (between people and websites,) along with ‘rich’ Web user experience is Web 2.0.

… and you thought it was something more!

🙂

read more

Server-side vs. Client-side Programming Languages

May 31, 2006

More and more web designers are interested in taking the jump into learning how to build database driven websites.

These days, the language of choice is PHP (with some adventurous nerds jumping into Ruby,) because it is easy to use, easy to learn and is very popular.

Regardless of what technology/programming language (PHP, ASP, JSP, Cold Fusion) you use to build database driven websites, there are some (common) basic concepts that have to be understood before you can move forward.

In the following video tutorial, I explain to the difference between server-side programming (PHP, ASP etc ..) vs. client-side programming – JavaScript, VB Script etc …

Video: Server-side programming vs. Client-side programming

PS: after you watch this video, you may want to take it to the next level and actually learn PHP.

Stefan Mischook

read more

What’s Apache, Perl, MySQL? Will I need to know these for my clients?

March 10, 2006

I recently had this question put to me, and I thought it would make an interesting blog post:

"What’s Apache, Perl, MySQL?  As a web designer, will I need to know these for my clients?"

Apache, Perl, MySQL

Apache = a web server. The most popular (in terms of use) in the world. If your host is on Linux, they are running Apache.
 
You don’t need to know much about Apache as a web designer, since your hosting company will configure that all for you.

Perl = a programming language used a lot on Linux servers. It can be used to do all kinds of things but it is mostly known for its legacy as the programming language used to write CGI scripts – think guestbooks etc …

You don’t need to know much about Perl as a web designer. But Perl is still widely used and you will find that many scripts out there (like guest books,) are created with Perl.

MySQL = is a database program. Database software like MySQL are used to store information. Used a lot with things like message boards, e-commerce shops and other programs like that.  MySQL is often used with PHP (a programming language) to create database driven websites.

MySQL becomes important to learn IF you want to learn how to create dynamic/database driven websites.

A final point:

There is so much (out there) in the web design world, that you will probably never need to know or use. I can tell you from 12 years experience, that nobody knows everything – there is just too much. 

My advice is to concentrate on what you need NOW and to continue to work on basic skills … let the projects that come up dictate what you’ll learn.

read more

Scripting vs. programming: is there a difference?

September 20, 2005

Preamble: This is an older post, but it is still accurate:

The short answer: These days, the line between a scripting language and a programming language is blurred. As such, in practical application, the differences are meaningless. So the answer is: no.

Some details … what a nerd might tell you: Scripting or writing scripts, is programming within a program. Traditionally you would write scripts to automate certain functionality within another program. Traditionally scripts would have very specific task like for example: reading a text file to extract all the email addresses.

Why use a scripting language?

  • Easy to learn – compared to traditional programming languages.
  • It takes much less code to do something with scripting than when using a traditional programming language.

read more