• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Give Me the Mile-Up View on Dynamic Web Tech, Please

Status
Not open for further replies.

Imbarkus

As Sartre noted in his contemplation on Hell in No Exit, the true horror is other members.
Hey guys. I have a site I have built under the basic, old-school HTML/CSS links/hierarchy model. Web design is not my full-time job by any means, this is really a side-project for fun, edification, side-money, etc. I have earned about $.07 from Google AdSpace impressions which is $.07 higher than my expectations.

I'm no technological slouch, though, I feel pretty comfortable with HTML and CSS to at least handle site design, and can handle my own graphics and media. I prefer learning base-level as much as possible rather than only understanding what is going on through previewing is a WYSIWYG editor. As such I haven't really come to rely on site-editing tools then ease any link management. I open pages in Dreamweaver individually and then use the program as a glorified text HTLML/CSS editor with markup.

This is pretty unwieldy, over time. I also would like to move away from home pages with trees of links to content, to a "blog-style" format that highlights the most recents pages, and allows me to add new content at the top and automates the "Next" process, which I don't even really use right now.

I see service like Square Space that offer all this stuff automated, but that kind of thing really isn't for me. I have a more "hands-on" most and I don't like the limitations I get with most of these services. I looked into WordPress for similar reasons but, again, all I can find is "Welcome, type up your content" type of "get started" materials and nothing that gives me an idea of what the actual technologies are at play and what I can do with them. Just that same happy WYSIWYG interface.

I also am considering moving away from the hierarchy entirely. I am aware that many sites use database integration and actually store the HTML pages in a DB, or at least pointers to them, so they can be served up in response to DB queries. Articles etc would have meta-tags added and would be served up in a page list structure based on a link clink or search.

I'm rather fond of this guy's simple database site structure:

http://www.dreamdawn.com/sh/

I have this weird gap in my knowledge between what I know and what he has. I need a mile-up view on which tech to learn that leaves me hosting-independent, but grants me the abilities I'm seeking.

I have a good amount of database query and integration experiences with MS SQL. I know most sites will probably look to MySQL for database hook, mine included as its Linux hosted. I feel capable of handling code-level stuff there as well.

People have told me I need to learn another programming language, PHP, PERL, etc to accomplish what I'm considering. That's fine (within reason, I'm 43 and no spring chicken), but pulling up a PHP or PERL tutorial doesn't connect the dots for me on what functions I should learn, how these technologies interconnect, where my learning focus should be. It's kind of hard to get the mile-up view of all the relevant web technology questions of, like, 20 years ago. So help a clever old man out and give me the skinny, please? Thanks.
 

Parablank

Member
I love ruby on rails.

It's pretty easy to pick up and there's a huge community with lots of tutorials and gems (plugins). It emphasizes convention over configuration (CoC), so everything just works, no extra configuration required (for example, if you need an image, just drop it into assets and just call it from your view, rails takes care of everything).

I strongly recommend this book (it's free).

Installation of Windows is pretty difficult and since you're doing small stuff it's probably okay to use packages like RailsFTW or RailsInstaller. If you're running Linux or Mac you should take the time to get RVM or rbenv.
 
If you're just trying to maintain a blog or a content site, just learn how to use Wordpress (or equivalent) and maybe some PHP so you can easily change stuff around.
 

Fauv

Member
I love ruby on rails.

It's pretty easy to pick up and there's a huge community with lots of tutorials and gems (plugins). It emphasizes convention over configuration (CoC), so everything just works, no extra configuration required (for example, if you need an image, just drop it into assets and just call it from your view, rails takes care of everything).

I strongly recommend this book (it's free).

Installation of Windows is pretty difficult and since you're doing small stuff it's probably okay to use packages like RailsFTW or RailsInstaller. If you're running Linux or Mac you should take the time to get RVM or rbenv.

I would recommend Rails as well, and especially that book. It might take a little extra effort if you don't know any programming languages, but Rails does a lot for you, to the point where you'll spend most of your time writing the HTML/CSS unless you want some more complex functionality.
 

dsigns1

Member
If you are familiar with MSSQL then learning php and using MySQL shouldn't be too hard for you and will accomplish what you are hoping to do.
 

riotous

Banned
I'd never recommend someone in your situation learn programming and build a custom CMS (content management system.)

There are tons of web hosts out there that auto deploy Drupal and other open source CMS solutions on cheap hosting.

https://www.drupal.org
 

soco

Member
Most sites don't store the pages in the database, they store various portions of the page in a form in the database. Likely, there are HTML / Scripting language hybrid pages out there that act as structural and stylistic templates. The key reason to do this is to have a fairly clear separation between the content, the structure, and the style.

A decent example of this is wordpress. Page contents and blog posts are stored in the database, and may contain HTML fragments, but you can easily change the blog's theme (which is a series of php/html and css files) and the content will show up looking pretty cohesive in the new theme.

Many web frameworks do exactly this nowadays, but it could be overkill for very simple websites. If you're doing a site for a shop or something that doesn't need to have a blog or something, then it's probably a bit of overkill. It won't necessarily solve your link management issue (though it could make it slightly easier depending on the framework).

My framework of choice these days is Django. Python is super simple to learn, the support is pretty large and is growing quickly. The only problem is support on shared hosting. There are quite a few that support Django, but not all of them. There's plenty of good tutorials out there, and it separates the code from the HTML templates, which can make it even easier.
 

railGUN

Banned
SquareSpace does have a 'Developer Mode' which is highly customizable, but still contained within the SquareSpace platform, but it's pretty advanced, and uses JSON template or something (I can't remember the specifics). But you can start with a pre-existing template and then fully customize and alter it (on the CSS / HTML / Javascript level). You access the template stuff via SFTP and use the CMS to add content etc.

You can also start from scratch and build the template / site completely yourself. I did this once (using some base code), before they let you load their templates, and I fumbled through it but I just use their existing templates to build sites for clients, since it's not something I can dedicate a ton of time to. Now that you can expand on their templates though, I should give it another look.

http://developers.squarespace.com/ if you're interested.
 

Imbarkus

As Sartre noted in his contemplation on Hell in No Exit, the true horror is other members.
LOL I'm getting there maybe I should have asked for the 1,000 mile view!

WordPress is a CMS. Ruby on Rails is framework...? PHP is a programming language.

What does a "framework" consist of or refer to?

This change I'm considering also seems to be something that limits the "local portability" of the site, right? I'm moving in concept from editing a local file hierarchy and uploading it to... some sort of new concept of workflow? The hosting is Linux but it's shared, not a box I can install what I want.

I'd still like to understand a bit more of the concepts of what is actually still on an HTML page, what is stored in a database, and how much programmability it takes to answer a query and serve up the married result.

WordPress, for example. What does it do?
 

Fauv

Member
LOL I'm getting there maybe I should have asked for the 1,000 mile view!

WordPress is a CMS. Ruby on Rails is framework...? PHP is a programming language.

What does a "framework" consist of or refer to?

This change I'm considering also seems to be something that limits the "local portability" of the site, right? I'm moving in concept from editing a local file hierarchy and uploading it to... some sort of new concept of workflow? The hosting is Linux but it's shared, not a box I can install what I want.

I'd still like to understand a bit more of the concepts of what is actually still on an HTML page, what is stored in a database, and how much programmability it takes to answer a query and serve up the married result.

WordPress, for example. What does it do?

I'm by no means an expert, but I have used Rails to make a site that I think is similar to what you're trying to do. I haven't used Wordpress, but as far as I know, it's not for you if you're looking to get your hands under the surface.

What they mean by a framework when they talk about Rails is that it isn't its own language. All it does is set up a bunch of structure for the back-end written in Ruby, which you can then easily customize to suit your needs by writing your own Ruby code.

I would highly suggest reading through the opening of the book Parablank linked to see if Rails can give you what you want.
 

Imbarkus

As Sartre noted in his contemplation on Hell in No Exit, the true horror is other members.
I'm by no means an expert, but I have used Rails to make a site that I think is similar to what you're trying to do. I haven't used Wordpress, but as far as I know, it's not for you if you're looking to get your hands under the surface.

What they mean by a framework when they talk about Rails is that it isn't its own language. All it does is set up a bunch of structure for the back-end written in Ruby, which you can then easily customize to suit your needs by writing your own Ruby code.

I would highly suggest reading through the opening of the book Parablank linked to see if Rails can give you what you want.

I read the first couple of pages yesterday and it started to clear a couple of things up already. I hadn't really run across the idea of Domain Specific Languages before, and beside SQL stored procedures the last real "code" I had written was C-64 Basic.

So I assumed I would have to learn a programming language ground-up and was told PHP and PERL were the ones that would interface with Linux-hosted web tech the best, and ASP was going to marry me to Windows hosting.

But as another poster pointed out, this amounts to building my own CMS, complete with all the "what do I even need it to do for me?", "how do I make sure it's secure?", and "where can I find a rundown of best practices so I don't have to reinvent the wheel?"

I'm still struggling a bit with the terms and concepts, but learning. So to use Ruby on Rails I'd need my host to support and install server-side the language of Ruby if they haven't got it already.

Rails themselves are... program objects (chunks)? Completed programs? Tell me more about this structure for the back end and how it works, please.

Thanks for your time.
 

Katori

Member
To talk a little bit about WordPress, yes it is a CMS (Content Management System).

To convert your website into a WordPress site, basically what you'd do is create a new WordPress template, and break down the chunks of your site such as header, footer, sidebar and the area where the article content is displayed into different files. WordPress would then assemble these automagically when a page is requested. This is pretty much an automatic process--name a file header.php and use the very simple php function "get_header();" and you've finished retrieving the header.

From there, you use the WordPress backend to add your pages and blog posts (WordPress makes a distinction between these two taxonomies) into the system, only the article content (which can of course include HTML), and give them the appropriate URLs ("permalinks"). Then, when the user hits that URL, they get the whole page, including your header, footer, sidebar, etc.

Most CMSes, including Drupal which was also mentioned in this thread, are going to work the same way. They also have a huge variety of templates you can start out with if you don't feel like making your own. That's the great thing about them--you can get all of your content in and worry about the layout/template later. There are WordPress sites on the web upwards of ten years old that still have their posts, and they don't have to go back and edit each page when they update the theme of the site.

I'm at work right now but I hope this helped. Let me know (in this thread or PM) if you have any specific questions, I'm a WordPress specialist, so I'll be happy to help out.
 

Aeonin

Member
I'm a WordPress specialist, so I'll be happy to help out.

Hi there,

I'm attempting to get back into web development (did HTML in middle/high school) and have some experience with Wordpress. But I'd like to get much better at it, any tips on where Wordpress tech/plugins is headed, especially for small business websites?

Any books you recommend or sites that have great info?

Thanks alot
 
WordPress has exploded in popularity over the last 5 years... Huge year over year growth to become the most widely used CMS (Content management system) in the world.

There are two variants of WordPress: the hosted Wordpress.com solution, which is similar to a SquareSpace or Tumblr website, and the self-hosted, self-controlled Wordpress.org solution, which packages up the Wordpress software and allows you to deploy it onto your own hosting environment.

I'm assuming anybody who has an interest in WordPress is going for the latter, the Wordpress.org, self-hosted solution.

Here's the deal:

Wordpress is an open-source, PHP and MySQL-based content management system that supports pages, blogging, and media out of the box. PHP is a popular scripting language that (in this case) produces HTML pages. MySQL is a popular open-source SQL database system. You install the WordPress package on some server space, either a web host that you rent space from, or you could install it locally on your own computer if you just want to try it out. WordPress has documentation for both of these methods, and it regularly takes about 5-minutes for somebody to install WordPress who has passing experience in web technology. Wordpress works by storing your website data in a database, MySQL typically, and that data is queried into templates that are written in PHP, with structure provided by HTML and CSS. No HTML pages are actually produced in the file system by Wordpress, they are dynamically generated by the PHP when a page is queried, and that content is dynamically accessed by Wordpress.

So, what are some pros and cons to WordPress for the average user?

Well, for one, Wordpress was designed primarily as a blogging platform, and then over time, has emerged to be more of a general CMS. The result is that WP out of the box serves up pages just fine, but usually requires some manipulation for it to match similar content management systems in functionality. From a more technical point of view, Wordpress is generally slower than many more nimble web content management systems and blogging solutions, and it relies on PHP and MySQL which are sort of out of style. Security can also be an issue with Wordpress. Every WP developer that I know has had experience with at least one Wordpress hack. I personally had a terrible WP hack to deal with this past year introduced by one of my clients that ended up infecting all of my development sites... It sucked. But, the numbers speak for themselves... Wordpress powers nearly 25% of the internet. It is by far the most popular and successful CMS of all time.

What are the pros? Well, they're myriad. With it being the most popular CMS in the world, there is an enormous amount of plugins, themes, documentation, and specialty content to fit just about any business or need. When you run into an issue, you're guaranteed to be the 100,000th person to run into that issue so it can be easy to figure out the problem.

(FWIW, I'm biased, I own a freelance company that specializes in Wordpress deployments for small and medium sized businesses)
 

Aeonin

Member
(FWIW, I'm biased, I own a freelance company that specializes in Wordpress deployments for small and medium sized businesses)

Any advice for someone wanting to freelance for small businesses (ie: me)? Thanks alot!

I didn't know that wordpress was slower than other implementations. My personal wordpress site is quite slow, but I thought that might've been because I have yet to optimize my images.

Do you customize templates or do you create your themes from scratch?

Thanks again.
 
Any advice for someone wanting to freelance for small businesses (ie: me)? Thanks alot!

Sure, WP is a huge boom and there's a lot of money in it :)

Tuts+ has a good Wordpress developer beginner bundle that goes over an introduction to PHP, CSS, and HTML in so far as it pertains to WP and then a basic theme / plugin development course:

https://tutsplus.com/bundles/wordpress-developer-launchpad

I think the whole thing is $30 and Tuts+ is usually pretty good.

WPMUDev (which is a website that I normally think is junk) has a new WP-users guide to PHP and scanning it over it looks to have some good resources:

http://premium.wpmudev.org/blog/getting-started-with-wordpress-development/

One quick thing, I would generally avoid books on WordPress, unless it's an intro to WP templating or something. Most of the books I've looked at about WP are either very out of date, cover topics that aren't relevant, or spend 50% of them covering something like setting up a server, or an intro to HTML and CSS... I think the tutorials you'll find online are probably better.

Finally, my favorite "quick resource" for WP template building is this handy WordPress Template Heirarchy map: http://wphierarchy.com/ I use this more often than I should.


I didn't know that wordpress was slower than other implementations. My personal wordpress site is quite slow, but I thought that might've been because I have yet to optimize my images.

It's not that Wordpress has to be slow, but Wordpress bloat has been a criticism for quite a while, and many of the most popular plugins and themes do not do a good job in speed optimizations. Wordpress can be optimized to run more quickly by using intelligent business decisions, but more often than not, the world's WP websites are bloated and slow.

Do you customize templates or do you create your themes from scratch?

Thanks again.

I start all of my themes off _Underscores, "The Starter Theme for Wordpress" which is a blank starter theme that Automattic Inc, the company behind Wordpress, uses to start their themes. I also use the Foundation framework by Zurb. I've created a template framework based off of Foundation and Underscores that I use for almost every project. I'd also recommend Bones, another popular starter theme.

Why not use a popular framework like Genesis, Thesis, or whatever others that have popped in in the last 4 years? First, I've had bad experiences with them... I think Thesis is junk and legitimately the only reason why I think it got of popularity a few years ago is because they had a lucrative affiliate network system. I think Thesis is one step above a pyramid scheme. I've never used Genesis but I've been soured to the WP Framework system since my experiences with Thesis. Also, I don't use frameworks because most of the sites I build are based on designs that my client's have, and so I'd spend more time undoing the styling of Genesis or Thesis or whatever else than I would spend actually developing the new template from "scratch."

So, I'd say I create my themes "from scratch" but I really create them from the framework that I've built based off of Underscores. Underscores, out of the box, is a blank starter theme... It declares all of the classes, hooks, and filters you need, is Sass ready, and sets up a basic template hierarchy. Because it's also built by Automattic, the latest version of Underscores always has the latest filters, hooks, and classes at your disposal... For instance, when Wordpress 4.1 comes out in the coming weeks, Underscores will presumably be updated with the latest page template body classes, something that Bones will be a few weeks/months from and other frameworks will likely introduce much later... if at all.

One final thing: If you're ever working with a client, always over-estimate on the project build. Many clients expect a fast turnaround for a WP site... 6 weeks or something. I don't think this is realistic. I budget out 12 weeks for almost every project. If they want it faster, I bill a lot more, and evebn then, you end up finding that the project ends up taking 12 weeks.
 

Imbarkus

As Sartre noted in his contemplation on Hell in No Exit, the true horror is other members.
Katori and Albatross these are some really great summaries and I really appreciate it.

My first thought, after spending a bunch of time getting my site pages designed just the way I like them, if to wonder if using a CMS like WordPress (even in the nitty-gritty form) means I'll have to break apart all that careful CSS. I suppose this is just worry over the level of design control, combined with lack of knowledge on how those templates/frameworks express a page design.

Second, I'm wondering what kind of dev environment I'lll be looking at? Am I installing a MySql DB and PHP and Tomcat on a box somewhere to do this? Do updates to the site then shift from the FTPing of files to update and insert queries over a pipe, since I'm leaning away from a front-end portal type CMS service?

Good training materials recommendations. I'll be subscribing to cbtnuggets for a couple of months for work for some SSIS and Cognos training so I'll look into pulling down some of this knowledge then from that source as well.

This primer thread of "what the hell are we even talking about?" will help me a bunch. Thanks.
 

Ikuu

Had his dog run over by Blizzard's CEO
My first thought, after spending a bunch of time getting my site pages designed just the way I like them, if to wonder if using a CMS like WordPress (even in the nitty-gritty form) means I'll have to break apart all that careful CSS. I suppose this is just worry over the level of design control, combined with lack of knowledge on how those templates/frameworks express a page design.

You would just turn your current design into a WordPress theme, never done it before but I'd imagine it should be pretty simple.

https://developer.wordpress.org/themes/getting-started/your-first-theme/
 
Katori and Albatross these are some really great summaries and I really appreciate it.

My first thought, after spending a bunch of time getting my site pages designed just the way I like them, if to wonder if using a CMS like WordPress (even in the nitty-gritty form) means I'll have to break apart all that careful CSS. I suppose this is just worry over the level of design control, combined with lack of knowledge on how those templates/frameworks express a page design.

Yeah, you should break apart the careful CSS but you don't necessarily have to. Why you should is because WP has best practices for how your stylesheet should be laid out, and if you want to get into it, you should do that. Plus, chances are, starter themes like _Underscores and Bones are probably better written than your CSS, so it's best to start there.

You'll also have to adapt all of your class and ID names to the implied classes and IDs that Wordpress generates, and what's considered a standard best practice.

This isn't a bad thing though, but it is a hurdle.

But, you don't really have to either. You could basically wrap your WP theme in your style, but it'll be messy at first. You'll also find a lot of classes that are unstyled and look gnarly when you go to put content onto the page.

Second, I'm wondering what kind of dev environment I'lll be looking at? Am I installing a MySql DB and PHP and Tomcat on a box somewhere to do this? Do updates to the site then shift from the FTPing of files to update and insert queries over a pipe, since I'm leaning away from a front-end portal type CMS service?

Wordpress Dev environments are very easy to setup... EIther just a MAMP/LAMP/WAMP stack and you can be ready to go in about 10 minutes, or you could look at something like DesktopServer - ServerPress, which is a WP development server out of the box, which comes with the latest installation of WP, and will literally have your development environment up and running in 30 seconds.

Good training materials recommendations. I'll be subscribing to cbtnuggets for a couple of months for work for some SSIS and Cognos training so I'll look into pulling down some of this knowledge then from that source as well.

For training, I think I have a couple resources in my post ^^^ up there. Could place to start, and always just Googling things you run into.
 
Status
Not open for further replies.
Top Bottom