Thursday, April 19, 2012

advergaming

Subject: advergaming

  • note: originally emailed 04/19/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...




Just a comment (or my ramblings) on advergaming in general:

Advergaming has been kicked around a lot a few years ago when every ad agency wanted to get in on the console market.

The best example of a very successful execution was the burger king games:



The Magnum ice cream ‘advergaming’ is an interesting one.
  • The game was actually quite easy to (get into and) play.
  • The scrolling through the many ‘random’ web sites is also ‘nice’.
  • But, I think I would get tired of playing this and in fact, I would only play it once.
  • I actually tried playing again to see if I can click on any of the ‘websites’ you were running across to see if the links were live.
    • They were not.
    • This is where I think they fell a little sort of.
    • You would think they the pages you would run across would be dynamically changeable/updated.  This made the game ‘old’ really fast. 

It’s a good start…

However, [here's an] example [I'd like to bring up]:  a live page with clickable links and everything ‘real’ – is way more effective, you don’t play this, but it is based on a game and is something similar to ‘outside of the box interactions’:






From: [colleague]
Subject: advergaming

Building off of last week’s brainstorm on creating a value proposition to entice transitional players with social/casual content I thought I’d share this interesting game/ad.

http://pleasurehunt.mymagnum.com/

the simple interaction of right left arrow and space is augmented with changing background content (advertising content) that itself becomes interactive in different ways.  Magnum ice cream is turning what had been a cost (advertising) into a rev stream (others advertisers paying them - assumedly) to be content in their game.

I’ve never heard of Magnum ice cream, but I’ll look for it now. This is one area they could have improved this content: they should’ve worked their distribution channels into the content so I’d know where to look for their product.

Hope this gives you some ideas for your group’s deliverable next week.

Thanks,

Tuesday, February 14, 2012

improving browser reflow (rendering) performance

Subject: improving browser reflow (rendering) performance

  • note: originally emailed 02/14/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...



[Boss],

To answer the question on why the android tablet was performing worse than the iPad, I took out the transparent animated images during the ‘spin’ to ‘fix’ the issue.  (This is probably why iPad didn’t support animated PNGs in the first place.)

To understand why the rendering was bad and how to improve on 2D performance for the browser games we’re doing, last night I got a crash course about browser “reflow” behavior.

In a nutshell: I was wondering if there was a way to stop the browser from re-drawing the page every time one element was being change.

There is no ‘double buffering’ for the browser, but there is something close to it (DocumentFragment).  Meaning, that I would have to update/animate everything that is dynamic manually in the render/game loop.   The payoff is a (2-3x) performance improvement.

I am going to restructure the current games to take advantage of this.  [XYZ] was re-rendering the pages 3 times an update using the animated PNGs and [ZYX] rotation.





The following are resources to learn more about this:

Here is an nice example of how a browser draws stuff to the page:

Here’s some information on what the rendering path looks like on your typical browsers (in a easy to read format)

If you want to know more (warning: VERY INDEPTH) about how browsers work:

Monday, February 6, 2012

[ data data data ]

Subject: [ data data data ]

  • note: originally emailed 02/06/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...

From: XXX
the "need" for convenience
I have learned a very important lesson about that phrase when a friend of mine told me this:
"Me and computers are like a plugged in electric toaster in a bath tub full of water.  I am willing to pay extra for the added convenience of having something that just works.”


Authenticity… trustworthy… 'to be treated as humans'
There will always still be the need for anonymity, especially if you’re a parent with children trying to keep them safe from the crazies.


I'm beginning to see a resurgent desire for simple, straightforward, lasting, superior items.
Beginning?  This has always been the bane of internet browsing forever -- terse and obtrusive $#!t plastered all over the website.  How many web sites have you been to that was just too cluttered to use in the past 10 years -- flash heavy, ads spaces everywhere, pop up windows, "join/create a profile" overlays...

I don’t surf web sites anymore.  I find them on RSS feeds or when they are mentioned on podcasts.

I always use ‘adblock plus’ on my browser.


I absolutely agree that simpler, cleaner and streamlined web sites are the future -- to bad marketing will do everything they can to screw that up.  I almost shed a tear when 'mobile' sites started showing up -- a simpler, cleaner and streamlined version of their desktop counter-part.  Too bad many of them are a little 'too simple/vague'.


I don't know how many scripts I have to auto download web pages for me; snip the areas of interest I want; and collate all of the relevant data on a single page.  Too many web sites now want you to click through so many links to get the overall data, and most of them with extremely s.l.o.o.o.o.o.o.w response times.


Will we ever have so much information online that people stop asking each other for recommendations (i.e. will we ever make an information filter that is as personal and reliable as another human)?
I have learned a funny thing from another friend of mine:
If there are no ads, who will tell me what to buy next?

Now, you have to ask yourselves; are advertisers just as 'reliable' as another person?  I mean, they are done by people.  They are put up on TV, radio, print, whatever that are run by people.

Many 'humans' use them as a 'source' for [ finding out more / talking about it ]. It would seem to me that information online is just the same.  A source to springboard off of to find out more information about it if it interests you.

I always like to say:
Having too much information is better than not having enough.


I would like to close by also saying this; sometimes, information overload is perceived that way only because 'humans' are also very visual creatures.

You can look at a ton of data (i.e. 'read' it) if you like to watch paint dry.

Or you can 'watch' the data if it's been converted into a more palpable format.  Visualization (in computer graphics) is one of those exciting areas where art and design is merged in with the terse and bland 'data tables'.  One famous example of this is the visualization of flight path data.

Some good books on this topic:

I know there are more, I just don’t remember the titles to them off hand.

[But,] here’s something cool I just ran into:
http://www.blendernation.com/2012/02/08/blender-movie-winner-in-2011-science-visualization-challenge/


Thursday, February 2, 2012

Social Gaming

Subject: Social Gaming

  • note: originally emailed 02/02/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...



I haven’t done any FB apps, but I just ‘made’ a FB app following some dirt simple instructions.

You can see it here:

The ‘app’ is actually hosted outside of Facebook:
  • You can right click on (on the very right edge of the flash content and scroll bar, if you can) and see that it’s just an <iframe> (what Facebook is calling the canvas) pointing to the source of that asset.
    • You should see it open to: (or if you are having trouble getting the right click menu button to show the browser menu instead of the flash menu)

So, getting stuff to show up on Facebook is easy.  The power comes when you want to do things like inviting/playing with friends, integrate with Facebook’s credit (payment system) and other features that tie into their API’s.

For example, to look yourself up on Facebook’s API system:

And using code facebook has provide at:

You can, for example, fetch all of your friends:


<?php
require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET'
));

$me = $facebook->api('/me/friends');
/*
 * access all the information of friends
 * $me has the JSON detail of all the facebook friends of the current user
 */

foreach($me['data'] as $frns) {
    $id = $frns['id']; /* make the echo statement a little easier to read */
    $name = $frns['name']; /* make the echo statement a little easier to read */
    echo "<img src="https://graph.facebook.com/$id/picture" title="$name" />";
?>



There are much more terse ways to do this.  They are all found on Facebook’s developers docs:



The following is where I got the dirt simple instructions from:


So, to answer the original questions:
  • To Build FB games:
    • You can use whatever flash, unity or plain ol HTML assets you have.

  • To scale FB games:
    • FB punted on this and makes the developers host the content.
    • So, you will need servers for the (static) pages.
    • You will need more servers if you want to do things outside of the FB infrastructure.
      • Like what? May be like a [super awesome] mechanism that FB’s systems doesn’t provide.

That’s all I got for a few of hours of research…

Thursday, January 12, 2012

HTML5 CSS3 and stuff

Subject: HTML5 CSS3 and stuff

  • note: originally emailed 01/12/2012 and sanitized for public consumption
  • sidenote: posting here so i can lead people here whenever they ask me about this stuff...



So, during the winter break last month – I just happen to be at the large brick n mortar book store that’s still around looking for that last minute gift selection.

I wandered to the “computer” section as I always do and noticed a few new books on the shelf and proceeded to thumb through it.


The first book that got my attention was the HTML5 Cookbook

The next book: HTML5 Canvas


The following book: HTML5 Applications wasn’t that great.  But it did tell me about me two other books:
  • Building Android Apps with HTML, CSS, and JavaScript
  • Building iPhone Apps with HTML, CSS, and JavaScript: Making App Store Apps Without Objective-C or Cocoa

And those lead me to the Phone Gap project – now acquired by Adobe.  This is a path to develop native application via HTML5 + CSS3 + javascript code base.  The project is technically an open source project and can be found at Apache’s repository: at first called ‘callback’ – now called ‘Cordova’.


Finally, some other goodies I happen to run across:
  • The Book of CSS3: A Developer's Guide to the Future of Web Design
  • JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides)


Anyways, here’s a collection of must have bookmarks:


There are a lot of other HTML5 books out there:

And, with some high profile acquisitions:

This stuff is becoming more and more mainstream.





Sent: Thursday, October 13, 2011 4:19 PM

I forgot to add the following

If you are familiar with Visual Studio’s Debugger, then you are going to feel right at home with the firebug plug-in for firefox:
  • http://getfirebug.com/doc/breakpoints/demo.html
    • Break on all errors (such is unknown function or variable names), equivalent to compile time error
    • Break on attribute or DOM property change – equivalent to VS break on watch point change
    • You can even break on CSS style rule changes
    • It has watchlists
    • Setting breakpoints
    • It also has a runtime profiler (and quite nice too)
    • And even a memory profiler (just as nice)
    • Finally, a network profiler
    • which didn’t work so well when flash inside of a flash file were making raw network calls
    • but if you use standard HTML request, it spells out everything your browser is doing (except for websocket calls – hopefully, it will be supported in future releases)

The only other negative thing I ran into is that it doesn’t trip on syntax errors (because the file never gets “loaded” to the browser, so firebug doesn’t know about it) – but you can use JSlint for something like that

And I forgot to add this for supported browsers:
  • Chrome 14



Sent: Wednesday, October 12, 2011 3:27 PM

Since I’ve been diving into the world of HTML 5 CSS3 and javascript, I figure that I share some of my findings.


Note: make sure you’re running at least:
  • Sarafi 5.1
  • Firefox 7
  • IE 10 (which isn’t out yet)

Browser technology has come a long way.  Take a look at the following:
CSS3 is supposed to be “hardware accelerated” which I can only guess it means that it builds GPU instructions from the baked set of styles.

Javascript has to run on the CPU.  CSS are normally not changed after it is set.  So it gains a lot from deterministic values.


Anyways, here’s another cool demo:
  • www.idangero.us/cs/
  • The package is a product, so this one requires licenses
  • But it shows what a little bit of CSS and javascript together can make

Here’s a pile of “best-of”:

For a little crash course on HTML5:

Enjoy! -- Nick

Tuesday, June 21, 2011

http_fun_with_telnet

Subject: http_fun_with_telnet
note: originally emailed 06/21/2011 and sanitized for public consumption



This message [will help explain how] to speak HTTP via a TELNET session.

But, figured that I email this to everyone else -- just in case anyone might find something interesting in this little tid-bit.


If you have your own web server, you can test it like this:

telnet 80
i.e. telnet google.com 80

The command prompt window screen should be cleared after the command is typed in.

NOTE: the following commands (including the blank line) will not be echoed...

Just copy (both lines between the dashed markers) and paste it in your command prompt.
-- get page --
GET / HTTP/1.0

-- end commands --

This should return the index page of the web server you contacted.

Here's how to JUST get the header response from the web server:
-- get page --
HEAD / HTTP/1.0

-- end commands --

For the rest of these tests, using this simple PHP code -- we're going to understand how POSTDATA and data in-lined with GET are handled:

-- http_fun_with_telnet.php --
<?php
    if(empty($_POST))
        echo "No GET or POST variables found";
    else {
        echo "POST variables:";
        print_r($_POST);
    }
} else {
    echo "GET variables:";
    print_r($_GET);
} 
?>
-- end of file --

In your browser, go to:
http:///http_fun_with_telnet.php
http:///http_fun_with_telnet.php?item1=value1&item2=value2
Note what was printed in the browser.



Now, on the command prompt:
telnet 80
Retrieve the manually to make sure things are working:
-- get page --
GET /http_fun_with_telnet.php HTTP/1.0

-- end commands --


[Let's try] again:
telnet 80
[This time] with in-lined GET data embedded in the URL (just like the second browser link above):
-- get page --
GET /http_fun_with_telnet.php?item1=value1&item2=value2 HTTP/1.0

-- end commands --


Now for the fun [part], again:
telnet 80
[To] retrieve the page via POST – NOTE, no data is embedded in the URL fetch:
-- get page --
POST /http_fun_with_telnet.php HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

item1=value1&item2=value2
-- end commands --
The "25" is the string length of the last line.

Yes, you need to feed the POST data size to the web server before sending the data.

Content-Type and Content-Length are the 2 minimum required headers you need to send to the web server in addition to the fetch line.

It is possible to send binary data in POST and only POST.  This is how you upload photos and stuff to a web server.  But that’s for another post…


That’s all I have for simple HTTP fetching…

P.S. did you know SMTP (simple mail transfer protocol) works kinda like this too?


So, now [you can see] how easy it is to craft your own HTTP [request headers] to [talk to] your web scripts hosted on your server.

Have fun! -- Nick Shin

Sunday, October 18, 2009

Captured! By Robots


yesterday, i went to see a show. a one man -- er, one meat bag band. i see a few others, but don't normally go out of my way to watch em unless i know the members directly. like the band my brother's in [ ZeroStars ] or the ones a few of my buddies are in [ Even Bigger ] and days past [ Skagina ].

but yesterday's show was interesting. normally, music to me is like TV. i can either watch it while learning something new, leave it running on the background if it's not that important for my undivided attention or skip it while trying to find something i like. let me rephrase that. music to me is:
  • not my salvation
  • doesn't compel me to save the { flavor of the day }
  • help feed { some kind of meat bags }
  • or move me to { tears or rise against the masters}
the news in general does that quite nicely for me. (although, i do need to get some of that overseas to get the full picture...)

so, it was ironic when i watched the movie "Almost Famous" and remembered the line:
"They don't even know what it is to be a fan. Y'know? To truly love some silly little piece of music, or some band, so much that it hurts."
Sapphire - Almost Famous
it was at this moment, that it dawned on to me that some people (crazy music fans) think like this. it seemed that this also applies to sports, games, cars, whatever. i just never thought of it in terms as the center of the universe.

anyways, back to the show. i was asked if it was a life changing experience. "uh....", i started. that's was when i forgot about how music people thinks.

i mean, really, the show was vastly different from the ones i have seen before and was more interested in antics, gizmos and gadgets than the songs. but i was happy. happy when meat bag said, "doing covers is the new punk" - happy when donkey kong (or some kind of motor-vational ape) was on stage - and happy when DRMBOT-0110 was doing 256th (could have been 29 for all i know). it also seemed that GTRBOT-666 was only using one string for bass - but was not as pretty or as head-banging with long flowing blond hair and other generous sized proportions as the bassist (forgive me for not remembering your band's name...) who played before them.

while i'm more about video games than anything lately -- i really didn't care about the beatles rockband game announcement earlier this year:
Beatles to re-release catalog alongside The Beatles: Rock Band
Apr 8th 2009
but totally dig this music video - video games related music video:

via: destructoid.com 07.11.2009
Attack of the Show celebrates 1,000 shows


doh... i still want to hate that channel... or, is it time forgive...

Friday, May 1, 2009

side of bacon with pork chops, please

[ image courtesy of gizmodo.com ]
bacon blew up on the scene with the bacon suit, bacon scented or flavored this and that, bacon salt, bacon haikus, bacon weave, and bacon kevin.

so what's one way to stop the bacon craze?

make it a health hazard! and if you really want to loose your appetite for hog, check out this Rolling Stone's article:
Boss Hog
Dec 14, 2006
but, seriously. i'm sure you've all seen by now how the swine flu numbers are tiny compared to motor vehicular fatalities or homicides or even smoker, cancer, heart attacks, etc.

yet, this panic attack has gripped the nation -- when basic preventive steps are only needed, which are essentially the same thing for every other common disease/virus - wear protection, wash your hands and don't eat $#!t that isn't clean (unless you like having dysentery).
Critical Alert: The Swine Flu Pandemic – Fact or Fiction?
Apr 29th, 2009

1976: Fear of a great plague


(Motor) Fatality Analysis Reporting System Encyclopedia
damn, motorcycle fatality rate is going up... better be more careful out there...

The Disaster Center (US) Crime Rates
look under "MURDER" for mortality rates
scroll to the bottom of this link to find your state!

anyways, getting back to the meat of this post. since there isn't any news to "shock" the nation into fearing something, the powers that be were using my latest invention to figure out what to blast over the airwaves next.

[ pick-a-panic-attack ]
this magic highly scientific piece of equipment will figure out what's this season's flavor flav. the cool part of this is: it has a string you pull to pick another one.

and now, something else from my childhood that would be worthy of this robot-chicken-esk article.

[ image courtesy via boingboing.net ]

welp, the video game project i'm working on is almost done. so i will be able to get back to writing my bi-monthly blog posts. a bit of re-visiting some of my past predictions, a bit of what the h*l! are these companies thinking, a guess into what's in the future and who knows what else!