Twitter Vulnerable to SMS and Caller ID Spoofing

I found (via bluesmoon) an interesting article on Twitter vulnerability.

Technorati tags: twitter, vulnerability, sms, spoofing

Which Creative Commons license would you choose for your blog?

I have been planning to publish content under Creative Commons. I am thinking to choose either ‘by’ or ‘by-nc-sa’ license, little confused because of existing content.

I have some code published earlier under BSD, MIT and different license. Is applying creative-commons going to affect that?

Thought, I would seek for some suggestions by asking everyone. Which one would you choose for your blog? And why?

Thanks in advance.

Update: Creative Commons doesn’t recommend applying it’s licenses on code. It solves my problem, I guess I can choose one of relevant licenses now.

Technorati tags: creative commons, license

Not yet optimized for Firefox

I opened sms.ac in Firefox and noticed this:

I have not seen such a nice screen to warn users about browser-compatibility. It’s always better to let user know of such things rather than saying nothing.

Creating Passionate Users - Reverse engineering passion

I watched the video-recording (101 MB .ogg file) of Kathy Sierra’s talk from LCA ‘07. It’s really good and I learnt many things, which would surely me in getting better at things (building software/products or communities).

Thanks to Gopal for sharing the link.

I noted a few things (points, quotes, words etc etc).

Some of the attributes of passionate users:

  • Evangelize
  • Learn
  • Spend Money
  • Spend time
  • Connect with others
  • Show off / take pride (tshirts, bags etc)
  • Elevate the meaning

Some quotes/sentences used in the talk:

  • Where there is passion, there is a user kicking ass.
  • It’s not about the tools you build, it’s about what your users do with the them.
  • Being better is better.
  • Being better is higher-resolution experience.
  • Make right things easy and wrong things hard.
  • Suck threshold vs Passion threshold.

Some screenshots of video can be seen at:

http://www.flickr.com/photos/abdulqabiz/tags/kathysierra/

Technorati tags: kathy sierra, passionate, users, lca07, talk, video

Google! My Maps - What is future of wikimapia?

Google maps has introduced a new feature called My Maps which allows users to customize/create maps by adding placemarks, lines and shape. It’s a useful feature, however, I have some doubts.

I am just wondering, what is future of Wikimapia now? In Google My Map, I can see some problems which are redundancy and accuracy of data. Wikimapia was a collaborative environment which means it allowed others to rate/review any changes/addition in content (map).\

Technorati tags: google my maps, wikimapia

Google Talk user-interface annoyance

Several times a day, I get irritated by following issues in Google Talk user-interface:-

  • Moving mouse over contact list brings up the contact-info popup. Which is quite irritating and leads to another annoyance mentioned in next point.
  • While accessing the scrollbar, very often, I have to go through contact-list area and that brings up the contact-info popup, which stops me accessing scrollbar. I have to click somewhere else or move mouse out to get rid of popup. I believe, there should be good amount of gap between contact list and scrollbar.

Google Talk UI

Yahoo! messenger doesn’t have these issues. I get to see contact-info only when mouse is over buddy-icon, which is on left-side. One fix, it solved two issues.

Yahoo! Messanger UI

Constructing YouTube FLV URL on client-side without any server-side script

It seems, there is a easier way of constructing YouTube! FLV URL on client-side without using any server-side script.

We need get the YouTube video_id from any of following places:-

Then, construct a URL like this: http://www.youtube.com/v/V3BsjxDZJM0

Above URL is used in YouTube embed-code. It is basically a server-side redirection that points to YouTube Player (.swf). Above redirects (server-side) to following URL:-
http://www.youtube.com/p.swf?video_id=V3BsjxDZJM0&eurl=&iurl=http%3A//sjc-
static12.sjc.youtube.com/vi/V3BsjxDZJM0/2.jpg&t=OEgsToPDskKzlTMEFZ1jOh40Xc3qOxzQ

As you can see in above URL, it contains “t” param (in red), which is what we need along with video_id to construct YouTube video (FLV) URL, YouTube FLV URL would look like this:-
http://www.youtube.com/get_video.php?video_id=V3BsjxDZJM0&
t=OEgsToPDskKzlTMEFZ1jOh40Xc3qOxzQ

You can check out code below to figure out things your own. You can also check out the example-app.

Flex 2.0/ActionScript 3.0 example:-

import flash.net.; import flash.events.; import flash.display.*; private var loader:Loader; private var abortId:uint; private function onAppCreationComplete ():void { loader = new Loader (); } private function startLoading ():void { var req:URLRequest = new URLRequest (“http://www.youtube.com/v/3IcwG0jUFxU”); loader.contentLoaderInfo.addEventListener(Event.INIT, handlerLoaderInit); loader.load(req); logMessage (“Loading YouTube URL..”); } private function handlerLoaderInit (event:Event):void { logMessage (“Loaded, processing: “ + loader.contentLoaderInfo.url); var urlVars:URLVariables = new URLVariables (); urlVars.decode (loader.contentLoaderInfo.url.split(“?”)[1]); logMessage (“Processed:-“); logMessage (“\t\t video_id:” + urlVars.video_id); logMessage (“\t\t t param:” + urlVars.t); logMessage (“\t\t thumbnail-url:” + urlVars.iurl); var flvURL:String = constructFLVURL (urlVars.video_id, urlVars.t); logMessage (“YouTube FLV URL: “ + flvURL); playVideo (flvURL); logMessage (“Started Playing Video…”); loader.unload(); } private function constructFLVURL (video_id:String, t:String):String { var str:String = “http://www.youtube.com/get_video.php?”; str += “video_id=” + video_id; str += “&t=” + t; return str; } private function playVideo (url:String):void { player.source = url; player.play(); } private function logMessage (message:String):void { outputText.text += message + “\n”; trace (message); }

ActionScript 2.0 code-snippet:-

createEmptyMovieClip (“mc”, getNextHighestDepth ()); var _mcl:MovieClipLoader = new MovieClipLoader (); _mclListener = new Object (); _mclListener.onLoadStart = function (target:MovieClip) { trace (“The URL is: “ + target._url); var _lv:LoadVars = new LoadVars (); _lv.decode (target._url.split (“?”)[1]); trace (“t param: “ + _lv.t); trace (“video_id: “ + _lv.video_id); trace (“thumbnail: “ + _lv.iurl); trace (“flv url: “ + constructFLVURL (_lv.video_id, _lv.t)); _mcl.unloadClip (target); }; function constructFLVURL (videoId:String, t:String):String { var str:String = “http://www.youtube.com/get_video.php?”; str += “video_id=” + videoId; str += “&t=” + t; return str; } _mcl.addListener (_mclListener); _mcl.loadClip (“http://www.youtube.com/v/3IcwG0jUFxU”, mc);

[1] Flash clients would require server-side proxy because YouTube changed crossdomain.xml sometimes back.

Technorati tags: youtube, video url, url, flv, client-side, actionscript

Gmail Paper

Google has introduced Gmail Paper, they would be shipping you the print-outs of your emails.

Go check it out

BTW! It’s April 1st today, does it remind you of something?

Technorati tags: april-fool, april fool, gmail paper

Bandwidth Limit Exceeded

My blog was down for some hours because bandwidth limit (3 GB) exceeded. I need to spend sometime to figure out why 3-4 GB of bandwidth being consumed? I don’t blog often, most of the posts are in text and only a few example files are there.

Is it spammers hitting or some kind of DDOS attack?

AWStats and Google Analytics didn’t help me much. I generally look at raw-logs in using VIM or one of my local-flex-app. Idea: Wouldn’t it be good idea to have an Apollo app that can show server logs in realtime?

I would appreciate if you have any suggestions on how to figure out the details?

Media RSS - a better way to publish syndication content (audio, video, images)

I have been working on syndication stuff for last some months. I learnt about different standards (feed formats, microformats etc). One of those is Yahoo! Media RSS, which is module (or extension) of RSS 2.0.
Definition (from MRSS FAQ):-
“Media RSS” is a new RSS module that supplements the enclosure capabilities of RSS 2.0 (FAQ).Enclosures in RSS are already being used to syndicate audio files (Podcasting) and images. Media RSS extends enclosures to handle other media types, such as short films or TV, in addition to providing additional metadata with the media. Media RSS enables content publishers and bloggers to broadly distribute descriptions of and links to multimedia content.
YouTube!, Flickr, Google Video, Yahoo! Video, Grouper etc are exposing their content as Media RSS feeds.
There are advantages of using Media RSS:-

  • Allows to embed more metadata for content
  • Allows to group different media-type representing same content with flexibility to mark the default content.
  • Allows to expose content through custom-player (html page, flash-app etc), if content-providers don’t want to give away the url for media-files.
  • Search engines (Yahoo!, Google! etc) and feed-aggregators understand media-rss.
  • and more...

I like the flexibility which allows me to expose feeds in different options/ways while following the standard. I recommend, if you are working on some projects where you have content (audio, video, image etc), you to look at Media RSS.
Links:-

I have requested for media-rss feed for video.onflex.org and revision3.com.
I have also extended (locally) Adobe AS3 Syndication lib to support Media RSS module for one of my projects. I need to submit the code after testing. I hope, I get sometime to do that.