Exclusive Freebies: PhotoViewer XML and Radar Chart

Everyone likes something for nothing, so why not sink your teeth into these two great free files from the ActiveToFocus team! Check out the demos, download the files then see what else ActiveToFocus have to offer over at ActiveDen..

Each of these free downloads comes complete with full source files and documentation (pdf, doc). For further support leave your comments below or contact ActiveToFocus through their ActiveDen page.


Freebie: PhotoViewer XML

PhotoViewer XML is a slick xml image gallery boasting a multitude of features.

  • xml driven
  • simple to implement and alter
  • accordion menu select
  • scrolling image display
  • supports swf, jpg, gif, png files
  • supports multiple categories
  • supports large number of thumbnails
  • all styles set through xml
  • image zoom in and out
  • image rotate
  • image resize
  • fullscreen

Freebie: Radar Chart

Also known as a web chart or a spider chart, this XML driven radar chart is a great way to display multivariate data; nicely animated, with a couple of display options. Try it out for yourself!

These Exclusive Freebie files are free for personal and commercial use only. They may not be sold or redistributed.

Creative Sessions: Interface Design Launch

Successful interfaces allow you to use them easily – they should feel seamless with the device you’re accessing with, and the experience you’re having. Successful interface designers have a theoretical foundation in numerous fields, which focus on planning and delivering great user experiences, as well as a strong graphic sensibility which they use to create interfaces that are attractive and fun to interact with. In this session we cover numerous subjects on Interface Design.

There are many fields that have risen in the last few years, such as Experience Design, Interaction Design, Information Architecture, and User-Centered Design that form the backbone of your interface design. We’ll be getting into these subjects in this session to give you a theoretical foundation and some starting points for study. We’ll also bring all this together and discuss interface design workflows of professionals and provide materials to learn Graphic User Interface (GUI) Design to get you on your way to creating professional interfaces.

Head over to our article on Getting Started with Interface Design to get going with a broad overview of interface design.


Participate in this Session’s Group Project

Jump over to this Session’s creative project on Create an Application Icon or Dashboard Widget. Choose the project to participate in that best fits your skill level and interest. This session’s Beginner/Intermediate project the brief is to make an icon for applications, which is great practice for building your GUI skills.

coda

We also have an Advanced project where you design a widget, which is a great way to get some hands on experience with designing interfaces, as they are typically smaller apps with a tight focus. You can post your projects in the comments here and get some feedback from the community.


Download this Session’s Cover Art as a Digital Wallpaper

Jump over to this session introduction to download this session’s wallpapers made by Wojciech Pijecki.


More Creative Sessions

Creative Sessions logo.Every month we’ll be running a two week Session on a creative topic. This Session is on Interface Design, and future Sessions will be on varied topics like, gaming design, and creative freelancing, and more. Unlike regular Tuts+ content, Sessions content is more theoretical, opinion based and will often cross many disciplines.

Handling Screen Architecture: The Painless Way!

Ever thought screen architecture was a needlessly painful and tedious task? Then this tutorial is your friend.

We found this awesome author thanks to FlashGameLicense.com, the place to buy and sell Flash games!


Final Result Preview

Let’s take a look at the final result we will be working towards:


Step 1: The Screening Process

If you are anything like I was, I always hated the beginning of a project, because I would have to set up all of the screens. After I stopped coding on the timeline, I lost the ease of just saying: gotoAndStop(x).

As we all know, timeline coding is just wrong; It pollutes the environment and causes tooth decay. It was simple to switch screens however. I spent a lot of time online trying to find an efficient method of screen switching, but all I found was methods full of pain, punishing the developer for having complex screen architectures. And not changing screens from the base screen caused me to slap ugly code into my game such as:

parent.parent.parent.dispatchEvent(Event.CUSTOM_EVENT, screen1_to_screen2);

See what I mean? Custom event after custom event, I grew tired of this absurdity. There has to be a better way.


Step 2: The Light at the End of the Tunnel

So, I set out to find a method of handling complex screen architectures without all of that pesky mental trauma. No events. I turned to my favorite way of handling tasks that need to be referenced from anywhere in the game: Static variables and methods.

Using static variables would allow me to reference an object from anywhere I wanted in the game, even in a popup of a popup of a popup. I decided to couple this with the simplicity and usability of Flash’s display list.

Enter the ScreenHandler class.


Step 3: Your Game

It probably has many screens. You likely have your splash screen, main menu, game screen, credits, victory screen, and many others. We need to set up our screens first. We won’t put any content into it yet, the gameplay is up to you.

Here are the screens I have:

These are the screens I'll be using in my great game.

As you can see, I have left out the preloader. Preloading correctly is a whole other tutorial. You can learn about it here:

Active Tuts+: The comprehensive guide to preloading a single swf file

I’ll explain how to combine this with that tutorial near the end. Now on to the part you’ve all been waiting for!


Step 4: The ScreenHandler Class

Essentially, the ScreenHandler class is a display object that holds all of your screens and internally switches them at will. The code is surprisingly simple. However, I won’t just lay a wall of code for you to run into. It would be a waste if you didn’t fully understand the code. So I will break it down into a couple of sections.

The first thing we need to do is create the actual class. Here is the code:

package  {
	import flash.display.Sprite;
	public class ScreenHandler extends Sprite{
		//Variables go here
		public function ScreenHandler() {
			//Constructor goes here
		}
		//Functions go here
	}
}

Wow, that is extremely empty.

Next we’ll add in our screens as variables:

private var splashScreen:SplashScreen;
private var mainMenu:MainMenu;
private var levelSelect:LevelSelect;
private var game:Game;
private var credits:Credits;
private var victory:Victory;

Just throw those under the “Variables go here” comment.

And just like that, we’re 1/10th of the way there!


Step 5: What Makes it Tick

This is the function that you will call to switch your screens. The good news is that it’s only 4 lines of code. The bad news is that it’s only because I like to break down my code into manageable chunks. This is the only public function in the entire class, as this is all you need to call to get the class to function. Encapsulation at it’s finest!

public function switchTo(screenName:String):void{
	newScreenName = screenName;
	switchScreens();
}

That goes under the “Functions go here” comment. Simple, no? Now you need to make a variable called newScreenName and a function called switchScreens.

private var newScreenName:String = "";

You already know where that goes. And here is the switchScreens function:

private function switchScreens():void{
	removeOldScreen();
	makeNewScreen();
}

I warned you: manageable chunks.


Step 6: I Still Don’t Know Anything!!!

Before you get angry with me, realize that I’m doing this for your own good. No, really. Breaking it up into manageable chunks like this makes it easier for you to find and alter the code if you need custom functionality. I myself always find the need to change code later on in the game, so I just adopted this coding practice. Also, if you are writing code and something’s broken, it’s easier to find the source of the problem. Ok, enough of my sidetracking. Here are the functions that make it happen (for real this time).


Step 7: The Beauty of the Display List

The removeOldScreen function takes its miraculous functionality from AS3’s display list. This was probably the best improvement from AS2. The parent-child relationship that the display list has is extremely useful in almost any visual manipulation, and looping through children in a display object is faster than looping through MovieClips in an array. It really is great. Before we write the removeOldScreen and makeNewScreen functions, we need a parent to hold the screens. Here’s another variable:

private var screenLayer:Sprite = new Sprite();

and add this line of code to your constructor:

this.addChild(screenLayer);

Alright, now we have a parent foundation that allows for easy modification and debugging. All that’s left to do is write the removeOldScreen function. Here is the code:

private function removeOldScreen():void{
	var oldScreen:MovieClip;
	oldScreen = screenLayer.getChildAt(0) as MovieClip;
	screenLayer.removeChild(oldScreen);
}

What we are doing is creating a placeholder variable that is going to ‘become’ our current screen. We then grab the child at the index of ‘0’ (which is the first child of the parent object) and set our placeholder equal to it. This convenient method allows us to do whatever we like to any screen without having to call the screens specific variable name. We then use the removeChild method to get rid of the screen for good. Just beautiful.

Well, now we can make a blank screen. It would be nice to be able to put something there, right? Well I’m about to tell you how to do that.


Step 8: Rectifying the Blank Screen

This is the most verbose section of the code, but it’s very easy to make, understand, and customize. This section of the code is basically a giant switch statement that contains all of your screens. The argument that we pass into the switch function is that newScreenName variable we set in the switchTo function.

private function makeNewScreen():void{
	switch(newScreenName){
		case "SplashScreen":
			splashScreen = new SplashScreen();
			screenLayer.addChild(splashScreen);
		break;
		case "MainMenu":
			mainMenu = new MainMenu();
			screenLayer.addChild(mainMenu);
		break;
		case "LevelSelect":
			levelSelect = new LevelSelect();
			screenLayer.addChild(levelSelect);
		break;
		case "Game":
			game = new Game();
			screenLayer.addChild(game);
		break;
		case "Credits":
			credits = new Credits();
			screenLayer.addChild(credits);
		break;
		case "Victory":
			victory = new Victory();
			screenLayer.addChild(victory);
		break;
		default:
			mainMenu = new MainMenu();
			screenLayer.addChild(mainMenu);
		break;
	}
	newScreenName = "";
}

The code is pretty self-explanatory, but I will explain it anyways.

case "Screen":
	screen = new Screen();
	screenLayer.addChild(screen);
break;

You associate a string to a screen. That string is the argument that you will pass into the switchTo function. It then goes through the switch statement and selects the correct screen to add. It then constructs an instance of the variable and adds it to the screenLayer. You aren’t required to set a default, but it’s useful to have a default for any switch statement you have for debugging purposes. It activates if none of the other cases match the argument.

Note: The registration point of the screens need to be at the top left corner for the screens to be displayed correctly.

Now we have the functionality behind the ScreenHandler class. Now it’s time to apply it to our program! Before we apply it to our program, we need to add a child to the screenLayer otherwise, we’ll have nothing to remove when we call removeOldScreen the first time. This will give us an error, and errors are bad. Mkay?

splashScreen = new SplashScreen();
screenLayer.addChild(splashScreen);

Add that underneath the rest of the constructor. Now go to the top of the class and import flash.display.MovieClip, if you haven’t already done so, and we can move on.


Step 9: Making it Work

If you haven’t looked at the tutorial I referenced earlier, now might be the time to do so.

Active Tuts+: The comprehensive guide to preloading a single swf file

Back? Great.

The screen handler will be added to the Application class. The actual sprite itself will be a public static variable, so you can reference it from anywhere in your code and it will switch the screen. Easy, right?

public static var screens:ScreenHandler = new ScreenHandler();

then add this to the Application class’ constructor:

this.addChild(screens);

If you ever need to switch screens from anywhere in your code, this is how you do it:

Application.screens.switchTo("SelectedScreen");

Step 10: There’s More?

Well, we’re done with the screen handler per se. After I code all of the buttons to switch to whatever screen I wish, it works.

You may say: “Thomas, this screen switching is ugly! I want screen transitions!”

Well, it’s a good thing the codes are easily customizable. Just ask nicely next time.


Step 11: Making it Look Good

The first step in adding screen transitions is deciding what kind of screen transition you want. For this example, I’m just going to make a simple fade out and in. Easy right?

  • Start by making a new Symbol.
  • Name it Transition, and export it for actionscript.
  • Draw a rectangle the size of your screen.
  • Make a new keyframe on frame 10.
  • Make a new keyframe on frame 20.
  • Return to frame one and convert the alpha to 0;
  • Go to frame 20 and convert the alpha to 0;
  • Right click on the space between the keyframes and select ‘Create Shape Tween’.

Your finished Screen Transition should look like this:

This is a screenshot of the screen transition. Not much movement here.

Now that we have that set up, lets code our Transition class!


Step 12: A Little Class

This is a simple class to set up for our purposes, although you can always customize it to fix your needs. It needs to extend MovieClip, and the only thing we are adding to it is a variable.

package  {
	import flash.display.MovieClip;
	import flash.events.Event;
	public class Transition extends MovieClip{
		public static var exitFrames:Number = 11;
		private var timer:Number = 0;
		public function ScreenTransition() {
			this.addEventListener(Event.ENTER_FRAME, remove);
			this.addEventListener(Event.REMOVED_FROM_STAGE, removeListeners);
		}
		private function remove(e:Event):void{
			timer++;
			if(timer >= 20){
				parent.removeChild(this);
			}
		}
		private function removeListeners(e:Event):void{
			this.removeEventListener(Event.ENTER_FRAME, remove);
			this.removeEventListener(Event.REMOVED_FROM_STAGE, removeListeners);
		}
	}
}

The variable we added was exitFrames. We set it to 11. Why? Because that’s the frame that the transition reaches 100% alpha, and it’s the frame we are going to switch the screens on. The other functions handle the removing of the clip itself and handle the removing of event listeners once it’s been removed. Less garbage collection, eh?


Step 13: But You Said No Events!

Remember how I said we wouldn’t use events? Well, I lied. The screen transition requires a few events so that the switching of the screen properly delays and the transition is removed after it has finished its job.

Since the beginning, my goal was to make this class as versatile and easy to use as possible. I didn’t want any headache when I set up my screen architecture. In keeping up with those guidelines, I will make the adding of screen transitions an option, since sometimes, a screen transition is not necessary.


Step 14: Changing Things Around

To add in screen transitions, we don’t even have to touch the removeOldScreen or makeNewScreen code because I separated them beforehand. It’s almost like I knew this was going to happen…

We are going to need a slew of new variables:

private var transitionLayer:Sprite = new Sprite();
private var transition:Transition;
private var transTimer:Number = 0;
private var makeTransition:Boolean;

The transitionLayer is going to house our transition clip. That way it doesn’t interfere with our screenLayer’s number of children. The transition timer is going to be used for timing our actions in the event just right. The make transition variable is going to control whether a screen transition will be used, that’s up to you!

Next, we are going to need to change things around in the constructor as well. This is what your new constructor should look like:

this.addChild(screenLayer);
this.addChild(transitionLayer);
splashScreen = new SplashScreen();
screenLayer.addChild(splashScreen);

And last but not least, go to you import area and import flash.events.Event. After that we can make way.


Step 15: Re-working the switchTo Function

I still want to keep this function short and sweet, as to not complicate the user end result. Encapsulation is great, no?

public function switchTo(screenName:String, trans:Boolean = true):void{
	newScreenName = screenName;
	makeTransition = trans;
	this.addEventListener(Event.ENTER_FRAME, switchScreens);
}

There are a lot of new things in here. In the arguments section, we added trans, which is set to true by default. This means, that unless you say otherwise, it is automatically set to make a screen transition. This saves you the trouble of having to type out ‘true’ every time you switch screens. Our makeTransition variable is then set equal to trans. The switchScreens function now will accept an event argument, which leads us to the next section.


Step 16: Re-working the switchScreens Function

Let’s focus on the code to make the screen transition work first. This will feature a good amount of change from our previously simple code.

private function switchScreens(e:Event):void{
	transTimer++;
	if(transTimer == 1 && transitionLayer.numChildren < 1){
		transition = new Transition();
		transitionLayer.addChild(transition);
	}
	if(transTimer >= transition.exitFrames){
		removeOldScreen();
		makeNewScreen();
       transTimer = 0;
       this.removeEventListener(Event.ENTER_FRAME, switchScreens);
	}
}

Let me break it down:

private function switchScreens(e:Event):void{
	transTimer++;
	if(transTimer == 1 && transitionLayer.numChildren < 1){
		transition = new Transition();
		transitionLayer.addChild(transition);
	}

First we add an Event argument into the function. We set the transTimer to increase by one every frame. If the transTimer is equal to one, and the transitionLayer has no children, we add a transition.

       if(transTimer == transition.exitFrames){
		removeOldScreen();
		makeNewScreen();
		transTimer = 0;
		this.removeEventListener(Event.ENTER_FRAME, switchScreens);

	}

Once the transTimer reaches the exitFrames we set earlier, we make the screen change happen. Because that’s what it’s all about, right? Then it resets the transTimer, then removes the event listener. Now it switches screens with a smooth screen transition!


Step 17: Re-working the switchScreen Function (Part 2)

We will now accommodate the possibility that you don’t want a screen transition to happen. We are going to wrap all of our current switchScreens code in an if statement:

if(makeTransition){
	//All of your current switchScreens code goes here
}

Wasn’t that easy? Now we make an else section for when makeTransition isn’t true:

if(makeTransition){
	//All of your current switchScreens code goes here
} else {
	removeOldScreen();
	makeNewScreen();
	this.removeEventListener(Event.ENTER_FRAME, switchScreens);
}

And there you have it, a fully functional screen handling class with the ablility to control the adding of screen transitions! Great stuff.


Step 18: The Full ScreenHandler Class

This is what the finished code will look like:

package  {
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.Event;

	public class ScreenHandler extends Sprite{
		private var splashScreen:SplashScreen;
		private var mainMenu:MainMenu;
		private var levelSelect:LevelSelect;
		private var game:Game;
		private var credits:Credits;
		private var victory:Victory;

		private var newScreenName:String = "";

		private var screenLayer:Sprite = new Sprite();
		private var transitionLayer:Sprite = new Sprite();
		private var transition:Transition;
		private var transTimer:Number = 0;
		private var makeTransition:Boolean;

		public function ScreenHandler() {
			this.addChild(screenLayer);
			this.addChild(transitionLayer);
			splashScreen = new SplashScreen();
			screenLayer.addChild(splashScreen);
		}

		public function switchTo(screenName:String, trans:Boolean = true):void{
			newScreenName = screenName;
			makeTransition = trans;
			this.addEventListener(Event.ENTER_FRAME, switchScreens);
		}

		private function switchScreens(e:Event):void{
			if(makeTransition){
				transTimer++;
				if(transTimer == 1 && transitionLayer.numChildren < 1){
					transition = new Transition();
					transitionLayer.addChild(transition);
				}
				if(transTimer == transition.exitFrames){
					removeOldScreen();
					makeNewScreen();
					transTimer = 0;
					this.removeEventListener(Event.ENTER_FRAME, switchScreens);
				}
			} else {
				removeOldScreen();
				makeNewScreen();
				this.removeEventListener(Event.ENTER_FRAME, switchScreens);
			}
		}

		private function removeOldScreen():void{
			var oldScreen:MovieClip;
			oldScreen = screenLayer.getChildAt(0) as MovieClip;
			screenLayer.removeChild(oldScreen);
		}

		private function makeNewScreen():void{
			switch(newScreenName){
				case "SplashScreen":
					splashScreen = new SplashScreen();
					screenLayer.addChild(splashScreen);
				break;
				case "MainMenu":
					mainMenu = new MainMenu();
					screenLayer.addChild(mainMenu);
				break;
				case "LevelSelect":
					levelSelect = new LevelSelect();
					screenLayer.addChild(levelSelect);
				break;
				case "Game":
					game = new Game();
					screenLayer.addChild(game);
				break;
				case "Credits":
					credits = new Credits();
					screenLayer.addChild(credits);
				break;
				case "Victory":
					victory = new Victory();
					screenLayer.addChild(victory);
				break;
				default:
					mainMenu = new MainMenu();
					screenLayer.addChild(mainMenu);
				break;
			}
			newScreenName = "";
		}
	}
}

This is how you implement it in the Application class:

public static var screens:ScreenHandler = new ScreenHandler();

in the Applications constructor, add

this.addChild(screens);

and use this function from anywhere in your code to switch screens:

Application.screens.switchTo("SelectedScreen");

If you don’t want a screen transition:

Application.screens.switchTo("SelectedScreen", false);

Step 19: The Finished Product


Step 20: Enjoy

I believe I accomplished what I set out to do. The class is easy to use and even more versatile in adding screen transitions than the good ole’ timeline. I hope you get some use out of this class, and even improve upon it and make it even more versatile. The sky is the limit with screen transitions, and maybe (probably), you can come up with improved methods of handling screen architecture: the painless way!


Conclusion

I hope you liked this tutorial, thanks for reading!

Quick Tip: Asset Tracking in 3Ds Max

If you work with more than one computer, keeping track of textures and scene files can be a nightmare! In this quick-tip, Benoit Staumont takes us through his ingenious solution to the problem. Utilising both Max’s Asset Tracking functionality and some command-line shortcuts, today’s tutorial shows you one way of managing your files across all of your Windows PCs.


Video 1

Download

Note: click the ‘Monitor’ icon to view tutorial in full-screen HD.


Don’t miss more CG tutorials and guides, published daily – subscribe to Cgtuts+ by RSS.

Fast Recipes for Work #1: Pierogi Casserole

Everyone knows that freelancers live on caffeine and nicotine, but it’s important to put the right fuel in your body occasionally.  Based on the feedback from a previous article, I’d like to present a few fast recipes that let you create a quasi-healthy meal, with a minimum amount of prep time, cooking time, and most importantly, clean up time.  Try out the recipe, and let us know what you think.

Pierogi Casserole

  • 1 small bag frozen pierogi
  • 1 jar of your favourite spaghetti sauce
  • 1 cup shredded cheddar cheese(or mozza, or both)

_____________________

Turn oven on to 350°F

Place frozen pierogi in a casserole dish (um, remember to remove from plastic bag…)

Add pasta sauce (pour over top of pierogi  – recycle jar)

Sprinkle with shredded cheese

Bake in oven for 45 minutes to an hour

Remove from oven, scoop into bowl, serve with side salad and/or garlic bread.

Go back to coding/writing/designing – with a full belly.


Awesome Links #5: Social Media Management, Web Design Tips, More

An insightful post by Tamar Weinberg on the importance of engagement and time investment in social media.

250 Quick Web Design Tips: Part 1 and Part 2

Six Revisions’ quick web design tips series is an excellent resource for both beginners and experienced designers.

Cool PC Apps: The Top 50 PC Applications for Freelancers

A list of essential PC applications for freelancers by our sister site, Freelance Switch.

How Google Works (Infographic)

An amazing infographic that shows what goes behind a Google search.

A Guide to Irfanview: Desktop Tool For All Your Image Editing Needs

A guide to Irfanview, the popular freeware for editing images. The article talks about some superb features of this well known yet underrated tool.

Giving Dressing Up a Dressing Down

WorkAwesome has offered quite a few articles about dressing professionally. Some suggest that helps you to get promoted and gain respect in the workplace. It’s certainly good advice; dressing well is a positive statement about your attitude and preparedness. But, how big of a statement is it? Should we be taking such care to “look sharp,” or have the effects been embellished?

There’s an obvious correlation between higher-level jobs and better dress, but perhaps it’s a classic “chicken or the egg” conundrum: Which comes first? Are people promoted or hired due – in part – to their professional appearance, or do their high-level jobs enable (or require) them to dress better? Maybe the only reason that executives dress well is because they have to.

I was skeptical. I know a sweater from a suit, but I didn’t think clothing had much influence on the way you’re perceived, respected, promoted or paid. There are plenty of wildly successful people who don’t dress particularly well. For every suit-wearing Donald Trump there’s a Steve Jobs wearing a black turtleneck with bluejeans. They’re both successful in their own ways, suggesting that dress doesn’t matter much.

So, to determine if dress really matters, I dressed very poorly for one week, and then I conspicuously overdressed for a second one.

The “bad duds” consisted mostly of poorly-patterned shirts, threadbare slacks with small holes, mismatching colors, and ill-fitting garments. My absolute worst was a hideous button-down shirt – tight at the shoulders, billowy at the waist and patterned like diagonal, faded graph paper. Don’t ask me where I got it. Combined with a pair of khaki pants that would make MC Hammer jealous, I had a perfect outfit for dressing poorly at work.

The better clothing is newer, more expensive, more stylish, more formal, and a much better fit in all cases. The best outfit I could put together is an expensive suit tailored perfectly for… the friend that loaned it to me. Fortunately, we’re the same height, weight and body type. I’m not one to care much about style, but I must admit, I feel good in the suit. It has a silk-like fabric, with nearly-invisible stripes that join perfectly at each seam. I never got to see the price tag, which is probably for the best.

A more precise, more controlled experiment would be much longer; I’m sure appearance-related changes – if they truly exist – take more than a few weeks to develop. It wasn’t a perfect test by any means, but I was observing carefully for appearance-driven differences.

The Week of Geek – Week 1

Dressed carefully in my worst, I looked haggard, and people took notice. I was called a “goofball” and a “propeller-head” separately, both times in front of several other coworkers. In terms of work, It was suggested that I do not write any of the marketing copy for a website I had just built, as in “if you let the geeks do the marketing, who knows how it will turn out!?”

I suspect words like “goofball,” “propeller-head,” and “geek” have as much do with my personality as it did with my clothing, but those seemingly-harmless comments somehow led to the notion that I wasn’t able to write effectively or connect with customers. In a roundabout way, my abilities were inferred from a quick look at my appearance, and I was pigeonholed as a “code geek” who communicates better with a computer server than a fellow human. In their defense, I was intentionally dressing the part, but appearance – apparently – can have a strong, albeit indirect effect on perceived abilities.

A few close coworkers made some friendly jokes about my wardrobe. They weren’t in on the experiment; were they laughing with me or at me?

Finishing With Flair – Week 2

Week 2 felt notably different. Somehow I felt more relaxed in more formal dress. I looked good, I felt good, and I worked more productively. My coworkers did notice the sudden change in appearance, and their lighthearted teasing turned to genuine complements. Whether it was the clothing itself or the compliments, I took myself more seriously. Maybe they did too.

During week 2 I was invited to attend several executive-level meetings about up-and-coming projects. I had never been invited to these before. Coincidence?

Conclusions:

  • Good or Bad, People Notice: When my dress went from normal to bad, bad to fantastic, and fantastic back to normal, every change was noticed. It seems you can impress just as easily as you can underwhelm, and people unknowingly make inferences about your skills from your appearance.
  • Looking Good Feels Great and Works: Even if dressing better had no other effects at all, it made me feel good, It improved my attitude, and in turn increased my productivity and work quality. It’s probably the after-effects of dressing well that can elevate your status, not the clothing itself.
  • Importance Varies: My appearance, whether dapper or dismal, didn’t have a tremendous impact on my work. But, had the same “fashion statements” been made by a director or a “C level” executive, they would have been saying “I take this seriously” or “I don’t care” much more loudly than I ever could.

Two weeks is just a glimpse into the effects; given more time, looking sharp (or looking shoddy) could have a much larger impact. Dressing well won’t single-handedly improve your status at work, but according to my makeshift experiment, it does have some subtle, indirect benefits.

Mixing Twitter and Work

Twitter. It’s a great escape.

It’s overflowing with helpful resources and links. It gives you an inside look at the latest trends and enables you to connect with authors, celebrities and industry professionals you once could only admire from afar. What’s not to love?

The allure of Twitter is getting harder and harder to overlook, but many workers are still hesitant to fully participate. Social media is often viewed as a distraction in the workplace. Making your tweets public is like giving your boss a minute-by-minute record of your distraction level. Do you really want to chance using Twitter at work?

Besides the whole not-working-at-work stigma, Twitter can potentially lead to other problems as well. Although you may try hard to keep your tweets professional and clean, you never know how someone else might interpret them. What you think is smart and funny may be a total turn-off to someone else. Self-employed workers must be careful to avoid offending potential clients as well. There’s a certain level of risk to be sure. You have to find a way to be smart about it.

So how do you handle Twitter in the workplace? Do you tweet at work? Do you choose to keep your profile private? Or do you think these concerns are not really that big a deal?

6 Keys to Finding a Job in the Internet Age

Technology has changed how most of us do our jobs. It’s also changed how we find jobs. The Internet allows us to find job listings all over the world.

But it does more than give us unlimited classifieds. It offers new ways to connect to people who are looking for candidates and for candidates to screw up the opportunity.

Don’t let it happen to you. Here are some concepts you need to master when it comes to finding a job using technology and the Internet.

Resumes and Cover Letters Still Matter

Yes, these two pieces of paper are still important. Maybe they’re attachments to your e-mail. But you need to give the hiring managers something to print and read.

While you’re at it, make sure you use proper grammar and spelling. One HR professional says she cuts and pastes all the cover letters she receives into Word so the spell check can tell her who gets it wrong.

Use Social Networks

College students are ignoring Twitter but the people who want to hire them are on it. Get in front of the people who are looking for your talents. Network in their circles.

Don’t Abuse Social Networks

Take a look at your Facebook account. How many times do the words “drunk,” “wasted” and “PARRRR-TAY” appear on pages? That doesn’t cut it with most employers. Sure they did it when they were your age. But not they’re responsible adults who want to hire people who know how to pretend they’re responsible adults.

Don’t put anything in a tweet or update that you wouldn’t say in a job interview.

  • Bonus Tip: Change your Facebook privacy settings so that the only photos of you that can be tagged with your name are ones you tag. So all those beer pong photos don’t show on your wall.

Optimize Your LinkedIn Profile

LinkedIn can be a valuable tool for finding a job. Make sure your public profile looks as good as your resume.

Clean up Your Email Address

Do you know how many people in your industry want to hire someone with the email address party_girl69 at hotmail.com? Unless it’s more than 90%, you’d better create a new job search email address. Any clean variation of your name will work fine – unless you’re John Smith.

Also, employers are searching social networks for candidates’ e-mail addresses. So give them one that’s not attached to your MySpace page.

Get Creative

Of course creative is a relative term. You don’t want to be seen as avant garde when you’re looking for a job in accounting, insurance or banking. But you want to stand out in a good way and show you know how your industry works.

Consider Alex Brownstein. The copywriter identified five creative directors he admired and started using Google Adwords campaigns for their names. When the directors Googled themselves, they saw this ad at the top of the search page:

“Hey, [creative director’s name]: Goooogling [sic] yourself is a lot of fun. Hiring me is fun, too”

You’ll never guess who got his dream job.

How does the Internet help or hurt your job search?

A Photographer’s Introduction to Hard Disk Drives

For photographers, hard disks are the 21st Century equivalent of filing cabinets. The same care that photographers took over the storage and protection of their negatives and transparencies in the past needs to be applied to their present-day digital files, be they RAW, JPEG, TIFF or even AVI and MPEG. In this tutorial, I am going to look at the different options available to photographers, illustrate the benefits and debunk some of the jargon.


The Basics

All computers contain a Hard Disk Drive (HDD). It is the part of the computer that deals with storage i.e. where our computer data is stored. HDD storage is measured in bytes and the measurements are calculated thus:

1000 bytes = 1 kilobytes (KB)

1000 kilobytes = 1 megabyte (MB)

1000 megabytes = 1 gigabyte (GB)

1000 gigabytes = 1 terabyte (TB)

These values aren’t exact (there are actually 1024 megabytes in a gigabyte, and so on), but they simplify everything and are a good rule of thumb.

The most recently released computers will contain what seems like an abundance of storage ranging from the 100s of Gigabytes (GB) to the Terabytes (TB). This always seems like more than enough at the time of purchase, but as technology advances at an exponential rate – known as Moore’s Law – the data that we will be producing in the future will use up that storage more and more quickly.

Real World Example: 10 years ago, my first digital cameras used to shoot at around 1 megapixel (1MP) and produced file sizes of about 500KB. Within a year, 2MP cameras were producing average file sizes of 1MB and a current 12MP camera can produce file sizes of 6MB.

Unfortunately, in many computers, the internal HDD is hard to get at and remains locked away in a fortress of screws and brackets. As it fills up, we need to look at an extra External HDD to store our data on. But, as HDDs contain many many moving parts, if we value our data, we also need to think about duplicating that data across two or three HDDs – see our excellent Quick Tip on backing up your data.


Understanding Connectivity

One of the key factors determining the suitability of one HDD over another is the way in which it connects to your computer. Different cables do different jobs. Some computers can connect to some cables and not others. Making sure you have the best option available to you can mean halving the amount of time you spend transferring or backing-up files.

When talking about any of the connection options, though, it boils down to how quickly the interface can transfer the data between you computer and your HDD. Just like your internet connection, this is measured in megabits per second (Mbits/s)


1. USB

The Universal Serial Bus (USB) is probably the most familiar connection. There have been many versions of this connection starting with USB 1.0, the current USB 2.0 (since 2000) and the imminent USB 3.0. The difference between these versions is the speed at which it transfers data:

USB 1.0 – 12 Mbit/s

USB 2.0 – 480 Mbit/s

USB 3.0 – c. 3 Gbit/s

There are a few USB 3.0 HDDs for sale already but not many computers have a USB 3.0 port built into them just yet.


2. FireWire

More commonly found on Macs than PCs, FireWire has been through two versions:

  • Left: FW 400 – 400 Mbit/s
  • Right: FW 800 – 800 Mbit/s

Until USB 3.0 becomes a standard on computers, FireWire provides faster transfer speeds than USB; because of the architecture, FireWire can sustain its throughput for the duration of the transfer, whereas USB has to “take breaks” and therefore does not provide a constant transfer rate of 480 Mbit/s


3. Ethernet

Again, a standard connection familiar to most, this connection has been through many variations over the years. The current version on most computers has a connection speed of 1 GBit/s. There aren’t many external HDDs with an ethernet connection as it is generally regarded as a networking protocol.

For storage, this connection would be more associated with servers or Network Attached Storage (NAS) drives. The 1 GBit/s speed is a theoretical maximum, but that bandwidth would have to be shared with other data being transferred on the network (internet connection, other users etc.)


4. eSATA – 3 GBit/s

Based on the connection your computer’s internal HDD uses (SATA), e[xternal]SATA ports are harder to come by on most machines, but can be added via a PCI card on a PC / Mac Pro, or via a PCI Express card on a laptop. This can get costly, but the difference in transfer speeds speaks for itself.


Portable External HDDs

Most readers will be familiar with portable external HDDs. They are usually about the size of a notepad and available at any electrical store. But what are the options? What makes one more suitable than another?


1. Size

Portable external HDDs contain a smaller version of the HDD that is in your computer. The advantage is portability. The disadvantage is storage capacity: smaller disks (2.5″ HDDs) hold less data – a current maximum of 500GB to 750GB – rather than the 1TB to 2TB that you can expect in a desktop HDD (but, according to Moore’s Law, this will change year-on-year). You also pay a premium for the portability.


2. Power

The smaller HDDs use less power than their desktop buddies. Less power consumption means that they can be bus powered ie: powered by the bus port (USB, FireWire) that they are connected to the computer by and therefore do not require a separate power outlet.

Some great examples of portable external HDDs are:


Desktop External HDDs

If portability is not a necessity for you, then a desktop based external HDD would be more suitable. They use the same size HDDs as your computer (3.5″ SATA drives) which means they are better value for your money (compared to the portables), come in larger capacities (1TB to 2TB) and usually provide multiple connection options (sometimes USB, FireWire AND eSATA). The downside is that they do need their own extra power supply.

Some great desktop HDDs include:


Harnessing the Power of RAID

But what if 2TBs of storage is not enough for you? And what if you want to have your data duplicated automatically? Then you need to be looking at RAID hard drives.

RAID (Redundant Array of Independent Disks) is a method of combining individual HDDs together for different purposes. These are known as RAIDs 0, 1, 2, 3, 4, 5 and 6 and is the technology used in servers. Here are two useful examples of RAIDs:

  • RAID 0 – combine two HDDs to supersize your storage (eg: 2x 2TB HDDs = c. 4TBs of storage). Ideal for those with large photo libraries.
  • RAID 1 – have your data automatically written to two HDDs at the same time. This is also known as mirroring. If one HDD fails, your data is mirrored on the second.

Generally speaking, the other RAID levels are for those dealing with servers. RAID 0 and RAID 1 options are built into some desktop external HDDs and therefore do not require any formatting or RAID knowledge; they just work out of the box as either a big disk or as a mirrored disk. Some great examples of desktop RAID HDDs include:


Beyond RAID

What if you want both RAID 1 and RAID 0 without having to take a PhD? Welcome to the world of Drobo.

Data Robotics have a line of storage solutions that use a technology called Beyond RAID. Effectively, it is a mixture of a server and a NAS drive that works out of the box. It allows you to use your own 3.5″ SATA HDDs (eg: Western Digital Caviar Blue HDDs) that can be bought as components from a computer shop. It formats them to allow you to use the power of multiple disks to both increase your storage and mirror it in case of a HDD failure.

The Beyond RAID technology does mean that the actual capacity of the Drobo is less than the total storage of the HDDs you install (4x 1TB HDDs usually equates to just under 3TB of total storage – effectively you loose one drive as a mirror) but that is more than made up for by the fact that you have your data duplicated and the ability to swap a full drive for a larger capacity drive at any time. Their demo video offers a good explanation of how Drobo works.

I use a Drobo as my external HDD. What I like best is that I can add the storage that I can afford as I need it. I don’t have to buy an expensive 2TB HDD now; I can add a 500GB HDD every six months as the Drobo fills up, and, with falling prices, that last 500GB HDD will be a lot, lot cheaper next year than the 2TB is now. I can then keep adding 3.5″ HDDs up to a maximum of 16TB ie: 4x 4TB drives (when they exist).


Conclusion

I hope that this tutorial has shown you a few things that you didn’t know, or has answered some questions you might have had about storage. The world of storage solutions is huge, and everyone will have their own way of working (and their own preferred manufacturers).

These are just my thoughts on the easiest drives to use, but if you have any further questions, post them in the comments below and I will endeavour to answer them for you.

Quick Tip: Using a Simple Portable Reflector

Over the next month I plan to write about various items photographers often forget about taking on a shoot. These gadgets can often make all the difference, and make your life much easier! This week we look at the simple portable reflector and how it can save you the problem of harsh shadows on a subject.


What is a Portable Reflector?

A portable reflector is simply an item that reflects light onto a object, but is compact enough to take anywhere. They are very useful in photography because you can easily give yourself more light to experiment with on a subject. Different coloured reflectors assist with changing the mood of an image.

An example of a use would be when shooting portraits outside. You may often see hard shadows across the face (often under the chin), but with the reflector you can reflect light onto these areas and instantly improve an image.


Are They Expensive?

Reflectors are really cheap to buy – costing as little as $15 for a double sided reflector. They often fold down into a smaller shape to make them easier to carry.

You will find they often come in a circle or square shape and there are many sizes for different styles of photography. For example, large objects such as cars need a bigger reflector than a plant. I would advice only picking the size you need – don’t go bigger just because you "might" need it in a few years time.

If you have no budget and would prefer to make your own, I’d recommend reading this tutorial.


Different Colours and Styles

Gold – Creates a warm feel to the image, best when shooting animals and people.

Silver – Just reflects the natural sunlight onto a subject. They do increase the specular highlights of your subject and will give the final image a higher contrast.

White – Again it simply reflects the natural light onto the subject, it is softer than silver and less likely to blind a model!

Translucent Fabric – Diffuses light and therefore it is perfect for outdoor portraits.

Black – Slightly saps colour from the image but produces a natural tone.

Blue – They are uncommon but they create pleasant cool tones.

You could try to buy a “5 in 1 reflector” which contains all the different types for any situation you find yourself in. These don’t cost much more, and save buying a number of seperate ones.

Image: Marco Bernardini


How to Use a Portable Reflector

General Photography:

  • Get as close to the subject/person as you can without being in the shot.
  • Its often a good idea to get a friend or co-worker to help hold the reflector.
  • If you have no friends free to help, you can attach them onto a tripod.
  • Aim for an even glow across the subject without any shadows.
  • Pick the right reflector for the situation, think about the available light.

Outdoor Photography:

  • Position the subject facing away from the sun, then reflect the sunlight coming from behind.
  • When shooting people, focus on the shadows under the eyes and chin.

Indoor Photography:

  • Use with an external flash or lighting gear.
  • Bounce back light to illuminate the whole of an object.
  • Hold at a 45 degree angle when shooting people.

Image: John Flinchbaugh


A Few Other Uses!

These are other uses I have used reflectors for. These are un-common and you may not find them in any guide book!

  • When dealing with smoke machines when filming a music video, I used the large shape to fan the smoke over the band.
  • On a beach when changing a lens, I have often placed my items on top of a reflector so they don’t touch any dirt or sand.
  • When working in hot conditions all day, a couple minutes with some makeshift shade from the reflector can do you good!
  • They offer a good simple white background for portraits or objects.

How Do You Use Your Reflector?

Do you have any other related tips to share? Feel free to let us know in the comments!

30 Spectacular Examples of Photo Retouching

The Creattica inspiration gallery is another website in the Envato network that you may never have come across. The site features almost six thousand items of inspiration – it’s easy to submit your work, and the latest submissions are shown right here on the Phototuts+ sidebar! This post offers a taste of some of the exceptional photography retouching work you can find in the Creattica Photo Retouching Gallery.

Creattica Photo Retouching
Creattica Photo Retouching
Creattica Photo Retouching
Creattica Photo Retouching
Creattica Photo Retouching
Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Photo Retouching

Creattica Design Refresh

The recent Creattica re-design brought about a brand new, simplified layout, aimed at giving prominence to the amazing, inspirational work on display:

New Creattica Design
The New!

New Categories & Features

Today we showcase 3D, Advertising, Posters, as well as our old favourites: Business Cards, Logos and Websites. And with our redesign we’re adding a whole lot of new categories for Email Design, Mobile Design, Vector Graphics, Icon Design, Brochures, Book Covers, Tshirt Designs, Skate & Snowboard Art, and Desktop, iPad and iPhone Wallpapers.

Many of these relate to photography in some way, but the categories that might be most interesting for you in particular are Photography and Photo Retouching.

The new design also introduced several new features, particularly focused around finding great creatives to work with:

  1. Search, Follow and Contact Creatives
    The biggest update to the new site is the ability to search creatives who have been featured in the gallery. Creatives can specify their country, budget and profession as well as provide a website and contact details. This could give you a great avenue for finding freelance photography work in your area!

  2. Tagging and Colour Tagging
    The new site now provides the ability to tag items with a set of preset keywords and colours. This will mean more ways to browse the gallery – once we’ve got some stuff tagged that is!

  3. Extras – Badges + WordPress Plugin + Random Browse
    And there are lots of little extras we’ve added including badges to show that you’ve been featured, a WordPress plugin to add creative inspiration to your blog’s sidebar and a feature to browse the gallery a little more randomly!

We hope you enjoy the new Creattica and get a wealth of inspiration from the amazing work of talented creatives around the world. If you have any feedback about the new site, the new design, the new categories, or pretty much anything else then Fill in the Feedback Form or leave a comment!

Getting Started with Interface Design


In this article we look at five fields that you should aim to learn more about in order to rock at interface design. These fields include Experience Design, Interaction Design, Information Architecture, User-Centered Design, and Graphic User Interface (GUI) Design.

This Post is Day 1 of our Interface Design Session. Creative Sessions

Introduction

Remember when web designers created sites or applications based on what they thought looked good and worked well? That thought process, although sometimes still implemented, is a thing of the past. The field of interface design focuses closely on the user, the person who will actually be using the interface, rather than designing for the designer.

Interface design is not a new concept. People have been designing for as long as products have been made. The sectors that are relatively new are the ones that have made interface design better. Let’s take a closer look.

Experience Design

Everything you do results in an experience, so why not craft what we do more carefully to maximize those experiences? Experience design does just that.

experience design

Experience design is a relatively new and upcoming field. As with any new field we’re seeing the explosion of buzz word usage around the web, but it’s important to understand what is actually being discussed. Many user experience veterans state that many people are tagging the UX letters onto their resume or services page but still struggle to actually define it.

Experience Design is discussed on A List Apart’s blog by Bob Jacobson. He states:

Experience designers strive to create experiences that produce desired perceptions, cognition, and behavior among their clients’ “users,” “customers,” “visitors,” or “audiences.” Under the experience-design rubric, designers of many specialization successfully work with each other and with non-design professionals.

Whitney Hess, a remarkable user experience consultant, wrote a great article debunking 10 common myths associated with user experience design. If you’re new to the idea of UX design then this is a great place to understand the common misconceptions.

Learn More

Interaction Design

Interaction design, like IA, has an organization associated with it called The Interaction Design Association (IxDA). IxD is often quoted to be the field that drives users to a particular action. This quote is from their website:

“Interaction designers strive to create useful and usable products and services. Following the fundamental tenets of user-centered design, the practice of interaction design is grounded in an understanding of real users—their goals, tasks, experiences, needs, and wants. Approaching design from a user-centered perspective, while endeavoring to balance users’ needs with business goals and technological capabilities, interaction designers provide solutions to complex design challenges, and define new and evolving interactive products and services.”

IxD

As new interfaces have presented new problems to solve this field has grown. IxD has evolved to help facilitate interactions between people and the environment that they interact in. Typically IxD only deals with interactions between users and computers, commonly referred to as human-computer interaction.

Some major concepts that online interaction designers focus on include goal-driven design, “interface as magic,” usability, and learnability. Goal-driven design understands that there are constraints in an interaction and must formulate a solution. When someone visits a website they have goals they want to accomplish. IxDs understand these goals and helps ensure that they are easily accomplished.

The idea of “interface as magic” is easily explained by saying that the best interactions don’t exist, they don’t make the users think, and just work. Usability is characterized as the ease of people’s attempts to achieve a goal. Learnability is made up of familiar concepts. These include things that you typically do on your OS and on the web, be it close a window or scroll down the page.

Learn more

Information Architecture

Information Architecture

IA has been described as optimizing for the way people think. Explaining information architecture has been abuzz lately with the Explain IA competition hosted by the IA Institute. The great entries that rolled in could probably do a better job explaining the field than I could.

Information Architecture is a process that could largely go unnoticed to the untrained if it’s done well. However, if it’s lacking then the frustration it can cause is obvious. Information Architects organize information. The IA Institute defines it as: “The art and science of organizing and labeling web sites, intranets, online communities and software to support usability and findability.”

But what exactly do they do? They research the audience and business. It is important to learn as much as possible from users and stakeholders. They may do this through card sorting, usability tests, and user polling. Taking that knowledge gained they then analyze the data. In this step the IA works hand in hand with the designers and developers to help realize the goals gained from research. Finally, in simple terms, they develop labeling, navigation, and site structures. They do this through site maps, site-flow diagrams, and wireframes to help illustrate how the site will flow from a practical perspective.

Learn more

User-Center Design

User Centered design is a a process of design that considers the user every step of the way. It involves many of the other fields that I describe in this post but as a whole is a technique that spans from planning your site to writing content that focuses on the needs of your users.

user-centered design

The process could include planning your site, collecting data from users, developing prototypes, writing content, and conducting usability testing with users. Usability.gov describes the first step to involve clearly defining your organization and users’ needs, goals, and objectives. With these things documented and in mind, then a design no longer takes on the shape of what a designer perceives as what users might think, but instead what the users really need.

UCD diagram

Cennydd Bowles makes a clear distinction in his blog post The perils of persuasion when comparing User Centered Design to Persuasion Design. He gives a great example when saying that UCD aims to increase user efficiency and in turn will create more word of mouth referrals. The goal is not to drive traffic through marketing, where the results are much easier to measure. Of course this lack of analytics available often creates an environment where it is hard to sell UX.

Learn More

Graphic User Interface (GUI) Design

Someone has to take all of the research and informed design decisions and make them attractive and on target, right? The first thing many people think of when considering GUIs may be the interfaces of the future portrayed in movies such as Iron Man or Minority Report.

Iron Man 2 GUI

Graphical User Interface doesn’t just consist of graphic design, however. It cumulates all the ideas covered in other fields into a final (hopefully usable) interface. Graphical User Interface design accomplished a very important aspect of interface design, this is where the interface is created and designed for users to interact with in more ways than just typing. The GUI, being predeceased by other fields, brings together the final project for the users to see.

A classic example of GUI design is one of the operating system. The user interacts with the application which interacts with the operating system, which interacts with the hardware – and vice versa. This series of interactions is made possible by the GUI.

Learn More

Closing Thoughts

I’d like to leave you with this thought by Luke W. found on InspireUX:

Designers spend much of their time thinking through problems from the ‘outside in.’ Contrasted with the ‘inside out’ approaches that typify corporate business agendas, this methodology focuses on the perspective of customers and end users when analyzing and crafting solutions. Applying this perspective to strategic work creates more genuine relevance.”

As you go forth on your next interface design project I challenge you to think about each step you take. Ask yourself what fields you could learn more about to make your interface that much more effective.


This Post is Day 1 of our Interface Design Session. Creative Sessions