|
just another regularban.info web blog |
| MEMBERS: | Web Development and the Big Time Out
One of the great debilitators in online business is simply the perceived (or real) lack of time. Business owners are used to moving forward. An online web presence can make them feel tied to an office chair learning skills they aren't sure they want to know. It's not uncommon for those who deal in full time web design to have individuals contact them for a site design, but have absolutely no idea what they want. Furthermore when the designer questions them the response might be, "I don't know, just make it look nice." Let's not forget the core values or mission of the business. Many business owners have no idea how to answer those kinds of questions. They may stare blankly for a moment or two and there's no more time for further deep thought so they go back to action - without answers. In many cases it is possible to answer some of the questions needed, but it may require taking time away from a familiar setting. It may also require more time than you think you want to give. If you can get to a place of concentrated contemplation you are likely to find yourself stripping ideas to their core to find out what your business is trying to accomplish and what your ultimate goals might be. As with almost any project you can turn frustration around if you will just take the time to come to terms with your vision. Sometimes we spend so much time 'doing' we never stop to ask the question, "Why?" This process can be a bit like taking a bus that drives around the park. You keep looking at the flowers and the park bench and long to sit in the quiet shade of a tree and just absorb the calming atmosphere. You know they will have a positive effect on you, but for some reason you just can't seem to find the energy to get off the bus. It seems to me there are some sites that are misguided or rarely guided that could benefit from the process of self-evaluation. These sites may look nice, but there is a sense of disconnection that may not be easy to identify, but it's fairly obvious to visitors. Creative energy is at a minimum while business owners simply tackle what seem to be the most urgent details. As more people gravitate to online business there needs to be a shift in the thinking of how one goes about doing business online. In many ways it can't be approached in the same way a traditional business is developed, yet that is typically the way many new web commerce ventures choose to tackle the subject. You may discover your business will be more successful if you take some time for rigorous reflection. The time set aside can be a bit like an architect that takes the time to develop plans for a new building. You wouldn't expect the architect to simply tell a construction crew to, "Go out there and build - something." Work at 'building' your online business in a comprehensive way. Your effort can develop a firm foundation for long-term success.
How to Contract a Web Developer - Part I
The initial client-developer discussion is an integral part of the Web design process. This article will take a look at both the client side of the development procedure, as well as the best practice methods for Web developers to employ when speaking to their potential business partners. Your business is ready for a Web site... • Sell products over a greater range than you currently do All of these reasons can really be lumped into the super-category titled Increasing Business - the prime goal of any worthwhile advertising campaign. Generating authentic business and receiving solid leads is virtually money in your pocket; and in this day and age, the internet is the best domain for advertising your products and services. People turn to the internet to look for information like no other. In fact, it seems as though the internet is even replacing God in today's search for answers. Do some research on a few of the longer queried Google keyword-phrases. Chances are you'll come across some gems like What do I do if my boyfriend is cheating on me? Or how do I get my children to enjoy Vegetable X? For driving traffic to your soon-to-be Web site, you need to give users the potential to stumble upon your domain with their search engine queries. After all, what good is your Web site if nobody can find it? Forget everything you know about Web development. First thing's first: After you browse the internet for local developers or even check the regional phone directories; you must get to know your developer. And when I say get-to-know them; I mean get to know the quality of their work. At this point in the game you shouldn't even have made a phone call or sent an email inquiry. It is imperative that you take a close look at their Web sites and portfolio (if available). If what you see is visually appealing, consider it an added bonus, because, chances are, you're looking in the wrong places to measure their worth. Key point: Know what you're looking for. The face of the site is actually not that important. Don't be influenced by sites constructed solely upon Flash, or sites using a little too much dynamic Javascript. This after all, can only hurt you in trying to get your Web site indexed by the major search engines. Your best bet is to right click on the page and check out their source code. And when you're done with that, if you're using FireFox (which you should be using), go to View on the top toolbar and choose to view the page without style. This is a close representation of what search engines are seeing. Try running a spider simulator on the page to really see through the search-bots' eyes. When viewing the source code, if you don't see a DocType Declaration in the first line, let that be your only red flag and move onto the next developer. Another item of interest for you is standards compliancy. To check for this, run the page through the W3C's Page Validator Tool. While search engines don't necessarily see valid XHTML as a requirement, the closer the page comes to standards compliancy, the easier it will be read by search engines. It's a correlation-not-causation type of relationship. Also worth noting is that if Web pages are produced by a company, check and see who your developer is and their relationship to the pages that you were viewing. For example, if you like Page X in their portfolio and it was developed by Designer Y, don't settle on having Designer Z do it in the same way unless they work on the same team or were trained in the same vein. One more thing to scan for is a comment which may or may not exactly be . Remember, you're paying a good chunk of money for a custom page, don't settle for a recycled template. You want a unique design for your unique service proposition. If you specifically want your designer to use a template, make sure they design using the same conventions that appear throughout the template. Next up: Say no to Flash, nested tables, and all dynamic content other than CSS and basic Javascript. Checking for nested tables in design is really just keeping an eye out for a few too many tags that start with < tr >, < td >, etc. If they start nesting within each other in a recursive cycle - steer clear. This is an old convention for design that mimics the printed page, yet it is still a popular development practice. While developers still get away with such design, mainly because it has the capability to construct beautifully looking pages, sites built with these conventions will ultimately fail and break down as browsers and search engines move toward a more standards compliant approach. So, unless you are displaying tabular data, don't use tables or ask for them in your Web design. Whatever tables can accomplish can also be done with CSS. Enter Cascading Style Sheets Now that you know the criteria for choosing a Web developer based upon principles of design; let's move onto extended and comprehensive service. While it's not a traditional component of a single Web designer; maybe you'd like to hire a developer or development team that offers a complete Web hosting package including domain registration and email setup. While they're at it; wouldn't you like a few guaranteed site modifications and some technical support, to boot. Be wary of designers who design-and-drop. What happens when the next version of IE comes out (certainly guaranteed to break more than a few Web sites)? Or when you no longer offer Product X or you change your address, phone or fax. Do you really want to hire a new developer or draft one of your administrative assistants to decipher somebody else's code? In so far we have taken a look at what to look for when contracting a Web developer. Say no to nested tables, Flash and messy markup. Say yes to standards compliant CSS and XHTML. In the next installment of this article we will further discuss the interlocution between contractor and client in Search Engine Optimized Corporate Web Development.
Efficient SQL Databases
Don't be fooled by seeming simplicity. A lot of developers get comfortable with a certain way of designing a database for their web applications that they miss out on techniques they should rather employ to make things run faster and more efficiently. A lot of developers don't bear in mnd that the small site they are creating now might grow into something incredibly large and complex, and the database they designed has become bloated and doesn't scale well to meet the demands of the increased traffic. This article hopes to provide web developers with a few techniques to help make their database and queries faster and more efficient. 1. Avoid Character Types When you are designing a database, it is so easy to set all data types to the VARCHAR type as it can then contain any data you want; numbers or text. But character data is amongst the most inefficient data type you can get. If a field is only going to contain numbers, then make it one of the appropriate types (INT, DOUBLE, etc). Also, wherever possible in your web development code, try to use numeric data types as opposed to characters. One of the most common things a script has to store are flags like whether someone answered yes or no to a question, etc. You could of course store it as 'Y' or 'N' but why not store it as 0 and 1? The reason this makes a difference is when you have a database, for example, with over 500 000 entries, and are running a SELECT on that field, comparisons are processed a lot faster for numeric data types than character types. Also, if you need to return data to the calling script, numeric data is less memory intensive than character data. In addition, your web development language (PHP, ASP, etc) would also be able to process and perform functions on numeric data better than character data. I am not trying to convince you never to use character data types. Sometimes it is a necessity, but if you can find ways to reduce the amount of character data processed by your SQL database, the better your server will cope. 2. Normalization Normalizing a database is really quite a complex process. It is a process that describes a way to design a database structure to avoid repetition of data in your database and can lead to significant performance benefits if employed correctly. However, the entire process of normalisation is a bit beyond the scope of this article as it can fill books on its own, but any developer designing a database should seriously consider becoming knowledgable about normalisation and employing it in their own designs. For a good tutorial on this process: http://www.keithjbrown.co.uk/vworks/mysql/mysql_p7.php 3. DateTime vs Timestamp fields This actually relates to 1. a bit. The big difference to bear in mind here is that a field of type DATETIME is actually stored as a series of characters. A field of type TIMESTAMP is actually stored as an integer. So therefore, a more efficient way of storing dates is using the timestamp method. The timestamp has its drawbacks however. For one, you cannot store a date early than 1 January, 1970. Also, timestamps in your script will need recalculating to get to the character format. Because of this recalculation, it may not be better to store as timestamp. It really is a case of testing which format works better for your needs. 4. Use LIMIT where possible In your queries, if you are doing a SELECT to a database and you only expect a certain number of results, using the LIMIT statement can speed your query up incredibly. For example, if you have a table of users and you need to run a query to search for one users record, you can use a query like: SELECT user_name FROM users WHERE user_id = 453; This query is perfectly valid and will return the right result. But you also know there will only be ONE result. The query above will search the database, find what you want, but then still continue searching after that. It would run a lot faster if you could tell the query that once it has found what you are looking for to stop searching. LIMIT can do this, as this query shows: SELECT user_name FROM users WHERE user_id = 453 LIMIT 1; Imagine this scenario. You have a table called logins, that records every login from a user. It currently contains over 2 000 000 records, and you want to find the first time a user logged in. Now bear in mind that because this table inserts data over time, it is already sorted for by date. You could do the following query: SELECT MIN(login_date) FROM logins WHERE user_id = 4876; This will return the record you want, but SQL will now have to get all dates for that user, sort them and then return the lowest value to you. Our table is already date sorted simply because of the way it records data for us. So using LIMIT can be more effective: SELECT login_date FROM logins WHERE user_id = 4876 LIMIT 1; Because it is sorted, the first one will always be a users first login. 5. Avoid using LIKE If you have tried to employ 1. above, then hopefully you will be in a scenario where you do not need to use LIKE all that much. LIKE is one of the most inefficient ways of searching a table. LIKE performs a text comparison search in a field and with no wildcards is as efficient as a direct comparison; i.e. WHERE name = 'Jane' is equivalent to WHERE name LIKE 'Jane'. It is when you start introducing the wildcard characters like '%' that things get really hairy. If you do have to use LIKE, then at least try and make efficient use of the wildcards. These are '_' (underscore) and '%'. Let me explain all this with a real world example. In a project I was involved in, we had a SQL database storing logs generated automatically from a mail server. Unfortunately, the mail server pretty much just dumped a very long string of text data into a field that contained the data we wanted. A script had to be written to find all logs that referred to a login by a user into the POP server. The only way we could do this was to search every record for a string in the msg field that had the text "User logged in" in it. The first query developed was something like this: SELECT msg FROM logs WHERE msg LIKE '%User logged in%'; This query took on average of about 35 minutes to process. Obviously not an ideal situation. The way the LIKE worked here was that it had to parse through every single portion of each and every record in the msg field looking for text that matched "User logged in" anywhere in the text. We were able to determine eventually that the text "User logged in" occured at the end of that text in the msg field and so we altered the query: SELECT msg FROM logs WHERE msg LIKE '%User logged in'; The '%' at the end was removed as we do not want to worry about text after because there is none. The query now only compares text to our string in the msg field at the end of the field and no longer parses through the entire piece of text stored in msg. The query now ran in under 2 minutes. (This was actually still too long, but how we optimised from there is a little beyond the scope of this article.) Hopefully with all these elements put into practice on your next web development project, you can have a database that runs quickly, efficiently, uses as little resources as possible and wont grind to a halt when the load suddenly increases.
|
* About Archives
Categories:
Last Updated: |
| regularban.info
is proudly powered by WordPress MU running
on regularban.info.
Create a new blog and join in the fun! Entries (RSS) and Comments (RSS). |