Tethering the iPhone : My Experience plus o2’s secret little bmi.js file

I recently moved house, and in the process lost my broadband connection for longer than anticipated. Having looked into the various USB Dongle solutions, I decided to opt for a tethered connection form my iPhone. I learned a lot from my week or so working this way – about my productivity, and about how affective tethering is.

Productivity

The thing I noticed the most was how much more productive I was. We all know how easy it is to get distracted by email, RSS, Twitter, Facebook, YouTube, and web surfing. And many of us know we should practice better time management. Well, next time you laugh at friend who tells you that where they work they don’t have internet access, I’ll have to admit, I completely understand why management make such decisions (unless your a web developer of course!).

Here’s my 2 tips to remaining productive:

  • I really recommend only checking you mail periodically – it’s so easy to get into a conversation over email these days. I’d rather just fire-and-forget.
  • Treat Twitter, Blogs etc. as a break from work, or something to read over breakfast/lunch/midnight feast depending on your working habits. I now read twitter feeds like RSS feeds – scanning for something interesting to pick up on.

Tethering

My experience was pretty good. I must admit, I’ve not used USB Dongles in anger, and form what I’ve seen, results vary widely. I’ve moved to Didsbury which has a strong 3G signal, and tethered over USB. My iPhone is the 3G, not 3GS. Here’s my experiences:

Speed

Connection is really good. I even managed to watch an episode of Dragon’s Den on my Mac with very little buffering. Of course, I couldn’t have done this on the phone itself.

Large File Downloads

Whilst streaming was fine, downloading wasn’t too good. I did try to download the whole episode, but it would have taken hours.

Image Quality

The biggest surprise was the poor quality of graphics. The quality is drastically reduced/pixelated. Hovering over the images reveals a hint that:

Shift+R improves the quality of this image. Shift+A improves the quality of all images on this page.

This intrigued me, so I did some digging and found that in the source of every web page, o2 is adding a call to a Javascript file in the header. This file, bmi.js, appears to replace images with low res versions. Not sure how, but it does seem to try to use iframes. It seems fairly harmless, but I did, on one occasion, find it broke a web page I was developing.

A quick look on Google reveals that thsi same file is used by Vodafone.

Battery Life

Whilst tethering, the phone does stay rather warm. With regards to battery life, as I was connected via USB, the phone remained fully charged. Interestingly, if the laptop is on battery power it still charges the phone, so the laptop loses juice pretty quickly.

Receiving Calls

Making ands Receiving calls whilst connected is fine. However, I did accidentally turn off 3G once. Whilst I could still browse OK, if the phone rings, you are disconnected.

Bugs

There is (or was, as I just downloaded the latest upgrade) a small bug with the address book. Every other letter in the right-hand alpha list became a bullet point. Odd.

Conclusion

Whether you think the £20/month tethering fee is justifiable or not is a different matter. It’s certainly cheaper than buying a USB Dongle if you only plan to use it the odd month or two. Regardless, if you have a good 3G connection I can recommend it – unless you hate low res images!

Tags: , , , ,

One Comment

Remy Sharp commented on December 9th, 2009 at 11:59 pm

What I found really interesting is that it was inlining all the external scripts, with the exception of jQuery, the server side is obviously sniffing that script and allow it to be an exception. Odd but interesting the pull of jQuery (i.e. it’s expecting it’s possibly cached?).

Leave a Reply

CAPTCHA Image CAPTCHA Audio
Refresh Image

grid960 – a grid overlay bookmarklet for 960.gs

A couple of days ago I released a jQuery plugin that provides a grid overlay when working with the 960.gs css grid framework. The plugin seems to have been quite popular, and as a result I now have a host of new Twitter followers – Hello to everyone in Romania!

I’m glad that others have found the plugin useful. A couple of people have suggested I release the overlay as a bookmarklet, so I spent yesterday learning how to develop one. So here it is: grid960 – a grid overlay bookmarklet for 960.gs

grid-bookmarklet

To install the bookmarklet simply drag the link below to your bookmarks toolbar. In Internet Explorer, right click, select ‘Add to favourites’ and then select ‘Links’.

grid960

You can test it on this page.

The bookmarklet works slightly differently to the original jQuery plugin. Firstly, if jQuery is not installed, it will inject it for you. If jQuery is already installed it will use this library – it will dynamically upgrade the library if it is not the latest vesion (1.3.2).

Secondly, the bookmarklet provides a small configuration menu on the page. When the bookmarklet loads, it will defaults to the 12 column grid. Through the menu, you can switch to a 16 column grid, and also alter the opacity of the gridlines.

The bookmarklet does not work in IE6 (yeah, whatever).

Any problems or suggestions, let me know.

Tags: , , , ,

15 Comments

Ian commented on April 23rd, 2009 at 1:23 pm

Very cool and quick work on the bookmarklet implementation! As a feature suggestion would it be possible to allow the user to select the width, gutter, and columns? This would then make it useful for aligning no matter which grid your working with, not just 960.

| Caldeas Blog commented on April 23rd, 2009 at 5:51 pm

[...] badlyDrawnToy created a bookmarket for the 960.gs grid overlay. I modified it for Bluetrip. Just drag the link below to your bookmarks toolbar. In Internet Explorer, right click, select ‘Add to favourites’ and then select ‘Links’. It does not work with IE6. [...]

Simon Rumble commented on April 24th, 2009 at 7:01 am

Nice work Howie! (Google Reader filtered out your code, mind.)

Simon Rumble commented on April 28th, 2009 at 6:47 am

Very likely reason it doesn’t work in IE6 is that it has a 508 char limit on bookmarklets and yours is 657 chars. If you reduce it down to just load your library, and have all the guts in there, you’ll get under that limit:

javascript:(function(){document.body.appendChild(document.createElement(’script’)).src=’http://www.yoursite.com/stuff/bookmarklet.js’;})();

badlyDrawnToy commented on April 28th, 2009 at 8:32 am

Simon. The code is a little more complex than simply writing in the script element, as it first loads jQuery and then the custom script.

The code fist checks to see if jQuery is already loaded; if not the script is added. If it does exist, it checks the version, and updates if necessary. One further complication, is that the code must wait for jQuery to initialise before downloaded the second custom script.

Simon Rumble commented on April 28th, 2009 at 8:39 am

Hmmm, much trickier than mine! But couldn’t all that be done in a download, which triggers further downloads? The key here is to just get the Bookmarklet component down to under 508 chars for broken IE.

(The reason I care about IE6 is it’s a critical target platform for me. It’s STILL in the SOE here. Gah! Not that I need your bookmarklet for work purposes, just had to solve the problem myself just now.)

badlyDrawnToy commented on April 28th, 2009 at 8:48 am

@Simon – Yes, I guess I could/should have done this. I decided that web developers are unlikely to be designing their grid layouts in IE6. Could be wrong, which would be scary!

Seemed like overkill to make 3 HTTP requests to load the script. Here’s the code used

http://www.badlydrawntoy.com/static/960grid/js/960grid-bookmarklet.js

Simon Rumble commented on April 28th, 2009 at 8:54 am

When I first started this and was trying to get Firefox et al installed, I was told by the support people to develop in IE6 and Word… Yeesh!

The reason IE6 might be handy is for debugging a bog-standard IE6 install, which is fiendishly difficult. I find XRAY incredibly handy for this (http://www.westciv.com/xray/)

Milan Andric commented on May 5th, 2009 at 1:08 am

I’m looking for a javascript grid-based page editor, for lack of a better term. Some javascript code that takes a set of vanilla html div blocks and allows you to order them/move them/expand contract and maintains the grid system in a fixed width interface, like 12 column 960. The javascript generates the right grid code and you can save it or do an XMLHTTPRequest post to save it. Any ideas or have you seen something like this?

robert commented on May 22nd, 2009 at 12:52 am

do you have a decompressed version of the javascript so I can add a 24 colun grid option? I can likely edit it myself unless you want to add it which would be nice heh. Email me if you do, thanks.

DemoGeek commented on September 18th, 2009 at 3:48 pm

That is indeed very handy particularly with the 12 and 16 grid option. Would really help if there is a way to adjust the color overlay as if you have the same color on the page you might find it a bit harder to track it.

David commented on September 30th, 2009 at 2:29 am

Awesome. THANK YOU!

Ravoof commented on November 8th, 2009 at 9:56 am

Really useful. Thanks.

Katie Dixon commented on December 7th, 2009 at 1:50 pm

Works great and so useful! Thank you very much!

Surftipps commented on February 20th, 2010 at 9:12 pm

Absoluty perfect. Thanks

Leave a Reply

CAPTCHA Image CAPTCHA Audio
Refresh Image

960.gs grid overlay – a jQuery plugin

I’ve now released a bookmarklet to provide a simpler gird overlay.
Please also see grid960 – a grid overlay bookmarklet for 960.gs

I’ve been using 960.gs on a few sites recently. Without wanting to get into a discussion about the pros/cons of using css grid frameworks, I find them useful for some sites.

The 960.gs framework comes with a handy demo that shows a grid overlay, but the GIF images used have no transparency, so it is difficult to add a nice grid overlay to sites when developing them.

On the 960.gs home page there is a button by the thumbnail examples that dynamically adds a grid to the image. I Googled around for a similar solution, but didn’t find one that quite did what I wanted. So, I decided to build a simple jQuery plugin of my own.

Here’s a demo of the plugin in action.

To use the plugin, simply add the following code to your pages for a 12 column grid:


<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.960grid-1.0.min.js"></script>
<script type="text/javascript">
	$(function() {
		$("body").addGrid(12);
	});
</script>

thumbnail of 960grid plugin

Once the plugin is activated, a small toggle link will be visible in the top left-hand corner of the page. Unsurprisingly, if you change the input parameter from 12 to 16, you get a 16 column grid available!

The plugin relies on a couple of PNGs and by default the image path is set to /images/. You can override this setting, along with several others, by passing in some options as follows:


var options= {
	img_path: 'img/',
	z_index: 999,
	opacity:.6
};
$("body").addGrid(12, options);

As well as the image path, it is possible to override the default z-index used by the overlay, in case there is a conflict. You can also alter the opacity of the PNG if you require.

Please feel free to download the plugin for your own use. Let me know of any problems or suggested enhancements.

Tags: , , ,

17 Comments

Remy Sharp commented on April 21st, 2009 at 10:05 am

Why not convert this to a bookmarklet – seems like a perfect candidate so that anyone can plug it to their site on the fly to check it matches the grid.

You can easily toggle it via the bookmarklet too, but just checking for a particular id in the body.

Jason Huck commented on April 22nd, 2009 at 1:50 pm

Thanks, this looks pretty handy. I’ll second Remy’s suggestion of making it a bookmarklet, too.

- jason

badlyDrawnToy commented on April 22nd, 2009 at 1:57 pm

Thanks for the feedback. A bookmarklet is on it’s way

Razvan Segarceanu commented on April 22nd, 2009 at 2:10 pm

Multumesc! (that means thank you very much, in Romanian :P )

HTML Editor Reviews » Two New CSS Framework Tools commented on April 22nd, 2009 at 3:29 pm

[...] I’ve been trying out for the last little while, there’s a new jQuery plug-in called 960.gs grid overlay that does as the name implies — it overlays a semi-transparent 960 grid over your layout as [...]

Blueprint grid overlay - a jQuery plugin | Caldeas Blog commented on April 22nd, 2009 at 10:11 pm

[...] I saw a link on Twitter for a jQuery plugin written by badlyDrawnToy that allows you to toggle the grid overlay when using [...]

網站製作學習誌 » [Web] 連結分享 commented on April 24th, 2009 at 3:33 am

[...] 960.gs grid overlay – a jQuery plugin [...]

[...] basas tus diseños web en columnas utilizando el Framework de CSS 960.gs, 960.gs grid overlay, un plugin para jQuery puede resultarte bastante [...]

Andrée Hansson commented on April 26th, 2009 at 3:31 am

Hey! Looks neat, I have been working on a very similar project for two months now (check the link), just to let you know. :-)

My Thoughts on 960gs | Tom McFarlin commented on April 27th, 2009 at 10:05 am

[...] jQuery plug-in for the 960gs grid overlay [...]

ling commented on December 21st, 2009 at 11:37 pm

1000 thanx
badlyDrawnToy,
most convenient tool for me!!

Philsbury commented on December 30th, 2009 at 4:26 pm

I love this. Need I say more? :)

Daniel Shanahan commented on January 26th, 2010 at 3:29 am

I like this very much – thank you for making it available. I found what may be a bug. I was not able to implement the plugin, even though I followed the instructions to the letter. I ended up duplicating the demo and started from scratch, as the demo worked. Then, as I was marking up the demo.html I came across this behavior: within the container div I have a sidebar div. I gave the sidebar div an id of ’sidebar’. So far, so good. However, when I gave that same div a class of ‘grid_4′, the grid no longer worked.

Perhaps this isn’t a bug and I am just unclear on the expected behavior. Any thoughts?

badlyDrawnToy commented on January 26th, 2010 at 9:59 am

Daniel. Glad you like the plugin. Not sure if what you describe is a bug. The plugin simply overlays the grid. It will not affect your own grid classes. More likely you haven’t quite got your own markup correct. Hard for me to say without you showing me your code.

Daniel Shanahan commented on January 26th, 2010 at 4:23 pm

Thanks for the quick reply. Yes, the problem could very well be my markup. Would you mind taking a look? I have two simple Lorem Ipsum sites: one where the grid works (http://www.gridoveryes.newleafdata.com/demo.html) and one where it does not (http://www.gridoverno.newleafdata.com/demo.html). All the files (css, images, js) are the exact same as the demo downloaded here, though I changed the content in the html file. The only difference between the one that works and the one that does not work is an added a class: grid_4 to the sidebar div.

Any ideas why it doesn’t work here (http://www.gridoverno.newleafdata.com/demo.html)?

Thanks.

badlyDrawnToy commented on January 27th, 2010 at 12:55 am

Daniel. I think the problem is that you have a 12 column container within which you only define a 4 column grid. You need to specify what happens with the other 8 columns e.g. make the content div 8 cols wide

also, lose the footer tags in the HTML

Good luck

Daniel Shanahan commented on January 27th, 2010 at 6:15 pm

Thanks Howie. I added grid_8 to the content div, but no luck on getting the grid to show. (I also removed the footer tags). Any other suggestions?

Leave a Reply

CAPTCHA Image CAPTCHA Audio
Refresh Image

Skype for iPhone v Fring

I’ve just been playing with the new, official Skype for iPhone application, which has been a long time coming. I currently use Fring.

I decided to use a SkypeIn number for my business some time ago, I was in temporary accommodation. I get a Manchester (0161) number and voicemail, so it suits my requirements. Receiving calls on my computer is quite nice, as the MacBook’s in-built mike is quite intelligent – no echo. Sadly, on occasion, the calls do drop without warning. I think that this is more an issue with my ISP/router.

Recently, I’ve begun to use Fring for receiving calls. Connected through my wireless network, it works great. So long as the application has been launched, it receives calls to my SkypeIn number and also to my mobile number. And if I wish to make a call out, the application lets me dial through o2 rather than Skype. Of course, I can also use SkypeOut to dial cheap rate calls if required.

The official Skype application is similar, and has a nicer, more responsive interface. It also lets me receive mobile calls when the application is active, and make SkypeOut calls. Like Fring, I can look up contacts in my address book. And like Fring, this is pointless unless you’ve entered international dialling codes for all your freinds!

I don’t use Skype for chats very often, but this feature exists with both. The official application also lets me change my online status, not that I ever do this. I can check my Skype credit and quickly link to the web page to top up credit, but I can’t do this from within the application. I’m sure this will come with time as the next version of the iPhone software introduces micropayments.

There is one thing that Fring does do better. If I put my iPhone to sleep with the application launched, I can still hear when a call comes in. (It’s then a scramble to unlock the phone in time to answer the call). With the official application, I get no notification, and the call goes straight to voicemail. This is quite a big omission in my opinion. It only takes a few days of ownership of an iPhone to learn that the battery drains very quickly when not put to sleep. I could keep the iPhone connected to my laptop to preserve the battery.

For now, I think ‘ll continue to use the trusty application installed on my laptop. Skype on the iPhone is still a bit of a fudge.

Tags: , , ,

Leave a Reply

CAPTCHA Image CAPTCHA Audio
Refresh Image

Colophon

badlyDrawnToy is the blog of Howie Weiner, a freelance web developer, based in Manchester.

Microbubble Web Design - freelance web design manchester, stockport, cheshire

His company, Microbubble Web Design, specialises in PHP and Java web applications, Search Engine Optimisation, custom CMS and web development.

View Howie Weiner's profile on LinkedIn
View Howie's twitter feed