If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Hybrid View

My project has specific aims. What should I consider?

Hi Guys

I have a good general knowledge of the fundamentals of what is required to build a website, however as an amateur it can be quite difficult to figure out what to use for what because there's so much out there.

I am looking to undertake a huge project which is purely personal. It is a learning experience. I hope that I will be able to achieve everything I outline here in order to present it as an idea if at all possible. Here goes:

Requirements:

The essential thing is security, no rookie errors that leave vulnerabilities, intelligently planned languages/frameworks/protocols etc etc. So from start to finish any advice on these areas would be appreciated because obviously this needs to be considered when making choices.

I also hope that the end product can be given over and managed with ease whilst still allowing for the design to be sleek, modern, interactive and responsive.

A brief summary of what I wish the project to contain:

Main index page with the usual jazz like "about" and "news" etc. However I also want people to be able to create an account, make profiles, upload pictures, biography. I'd like this to be well integrated into some form of community tool (like a forum) without being a completely separate engine. Ideally I'd like people to be able to network with each other, form communities, join communities, organise events, share pictures, etc etc all from this website profile.

I'd also like the database on the website to be able to accept connections requesting certain information. Ideally this information should be able to help keep another CRM / dynamics type of database updated. The idea to only allow the information to be requested as opposed to hard coding scripts that point directly to the CRM is really to reduce the likelihood of running into any data protection issues.

Essentially this profile section could be considered similar to something like Facebook but the important difference is that the front face of the website is still part of an organisation and it's something I'd like to build into it, rather than have it separate. Hopefully this will give me more freedom as to how it is designed.

I'm really interested in ajax / jquery for the webdesign front - any opinions on that?

Aside from that please can I ask your advice on the following:

Is it advisable to use a framework (like for eg bootstrap)? What are the options and their pros and cons?

What type of software should I use to manage & organise this project nicely?

What type of databases are there and what are the security differences? Also please consider ease of use in any suggestions.

What other tools / languages should be considered as the core for a project like this?

Any other advice is appreciated. Any other opinions / additions to what I need to consider are also appreciated.

When it comes to AJAX, it can be used to make a page more useful -- but like everything JavaScript based you should keep the "unwritten rule" in your head: "If you can't make a page that's fully functional without JavaScript, you likely have no business adding scripting to it."

Make the page WORK, then make it work BETTER with scripting if desired.

As to jQuery, that fat, bloated steaming pile of manure does nothing but piss all over every website I've ever seen it used on. Generally speaking what most people do with it falls into three categories:

1) could be written as less code without the framework

2) is CSS' job

3) has no business on a website in the first place.

This ties into something else you are asking about -- frameworks. On the whole HTML, CSS and JS frameworks are fat, bloated, pointless garbage, that at best are crutches for the inept, at worst walking through a pile and tracking it all over a website's carpets. The laugh being MOST of them -- like jQueery, BootCrap, BooPrint, and all the other nonsense -- are by themselves uncompressed 50% larger than I would normally allow a site template (not counting social or discussion plugins or content) to reach -- and that's HTML+CSS+SCRIPTS+IMAGES combined also -- uncompressed.

Really if on a normal site you have more than 2k of markup for every 1k of content, more than 48k of CSS, and more than 32k of JavaScript, you probably shouldn't be building websites in the first place! I'm often shocked at the massive slow loading train wrecks people vomit up and have the massive set of brass to call websites; where people seem to see nothing wrong with 100k of HTML, 500k or more in scripting and 200-300k of CSS to deliver less than 2k of plaintext and a half dozen content images -- that's just developer ineptitude; and one of the leading causes of said ineptitude is the dumbass halfwit framework bull....

They call it "easier". jQuery is "easier", bootstrap is "easier", ignoring the structural rules or even meanings of the HTML tags is "easier". Keeping their cranium wedged up 1997's rectum is "easier"...

So basically, if it's called a framework? Do yourself a huge favor and steer clear.

As to project management, the BEST tool is the one between your ears and keeping clear and open communication between yourself and anyone else working on it is your best bet. Relying on software for that, even so called "versioning" programs -- usually results in bad code, a lack of communication, and questionable efficiency. When I say open communication, I mean OPEN. Let people say what they are thinking, it offends someone else in the project OH WELL, at least it's out in the open!

There is WAY too much of this limp, namby-pamby, "Wah wha, somebody said something negative" status-quo FTMFW idiocy out there right now, and it's a hefty contributor to failing businesses, the failing economy, and general lack of anyone bothering to do even the simplest of things properly. Pretty much why I think the whole "It's not what you said, but how you said it" crowd pretty much needs to go... well... I won't say it. I lack the words that wouldn't upset the "little old ladies at the afternoon tea party" who seem to have taken over the world the past seven or eight years.

Either that or I just miss the "you must be this smart to ride the Internet" sign that used to be at the login.

In terms of databases most of them use the "SQL" syntax. There are some minor syntax and operational differences between them, but on the whole it's like learning English. Once you know the language, the only thing you have to adjust to is regionalisms and variations in colloquialisms; see how the average American blowing up the A10 through Cheshunt goes careening off the road laughing in hysterics when they see the sign "Your faggots deserve Maggie's sauce"... (not that said event EVER happened to me as a teenager travelling abroad). The language is the same, but there are enough details you might scratch your head a few times.

mySQL is probably the most commonly used database. It's the one you're most likely to find help for if you are starting out and is guaranteed to be available on any hosting worth using. That said now that Oracle has it's mitts on it a lot of people have soured on it, Oracle seems determined to kill it the same way they were trying to with OpenOffice, and there are already two or three forks of it. Still, it exists, it's everywhere, it's what I'd suggest learning first just because you're more likely to find tutorials and help for it.

Kind of the same reason I'd suggest writing the back-end in PHP at least at the start. PHP has probably the best manual of ANY programming language of the past 20 years up for free in the form of the website PHP.NET. I probably say that because I was spoiled by the quality of Borland language manuals in the `80's and early `90's.

One thing that was added to PHP eight years ago that I highly recommend you use is called PDO -- PHP Database Objects. I suggest it because if you use it properly, you can target multiple database engines. You put your queries into arrays loaded from specific directories -- the queries customized for the differences between database engines. You use PDO, suddenly you're able to target far, far more than mySQL or msSQL.

*** SIDE NOTE *** there are PHP functions that start with "mysql_" -- do NOT use those. There are giant red warning boxes to that effect that for some reason people continue to ignore. Those functions are insecure, provide no mechanism for proper sanitation of values or restriction of scope, and on the whole are something that cannot be dropped from PHP fast enough for my tastes. (allegedly in PHP 6 they ARE going away)

In terms of tools, anything more than a flat text editor and testing in the actual browsers; well... is probably rubbish. Crap like Dreamweaver or outright WYSIWYGS fall into the same category as Frameworks -- the only thing you can learn from them is how not to build a website as they are at BEST a crutch for the ignorant, at worst a blight upon the Internet that needs to be taken 'round back o' the woodshed with a shotgun and put down like Old Yeller.

Though you might want to look into local testing servers -- simply run linux and install the same server software you'd expect to be running, or if on Windows simply install something like XAMPP which will put in Apache, PHP and mySQL locally for you.

One big thing, (picture me ranting like Ballmer talking about DEVELOPERS) TEST, TEST, TEST, TEST, TEST, TEST, TEST, TEST, in every browser you can lay your hands on. Browsers are free, INSTALL them, and at every major change to layout or scripting, TEST IT. I cannot emphasize this enough.

Thanks for your reply, I appreciate the time you must have spent writing this.

The most useful point was definitely "Make the page WORK, then make it work BETTER with scripting if desired".

It's so obvious however there's a huge difference between obvious and having a motto. This is definitely one to stick by especially for someone as creative as myself. I have been seriously considering studying PHP web development as from what I have read it just seems to be far more useful in the long run.

However I would like to point something out that may help you in return but please don't think I'm being rude, it's just a bit of friendly criticism meant with good intentions and meant to have a positive impact.

Much of what you have said is very oppinionated and quite harsh. Whilst it made me laugh for the most part, I would advise that you don't resist changes just because you deem it too easy. For example, I actually made a couple of web pages as a kid using notepad and photoshop 5.0 or something. Everyone else was going "OOH DREAMWEAVER!! DREAMWEAVER!!!". My attitude was "Lol, bloody noobs". However the fact is that the thing had features that would have made my life a hell of a lot easier and that I did not need to change my code oriented approach at all. I could have learned how to manage and organise file strucutres because the program itself is built to reinforce an efficient workflow. I could have learned many other things like css, which I always put off, and I could have used the draw feature to see how some things were coded to reference them or fix my own issues.

What I'm trying to say is be careful not to resist so much and learn to come at things with an inquisitive mind. Instead of asking "How much does this limit me?" ask yourself "what can I make this do?". I understand what you're trying to say about bootstrap but some part of me disagrees. The fact is that with it installed you can minimise a hell of a lot of code that the browser has to read (which drastically improves loading times). To me, it makes sense to install what seems to be a library which web files only need to call on scripts when needed or interacted with, instead of having to load it all at once.

Would you not agree?

Also, you've mentioned a lot of "what not to do's" but what about "what I should be doing"? Can you give an example of a website you find beautifully coded or inspirational and why so that I can understand your perspectives a little better?

I did also mention that if at all possible I'd like to be able to hand the entire thing over so that people with a little bit of knowledge can manage it well, instead of having a perfectly complex code that they can't manage at all. A framework would seem perfect for that however I would like to have built in this as an easy way to change the front end website whilst having the adaptability of a more professional standard of code. I hope I have made a bit more sense explaining this

Thanks for your reply, I appreciate the time you must have spent writing this.

I type 90+ words a minute, for me that was a short post. Probably why I have no use for the TLDR halfwits)

Originally Posted by R. Kane

However I would like to point something out that may help you in return but please don't think I'm being rude, it's just a bit of friendly criticism meant with good intentions and meant to have a positive impact.

I can take it. Unlike most of the people who start crying like 5 year olds and running to the moderators every time someone has an legitimate criticism you find on most forums these days.

Originally Posted by R. Kane

Much of what you have said is very oppinionated and quite harsh

I'm a New England Yankee -- we insult you to your face while giving you the shirt off our back. It's what we do.

The laugh is what I post is greatly watered down compared to what's running through my head on most topics. I know my time at OCS and Instructor training has much to do with that too.

Originally Posted by R. Kane

Whilst it made me laugh for the most part, I would advise that you don't resist changes just because you deem it too easy. For example, I actually made a couple of web pages as a kid using notepad and photoshop 5.0 or something. Everyone else was going "OOH DREAMWEAVER!! DREAMWEAVER!!!". My attitude was "Lol, bloody noobs".

Thing is, I was misled by tools like Dreamweaver when I started on this a decade and a half ago, until a (now deceased) friend gave me a nice pimp-slap with a wet trout as a wakeup call. There is NOTHING of value you can learn from Dreamweaver as if you use ANY of it's automation/tools/templates or even it's templating system, you're doing it all wrong because it does EVERYTHING wrong. From the halfwit mm_ javascripts doing CSS' job, to the templating systems comment placements that can trip rendering bugs, to the WYSIWYG's presentational markup, presentational use of ID's and classes, and how most people just let it vomit up gibberish classes -- the ONLY thing you can learn from Dreamweaver is how NOT to build a website!

Or as Dan Schulz used to put it, "In terms of web development the only thing from Adobe that can be considered professional grade tools are the people who promote it's use."

Originally Posted by R. Kane

However the fact is that the thing had features that would have made my life a hell of a lot easier and that I did not need to change my code oriented approach at all.

My reaction to that is much akin to the John Adams line in 1776 about the benefits of belonging to the Empire: "Benefits? What benefits? Crippling taxes? Cruel repressions? Abolished rights?!?"

Where if I'm the one to do it, they'll run their quill pens through it. I'm obnoxious and disliked, you know that sir!

Most of DW's features that are useful can be found in any free decent text editor, anything else is not how things should be done if you care about visitors actually using the site.

But even most of the 'aids' people find useful in flat text editors are amongst the first stuff I turn off as annoyances that get in my damned way. Like tabbed editing forcing everything into one window, or the illegible acid-trip known as colour syntax highlighting, or crap like autocomplete that I spend half the time correcting and could have just typed it out faster in the first place.

It's all crap that makes things harder to do, not easier.

Originally Posted by R. Kane

I could have learned how to manage and organise file strucutres because the program itself is built to reinforce an efficient workflow.

Which I find DW to be the exact opposite of; it's idea of "organization" seems to be "slap it together in a way you are filled with twice the code needed and endless up-tree linking"

Originally Posted by R. Kane

I could have learned many other things like css, which I always put off, and I could have used the draw feature to see how some things were coded to reference them or fix my own issues.

Which how the WYSIWYG does things is NOT how things should be done, since by it's very nature it's a "presentation first" approach to development.

Though you're right, CSS is a huge hurdle -- but it's a bigger hurdle if you never learn to use HTML properly in the first place; using it to say what things are instead of what they look like.

Originally Posted by R. Kane

What I'm trying to say is be careful not to resist so much and learn to come at things with an inquisitive mind. Instead of asking "How much does this limit me?" ask yourself "what can I make this do?".

To me in most of these things and given the results others vomit up and have the giant set of brass to call a website, the limitations far outweigh any benefits. By their very nature most of these tools and frameworks are the antithesis of why we even have HTML and CSS in the first place, and generally speaking piss all over every site they are used on.

... and the only defense that holds any water for people to be using them is a failure to grasp what HTML is and how to use it properly.

Originally Posted by R. Kane

I understand what you're trying to say about bootstrap but some part of me disagrees. The fact is that with it installed you can minimise a hell of a lot of code that the browser has to read (which drastically improves loading times).

I keep hearing people say that, and all I can say is "HOW?!?" - setting aside the fact that by itself bootstrap is bigger before you even start writing markup than I'd make an entire site template -- I've never seen it used where building it "the right way" without the framework wouldn't be less code and load faster... Generally speaking most HTML/CSS frameworks by their very nature rely on broken methodologies like presentational classes and grids, resulting in bloated non-semantic markup, endless pointless DIV for nothing, and for all the talk of bootstrap making responsive layout 'easier' I sit here wondering why generally speaking the layouts built with it are broken or painful to use on every small screen device I own!

Originally Posted by R. Kane

To me, it makes sense to install what seems to be a library which web files only need to call on scripts when needed or interacted with, instead of having to load it all at once.

Could you clarify that? I have no idea what that even means as it sounds like you are saying libraries do the opposite of what they actually do.

... to be continued after the ridiculous "minute between posts" delay.

Also, you've mentioned a lot of "what not to do's" but what about "what I should be doing"?

1) Semantic markup -- Use the tags for their meanings, NOT their default appearance. The job of HTML is to say what things ARE, NOT what they look like.

2) separation of presentation from content -- really the same things as the first point. NOTHING in your markup, be it tags, classes or ID's should be saying what things look like. This also means you do NOT use the STYLE tag ever(shouldn't even exist!) and the STYLE attribute should be used with an eye dropper; only resorted to when style is actually conveying content since what's a good style for one media target quite possibly has no business even being used on another -- because again, there's more to a website than what it happens to look like on the screen a "designer" happens to be seated in front of.

First, start off with your content or a reasonable facsimile of future content in a text editor and put it into a logical order as if HTML, CSS and all the other fancy stuff never even existed. Content is KING of the Internet, so start with CONTENT.

Then, mark that content up semantically -- which means again saying what things ARE, NOT what they look like. DIV and SPAN obviously don't go in the markup at this point, and for ghu's sake create a logical document structure using numbered headings and HR for what they are FOR... which if you do, all those new HTML 5 structural tags become pointlessly redundant code bloat.

Just to clarify on that, h1 is the top level heading, EVERYTHING on the page is a subsection of the SINGLE H1 on the page. H2's are the start of subsections of the H1, H3's are the start of subsections of the H2's and so forth down the line -- which is why having multiple H1's is gibberish, why skipping over heading numbers is gibberish, why pairing H2+H3 or H3+H4 as title and tagline is gibberish (as was the now defunct HTML 5 hgroup). HR are for changes in section/topic where a numbered heading is unwanted/unwarranted, NOT for drawing lines across the screen. Of course, if all these tags mark the beginning of new sections, why do we need a SECTION tag? If browsers implemented heading navigation like they were supposed to, why do we need a NAV tag? (which does NOT mean 'menu', it means "UA's can skip this section to get to the content). Same even goes for FOOTER and ARTICLE -- and don't even get me started about the pointless garbage ASIDE tag. (which to be frank is about as legitimate in use as CENTER)

Then moving on one adds the CSS and any DIV/SPAN as needed to build the layouts -- adding those DIV and SPAN only once you've exhausted what you can do with the semantic tags... which is why the people who start out with nothing but a bunch of empty DIV IMHO have no clue how to use HTML properly. The layouts (yes, PLURAL!) should be elastic, semi-fluid and responsive.

Then and ONLY then do you start applying colors, backgrounds and style, and bring in the PSD jockey to make it pretty ... though increasingly the 'artists' are only really useful for making the logo thanks to CSS3 making it far, far easier to build clean attractive layouts.

Finally you enhance it with scripting if desired.

Overall it's called progessive enhancement, and it leads to a design that is accessible and gracefully degrades meaning it can reach as many users as possible.

... it's really easy to do; far easier in most cases than the train wrecks of bloated code most people vomit up and call a website. I don't get why so many people rail against the mere suggestion of said approach apart from it making painfully obvious what a load of manure all the scams like Photoshop jockey "layouts", off the shelf templates, and SEO-tardery actually are. There are SO many nube predators out there it's a significant contributor to my "disgust to the point of nausea" with the entire direction of the industry.

Originally Posted by R. Kane

Can you give an example of a website you find beautifully coded or inspirational and why so that I can understand your perspectives a little better?

Five or six years ago, I could have pointed you at several -- but with the sick fad and sicker buzzword of HTML 5 driving web development back to the worst of 1997 style practices, bloated garbage frameworks like bootcrap and jquery being slapped on websites that don't need them, and the general "sleaze it out the door as fast as possible who cares what it costs us in the long run" attitude -- much less the death of the five or six developers I had the least bit of respect for; I find it hard to find any sites other than my own to point you at.

Took their design concept and rewrote it using the methods I advocate. It's semantic markup, semi-fluid elastic responsive design, built using progressive enhancement. The reason I point at this one is I included the stage BEFORE style is applied, showing why semantic markup is so important:http://www.cutcodedown.com/for_other...markupRaw.html

Since that's basically what non-visual UA's like search engines, screen readers, braille readers and so forth use. (and why HTML 5 feels the need to piss that away I have no clue).

What really makes that rewrite so interesting is that the HTML+CSS is the same size as the OP's "table's for nothing" HTML.

Is built using the same methodology, though it's reaching just about five years old now so the code is a bit out of date by my current standards. IMHO if you don't look at your own work from a year ago going "what was I thinking" you're in the wrong business!

That page is good for a laugh as the EWI owners love the design (colors and patterns based on the product box), and other designers hate it -- but regardless of the graphical stuff, the page gracefully degrades, is built pretty much using the techniques I advocate, and is fully responsive, elastic and semi-fluid which is how if you look in this directory:

You'll find screencaps of all the various different ways that ONE codebase can show itself -- be it different font metrics, screen widths, or device capabilities.

I'd also point out that despite all the 'style' that home page is what? 98k in 22 files... and that's including ALL the CSS for the ENTIRE site. (20k uncompressed, 5k compressed). Nowadays it would probably be even leaner as I've upped my game even more. Most 'modern' developers thanks to using garbage frameworks would end up with two to three times that before they even start plugging in content just in scripts and CSS... and typically thanks to those frameworks end up with two to ten times the HTML+CSS I do; but then claim it was "easier" and "faster"?!? On what planet?

If I had used bootcrap the page size would have doubled or more! I cannot fathom how anyone can see any legitimate benefits to using things like bootstrap, jquery, etc, etc... It's a bunch of fat bloated nonsense that has no business being used in 99% of the cases people use it. It makes more work, more code, and is in no way "easier" in any sense of the word.

Same goes for nonsense like LESS, SASS and OOCSS -- if you are finding benefits from using them, you're probably doing it all wrong. These three in particular all reek of a failure to grasp how to use selectors and inheritance properly, much less a "semantics, what's that?" attitude.

The ONLY explanation I can find for people to make such claims about 'frameworks', 'preprocessors' and other such tools is a failure to grasp how HTML and CSS work, what they are, and why they exist; and to be frank, if you don't understand those, you probably have no business building websites in the first place!

... which is the problem with such tools, they often delude people who have no business making websites into believing they can. That they're able to slap an inaccessible bloated slow loading very pretty but ultimately useless train wreck and have a handful of people pat them on the back regardless of what crap it is -- that just further fuels the delusion.

... and I suspect the ONLY reason they defend such sleazy, broken practices as vehemently as they do is the cognitive dissonance akin to that found amongst doomsday cultists after the predicted end of the world doesn't happen.

... and wow, continuing to THREE posts. What, did they lower the limit to below 10k now?

I did also mention that if at all possible I'd like to be able to hand the entire thing over so that people with a little bit of knowledge can manage it well, instead of having a perfectly complex code that they can't manage at all. A framework would seem perfect for that however I would like to have built in this as an easy way to change the front end website whilst having the adaptability of a more professional standard of code.

Given that the method I'm advocating is less markup, less CSS, and using HTML and CSS for what they are for, what's simpler than that? Adding a framework to it that's going to mean vague/pointless classes and making it needlessly and pointlessly convoluted is going to make it 'easier' how exactly? You seem to be expecting from frameworks the OPPOSITE of what they actually deliver.

Though it is often what the advocates of such systems CLAIM. I swear, it's just placebo effect or again, they never learned to use HTML and CSS properly in the first place.

There's something I learned about programming back in the late `70's that still applies well today -- "The less code you use, the less there is to break" -- a concept lost on the folks to just slap together a bunch of off the shelf frameworks and blindly hope it works.

Mind you, not learning HTML and CSS properly isn't the fault of most of the people trying to learn -- it's the fact that there's so much bad advice (W3Schools) and horribly outdated tutorials out there. Simple fact is most of the AUTHORS writing books on the subject have their heads wedged up 1997's rump, so it's not a big surprise when people trying to learn end up led down that same garden path to failure. The needlessly convoluted legalese of the "specifications" certainly doesn't help matters either -- and yes, I made "air quotes" with my fingers with the word "specificiations". When simple terms like "empty" and "importance" don't mean in the specification what most people think they mean, how bad is the misunderstanding when they get into actually complex topics?

Seriously, when the specification says "empty" they mean a tag that CANNOT contain content, not a tag that doesn't contain content. So far as the specification is concerned this:

<div></div>

Is NOT an empty tag. When the specification is that fejiggered on a simple word like 'empty' -- how do they expect anyone to follow more complex concepts in it?

I hate the layout because it doesn't feel natural. However I'd like to be able to create something a little similar in purpose. Including logins, profiles, reward systems, progress tracking, statistics and database aspects, the community aspects etc etc

This is a great example of a core part of what I'd like to have (again, in terms of purpose not design)

When it comes to the design, I really dislike the layout, but I like the clean and modern look of it.

What might you suggest for such an undertaking?

Also does anyone else have any oppinions on this? Was kinda hoping for more than one guy to bounce ideas and workflow ethics / preferences with

It's a laundry list of how not to build a website, and it shows badly. The massive fixed height background, massive footer (WHY do people do this) -- and the markup reeks of everything wrong with development today like the endless classes for nothing, static scripting in the markup (caching, what's that?!?) so on and so forth.

There's no reason one couldn't provide the same functionality without all that garbage, the first step would be to figure out what you want on the page, mark that content up semantically, and THEN style it letting the content dictate the layout, not the other way around.

... and really if you were to create such a site, what I said pretty much applies. You first figure out what's going to be common to every page -- site name, navigation, etc... then follow my guide with some form of placeholder in the content area. You then go through and figure out each page and each function you want it to do, and make pages using that base template to do it.

When it comes to things like logins and tracking, that's PHP or some other server-side languages job, most likely with an SQL engine. Stay to that same process of figuring out what you want it to do, make it do it, and THEN make it pretty.

Though a site of that nature is a very large undertaking from scratch, it's not something I'd suggest trying to use an off the shelf solution for. Just take it one step at a time; break the massive undertaking into smaller tasks, and tackle those tasks in turn.