me - jeremyherbert.nethttp://jeremyherbert.netJeremy's website. Warning: contains excessive amounts of awesome.Fri, 30 Jul 2010 10:52:04 GMTPyRSS2Gen-1.0.0http://blogs.law.harvard.edu/tech/rssaustralia has a female prime ministerhttp://jeremyherbert.net/post/by/id/92<p>sup <a href="http://en.wikipedia.org/wiki/J%C3%B3hanna_Sigur%C3%B0ard%C3%B3ttir">iceland</a>. (more info <a href="http://en.wikipedia.org/wiki/Australian_Labor_Party_leadership_election,_2010">here</a>)</p>http://jeremyherbert.net/post/by/id/92Thu, 24 Jun 2010 15:42:54 GMTfun facts about the zimbabwean dollarhttp://jeremyherbert.net/post/by/id/91<p>In June 2008, the inflation rate was 6.5 quindecillion novemdecillion percent.</p> <p>In July 2008, a single chicken egg was worth ZW$50 billion.</p> <p>When the currency was suspended at the end of 2009, US$1 was worth ZW$669 000 000 000 (also: this was the third dollar, with the ratio of first:second being 1 000:1 and the ratio of second to third being 1 000 000 000:1).</p> <p>The company which provided the Zimbabwe Reserve Bank with the software to print banknotes was required by the EU Union to suspend all licences so that no higher denomination notes could be printed.</p> <p>As of 1/1/09, an original Zimbabwean dollar was worth US$10<sup>-31</sup></p>http://jeremyherbert.net/post/by/id/91Thu, 17 Jun 2010 12:28:11 GMTvideo of a dendritic cell engulfing conidiahttp://jeremyherbert.net/post/by/id/90<div align="center"><video id="ogg_player_2_obj" width="300" height="289" src="http://upload.wikimedia.org/wikipedia/commons/c/ce/S6-Dendritic_Cells_with_Conidia_in_Collagen.ogg" controls=""></video></div> <p>This is an awesome video of a dendritic cell performing phagocytosis on a conidia. Maybe I'm just a little weird (well, almost certainly), I just think it is awesome to see that such tiny things can actually have independent function. A quick explanation:</p> <p>Dendritic cells are important in the innate (primary) immune system. They basically grab bits of antigens (things that should not be in the body) and present them to the rest of the immune system so that an appropriate response can occur.</p> <p>Source:&nbsp;<a href="http://en.wikipedia.org/wiki/File:S6-Dendritic_Cells_with_Conidia_in_Collagen.ogg">Wikipedia</a><br />Original video authors: Judith Behnsen, Priyanka Narang, Mike Hasenberg, Frank Gunzer, Ursula Bilitewski, Nina Klippel, Manfred Rohde, Matthias Brock, Axel A. Brakhage, Matthias Gunzer</p> <p>(can't see the video? try using a <a href="http://www.google.com/chrome/intl/en/landing_chrome.html?hl=en">real</a> <a href="http://www.mozilla.com/en-US/firefox/firefox.html">browser</a>)</p>http://jeremyherbert.net/post/by/id/90Sat, 12 Jun 2010 23:03:14 GMTrunning is good for you!http://jeremyherbert.net/post/by/id/89<p>It's nice to see some people looking at the <a href="http://ecosystemscience.blogspot.com/2010/06/why-is-running-good-for-you.html">hard science</a> instead of saying "it didn't work for my cousin/brother/sister/unkle so I won't try at all".</p> <p>(looks like the linked page doesn't exist anymore, so here is the <a href="http://www.ncbi.nlm.nih.gov/pubmed/20505214">proper source</a>.)</p>http://jeremyherbert.net/post/by/id/89Thu, 03 Jun 2010 13:41:53 GMTdocument publishing (and an avr tutorial)http://jeremyherbert.net/post/by/id/88<p>I have been looking for a decent web document publishing system for a while. I toyed with the idea of writing my own at some stage, but I have recently discovered <a href="http://www.instiki.org/show/HomePage">instiki</a>, a great rails sort-of-wiki. I have installed it (you can check it out at <a href="http://docs.jeremyherbert.net">docs.jeremyherbert.net</a>) on my server and begun to tackle my <a href="http://docs.jeremyherbert.net/avrsfromscratch/published/HomePage">AVR Guide</a>, something that I have wanted to do for quite some time. I mean, why should arduino users get all the fun ?</p>http://jeremyherbert.net/post/by/id/88Thu, 20 May 2010 20:08:32 GMTan important rule for programming USB HID descriptorshttp://jeremyherbert.net/post/by/id/87<p>It is very important to remember that when building USB HID device descriptors, you need to make sure the number of bits being sent is divisble by 8. For example, A descriptor for a gamepad with 2 bits for each axis and 4 buttons might look like this:</p> <pre>0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x05, // USAGE (Game Pad) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0x01, // USAGE (Pointer) 0xa1, 0x00, // COLLECTION (Physical) 0x09, 0x30, // USAGE (X) 0x09, 0x31, // USAGE (Y) 0x15, 0xff, // LOGICAL_MINIMUM (-1) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x02, // REPORT_COUNT (2) 0x75, 0x02, // REPORT_SIZE (2) ; two bytes to represent each axis 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0, // END_COLLECTION 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x04, // USAGE_MAXIMUM (Button 4) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x04, // REPORT_COUNT (4) ; 4 buttons 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0 // END_COLLECTION</pre> <p>Hopefully you can see the part up the top specifies the joypad and the bottom specifies the buttons. So if we have 2 axis bits and 4 button bits, we have a total of 8 bits (which is perfect!). However, what if we want to use 5 buttons? If you simply change the USAGE_MAXIMUM and REPORT_COUNT parameters, then we are sending 2*2+5*1 = 9 bits! To fix this, we need to add some padding bits to bring our total number of bits up to 16 (in this case, we want to add 7 more). A descriptor with this fix would look something like this:</p> <pre>0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x05, // USAGE (Game Pad) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0x01, // USAGE (Pointer) 0xa1, 0x00, // COLLECTION (Physical) 0x09, 0x30, // USAGE (X) 0x09, 0x31, // USAGE (Y) 0x15, 0xff, // LOGICAL_MINIMUM (-1) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x02, // REPORT_COUNT (2) 0x75, 0x02, // REPORT_SIZE (2) ; two bytes to represent each axis 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0, // END_COLLECTION 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x05, // USAGE_MAXIMUM (Button 5) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x05, // REPORT_COUNT (5) ; 5 buttons 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x95, 0x07, // REPORT_COUNT (7) ; to pad out the bits into a number divisible by 8 0x81, 0x03, // INPUT (Const,Var,Abs) 0xc0 // END_COLLECTION </pre>http://jeremyherbert.net/post/by/id/87Sat, 15 May 2010 22:58:45 GMTnote to selfhttp://jeremyherbert.net/post/by/id/86<p>When playing with a new avr, always clear the CKDIV8 fuse because you will try to use uart and subsequently waste hours trying to work out what is wrong with your circuit. If your serial output looks anything like this (hex):</p> <pre>00 80 00 00 80 80 80 00 80 00 00 00 80</pre> <p>then this is your problem.</p>http://jeremyherbert.net/post/by/id/86Tue, 27 Apr 2010 10:32:14 GMTlessons learned wiring a planar el320.240.36 hb to the usb13700http://jeremyherbert.net/post/by/id/85<p> <div> <ul> <li>The display has a 2mm pitch locking connector. I sourced the IDC header from <a href="http://au.farnell.com/samtec/tcsd-10-01-n/socket-idc-2mm-20way/dp/1753859?Ntt=1753859">here</a>.</li> <li>All 2mm pitch connectors use 1mm pitch IDC ribbon. Grab some <a href="http://au.farnell.com/amphenol-spectra-strip/191-2815-010/ribbon-cable-1mm-10way-per-m/dp/1440148?Ntt=1440148">here</a>.</li> <li>The USB13700 uses a Molex KK 2695 connector for power. Housing <a href="http://au.farnell.com/molex/22-01-3047/housing-female-4way/dp/1462831">here</a>, crimping terminals <a href="http://au.farnell.com/molex/08-52-0123/terminal-solderless-22awg/dp/1462631">here</a>.</li> </ul> <div>more to come!</div> </div> </p>http://jeremyherbert.net/post/by/id/85Sat, 24 Apr 2010 20:53:23 GMToh, nicehttp://jeremyherbert.net/post/by/id/84<p>Look what just found its way across my desk: <a href="http://jeremyherbert.net/static/320-240-36hb-front.jpg">front</a>, <a href="http://jeremyherbert.net/static/320-240-36hb-back.jpg">back</a>.</p>http://jeremyherbert.net/post/by/id/84Mon, 19 Apr 2010 18:59:30 GMTclimate changehttp://jeremyherbert.net/post/by/id/83<p>These <a href="http://apple.slashdot.org/comments.pl?sid=1565654&amp;cid=31302828">two</a> <a href="http://apple.slashdot.org/comments.pl?sid=1565654&amp;cid=31303006">guys</a> pretty well sum up how I feel about it. I'm glad there are still sane people out there.</p> <p>Reproduced for historical purposes:</p> <div class="commentBody"> <p>comment by <a href="http://slashdot.org/~SuperKendall"><strong>SuperKendall</strong></a>:</p> <div style="padding: 20px; border: 1px dotted black">One one side you have people who ignore scientific evidence for financial gain.<br /><br />On the other side you have... those who ignore scientific evidence for financial gain.<br /><br />Science got way lost in the middle of this whole debate. Indeed the very term "debate" is laughable, as it is currently a which hunt on both sides.<br /><br />And you, sir, are not helping by demonizing those who think differently than you.<br /></div> <p>reply by <a href="http://slashdot.org/~FooAtWFU"><strong>FooAtWFU</strong></a>:</p> <div style="padding: 20px; border: 1px dotted black">I want to give you a hug, man. (But I won't. I respect your personal space.)<br /><br />I'm one of those guys who suspects that global warming is probably a real phenomenon, but that its coverage in the media is mostly-fake, its coverage in science proper is mildly biased and exxagerated as an institutional matter (cf. 'climategate', overrated as it may be) and the public policy prescriptions that are preached by Al Gore are mostly nonsense. But more importantly, the state of the "debate" is shameful.<br /><br />Do I get to be called a "denialist" too?<br /></div> <p>&nbsp;</p> </div>http://jeremyherbert.net/post/by/id/83Sun, 28 Feb 2010 19:09:49 GMTtoday is an awesome dayhttp://jeremyherbert.net/post/by/id/82<p>I love you <a href="http://www.abc.net.au/news/stories/2010/02/04/2809856.htm">Justice Cowdroy</a>.</p>http://jeremyherbert.net/post/by/id/82Thu, 04 Feb 2010 10:37:21 GMTunbranded led matrix experimentshttp://jeremyherbert.net/post/by/id/81<p>While in Singapore I picked up an unbranded 16x16 green LED matrix with P-5162 silk screened on the PCB. It has 3x 2mm pitch pin header connectors, each with 16 pins labelled G1-G16, C1-C16, R1-R16.</p> <p>From my quick experimenting, it looks like all of the G1-G16 lines are not interconnected but only one needs to be grounded for the whole display to work. The C pins control the column selection (active high) and the R pins control the rows (active low). Also, it appears that the display does not have inline resistors, so if you hook it up without a resistor you will almost certainly blow the LEDs.</p> <p>I couldn't find any further information on the net about this, so hopefully this will help someone who comes across these displays at a later date.</p>http://jeremyherbert.net/post/by/id/81Mon, 28 Dec 2009 14:12:09 GMTpython is awesomehttp://jeremyherbert.net/post/by/id/80<p>Adding pagination to this site was a piece of cake!</p>http://jeremyherbert.net/post/by/id/80Sun, 18 Oct 2009 18:13:00 GMTgot google wavehttp://jeremyherbert.net/post/by/id/75<p>Come wave at me: jeremy.006 (at) gmail (dot) com</p> <p>Thanks plex!</p>http://jeremyherbert.net/post/by/id/75Wed, 07 Oct 2009 14:48:19 GMTto those who still believe the plane will not flyhttp://jeremyherbert.net/post/by/id/74<p>Yesterday, I proved that <a href="http://jeremyherbert.net/73">friction does not depend on velocity</a>. If that hasn't changed you from a 'no-fly', then hopefully this post will be the final nail in that theory's coffin. I will hopefully cover all of the interpretations of the problem. A quick explanation before we start: Force diagrams.</p> <p>Force diagrams are used by physicists, mathematicians and engineers to determine the total force on an object (although we call them vector diagrams). They are extremely simple to understand but if you cannot remember how to read them or have never seen them before, here is an example:</p> <p>&nbsp;</p> <p><img src="http://jeremyherbert.net/static/forces/force_diagram_1.png" alt="" /></p> <p>&nbsp;</p> <p>In a force diagram, the two important things we need to look at are the direction of the arrow and the length of the arrow. So in this example we have force 1 going right and force 2 going left. This is the direction in which the force acts on the object. The length of the arrow represents how strong the force is; looking at the example, we can see that both forces are equally strong (ignoring direction for the moment). So if we arrange them side by side, we get something like this:</p> <p>&nbsp;</p> <p><img src="http://jeremyherbert.net/static/forces/force_diagram_2.png" alt="" /></p> <p>&nbsp;</p> <p>In this case, we say that the forces "cancel out" or in more mathematical terms, that the <em>net force</em> (total force) is 0. With a net force of 0, we know that there will be no force on the object and it will not accelerate in any direction. It is important to note that the direction was responsible for this cancelling; if both forces were pointing in the same direction, we would have a very large net force!</p> <p><strong>Statement of the problem</strong>: If we place a plane on an infinitely powerful treadmill (which spins opposite to the takeoff direction) and match the speed of the aircraft during takeoff with the speed of the treadmill, will the aeroplane take off?</p> <p><strong>Interpretation 1</strong>: We match the takeoff velocity of the craft to the speed of the treadmill.</p> <p><strong>Why it will still fly</strong>: As we proved yesterday, the amount of friction does not depend on velocity. So let's take a look at a force diagram for this scenario:</p> <p>&nbsp;</p> <p><img src="http://jeremyherbert.net/static/forces/force_diagram_3.png" alt="" /></p> <p>&nbsp;</p> <p>As we can see in this force diagram, the force generated by the aircraft will overcome friction from the treadmill and air resistance. If we cannot overcome the friction (a longer red line), the pilot can just increase the power of the engine (make the blue arrow longer) and then the difference between the forces will become even greater, causing the aircraft to speed up faster. This is because <span style="text-decoration: underline;"><em><strong>the jet engine/propeller generates thrust with the air, not with the wheels</strong></em></span>.</p> <p><strong>Interpretation 2</strong>: We spin the treadmill so that the relative velocity of the plane to the ground is 0. To put this in a less wordy way: we spin the treadmill so that if you were standing next to the treadmill, the plane would appear not to move.</p> <p><strong>Why it will still fly</strong>: It won't. "What?!", you say; didn't I tell you that the plane will always fly?</p> <p>The problem with this interpretation is that it can never occur. Impossible. Not with the strongest of treadmills and the most ideal of components. Remember the only two forces that can stop the plane taking off are friction and air resistance. We proved yesterday that <a href="http://jeremyherbert.net/post/by/id/73">friction is constant</a> because vertical and horizontal forces are independent and it should be clear that the treadmill cannot affect the air resistance of the plane. To keep an object at a constant velocity (0m/s), the net force on the object must be 0. So to keep the plane at a relative velocity of 0, the force diagram will have to look like this:</p> <p>&nbsp;</p> <p><img src="http://jeremyherbert.net/static/forces/force_diagram_5.png" alt="" /></p> <p>&nbsp;</p> <p>As you can see in the diagram, the grey arrow represents a force that is stopping the plane from taking off. The problem here is that <strong><em><span style="text-decoration: underline;">there is no possible way that the treadmill can generate the grey force</span></em></strong>. No argument about it; for the plane to stay still, there needs to be some magical force coming out of nowhere which is stopping it from moving. Apologies to those who believe in magic, <span style="text-decoration: underline;"><em><strong>but the treadmill cannot, in any way, shape or form force the plane to remain stationary</strong></em></span>.</p> <p>The trick is that when the problem is described to you, this is often implied as an assumption. When you go to solve the problem your brain shortcuts and automatically takes that assumption as valid, which essentially leaves you to solve a problem that has no solution.</p> <p>Therefore, <span style="text-decoration: underline;"><em><strong>under all possible, realistic conditions the plane will take off from the treadmill</strong></em></span>.</p> <p><strong>One last note</strong>: There is actually one case in which the relative velocity (with respect to the ground) of the plane will be zero. This is when the force generated by the engine and propeller is exactly equal to the force stopping it from moving. You should be an expert at force diagrams by now, so here is one more:</p> <p>&nbsp;</p> <p><img src="http://jeremyherbert.net/static/forces/force_diagram_4.png" alt="" /></p> <p>&nbsp;</p> <p>If these conditions are met, the plane will indeed sit still. However, the only way a plane could ever do this is if the pilot was intentionally driving the plane slowly. If the engine is only ever powerful enough to match the retarding force it wouldn't take off on the treadmill, but it also <strong><em><span style="text-decoration: underline;">would not take off on a regular runway</span></em></strong>! The friction on the treadmill will be very similar to that of the runway, so your plane isn't actually a plane!</p>http://jeremyherbert.net/post/by/id/74Sun, 04 Oct 2009 15:56:26 GMTyes, that airplane treadmill problem againhttp://jeremyherbert.net/post/by/id/73<p>and yes, it will <em>absolutely</em> take off.</p> <p>The main confusion in this problem seems to be the idea of friction, so let's take a look at it. The formula friction (taken from wiki) is as follows:</p> <p>f = &mu;<sub>s</sub>F<sub>n</sub></p> <p>where f is the frictional force, &mu;<sub>s</sub> is a constant relating to the surfaces (remember, contstant means that it <strong>never</strong> changes) and F<sub>n</sub> is the normal force from the surface. Now, you might remember from high school physics that the normal force is perpendicular to the surface, so on the flat ground or on a treadmill F<sub>n</sub> will be completely vertical due to gravity. Please excuse the following maths, although it is very simple.</p> <p>Let's assume our plane is 500kg (in the range of ultralight aircraft) and &mu;<sub>s</sub> = 0.5 (I just randomly picked this number, you should see in a minute that this doesn't matter). If we assume for the sake of simplicity that the only component influencing the normal force is gravity, we can work out the friction for a plane travelling at 1m/s:</p> <p>&mu;<sub>s</sub> = 0.5</p> <p>F<sub>n</sub> = m * g = 500 * 9.8 = 4 900N</p> <p>therefore,</p> <p>f = 0.5 * 500 * 9.8 = 2450N</p> <p>So we have 2450N of force going against the direction the engine is trying to push the plane. Now let's calculate it if the plane is moving at 2m/s:</p> <p>&mu;<sub>s</sub> = 0.5</p> <p>F<sub>n</sub> = m * g = 500 * 9.8 = 4 900N</p> <p>therefore,</p> <p>f = 0.5 * 500 * 9.8 = 2450N</p> <p>And 3m/s:</p> <p>f = 0.5 * 500 * 9.8 = 2450N</p> <p>4m/s:</p> <p>f = 0.5 * 500 * 9.8 = 2450N</p> <p>even &infin;m/s</p> <p>f = 0.5 * 500 * 9.8 = 2450N</p> <p>In terms of kinetics, it does not matter if the plane is moving at 10m/s, the treadmill is moving at 10m/s or the treadmill and plane are moving each at 5m/s; the amount of friction will be exactly the same. Read this next bit very carefully: <em><strong><span style="text-decoration: underline;">the frictional force for a flat surface does not depend on velocity</span></strong></em>. So if we have a plane whose engine can only excert exactly 2450N (plus air resistance) given any environment and any inputs then, and only then, we will have a stationary plane that will not take off.</p> <p>However, you might be surprised when you take the plane off the treadmill and it doesn't lift off on a regular runway! This is because, similarly to the treadmill, the frictional force from the ground will never let the plane reach its take off velocity. So this hypothetical plane is actually not a plane; it is simply a stationary or slowly moving lump of metal.</p> <p>If the plane engine and/or propeller has the capability of overcoming the friction in the wheels and the air resistance, then the plane will move in a direction opposite to the treadmill spin and <em>it will take off</em>. Obviously the air resistance of the plane does not depend on the speed of the treadmill and as we proved above, the friction on the wheels is not dependent on velocity. To put this another way: because vertical and horizontal forces are independent (they cannot affect eachother) <span style="text-decoration: underline;"><em><strong>the only impeding force that the runway [or treadmill] can exert on the plane is friction, which is always constant</strong></em></span>.</p> <p>So, any plane that is capable of takeoff on a regular runway will be capable of takeoff on a treadmill. QED.</p>http://jeremyherbert.net/post/by/id/73Sun, 04 Oct 2009 01:43:43 GMTups go!http://jeremyherbert.net/post/by/id/72<p>Check this out for size (yes, my NAS is named Boris):</p> <pre>Oct 2 19:56:18 Boris upsd[1509]: Connected to UPS [pw3105]: bcmxcp_usb-auto <br />Oct 2 19:56:18 Boris upsd[1510]: Startup successful <br />Oct 2 19:56:18 Boris upsmon[1512]: Startup successful <br />Oct 2 19:56:18 Boris upsd[1510]: Client monuser@127.0.0.1 logged into UPS [pw3105]</pre> <p>My powerware 3105 UPS now works under ReadyNAS after a bit of source code modification. Thank you GPL.</p>http://jeremyherbert.net/post/by/id/72Fri, 02 Oct 2009 23:56:50 GMTpowerware 3105 ups is not supported on readynashttp://jeremyherbert.net/post/by/id/71<p>Looks like I have some compiling to do.</p>http://jeremyherbert.net/post/by/id/71Fri, 02 Oct 2009 12:00:45 GMTlessons learned debugging a networkhttp://jeremyherbert.net/post/by/id/70<ul> <li>Even if you clear the ARP table, it is not clear. Even if you clear it again, it is not clear. Change IPs!</li> <li><em>tcpdump</em> is hands down the greatest networking tool ever created. Second is <em>netcat</em>.</li> <li>You will never work out why that router was randomly dropping pings. Stop trying.</li> </ul>http://jeremyherbert.net/post/by/id/70Sat, 05 Sep 2009 22:01:59 GMT3 and iPhones: not so good stuffhttp://jeremyherbert.net/post/by/id/69<p>So on Tuesday I finally took the plunge and ordered an iphone. They are normally nowhere to be found but thanks to the friendly tipsters at the <a href="http://forums.whirlpool.net.au/forum/128?g=176">whirlpool forums</a> I was able to snag one. Or so I thought.</p> <p>When I was ordering over the phone, the salesperson told me it would arrive on Thursday. Now, I have had a little experience with postal services in Australia and I have never received a package in such a short span of time. After I asked her to confirm that, I asked her what I should do if it didn't arrive on Thursday; I got the whole "It will absolutely arrive on Thursday" talk.</p> <p>So along comes thursday morning and figured I would ring up 3 just to make sure that the package was still on track. The guy on the phone told me that it was, so I headed off to uni.</p> <p>Now for ethical reasons mobile phones are not allowed to be used inside biology labs (or the ones I'm allowed in anyway) so I couldn't check my phone until about 1:30pm. When I left the lab, I had a text message on my phone saying something along the lines of "we apologize but your delivery will be delayed until after the 27th". Fantastic.</p> <p>I called up 3 that afternoon and asked what on earth was happening. The only explanation I got was "there is a delay on our end" and that it will absolutely arrive Friday. Where have I heard that before?</p> <p>Well, it is early evening on Friday and I have not receieved any iPhone, nor any more information. I rung up three and got the delay speech again and the absolutely next week speech.</p> <p>3, I have no issues with your radio network (in fact it is rather good) but you really dropped the ball on this one. The waiting is not the issue, it is the fact that you are instructing your sales assistants to promise delivery times that are simply not feasable. Just overestimate the date and people will be pleasantly surprised when it arrives early.</p>http://jeremyherbert.net/post/by/id/69Fri, 28 Aug 2009 21:17:07 GMT