Downloading over an unreliable connection with Wget

Rant – BSNL!!!

This is a part rant, part tip – so bear with me… My broadband connection absolutely sucks over the past week. I upgraded from 2Mbps with a download limit to a 4Mbps with unlimited downloads and since then it has been nothing but trouble… Damn BSNL!! I’ve probably registered about 30 odd complaints with them to no avail. If there was a Nobel for bad customer service, BSNL would probably win it by a mile. Some examples:

  1. They’ll call to find out what the complaint it and even when I explain what’s happening, they hardly hear me out at all.
  2. Either they call up and say ‘We have fixed it at the Exchange’ and nothing has changed
  3. They automatically close the complaints 🙂

Guess they find it too troublesome that someone who’s paying for broadband actually expects the said broadband connection to work reliably!

Anyway, Airtel doesn’t seem to be any better – they need 10 days to set up a connection and when I was on the phone with them, they didn’t seem too interested in increasing their customer count by 1 :).

I also tried calling an ISP called YouBroadband after searching some of the Bangalore forums for good ISP providers. They promised a call in 24 hours to confirm if they have coverage in my area and it was feasible for them to set up the connection and that was 48 hours ago!

At work, I’ve heard good things about ACTBroadband and they have some ads in TOI as well, but they said they don’t have coverage in my area :(.

So how do you download

Today I needed to download something and doing it from the browser failed each time since my DSL connection would blink out in between!

After ranting and raving and writing the first part above and still mentally screaming at BSNL, decided to do something about it… Time for trusty old wget – surely, it’ll have something?

Turns out that guess was a 100% on the money… it took a few tries experimenting with different options, but finally worked like a charm

wget -t0 --waitretry=5 -c -T5 url
    where
    -t0 - unlimited retries
    --waitretry - seconds to wait between retries
    -c resume partially downloaded files
    -T5 - set all timeouts to 5 seconds. Timeouts here are connect timeout, read timeout and dns timeout

Avast! trial expiration kills Internet connection – how bad is that!

So I use ‘free for personal use’ Avast Antivirus at home for the past couple of years. It’s been mostly good though I’ve had some reservations about it – namely, nag pop-ups and so on. Some months ago (or maybe was it a year ago?) there was a program update and it wanted me to install ‘Avira Internet Security’. Now I had no need for this (I use COMODO firewall which has been quite good) however, there was no way around it. Avira’s update process said I could revert back to the free Antivirus version anytime without a re-install or a re-anything!

Not much of an option and you can’t blame them for trying to push their products and convert free users to paying ones – so I went ahead with the upgrade. About a fortnight ago, I started getting warnings about ‘your trial licenses is about to expire’ and so on. The good thing about the internet security product was that it was discreet – in fact, safe to say that I even forgot that I installed it.

Remembering the notices about the trial expiring and reverting back to the free version, I chose to ignore all the warnings till yesterday afternoon when the wife called me up at work about ‘internet not working from the home machine’. Now my wifi dongle on the home pc does once in a while show up with a ‘Limited connection’ that’s quickly fixed with either disabling and enabling the dongle or unplugging it and putting it back in the USB port. I offered that up as a solution and a few hours later am told that it hasn’t fixed the issue.

This morning I finally sat down to see what was up. Turns out that the WIFI just wouldnt connect. So up comes device manager and under Network Devices I see a whole lot of ‘avast! NDIS filter’ virtual devices showing up. Opened Avast! gui and there are no panels for turning the thing off… Its reverted back to the free version – but has killed my net connection in the process! Not a happy camper at this point – still wasn’t worried since I figured there’ve got to be tons of users with the same problem and it probably has a simple fix. Google did not reveal any simple fixes – Avast’s community forum had help! Avast Internet Security trial expired, no internet connection and Avast Internet Security Trial seems to have affected my internet connection. The suggestions offered – buy a license, uninstall and re-install Avast etc were just not Ok. I definitely wasn’t the only one affected but looks like a small but sizable user population was affected. If that was so, then Avast! should have done something about it – however, looks like they don’t believe much in that. Agreed it’s a free product and will not merit levels of support that you’d get for something that you pay for. But:

  1. I did not ask for the installation of the ‘Premium’ product trial.
  2. There was no option to opt out of the ‘trial’
  3. They actively messaged that there’s ‘nothing to lose’ from using the trial.

Given all that, they should have stepped up and either taken care of the issue with an update OR put up steps on how to solve it. It doesn’t take that much. Here’s how I got back my net connection:

  1. Device manager – Remove all ‘Avast!’ virtual devices with a right click ‘Uninstall’
  2. Restart
  3. No WIFI still… so open ‘Network and sharing center-> Change Adapter settings-> Wifi Connection -> properties’. In the ‘This connection uses the following items:’ list there was one more avast! filter device. Selected and uninstalled that too and restarted again.
  4. Back in business…WIFI is back up and running!

It’s time to say goodbye to Avast!. Any recommendations for good, free antivirus solutions?

IOS-no previous simulator versions!

Ran into a situation today where we had a mobile web app that was reported to be misbehaving on iOS 3.2. The Mac at work has the latest XCode and IOS 5 simulator loaded on it. So we thought it would be quite routine to just start a simulator running IOS 3.2 – after all this having simulators of different versions of the OS is pretty routine. Android makes it trivial and before that, Blackberry has always had different simulator versions for different versions of their OS. Truth be told, RIM probably overdid it. They had too many versions, a developer website that would drive even the most persistent BB fanboys to stark raving madness and documentation that took great pains to suck! Hell, its a separate rant altogether :).

Anyway, after clicking around Xcode for a bit, imagine our surprise when we found that only a device debugging package for iOS 3.2 was available as an updated package for Xcode. That didnt seem right – so off to Google and there’s a post on SE http://apple.stackexchange.com/questions/14128/how-do-i-install-the-3-0-iphone-simulator-on-xcode-4

Apparently, Apple doesn’t want you to test on previous versions (or atleast – 2 major versions before. Testing on last major version IOS4 is ok though). Now isn’t that absolutely ridiculous? Sure, Apple wants people to upgrade their phones to the latest OS versions and they’ve done a great job of ensuring that later versions of the OS work on older generation phones – but from a development tool standpoint, making tools to test your app unavailable is taking things too far. So tomorrow if my site/app doesnt work properly on a iOS 3 device, the user isnt going to blame Apple. Its the app developer who gets the bug report :(.

So once I’d made my peace with Apple’s decisions and diktats on what simulators I was allowed to play with, I reflected on it a bit. I think the key is that that IOS’s simulator is really just a simulator (ie software running on the host machine but mimicking a device). On the other hand, the Android emulator is actually a full qnx VM that’s totally isolated from the host machine. In IOS’s case, the simulator is sharing libraries and tools installed on the base OS – and as such, it would be quite hard to simulate older versions. In Android’s case, since each emulator is really like running a VM, you can have all the different versions at your beck and call. On the flip side of things, the emulator approach really slows things down – everything from booting up the VM to actually running code inside it whereas IOS simulator positively zips around. I’m not sure if this is indeed the case – it’s just my theory. Looking around on the net, I couldnt find a solid reference – so if you know of one, drop it in the comments.. I did find a few on SE/SO – but they were by no means conclusive http://stackoverflow.com/questions/4544588/difference-between-iphone-simulator-and-android-emulator

Android Annoyances

So yesterday and today while driving back from work, I’ve had to join conference calls. The conference call provider we use at work has 10 digit passcode numbers. Usually, I have a few bridge numbers with the DTMF codes saved in my contacts so I can just click on the contact to get dialled to the access number and have the participant passcode typed in for me. However, yesterday and today’s calls were on a different bridge and I had to try to remember a 10 digit number after dialling the access code – and all that while driving. Needless to say, it took a few attempts and I’m sure at that time my attention wasn’t where it should have been – ie on the road and on the traffic. Besides being thoroughly unsafe on Bangalore roads, its just frustrating(thankfully – better sense prevailed today and I pulled over, dialled into the bridge and then started driving again).

So the issue really is that the native parser that parses out email and calendar invites doesn’t understand access codes and passcodes. It shouldn’t be too hard to do – but then I started digging a bit deeper this evening. Granted that the parser isn’t smart enough, at the very minimum if it handles tel: links properly, then its just a matter of educating folks who set up meetings to set them up so that you can click to call with something like <a href="tel:23423432233,,9230233#"> – in fact, in Outlook if you type TEL: and then the number, it will automatically be parsed as a tel: hyperlink. Turns out that its a massive fail – if I click the link, Android will show me the dialler but without the DTMF codes (basically, only the number upto the first comma). TOTAL FAIL.

So, Isn’t this something that should have been brain dead simple to do? I mean – this is 2012 after all – and I’m not asking much. All I’m asking is that the tel: url parsing/handling be done in such a way that we can use our phones properly!!! Turns out that there’s an open ticket 4575 since Nov 09. And its marked as an enhancement – I find that laughable since its a bug and definitely something that can be done quite easily (esp since a contact that has DTMF codes is dialled properly). However, for the 2 years that the ticket has languished, there have been 73 comments and not a single response from big GOOG 😦

At the moment, doesnt look like this is going to be fixed – so I started browsing thru the Android source tree to see if I can find where the implementation for tel: urls – however, given the size of the android source, that’s like trying to find a needle in a haystack. Guess I’ll have better luck with seeing if CyanogenMod folks can fix this in CM9.

So about that, the other thing that has confounded me is why in the world can’t Android bundle a decent T9 dialer/smart dialer out of the box. I know there are tons of apps on the market that do that – but seriously, is smart dialing something so out of the world that I need an app for it? As expected, there’s a ticket but no action.

I think its safe to assume that Google isn’t interested in fixing these issues as there’s no ‘benefit’ in doing so – though for the life of me, I can’t imagine either of them being particularly hard. In any case, I’m eagerly awaiting a CM9 build for the Nexus One (right now, am running an ICS build from XDA).

Facebook publicize is driving me nuts!

I’m thoroughly frustrated with WordPress.com’s facebook publicize feature. In theory, its supposed to post to your facebook wall whenever you publish a new post and that way publicize your post among your friend circle…..if it ever works. I’ve done all the resets, disconnects and reconnects and it just doesn’t. Now, this could very well be a facebook problem rather than a wordpress.com problem – so while my rant might be misdirected, its a rant anyway against the thoroughly frustrating experience. Its like a bucket of cold water on my enthusiasm to be more active on my blog.

You see, with having posted rarely to this blog, I get a measly 70/80 page views per day (yeah – there’s no need for the snide looks); So one part of actively persisting on the blog has been to see if I can get to 100+ page views per day. Modest goals, I admit – and getting the linky to a new post on the FB wall is a big part of it. If only it worked as it says on the tin 😦 😦

Anyway, this post is a test in itself – I’ve just jumped through the said hoops , mumbled the magic incantations and in other words, followed every bit of direction available to make this work right. And if this post shows up on my FB wall, well and good. If not, then I’m done with trying to get this to work.