SonicShack: Design and Create Custom T-Shirts

Hey there! Welcome to Making the Web - my personal blog about website development. Feel free to subscribe to my RSS feed to keep up with the latest. Alternatively, subscribe by email. Hope you enjoy this article!

The following is a paid review

SonicShack

SonicShack.com is a state-of-the-art web service allowing users to design, create and purchase their own custom T-Shirts. SonicShack's advanced, but easy to use, technology gives visitors a range of designing tools, including gallery-images, an image upload utility and text in a variety of different fonts. Read the rest of this entry »

Comments

Saving Bytes: Efficient Data Storage (MySQL) - Part 1

When storing data in databases, it is important to ensure the data is stored using a minimal amount of space, while retaining its value and processing efficiency.

There are many common practices amongst MySQL developers who write applications which store data in a human-interpretable way; they often don't think about the computer's interpretation of the data, and often fail to realise that it can be more efficient and space-saving to store data in a certain form.

It is especially important to consider data storage techniques in high-demand applications, and where speed and storage-efficiency are key values. Web services require these key values: it is important that they can cope with extra demand, and can satisfy their user's desire for immediacy.

MySQL DataTypes
(Screenshot from phpMyAdmin)

In the first part of Saving Bytes: Efficient Data Storage, we will look at the storage of strings.
Read the rest of this entry »

Comments (3)

JavaScript error reporting: DamnIT

Creating compatible and portable Javascript scripts can be extremely hard. We, as developers, can test our scripts in as many browsers as we want, but, there always seems to be problems.

Now, when an error occurs, what usually happens? The browser shows a little yellow symbol in the bottom-left corner of the screen (in IE at least - I might as well use it as a good example: it is the most popular browser). The visitor will usually just ignore the error for two reasons:

  1. They don't know what the error means most of the time, unless they are Javascripters themselves; and
  2. They don't really care about your site and the errors - why should they?

Because they ignore them, and you have no idea they exist, bugs in your applications may go unnoticed for weeks, or even months. And, all the time your application is not functioning as expected, visitors are seeing your service as unprofessional and will simply go to your competitors.

But, thankfully, there is a way to catch and fix these errors. A new service called DamnIT will send you emails whenever there is a problem on the client-side. Here's an example message:

DamnIt

One thing that the service could be used for is client-side error detection and reporting during BETA tests.

Here are some great benefits of the service:

  • It allows the user to enter some details about the error, and what they did before the error;
  • It can be incorporated in to JavaScriptMVC easily; and
  • Error messages are very informative - they contain browser details, user's description and the error's line number

There is also another great benefit of DamnIT. That is its error management section. This section lists the most recent errors, and the most common - so you can prioritize. It will even categorize by browser:

DamnIT - My Errors

To use DamnIT is simple - you don't have to touch any of your existing script. All you have to do is put this code on to your page:

<script type='text/javascript'
src='https://damnit.jupiterit.com/damnit.js?_KEY_'></script>

And it is as simple as that - after obtaining your key, you will automatically receive error details by email within a few seconds.

DamnIT Demo

Comments

The Benefits of Having Two Sidebars

You may have noticed that I recently put an additional sidebar onto this website. But, you may not no the reason why. It's a very good reason, and you should think about how it applies to your website too.

Because I, like many bloggers, wanted to earn a decent amount of revenue from blogging, I placed advertisements (from Google AdSense) on to my blog. I placed these advertisements onto the sidebar, mainly because they would not interfere with the content (articles), and because they would be noticed.

But, to get a good click-through rate, I started moving the advertisements towards the top. The thing I did not think about then was how it affects the ability to navigate the site. And, it does affect it quite a lot. The whole navigation section is pushed down, and many important links pushed below the fold.

To overcome this problem, I was thinking about ways I could improve the ease of navigation, while, at the same time, getting a decent click-through rate from the adverts. My final solution was to add another sidebar…

…By adding another sidebar, I was able to place the most important navigational elements on to one of the sidebars, where they would not be broken up by adverts, were above the fold, and could be easily identified as a collection of navigational elements.

And, on the second sidebar, I put adverts and sponsored links, which also had the benefit of being higher on the page, which would probably increase the click-through rate.

So the two benefits are:

  • The user can more easily navigate the site, because the navigational elements are collected together; and
  • The advertisements are more noticeable, increasing the click-through rate, and increasing the advertising revenue.

If, on your site, you can not easily differentiate between the navigation section, the advertisements and sponsored links, and the other content, maybe you should consider implementing similar changes. I found this useful article on the internet which describes how to set up two sidebars in WordPress.

Comments (2)

Unofficial PHP6 Changelog

Note: The following list may contain some inaccuracies.

To the best of my knowledge, the following things are changing as of PHP6:

  • FILE_BINARY and FILE_TEXT constants available for use with filesystem functions.
  • register_globals will be gone.
  • magic_quotes will also disappear.
  • $HTTP_*_VARS has been removed, in favour for $_GET, $_POST, etc.
  • ereg() no longer available in core PHP6.
  • Initiating objects with the reference operator (& new Object()) will generate E_STRICT error.
  • E_STRICT error messages are included in E_ALL errors.
  • {} for string offsets no longer available.
  • [] un-deprecated for accessing characters in a string.

Read the rest of this entry »

Comments (12)

Even More Tips for faster PHP scripts

Following on from "Tips for faster PHP Scripts" and "More Tips for Faster PHP Scripts", I bring you Even More Tips for faster PHP Scripts.

Because I've already talked about the main, general, optimization tips, these ones will tend to be more specific and may not apply to everyone - nonetheless, it's worth a read in case you ever do come across these situations.

Here are tips 11-15:

11. is_numeric() vs. ctype_digit()
To see whether is_numeric() or ctype_digit() is the fastest method, I called each function 10,000,000 times. Here are the resuts:

is_numeric(): 9.943268 seconds
ctype_digit(): 11.801991 seconds
is_numeric() is 15.75% faster than ctype_digit()

It's worth using is_numeric() over ctype_digit() where it's appropriate to do so. Although a difference of 0.0000001858723 may seem small, it does all add up.
Read the rest of this entry »

Comments (24)

« Previous entries
Making the Web | Chalvedon School and Sixth Form College | Messenger History | GCSE(WIKI): Simple bitesize revision for secondary school, KS4 students. | Encrypt files for free - high-grade encryption
Who's Populating The Web?