Posts

Showing posts from 2010

The best mobile development platform for hobbyist programmer - IV

The best mobile development platform for hobbyist programmer - I The best mobile development platform for hobbyist programmer - II The best mobile development platform for hobbyist programmer - III Over the last few years the whole mobile landscape has completely changed. Now the contenders have also changed. When I last wrote about the topic there was no SDK for the iPhone and Android had not launched. Since then the whole landscape has changed. iPhone is the king amongst the platforms. Android is a close second. J2ME is a platform which still goes unnoticed since its just not part of most new smartphones. The process to develop Windows Mobile apps has gone a complete transformation with a completely brand new way of developing apps. Symbian is in its last leg, Nokia will be moving to MeeGo soon enough. Palm development also changed completely with the launch of Web OS. If you plan to develop today here is how you can go about it. 1) iOS Development - SDK for iDevices 2) Android 3) P

Iomega ScreenPlay Director HD review/hacks

I bought the iomega ScreenPlay Director HD a few weeks back. Hardware wise the product is perfect. The only place where it really lets you down is the software. Calling the UI on this system ugly would be an understatement of the century. To top it all none of the advertised features like Youtube and Shoutcast work. If you want to copy a file over the network get ready to sleep. The speed is no more than 10MBps and again that is on the higher side, it more like 4-5 MBps. If you want to copy all your stuff you will have to copy it using USB. The Ethernet cable will not really help you. I had initially thought that I would use it like a NAS but that seems almost impossible with such a slow speed. I figured since this system runs of Linux I would be able to somehow telnet into the system. This system is completely locked down. I've been searching quite a bit to figure out ways to atleast telnet but so far all the efforts have not yielded any results. I still don't get it, if iomeg

Getting song information from a shoutcast server

This is a very simple way to get the currently playing song information from the server. Append /7.html to the music stream. This will give out a HTML file with the following details. There is CSV information inside the body. Based on the position you can find the following information. 1. Current Listeners: 2. Status: 3. Peak Listeners: 4. Max Listeners: 5. Reported Listeners: 6. Bitrate: 7. Song Title: To see whats currently playing on Radio TeenTaal you can try http://91.121.155.39/7.html .

The all new Facebook XSS scammers

Am surprised that I have not heard about it on any of the tech blogs. Every other day I get a mail from facebook from one of my friends to see this amazing picture or solve a riddle. Since the mail is coming directly from your friends its difficult to ignore it as spam. It is the perfect example of social engineering to get information from users and spread it further. The scam starts with an email from your friend with the link to a facebook page ( Do not open it before you've read the whole post and understand the consequences ). When you open the page you see the wizard with the following steps. Step #1: Press and HOLD CTRL AND press the letter C The step is nice and animated so that you know what you are doing. When you have clicked it takes you to step 2. Which shows that you have "Successfully Copied Code To Your Clipboard!". It does not tell you what code but just that some code has been copied. Step #2: Press and HOLD ALT AND press the letter D Even in this step

Force shoutcast server to send audio stream

This is something I had read about some 7 years back but had completely forgotten about it. Basically I was trying to get the audio stream from the shoutcast server in the browser. If you open the shoutcast url in the browser you will get a html page and not the audio stream. To force the audio stream use http://example.com:8032/;stream.mp3 the ;stream.mp3 in the end forces the server to send the audio stream. You don't even have to write ;stream.mp3 you just need to add a ; (semicolon) in the end. Hopefully next time around I am looking for it. I can read it here. I was looking for this info an year back but wasted quite a bit of time but could not figure it out.

Deleting a file with a . (period) in the end

This one had me baffled for a complete day. I was downloading this file and the filename was myfile.mp4. . Since the file was not completely downloaded I tried deleting it but I got the error. Cannot delete file: Cannot read from the source file or disk. I tried renaming it and I got an even weirder error. The system cannot find the specified file I figured it would be easier to remove it from the command line so I tried del "myfile.mp4." but to my surprise even that did not work out. After almost giving up I tried Google and it came up with these solutions on support.microsoft.com . Even that did not help out. After spending a few more minutes searching online I realized that the problem was in the way windows treats filenames. Since each file has two names one the 8.3 format and the other name which we normally use. To see a list of files in 8.3 use the command on the command line. dir/x Try this in the directory and see the 8.3 name for that file. Now try and delete it

COMET for Chirp User Streams - II

After almost giving up I finally figured out a way to use the Chirp User Streams . Not the best way to use it but I guess it just might work. Create a XHR request and abort it ever other minute. It will complete the request and make a new request. Try and keep the connection alive. This is something that facebook does in its chat. Thought there the connection is aborted by the server. In this case make sure that you abort and make the connection the very next second. It should be possible to use the same connection to reconnect to the server. But I have not tested it extensively to see how it will work in a real world situation. For now it works and hopefully when I again get to work on it I will write something more about how I use the ChirpUserStreams.

COMET for Chirp User Streams

Image
First there was AJAX and to give it company there was COMET . Incidentally both names of popular disinfectants in North America. In JavaScript AJAX allows the client to PULL information from the server and COMET is the technology where the server PUSHES down information to the client. I got interested in COMET after going through Chirp User Streams . Thinking it would be a trivial task to call a XHR and keep listening to it. In my mind I kept thinking that it would be stuck on readyState 3 and it will never get to 4. Since it would be stuck at 3 I could use a timer and after every few seconds keep checking for the change in length of xhr.responseText.length . Technically it should work like that.. BUT.. the way IE has implemented XHR it is not possible to check the responseText till it reaches 4. Which means that the request has timed out or ended. That somehow makes no sense at all. I figured out it was time to investigate and see how Facebook and GTalk were able to work on IE if i

Moving from Basic Auth -> OAuth -> xAuth

Twitter will remove the option to use Basic Auth from June onwards and the only option left is OAuth. But the problem with OAuth is that its a UX nightmare to implement in a Desktop application. After trying to figure out how to use OAuth all day long I finally figured out that I was looking for xAuth all along. Cutting a long story short I found a blogpost which helped me get a hang of it. Using xAuth, an alternate OAuth from Twitter . Also found a little bit of help on the twitter wiki on using xAuth . Its quite simple to use once you get a hang of it. But since it mentions headers in most of the places I assumed HTTP headers but you need to provide all the parameters when you POST it to twitter. I have sent out a mail to enable xAuth on my account lets see how long that takes and I can finally start using xAuth instead of the cumbersome OAuth to log into twitter.

Adobe Stratus - P2P networking using your webbrowser

With the launch of Flash 10 there is a P2P technology Stratus built right into flash. When it was launched I was not really interested in it as it takes time to deploy the latest flash runtime. But in less than an year Flash 10 has been deployed on more than 90% of the systems worldwide (According to these stats on adobe.com ). I personally don't like flash but flash is not just about animations and videos. Its a lot more than that. And these things are what will keep flash alive even after the onslaught of "HTML5". The problem is HTML5 is made out to be this magical solution that will rid the world of Flash. Unfortunately with people like Steve Jobs promoting HTML5 as the solution to all Flash problems most people blindly start to believe it. The reason Flash really works is that the deployment is so large and most people have it installed even if they don't know about it. iPhone got away without using flash as they had partnered with Google when they first launched

Dynamic GUI and console windows application

Running the same executable as a GUI as well as console application. This is one problem I had come across a few years back. But I soon realized that its decided while linking if an executable will be GUI or console application. But given the amount of time its been I thought of searching online and I came across this article " How do I write a program that can be run either as a console or a GUI application? ". It kinda had a solution but in the end its still better to have two separate executables. One for GUI apps and the other for console apps. After all these years Java also has two executables. java.exe for console apps and javaw.exe for GUI apps. There are two bytes in the executable file which tell the OS if the file is Console or GUI app. Change those bytes and you can run it as a console or GUI application. For more information about the PE format visit http://wotsit.org . Hopefully this is the first in the series and hopefully I will be writing more about it soon

Quick update for April 2010

Its been a few weeks since I've been working on my personal projects. I need to manage them a little better. Will be setting up a bugs database and also a project management system to better manage the workflow. All that happens tomorrow morning. I also want to blog on a more regular basis and I am learning quite a lot these days. And it always helps to write it down. I guess I should start that with the next post in a few minutes.

New beginnings

Over the last 3 years I've very rarely written about my work but I guess since its all behind me now I can talk about it. For the last 3 and half years I was working with Opera Software and in the coming days I will be leaving the job. I have met some amazing people at Opera and have had a great time working with the people there. The people who worked in the India office have been really friendly and I have had a great time working with you guys. Am still not sure what I will be doing next. I want to take a few months off and try to finish of my personal projects. I also want to learn something new and probably prepare for a new beginning. I was going to write a post on my birthday but there was so much going on that I got little time to write anything. Over the last one year so many things have changed. Even though I loved working at Opera over the last few months I felt that my work had stagnated and I had reached a point where I had to move on. Hopefully if I take the next few

Been a while since I wrote something

Its been 3 months since I wrote anything here. A lot has happened since then and hopefully continuing with the birthday tradition will be posting something tonight or maybe tomorrow. Also want to write about a few technology posts that have been going on in my mind and been in the drafts mode for a really long time now. The birthday post normally set my goals for the year and somehow they also seem to work and get me to my goals. More when I write that post.