Large image


Category — Random

Relix – The Remix.

Well, here’s another little demo that uses the Nano After Effects piece I created a while back, but sticks a preloader on it and some animation. Why am I posting this? Well, because it is fairly cool and I didn’t have much else to do :) . The technique behind this is having one SWF to load in the other SWF. Now this technique became a rather famous preloader technique when Web Designer (or was it .net ?) posted an article/posting on it and also that Lee Brimelow mentioned in one of his tutorials that he uses this technique.

preview

So there you go, not that exciting.

Harry.

January 4, 2009   No Comments

Merry Christmas & Goodbye to 2008.

Thinking about it, 2008 has been an amazing year, and probably the best of my life so far. The highlights include being invited up to AKQA, attending Away3D basic training techniques, and then being invited to FITC Amsterdam and given the chance to get up on stage as well! To sum it up it has been one damn cool and inspirational year, and for that I have a lot of people to thank for that.

But, there’s no good staying in the past, there’s no future in it. So on we go into 2009 and with any luck it will be even better than 2008. I’ve got one major project coming up which will be revealed in a future post, and in the wider community there have been some terrific advancements in the Flash world. My favorite has to be seeing Quake run in Flash (and now Doom 1 as well) but seeing CS4 released and the progress Adobe has made is brilliant.

Throughout the year I have seen and experinced what I want to do for the rest of my life, and I feel like the luckiest person in the world.

Thanks to all my readers for supporting this blog, and I can’t wait till 2009 to see what experinces and events it holds!

Merry Christmas,
-Harry Northover

December 24, 2008   2 Comments

Northern Lights Design Studio.

No, this isn’t some amazing new studio nor is it my recently formed studio. It is a name I came up for while on the way home from London for my studio I am planning on setting up when I’m older :)

This post is all about my setup and what I’m designing on. I have been meaning to write this for a while and it gives a break to all those who need it from the usual tech demos that have plagued this blog for a while :). Don’t worry, they will still be here.

Hardware.
My 'Studio'

So there you go, that is my setup complete with Christmas decorations, and now for the specs. *digs out manual* . What do you reckon, look like all the other professional design agencies? ;-)

  Dell XPS 710: Apple MacBook :
RAM: 4GB 2GB
Processor: Intel Core 2 Quad @ 2.66GHz Intel Core 2 Duo @ 2.4 GHz
Graphics: NVIDIA GeForce 8800 GTX x2 (1GB Each) NVIDIA GeForce 9400M (256mb)
Sound: Creative Sound Blaster X-Fi Built In
Display: 26′ Dell, 17′ Dell 13.3″ MacBook Built In

Right now the hardware is out of the way here is a list of the software I’m currently running.

Dell XPS 710: Apple MacBook:
Adobe Creative Suite Master Collection CS4 Adobe Creative Suite Master Collection CS4
Sony Soundforge 9 iLife 08
Sony Acid Pro 7 TweetDeck
Maxon Cinema4D R11 Maxon Cinema4D R11
Autodesk Maya 2008 PLE Unity3D (Just a trial for the moment)
Adobe Flex Builder 3 Adobe Flex Builder 3
Processing 1.0 Processing 1.0

So there you go, the basics of my setup. If you want to know anything else please feel free to leave a comment or drop me an email.

December 23, 2008   No Comments

My new MacBook.

Hi!

It’s been quite a while since I wrote a post. This is mainly because I have been busy at school. The teachers seem to feel the need to give us an immensely hard time before christmas :) 

Anyway, as it was my birthday I managed to persuade my parents to get me the new MacBook. After playing around with it for a couple of hours I’m converted! I love the Macs. They are so much more cleaner and more satisfying to use. I still have my main workhorse as a Windows, which is a Dell XPS 710. 

There’s no need to post pictures as there are plently flooding the web already, but this means I can start experimenting with the iPhone SDK which is something I have wanted to do for a long time, seeing as I have the iPhone 3G. 

Finally, I will be trying to post some tech demos as there haven’t been any for a while :(

Harry.

December 6, 2008   No Comments

CS4 Master Collection, and my artwork on the wall!

Finally, I managed to get my copy of Adobe Master Collection CS4 through on Thursday. I have to say that I’m certainly not disappointed. I know it’s only the 30 day trial, but it will have to do. It also saves time downloading it!

CS4 Master Collection

My Illustrations in Print:

Last weekend I took a trip into town and brought myself some photoframes. I then printed of some of my artwork and put it in these frames. Here are the results. Sorry for the low quality pictures, the iPhone isn’t cut out for HD.

Print 1

Print 3

With Christmas coming up, if you want to buy a copy of any of the above, then just let me know. I need the money.

Harry.

November 26, 2008   No Comments

WordPress Upgrade

I have just updated to WordPress 2.7 Beta 3, and all is good! The new dashboard is by far one of the best improvements. Check it out!

Harry.

November 22, 2008   No Comments

Documentation, How annoying!

After having a discussion with my IT teacher about the GCSE course, my views on the course have changed severely and I wondered if anyone out there had come across this at all?

The main thing is that the whole course is about the documentation. You could write a text document as the final product, but write about it and how you created it loads and get full marks. This really annoys me as the writing (documentation) part of it is rubbish. It is so boring, telling the world via word how you managed to launch Dreamweaver and create a table for the layout, how impressiveJ. The whole thing about Flash, 3D and everything I am interested about is that fact that I can just go at like a bull in a china shop and just experiment, see what happens, expect the unexpected (most of that randomness comes from accidental errors). No be stuck behind writing about how to use Away3D.

The course, in my view, only covers one aspect of IT. So, all it is really testing you on is how to write up the documentation on a project. They don’t care what the final product looks like, acts like or things like usability levels etc. Now the boring ones (and probably the thinkers out there) will be saying, “Well, you write about it so they know you understand what you are doing”. This seems pretty stupid seeing that they don’t actually care about what you are doing in the first place.

Maybe it’s just me, but the whole thing seems a little pointless (only in some aspects). I don’t really know if professional studios document their process a lot, or not much. I am assuming they do so that maintenance is a lot easier. Imaging a complicated flex app, like the new eco:Drive app (great article in .net) . Passing this over to someone with no knowledge of how the app works or what is uses, or requires. This is where I can see documenting the process comes in handy, but the focus is on the output of the main product. With the IT GCSE, they don’t care about the finally product.

Now that’s out of my system. I feel so much better, now to top it off, anyone fancy buying me a MacBook? J He he.

Harry.

November 18, 2008   4 Comments

New Email

Just a quick note. As you know I have changed servers recently and now the email has expired on the old servers so the new email is:

me@harrynorthover.com

So, there you go! All contact infomation should of been change on the site.

Harry.

November 13, 2008   No Comments

Native 3D Cube.

In my effort to understand the workings behind 3D in flash and hopefully build my own 3D engine, I have started playing around with native 3D in Flash and I am really starting to understand the basics and how to impliment them. Things like Matrix3D, Point3D and Quaternions are making much more sense to me know after spending the night trawling through the net to find definitions and examples on them.

As this is my first demo, it’s not the most exciting or amazing peice or work, but I think it is, in terms of the code.

What this demo does is just create a cube and rotate it in the ENTER_FRAME event.

There is quite a lot of code, but here it is:

package com.harrynorthover.primitives {
 
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
 
	/**
	 * ...
	 * @author Harry Northover
	 */
	public class Cube extends MovieClip {
 
		private var points:Array = new Array();
		private var shapes:Array = new Array();
 
		// 3D Properties.
		public var distanceArray = new Array();
		// Lens distance.
		private var fl:Number = 400;
 
		//Center of the stage.
		private var vpX:Number = stage.stageWidth / 2;
		private var vpY:Number = stage.stageHeight / 2;
 
		// Render offsets, here you can move the 3D object.
		private var xOffset:Number = 0;
		private var zOffset:Number = fl;
		private var yOffset:Number = 0;
 
		// Variables used to rotate the cube in the X and Y axis.
		private var angleY:Number = 0.01;
		private var angleX:Number = 0.01;
		private var angleZ:Number = 0.01;
 
		// Math properties - uh...
		private var cosY:Number = Math.cos(angleY);
		private var sinY:Number = Math.sin(angleY);
		private var cosX:Number = Math.cos(angleX);
		private var sinX:Number = Math.sin(angleX);
		private var cosZ:Number = Math.cos(angleZ);
		private var sinZ:Number = Math.sin(angleZ);
 
		// Variables to store the distance from each point in the shape, in each axis.
		private var dx:Number = 0;
		private var dy:Number = 0;
		private var dz:Number = 0;
 
		//Variables that will hold the projection for each point cordinate.
		private var x1:Number = 0;
		private var y1:Number = 0;
		private var z1:Number = 0;
 
		// Loop variables
		private var w:uint = 0;
		private var j:uint = 0;
		private var i:uint = 0;
 
		public function Cube() {
			GenerateCube();
			this.addEventListener(Event.ENTER_FRAME, render);
		}
		private function GenerateCube():void {
			// Here we define the vertex by setting its x, y and z positions.
			points.push( { x: -50, y: -50, z: -50 } );
			points.push( { x:50, y: -50, z: -50 } );
			points.push( { x:50, y: 50, z: -50 } );
			points.push( { x:-50, y: 50, z: -50 } );
			points.push( { x:-50, y: -50, z: 50 } );
			points.push( { x:50, y: -50, z: 50 } );
			points.push( { x:50, y: 50, z: 50 } );
			points.push( { x: -50, y: 50, z: 50 } );
			//Then, if we want to draw more than a point, we need to define shapes with those points
			//Each shape (6) will have 4 vertex, the order is important when we want to use the draw api to fill it.
			shapes.push([0, 1, 2, 3]);
			shapes.push([4, 5, 6, 7]);
			shapes.push([0, 4, 7, 3]);
			shapes.push([0, 1, 5, 4]);
			shapes.push([1, 5, 6, 2]);
			shapes.push([3, 7, 6, 2]);
		}
		private function render(e:Event):void {
			//trace(stage.frameRate.toString());
			distanceArray = [];
			this.graphics.clear();
			dx = 0;
			dy = 0;
			dz = 0;
			// Loop to look inside each shape to dop some calculations on the 4 points
			for (j = 0; j < shapes.length; j++) {
				for (i = 0; i < shapes[j].length; i++) {
 
					x1 = cosY * (sinZ * ( points[shapes[j][i]].y ) + cosZ * (points[shapes[j][i]].x)) - sinY * (points[shapes[j][i]].z);
					y1 = sinX*(cosY*(points[shapes[j][i]].z)+sinY*(sinZ*(points[shapes[j][i]].y)+cosZ*(points[shapes[j][i]].x)))+cosX*(cosZ*(points[shapes[j][i]].y)-sinZ*(points[shapes[j][i]].x));
					z1 = cosX * (cosY * (points[shapes[j][i]].z) + sinY * (sinZ * (points[shapes[j][i]].y) + cosZ * (points[shapes[j][i]].x))) - sinX * (cosZ * (points[shapes[j][i]].y) - sinZ * (points[shapes[j][i]].x));
					//trace(x1);
					//trace(y1);
					//trace(z1);
					// Now store the new cordinates...
					points[shapes[j][i]].x = x1;
					points[shapes[j][i]].y = y1;
					points[shapes[j][i]].z = z1;
 
					// Now we add the point coordinate to the relative distace var.
					dx += x1;
					dy += y1;
					dz += z1;
 
					xOffset = 20;
					yOffset = 20;
					zOffset = 20;
 
					//trace(dx);
					//trace(dy);
					//trace(dz);
 
					// Next, is the way to get the X and Y points to draw in the stage, taking car about offsets and distance from the camera in the Z axis.
					// Each point will be scaled acording to the distance to the camera. I am using the _x and _y as variables to render, not calculate.
					points[shapes[j][i]]._x = vpX+(points[shapes[j][i]].x+xOffset)*(fl/(points[shapes[j][i]].z+fl+zOffset));//scale;
					points[shapes[j][i]]._y = vpY + (points[shapes[j][i]].y + yOffset) * (fl/(points[shapes[j][i]].z+fl+zOffset));// scale;
				}
				//Ok, you have checked all the points in the shape, now is time too look at the distances
				//This is important, cos the distance to the observer, will mean which shape is render on top.
				//Since we have a sum of distances in X Y and Z, we need an average
				//Next code is the same than dividing by four (cos the four points per shape)
				dx /= shapes[j].length-1;
				dy /= shapes[j].length-1;
				dz /= shapes[j].length-1;
				//We add an element to the distances, and is basically the distance from each point, to the camera. Note than fl is on the Z axis, and is where the camera is.
				//We store and object with the distance, and also a shape ID to know which shape corresponds with the distance.
				distanceArray.push({d:Math.round(Math.sqrt(Math.pow(dx-xOffset, 2)+Math.pow(dy-yOffset, 2)+Math.pow(fl-dz, 2))), index:j});
			}
			//Now, we need to sort the array, to know wich shape is near and need to be render on top. So a simple Sort function.
			distanceArray.sortOn("d");
			//Here is where the fun starts. Now is time to render each polygon
			this.graphics.lineStyle(0,0xFFFFFF,40);
			//for each element in the distance array (the same length than the shape array, we will render the shape.
			for (w = 0; w

You can download the whole thing here: http://harry-northover-code-store.googlecode.com/files/Native%20Cube.zip

Thanks,
Harry.

November 3, 2008   No Comments

Increasing blog traffic, How?

Note: This will probably be my last post for a while as I am currently away and then I am of to London for a while, later. Sorry…

Over the past few months or so I have been trying to find out ways to populate traffic to my blog. Along my travels I have found some ways that work very well and some that have no effect at all. I thought it will would helpful to you guys to post my findings.
First off you need to clarify a few things. These are:

  1. Who your intended audience is. My specific audience is Flash designers and developers.
  2. A few sites that are where you want to be. This lets you analyze what they do, how they do it, and what the outcome is.
  3. What your blog is about. This is something you should know, but if you change it suddenly then you are going to lose a lot of visitors as they are either going to think you doesn’t know what you are talking about, or that it’s not your main area of expertise. This doesn’t limit you to one particular thing; you just need to be able to link it to your blog topic.
  4. You must be prepared to blog fairly regularly. Too many blogs just lose visitors because of lack of recent content.

Now we have sorted that, there are a few technical details you need to take into account. These are loading time, content displayed and if your intended audience are likely to meet the requirements needed by the displayed content. With that all sorted, onto the main part of the article. How to get more visitors.

  1. Get as bigger list as possible of blogs that blog about the same sort of stuff you do, and then when they post new stuff, leave a comment. You don’t even have to read the article, or even like the blog, just leave a comment and a link to your site if possible. This means that anyone else who views this article will see your name and probably click through to your site. Once they are there if they like what they see, they will hopefully become a regular visitor.
  2. With smaller blogs like yours will be (to start off anyway), strike a deal with them to link to each other. This will provide beneficial to both of you. This is where what sort of topics you are writing about and what the topic of the other blog comes into play.
  3. Add your blog to as many blog directory’s as possible. A good place to start would be Technorati. Here, you also need to be sure of the topics you want to write about.
  4. Digg your articles. Add a Digg button to your site and hopefully people will click it. This will at least get you listed in their latest section for a while.
  5. Find a niche in the market. This is one of the biggest things that you need. Saying that your blog is about Flash isn’t good enough. You need to be more specific. Things like 3D in Flash, or even more specific like using a particular engine. This should be good enough for a niche. Or something like Flash Lite which was what Richard Leggett’s niche was. Find out everything there is to know about this and write about it.
  6. Contact other bloggers. This is certainly not a failsafe method as it depends who you contact. If you try to email big companies or extremely popular bloggers then you will be lucky if they even read your email. I remember about 6 months ago I contacted Fi and was lucky enough to get an email back which was great as it gave me a professional and expert opinion on my site. As them if they have any tips on how to increase traffic, or loading time or whatever. If they are popular in which the world you want to be then maybe they can help you out by introducing you to other, more senior people.

So there you go, my top 6 ways to increase traffic. Now remember this is just a set of guide lines and are not going to work for certain at all. The key is good, reliable content. Once you have this you are half way there, if not all the way.

Harry.

October 28, 2008   2 Comments