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: , , , ,

3 Comments

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?).

Huey commented on May 29th, 2010 at 11:06 pm

I don’t think it is worth the fee, I have figured out how to tether for free so there’s no need to complain about the price. But the imaging is a huge problem as because of the layout of some sites it becomes impossible to get the full res. I’m still looking for a way to disable this…

Huey commented on June 30th, 2010 at 11:18 am

I have found a solution! :D

On your iPhone go to

Settings > General > Network > Cellular Data Network

Then Under “Cellular Data” change the APN to “mobile.o2.co.uk”
And change the Username to “bypass” (no quotes in both cases)

Then save the settings and restart your iPhone and the bmi.js file should no longer show up while tethering. Leaving you with full resolution browsing! The iPhone browser also appears a lot better since it was also affected by the js file.

grid960 – a grid overlay bookmarklet for 960.gs

This bookmarklet has now been updated to support 24 columns
Please also see grid960 bookmarklet – now with 24 columns/

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: , , , ,

20 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

Faramarz commented on May 8th, 2010 at 11:06 am

Brilliant. It would be great if grid colours could be chosen.
Really nice job, thanks for sharing it with everybody else.

Phil commented on June 19th, 2010 at 9:19 pm

Perhaps Howie is a Manchester City supporter. He wouldn’t want to give you a choice of colour in case you chose one that wasn’t blue.

ecross commented on October 1st, 2010 at 3:03 pm

Thank you for the great tool!

Iouri Goussev commented on December 14th, 2010 at 10:16 pm

Another option is to use a plugin for firefox FogGrid.

Iouri Goussev commented on December 14th, 2010 at 10:17 pm

Sorry GridFox not FogGrid

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?

IE8 Rounded Corners

Also see updated post about suitable jQuery plugin

Last night I finally got round to upgrading my Win XP VMWare image from IE8 beta to the production release. A bit slack on my behalf as the browser was released about 3 weeks ago. Still, I’d been testing websites in the beta release and all was cool.

Well, that’s what I thought. Last night I discovered that my company website, no longer worked. Looking into the problem this morning, I discovered that the culprit was a jQuery plugin that renders rounded/curvy corners.

I looked at a few other plugins, but none seemed to work. After a bit of Googling, I cam across an interesting blog entry from the guys at filmanentgroup, who are heavily involved in developing the jQuery UI API.

The blog entry highlighted an interesting piece of javascript development by Drew Diller that has nothing to do with jQuery. Drew has written an IE specific library called DD_roundies, that uses VML to produce the rounded corners.

The idea is that this code be used for browsers that don’t (yet) support CSS3 border radius. However, Drew has included an option to also render the CSS3 syntax for those browsers that support this feature.

I’ve now updated my site to use Drew’s code with CSS3 syntax support. This works in IE6, IE7, IE8, Safari, FireFox and Chrome. It doesn’t yet work in Opera, but this is only a matter of time (and perhaps a code update). If you want to support Opera, you can simply use conditional comments.

Tags: , , ,

8 Comments

Alun commented on April 15th, 2009 at 11:19 pm

IE8 is no longer RC? Where have I been?

Phil Thompson commented on April 21st, 2009 at 10:28 am

I installed IE8 last week and have actually been relived to find it’s rendering engine is very good. Admittedly it’s lacking a few CSS3 features that would have made it superb but I can happily sleep at night knowing all the websites I’ve created in the past two years look great in IE8 because it now handles CSS 2 properly.

Android commented on June 20th, 2009 at 3:43 pm

I cannot believe that IE8 still not supports rounded corners…

Alberto Lepe commented on August 27th, 2009 at 5:49 am

IE its getting somehow not that bad in their 8th version, but still score pretty awful in the acid 3 test: http://acid3.acidtests.org/, which means they are far from have a standard complain browser.
If you don’t know what is “ACID 3 TEST” read: http://en.wikipedia.org/wiki/Acid3

Vaughn commented on November 13th, 2009 at 6:41 pm

Howie,

I had written DD_roundies off, because when I looked at the DD_roundies page all the VML rounded divs are about 300px right of where they belong. I figured it was broken.

You say DD_roundies is working for you in IE8 though, very strange. I visited your company homepage, and indeed, there they are. Maybe I’ll give it a try after all.

Thanks,

Vaughn

Just WEBdesign Berlin commented on December 22nd, 2010 at 3:49 pm

It’s really a shame. That’s one of reasons, because i don’t use the IE.

Amsterdam commented on March 3rd, 2011 at 2:06 am

Folks, new century, new rules. Simply leave behind the crap you don’t need.

dpmguise commented on May 3rd, 2011 at 5:54 am

Just a note to say that this project is no longer supported, not to say it does not work, just that there will be no more updates made.

http://www.dillerdesign.com/experiment/DD_roundies/

Colophon

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

Howie specialises in Django, PHP and Java web application development.

This site is no longer updated. You can now follow Howie at howieweiner.co.uk

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

Tags