10. October 2007

Lots of Frustrations but I’ve made a breakthough…

But I’m still behind. It’s terrible feeling like you’re in a ditch, and I got myself into one, and this isn’t a pity party I’m just saying that I’ve been working hard lately but I was feeling like I was getting nowhere until about 10 this morning. I was and am behind on my first project because it was a little beyond me once I got to the php, and until I crossed that bridge, I wasn’t making progress with either project 1 or 2. Project 2 is a simple extension of my first project. We did some image upload labs in class which were a breeze, so I decided to allow users to not only comment on my pieces, but also upload their own.

It all seemed simple enough, because I already had php writing jpeg data to a browser. I was wrong. Saving the jpeg to the browser was one line of php.

imageJPEG($image , “”, 80);

The first parameter is my actual bitmap data that I passed in, the second is a file location, and if its left as null or blank, it outputs the image to the browser. The third parameter is simply a quality number, and after some tests I realized the difference between 80 and 100 negligable, and it made a difference between file sizes of 12kb VS 50kb. If I can load 4 images that look the same in the same time that it takes me to load one image that looks the same, but is theoretically better quality, then I’m all for faster load times.

I needed to save the images to a directory though, not just the browser. Simple enough, specify the location in the pathname parameter in the imageJpege() function. But this didn’t work. I tried various naming conventions but I got no result. After my professor Jason and I looked at it last week he thought it looked correct and pegged it off to file permissions. I thought that was great because I didn’t remember if I actually had set the permissions on the parent directory of the directory where images would be stored. Sure enough I hadn’t but after fixing it it still wasn’t uploading pictures (nor showing them in the browser for that matter.) So I changed the permissions on everything I could think would have a possible that might inhibit php from saving an image to RIT’s server, but still it wasn’t working. After another suggestion from Jason I tried uploading the project to a friends server, because maybe it was something with administrative permissions on RIT’s server. Once again, I had no luck. The code was currently:

imagejpeg($image, “./media/test1.jpeg”,80);

I tried using fwrite(). I tried putting everything in a true color image first. I tried other file format functions, but still I got nothing. I was stuck in a rut and couldn’t move forward because I didn’t know what to do if I couldn’t draw stuff from my database, so I kept testing until one of my friends, Colin Doody said he might be able to help. I had to wait a day to get his help, but I was sure he would be able to help. So yesterday afternoon after class, I met up with Colin and showed him my AS, my php, and the swf Test I had online. Then he asked me to show him the directory where I was trying to store the images. Sure enough, when I open the directory I see “test1.jpeg” and the getInfo in fetch revealed it had been created a minute before. Now I have no idea what happened because when I last checked on Monday, nothing was writing to that directory. The only thing I can think of is when there was a storm on Monday, a transformer blew, and a good portion of RIT lost power. I also know that the whole CIAS server went down. So maybe that had something to do with it? I don’t really know, but the code started working, as it should have in the first place. After an all-nighter I now have each image getting saved with a unique name to my specified directory, and a pathname to each image is getting uploaded to my database. Php creates xml on the fly passing in a unique id and the file path for each image in individual nodes.

I’m not a whiz with php, I’d like to be, but its still a little confusing. I’ll get a good grip on it soon enough. I can’t just copy and paste sample code or lab code without understanding everything its doing. Most everything that is, because otherwise I’ll never be able to do it on my own. So now that I finally understand everything that everything else is doing, I’ve made a commitment to myself that these projects will be finished in the next 24 hours. I know what I’m doing, I understand everything, and all of the complicated coding is over. Like I said there have been a lot of frustrations over the past week, and even just this quarter in a general, but I really feel good now. But I’m still behind. And that ends today.

03. October 2007

Interactive Marketing

The marketing and advertising industry is changing rapidly. The industry no longer seems to be based on making your product visually appealing to the target audience. Entice customers to come to you and interact with your marketing message by creating content that people choose to experience. That’s right, people choose to experience your content, and if they like it enough they might suggest that somebody else chooses to experience it as well. This is where the power lies in interactive marketing.

In order to be successful, you need to hold the viewers attention. If you think about technology, over the past ten years it has developed at lighting speed, and as a result, the methods of delivering information have sped up exponentially as well. People don’t send letters as much as they do emails. Children will instant message or text 10 friends to go out in the time it takes them to call one up. The result of this fast paced flow of information is the notion that everything should be instantaneous. Taking this information into consideration, you have to assume that people are impatient. Generally, you have about 4 seconds to grab some ones attention, and after that you better have some interesting and engaging content, otherwise they’ll be off of your site after that time. You could have the most amazing concept in the world, but if you can’t hook the user in a matter of seconds, you lose them. It’s important to analyze how to grab someone’s attention.

1. Target their senses
2. Tell them a story (an interesting one!)
3. Solicit emotion from them
4. Shock them
5. Puzzle them

In my opinion, not in any specific order, these are the strongest tactics to grab someone’s attention. You generally find sites that use one or any combination of these methods to get their point across. A couple months ago a site came out that put the user in the position of helping a person by the name of Ethan Haas. Ethan was Right was really cool at first, and had some really engaging sounds and visuals, but there were absolutely no directions or any hint of what the site was besides a series of rather complicated puzzles. So I sat at my desk for a while chipping away at the puzzles, but eventually they got too confusing and I just gave up. I didn’t know what I was solving them for except for some brief choppy videos spliced in between puzzle load times. But the videos didn’t really clear anything up so essentially I just left. Yeah it got an FWA, but once the FWA floodgates opened I fail to see if anybody stayed afloat that long except for intense puzzlers.

A rather successful site is the Scion Little Deviants site. Personally I’m not one for online games, but when you have a concept, style, and an environment as rich as Little Deviants its hard not to play around. They tell you a story, a twisted story at that, and back it up with fantastical imagery that is incredibly out of place for a car advertisement. They also adapt the concept of schadenfreude to fantasy imagery, which makes it acceptable. Schadenfreude is basically taking pleasure in others misfortunes, and if you say that you haven’t felt that way at one time or another in your life…then you’re a liar. If the site had human characters getting murdered by other humans the site would bomb. That’s too appalling. But with this instance, introducing fictional fantasy characters transforms appalling into intrigue and curiosity. It’s just a brilliant concept executed extremely well.

Even an well executed concept can fall by the wayside though if it does not deliver the information. The Ethan Was Right site for example. Some people don’t like to think. Some people don’t want to play a “G D game” as my father likes to put it. This is one pitfall of the interactive industry. Some people think what we do is pointless and is just pure garbage. They don’t care how cool it looks or how fun it might be. In their minds, it’s a waste of time. I tend to think of this as a challenge, but sometimes its better to just give the audience the information they desire. That is the very reason that not every website out there is an interactive experience. You need to look at your audience and decide whether or not they are going to want what you as a designer might think is the coolest idea in the world.

Another problem we run into is the fact that not everybody has the same computer that we are designing on. My mom’s computer has a gig of ram (which I updated after seeing that it only had 512 over the summer) and a 64mb video card. Not all systems can handle jaw dropping visuals and I think as a designer I often forget that. If somebody’s computer can’t handle what you’ve designed you need to ask yourself what you can do to help them enjoy your content, rather than what they can do to enjoy your content (like update their system.) Not everyone has the income to have the newest technology and if you don’t take that into consideration, you could be missing out on a large portion of your audience.

So where do we plan to go in the future with technology developing even faster than it has before? Well, a couple of places.

I think small desktop applications as take-aways from user experiences will be big. Everybody loves to customize and have things with their own personal touch. People also love to interact, and I think in the future people would love to take away something more than a simple printout or JPEG from their experience, despite how cool it may be. So to sum that up in three letters AIR. I think it has the potential to be huge. Another big thing these days are social networking sites.

Personally, I hate mySpace. In general I’m not a huge fan of social networking sites. I think it’s great for bands, and anyone looking to start up a company or get their name out there, but other than that I feel it’s a waste of time. I’d rather be out doing things with my friends then trying to increase the amount of people that “know” me on my tiny digital page.

I know that the general public disagrees with me, and that socially networking is around to stay for a while. If you take a look at forums from 4 years ago, socially networking has greatly elaborated on the previous simple user profile, and people love to show other people who they are. Facebook has “blossomed” with tons of different little apps that people can now implement into their page. It’s not nearly as interactive as it could be though.

Is it absolutely necessary to make social networking interactive? No. But I think in regards to the advertising industry, things will shift towards interactive social networking. I think the flash comm server (or flash media server if you prefer) will be used much more in the future, and multi-user interaction in real time will start to occur with video and other digital media. I think its going to be big because people are always interested in making money, and if socially networking is big among the masses, and getting users to interact with content that sells your product is effective, then a successful fusion of the two would generate a lot of revenue for companies. The key phrase there is successful fusion. A lot of companies just toss two ideas into a blender and hope to get something great out of it. That’s not the case. You need to analyze what works and what doesn’t in each component, so when you put them together they are harmonious. Yeah it’s just a thought, but I think it definitely is a thought with some ground to it.

27. September 2007

Project 1 Progress

Well since I can’t get this blasted SWF object plugin to work, I’m just going to have to settle for some screen shots and some links at the moment. So, here’s where everything stands at the moment. I started to tackle AS3, and its awesome. It’s nicer langauge in my opinion, since it forces you to code in a much cleaner and more ogranized method; however, due to time constraints I decided to switch the project back to AS2 when I hit some brick walls. If I continue with that metaphore, I could’ve climbed over them, but the reality of the situation is I can code in AS2 at the moment exponentially faster than I can in AS3, and as much as I’d like to, I didn’t budget the amount of time needed to complete this project in AS3. Oh well, its about half way there in AS3 and I can always migrate it in the near future when its done.

So here are the initial experiments I did to get everything working. These are the AS2 versions, I have AS3 versions well, and for the most part they are more or less the same code with little tweaks here and there. Since I’m producing an AS2 version of this project though, I’m including those links at the moment.

Random Text Test
picture-11.png

Excellent, how about having the user input text, then have flash break that up into characters and randomly place that.

User Input Test

picture-14.png

picture-13.png

Ok that’s great. Maybe there is a way to make the text a little more engaging. Perhaps change font, transparency and rotation. Always remember to dynamically embed fonts if they are dynamically created text fields that are getting rotated.

Change it up Test
picture-15.png

Whats it going to look like when the user puts it up on the frame?

Frame Test

picture-16.png

So after that I had to come up with a way to save the picture that the user creates to a database. Now in order to do that I would need to get the RGB values of each pixel on the stage, and pass that data somewhere else. PHP! PHP is an obvious answer of how to save that data to a jpeg format and then to a database.

The problem was the random background color in the background, and the typographic elements when created dynamically did not like giving me their RGB and hex values when I put them in a bitmap object. I’m still not quite sure about why Flash didn’t want to trace what the color of the text was.

After playing around a bit I think the problem had to do with depth issues and stage x and y values VS. the object X and Y values since movie clips and text fields were being dynamically created and nested. So I did a simple test with some shapes and everyone’s favorite words…snakes and hello. It was not pretty in any way, but it helped me get my code working so I was content. At first it would trace out the values of the blue and black shapes and the background, but not the black values of the text. It would trace out what was under them.

Depth Test

picture-17.png

The nice thing about AS3 is you don’t have to worry about all this depth garbage anymore, and also with current target and target, localX and localY, etc, you don’t have to worry about mixing up x and y values anymore. Eventually I discovered the correct reference for obtaining the RGB values for everything I wanted on the stage. I then had to move the code back into my text function FLAs and move onto the PHP. After playing around a bit and doing some research, I ended up with this.

PHP Test

It takes a second or so after it completes the data transfer. So give it a chance if you are trying it out.

picture-9.png

Ok great so time to put it all into an attractive working interface right? So the full implementation begins.

GUI 

picture-10.png

13. September 2007

Its Go Time

All right. After some annoyances with the upload folder I tampered a bit and I can finally upload pictures. It was referencing a folder that didn’t exist, and then after I made it I forgot to set the proper permissions to allow Word Press to access it. Anywho, that’s beside the point. It’s about time I put up my concept and inspiration for my Dynamic Persuasion project, so how about we have at it.

So these first two images are from Brendan Dawes. I saw him awhile back at FITC and he was awesome. If you haven’t seen his work I strongly suggest you check it out. So after seeing a couple more presentations from him I got his book which was basically just a small gathering of thoughts centered around design, but it was a very thought provoking book. He does a fair amount of experiments with processing in the book, two of which are below. These two images are basically little experiments of his playing around with image analysis and typography.

Brendan Dawes Typography with Processing test

This next image is another Dawes experiment where he wrote a little php script that would basically hack the bejesus out of an html page and rewrite it in his browser to create a purely aesthetic image.

Dawes HTML Remix

This next image is another processing experiment from Dawes. Basically he wrote a little code in processing that analyzed color data from a video file, and recreated the image with text. This initially sparked my idea for my Project 1 concept.

Dawes Batman

So i got this idea to to make a site where I would upload a picture, daily, weekly, you know…whatever floats your boat. Users could log on and they could either write a response to the current picture, or write a story of their own for the picture. Their story would get uploaded to a mySQL database, and then Flash would spit back out that picture, but recreated solely with the text from their story. After thinking about it for a bit, I decided that would produce too many uniform images and I wanted some more variety. So why not write some functions that would send the text though an obstacle course of transforms, filters, and other various algorithms, and them spit it back out as a typographic piece. I would be indirectly generating art through responses to my photo uploads. So it should go something like this:

A user logs in and is directed to the picture of the day. They are asked to write X amount of words about the current photo, and then upon submitting it, I would take that data and send it through a gauntlet of altering functions…thats right, gauntlet. Ill store several varieties of functions in arrays and set up a random alteration of which is chosen and it what order. That should in theory create a little bit of contrast from piece to piece in addition to the unique story or comment. After getting viewing the produced image the user can choose a frame, and then upload it to the database for others to see.

Loading

InitialLoad

Loading Thumbs

Tool Tip

Moving

I think if I write this correctly, I can definitely leave it open to flash com implementation in the future, but definitely I’ll be saving that for later if ever. AS3 or AS2, we’ll see I have to map out this code first and see if I can really tackle it in AS3. I hope to at least, but regardless, its go time.

In the spirit of The Office, dink and flicka.