Sunday, December 21, 2008

[Final] If I Controlled the Internet - Collaborative Storytelling

If I Controlled the Internet is a web application that allows people record single words and collaboratively tell a story or more in general collaboratively playback user-generated recorded content.

Nowadays the Internet has been used as a collaboration tool in many ways - production, music writing, gaming, art, communication, blogging, etc. But the activity of telling a story or anything has remained one-to-one or one-to-many -- one person tells something and one other person(s) listen. So I've been thinking what it looks like if many people could tell a same story and what this could be used for.

A story is composed of words, just like a drawing is composed of strokes. If people can collaboratively draw an art work by each person drawing single strokes, then people could collaboratively tell a story by each person saying single words. So I came up this idea of creating a web application where anyone can choose and record individual words, thus people create a library of recordings of words collaboratively, and anyone can playback the whole story from the library of recordings.

"If I controlled the Internet" is a peom of Rives. I used it as the content for this application is because 1) I like this peom a lot and 2) This poem is about imagination, everyone may have some dream of controlling the Internet, and I want this content to encourage more people to participate recording.

The following image shows the beginning interface. In the center is the content to record - "If I Controlled the Internet". To record a single word is started by clicking the intended word and that word becomes blue, "controlled" in this case.

A prompt pops up. To start recording, click "Record". Click "Replay" to see if satisfied with this recording. When satified with this recording, click "Save" to finish recording this word. If not satisfied, click "Cancel".
When click the big play button on the top left, the whole content will be played back altogether. Each time of playback will randomly pick up one recording from all recordings of a same word. For example, if there are ten recordings of the word "controlled", each time of playback will randomly pick one from the ten recordings to playback. There are five words in total, so altogether a user will hear different recording everytime he/she playback the whole content.


To encourage and engage more participants, this application also allows people to SMS in what they would do if they controlled the Internet, and the messages along with last four digits of their phone number will show up under the line "If I Controlled the Internet", as shown in the following image. In the future, I want to make users' messages also recordable and can be playback.




Wednesday, November 19, 2008

Final Proposal

Project Title:
Twittercovery

What It Is:
A mobile application running on a GPS and Internet enabled mobile phone.

How It Works:
With this application Twittercovery launched on his cellphone while walking on the street or riding a bus, one can and only discover the tweets of people around him within a radius set by preference(eg. 100 feet). If a person has intersected with another person for 3 times, they are allowed to add friend with or "follow" each other.

Background:
Nowadays, the world is all about "be connected" and "always on". The Internet makes it possible and easy to have two people connected across the earth in the form of IM, blog, social network, SMS, voice message. This brings us a lot of convinience and usefulness. However, the physical proximity makes social connection more meaningful and motivative. Also, the randomness of discovering and meeting people adds more interestingness to our lives.

Reference:
Twitter API - http://apiwiki.twitter.com/
Flashlite GPS capability - http://wiki.kunerilite.net/index.php?title=GPS_plugin

Development Plan:
First try to get KuneriLite's GPS plugin to work in Flashlite;
Second try to get Twitter API to work in Flashlite - to show "Friends" tweets in Flashlite;
Third...probably to work on database to associate user's Twitter account with GPS coordinates;
Fourth...

Monday, November 10, 2008

Final Project - Idea #1

The original concept was from a prototype I did for Mobile Application Design class before. It was about location-aware micro-blogging. Since twitter has been so much widely used as micro-blogging tool, now I want to change it a little bit.

So my idea is location-aware Twitter. What does it mean? It is a mobile application running on a GPS and internet enabled mobile phone. With it, as one walking on the street or taking a bus, he can discover the bits of lives from the people around him, as if people are carrying their micro-blog or "tweets" with them as they travel space in the city. Because you can discover other people's tweets only when you are physically close to them, both of you have a shared context at that time, thus some people might be particular interests of you. For example, you go to a live concert, the people there are more likely have a similar music taste with you.

To be more interestingly, I want to add the randomness factor into this concept. Nowadays, the world is all about "connecting", "always on"; you can always connect to someone this or that way no matter he is currently online or offline. You can send a offline IM message, you can leave a comment on someone's blog when he is not online, you can send a SMS to your friend when he turns off his phone. But I think the nature of live is randomness, it is the unexpected things make our lives especially interesting and exciting. So in terms of this project, I want people not being able to view one's tweets if that person walks out of your range(say a block away), and you can only "follow" a person when that person has come into your range 3 times. This for sure makes the "connecting" harder and seems going to the opposite direction of online world, but this is not a replacement of current social network tools, this is just to add something unexpected to your life.

Monday, November 3, 2008

Midterm - Video Canvas

Video Canvas
http://unwiredd.com/garage/VideoCanvas/VideoCanvas.html

Video Canvas is a group doodling fun tool that allows you to doodle on the face of the person you choose. After joining in, it's as easy as choose color and size of your brush and just enjoy the fun of doodling on your friend's face in a live video. So be careful your "model" may move his position, but if you don't shout out your friend will never have idea who is doodling on him or her and what it looks like. After you've finished your artwork, you can send it to him/her through email. That might be one of the best artwork you've ever created! If you want to have more fun, just select another person from the list and create the next art piece! Don't forget to fresh the list, because more people may keep joining in!


STEPS
1. Put in a nickname for yourself
2. Hit "connect" and allow your web camera to be used
3. Click a name to doodle on
4. Choose your brush's color and size, can always change color and size
5. Feel free to doodle and enjoy your artwork
6. Satisfied with your artwork? Email to him/her!



Fun Elements
[Anonymous drawing] - When a person is enjoying drawing on other people, he has no idea he himself is being drawn on by whom
[Environment] - People are drawing in a museum-feeling environment and on a canvas on the wall
[Email] - Email adds the fun to just doodling, but also it generates something which can be actually seen by the creator and the person been drawn on


Tech

The front end is a Flex app which connects with a FMS on the server. The Flex app works both as a live video broadcaster and a receiver. Each user broadcasts himself to others in the room, meanwhile he receives a live video from another person(could be himself too). The user can easily tune in different person by clicking a person's name, and can change anytime while they are drawing. The server side stores a list of all streams coming in, and keeps adding new ones as new person comes in.



Feel free to have some friends come to join and try it out!
http://unwiredd.com/garage/VideoCanvas/VideoCanvas.html

Control the background image with AJAX and PHP

The assignment was "to create an application which allows you to control and change the content that someone else is viewing on your site". So what I wanted to do is to change some visual elements (eg. background color, background image, text size, etc...) when someone else is visiting my web page or reading my blog.

So I created a kind of admin page where I can input a command, this is the visual element I want to change(eg. "bg" is for changing background image), and also a value, which is the value to be changed to. For example, I can put in "bg" in the command field and "http://www.flash-screen.com/flashgallerybuilder/images/christmas-snow.jpg" in the value field for the background image's url.

The admin page is at here http://unwiredd.com/garage/liveweb/admin.php

And the page audience should visit is here http://unwiredd.com/garage/liveweb/mypage.html


So just go to the admin page and put in "bg" and a url of any image on the internet, the people visiting the page http://unwiredd.com/garage/liveweb/mypage.html should see the background image changes immediately.

What I'm also thinking about after the introduction of TextMarks in class is that it is also possible that the admin can send a pair of command and value in a SMS, and then people should see the changes on the page they are visiting immediately.

Thursday, October 9, 2008

Midterm idea

I want to create a flash video broadcaster which allows the user to move the camera viewport and zoom in/out using hand gestures, and also a flash video streaming client which shows the audience the corresponding view.

This could be useful when people doing presentation or show want the audience to focus on certain things, such as projection or objects in his hand, etc.

I did a lot of research and found this is not something could be done easily, because stream systems assume something like this should be the job of the person who's shooting the video rather than the presenter, and they just take whatever coming from the camera and stream it to the server. But limited by resources often times when live broadcasting there is only the fixed camera without anyone manages it.

So I think this is useful because it enables the presenter controls the streaming content freely and easily while he is still presenting.

Wednesday, October 1, 2008

AIR broadcaster

Working on my flash video broadcaster and client. What I wanted to do is to add some flexibility for people who broadcast without constraining in a web page, because usually when people broadcasting they still want to access and work with their local files. So I re-write the AS2 example of broadcaster into a AS3 one so that I can publish it to a AIR application, which sitting on top of any other windows on desktop. This is done, but I also want to add some fun element to it, like broadcaster can drop some interesting animation effect on their live video streaming so audience can see. I need to continue work on this.

Came across this flash video chat software on here http://www.avchat.net/ . Click the link says AVChat 2. It's flash and it has live video, text chatting and chat rooms and some other feature. It's a commercial software which costs $399 for unlimited users version. But they have a free demo people can try, I tried it and it looked not bad.

Wednesday, September 24, 2008

Week #3 Assignment

It was a hassle make one of those icecast clients work, part of the reason is I use a PC. I tried different ones available for PC, and finally got one work - SAM Broadcaster! The sound quality is not quite good(I'm using 128kb/s format), and there is about 3 second delay.


So my second step is to create a flash interface where people can listen to my live radio show. I can do this in flash, but I'm just too lazy to re-do sth people already have done a great work. So I used a non-wordpress version of Audio Player Wordpress plugin, thanks for the authors to make this great util and make it free. It's nice-looking, small and customizable. It's not intended to playback a live sound stream, but I tried it and it works beautifully! So my first radio player is here: http://unwiredd.com/garage/broadcaster/radioplayer2.html.

I didn't stop here, coz there is even cooler things I can do with the great flash music players out there. This time I made a multi-channel live radio client that people can tune in different live radio channel. Isn't that cool? It even has my channel logo up there! Again thanks to the author who made XSPF Web Music Player! So there it is: http://unwiredd.com/garage/broadcaster/radioplayer3.html. I also got a Meebo chat window up there, so everybody listening to my live radio can chat with me in real time.


I just love flash!

Wednesday, September 10, 2008

First time on IRC

IRC reminds me the time in late 90's when I first accessed internet. At that time public chatting rooms on the internet was so popular and it was the only place to go when people want to e-chat (Instant Messenging was a later thing, at least in the country I grew up). Nick name was a fresh thing. People were enjoying chatting with lots of people they don't even know, under a nick name they chose for themselves. One or two years later, I just started using instant messenging tool to chat online, and never went back to get in web chatting rooms (they just disppeared and I don't even know when). 

IRC is pretty much the same thing as web chatting room. The people there are strangers. They go into different rooms(channels on IRC) of interests and talk about certain topic. The only difference between IRC and web chatting room is IRC is a client software and web chatting room is on the web. I'm very surprised that there are still people chatting like this and using the tools like IRC. From my observation, the conversation on IRC is not very active. More people just log on channels and keep silent. 

The assignment is to tell a story on IRC. It's been about 10 years I didn't online chat to a group of strangers (the contacts on my instant messenger are mostly the people I know in real world). The experience was interesting. But I couldn't manage a real conversation I think. haha. 

Below is the log of my chat:

Session Start: Wed Sep 10 21:21:42 2008
Session Ident: #Beginner
03[21:21] * Now talking in #Beginner
03[21:21] * Topic is 'It is well-known among the Quakenet that 5#Beginner is one of the 4*Best* 5Help/Chat Channels available which will help you get over the hurdle of learning something new and will most likely make you some new 4friends. Enjoy ur stay'
03[21:21] * Set by Q on Tue Sep 02 14:28:15
05[21:21] -Q- [#Beginner] Speak english - Hable inglé–ź - Ingilizce konu?- Parlez anglais - in this channel or you will be kicked and possibly banned. For more rules type !rules . Have fun!
05[21:21] -|BrainLess|- 4Be Safe: 1Important! Do NOT click on URL's posted in private or in channel unless it was given by an op or trustworthy person. You can get a virus just by viewing a webpage. The 'look' won't be worth the damage done, guaranteed! 7play nice, and be safe!
[21:22] <+CrYsN> bye all :D
01[21:22] My friend got shot to death
[21:22] <+CrYsN> 3.22 am...
[21:22] <+CrYsN> :D
[21:22] <+CrYsN> time to go to bed^^
[21:22] <+DevilNith> bye
[21:22] <+DevilNith> nn
[21:22] <+DevilNith> sweet dreams
[21:22] <+CrYsN> bye nith :D
[21:22] <+DevilNith> :D
02[21:23] * +CrYsN (~chris.sch@CrYsN.users.quakenet.org) Quit (Signed off)
02[21:23] * frBobz (~Reny_juvi@125.161.60.200) Quit (Signed off)
02[21:23] * +kaluro (~kiwo@Kaluro.users.quakenet.org) Quit (Read error: Connection reset by peer)
03[21:25] * Colby (Colby@d193-82-200.home3.cgocable.net) has joined #Beginner
03[21:25] * Colby (Colby@d193-82-200.home3.cgocable.net) has left #Beginner
01[21:25] my friend got shot to death, he is so young
03[21:25] * aizuren (aizuren@122.53.171.246) has joined #Beginner
02[21:26] * aizuren (aizuren@122.53.171.246) Quit (Signed off)
03[21:26] * Colby (Colby@d193-82-200.home3.cgocable.net) has joined #Beginner
[21:26] !2700
03[21:27] * Colby (Colby@d193-82-200.home3.cgocable.net) has left #Beginner
03[21:27] * Kill|Time (~Funk@c-24-6-172-3.hsd1.ca.comcast.net) has joined #Beginner
[21:27] <@None|i> pngpng bad luck
03[21:28] * beastlynark (daf82f2b@webchat.mibbit.com) has joined #Beginner
[21:28] <+Dr-Shade> my best mate choked on a carrot the other week
01[21:28] yea, we are all very sad and can't believe it
[21:29] <+Dr-Shade> killed by a carrot
[21:29] <+Dr-Shade> thats just weird....
[21:29] <+DevilNith> Dr-Shades?
06[21:29] * +Mini-Me sees you're talking about his god again ^^
[21:29] <+DevilNith> *-s
[21:29] <+Dr-Shade> we're all sad he's dead.... but cant stop laughing at how XD
[21:29] <@None|i> my heart did stop like 5s but i am realy happy that i did start again
[21:29] hello
[21:29] :D
[21:30] <+DevilNith> :D
[21:30] :D
[21:30] <+DevilNith> Dr-Shade?
[21:30] <+Dr-Shade> yes ??
[21:30] <@None|i> got like 5s of pure horror, then i did think that i need to party and drank the whole botle of vodka and i dont remember anything more
02[21:31] * Kill|Time (~Funk@c-24-6-172-3.hsd1.ca.comcast.net) Quit (Signed off)
[21:31] <+DevilNith> can you voice beastlynark?
[21:31] :D
[21:31] <@None|i> !v beastlynark
[21:31] <@None|i> muhaha
03[21:31] * |BrainLess| sets mode: +v beastlynark
[21:31] <+beastlynark> ty
[21:31] <+DevilNith> thanks
[21:31] <+DevilNith> :D
[21:31] <@None|i> who is he?
[21:31] <+DevilNith> me
[21:31] <+DevilNith> :D
[21:31] <+DevilNith> need to join more chans
[21:32] <@None|i> ??
[21:32] <+DevilNith> what?
[21:32] <@None|i> http://kuvaton.com/bshit/328413.jpg <-- he needs bananas
[21:32] <+beastlynark> None|i its me
[21:32] <+beastlynark> :P
[21:32] <+beastlynark> lol
[21:32] <+beastlynark> lolz
[21:32] <@None|i> and who is you?
[21:32] <+beastlynark> needs bananas?
[21:32] <@None|i> DevilNith?
[21:32] <+beastlynark> im me
[21:32] <+DevilNith> gezz
[21:32] <+DevilNith> yeah
[21:32] <+DevilNith> he is me
[21:32] <+beastlynark> yep yep
[21:32] <@None|i> okey
[21:33] <+DevilNith> :D
[21:33] <+beastlynark> :D
01[21:33] I know him from my girlfriend, they go to the same school
[21:33] <+beastlynark> :/
[21:33] <+beastlynark> who?
03[21:34] * pilot (~pilot@78.166.188.45) has joined #Beginner
[21:34] <@None|i> allways remember
[21:34] <@None|i> http://kuvaton.com/bshit/creepy_house.jpg
03[21:34] * ricky_some (~ricky@acl1-811bts.gw.smartbro.net) has joined #Beginner
02[21:35] * pilot (~pilot@78.166.188.45) Quit (Signed off)
01[21:37] my girlfriend's rootmate was on the phone with the guy got shot and heard the "bang!bang!"
[21:37] <@None|i> usualy if you kill your self there is only one bang
[21:38] <@DanQnA> LOL
[21:38] <+beastlynark> hey Dan
[21:38] <+beastlynark> :DD
01[21:38] not killed himself
[21:38] <+DevilNith> here we go
[21:38] <+beastlynark> what?
[21:38] <+DevilNith> just shush
[21:38] <+beastlynark> aite
06[21:39] * +beastlynark stabs DevilNith with a butterscotch icecream
[21:39] <+DevilNith> thanks
[21:40] <@None|i> LOL
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:40] <@None|i> lol
[21:41] <@None|i> i did just heard the best one
[21:41] <+beastlynark> whoa?
[21:41] <+beastlynark> thats a lot
[21:41] <+DevilNith> orly?
[21:41] <@None|i> "Hey None i have Q for ya"
[21:41] <+DevilNith> :o
[21:41] <+DevilNith> and?
[21:41] <+beastlynark> and?
[21:41] <@None|i> "i have like 120gt empty space in my comp, can i download the whole internet in there?"
[21:41] <@None|i> :D
[21:42] <+beastlynark> :P
[21:42] <@DanQnA> XD
[21:42] <+DevilNith> greatness
[21:42] <@None|i> i was just like wtf
[21:42] <@None|i> whole internet
[21:42] <+DevilNith> who asked that?
[21:42] <+beastlynark> must be someone like you DevilNith
[21:42] <+DevilNith> Lo
[21:42] <+DevilNith> :o
[21:42] <@None|i> "yep whole internet, so i could see all the sites when i am offline, can i modd thous sites when i have them on my comp?"
[21:42] <+DevilNith> omagawd
[21:42] <+DevilNith> thats silly
[21:43] <@DanQnA> 5 million terabytes of data...
[21:43] <@DanQnA> good luck with that
[21:43] <@None|i> - No you cant download whole internet in that 120gt, not even 100 000 000gt will get you anywhere
[21:44] <@None|i> "But can i download most popular sites?"
03[21:44] * ricky_some (~ricky@acl1-811bts.gw.smartbro.net) has left #Beginner
[21:44] <@None|i> - NO YOU CANT DOWNLOAD INTERNET LIKE THAT
[21:44] <@None|i> :D:D
[21:44] <@None|i> i was sooooooo wtf and rolf
01[21:44] You can download Google's homepage
[21:45] <@None|i> pngpng you cant download whole internet, that was the point :D
[21:46] <@DanQnA> :P
[21:46] <@DanQnA> you can try ;p
[21:46] <@DanQnA> spiders ftw
03[21:47] * hanri (~hanriekos@118.98.162.206) has joined #Beginner
[21:47] <+Dr-Shade> XD
03[21:47] * hanri (~hanriekos@118.98.162.206) has left #Beginner
[21:47] <@DanQnA> !chanlev Laros voice
[21:47] <@|BrainLess|> DanQnA made Laros Voice on this channel.
[21:48] <+Laros> Thx bro
03[21:48] * Rock65 (~mouh5689@213.132.255.186) has joined #Beginner
01[21:49] it's much easier to keep online than downloading the whole internet
03[21:50] * TJ` (~sovelist@Sovelist.users.quakenet.org) has joined #Beginner
03[21:50] * |BrainLess| sets mode: +v TJ`
03[21:51] * CO_SBY (~Goe_cowok@125.164.149.242) has joined #Beginner
[21:52] <@None|i> pngpng dont ya say
01[21:52] how can i help my friend? she was on the phone with a guy, they were talking and then she heard "bang!bang!" from the other end of the line, she have a serious hard time
02[21:53] * CO_SBY (~Goe_cowok@125.164.149.242) Quit (Signed off)
03[21:53] * CO_SBY (~Goe_cowok@125.164.149.242) has joined #Beginner
[21:53] hi..
02[21:54] * CO_SBY (~Goe_cowok@125.164.149.242) Quit (Signed off)
03[21:54] * CO_SBY (~Goe_cowok@125.164.149.242) has joined #Beginner
[21:54] <@DanQnA> pngpng
[21:54] <@DanQnA> take her out for dinner
[21:55] <@None|i> pngpng get some flowers
[21:55] <@None|i> have sex whit her
[21:55] <@None|i> dunno
[21:55] <@None|i> you think up something
[21:56] <@DanQnA> that was my next suggestion
01[21:56] she felt very guilty coz she made the call to him, and he had to go out to talk coz he was in a noisy restaurant
[21:56] <@DanQnA> well, it's probably best this way anyway
[21:56] <@DanQnA> maybe he "wanted" to die
06[21:56] * @DanQnA shrugs
[21:57] <+DevilNith> :D
[21:57] <@None|i> i am getting sleapy
[21:57] <@None|i> and there is no one to sleap whit
[21:58] <@None|i> my life sucks
[21:58] <+beastlynark> :Pp
[21:58] <+beastlynark> slep then
[21:58] <+beastlynark> sleep*
[21:58] <+beastlynark> gn
01[21:59] my life sucks too
[21:59] <+DevilNith> kk im gonr too
[21:59] <+DevilNith> gone*
[21:59] <+beastlynark> byes
03[21:59] * DevilNith is now known as devilnith
01[21:59] but the good is im still alive
03[22:00] * beastlynark is now known as beastlyn[
03[22:00] * Bitch-Bot is now known as bitch-bot
03[22:00] * beastlyn[ is now known as beastlyaway
03[22:02] * bitch-bot is now known as Bitch-Bot