## Why you rarely get internet as fast as your speedtest

Can anyone explain why, when my internet download speed is testing around 20mbps, if I go to download a file, the actual speed result is more like 1-2mbps?

There’s a couple things going on, but first a primer on the internet:

For our purposes, think of the internet as several independent networks that are joined together through interconnection points. for our sake, let’s assume that each independent network is a physically restricted to a city; so there’s a Seattle Network and a Denver Network and a Minneapolis Network, etc.

Also, each network is only connected to its closest *major* city. So, Seattle and Denver don’t actually connect to each other but instead both connect to the Salt Lake City Network…this called a hop and it takes two hops to get from the core of the Seattle Network to the core of the Denver Network (Hop 1: Core Seattle -> Core SLC; Hop 2: Core SLC -> Core Denver).

There are also other ways the Seattle Network could connect to the Denver Network…it could go down the west coast and then back up, but that would take more hops (through Portland, San Fran, LA, etc). Each hop takes time so there’s benefit to keeping the number of hops as low as possible. Also, the connections between any two cities are not infinitely big, but some are bigger than others.

Web servers are located throughout the world, but generally congregate near large cities since they offer the best chance of serving the most people with the fewest hops. If a web site has customers in many different cities they will probably have web servers in each of those cities to try to reduce the number of hops each visitor has to make to get to their server.

As a general internet user you and I are on the outer fringes of one of these networks. If I want to connect to a server in a different city, I first must get to the core of my network before I can transit across other city Networks to get to my destination. This could take several hops just within my city to get to the core of Seattle and then several more hops to get to a different city if it’s not physically located nearby and potentially even more hops if the server I want isn’t near a large city.

Okay that’s the primary and hopefully that makes sense. To answer your specific question:

When you do a speed test, you are generally checking it against a that’s run by your own ISP. If you look at Speedtest, you have an option to pick a server and you can see that there are servers run by Frontier, AT&T, CenturyLink, Comcast, Sprint, and whole bunch of other internet service providers. What you are testing is the connection between you and *near* the core of your city network. It probably takes about 6-10 hops. This is also the part of the network that is generally underutilized the most (which is also why ISPs also oversubscribe and you get the dreaded 7pm slowdown when everyone is binging Netflix). This is rarely representative of real-world situations.

When you go to download your file, it’s probably hosted across the country and has to make 20+ hops. Any one of those hops may be subject to limits for all sorts of reasons that ultimately result in a slower download speed.

If you want a true test of your download speeds, you need to check it using a site that better represents a real-world situation. I’d suggest trying http://speedtest.fremont.linode.com/ and see how that compares.

If you’re interested I can go waaaay more in depth too and we can even look at exactly what routes your data is taking (it’s actually really fascinating) and maybe even figure out where the bottle neck is happening (though it will be tough, but not impossible, to do anything about it).

## Block and Tackle Efficiencies

Not long ago a friend was looking to upgrade the mainstay ((rope from the top of the main-mast to the foot of the fore-mast on a sailing ship)) block and tackle system on his sailboat.

The question was if the proposed system would provide the anticipated reduction in force. It was an interesting question that, while seemingly straight forward, does have a couple of gotchas.

Block (pulley) and tackle (rope) calculations are usually pretty simple, with the mechanical advantage (MA) idealized as:

$MA = \frac{F_B}{F_A} = n$

where FA is the input force, FB is the load, and n rope sections.

Calculating the total force of multiple non-colocated blocks using the same tackle presented a fun challenge that requires one to take into account the individual location of the blocks and the forces transfered.

I did not draw every single link of the block and tackle, but in general the problem looks something like this:

Considering the moment arm:

$F_{L} = (F_{A} \times A) + (F_{B} \times B)$

We devise these relations:

$F_{A} = n_{AD} \times F_{P} \times \arctan\left ( \frac{\left | A-D \right |}{h}\right )$

and

$F_{B} = n_{BC} \times F_{P} \times \arctan\left ( \frac{\left |B-C\right |}{h}\right ) + n_{BD} \times F_{P} \times \arctan\left ( \frac{\left |B-D\right |}{h}\right )$

where nxy is the mechanical advantage coefficient at a given point, x, with respect to another point, y; FP is the force exerted on the tackle (which must be uniform throughout!).

Using some assumptions regarding the lengths and relative positions of the blocks greatly simplifies the calculations, and we can plug ‘n chug from there:

$F_{L}=F_{P}\cdot \left ( \frac{n_{AD}}{2} + \frac{n_{BC}}{4} + \frac{n_{BD}}{4}\right )\cdot \cos{(\arctan(\frac{l}{8h}))}$

As expected, there is a loss of useful force due to the ropes not being normal to the boom and that causes the boom height/length ratio to become an interesting variable in these calculations. You lose 10% of your power with a 1:3.87 ratio, 25% with a 1:7.06 ratio, and 50% with a 1:13.86 ratio.

To model a direct input (with no block and tackle), I assume that the force was applied at a point between the two blocks, A and B, and normal to the boom.

The increase from no block and tackle system to the current system (single boom aft block, A; double boom traveling block, B) is:

$\frac{F_{P}\cdot \left ( \frac{2}{2} + \frac{2}{4} + \frac{2}{4}\right )\cdot \cos{(\arctan(\frac{l}{8}))}}{\frac{3\cdot F_{P}}{8}} = \frac{16}{3}\cdot \cos{(\arctan(\frac{l}{8h}))}$

…assuming the boom heigh/length ratio is 7, the mechanical advantage is 1:4.01.

Moving from no block and tackle to the the proposed system (double boom aft block, A; triple boom traveling block, B) is:

$\frac{F_{P}\cdot \left ( \frac{4}{2} + \frac{3}{4} + \frac{3}{4}\right )\cdot \cos{(\arctan(\frac{l}{8}))}}{\frac{3\cdot F_{P}}{8}} = \frac{28}{3}\cdot \cos{(\arctan(\frac{l}{8h}))}$

…again, assuming the boom heigh/length ratio is 7, the mechanical advantage is now 1:7.02.

The mechanical advantage from current system to proposed system is: 1:1.75

$\frac{F_{P}\cdot \left ( \frac{4}{2} + \frac{3}{4} + \frac{3}{4}\right )\cdot \cos{(\arctan(\frac{l}{8h}))}}{F_{P}\cdot \left ( \frac{2}{2} + \frac{2}{4} + \frac{2}{4}\right )\cdot \cos{(\arctan(\frac{l}{8h}))}} = \frac{3.5}{2} = 1:1.75$

It’s not quite the 1:2 advantage originally thought, but it’s close.

Epilogue:

The bonus gotcha occurred when said friend opted to install a double boom aft block (A) and a triple deck traveler block (D), but keep the boom traveler block (B) as a double. Essentially, putting an extra “loop” just between the boom aft block (A) and deck traveler block (D).

The imbalance of tension on the deck traveler block caused it to experience shear stress and bind on the traveler rail in ways it was not designed to — not good.

Converting the boom traveler block (B) to a triple and the deck traveler block (D) to a quad equalized the tension.

Problem solved.

## Napkin Analysis of the Sand Flea Jumping Robot

I shared this video ((found via the always interesting Kottke)) with Peter, who then asked:

I saw that a couple days ago. Awesome! And has some cool practical applications. I [couldn’t] quite tell if the pitch of the robot was adjustable by the user, or of it always jumped in the same direction. Did you get a sense for that?

It was a good question and one I didn’t have an immediate answer to.

I would actually guess that I don’t have immediate answers ((answers that only involving recalling a specific outcome)) to at least 50% of questions people ask me ((I just made that number up, really)). I have to do some amount of thinking, and sometimes even some research. I think people tend to think I know the answer off the top of my head, I assure you: I am not that smart.

I do have an inquisitive mind, I do know where to look, and I do know how to ask the right question.

I decided to remedy this question though by talking it through, instead of just giving an answer. This is basically my thought processes as it occurred. Except that I got Sin and Cos mixed up and didn’t realize it until I had finished my conclusion. So I had to redo my entire analysis, and that’s what you see here. Please note this is still really just a paper napkin answer:

As far as angle, I’m not sure. I suspect there would be some angle change.

Elevation angle can affect two things, how high it goes and how far it goes forward, and these two things are intrinsically linked through SohCahToa. Height and forward distance can also be affected by the force applied (ceteris paribus ((all other things being equal or held constant))). This gives a problem with two independent input variables (angle and power) and two dependent output variables (height and forward distance/range).

Since my primary goal is to jump, I’m going to put most of my energy into that. If I want to jump higher, I can either apply more force or make my elevation angle higher (as long as it’s < 90°). As the elevation angle nears 90° $\left (\frac{\pi}{2} \right )$, more of my energy goes into going up than going forward. The proportion of energy applied to going up is defined by Sin and the proportion of energy applied to going forward is defined by Cos. Also worth remembering is that the Sin[x] + Cos[x] is not a straight line, it's another parabola that peaks at 45 degrees. The biggest bang for your average buck is to angle yourself at 45 degrees and shoot. Additionally, Cos (forward) angles that are near 90° have a high rate of change (i.e. going from 80° to 81° has more of a difference than going from 10° to 11°), thus little changes in elevation angles near 90° have relatively larger impacts on how far forward I go. Conversely, Sin (height) angles that are near 90° have very low rates of change. The cross over point for rates of change between Sin and Cos is - you guessed it - at 45° . Since the goal of the robot is to jump high (not far), it would make sense to only use high angles (above 45° ). To vary height significantly though, you are going to have vary power. Going from 46° to 90° only increases height by ~93% if the force remains the same. In comparison, going from 1 degree to 45 degrees increases height by 164,000%. Math is great, but if you can't implement it, it doesn't matter so let's turn to what's practical: One of the underlying assumptions is if the robot can vary the force it uses and if it could accurately set it's elevation angle. Setting the angle is pretty easy using encoders, and accelerometers to determine which way is down (if you were jumping from an angled surface, for instance). We've also already seen that the jumping leg can move, so adding functionality for precision angle measurements (within a degree, let's say) is pretty trivial. The real question, I think, is how does it jump? Delivering energy quickly has always been a problem. Delivering a measured amount of energy quickly even more so. Based on jumping from the ground to the loading dock (1.5 meters in height at most) and then from the loading dock to the roof (probably at least 4 meters), that's about a 166% increase in height, which is not quite enough as could be accomplished by just varying the angle from 46° to 90°. Since you can't gain that height just by altering the angle alone, it makes sense to assume that the jump force setting can be altered. However, if you change the jump force setting, what does that do to the forward movement (we know it will make the robot jump higher)? It will, of course, move the robot forward even more. How much more? I don't know exactly, but probably enough to make some minor angle tweakage worth it. We would have to sit down and work on the math to verify the exact amount. I think it involves something with squaring the derivative of the force divided by the mass. Squaring always make numbers bigger, so I tend to think it would be significant. Suffice it to say, if you don't want to proportionally more forward when you jump significantly higher, you would have to adjust your jump elevation angle. Thus I would assume there may be small changes in angle elevation, but that's hard to estimate given the view-point the videos were shot at. It's also pretty easy to solve for power required and angle needed to reach a particular height while moving forward only a certain amount (once you figure out what the maths are), so at least the implementation factor is pretty easy from a computing standpoint. And I've spent way to much time on that answer. ((One of the reasons I decided to blog about it, the work was pretty much a sunk cost)) As always, please check my work.

## 24 Hours in Denver

Jeff and Elizabeth were in Washington, DC for the week, but got stuck in made a stop in the wonderful city of Denver on their way back. Jeff asked me:

24 hours in Denver, what should we do?

Here’s my quick and dirty short list of things to do in Denver. I’ve tried order it from north to south, west to east, but this is all mostly from memory.

• Coors Field, 2001 Blake Street Denver, Colorado, 80205
• Wynkoop Brewing Company, 1634 18th Street, Denver, (303) 297-2700
• Commons Park, 15th and Little Raven Street, Denver, CO (kitty corner from REI and across the river)
• REI Denver Flagship, 1416 Platte Street, Denver, CO, 80202-1120, (303) 756-3100
• Illegal Pete’s, 16th Street, Denver, CO
• United States Mint, 320 W Colfax Ave, Denver, Colorado, 80204
• Civic Center Park, West Colfax and Bannock St ((From west to east is the Denver City and County building, Civic Center Park, and Colorado State Capital))
• Denver Art Museum, 100 W 14th Ave Pkwy, Denver, CO, 80204-2788, (720) 865-5000
• Denver Museum of Nature and Science, 2001 Colorado Blvd, Denver, CO, 80205, (303) 370-6000
• Colorado School of Mines, 1500 Illinois Street, Golden, CO, (303) 273-3000

Anything else worth adding to this list?

## More On Copyright

My cousin Amanda ((who is, incidentally, the sister of my cousin Nick)) wants to know:

I just finished a painting and I wanted to put it on Facebook, but I need to know about copyright stuff, if I put it on Facebook does that give the Facebook people right to it?

Editors note: edited for grammar and such.

The short answer is yes.

Facebook has something called a “Terms of Service” ((http://www.facebook.com/terms.php?ref=pf)). It’s a long document, but the part you’re going to be interested in is near the top, section 2 “Sharing Your Content and Information.”

Part 1 reads: “For content that is covered by intellectual property rights, like photos and videos (“IP content”), you specifically give us the following permission, subject to your privacy and application settings: you grant us a non-exclusive, transferable, sub-licensable, royalty-free, worldwide license to use any IP content that you post on or in connection with Facebook (“IP License”). This IP License ends when you delete your IP content or your account unless your content has been shared with others, and they have not deleted it.”

I’m not a lawyer, but when you put content you create (such as a picture of your painting) on Facebook, you automatically give them certain rights. However, as soon as you delete the content, the rights you gave them are automatically rescinded unless your content has been shared with others who have not deleted it.

Copyright is a very interesting subject and one that is not very well understood by many people. I’d encourage you to learn more about it. A good place to start would be Wikipedia: http://en.wikipedia.org/wiki/Copyright

If you have any questions, feel free to let me know. I may not be able to answer all of them, however I can also ask my roommate who’s in law school.

-30-

I also sent an email to Auntie, just to make sure everyone is on same page and to (hopefully) provide a Teaching Moment™:

I think there’s lots of confusion about what copyright is and isn’t. The current copyright (and patent and trademark) system is (in my opinion) a mostly vile shell of what the original intention behind the system was. Yes, strong words, but also words I believe to be accurate. Anyway, I’d encourage you take a look. The site is pretty decent and while not comprehensive, at least gets the ball rolling.

You may also be interested in Creative Commons (http://creativecommons.org/), which “provide a flexible range of protections and freedoms for authors.” An example of this would be my website (https://andrewferguson.net/some-rights-reserved/) and almost all of my photos.

As always, feel free to ask lots and lots of questions.

-30-

I’m curious where copyright and the like is headed. I’ve been fed-up with the current system a little while now, but I’m usually on the early side of the “early adopters”. My hope is, of course, that we are starting to see more uptick in the desire to return to the origins of the copyright, “To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.” ((Article I, Section 8, Clause 8 of the United States Constitution))

## The Magic of WP Greet Box

I received an email the other day wondering how I inserted the welcome message for certain guests of Andrew Ferguson dot NET.

Andrew,

Would you mind sharing what plug-in you use to do this?

It’s very effective, and I’d love to use it my blog.

Thanks!

– Charles

It’s called WP Greet Box and you can get it at http://omninoggin.com/projects/wordpress-plugins/wp-greet-box-wordpress-plugin/. I just started using it recently and I think it’s pretty spiffy.

The idea is that when people come to my site by clicking on another link (from Google, Facebook, Joe’s BBQ Blog, etc), a little banner will pop up saying, “Hey! I see you came from Google (or Facebook, etc). You should subscribe to my RSS feed!”

The idea is to help gain repeat visitors.

There’s also another similar plugin called Referrer Detector that does basically the same thing. I tried both of them out and I like WP Greet Box better.

## Adding a Flickr Badge to WordPress.com

My friend Kelly has a question about adding a Flickr Badge to his hosted WordPress.com blog:

You are the only wordpress guru I know and I have a question.

How do I add a sample of pictures from Flickr on the sidebar of my blog? You do it and a few other people have done it both based off of wordpress.com like I am and independently hosted like you. Yours is the coolest, but I understand if I can’t do that with wordpress.com

What do you know guru?

Well,

You can’t use the same badge that I do because you need JavaScript and WordPress.com doesn’t allow JavaScript (it’s a security issue). However, there is a solution. Log into your WordPress dashboard and go to Appearance > Widgets. Toward the bottom under “Available Widgets”, there should be a Flickr widget. Add it.

Scroll back up the page and under “Current Widgets” You should the Flickr widget. Click “Edit” and follow the instructions. Then click “Done” and “Save Changes.”

## Opening the New Office Document Formats

Several months ago, I received a question about opening up an excel file:

why can’t i open this attachment?

is it an excel file? my mac doesn’t recognize it?

The attached file had a .xlsx extension and that was the giveaway.

When Microsoft introduced Office 2007 (and 2008 for the Mac), they revamped the formats for all of the Microsoft Office file types. To differentiate the new file types, they added an ‘x’ to the format. So anything that ends in ‘x’ (.docx, pptx, xlsx, etc) were created by the new version of Office.

Microsoft has released a knowledge base article about it: How to use earlier versions of Excel, PowerPoint, and Word to open and save files from 2007 Office programs.

They have also released a compatibility fix, at least for Windows-based machines: Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats

Update: You can also use this free online conversion utility: Zamzar

## Gmail Notifier and HTTPS

If you A) Use Gmail; B) User Gmail Notifier; C) Use Windows; and D) have your GMail preferences set to always use HTTPS:

Here is the official patch from the Gods (i.e. Google) themselves to make your Gmail Notifier work again:

This concludes the Public Service Announcement.

## Transfer Contacts from/to Microsoft Outlook

A very good friend of mine wanted to know how to transfer contacts he kept in Outlook from one computer to another. Another thought is that you can export as a Comma Separated Values (Windows) file instead of a Personal Folder File (.pst) . You can then open the file up in Excel and delete the rows Bob doesn’t need/want. Save as a CSV again and Bob can then import that. Note: I created this walk-through based on Microsoft Outlook 2003. However, this method should also work for other versions of Outlook as well (excluding Outlook Web Access).

Alice:

1. Click File> Import and Export…
2. Select Export to a file and then click Next >
3. Select Personal Folder File (.pst) and then click Next >
4. Select the Contacts folder and then click Next >
5. Click Browse… and select the location where you want to save the file (I would suggest the desktop) and click OK.
6. Set the options as you see fit, then click Finish.
7. A window called Create Microsoft Personal Folders will come up. You can just click OK.
8. Transfer file to Bob.

Bob:

1. After receiving file from Alice, click File> Import and Export…
2. Select Import from another program or file and click Next >
3. Select Personal Folder File (.pst) and then click Next >
4. Click Browse… and select the file that Jeff gave you and click OK.
5. Set the options as you see fit for importing regarding duplicates, then click Next >.
6. Select the Contacts folder and click Finish.
7. You may get an warning mentioning something about Unicode. You can disregard this warning and click OK.

Updated 12/19/2008: Please note: I actually don’t use Outlook 2007 (well, I don’t use any version of Outlook), so I can’t really help many of you. I do read every comment posted and if I know the answer, I’ll post it. You’re still welcome to post here and other may be able to help you, otherwise I’d suggest you call Microsoft for more support. If, by some miracle, this page is helpful to you, please consider making a donation to my coffee break fund.

Updated 8/5/2009: Please only send me an email if you are intent on hiring my services to help you.