Wednesday, December 15, 2010

The pictorial representations of text: QRcodes

Quick Response codes. I think this is a passing fad, but, right now there seems to be some interest in 1D and 2D barcode like pictorial information ciphers. Hence my two pennys.

QRcode applications are one of the more popular uses of Augmented Reality systems. AR provides possibilities for really interesting use cases.

(Go! Google! Explore! :) )

QRcodes (and other 1D/2D barcode-like image formats) are useful in several ways, always as pictorial representations of textual information. 'Text to Image' encoding, if you will. The fundamental is that I can take any piece of text and encode it as a picture which can be read using a QRcode reader. Google's example implementation uses this to encode calendar events, contact info including email and phone number (a very cool use case, I must say - my visiting card can carry my QRcode), URLs and even WiFi network credentials! I have a link to this implementation later in this post.

The most common use, however, is to let a QRcode redirect you to a URL. Here, for the purposes of example and for self-recursive trumpet touting brag boast is the QR code to this blog:

What you'd typically do is switch on the QRcode reader in your mobile device, point it to this image and as soon as the three boxes (see the top, bottom and right) match the QR application's markers, it will direct your mobile browser to the URL of this blog.


Here's another:


'twas a dark and stormy blogThis one actually takes you to my fiction/non-tech-rants blog-site. I am shameless.



Okay, you can read more about QRcodes all around the place. Here's some stuff to give you a head start:


If you are looking for an open source library that does everything QR (and barcodes and more!), look no further than Google's own 'Zebra Crossing' (ZXing) project:


Google ZXing Home


If you are looking for a QR code generator, here's a simple one (based on ZXing):


createQRcode



and here's a more comprehensive, more advanced QR code generator from Google (again using ZXing):


ZXing QRcode Generator


...and of-course the token Wikipedia article:


QR Code article on WikipediaThere's two more links to consider:


1. Denso-Wave's (the creators of the QRcode format) site on QR codes: http://www.denso-wave.com/qrcode/index-e.html


2. A tutorial that I found useful (there's bad english in there, so snobs beware!): http://www.swetake.com/qr/qr1_en.html


The Denso-Wave site is recommended reading! tells ya all about versions, the amount of info that can be encoded, levels of error correction etc.


Good Stuff!



Printing:


This is the fundamental interaction that QRcodes empower. I spot a QRcode in real life and can immediately access the digital information that it serves. QR codes work like real life hyperlinks! Neat stuff!


Stands to reason that printing a QR code must be given due consideration. Of the different materials and processes, owing to their hard edges and high contrast, I think these codes lend themselves to screen printing (and digital printing) processes really well.


Typically what works best for printing is a vector image of your QRcode: InkScape and Bee Tagg help (Bee Tagg also has a very interesting alternative pictorial cipher that is based on hexagons. Its called, bee tagg - what else!).  However, both of these are limited to the "re-direct to a URL" usecase, they do not seem to support free-form embedding of text. Sigh!


However, in the bitmap world, what worked best for me was Photoshop. QRcode images are just a lot of boxes, if you resize them in Photoshop things turn out fine, except in some cases there may be slight blurring of edges. To remedy this, I just check "Resample Image" in the Image Size dialog box and select "Nearest Neighbor" as my algorithm of choice. So, you can use Photoshop to increase the size and resolution of the images that any of the generators (above) give you and print them up just fine!


I have not tested the printing of QR codes on curved surfaces. Not tested how well they can be read from various applications that is. You can still decorate your coffee mug or t-shirt with a QR code if you want to, how well these are read by a mobile device is what I am unaware of. Do let me know if you have any test results.


However, I think it is just a matter of time that there is a better image format that suits a wider array of applications, printing on straight and curved surfaces, supports greater error correction and is even more pleasing to the eye! This is why I think QRcodes and such like (as we see them now) are just a fad. There could be, for example, subtle variations of color, tone, edges etc - invisible to the casual observer's naked eye - encoded into regular images! Now that would pretty-fy things a lot! I can have my URL encoded into my logo, or my contact info encoded into my passport photograph. That is where I think all this should be headed.


But till such a time comes, enjoy looking at zebra images and thinking of all the coolth it serves. :)


---


By the way, if you are looking for a QRcode reader for your mobile, you are looking in the wrong place (...hahaha!), you should be looking at your mobile's app market place.


cheers :)


Tuesday, May 18, 2010

To learn a new programming language when you already know another, that is the problem.


I had an old approach and I have, over time and serendipity come up with a new one. This post discusses the old approach. The next one will talk about the new approach.


Introduction


By learning a new programming language, I do not mean "pure" programming stuff - semantics, grammar and syntax; rather, learning stuff that you can apply in a fairly real world scenario - this also means doing menial tasks etc.

The idea is that if you were to waterfall from "semantics and syntax" to "application", the learning process will become too boring and too long to be productive. So, we need an approach that can:

1. Fast track the learning (even if by a small bit) and keep the interest alive

2. Force you to understand the essential parts of the language

3. Result in something that has more value in the real world than just the language learnt. You should be ready to build some applications with the language, work in a professional setting and be able to rely on your new skills "on-the-job". Being competitive, mind, is a different ball game, that will come later.

It was by a neat chance that I bumped into this excellent post: 15 Exercises for Learning a new Programming Language.

[The same post is also available here.]

Although some of the comments on the post look really dubious, even the post itself seems to be the only good thing on the blog, the post is a gem. Kudos to the author!

Each time you learn a new language on your own, there is always the problem of knowing when enough is enough (it last happened to me with Ruby, a few months ago). So one would need a measure to determine that what has been learnt is enough to start swimming and that the rest can be learnt "on the job", as you go forward.

Typically all I've ever recommended is to build a medium scale project in the language you are learning. It struck me, while reading the post, that there was another approach. A more fun way, breaking the larger chunks into smaller, funner material. It also highlighted the flaws in my approach. I have since adapted the new proposed "fun" approach, added a few extra steps in it and am good to go.

To properly understand the updated approach, let me first type in my old approach and the logic behind it:

My (old) Approach


Keeping in mind the language and the platform, build a medium scale project. Search the web for possible ideas, but the project must have/do the following:

0. Install the bloody thing:

You'll not be comfortable with the development environment from the word go, but, you need to be comfortable enough doing the regular tasks: punching in code, compiling and running the programs etc. See if there is an eclipse or NetBeans plugin available. Google to see the other IDEs commonly used for the particular language. Try and stick to free/open source here.

My experience is that lack of sufficient proficiency in this area becomes a very big initial barrier to learning. So attack it with full force and ensure that you are comfortable with the environment before you start exploring (I know, it sounds paradoxical to start with!). Put your head to the task and just get it over with. Know the compiler command line and common deploy/execute options.

1. A graphical UI, with atleast one tabular display of formatted data:

Even after almost 20 years of work in this field, GUIs are still a challenge. From basic HTML/Javascript to native windows, Java AWT, Python and even ActionScript, no matter how simple they make GUI programming, there is always a nuance to catch.

Events, coordinate spaces, z-ordering and screen refresh - each a typically tricky aspect.

2. Create/retrieve data from a database:

This to me is the dumbest, foolishest part of learning a new language. It gets hard to configure at times and can be really confusing. Prime example: JAVA - don't you just hate it when as a novice you have to struggle with "drivers" and "connections" and such like?

I do not regard SQL as a language. It takes a day to learn it. Granted there may be nuances between SQL server, MySQL and Oracle (fck! spare me!) but that is all they are: fine details, that you can learn as you go.

So with SQL and your new programming language, you should be able to create a random database.

You'll have to learn to "connect" to a database driver/engine/manager/whatchamacallit, supply the SQL query to it and finally execute the query and output the results or confirmation.

Popular choices: Employee database (programmer, manager, employee), Accounts database (Chart of Accounts, Journal entries, create a balance sheet), Library database (book ID, details, locator), Shopkeeper's, Doctor's etc etc.

In case you are onto something like ActionScript or JavaScript, you'll have to rely on some of your previous programming experience for this part. If you can't figure a database out, just forget it and move forward.

3. Some form of sorting and searching:

[...and this was a weak step, but, most pseudo-programmers get by anyway - they delegate all algorithmic jibber-jabber to custom libraries, open source projects, google searches and/or SQL - they never develop an appreciation for the concepts. Even if you are one of these, do try this step, it helps.]

You need to have some idea of how to get your algorithms right. The boundary conditions, the speed, the limitations. The "Off-by-one" errors are the kind that I see coming up most often with most programmers. The loops run a cycle too long or a cycle too short, the comparison is not valid on the boundaries, adding an extra 1 results in invalid value-space etc. These errors are even more frequent

Not SQL based, but sorts and searches in the language you are learning. Even if this is just simple, you need to know the different ways you can do this.

4. Networks, HTTP, native code and remote objects:

You need to know how to talk to other environments. This is where you do it.

ActionScript should be able to get and set data from the HTML page/JavaScript method calls, JavaScript calls to the server, AIR calls to the native system, Python native code, Java and C talking to each other, remoting in .NET and so many other things lie in this domain.

Just think it this way: Pick up a feature in your project where something in the new language you are learning will talk to something else in one of the languages you already know. Simple.

If your language can handle HTTP, then try to understand how you can harness it. Try to add a feature that uses HTTP, even if it is simplistic.

5. Text formatting:

HTML based or native, have a fairly funky scenario where you display formatted text. One of the good ways would be to create a report on some of the statistics from your database and display it with proper formatting.

6. Multimedia [optional]:

It's a "nice to have". If your language can load/support images, audio and video, then throw some in. Just for the heck of it. It is important to know how you can load large files, manage streams of data and just plain render these on screen.

7. Data handling - Binary, text-string, streams :

Today, you need to handle binary data, JSON, XML/SOAP etc.  Seriously. So try to factor in some data throughput (maybe binary data write to a location of user's choice, save the UI layouts or read json/xml configuration strings or create application event logs or save user preferences etc) in your project.

8. Automated testing and build management:

This may seem like overkill, but, reality is that if you cannot test it, you cannot deliver it, period.

Explore if you have unit testing frameworks available for your language, or try to write small tests on your own. Ensure that you do some test-writing before you declare your readiness for the rest of the world.

ANT, Maven, Hudson, Make and such like also help. What is even better that their working does not change much from language to language. It becomes, after a while, extremely important to know these well.

All set? Develop. Around mid-way on such a project, you will cross the threshold of knowing enough about the language. Finishing the project will just add value to your learning.

In the next post, I'll share the newer, funner approach.

There may be more ways of doing this. There may be areas that I have missed, so do enlighten me. :)

Till the next 'un then!

Shaurya

Wednesday, April 7, 2010

Mouse-overs and hovers are out

At least they are on their way out.
Think about it, Tom Cruise, Minority Report. Given that kind of interface, how would you do a mouse over? How would you work out a hover?

You can't.

Now comeback to reality.
Think iPad, Think iPhone, Android, Storm, Touch etc. Think more about all the haptic interfaces. Think of all the tactile gestures. Hovers? Nah!

Press and hold might work for now, but really, who are we fooling here. Hovers are on their way out. On their way to not being such a preferred information dissemination medium anyway. Maybe they'd still work on the desktop, but, how many desktops are around these days? How many days before a desktop changes to something new as well?

You'll have to re-invent yourself, if you want to be ready for what comes next.

A very senior colleague (who is also a client), was discussing products and design, when his words gave me this insight. You can fart about stuff, you can resist a shift. But, either you are out of the game or in for a change.

S.

Monday, March 22, 2010

Flex 4 is here!

Sigh!
...and just like that...FLEX 4 is here!
:)

1. http://blogs.adobe.com/flex/archives/2010/03/flex_4_sdk_and_flash_builder_4.html

2. http://www.adobe.com/products/flex/

Check it out!

Go! Play!

:)

Shaurya.

Friday, November 20, 2009

The anticipated coolth of Adobe AIR 2.0

[update: this post has been in the limbo for way too long, I wanted a way to embed the flash videos from Adobe.tv here, but it looks like there is none. I am publishing this post today, in hopes that the reader may find it interesting enough to actually try the links... BTW this here might relate to the silverlight 4 thingy as well! ]

I am yet to sift through all the Adobe MAX 2009 videos.

I find it really generous of Adobe to put all of these up. Even if most of it is marketing, they still share a few gems of information. Really worthwhile for guys like me, who end up being so busy there's little hope of attending an actual MAX event unless planned at least six months ahead of time.

I chanced upon the Adobe AIR 2.0 preview video:  http://tv.adobe.com/watch/max-2009-develop/whats-coming-in-adobe-air-2-/

(I wish there was a way to embed flash videos from Adobe.tv into Wordpress...)

 



To me the most important ones are the support for USB (mass storage devices) and native apps (so you can now open a word document from within AIR). I am still a bit skep about the performance, but, I am sure this is going to improve over the new version too...

Check these videos out. Kinda nice. Kinda exciting.

 



Cheers.

 



S.

[update:

1. there's a lot more videos on AIR2 in the complete video list, but I did like this one by Kevin Lynch as well: http://tv.adobe.com/watch/max-2009-develop/kevin-lynch-demos-adobe-air-2-features/

2. I prefer the adobe media player for working out all of it. nicer neater faster AIR based video playing...]

The Silverlight 4 Beta !!!

It's not been much time since Silverlight 3 and the Silverlight 4 beta is already out!

http://silverlight.net/getstarted/silverlight-4-beta/

One of the coolest aspects for me is the printing support. Today's RIA space dearly needs good printing support for its applications. As usual, microsoft has packed enough goodies in the bag, to make a non-programming drag'n'drop coder look like a champion developer! Comprehensive set of form controls and the works...

Another very important point with this version might be the networking support. Again, this might prove to be a game changer. I am thinking cloud, stock markets and social networks right now and I am hoping this could prove to be a cool RIA platform for getting stuff done!

For now this needs Visual Studio 2010 beta 2 (or the web dev express 2010 beta 2).

Check out the announcement: http://silverlight.net/getstarted/silverlight-4-beta/ which I am sure will be a lot more instructive than the two second analysis I have for now.

It's good news that VS2008 and 2010 can live together. I am off to trying the new stuff now!

Cheers

Shaurya.

Wednesday, October 28, 2009

Adaptive Experience

About a year or so ago, I remember pestering one of the project managers with the nuances of experience design. I had shared 2 links with this guy, the first to a beautiful presentation (on SlideShare) that I promised would change how he looks at web based applications and the second to an equally cool presentation by Adaptive Path (http://www.adaptivepath.com/).

The poor chap had a tough time working it all out with me, but, in the end "something" did get done! There was output, never mind the absence of parameters to say if it was good or bad. At that time I was glad it got over. In the mean time, I kept wanting to go back to the app design situation and try to come up with a framework that could put a map to the chaos. When I checked my bookmarks, I realized, I had lost one of the two links.

What prompted this post was a presentation that Shreyasi shared around a few days ago (a biggie thankyou to her :) ):

 


The elements of User Experience

 


The interesting bit is that it looks like the link I've been missing, but, I am not so sure.

 



However, I still have the other link - the adaptive path presentation. It's got sound and all. Pretty neat! check it out:

[slideshare id=146514&doc=experience-is-the-product-1193404596921899-1]

(tangent: Big Thank you to the WordPress and SlideShare teams. Embedded slideshare presentations totally rock!)

It looks like I have both the links today, but need a new set of tools to frame the app design situation a bit better. Adaptive Experience...hehe.

 


To trim a long tale a bit, I find the work (or at the very least the ideas) that the guys at Adaptive Path come up with really impressive. Following their blog(http://www.adaptivepath.com/blog/ ) and essays(http://www.adaptivepath.com/ideas/essays/archives/ ) comes highly recommended!

 



cheers!

S.

Wednesday, October 14, 2009

Optimizing Actionscript 3 performance

Performance optimization has been a challenge I have been facing A LOT in my projects lately. The more I try to research it, the more confusing the answers get. There were a few ground rules that I had found on the actionscriptWiki (http://wiki.joa-ebert.com/index.php/Main_Page) but beyond that...nothing.

It turns out that Grant Skinner was talking about these same issues at the Flash On The Beach 2009 conference. He has the slides from his talk up on the website now, check these out here: http://gskinner.com/talks/quick/#1
Mike Chambers also wrote a nice post, where he dissects the performance issue with a case study: http://www.mikechambers.com/blog/2009/10/13/case-study-actionscript-3-performance-optimization/

Both the articles make for really interesting reading... check them out!

For more of GSkinner talks go to: http://gskinner.com/blog/archives/2004/06/conference_sess.html

Mkie Chamber's Blog: http://www.mikechambers.com/blog/

now I should be off again... more code to write, after all I need to optimize my performance as well...hehe

S.

Tuesday, October 6, 2009

Flash CS5, iPhone support, Flex SDK 4 b2, Catalyst b2, Story and Flash Player 10.1

Wow! This morning was very news worthy!

First there was the announcements regarding Flash CS5.
The big thing here was the new support for native iPhone Apps.
Apparently one can, with the Flash Professional CS5, write AS3 code that compiles as native iPhone application.
They announced it at MAX a few hours ago thru this entertaining video:





Nice!

To me there's other cool stuff in Adobe Flash Professional CS5 that is really interesting, like the xml based FLAs and the Text Layout Framework.

Mike Chambers here has a post that gets into more details of the iPhone support part.

Adobe has also released a few applications that you can try on your iPhone right away! I feel that it's a good idea to read thru the Developer FAQs and Aditya Bansod's article here. I did find the LLVM pretty interesting. There's a paper and a presentation to check out on llvm.org. For an iPhone a developer can actually use RTMP, remote shared objects and AMF APIs of the flash player. Developers will also have access to the file system and SQLite APIs of AIR 2.0. I am sure we will find out eventually that some stuff is not available, but, what the heck! There will be workarounds...hehe

The idea of a native iPhone Flash Player is still not around...I see places where they say "its on the cards...", but, there is no mention of a date. The Flash Player 10.1 is going to be available soon though! Again it was announced at Adobe MAX today. Check out Kevin Lynch introducing 10.1 in this video:





This kinda excites me more than the iPhone support. Flash Player 10.1 on Android, Net Books and even on set-top boxes for television providing seamless experience is an awesome awesome wow! More reach, more support for my products and services now. :)

Adobe's even working on Slider - a mobile optimized port of the Flex 4 codebase.

Along with all of this Adobe also announced a host of other betas available! Check out the list below:


  1. The Flex 4 SDK Beta 2 release

  2. The Flash Builder 4 Beta 2 release

  3. The Flash Catalyst Beta 2 release

  4. and then there's also the Adobe ColdFusion Builder beta 2 release

  5. and the Adobe LiveCycle Data Services 3 beta release


I also found two very interesting project on Adobe labs.

The first is called workflowlab. A tool (AIR) that allows one to create and share workflows and best practices. Project Managers, Designers and developers can collaborate and contribute to a project in a nicer way with this. The big part is that they used the Flash Builder and Flash Catalyst to create this utility!

Finally, the second one is about something that is really close to my heart too. Adobe Story is an application for collaborative script development. I tried a few scenes of a sample movie script with it. Works really well! The code hints like auto-correct/completion features are really neat! What even nicer is that it supports export to a lot of formats including MS Word, Final Draft (Word and FD  are my preferred screen-writing applications) and also to PDF, CSV, XML and plain text! (There's probably an AIR application available too, but, I have not tried that as yet). The Story beta was out on Sept 10, so I am a little late (and a little out of place) in talking about it here, but, with all the great up coming stuff, I wanted to blog all of it together.

Really cool stuff happening around. Lots to look out for.

:)

Wednesday, July 29, 2009

Wave's out. Adobe Wave that is.

I have been curious about this for a long time now. I see a lot of potential of such a service.

Adobe wave (beta) is out.

See: http://labs.adobe.com/technologies/wave/

It looks kinda like RSS, only better. You get alerts on your desktop when ever updates happen. (uh! I always feel weak when I have to explain the difference between email and SMS) RSS is email, this is SMS.

Basically sites would carry a "Get updates with Adobe Wave" badge. You, their audience would click on the badge and each time the site updates, you get a desktop notification.

Kinda neat huh! I see a lot of applications. Esp. for the on-line education applications and services sector. Another feature to add to the potential Web 2.0/Education 2.0 candy store.

Check out the demo videos: http://labs.adobe.com/technologies/wave/videos/
...and those who, like me, like to code may try: http://labs.adobe.com/technologies/wave/developers/

Nice stuff as usual! Let's see where this goes.

---

PS:

1. I think I might be totally wrong about this one. So do check out those links above and correct me here.

2. When I received the announcement mail this morning, I realized, I had not wet my hands with code in some time! I loathe being that word running, excel pushing, empty headed ager-man. I kinda lost sight of what I liked in the business in the first place. Being an ager-man is okay, but, it's not rewarding unless you have a purpose. What you really like doing gives you the purpose. To lead you need a head.

And I got mine back in place now. So, with luck, I'll make time, get back in my play pen and rumble code a bit more now.
.
.
.
:) :) :)

Tuesday, July 14, 2009

...and then came Silverlight 3 !

Yeah!

SilverLight 3 is here.

Loads and loads of new features. Infact, I am sure this is going to heat up the RIA wars with the Flash Platform.

Silverlight now combines the features of Flash 10, Flex, AIR and Pixel Bender all in one!

Also, Expression Studio already does what Flash Catalyst is supposed to do next year (or by the end of this year, when ever).

Hell I am impressed!!! Looks like with Bing, Azure and a host of new products, Microsoft's getting it right all over again! And Silverlight 3 appears to be another one of those aces.

Take a look at the complete feature listing here: http://silverlight.net/getstarted/silverlight3/default.aspx

...and I'll go start working on some samples now.

ciao!

S.

edit: Did I mention Sliverlight 3 also supports desktop applications for both Windows and Mac now? (I haven't tested this yet, but what the hell! Its exciting to hear those words...!)

Monday, June 15, 2009

redirection

I do not want to close this just yet.
Not till I know all the effects of this vs. that

Till that time though...

I have migrated to Wordpress.

visit: http://codescapeshaurya.wordpress.com/

please update your favorites.

cheers!

:):):)

Wednesday, May 6, 2009

Flash Player 10 - bad install for Firefox - Solution.

Flash Player 10 had been giving me a lot of grief when it came to working with Firefox.
I finally figured out a solution, am still unclear what the trouble was!
Wonder is my solution is correct - it seems to work for now tho.

Issue:
I was using Flash CS3 with player 9 installed. The ActiveX and .dll files worked well on IE and Firefox. Then I upgraded to Flash CS4 and Flash Player 10. Things worked well for IE, but did not work well for Firefox 3. I used the flash player uninstaller and still - nogo...

Solution:
It seems the following files:

  1. NPSWF32.dll
  2. NPSWF32_FlashUtil.exe
were present in two locations:
  1. C:\WINDOWS\system32\Macromed\Flash
  2. C:\WINDOWS\system32
and although the installer did update folder #1, it did not bother with the files in folder #2. Thus in my case folder #1 had flash player 10 files (which worked for IE) but folder #2 still had flash player 9 files (which did not work for firefox)...

So I manually copied the files from C:\WINDOWS\system32\Macromed\Flash to C:\WINDOWS\system32 (replacing those old flash player 9 files)

I restarted Firefox and things seem to be working fine now!

Still I wonder if I'll have to do this each time there is a new flash player release...

Wednesday, March 11, 2009

#tweetcoding - a notable mention YAY!!!!

post #twex I got really interesting in another experiment...

#tweetcoding was a kick ass code contest by Grant Skinner (@gskinner)

gskinner.awsum(thx);

prtcipnts hd 2 code sth. cool in ls thn 140 chrs!

140's too less you say? go check out the awesome stuff people did for 140!

@machine501 setup an online compiler to showcase all the #tweetcoding going on.

machine501.awsum(thx);

.
.
.
and now the results are out!!!

The Winners :
diagonal snake by @tomee6
Tunnel of Stripes by @piXelero (a personal favorite!)

winners.sendMsg("Congratulations!!!");

The Runners-ups :
the drummer by @vectorcinco
Ghost Marquee by @dickwolf

runnerups.sendMsg("Congratulations!!!");


and there were some entries that got a Notable mention ...and My entry was amongst them:
The time-sketch by @shauryashaurya
happy happy - Wooohooo!!!!

judges.tweetcoding.sendMsg("this is really encouraging!!!");
judges.tweetcoding.awsum(thx);

take a look at the #tweetcoding winners page.

  1. Check out all of the #tweetcoding (compiled) entries online
  2. the #tweetcoding rules
  3. link to @gskinner's blog post on #tweetcoding
  4. @gskinner says here that the next round should be in around next month: am eargely waiting!!!

S.


P.S. #twex analysis is still pending (my apologies!!! - sum dum projkts @ wrk I need to fin firs.) but results should be out next month! stay tuned :)


for those interested, the entry asked for 140 chars of code that, if embedded in some already given "me code" (from @gskinner) should do something "cool". Here is the source code of my entry (turn strict mode off in Publish setting>action script 3 setting):


// @gskinner's me code 1
g=graphics;
mt=g.moveTo;
lt=g.lineTo;
ls=g.lineStyle;
m=Math;
r=m.random;
s=m.sin;
i=0;
o={};
function f(e) {
// 140 chars of my code
if (i<1)>
j=o.x;
k=o.y;
z=j=k=200;
mt(j,k);
g.beginFill(0,.5);
}
i+=.05;
p=m.PI/2-i;
c=m.pow;
j+=i*c(s(2*p),3);
k+=i*c(s(3*p),3);
ls(k*.01,10,1);
lt(j,k);
}
// @gskinner's me code 2
addEventListener("enterFrame",f);


cheers!

S.

:):):)

Thursday, December 18, 2008

A total tweet of an experiment...

http://blog.learningmate.com/wordpress/?p=21

I started a total tweet of an experiment at work.

lotsa people show lotsa interest. Key is keeping it alive. I hope it all works out.

big thanks to Atul for making it possible.


if(makes_a_difference("it") == true)
{ I->love("it");}
else
{throw not_interested_exception(null);}



:) :) :)

Sunday, October 19, 2008

CS4 ships...finally!

It turns out that the last time I saw CS4 it was not shipping. Only buzz-buzz-ing that it is about to ship. So finally on October 15th Adobe put up prices and all... so looks like CS4 is finally shipping...

Wednesday, September 24, 2008

...CS4!!!

On September 23, Adobe released the long-awaited Creative Suite 4, this also included Flash CS4 and Photoshop CS4.

Check out the wicked new features in Flash CS4 here. Although it looks like Flash CS4 uses Flash Player 9 update 3(press release). Meaning there should be a Flash CS4 update for Flash Player 10 sometime soon.
Niiiice :)

And they have just added more bang to 3D in Photoshop CS4!!! The top new features here. Hey if you were wondering about the sexy resize... it's there in all it's glory... YAY!!!

to re-iterate...

NNIIIIIIICEEE!!!

Thursday, August 7, 2008

Interaction Design Patterns

I have been trying to start a Interaction Design/HCI blog for some time now, but time has not really been permitting... :)

So till the time I get time's permission, I'll post my interaction interests here...

This one is about Interaction Design Patterns.
Now, even though the world is divided on the pros and cons of Design Patterns, I like them a lot cause they help me communicate complex ideas simply, and that traslates to production lubrication in more ways than one.

Design patterns when we consider them in the context of IxD/HCI become "Interaction Design Patterns"
User Interface components, layouts, tasks, goals all can be classified into these, and at the end of it all, defining your strategy in terms of these patterns makes for a far more comprehensive approach, than actually drilling down to UI specifics from the start.

Here are a few resources.

More pattern goodness coming up!...

Cheers

:) :) :)

Monday, August 4, 2008

Color Schemes

Seen http://www.colr.org/

Pretty wild stuff...

create color schemes based on images that you upload, or those that appear at random.
Download .ACO files for sharing the scheme.

What I like here is the ability to select many many colors, unlike Adobe's Kuler, where you can select at most 5.

Looks like this was done in Python. One of my favorite languages.

:) :) :)

Thursday, July 31, 2008

Image searches on the web.

  1. picishare : a flickr search engine.
  2. flickr search on rollyo.
  3. CompFight.
  4. flickrleech : one that I frequently use.
  5. labs.ideeinc.com : Idée Inc is doing some pretty wild stuff in image search...
  6. PictureSandbox : search across multiple stock photo collections at the same time.
  7. Multi Colr Search Lab : Search Images from Flickr based on Color!!! from Idée Inc
  8. Visual Search Lab : Search Images based on the visual content of other images!!! from Idée Inc
  9. BYO Image Search Lab : : Search Images based on the visual content of other images!!! from Idée Inc