Adult Content Warning

This community may contain adult content that is not suitable for minors. By closing this dialog box or continuing to navigate this site, you certify that you are 18 years of age and consent to view adult content.

How do I make a website?

Discussion in 'Technical Board' started by Rob4Broncos, Aug 2, 2011.

  1. Rob4Broncos

    Rob4Broncos
    Expand Collapse
    Emotionally Jaded

    Reputation:
    8
    Joined:
    Oct 19, 2009
    Messages:
    1,846
    Location:
    Brooklyn
    Can anyone here point me towards any reputable tutorials for creating a website? My mom makes some killer artwork, and has started to dabble with the idea of selling it online. She came to me asking if I know how to build a website, but I know dick. I barely know HTML, and if something like this were to be done, it'd have to be done right. Which means it has to look a lot nicer than some middle-schooler's Geocities page from 10 years ago.

    I'm all ears for any ideas. I know I can simply type 'website design' into Google (in fact, I have), but I don't know which sites are good and which sites suck. I don't have good judgment for that.
     
  2. Nettdata

    Nettdata
    Expand Collapse
    Mr. Toast

    Reputation:
    2,869
    Joined:
    Feb 14, 2006
    Messages:
    25,784
    This is not simple, by any stretch. That's why I made it a separate thread.

    First, go find the book "Don't Make Me Think" and read it. It's got nothing to do with technology, just how the layout and user interface stuff should work.

    Then figure out how professional you want it to look.

    Then figure out WHAT you want the web site to do. Not how, just what.
    -- display pics
    -- email lists
    -- blog
    -- store front
    -- whatever

    Odds are if you want something more complex than a simple cheesy single page layout, you won't want to write raw HTML... you'll want some sort of framework that is easy to configure and run.

    Look at:

    <a class="postlink" href="http://www.joomla.org/" onclick="window.open(this.href);return false;">http://www.joomla.org/</a>
    <a class="postlink" href="http://drupal.org/" onclick="window.open(this.href);return false;">http://drupal.org/</a>

    There are others, and I'm sure people can suggest more. Basically, find something that will meet the requirements that you outlined in the "what it has to do" list.

    There are also localized applications that can make web sites for you on your local machine and you can just upload them to a web page.

    Then figure out where you want to host it.


    That's just a few random thoughts, but hopefully others will pitch in with their own $0.02 and you'll get a better idea.
     
  3. Juice

    Juice
    Expand Collapse
    Moderately Gender Fluid

    Reputation:
    1,389
    Joined:
    Oct 19, 2009
    Messages:
    13,429
    Location:
    Boston
    Honestly if youre looking to sell your moms art, her best bet is to sell it on Etsy. Is your mom a somewhat known artist? If not its going to be tough for a couple of reasons:

    -Overhead. If you learn to build your website (which Ill give some links below), youre still going to have to pay for the hosting cost and any other maintenance fees. It will deplete the value of her work if she has to worry about this, especially if nothing sells.

    -Exposure. Selling it on a site like Etsy or another art dealer will give her exposure to an already established customer-base and she wont have to worry about driving traffic to her site, which will be very tough if people dont know her widely.

    Time. Im assuming she wants to get started selling soon, correct? Not knowing anything about web-design and associated languages, (HTML, CSS/PHP, Cold Fusion, JSP, etc) will take a long time to learn, work with, and master, even if you devote yourself to it full-time. The best bet for this is to outsource it to anyone with a design portfolio who wont charge a high premium or maintenance fees.

    If youre still interested after that, my recommendation would be to start looking into a WordPress site. Its much easier to learn than doing anything from scratch and its very flexible will low costs. Its support staff is very helpful with setting up web businesses with paypal links, etc. Yea, its technically a blog site. But for your purposes, it should suit your needs.

    The best way to learn is here.
     
  4. Binary

    Binary
    Expand Collapse
    Emotionally Jaded

    Reputation:
    388
    Joined:
    Oct 21, 2009
    Messages:
    4,079
    I agree with the above that learning to code it from the ground up is not a valuable process for what you are hoping to accomplish.

    Content management systems like Wordpress come in thousands of themes which can all be completely customized, yet still retain the convenient and friendly back-end that allow the addition and management of content without the hassle of hand-editing a page at a time.

    I haven't done much with anything except Wordpress, but I have done a few sites with Wordpress and the beauty is that you can work the site up and then actually hand it over to be managed by the buyer. I'm not a big fan of maintenance because it's often not really a money-maker and is more of a pain in the ass.

    Wordpress worked great for what I wanted. I scoured themes until I found one close to something I liked, then edited what I didn't like by hand. Someone else did 90% of the grunt work. After that part is done, there are thousands of plugins to add features, and anything not covered by a plugin is probably already documented if you search Google for <what you want> + "Wordpress" - people have tons of code snippets to do or tweak whatever you want.

    I'm not really a web developer, and you don't sound like you want to be one either, so this kind of thing is perfect because the resources are all out there to guide you.
     
  5. scootah

    scootah
    Expand Collapse
    New mod

    Reputation:
    12
    Joined:
    Oct 21, 2009
    Messages:
    1,750
    I learned to build websites from the ground up, and as an exercise in learning to build websites, it was worthwhile. I guess. My skills are largely out of date and it's a hard market to find a career in because you compete against the third world and struggle with assholes who won't realize that paying less for shit isn't a good alternative to paying more for something that does the job. But it's not a bad place to start learning to code. But for your stated goal - I would just go with Etsy or WordPress if you don't want to use Etsy for some reason. Even Google Pages gives you some really great tools as part of their apps product.

    If you have a purely educational goal of building websites - you should be asking a bunch of questions like Application layer (the code), Data layer (DBA), Display layer (the pretty UI?) or Combination of some/all of those things. Because they're all very different tasks and very different technologies. Most people working in this space specialize for one channel or another and often specialize for a fairly narrow set of technologies within those channels. Being a generalist and doing all of them acceptably is hard. Doing them all well is almost impossible. If you want to learn to code for educational purposes, google Learn CSS and Learn HTML5 for display layer stuff. Learn PHP and Learn Ruby for application layer.Google Learn SQL and SQL Normalization to learn about databases. Remember that MySQL* is what beginners use. Postgress, MSSQL and Oracle are what grownups use. Cassandra and other non relational databases are what experts use. Microsoft Access is terrible and you should never use it. Use a managed hosting service where they just give you FTP credentials and CPanel or something if you don't go with a hosted framework. When you decide you want to manage your web server and go get a virtual host from Amazon or Rackspace or someone, understand first that it is a HUGE amount of work to do right, and incredibly easy to do wrong. Google Learn Apache, Learn CentOS and Learn BASH - and two years later when you have actually read a tenth of the resulting first page results, come to loathe human life, grown a beard and become allergic to natural light, understand that you are still going to fuck up in painful ways. Sys admin is a hard, boring and frustrating job that nobody appreciates you doing. It does pay really well if you get good at it though.

    If you want to make a living from writing code, learning to use ASP.Net and in particular C# is worthwhile. But it means corporate jobs. Learning IIS as well as Apache can also be worthwhile.

    Don't Make me Think is well worth a read. But to summarize, because idiots don't ever do the job properly - what's the difference between Google and Yahoo? And what's the difference between Facebook and Myspace? The difference is that the ones who succeed run on clean, simple and elegant user interfaces and don't give users the power to influence other user's interfaces. Giving idiots access to the display layer destroys websites. But is probably overly convoluted for what you want.

    A brief primer on e-commerce for beginners, you may be tempted to investigate animated gifs, small flash animations, splash pages, landing pages, disclaimer pages and all other manner of nonsense. Remember that the average goldfish has a far greater attention span than users looking to buy art on the intarwebs. Any time you delay people getting to what they want, or make them have to think or work to find what they want, you increase the likelihood of them getting board and going back to facebook. Don't make people think, work, or have to put in any time or effort that isn't absolutely necessary, or you hurt your sales. Any time you break the back button, the right click function, or any of the other standard browser protections - you hurt sales. And nothing you do will stop people saving pictures of your mom's art to their own hard drive, so don't bother trying.

    And if you're selling things? Don't put adds up unless there's a demand for your product - which for a new artist trying to sell their produced materials, frankly, there isn't. For a small e-commerce solution, your website is a cost. Sales are your revenue channel and monetization mechanism. Porn is the only time you can advertise and sell from a small resource without diminishing your sales potential, and even then it's difficult.

    Managing credit cards in your own database is more work than it's worth. Complying with Visa's handling rules is essentially impossible if you run your own credit card processing facilities. Find a credit card processing agent and use them. Paypal are expensive, but easy to use and until you have enough sales to justify the time to build a better webpage, just use them. Unless you are losing a huge amount of money in processing fees, and I mean at least 4 figures a year, it's barely worth looking elsewhere except for personal edification. And unless you're talking a 5 figure a year loss of sales percentage to your credit card handling agent - it's absolutely not worth trying to process them yourself.

    *Yes I understand some people who aren't morons use MySQL and use it well. But if that's a quarter of a percent of MySQL users, I'd be amazed. Also, I know my suggestions for app languages, DB products and linux distro and shell scripting language will produce substantial frothing and rage. The suggestions reflect what's easy to find and currently well suited for a self taught geek to pickup from the intarwebs.
     
  6. Nettdata

    Nettdata
    Expand Collapse
    Mr. Toast

    Reputation:
    2,869
    Joined:
    Feb 14, 2006
    Messages:
    25,784
    With all due respect, you're wrong.

    (I've been a professional development/production DBA for 20+ years, specializing in Oracle clusters).

    Define what you need it for, and then pick the right tool for the job.

    Cassandra and other non-relational databases are only to be used in specific scenarios where you don't give a fuck about being ACID compliant. Sure, they can handle the large-scale distributed data requirement, but you'll never see a store front or banking site running on it, and for good reason; total lack of consistency of data across the instance. Whenever cash transactions, or inventory availability is an issue, it won't work due to the lack of data consistency. Anyone who thinks it does won't be working on my apps.

    MySQL is my database of choice for my current Ruby on Rails app because it's best integrated into the RAILS stack with ActiveRecord. Postgres, while technically being a "better" database and much more like Oracle, is usually my raw database of choice when it comes to Free software, but it doesn't integrate worth shit into Rails. 95% of Rails projects have been designed to run with either MongoDB or MySQL, so use what everyone else is using. It'll work, and it'll give you the most support via Google searches when you can't get shit to work.

    MySQL doesn't scale as well as others, so that's where you have to design your app properly so that you take that into account.

    This is a pretty good overview of the "fancy" new noSQL DB's that are being bandied about recently:

    [​IMG]
     
  7. scootah

    scootah
    Expand Collapse
    New mod

    Reputation:
    12
    Joined:
    Oct 21, 2009
    Messages:
    1,750
    I did concede in the footnotes that some people use MySQL for very good reasons... I'm just saying that you can throw rocks at a crowd of MySQL users for a year, and if you hit one person who's using MySQL for very good reasons, and doing a decent job of it, you should buy a lottery ticket.

    I'm sure there are MySQL DBA's out there who are very good. But I've never met one. I know SQL/Oracle DBA's who do very good work with MySQL - but still identify as SQL/Oracle DBA's. But MySQL is a product to learn on, and then maybe use for very specific needs in a dark and uncertain future. People who get paid more than the checkout supervisor at Barnes and Noble very rarely spend any significant time in that space. And again, I'm sure there are exceptions, but if they outnumber people who've pitched a perfect game in the majors, I'd be fucking amazed.

    And my point with Cassandra was it does have very valid uses - but despite what every 'zomg, you're building a website? You should go NORDBMS!' article says - beginners have no business working in that space. It's phenomenally unlikely that as a beginner, you'll touch a solution where it's appropriate, and if by some chance you do need it - it's not a beginner friendly product. Shit, it's not even competent but unenthused DBA friendly. It's a product where if you have a need, you should be paying an expert to manage it for you.
     
  8. Nettdata

    Nettdata
    Expand Collapse
    Mr. Toast

    Reputation:
    2,869
    Joined:
    Feb 14, 2006
    Messages:
    25,784
    Actually, the reason you see so many MySQL idiots is because LAMP (Linux Apache Mysql PHP) has been pretty well the de-facto tech stack for learning easy web development for years. In other words, every wannabe-geek living in their mom's basement at one time or another has hacked together a MySQL driven app. As a result, it's probably the most used database on the planet, but the skill-set of those people using it is non-existent. It's like they're driving a mid-level race car but can't get it out of first gear.

    There are a lot of good MySQL guys out there, but too many entry level self-proclaimed MySQL devs don't know fuck all; they just think they do because they fired up PHPbb on their laptop. They have no idea what normalization is, never mind proper db design.

    And MySQL is not as bad as it was... it's actually come a long way in performance and management. It's still one of the fastest reading DB's out there, which is why it's so good for a lot of majority-read web sites. And it's scaling and stuff doesn't totally suck any more. I'm using it for my new web-hosted app that we're launching next week at SIGGRAPH. Still, Postgres is way more mature, and stored procedures are a life saver.

    A ton of the noSQL databases exist because they are nothing more than a basic key/value store, and a vast majority of non-transactional web sites (content only, no financial transactions, etc) don't require proper data consistency/transactional support, and it doesn't have to be current immediately across all nodes. Most of these have come about as a result of the huge surge of social web sites which quickly outscaled typical database capabilities, or the processing of vast amounts of data better done in parallel and distributed (like MapReduce, etc).

    If you need a simple data store, like some sort of database for a simple content management system, Redis or Mongo is simple and easy to use.
     
  9. rei

    rei
    Expand Collapse
    Emotionally Jaded

    Reputation:
    16
    Joined:
    Oct 19, 2009
    Messages:
    1,273
    Location:
    Guelph, ON
    I find Postgres is a way more valuable starting point than MySQL, but my opinion in the matter is pretty much the same to defend as why I prefer vi over emacs (it's all religion, man).


    The biggest takeaway from (re)learning website coding is do NOT get stuck in your ways. I tought myself HTML when I was ten years old, and I can't break out of what I know from then. CSS was (and in some ways still is) a nightmare for me just because of how deadlocked I made myself. And that's not even getting into dynamic web (which i actually find easier as while I have the design sense of a blind leper I can code fairly well) - just always be ready to accommodate changes and progresses.
     
  10. Nettdata

    Nettdata
    Expand Collapse
    Mr. Toast

    Reputation:
    2,869
    Joined:
    Feb 14, 2006
    Messages:
    25,784
    Pick the tool to fit the application, don't build the application to fit the tool.
     
  11. captainjackass

    captainjackass
    Expand Collapse
    Experienced Idiot

    Reputation:
    0
    Joined:
    Oct 30, 2009
    Messages:
    102
    Website question to all the tech gurus out there!


    I work in a department that's part of a large, monolithic company.


    Well, we have a little 'section' that's part of the giant company website -- but it appears to have been neglected for at least a decade, and is embarrassingly bad, even to someone with my level of experience.

    Anyway, my question:

    A team of ours including myself has been tasked/ authorized to revamp/ create a website that does not look like an abortion - as a sort of volunteer thing. I know projects like this can get out of hand -- but truly, this website will not get out of hand. It will be mostly content-focused and probably minimalist in nature, aside from some nice looking aesthetics.

    That being said, here's one challenge:

    Say we want the website to be a different domain name (for simplicity and self-containment - the monolithic site has lots of -- problems) --- BUT we want the website to be behind the monolithic site's login screen.

    It there a way to make our department website ONLY accessible through a page in the giant, monolithic site? Like only accessible through a link or portal within that site (which is behind a login system)?

    Essentially we just want a different domain name/ management system, but we do not want to have to replicate the already complicated login system.

    Is this feasible, or should we just attempt to create a page within the giant website, code-spaghetti and red-tape laden as it may be?