si-blog

The other Holy Trinity

Posted Jan 25, 2006 in Databases, PHP, Technology, Web Design.

For great web development, you need to make use of the following technologies:

PHP
PHP is a feature-rich and powerful cross-platform server-side scripting language for building dynamic websites. It is very easy to learn, with a syntax very similar to the ubiquitous JavaScript.
MySQL
MySQL, pronounced my ess-cue-ell, is an easy-to-use, sophisticated relational database application with many powerful features.
Apache
Apache is a platform-independent web server, and easily the most popular in the world. It is highly configurable, easy to install on a variety of different operating systems, and has a variety of modules that can extend its feature set.

With this triumvirate, you have everything you need to create secure, sophistcated, interactive, and dynamic web sites.

Comments

  1. Gravatar

    In regards to the PHP class, I was wondering why we didn't use WAMP (Windows/Apache/MySQL/PHP). Is it because we have IIS on the laptop? I tried installing Apache, MySQL and PHP on my home computer and after about 3 hours of not getting MySQL to work, I installed WAMP and it works like a champ.

    Anyways, I found an article of great humor (irony?) and it's right up your alley since your a standards evangelist!


    Source: http://www.webstandards.org/
    Title: Another Failed Redesign: IEEE
    Oh the irony -- that a standards body should ignore standards in creating their new Web site!

    As a member of the IEEE, I couldn't help but laugh when I saw that the new IEEE Web site redesign was announced in an e-mail newsletter... along with another entry titled "Let's Not Overlook Standards". Since their previous site didn't make use of Web standards, I had hopes that this one would... but on viewing source of the new site, those hopes were quickly dashed.

    Visit the site for the full details - it's quite interesting!

    Posted by James Henry on Jan 26, 2006.

  2. Gravatar

    There are two significant reasons why we don't use Apache in the PHP class:

    1. Messing around with web servers is for the PCNet crowd. We're only interested in using PHP to make dynamic websites.

    2. I've never installed Apache - I've never found the need as far as development goes. The whole point of using open source, cross-platform stuff like PHP and MySQL is that the operating system and web server shouldn't matter.

    So yeah. We use IIS because we have it, and it's a piece of piss to work with in the context of our class. We have set up our laptops so that they (broadly speaking) mimic the LAMP environment we are likely to encounter with a typical webhost. For example, we created the DOCUMENT_ROOT environment variable that Apache takes care of automagically.

    Posted by Simon Jessey on Jan 26, 2006.

  3. Gravatar

    i'm not so sure about this.

    i use asp.net, sql server and iis.

    i'm a developer rather than a system administrator so i'm not going to be able to argue much in favour of sql server or iis. they both work and let me do what i need to do. and that's pretty much it. sql server supports proper ansi syntax for queries, let's me write stored procedures and generate xml direct from the server enabling me to use technologies such as xsl and formatting objects. iis might be the biggest bag of balls but i can't tell.

    as for php. well i've not had any direct contact myself, but the word on the street is that it's hard work and reminiscent somewhat of old asp.

    i'm no microsoft stooge (honest), but asp.net is very, very good. the framework is excellent and it implicitly supports the seperation of coding logic from presentation.

    in addition, for all of the faults of the ide, it's better than anything else out there that i've seen. the intellisense is a godsend, it allows me to debug my code and integrates with source control.

    and it's free - http://msdn.microsoft.com/vstudio/express/default.aspx.

    still, the ground is shifting away from the server somewhat with the advent of 'ajax'. so more javascript all round whatever happens. if only i could find a way to debug it properly...

    cheers

    paul

    Posted by Paul Nixon on Jan 30, 2006.

  4. Gravatar

    The problem with your own triumvirate is cost. The IIS, SQL Server, and ASP.NET grouping costs a whole heap of money compared to Apache, MySQL, and PHP. The penetration of these technologies is even more significant - LAMP stuff is simply everywhere. With Windows/IIS/SQL Server/ASP.NET (WISSA, anyone?) grouping is something to consider if your business has oodles of money and is too afraid to go "open source" - I bit like buying IBM to cover your ass.

    PHP is not hard work at all. In fact, I find it ridiculously easy and extremely powerful. I'm not familiar with ASP.NET, but the fact that it relies on a proprietary framework is always going to give it a bit of a gimpy leg, isn't it?

    With regards to "AJAX", I think that it's a bit of a red herring. It does NOT mark a shift away from server-side scripting, because it ultimately relies on the client to do things - an inherently dangerous approach. Client-side scripting should always be unobtrusive, offering "enhancement" of otherwise fully-functional websites. Many AJAX-heavy sites (like Google Maps) do not function without JavaScript, and this is A Bad Thing. It is one of the reasons JavaScript got such a bad name in the first place ("DHTML" - :::shiver:::).

    Posted by Simon Jessey on Jan 30, 2006.

  5. Gravatar

    simon

    i hear you regards the cost of my chosen technologies and i'm as big a fan of the concept of open source software as i suspect you are. however, that cost is not as considerable as it once was. the new 'express' visual tools look very good and are free. iis is free. and sql express is free. so for the 'small time' developer, that's a lot of 'frees'.

    i don't like the implication that open source techonologies are for those that are disgustingly rich AND lacking in the bravery department. could it not be that some opt not to use open source software because the stuff that they buy is, frankly, err.. better?

    there isn't anyone that isn't attracted to the idea of something for free. i've flirted with linux and tried it at home. as have some of my colleagues. as i said before, i've never used php, but my colleagues have and, adjusting for a lack of familiarity, they still report it's a bit of a dog's dinner.

    there is, of course, a risk associated with using a proprietary framework. no doubt. there's a risk in using a non-proprietary framework also. i don't see much difference personally. except microsoft would piss off a lot of fee-paying people if they screw up.

    i'll have to continue to take issue with you :-). ajax does necessarily shift away from server-side processing. for example, i wrote a website a couple of weeks ago (http://www.pintsearch.com) that would not have been possible without those technologies.

    naturally this shift is not wholesale, there's still plenty of stuff going on on the server, but i'm not having to rebuild the complete page on the server, with the inherent latencies, screen redraws and general ugliness. i believe the judicious use of these technologies can be used to vastly improve the user experience.

    i used to have a strong disliking of client-side scripting. it was not consistently implemented by the browsers of the day, netscape and internet explorer. the code you wrote would be full of hacks and browser sniffs and there wasn't a self respecting page that would have an javascript error or two on it.

    even now, javascript is a pain to write, i don't care much for the syntax and it's devil to debug. it's not strongly typed and the acrobatics required to do object oriented programming are asthetically displeasing at best.

    but them's the breaks. needs must and all that. it'll be a good day when i can properly consume xml returned from web services, using xsl. that'll be a fine day.

    p

    Posted by Paul Nixon on Feb 02, 2006.

  6. Gravatar

    IIS is most certainly NOT free. You can only get it if you purchase a license for one of Microsoft's operating systems. Apache is available for almost every operating system, including many that cost nothing.

    Any client-side scripting (whether or not it uses AJAX) simply MUST degrade gracefully, otherwise a site may not function properly. Consider that many user agents in use today are not JavaScript enabled (like PDAs and cellular phones, for example). Client-side scripting involving calls to a server cannot be an alternative to server-side scripting. It can only be an enhancement to it.

    Posted by Simon Jessey on Feb 02, 2006.

  7. Gravatar

    ha ha

    agreed. iis is NOT free. however, for whatever vast proportion of users that use windows exist (rightly or wrongly), it is. and there are open source/free alternatives to host .net.

    i'm not sure that client-side scripting must compulsorily degrade gracefully. if you are designing an intranet system for a customer with a known target platform, then i see no reason to handicap your system with lowest common denominator development.

    javascript or nay, i can't find a website that works on my phone except those that have been specifically coded to work on that platform. javascript is the least of your worries.

    web development is always a series of compromises. i think to dogmatically say 'must' anything is not in the spirit of the innovative nature of web design and implementation. it depends what you're doing. if you're writing the BBC website you've got a job on your hands and much care will be needed to accommodate the diversity of users (note by the way, the BBC has a different site completely for PDAs and phones).

    lastly, client-side scripting involving calls to a server can indeed be an alternative to server-side scripting.

    in fact, that's exactly what ajax/web 2.0 is all about - http://www.adaptivepath.com/publications/essays/archives/000385.php

    paul

    Posted by Paul Nixon on Feb 02, 2006.

  8. Gravatar

    Dude, if you are going to be doing any business-related web serving, you will need Microsoft Server - Windows XP Pro isn't going to really be sufficient. That means you need to shell out some serious money (at least $1,000, according to the Microsoft website).

    Granted, you can do pretty much anything with an Intranet, but my post is about web development. Last time I looked, the web was on the internet, not an intranet.

    The web standards movement is in agreement that you should keep content, presentation, and behavior separate. If you do that (and do it properly), there is no reason why a website cannot be constructed to work on a variety of user agents, including cellular phones. Unfortunately, mobile phone manufacturers have failed to implement media types correctly, so many phones try to use "screen" stylesheets instead of "handheld". If the phones supported "handheld" properly, you could even use the si-blog on them. Try disabling the stylesheet on the si-blog and you will see what I mean - everything is accessible on ANY user agent.

    I read the Adaptive Path article back when it came out. My initial thought was "why do they need to give existing technology a new name", since it wasn't actually presenting anything new. Eventually, I understood that giving it a buzzword was a good idea because it helped people get on board. Where it FAILS utterly is in the notion that you can rely on a user's browser. You simply cannot assume anything about the user agent. The only SAFE way to do things is at the server level - let the client side handle the enhancements, but always have a server-side fallback to cover your ass. One of our compatriots, Jeremy Keith, talks about this problem toward the end of "DOM Scripting", his book about unobtrusive JavaScript.

    IF Google had designed their mapping system with a server-side fallback, it could've been used by anyone with a phone or a PDA as well. As it stands now, it is limited by the user agent.

    Posted by Simon Jessey on Feb 02, 2006.

  9. Gravatar

    > i'm not sure that client-side scripting must compulsorily degrade gracefully. if you are designing an intranet system for a customer with a known target platform, then i see no reason to handicap your system with lowest common denominator development.

    Well "handicap" is an interesting choice of words. In many places, discrimination protection for employees is stronger than discrimination protection for customers. In one case I know of, a large national chain had to retrofit their internal applications because they hired somebody with a visual impairment and quickly discovered that they were breaking the law by treating her as a second-class employee without access to the intranet applications.

    Graceful degradation isn't "lowest common denominator" either. The term you were looking for was "highest common factor", and even then it does graceful degredation a disservice, because it ignores the fact that the more a client supports, the better the website/web application gets.

    Really, graceful degradation is easy if you start with a solid foundation (accessible HTML) to build upon, instead of building the brickwork (the Javascript etc) and then realising that it's going to be damn difficult to get the foundation in underneath.

    Posted by Jim on Feb 02, 2006.

  10. Gravatar

    Oh, and I take exception to the inclusion of MySQL in this "holy trinity" :). Please try PostgreSQL. You won't regret it. It exceeds MySQL in every respect.

    Posted by Jim on Feb 02, 2006.

  11. Gravatar

    ha ha

    agreed. if you have to manage your own server(s) then, yes you're gonna have to stump up some cash. but there are plenty of hosting options out there at a reasonable price albeit that .net/sql does seem to command a premium.

    ha ha. yes, the last time i looked the internet was on the internet as well. but you seem to be suggesting that an intranet system is not web development. if someone uses one of our systems from home does that then qualify?

    i'm as caught up as you with standards. i've read my zeldman and promptly ripped our systems apart and rebuilt them according to the principles he espoused. and, in real life, i do my best to stick to those principles. and, frankly, when writing blogs and similarly largely un-interactive sites it's easy to play by the rules. but try writing something like this (http://www.intuitivesystems.co.uk/images/screenshots/ifacr.gif) and see if you can get that to work on a phone.

    i'm surprised that you are not as excited as i am about the opportunities that xmlhttp makes available. i first saw it used by google, with 'google suggest'. i promptly wrote http://www.maptastic.co.uk, which is essentially streetmap.co.uk (quite literally as it goes as the images are stolen in real time from their site) but taking advantage of the new technology. which site do you think is better and more intuitive to use? do i care that it does work on someone's phone? ha ha. not really. if it's that important i'll write pda.maptastic.co.uk.

    go to http://www.pintsearch.com and do a search for a pub. eerie isn't it. no round trip to the server. no redraw. no unnecessary bandwidth usage. elegant. it would be even better if i was using proper SOAP standards and i could use xsl to format my xml for me. but that's for the future. do i care if it doesn't work on someone's phone? ha. no.

    i'm interested in your comments jim, and i like the re-branding of 'lowest common denominator' to 'highest common factor'. your glass is indeed half full. do you think it was a 'good thing' that the company had to re-write their software to accommodate one person? in my, rather un-pc, opinion i think that it sucks. what would happen if the women in question was a deaf blind mute? should she still be accommodated?

    and, what about visually impaired people without an internet connection? should i be obliged to have a braille copy of my blog to send out to people? i think so :-).

    p





    Posted by Paul Nixon on Feb 03, 2006.

  12. Gravatar

    > frankly, when writing blogs and similarly largely un-interactive sites it's easy to play by the rules. but try writing something like this (http://www.intuitivesystems.co.uk/images/screenshots/ifacr.gif) and see if you can get that to work on a phone.

    I don't see anything particularly difficult there. What do you think is difficult? It seems to me like you are thinking "how do I get this precise effect to work on a phone" instead of "how do I let the user accomplish this particular goal on a phone". And of course, substitute "phone" with "PDA", "aural user-agent", "search engine", "link checker bot", or whatever other unconventional user-agent you can think of that might want to access the web application.

    > i like the re-branding of 'lowest common denominator' to 'highest common factor'. your glass is indeed half full.

    It's not a matter of looking at things in a more optimistic way, there's a qualitative difference between lowest common denominator and highest common factor. Think about it.

    > do you think it was a 'good thing' that the company had to re-write their software to accommodate one person?

    I think it was stupid that they ignored legislation they were bound by, and they paid the price by unnecessary development at an inconvenient time. If they had done things properly from the beginning, they could have avoided a lot of trouble.

    I don't think it's a good thing that they had to rewrite things, I think it would have been a good thing if they didn't have to. If you start with solid foundations, you don't have to.

    > what would happen if the women in question was a deaf blind mute? should she still be accommodated?

    Irrelevant. The law requires that reasonable measures be taken. Making a web application accessible to the visually impaired is certainly reasonable for the vast majority of web applications. Making a web application accessible to deaf/blind/mute people is much less reasonable.

    Posted by Jim on Feb 03, 2006.

  13. Gravatar

    I'm with Jim on the phone thing. Looking at the GIF file, it looks like everything could be broken up into sections with headers, and simply listed one after the other.

    Don't get me wrong about AJAX. What can be achieved can only be described as "really fucking cool". The problem comes as soon as someone has either disabled JavaScript, or it using a system that doesn't have it. You must make your content and functionality accessible with no JavaScript, and then use the client-side language for rich enhancement.

    Oh yeah. Saying you've "read your Zeldman" isn't going to be sufficient. Jeffrey Zeldman is a great man, but he sure likes to make his sites with tiny fonts and narrow widths from time to time. I met him at An Event Apart recently, and his area of expertise is the content of a site and its visual design, rather than the actual functionality of the thing.

    Posted by Simon Jessey on Feb 03, 2006.

  14. Gravatar

    ha ha

    i'd like to see you try and implement that particular page on a phone and retain even a modicum of the functionality. there's a grid on the page with cursor navigation, column copy, date jinking (accepts formats ddmm, dd/mm, dd/mm/yy, ddmmm, etc, etc). and given the level of user input required i suspect the users would not be thrilled with the experience.

    i wonder if either of you have worked on user input intensive HTML based applications?

    sorry, jim. i'm being a bit thick as i've had a bit more of a think about the difference between 'lowest common denominator' and 'highest common factor' and i haven't come up with much. 'lowest common denominator' means using only features that are supported by all platforms. and 'highest common factor' (to me :-)) means using only the features that are support by all platforms.

    i see your point regards the blind lady; apologies - i'm not familiar with american legislation. in the words of alan partridge, the law sounds disconcertingly vague. one man's reasonable may not be the same as the next.

    i accept the zeldman jibe. i was horrified by his suggestion of using single letters for filenames and folders, etc. maintainability is rather import in all spheres of development in my view.

    have a good weekend all

    p

    Posted by Paul Nixon on Feb 03, 2006.