Category: Tutorials
Tutorials,freelance,projects,joomla,php,mysql,wordpress,blancer.com
Awesome Links #4: Personal Empowerment, Smartphones, Location-Based Services
5 Strategies for Personal Empowerment in Difficult Situations
How do you empower yourself when there’s negativity all around? Lifehack has an interesting article that explores how to survive, even flourish, in such situations.
3 Productivity Tips for the Corporate Web Worker
Are you one of those fortunate ones whose boss has agreed to let you work from home? If that’s a yes, keep in mind that it won’t be as easy as you think. You could end up being less productive while working from home. Web Worker Daily aims to address this issue in their article.
This brilliant smartphone comparison charts shows how the top smartphones stack against each other.
Why We Check In: The Reasons People Use Location-Based Social Networks
ReadWriteWeb has an intriguing post on why people broadcast their current location using location based services.
40 Sites for Finding Web Design Jobs
If you are a web designer hunting for a job, Vandelay Website Design blog has a comprehensive resource of 40 sites you could take a look at.
7 Tools to Automate Your Social Media Management
That may be simplifying things a little, but it’s not too far fetched.
As for me, I fall somewhere in between the extremes – and I’m betting I’m not alone. Sometimes we need some tools to help us manage all our social networks. I understand that using some tools is considered obnoxious behavior by some people. But it’s a free Internet. You make your choices and live with them.
So if you think you can do this responsibly, here are seven social media management software tools to automate your updating and following:
SocialOomph
This website offers many free and premium services to help you manage your Twitter account. And by manage, I mean you can schedule tweets, send automatic messages to those who follow you and follow all your followers automatically (Which I’m sure can cause a rip in the space-time continuum) for free. The full list of features will take a couple minutes to read.
Sending canned direct messages to welcome new followers is a bit controversial. To many, it’s Spam. Plain and simple. Others don’t mind and appreciate the contact. Those who do employ it swear by it. They say it helps them achieve high numbers of followers. The same goes for automatically following those who follow you.
My favorite though is the e-mail that rounds up all the tweets that manage any of my Twitter handles. Yes, it’s an exercise in ego gratification. I don’t care. I like it.
Hootsuite
Like SocialOomph, Hootsuite will automate your tweets. But it’s most useful feature is how it juggles multiple social media accounts. Not only can you create a dashboard that gives lets you monitor your Twitter accounts, but you can add your Facebook (this includes Facebook pages), LinkedIn, Ping.fm, WordPress blog, MySpace and FourSquare accounts. This is so integrated that you can write one update that goes to any and all of those social media timelines/pages.
I don’t want to do that, but I do use it to monitor and update accounts one at a time. It saves me time to round up all my social media activity onto one page.
TwitterFeed
One of the best ways to get people to read your blog is to send updates to your social networks when you write a new entry. But some people are lucky to get the blog post written. Then they have to write a tweet? Never fear. TwitterFeed comes to the rescue by monitoring your RSS feed and updating your Twitter and Facebook accounts when you update your blog. It’s not pretty but it gets the job done.
I do use this to update @CarlNataleRSS with all the feeds from various blogs I update. Basically, I made this account for my mother who doesn’t know about RSS but wants to keep track of what I write. So it doesn’t hurt my feelings that the account only has three followers.
Ping.fm
This is the granddaddy of updating every social media account in the world. One stop for all your accounts. And it will accept your SMS texts and e-mails for updating.
To be honest, I’m not that interesting that I would need this.
TweetBeep
TweetBeep rather modestly only sends you an e-mail when you – or keywords of your choosing – are mentioned on Twitter. So it’s like Google alerts. It’s great for reputation monitoring, keeping track of what people say about your competition and following specific interests.
Gist
Social networks are like potato chips. You can’t have just one. So if you want to keep track of what your friends and contacts are doing on their multiple networks (assuming they don’t have Ping.fm accounts), Gist will let you know about their latest tweet, post or like.
I consider it a light-weight contact resource manager. Since it also connects to my e-mail accounts, it keeps track of when I communicate with them. I know there are more powerful options out there, but this may be just enough for me.
RSS
OK, this isn’t a specific tool but a technology. One of Twitter’s nicer tendencies is to create RSS feeds for updates. If your RSS reader is how you keep track of the Internet, then add Twitter feeds. Not only can you monitor what any specific tweep posts, but you can have a feed of search results. Again, you can track any keyword.
This works very well for me in Google Reader. I can organize different feeds into categories. This all adds up to a very powerful dashboard. The big drawback is that the updates are delayed. The RSS feeds seem to update on a schedule so it doesn’t give real-time monitoring. Which is fine for me. Your mileage may vary.
For what it’s worth, I don’t see the value of using any of these tools to duplicate messages. Why would someone follow me on Twitter and Facebook if they get the same messages twice? I try to use the networks for specific purposes. But most of the value I get from these tools is in monitoring. There are some very powerful ways to sift through all of those streams.
How do you automate your social media management?
100 Remarkable Examples Of Reflection Photography
A reflection is an excellent way to instantly create an interesting composition in your photograph. It could involve an expanse of water, a mirror, or even the chrome of an automobile trim! It’s a fascinating addition to any photo, so today we’ve collected 100 remarkable examples of reflection photography for your inspiration and enjoyment!
reflection by Amnon Eichelberg
Neighbours by Dirk Eidner
Reflection by Amnon Eichelberg
Infinite Possibilities by Philip Perold
Fall Reflections by Marylee Pope
Morning Reflections by James Marvin Phelps (mandj98)
A reflection of innocence by gilad
a reflection of a reflection by raun
Reflection by DennisChunga
reflection 101 by Enteng Butingting (Watcher Mode)
A time for reflection…. by Richard0
Rewind… by Richard0
Winter landscape by Richard0
What a difference a year makes…. by Richard0
New York State Museum by Ronaldo F Cabuhat
I Got The Blues… in Bordeaux by Nathan Bergeron Photography (so busy)
corner of the mouth by IHP
Reflection. by Siim538
Lost in Reflection by tfavretto
Reflection by iQayed
reflection 4 by mzkate
Reflection by EmiratesSignature
Reflection by wolf-minori
A Place For Reflection by taffmeister
Park Butte Reflection by Raymaker
Reflection by JarleGrindhaug
Bridge of Reflection by MandarinManMark
urbanKeops2 the green desert by bosniak
Reflection by UnUnPentium115
Swampy, Swornes by everydaydude
Liverpool Reflected by petemc
Reflected Sunset by pat1926
Road To No Regret by Philippe Sainte-Laudy
Dolphins… by Nejdet Düzen
Chambord Dream by Philippe Sainte-Laudy
Kingdom Of Desire by Philippe Sainte-Laudy
Haus der Kulturen by Heinz_H
Guggengorry by Boccalupo
Milan Kundera by Boccalupo
heaundae night reflection… by Andrew8RRR
Ely Cathedral – Mirror image by Heaven`s Gate (John)
Gooooood morningggg Paris by anto XIII
Got a whole lot of Living to do….. by Roeselien Raimond
Autumn by Brin
Golden reflections by Dominic Fletcher
Michaelmas daisy dewdrop refraction by Lord V
Mirror skies by John Adkins II
Un gatto e nove vite – a cat and nine lifes by Parnas-io
FIRE SHOT by Luca Brasi
It’s a Laugh… by law_keven
Half way through by SSH Photos
Wawasan Bridge by vedd
I need to be here… by Nejdet Düzen
Lily by The Photography Factory
Rydal Water, Lake District, England by Anthony Lawlor
Ripples by Richard0
Lakeland by Richard0
Mummy! by Richard0
Here comes the sun…. by Richard0
remains of the day by sassaputzin
Prince Felipe Science Museum by MaoriOne
Ride ‘Til the Sun Sets by billyunderscorebwa
The Beginning by MarcAdamus
Reflected Liberty by B3NO
Cygnes reflechis by WestLothian
reflective by otsego-amigo
Night Lights Reflection by doppelger
reflection by danielh85
Reflection by by George Brooks
Reflection by Giess Monika
One Sunday in April by latoday
HEMMED IN by Colmar Wocke
Reflection of a fjord by Øystein Tveiten
In the Moment by Christopher J Ashdown
Self Portrait Times 16 by David Wynia
Cool and warm reflections by U. Midtgaard
Reflection of Maldives by Shazeen Samad
Floating Reflections by Vivion Mulcahy
Solitude by Gordito73
Reflection by Alyssa
Fire Spider by Jeffrey J. Meyers
Mirror Reflection by Fanny Li
The Squinty by philip t mack
lilly by twitchyfinger
Nature’s Abstract Reflections by nmjeeptours
Palais Royal by Coses que passen
1, 2, 3, 4, 5, 6 … by . ADRIEN . Allez les Bleus !
reflets by siempresam
corner work by maybemaq
individualism and socialism by maybemaq
Self-Reflection by SyAmsi
Last Winter’s Arms by shotbart
Reflected in the stars… by Antonio Grambone
curtains to close by maybemaq
Reflex on "il Campo" by Paolo.Sammicheli.iperni ty
Raincatcher by Mandy Schoch
My own little sun by Lev Tsimring
Awakening by Brin
Follow the Flow by Photonook
Quick Tip: Giving a Subject Looking Space
One of the earliest techniques that you learn as a photographer relates to the rule of thirds, and how placing a subject towards one side of an image – rather than straight in the middle – often creates a more pleasing composition. Today I’m going to discuss a related idea; giving your perfectly positioned subject somewhere to look.
Looking Left or Right
Whenever you have a subject that is looking right or left, the best place to position them is away from the side of the image that they’re looking towards. If someone is looking left, position them towards the right of the image (and vice versa).
Here are a selection of images that show this technique being executed well:
Leading the Subject
This idea holds true whether a subject is walking, running, diving, or even dancing towards a certain area of the image. Give them space to move into, and you’ll ensure that the action feels real in your photograph. The viewer can envision the action progressing, and create a picture in their mind of what will happen next.
In video and film, this technique is known as “leading the subject”. It involves leaving approximately two thirds of the screen space in front of a subject, giving the feeling that the subject has room to continue to move in the composition.
Again, let’s take a look at an example of this being done particularly well:
Breaking the Mould
There are, of course, circumstances where this isn’t always the best route to take. If you get the chance, shoot a couple of images at the time so you can pick your favourite later. Here’s an example of when you might want to leave more space behind the subject than in front, and the following image also breaks the mould for a great result:
Share Your Image!
Do you have an image that you’ve taken using this technique? Leave a link in the comments below so that we can take a look!
Shooting an Incredible Lit Landscape From Start to Finish
Landscape photography is an area rarely associated with artificial lighting – there are few forms of photography more dependent on the sun than outdoor and landscape shooting. However, in this tutorial, I’ll show you how tricky or even boring landscapes can be brought to life with a little lighting.

Step 1. Recommended Equipment
For this tutorial, you’re going to need all the basics and, if you’d like, some special gear. First, you’ll need a camera with manual shutter speed that extends to at least 30 seconds. A tripod is also pretty important to keep that camera steady during those 30 seconds.
You’ll also need at least one standalone flash that has a test fire button and at least a full power setting. Better yet, get one with manual settings. I used an old Vivitar 283 with a varipower modules. And finally, you’ll need your running shoes.
Step 2. Optional Equipment
To make this technique easier to execute, several flashes could be used. You could also elect to use wireless flash triggers (although they may not transmit the distances that you need them to) or you could enlist your friends to help you.
A camera that has a remote trigger could also make things easier, and a remote with a bulb or T setting would really be nice. That said, the execution of the photo I made for this tutorial was completed without any of this optional equipment.
Step 3. Scouting An Area
In the photo below, you’ll see the initial area that I was hoping to do this shoot. It’s a pond in a location I’m familiar with. Upon arriving, I noticed that the shore was completely overgrown with branches, trees and poison ivy. This led me to rethink my plan.
I needed to find a scene in which I could move around easily in the dark, and that didn’t carry with it a severe danger of drowning. With multiple flashes and some friends, your area of coverage could essentially be endless.

Step 4. Looking Beyond The Clutter
I switched locations to a quaint garden scene with some nice trees in the background. As I waited for darkness, I snapped the photo below. As you can see, the scene is cluttered. There are tables, part of a house, a grill, and some chairs sitting in the yard.
Using natural light, it’s hard to isolate a subject. You’re eye floats around the scene because there’s nothing to latch on to. If that’s not bad enough, the sun was directly to my back when this was shot, so the light is very flat and not very dramatic.
During this time before dark, I decided what items in the scene I wanted to emphasize. These ended up being the trees, and some of the plants in the garden.

Step 5. Determining Your Angle
Once I chose the items in the scene that I felt were most important. It was easy to determine the best angle to make them fill the frame. The plants could cover some of the empty yard, so I needed to get low.
Think of it as editing an entire set of images from a photo shoot. There will be a lot of images in the full set that aren’t bad, but every single picture doesn’t need to stay in for you to accomplish your goal. By carefully framing and by choosing a low angle, I was able to “edit” out some of the less important parts of the scene.

Step 6. Determining Your Exposure
Once you’ve got your angle determined, you’ll need to determine what your camera’s exposure should be set at. I always start by setting my camera to it’s lowest ISO setting. This means that the camera will need a lot of light to make an exposure. I then set my shutter speed to it’s longest setting. My camera does have a bulb setting, but since no one will be manning the camera during the exposure, I set it at 30 seconds.
This is the time to bust out that tripod. I then use the camera’s light meter to adjust the aperture to expose for the sky since this is the only bit of natural light I want to show up. You can also see that the light from the window showed up. I didn’t notice this before, so for the next shot I composed vertically to continue the “editing” process I mentioned earlier.

Step 7. Determining Flash Distance
The process for taking this image is pretty straight forward. I tripped the shutter on my camera and ran around the area popping my flash at the things I wanted illuminated. The tricky part is nailing the flash exposure.
In my final image I fired my single flash four different times in four different locations. The entire time my flash was on full power. In order to ensure that the flash exposures were all relatively equal in each area, I just took some test shots where I fired the flash at different distances.
The closer you are to the thing you’re illuminating, the brighter the exposure will be. So instead of trying to adjust the power on my flash, I just made sure that I was the same distance from each of the subjects. For this situation, I found the correct distance to be around 5 meters.
You can see a test shot below where I only illuminated one part of the image. You’ll also notice that by flipping the camera to a vertical orientation, I was able to incorporate the moon into the photo… a lucky break!

Step 8. Doing A Test Run
You’ve got your running shoes, right? In the photo below, you can see very distinctly where I fired the flash. Once in the foreground and then three separate firings on the trees in the background. To give myself some extra time, I also turned on the self-timer feature of my camera. This allowed me to get in position for my first flash before the shutter tripped.
As soon as the shutter tripped, I would fire the flash and run to the next position and the next and the next and the next. All in 30 seconds. As you can tell, because I was moving and the light from the flash wasn’t hitting me, I didn’t show up in the photo at all. You can see that this shot looks different from my final image. Read on to find out why.

Step 9. The Final Shot
The image above was shot at the same height and angle as the final image shown below, but in the final image, the camera is positioned about 1 meter closer to the row of plants. I didn’t realize how bright the dirt in front of the plants was going to be, and I found it to be too distracting.
So, again, I kept editing what I didn’t want in the frame. This technique gives you complete control over what you want to emphasize. Under natural light, the house and the objects in the yard were the brightest points in the image. With this type of lighting, they play a much less dominant role.
Also, when shooting this in natural light, all the elements were equally lit, competing with each other for attention. Now there is a clear subject.

I hope this tutorial inspires you to experiment with shooting lit landscapes. Flash doesn’t need to be relegated to the studio – bring it out at night, and see what you can produce! Get a few friends together and make a night of it.
Inspiration: The Top 36 Musician Web Designs
Musician websites have a bad name for themselves. They are often behind the times, either poorly designed or poorly coded – or both. It’s not all blue and gloomy though; there are a bunch of fantastic band and musician web designs out there – thirty-six of which can be found below. From textured designs, including Paolo Nutini and Rocket Club, to simplistic and minimalistic design, including Jamie Cullum and Jennifer Lopez, these designs cover the spectrum.
If you ever find yourself working on an artist or band’s website in the future, be sure to keep these examples in mind. This showcase includes various styles of design, from those that act as just a simple online home for the band/musician, to those which contain full-blown online stores, discographies and forums. If your favorite band has a great website, or you’ve even designed a great band website yourself, feel free to link us and the other readers to them in the comments section below.
Textured
The use of texture in modern web design is something that web designers are no longer afraid to use on a regular basis. It helps to add a certain “style” and “feel” to a design, whether it’s a subtle grunge texture you’re using, or a lovely clean plank of wood.
The use of texture in band and musician web designs can really help to complement the style of music by that particular artist; for example, the subtle and noisy background texture in James Morrison’s design suggest his music is easy to listen to and soft, and the dark, grungy and dirty textures in AC/DC’s design suggests their music is quite loud and hard.
Paolo Nutini
Paolo Nutini’s unique music is matched with a rather unique, elegant and slightly “vintage” style look. It’s made much more appealing by the use of illustrated typography and hanging frames which are brought to life by being different sizes and unaligned.
Zac Brown Band
Paramore
Grizzly Bear
A hand-drawn colorful and retro texture has been used on Grizzly Bears web design, suggesting that they produce feel-good music that is easy to listen to and fun.
Lily Allen
James Morrison
Rocket Club
Rocket Club have combined photography and grungy texture with vintage layer styles to produce a unique and compelling design. Hand-drawn patterns and bold, fancy text has been used to top the designs vintage feel off.
AC/DC
Third Eye Blind
Third Eye Bling (3EB) have cleverly incorporated their band names meaning into their design, by making the title “Third Eye Blind” almost blind for the human eyes to see. It’s clever, unique, and adds a bit of interest to their design, helping users to remember it.
Plan B
Robbie Seay Band
Florence + the Machine
Simplistic/Minimalistic
Simplicity and minimal styles are a popular, and still upcoming trend in modern web design. It is typically used on sites whose owners want the viewers to focus on the websites content rather than the design itself. It is popular among design, illustration and photography portfolios, as well as some online stores and news sites.
Jamie Cullum
Jamie Cullum’s site design is actually quite well known across the design community for its simplicity and great use of white space. The design is elegant, easy to view and navigate, and incorporates some lovely typography and sleek silver buttons in the top right hand corner.
The Black Keys
Arctic Monkeys
The Arctic Monkeys use a black and white color scheme, with very little other colors being used in the design whatsoever. The high-threshold portrait images are used to fit in with the curvy illustrated-style design.
Jennifer Lopez
The Temper Trap
The Rolling Stones
U2
The navigation in U2′s design makes use of strong, bold white typography to draw attention to what’s important: the ways in which to find yourself around the site. The design is separated into three columns, making it easy to present and view lots of information on a single page, similar to columns in a newspaper or magazine.
Nine Inch Nails
Large Typography
Large typography tends to be bold, strong and “powerful.” It’s quite often the first and last thing we look at when entering and leaving a website. It usually has the power to tell you the nature of a website. For example, Limp Bizkit’s website uses a messy and grungy typeface for the word “Bizkit” in a bright yellow against a dark background. This immediately suggests loud and intrusive.
Limp Bizkit
Daniel Moir
Daniel Moir’s design uses a bucket-full of modern-day effects and “trends”, such as huge typography, desaturated and low opacity images and almost (but not quite) monochrome color schemes.
Photographic
Photographic-based web designs usually consist of photographs being used as main backgrounds. It is a great way to set a mood for your design, which is especially important with band and musician websites, as it suggests the style of music before even listening to it. For example, a shot of an illuminated street will suggest modern and pop, whereas a long-exposure shot of a torch will suggest “rave” music and dance.
Pendulum
The Chemical Brothers
The Chemical Brothers have used a long-exposure “light photography” shot in their background, suggesting they produce electronic and dance music. The vivid streaks of light help to bring the simple foreground content to life.
Britney Spears
Imogen Heap
Pixie Lott
A great motion-blurred nightlife shot of an illuminated street has been used in the background of Pixie Lott’s website design. The motorcycle with her sitting on it is Flash animated, helping to bring the background photograph to life.
Kasabian
Paloma Faith
Plants and Animals
“Plants and Animals” is another design in this showcase that is following the latest web design trends; in this case, a three-dimensional anaglyphic effect is used to bring the photographic background and bold typographic links to a completely new level of visual interest.
Illustrated
Like photographic-based web design, illustration is generally used in the background or header of a design, although it is sometimes used in the foreground, as well. Again, like photography, it can help to set the mood of a design, and helps to suggest what kind of music the artist produces.
Katy Perry
Muse
Christina Aguilera
The background used in Christina Aguilera’s web design is highly-illustrated, using light gradients, strong strokes and sudden bursts of slightly desaturated colors to make matching colors in the main content pop (referring to the lips in the background and red typography).
The Decemberists
Jason Mraz
Jimi Hendrix
Jimi Hendrix’s site is stylish, modern and is virtually one big illustration. It uses vivid watercolor style color schemes to make the illustrations compelling, and makes use of the lighter areas to present important information such as navigation links and upcoming events.
You May Also Like…
- Inspiration: Character Illustrations in Website Design
- Inspiration: Wonderful Watercolor Websites
- Inspiration: 35 Wonderful Website Headers
- Inspiration: 35 Unique Examples of Vintage Design
- Inspiration: Awesome Dark Portfolio Sites
Quick Tip: Working with MySQL and INNER JOIN
In today’s video quick tip, we’ll go over when and why to use JOINs when working with your databases.
Subscribe to our YouTube page to watch all of the video tutorials!
Prefer to watch this video on Screenr?
Increase Productivity by Creating PHP Helper Functions
Every workman needs a good toolbox, and web developers are no different. PHP helper functions are designed to speed up and homogenise repetitive tasks, and make your life that much easier. This first tutorial explains how to make link helpers that will improve your methods for adding hyperlinks and mailto links in your web applications.
An Introduction

Yes, there’s nothing quite like awesome, time-saving devices that make lives easier. There are many useful tools out there that can improve your workflow, from CSS grids and layouts to fully fledged content management systems and frameworks.
This tutorial, however, is going to delve into the concept of PHP helper functions, and how you can write generalised snippets for your site that you will be able to use over and over. These are functions that both speed and clean up your coding process, so that repetitive tasks can be minimized, and you can spend more of your time worrying about the important things in life… like dinner.
Hyperlink Helpers
One of the most common repetitive tasks we find ourselves having to write is the hyperlink. By creating a helper function for this we can save time whenever we need to write one, remove any chances of syntax errors, and make sure the code is easy to update if files are moved around, or if you are moving a site to a different domain. To begin, we will make a very simple function in a file called helpers.php:
<?php
function get_domain()
{
//the variable $domain can be set to the domain your application is running from.
$domain = "http://www.my-site-domain.com/";
return $domain;
}
This little baby can be referred to whenever we need to get the full path to a file, and can be referenced over and over during your site development. This is a more useful method than simply calling the domain with the $_SERVER[‘HTTP_HOST’] method, because it will not change if someone has typed in the domain with or without the “www”, and works happily if your site is on a subdomain, for example “http://localhost/my-site”.
It is also incredibly useful when moving the site, because all absolute paths will be referring to this single function, so changing the $domain variable to the new domain will change all of your links sitewide, in one single swoop.
Streamline that Code
What we’ll aim to do now is to create a new function called “anchor” that will output a compliant, standard string of html complete with a title. Here is an example of what we’d like to output:
<a href="http://www.my-site-domain.com/new-page.php" title="New Page">New Page</a>
And here is what we’d like to actually be typing:
echo anchor('new-page.php','New Page');
So here we have a PHP function being referenced which has two variables being passed along: one for the link, and one for the display text. So now, still in our helpers.php file, we can start writing the new function:
function anchor($link, $text) // 1
{
$domain = get_domain(); // 2
$link = $domain . $link; // 3
$data = '<a href="' . $link . '"';
$data .= ' title="' . $text . '"'; //4
$data .= '>';
$data .= $text; //4
$data .= "</a>";
return $data;
}
- Here, we set up the function “anchor” with two passing variables.
- We then get the domain name from the get_domain() function we’ve already created
- Next, we append the $link variable that has been sent to the function.
- We then begin to create the output string in a variable called $data, and use the $text variable to double up as both the visible text for the site, as well as the ‘title’ tag for the link.
Now we can test this out. Create a new file called index.php, in the same folder as this helpers.php file, and type:
require('helpers.php');
echo anchor('new-page.php','New Page');
Here, we’ve connected the two files with the require() function, and then called the anchor() function, sending two custom variables with it. If you test this in a browser you will see our desired result:
New Page
Make it Flexible
This simple function can be useful, but will no doubt become constricting soon enough. We need to add three new features before it becomes truly awesome and flexible; firstly, an option to add custom title tags; secondly, to be able to add CSS rules; and thirdly, an option for it to open in a new window, if need be.
Let’s review custom title tags first. Title tags are very important for SEO purposes, and if you don’t put them on your links at the moment, I strongly recommend it becomes a habit from now on. This function will help force you into doing so — actually, as it’s a lot easier to add, and if you haven’t added one manually, a default copy of the display text will be used instead.
function anchor($link, $text, $title) //1
{
$domain = get_domain();
$link = $domain . $link;
$data = '<a href="' . $link . '"';
if ($title) //2
{
$data .= ' title="' . $title . '"'; //3
}
else
{
$data .= ' title="' . $text . '"'; //4
}
$data.= '>';
$data .= $text;
$data .= "</a>";
return $data;
}
So here is a modified and improved version of our anchor() function.
- Now we have added a third variable, $title.
- We then run a check to see if a custom title tag has been entered.
- If it has, we add a portion to our output $data string that sets the title tag3.
- If nothing has been entered, it will default the title tag to the display text, $text, as it was before.
Now, if we change our function call in index.php to:
echo anchor('new-page.php','New Page','Custom Title Message!');
We will end up with this satisfactory output:
<a href="http://www.my-site-domain.com/new-page.php" title="Custom Title Message!">New Page</a>
Styling and Target Options
To make sure we can still use this helper even if we need to add custom CSS or target tags, we will now add a part to our function that will read a fourth variable, and output the correct html accordingly.
We need this function to be intelligent enough to see if we want to put in a CSS class, a CSS ID, or a target tag, and we also want to be able to put in multiple options, or a singular option, or no options at all. First, let’s modify our anchor function a little:
function anchor($link, $text, $title, $extras)//1
{
$domain = get_domain();
$link = $domain . $link;
$data = '<a href="' . $link . '"';
if ($title)
{
$data .= ' title="' . $title . '"';
}
else
{
$data .= ' title="' . $text . '"';
}
if (is_array($extras))//2
{
foreach($extras as $rule)//3
{
$data .= parse_extras($rule);//4
}
}
if (is_string($extras))//5
{
$data .= parse_extras($extras);//6
}
$data.= '>';
$data .= $text;
$data .= "</a>";
return $data;
}
- First up, we add a fourth passing variable, called “$extras.” This will contain all of our extra custom options.
- Next, we check to see if we are passing an array in this variable. We will be using an array if we’re passing multiple extras to the function, for example if we need it to have a CSS ID and a different CSS class for our link.
- If it is an array, we will loop through it, and push each item through a new function called “parse_extras.” This function will take what extra bits we have entered, and create the correct, corresponding html output.
- If $extras is a string, it means we have only passed one rule through; so we can run our new function parse_extras() on the single item. Usefully, the function is_string() returns FALSE if the variable is empty; so with this piece of code, if nothing is passed through $extras, then no code will be run, and it will skip through.
- We can check what the first character of a string is by using the syntax $string[0]. You may be used to using this syntax to retrieve the first item in an array, but it is also a very helpful and quick method for finding specific characters within strings.
- Next, we create a new variable, which is our inputted $rule, with the first character chopped off. Now that we have identified what the rule is for, we no longer need it for our html output. This combination of substr() and strlen() is a useful snippet for chopping the first character off a string.
- We can now create our $data html output string, ready to return. This method can now be repeated — firstly for if the $rule is a CSS class, and then if it is an html target tag. It’s worth mentioning that we do not need to crop off the first character for the target tag, as html uses the preceding underscore (_), unlike in the CSS rules.
- Firstly, we’re still passing through four variables to this function, although, for cosmetic purposes, we have renamed the first variable to $email.
- Now, we create a new variable with the html output for the mailto link. It’s worth noting that we have added a backslash before the quote marks as this string will later appear inside the JavaScript function, and we need to make sure that the quote marks don’t confuse it.
- Next, we implement the str_rot13() function on the $link variable, so that it is encoded.
- We can then create our returning $data variable, which contains the JavaScript ready for outputting.
- We put our encoded $link in the middle of all this – ready to be translated.
- Now that the JavaScript has been added to our $data variable, the rest of the function will look familiar.
- We check to see if a custom title tag has been added, and then we parse our $extras, just as before. Once again, we get our tags closed up…
- …and return the data.
Now we need to make our new function, parse_extras():
function parse_extras($rule)
{
if ($rule[0] == "#") //1
{
$id = substr($rule,1,strlen($rule)); //2
$data = ' id="' . $id . '"'; //3
return $data;
}
if ($rule[0] == ".") //4
{
$class = substr($rule,1,strlen($rule));
$data = ' class="' . $class . '"';
return $data;
}
if ($rule[0] == "_") //5
{
$data = ' target="' . $rule . '"';
return $data;
}
}
This function makes use of the fact that all our extras will start with a unique identifier. If we’re passing a CSS ID, it will begin with a hash (#), if we’re passing a CSS class, it will start with a period (.), and if we’re passing a target, it will start with an underscore (_).
Now that we have created all our necessary functions, we can return to our index.php file and modify our anchor() call.
echo anchor('new-page.php','New Page','Custom Title Message!','#special_link');
Here we’re passing a CSS ID, and we receive an output of:
<a href="http://www.my-site-domain.com/new-page.php" title="Custom Title Message!" id="special_link">New Page</a>
If we were to add an array of extras, in case you wanted it to open in a new window and to have a specific ID and class (unlikely, but worth showing off the flexibility!), we’d do it like this:
$extras = array('#special_id','.special_class','_blank');
echo anchor('new-page.php','New Page','Custom Title Message!',$extras);
Here, we pre-establish an array variable called extras, just to keep the code tidy, and then send it along with the anchor() function. This will produce the following output:
<a href="http://www.my-site-domain.com/new-page.php" title="Custom Title Message!" id="special_id" class="special_class" target="_blank">New Page</a>
Mailto Links
Finally, we’ll have a look at how to create mailto links in your applications. We’ll make a function called mailto() which will be quite similar to the anchor() function, with one major difference: we will be implementing a cipher on the html output so that the email address can’t be crawled by spam-spiders, and will keep your client’s email addresses secure.
The method we’ll use to hide the email address uses the rather awesome str_rot13() PHP function, which simply takes a string and moves all alphabetical characters thirteen letters along, in the alphabet. If you ever went to boy scouts, you probably remember mucking around with such codes, and deciding you were probably going to be a spy when you grow up.
The cipher will output our code in a garbled fashion, and then, using a JavaScript ‘antidote’ function, we can pull the characters back thirteen places on the alphabet and restore their original meaning. However, as this function is client-side, the ‘antidote’ only actions, and the text returns to its normal self, when showed on a screen. Thus, spiders, crawlers and spambots, for the most part, won’t have a clue what they’re reading.
It’s probably worth mentioning that there are many methods of hiding mailto links, some a lot more secure than this, some less so. I like to use this method, and have never seen any spam come through to any of my clients because of it. It’s worth mentioning too that the JavaScript method itself was developed by Christoph Burgdorfer, and looks like this:
<script type="text/javascript">
document.write("Njrfbzr frperg fcl pbqr".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));
</script>
This takes the garbled string “Njrfbzr frperg fcl pbqr” and shifts all the characters, so that the display on your screen looks like:
Awesome secret spy code
However, if you review the source code, which is what the spiders and crawlers will see, you will see no mention of this result — thus, it remains hidden.
We won’t look at the ins and outs of how this JavaScript works, as this is a PHP tutorial, after all. Instead, we’ll examine how we can implement this in our new mailto() function.
function mailto($email, $text, $title, $extras) //1
{
$link = '<a href=\"mailto:' . $email; //2
$link = str_rot13($link); //3
$data = '<script type="text/javascript">document.write("'; //4
$data .= $link; //5
$data .= '".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));
</script>';
$data .= '"';
if ($title) //6
{
$data .= ' title="' . $title . '"';
}
else
{
$data .= ' title="' . $text . '"';
}
if (is_array($extras))
{
foreach($extras as $rule)
{
$data .= parse_extras($rule);
}
}
if (is_string($extras))
{
$data .= parse_extras($extras);
}
$data .= ">";
$data .= $text;
$data .= "</a>"; //7
return $data; //8
}
So let’s have a look at what is different here.
We can now use the following syntax in our index.php file to bring up our mailto link:
echo mailto('[email protected]','Contact Me');
Or, if we need custom elements, just as before, we can add more variables:
$extras = array('#special_id','.special_class','_blank');
echo mailto('[email protected]','Contact me','Contact your good pal Barry.',$extras);
Conclusion
This concludes our first foray into PHP helper functions. This is very much the tip of the iceberg, and, next time, we’ll begin reviewing some more complex tools, in the name of form helpers.
Form creation and validation has to be one of my pet peeves when creating them from scratch- there is a lot of repetitive code, painstaking writing, and chances for errors. A series of functions that both output correctly structured forms and check the post data for valid email addresses, passwords, string length, etc, can be a true lifesaver. Ah yes, creating html forms from scratch needs not be so groan-worthy as you previously thought.
If you have any other ideas of what would be really helpful to see in a PHP helper function, be sure to comment your ideas!
Control A 3D Deck of Cards Like Magic
In this tutorial we’ll be creating a Card deck that unfolds and a chosen card that rises up. We’ll be creating lots of expressions and i will show you an handy trick that will show another image on the front and backfacing of a layer.
Tutorial
Download Tutorial .flv
File size 206MB
Inspiration: Colorful and Vivid Logos
The world as we see it, is populated by colors. Every day we see brands and businesses using colors to define their identity (for example, the famous "yellow M" of a multinational fast-food chain). Although logos are traditionally made with minimal colors, the shift towards full color is unmistakable. In fact, a recently published article by Logo Lounge states that, for many years logos have been designed with one or two colors and recently designers have begun to look at the actual surface of the shapes as an entirely new canvas and the use of color is unrestrained. The article goes on to say that, rainbow-like color is often used to represent the concept of a full spectrum, more choices, or additional capabilities. In this compilation we present to you a selection of colorful and vivid logos that are fresh, inspiring and push creative boundaries.
The Harmonized Major Scale – Part 1
The Harmonized Major scale enables us to identify all the chords within a given key. Not only does this make it much quicker and easier to find the right chords when writing or playing music, it is also extremely important to understand which key you are in for the improvisation of melodies and solos.
Step 1
Below is the completed harmonized Major scale, which we will be working out for ourselves in this turorial:

Download audio file (Harmonized C Major Scale.mp3)
First of all, we need to write out all the notes within the scale/key we are trying to harmonize (C Major in this case). If you don’t already know which notes belong to the scale you can use the Major scale formula to count the interval between notes in Tones (T) and Semi-Tones (S) starting on the root note of the scale: T, T, S, T, T, T, S

Step 2
Now we have the available notes in our key we can start working out which chords fall on each degree of the scale (I, II, III, IV etc) by taking each note in the scale as a root note (1) for each chord. By counting along the scale starting on each root note we can pick the 3rd and 5th notes from that point to form the rest of the chord.
Let’s start with chord I which takes the note C as its root note. C is the root note (1st note) of the chord. E will be the 3rd note of the chord and G will be the 5th note of the chord. When comparing these notes to the scale/key of the chord (C), which in the case of the root chord will be the same scale/key we are harmonizing, we have a 1, 3, 5 which is the formula for any Major chord. So chord I of the harmonized C Major scale is C Major.

Step 3
Next we need to work out chord II of our Major scale. This is similar to the process we followed to find chord I only this time we start on the 2nd note of the scale (D) and count along to find the 3rd and 5th note to complete the chord.
In the table below, you can see chord II starts with D as its root note (1), F as the 3rd note and A as the 5th note.

Now we have the notes for a type of D chord, but we need to investigate a little further in order to find out exactly which type of D chord it is – Major, minor, Diminished etc.
To do this we take the notes of the chord from the scale we are harmonizing and compare them with the Major scale the chord itself originates from, which in this case is D Major.

Here you can see the note F within C Major, and in turn within our D chord is natural (not a sharp or flat), whereas the D Major scale has an F#. So when comparing our D chord to it’s scale of origin (D Major), the F# has been flattened to an F natural meaning the third note of our chord has become a flattened 3rd (b3) within the key of C Major.
The 1st and 5th note of the chord are the same in both keys and so remain unchanged.
Knowing this, we can formularize our D chord as 1 b3 5 (one, flat 3, 5) which is the formula of any minor chord, meaning the II chord within the key of C Major is Dm (D minor).
NOTE – Although we are finding chords within the C Major scale, we view the notes of the chords within this key from the perspective of the scale they originate from, so a C chord from the perspective of C Major, a D chord from the perspective of D Major, an E chord from the perspective of E Major and so on.
This way you will see which notes from the key you are using, if any, have been altered from their natural state.
Step 4
You’ll be pleased to know we’re now over the hardest part. Working out the rest of the chords for the Harmonized C Major scale follows the same processes taken in steps 2 and 3.
Let’s push on then and find out what chord III is.
Starting on the III degree of the C Major scale our next chord will have the note E as its 1st note (root note). Counting along the scale from this point the 3rd note is G and the 5th note is B.

Step 5
As we did in step 3 with the D chord, we now need to see how the notes of our E chord within the key compare to the same notes of the E Major scale which the chord originates from.

Our E chord from within the C Major scale has a G natural, whereas the E Major scale which the chord originates from has a G#. The 3rd note of our E chord within C Major has been flattened from a G# (in E Major) to a G natural meaning we can formularize the E chord as 1, b3, 5 which as we’ve already seen is the formula for any minor chord.
Chord III of the harmonized C Major scale is Em (E minor).
Step 6
Next we’ll look at chord IV of the harmonized C Major scale.
Starting on the IV degree of the C Major scale our next chord will have the note F as its root note. Counting along the scale from this point the 3rd note is A and the 5th note is C.

Step 7
As before, we now need to compare the notes of our F chord within the C Major scale to the same notes of the F Major scale which the chord originates from.

You’ll notice here that none of the notes within our F chord inside the C Major scale have been altered from how they appear in the F Major scale so the F chord is simply formularized as 1, 3, 5 which as we’ve already seen is the formula for a Major chord.
Chord IV of the harmonized C Major scale is F (F Major).
Step 8
Next we’ll look at chord V of the harmonized C Major scale.
Starting on the V degree of the C Major scale our next chord will have the note G as its root note. Counting along the scale from this point the 3rd note is B and the 5th note is D.

In the previous diagrams, the notes of the scales and chord are matched up vertically to make things easier to see.
To save space in the following diagrams, we simply make use of the existing notes by cycling through back to the beginning of the scale and continuing to count along from there.
Step 9
We now need to compare the notes of our G chord within the C Major scale to the same notes of the G Major scale which the chord originates from.

None of the notes within our G chord inside the C Major scale have been altered from how they appear in the G Major scale so the G chord is again formularized as 1, 3, 5.
Chord V of the harmonized C Major scale is G (G Major).
Step 10
Next up is chord VI of the harmonized C Major scale.
Starting on the VI degree of the C Major scale our next chord will have the note A as its root note. Counting along the scale from this point the 3rd note is C and the 5th note is E.

Step 11
We now need to compare the notes of our A chord within the C Major scale to the same notes of the A Major scale which the chord originates from.

Comparing the A chord from within the C Major scale to the notes of the A Major scale we can see that the 3rd note has again been flattened. In this case the 3rd note of the A chord has been flattened from a C# to a C natural leading to our chord to being formulated as 1, b3, 5 – another minor chord.
Chord VI of the harmonized C Major scale is Am (A minor)
Step 12
Last but not least is chord VII of the harmonized C Major scale.
Starting on the VII degree of the C Major scale our final chord will have the note B as its root note. Counting along the scale from this point the 3rd note is D and the 5th note is F.

Step 13
We now need to compare the notes of our B chord within the C Major scale to the same notes of the B Major scale which the chord originates from.

This time, comparing the B chord from within the C Major scale to the notes of the B Major scale we can see something a little different from the chords we’ve encountered so far.
The 3rd note has again been flattened, but this time the 5th note has also been flattened from a F# within the B Major scale to a F natural within the chord from our C Major scale.
This means we formularize the chord as 1, b3, b5 which is the formula for a diminished chord. So in this case, chord VII of the harmonized C Major scale is Bdim (B diminished)
Conclusion
While this may seem like a lengthy process at first, it’s actually quite simple once you’ve had a few goes at it.
Practice by harmonizing any other Major scale: A, D, E, F for example. If you work through a couple each week or better yet, every day, you’ll soon be doing it with ease and in half the time!
Through regular practice you’ll be able to identify intervals between notes better and you will start to recognize Major or minor tones of chords within the scales you are using when playing over different chord progressions, helping you to avoid the bad notes and really capitalize on the great ones!
In the second part of this tutorial we will be looking at how you can expand on the harmonized Major scale even further to make use of extended chords.
Freebie: Vector iPhone 4 PSD File
These days, it seems like if you don’t already own an iPhone, you’re probably thinking about getting one. Over the last couple of years, the popularity of the iPhone has really taken off. Because of this, most designers have found the need to incorporate the iPhone into a design at least once in their career. With the release of the new iPhone 4, we now need to replace our old iPhone designs with an updated one. That is why today we are releasing a free iPhone 4 PSD file for you guys to incorporate into your work.
A Scalable Vector iPhone 4 PSD File Included
This download includes a fully scalable vector iPhone 4 PSD file that you can use in your own designs. It was designed by Cambridge-based designer, Hector Janse van Rensburg from Inkpilot.com. Feel free to download this file and check it out.

Workshop #91: Path Less Chosen by betweenthenow
At Audiotuts+ we irregularly put up a reader track for workshopping and critique (find out how to submit a track). This is how it works: you upload your song, and every week or so we’ll publish one here and step away from the podium. The floor is yours to talk about the track and how the artist can fix problems in and improve upon the mix and the song.
This track has been submitted for your friendly, constructive criticism. They have put their track (and their heart and soul) in your hands to learn and get useful feedback.
- Do you enjoy the song or track itself? Does it have potential?
- Can the arrangement be improved?
- How did you find the mix? What would you do differently?
- What do you enjoy about the rhythm track? What can be done to improve it?
- Is the choice of instruments relevant and effective for the style/song?
- Are the lyrics (if any) effective? Does the style, arrangement and genre of the song suit them?
- Can you suggest any specific techniques that might improve the track?
- Do you have any other constructive feedback?
Path Less Chosen by betweenthenow
Artist’s website: myspace.com/betweenthenow
Description of the track:
Path Less Chosen is a kind of triphop meets electro song.
Download audio file (pathlesschosen.mp3)
Terms of Use: Users can stream the track for the purposes of giving feedback but cannot download or redistribute it.
Have a listen to the track and offer your constructive criticism for this Workshop in the comments section.
Submit Your Tracks for Workshopping
Need constructive criticism on your own tracks? Submit them using this form.
Inspiration: Fantastic TV Fan Art
People are often inspired by what they see on TV. Sometimes we’re inspired by characters, sometimes costumes, sometimes scenery, or maybe just the storyline. This article showcases a huge collection of TV series fan art, from modern hits such as Lost, House and CSI, to some going a little further back in time such as Buffy the Vampire Slayer and Star Trek. The showcase is full of different kinds of art, from traditional pencil sketches to modern digital illustrations. These are sure to inspire!
Ashes to Ashes
Ashes to Ashes is a UK BBC hit about a detective inspector, DI Alex Drake, who was in a horrific incident leaving her in a coma in 2008. Next thing she knows, she’s awake, but finds herself stuck in the year 1981.
Drake and Hunt
Ashes to Ashes
Ashes to Ashes
Gene Hunt
Alex Drake
Battlestar Galactica
Battlestar Galactica started back in 1978 and is still growing strong today. The main story, in all seasons, shares the same premise: a civilization of humans live on a group of planets known as the Twelve Colonies in a distant part of the universe. After being at war with the Cylons, the Battlestar Galactica (ship) was the one remaining surviving ship, and it was left up to it’s crew to lead the small fleet of survivors into space in search of the thirteenth colony known as Earth.
Battlestar Galactica Manga
Battlestar Galactica
Battlestar Galactica
Classic Battlestar Galactica
Workspace Galactica
Battlestar – Star Wars Style Poster
Buffy the Vampire Slayer
Buffy the Vampire Slayer is an American TV series, loosely based on a movie of the same name, that aired from 1997 to 2003. The series followed main character, Buffy Summers, a “trainee” vampire slayer as she is guided, taught and trained by her "watcher", Rupert Giles.
Buffy the Vampire Slayer
Buffy the Vampire Slayer
Buffy the Vampire Slayer
Buffy
Buffy the Vampire Slayer
Buffy: On The Prowl
Buffy Summers
Crime Scene Investigation
CSI: Crime Scene Investigation is an unbelievably huge series/franchise, with various spin-offs and video games being produced after the original series, which took place in Las Vegas. It premiered in 2000, and follows a group criminalists as they use physical evidence to solve gruesome murders in and around Las Vegas, Miami and New York.
CSI Chibis
CSI: Miami Cast
CSI: Las Vegas
CSI
CSI The Series
Deadwood
Deadwood is yet another American drama series that premiered in 2004 to 2006. The show is set in the 1870′s, in Deadwood, South Dakota, and follows Deadwood’s growth from a camp to a town.
Deadwood
Deadwood in 5 Seconds
Deadwood
Welcome to Deadwood
Firefly
Firefly is a space western TV series written and directed by Joss Whedon, the creator of Buffy the Vampire Slayer, Dollhouse and Angel. The series is set in the year 2517, after the arrival of humans in a new star system, and follows the crew of Serenity, a Firefly-class spaceship.
The Crew of Serenity
Big Damn Heroes
River Tam
Firefly Characters
Firefly Crew
Firefly: Mal
Firefly: Handy Grenades
Futurama
Futurama is an animated sci-fi sitcom created by Matt Groening, and was originally aired in 1999 to 2003. The series follows a late 20th-century NYC pizza delivery boy, who after being frozen for a thousand years, manages to find employment at Planet Express, a delivery company in the retro-futuristic 31st century.
Futurama
Futurama
Futurama
Futurama: Super Happy Fun Show
Futurama
Leela of Futurama
Glee
Yet another American show, but a worldwide hit; this time a musical comedy-drama series. Glee focuses on a high school glee club known as “New Directions”, and piloted in 2009.
Glee
Glee
Glee
Glee: Puck, Kurt and Rachel
Glee Girls
Glee Kids Yearbook
Glee Kids
Heroes
You guessed it, Heroes is American! A sci-fi hit created by Tim Kring, with its first show appearing on television in 2006. The series follows a group of people who discover that they actually have superhuman abilities, such as being able to fly, run at the speed of light, time-travel and self-heal. The show started with an average of 14.3 million viewers, but since then has dramatically decreased in popularity. It was announced that the show is being cancelled in May, 2010.
Heroes
Heroes Pencils
Heroes
Heroes
Heroes: Isaac Mendez
Heroes
Heroes
House
House, also known as House M.D., is a medical drama that debuted in 2004. The series follows Dr. Gregory House, an unconventional medical genius who leads a team of diagnosticians in New Jersey.
House
House
Dr Gregory House
House M.D – Chibi Style
House M.D.: Tare House
Dr. House
House
House M.D.
House
Lost
Lost is an American television series that follows the lives of a group of plane crash survivors, somewhere in the South Pacific Ocean on a mysterious tropical island. The pilot episode was first seen on TV in 2004, and has since seen five seasons, with the sixth (and final) season wrapping up this year.
Lost
Locke
Lost
Lost S4
Sawyer
Lost
Lost II
Kate
Lost
LOST: The Animated Series
Kisses: Kate and Sawyer
Prison Break
Prison Break is a drama series that was first brought to our screens in 2005. The series revolves around two brothers, one of which has been sentenced to death for a crime that he didn’t actually commit, while the other is creating an elaborate plan to help his brother escape.
Prison Break: T-Bag
Prison Break
Prison Break S4
Prison Break
Prison Break: Michael and T-Bag
Star Trek
Star Trek is yet another sci-fi series, and was first seen back in 1966. Since then it has seen a handful of other spin-off series, as well as various movies, most recently on the big screen in 2009.
Star Trek: Love Scene
Star Trek: Your Heart
Star Trek: The Search for Spock
Star Trek: HBD to P’fiar
Star Trek Fashion
The Mentalist
The Mentalist debuted in 2008, and follows Patrick Jane, an independent consultant for the CBI (California Bureau of Investigation). Although he is not an officer of law of any sort, he uses the skills of his former career as a psychic medium to help a team of CBI agents solve various crimes.
The Mentalist
Direction
Watch Closely…
I See You
Mr Jane
The Simpsons
The Simpsons is quite easily one of the biggest TV series of all time. It debuted in 1989. 463 episodes later and the 21st season began in 2009. The franchise is still huge. The sitcom (by Matt Groening) follows a working-class American family, consisting of Homer (a power plant worker), Marge (a housewife), Bart (a 10 year old rebel), Lisa (a genius child) and Maggie (a pacifier-sucking baby who often falls on her face)!











































































































































































































































