Drupal 7 is unnaceptably slow - content-management-system

Top post update: "unacceptably slow means between 2 and 10 seconds to load the front page on a site with 12 beta testers, only one lgged in and no more than 20 articles posted, after applying the most popular "speed it up" fixes).
I am a newcomer to Drupal (although I have been a professional software developer for 30 years).
I am just setting up my first site, so am not committed yet and could switch.
Like many others on this forum and elsewhere, I find Drupal 7 to be unacceptably slow (which is a pity, because of the great features, but I guess that's what causes the slow load time).
I have done the research, google around, read blogs and forums and have tried all of the commonly suggested solutions, but to no avail.
I am currently polling my dozen or so beta testers on where the site is acceptable or just too darn slow, but that is just a formality.
So, can you please help? If I can't use Drupal 7 then what can I use?
The obvious answer might be Drupal 6 but sooner or later that will no longer be developed or supported.
Is there another CMS for my needs? I want to have a community site. That means, at a minimum, Forums, Polls, Groups, hopefully a wiki, individual blogs would be nice, maybe photo galleries, though that is less important, chat rooms would be good.
Just your general "bunch of folk with similar interests, although some of them have sub-interests & cliques" site.
I tried CMS matrix, but - surprisingly - didn't find anything. I am googling, but would prefer some feedback from someone with personal experience.
Again, I do not mean to slight Drupal 7, just to say that it's not for me … don't taze down-vote me, bro :-)

Please tell us what "unacceptably slow" means to you. For many of my applications, this is a few tens of ms. For others, it's a few seconds. You probably need to apply the standard set of website speed tuning tricks to make anything go quickly.
Use yslow (http://developer.yahoo.com/yslow/) and related developer tools to help you troubleshoot why the site is loading slowly. Usually these types of problems are not the backend's fault, but are related to issues like over-large images, too many individual elements on a page, incorrect caching, etc.
Make sure your database is fast.
Don't use shared hosting.
Make sure you are not serving oversized images.
Verify that caching is turned on and works the way you expect.
Use a cookie-less subdomain for the static media files.
Compress and combine static files like CSS, javascript, etc.
If you're trying to host a busy, complex site on $5/mo shared hosting, I'm sorry, but that just isn't going to fly.

Related

CMS or framework or manual, what to choose for small scale site?

I am looking to make a small website that will be used regularly by only 80 odd people. It would contain a home page with a few widget like parts (calendar, upcoming events, chat, news). It might have a forum, but that would be low key. It would also (if it is possible) have a link to google groups mail. I would also liketo include a jainrain style openid/google account login for the site as well as local login. The site would be in part multilingual, if only the back end in english and the front another language.
Now to the "please dont shoot me" part. I am not looking for a specific solution (drupal, plone, wordpress) - well not as much as a general direction. Hopefully this will be of use to others in the same situation in the future.
I know python (as well as other non web orientated languages) and have past experience with two several month projects using web2py. I have yet to use a CMS, but have installed and played around with wordpress and plone over the last couple of days.
To the question. Is a CMS the right choice for something of this style. From what i have seen of them i really like the bits that are done for you out of the box, and i can tolerate the learning curve - but wordpress for example seems a bit to article/post orientated, and CMS's look to be aimed to provide the average non-coding admin the ability to change the site. Which is not needed here. I have done quite a bit of googling and comparison shopping of the various CMS's out there, and get that you can use it for static pages also. But should i be looking in an entirely different direction altogether?
I imagine that a framework like django or web2py are beyond overkill (and would take way too long for the effort i want to invest). And that anything can be done with wordpress etc given enough effort. But is something of this size with these features suited for a CMS, or should i be looking to do manually or otherwise?
I get the impression that this is not the type of question that is liked here - if so at least writing it helped clarify the problem for me a bit.
Thanks - and don't shoot!
I understand your website will be very small, but never say "never". You should plan with taking into account the possibility that your site will get bigger, even if you and your clients are sure that the site will not get bigger. In other words: it's better to have a solution which works for your small site even if it will increase than having a solution which will not support larger traffic.
Also, there is absolutely no point in reinventing the wheel. It's better to use a CMS (especially because you can get pretty nice CMSs for free), because they already have nice features and their new versions will be even better.
"Thanks - and don't shoot!"
You're welcome... BANG :D

Ethical Dilemma: Should I still cater for IE6 as a web-developer [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicates:
IE6: To support or not to support.
Should we support IE6 anymore?
I'd hate to (HATE TO) admit it, but there are some people still using this browser. A client of mine is facing an issue where the "transparency" area of a png comes out a light grey - ONLY on IE6.
I know it's an unsupported browser, but some people STILL use it. I'd love to have a little discussion about whether or not I should choose to support it.
One point pro-support of IE6 is that often in large organisations, the update of systems is often unimportant to their IT department, so theres a large proportion of people working in these organisations that still use IE6. Schools are the same.
One point con-support of IE6 is that Microsoft no longer offer support for it, and it is considered a defunct browser, so why should I waste my time catering for it.
It is a little bit of a dilemma. I'd love to hear other peoples responses to this.
One point con-support of IE6 is that
Microsoft no longer offer support for
it, and it is considered a defunct
browser, so why should I waste my time
catering for it.
Because it's not Microsoft you're catering for, or people who consider it a defunct browser, it's people using the browser, aka your customers. By all means, don't take on customers who have a requirement that you support IE6 with websites you produce, that is your chocie. But if you're getting paid for it, I'd hardly call it "wasting my time" =)
For my own sites I do not bother with being pixel perfect and having identical functionality in IE6 but I do like to make sure that the site is accessible and functional at a basic level. That shouldn't be too hard and it'll probably be useful for web crawlers as well.
I don't see an alternative. In fact, I dare say it wasn't very professional of you to put a commercial site up that doesn't support IE6. Your site should work on all browsers - cross browser compatibly is part of our job.
In reply to the comments, here's what I mean when I say professional:
It is expected of you to know IE6 is going to be a problem before you start.
Target supported browsers must be part of the contract. Before working on the site you should ask who will be the target crowd and make that decision together. If you need to support IE6 your cost estimation should be higher.
It is expected of you to at least test the site or all browsers (yes, including IE6, knowing that it isn't quite dead yet - you don't have to like it though).
IE6 doesn't support PNGs, has weird box model (so don't use width+padding), etc etc... Every time I consider using a PNG, I take a note - this wouldn't work in all browsers. You are expected to know that or find it in the test you've made.
Full disclosure - the site doesn't look or behave exactly the same on all browsers? When you present the site, explain how and why, and how it will effect end users. This may sound silly, but if you don't have IE6 in your contract, your client may not be too savvy. Your client is going to find out eventually the site doesn't work on IE6 - most likely when the site breaks for of her friends or clients, making her look bad. That knowledge better come from you.
I agree, making web sites display correctly in IE6 is tiresome. Being a web developer for a multinational pharmaceutical company I would know, they are still required to use IE6.
But there's another point to this. If we, the web developers as a group, continous to cater for IE6 then the large organizations have no reason to upgrade. Are we then responsible for people using IE6?
At our firm we have decided not to support IE6 in the administration part of our CMS, but we do cater for IE6 to the public eye.
The client mentioned earlier runs an old version of our CMS and is so stuck there although we and the administrators are willing to upgrade. In other words: Stuck between a rock and a hard place.
It depends who you expect to use the website.
Some recent figures for use of IE6 in different places make interested reading.
If your client still uses IE6, then you are probably going to have to give in (or convince them of their evil ways). Otherwise it might be worth explaining the numbers involved and the additional cost to cater to them - if it takes x hours of your time, does your client really want to pay for that?
Count yourself lucky you're not trying to cater for the Chinese internet user-base...
I make the site work in IE6, but have a banner that comes down pleading with the user to upgrade to experience the awesomeness of this century.
Example page that shows the banner
My opinion is that the site has to be USABLE.
Eye-candy is good, and should be given to as many users as possible but, the question is: does the gray background of the image render the site impossible to use?
Supposing you have a substantial IE6 user base, are these users really complaining about that?
Or do you have 1 person out of the 100 that use IE6 complaining?
Now people say that the clients pay and you have to do what they say etc etc... Well, it's YOUR role to TEACH the client why IE6 should NOT be supported anymore.
Show them that:
1) the site WORKS (i.e. you can read content, submit forms etc), so the IE6 users will be able to use it
2) you can put some "hints" like "you have a crappy browser, don't complain if websites suck with that" (maybe in a slightly more polite way)
3) show them that even Internet giants dropped support for IE6. Why should you keep it? Do you really want to live in the past?
Depends on your user base and would need to be agreed with your client. For an intranet type application you may be able to avoid it. For public applications - government, banking websites, anything the public may rely on, you need to consider it still.
For more luxury type sites, e.g. 'brochure-ware' for a small business, you may be able to take a call on this, but again depends on your client's requirements - do they want to potentially turn away some business? If you can make it fail gracefully (i.e. still looks ok in IE6, but with less bells and whistles), then you have more chance of selling this.
How much money do you earn from the customers who still use IE6?
How much resistance is there within those companies to upgrade from IE6?
How much money will it cost you to support IE6?
We are software developers. We make tools to make life easier for people ("users").
If a user of your software is using IE6, and you refuse to offer that user support until he/she upgrades to a newer web browser, are you making life easier or harder for them?
I'm actually not asking this question rhetorically, believe it or not. It may be that for you to support an older browser takes away too much of your time, keeping you from developing features that would be of greater benefit to the user.
My point is that you need to ask yourself what is best for the user, not whether catering to someone who's using an old version of a piece of software (who isn't?) is somehow beneath you.
I like this approach: http://morten.dk/blog/ie6-tax-now
Normally I would say that IE6 and IE7 is not supported by default, but the client can pay an extra price for supporting legacy browsers (the website will cost 30-50% more depending on the website requirements).
It might be also a good idea to get information from similar sites. One of our newest deployed site has 2-3% IE visitors (including all IE versions), and the IE6 and IE7 users are below 1%. So we decided not to support IE 6 and 7 at all (we don't test them), and we give full functional support for IE 8 (the site is usable, and looks OK, but it isn't as sexy as in a modern browser with a better CSS3 support, which means that there aren't any gradients or rounded elements). But this site is a little special case.
So I say that analyze what kind of people will visit your site, and make a decision based on that information.
I've never understood the idea that this is some sort of "ethical" issue.
If it's around a client then it's a commercial issue.
If your contract says that the site you've developed will support IE6.0 then yes, you should support it.
If it doesn't it's up to him to work out whether he wishes to pay you more to fix any issues that come up with it.
(If it's not specified then you need to make sure you specify it in your next contract otherwise you're open to requests to support anything your client fancies).
In terms of whether it's worth him supporting it, it will depend on his market. I previously worked for a travel firm whose core client base was people who were aged 40+ which 12 months ago was still registering 30 - 40% IE6.0 usage. In that instance IE6.0 support for their site is critical but obviously each site has a different user demographic and that will dictate your approach.
But an approach based on "principal" is unlikely to be the right way to go, you need to have specific commercial or technical issues which mean that the cost of supporting the browser is greater than the cost of not supporting it.
This is a great discussion. My customers are car dealers and while IE6 useage is declining, it is still 12.5% of my traffic. I have actually seen PC's running Win98 in these stores. Amazing!
We've segmented our catalog product into different interfaces for them to pick from. We're getting ready to launch a new one and we're close to making the decision that it will not support IE6. They can still choose one of the others that still do, and we will continue to support those but not enhance them.
So I can finally embrace sprites and transparencies and ... :)
You can't make a horse drink the water, but you can sure as hell lead him to it. What's the point of going forward in browser technology with advanced engines like Webkit and Gecko, if we still allow stupid, uninformed users to visit our websites in IE6 without any interruption?
Then all web standards are redundant and we can just go ahead and make browser-specific websites, which ultimately will become online applications. I would say, educate your user, after all, if you don't, who is going to do it?
We have made a conscious decision here at our design studio to alert IE6 browser-users that their browser is too old and that they should upgrade. We have not encountered any problems so far.
One should take into account that if you are hired to develop specific IE6 web applications, then you really don't have a choice in the matter, but if you are part of a design studio developing forward moving websites implementing new technologies or advanced Javascript, then I would say forget about IE6.
After all, the internet is full web developer handiwork and if we decide it's over, then the revolution will come.
// edit
If you want to make stuff a little easier for yourself, using CSS, start using BrowserDetect.js CSS browser detection. It's initialised using jQuery and simply adds a browser-specific class to your body tag on load.
In other words, if you're running Safari 5, your body tag will look like this:
<body class="browserSafari browserSafari5">
This enables you to create browser specific CSS styles without any hacking of sorts.
That was my last 2c.
I didn't see this point anywhere above, but I apologize if I missed it.
It's interesting that you say ethical, because I think moving standards for technology forward is one of those responsibilities that we have as consumers and as developers. Moving towards SVG and HTML5 and CSS3 is really good for the industry, because it means more efficiency and a better, faster web.
It may not be best for the client if their site doesn't support IE6, but if developers move on from outdated technologies en masse, it forces the last users of those technologies - in this case, businesses and schools and stegosauri with IE6 - to update their browsers, which is not a negative thing. It's OK to make decisions for the good of the industry as a whole, and we should more often.
It really depends who will be using your app! If your client is the UK gov, then yes, you had better develop for IE6 as it's the only browser in use (due to legacy systems that will ONLY work in IE6)
If on the other hand your client all use Safari, then no you don't have to bother.
Users will not stop using IE6 if all websites still work perfectly with it as they then have no reason to change.
This is bit of a "deadlock" which can only be broken if applications stop supporting IE6
Make the users aware that they are using an unsafe and out-dated software, e.g. with something like:
This webpage will not work (well)
with IE6 because that browser is
insecure and no longer supported
Most of the time you can also convince the customer by explicitely stating how much it will cost to support and maintain the application for an unsupported browser. This will usually be a significant amout for any non-trivial website...
The question really is how much degradation do we make IE6 users tolerate? My feeling is: quite a bit. I'd much rather this minority took the pain instead of holding back everybody else. Since our sites are all (naturally) semantically marked up and pass accessibility guidelines, they will make sense and work just fine with styles and javascript disabled. So the simple answer is to give IE6 users the old Netscape 4 treatment and disable all CSS and js for them.
I would definately suggest customer to upgrade with following points.
Technically no updates are provided by Microsoft for IE6, if they do not upgrade their browser, they should be made aware of all security issues they have left open by not upgrading, such mild threats do work and its right as well. Plus you can certainly recommend firefox, as Microsoft never completely implemented html standard and in large organizations, standard, compliance and security these are always considered as big things and you can certainly point towards them and get your update done.
No.
I have a client that requires for his pages to work in Netscape Navigator because he uses it.
That doesn't mean that I should prepare all my pages for last historical version Netscape Navigator.

Prescribe me a CMS

I'd like to start using a CMS. I've been building static XHTML/CSS pages for awhile, but want to get with the times.
I'm PHP illiterate as of yet, so ease of templating and availability of (free) modules are important factors.
From what I've been reading, SilverStripe or MODx sound like good candidates. What do you think?
Take 1 WordPress a day for 7 days.
Wordpress is a great choice(if not the best) if you want a blog.
For anything else i would suggest Joomla. Its one of the most widely used content management systems out there so there is tons of documentation and people who will gladly assist you. Its open source, which means its free. Easy to use, customise and extend. There are thousands of extensions(plugins) for it.
Templates (the sites skin(design)) are extremly easy to build, almost no skills in php are nessesary.
Take a peak at it at http://joomla.org
There is a great wiki with everything you need to get started at http://docs.joomla.org/

Which Open Source CMS do you find most reliable and performance-oriented?

We need a good CMS that supports data clustering (managing and storing data on different servers). By "good" , I mean : reliable , minimum bugs , the faster the better. (Oh , and it should make coffee :) )
If you want everything and the kitchen sink plus clustering/scaling support, I'd say Plone. Very big community, written in Python, uses the Zope stack so it has a built in application server. Etc, etc. I suggest taking a look at it.
Yes … kitchen sink + community + support: Plone. Development heading very much in the right direction.
Plone is in some ways a different creature from many other systems. Depending on the environment, ultra-high performance may require some attention but in the community there's great expertise to steer any attention that may be required.
http://plone.org/support | Chat Room is a great venue for diverse and honest advice on this subject. We regularly steer people away from Plone -- when some other system will better suit their needs.
I agree, and I think that you need to look for software to fit your need. I have a few sites that only get minimal traffic that run on WordPress, but I also admin a site that runs Joomla and gets reliable amounts of traffic.
Also, Joomla has a wonderfully customizable interface with extensions, plugins, themes and a fairly easy to use administration tool.
I am not sure about "Performance-oriented" means for you. There are sites with Drupal and Joomla that receives million of visits month after month, and do not need special configurations like data clustering.
I think you must ask yourself if you need all you said.
For reliability, and no bugs or minimum bugs i can stand for Joomla.
I think the performance is a function of the hardware.
When you get to data clustering levels, your better off doing some real testing of CMS systems.
Most of the bigger names support a lot of things.
MS CMS Server, DotnetNuke
Anything used by really large shops should work.

Personal Website Construction [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm currently trying to build a personal website to create a presence on the web for myself. My plan is to include content such as my resume, any projects that I have done on my own and links to open source projects that I have contributed to, and so on. However, I'm not sure which approach would be better from a perspective of "advertising" myself, since that what this site does, especially since I am a software developer.
Should I use an out-of-the-box system and extend it as needed, with available modules and custom modules where needed or should I custom build a site and all of its features as I need them? Does a custom site look better in the eyes of a potential employer who might visit my site?
I've toyed with this idea in the past but I don't think it's really a good idea for a number of reasons. Firstly, there are a number of places that can take care of most of this without you needing to do the work or maintenance. Just signing up for a linkedIn account for example will allow you to get most of your needs catered for in this regard. You can create your resume there and bio information etc and make it publicly viewable. The other issue with your "own site" is that if you don't update it often, the information gets stale, and worse yet, people have no reason to go back because "nothing has changed" - and that's not much of an advert for you is it?
Now that I've said all that, I'll make another recommendation. Why not start a blog instead?! If you've got decent experience, why not share that. I'd be willing to bet that this will be the best advert for your skills because:
It's always updated (if you post often)
It's not like you're looking for work doing it - but your (future) employer, or their developers will check it out anyway to get a better insight into your character.
Putting something on your resume doesn't mean you can do it. I'm not saying that you'd lie about your skills :-), but there's no argument about your ability when you're writing articles about the stuff, getting comments and feedback, and better yet, learning EVEN MORE about your passions.
Best of all - you can run your blog from your chosen domain and also point to your resume that is stored in linkedIn. Just an idea...
That's my two pennys worth on that - hope it helps you come to a decision!
If you are a web-specific developer I would go with a custom site, but if you focus more on desktop applications or backend technologies, I think an out of the box system would be fine.
A nice looking, default, off the shelf, complete website could be more impressive than a poorly done, broken, tacked together, incomplete website. Perhaps start with something "off the shelf" but nice looking, keep it simple, professional, and then eventually add more custom functionality, style and content. Potential employers may like to see that you are capable of reusing tried and trued solutions instead of trying to create everything from scratch without a good reason. Or you could spend time combining great components into something even better than the sum of the parts, as Jeff Atwood talks about extensively in the Stack Overflow podcasts. Stack Overflow is a good example of writing lots of custom code, but combining that with some of the best Web 2.0 technologies/widgets/etc. into something coherent, instead of trying to prove that they could implement x/y/z from scratch.
(On the other hand, it's really fun to build your own login system, blog, or photo gallery. If you really enjoy it and you want to learn a lot or create something new and different, then go for it!)
Here's what I did (or am currently doing). First, use an out of the box solution to begin with. In my case, I used BlogEngine.NET, which was open source and easy to set up. This allows me to put content on my site as fast as possible. Now, I can continue to use BlogEngine.NET, and skin my site to give it more personality or I can start rolling out my own solution. However, I haven't found a requirement yet that would give me a reason to waste time building my own solution. Odds are you probably won't either.
I don't think it matters if your site is blatantly using a framework or other "generic" solution. The real question is "is it done well, with taste?" If you are using an out of the box solution, you should take the time and pay attention to details when customizing it as if you were creating it from scratch.
Alternatively, if you're looking for a great learning experience and something to spend a lot of your free time on -- write it yourself. But know that you are re-inventing the wheel, and embrace it.
edit
A recent post from 37Signals, Gearheads don't get it, really sums up a good point about not focusing on the technical details, but "content and community".
Reinventing the wheel is not such a great idea when you are building a personal site. Building your own CMS is fun, and to some degree is something to brag about, but not so much features you won't have the time to build and all the security holes that you won't have the time to fix.
It's much better to pick a good, well-established engine, build a custom theme, and contribute a module or two to it: you'll be writing code that you can show off as a code sample and at the same time creating something useful.
Knowing your way around an open source CMS is a good skill in just about any job: when your boss says - hey, we need a three pager site for client/product/person X in 10 hours, you can say - no problem.
For a simpler portfolio site, Wordpress might meet your needs.
You can set up 'static' Wordpress pages for contact information, various portfolios, a resume, etc. This would also give you a blog if you want to do this.
Wordpress does give you the flexibility to "hide" the blogging part of it and use it basically as a simpler CMS. For example, your root URL of example.com could point to a WP static page, while example.com/blog would be the actual blog pages.
If you self-host Wordpress on your own domain (which I really would recommend instead of going through wordpress.com), it should be trivial to set up a few subdomains for extra content. For example, downloads.example.com could host the actual downloads for projects you've developed linked from the Wordpress portfolio pages. Similarly, if you're doing a lot of web work, a subdomain like lab.example.com or samples.example.com could then host various static (or dynamic) pages where you show off sandboxed pages that are not under the control of Wordpress.
Keep in mind though that you'll want to make your page look good. A sloppy looking site can scare away potential clients, even if you are not looking to do any web work for them.
Putting your resume up online somewhere helps, I get a lot of recruitment emails from people who happened on my resume via googling. However I agree with ColinYounger in that you'll probably get more bang for your buck from LinkedIn.
My advice is this - if you want to take the time out to LEARN a CMS or something, to better yourself, then why not make your first project in one be your homepage?
Maybe enlighten us as to the "features" you want to have on a personal homepage? Outside of a link to an HTML resume and perhaps some links to things you like, not sure exactly what the features of a homepage would be...
It really depends on:
a) what services you provide
b) what your skill level is when it comes to web design/development
If you are primarily a web applications developer then running an off the shelf product or using blatantly using DreamWeaver to develop it may not be so smart -- or maybe your clients aren't adept enough to notice?
Likewise if you're primarily a web designer then it is probably a good idea to design your own website.
Just as a side question and following up on my 'ego trip' comment: why would you take anything on the web to be 'true'? IME printed submissions, while not necessarily accurate, tend to be slightly less, erm... exaggerated than web submissions.
Do those responding\viewing ever hire? I wouldn't google for a candidate. I might ego surf for a respondent, but would ignore CVs.
Rounding back to the OP, I would suggest that you need to SHOW what you're good at - participate in Open Source projects and POST on their forums, link to projects you can post details of and generally try to show what a Good Employee you could be. Just telling me that you're good at [insert latest trend here] means diddly.
I have come to see that the best way to advertise yourself is to put quality content out there. If you write about the technology that you have experience in, maybe create a few tutorials, and if you do all that often enough, that shows some authority in your chosen field of work.
This alone is one of the best advertisements. However, you also want to show passion. And online, that can be shown through how meticulously your site is done (it doesn't have to be a super great UI or something), but it should be neat, clean, and professional. It doesn't matter if its out of the box, or custom designed.
Either way, you will have to work hard to make it look good.