Voicemail and Email
Mary and I are both now blogging periodically on the RebelVox site. Here is my first entry, describing some of the limitations of how voicemail works.
Jim on December 22nd 2008 in RebelVox, Technologies
Mary and I are both now blogging periodically on the RebelVox site. Here is my first entry, describing some of the limitations of how voicemail works.
Jim on December 22nd 2008 in RebelVox, Technologies
Back to a theme of problem solving. In this case – the interesting part is the problem – not how I found it…
I was in college, working with ‘Real Hessenberg Matrices’ – which are generally sparse matrices. So it was reasonable to read in the values from punched cards. As I recall, some of them were 500×500.
I wrote a bunch of code to calculate eigenvalues (the real task was comparing different algorithms – optimized an not with various compilers, and counting instructions, to evaluate what order things really were, and at what point the size was overwhelmed by the order.) The program would work – and then not work. And it failed in the ugliest way imaginable.
The problem turned out to be in the routine (which I was given by my advisor) to load the sparse matrices.
The values came in four to a card (yes – punched cards). The Read statement that read them was something like:
READ (5) i1, j1, x(i1,j1), i2, j2, x(i2, j2), i3, j3, x(i3, j3), i4, j4, x(i4, j4)
5 FORMAT (i2, i2, f7.2, i2, i2, f7.2, i2, i2, f7.2, i2, i2, f7.2))
This said (cleverly) read in the coordinates, and then the value, for four elements of the matrix. So a typical card looked like:
01 01 12345.22 01 07 12346.00 99 99 12344.11 50 50 12341.12
This loaded X(1,1), X(1,7), x(99,99), x(50,50)
It drove me crazy for way too long. Turned out that there were not a multiple of four elements in the sparse matrix. The last card only had two sets of values on it:
01 01 12345.22 01 07 12346.0
Cleverly, the READ statement put the value 0.0 at location 0, 0 of the NxN matrix. That location was somewhere in my code… It would work for awhile – and would work on any matrix with a multiple of four data elements.
The fix was trivial (because my thesis was almost done and I was tired of school). I replaced the last data card (above) with:
01 01 12345.22 01 07 12346.0 01 07 12346.0 01 07 12346.0
Yes – repeating the last value two times…
Next installment – the infinite loop that ate my entire budget of $150 of computer time at the UCSF data center.
Jim on December 12th 2008 in Problem Solving, Technologies
Amazon SimpleDB is now in beta. This web service is designed to let you store relatively small amounts of data reliably, and inexpensively. By relatively small – I am picturing what you might call meta data and business data for an application. That application might also might have some large amount of data in the form of images, media, or some other large text or binary component. That might be better stored in something like Amazon S3.
Jim on December 19th 2007 in Technologies
Periodically I notice how many catalogs I receive in the mail. Recently I have had a weeks worth of mail forwarded to me at a time – and the stack of catalogs that I promptly throw in the recycling bin was staggering.
I found Catalog Choice. This web site let\’s you register your address(es), and names of recepients of catalogs. Then you can choose catalogs, choose the appropriate addresses and names, with the customer id. Catalog Choice will contact the sender and cancel the catalogs. They say it may take as much as 10 weeks – but if this works, it will be a huge savings in trees. So far, in three weeks of going though my mail and registering catalogs, I have requested that I be removed from 30 (count them) catalog lists. I had no idea the number would be that high. I wish I had done this ten weeks ago.
Jim on November 12th 2007 in Companies, Technologies
This is a project that we have had an eye on for awhile: One Laptop Per Child. Their original goal was to create a computer that would cost under $100. But the real goal is summed up in this part of their mission statement:
OLPC is a non-profit organization providing a means to an end—an end that sees children in even the most remote regions of the globe being given the opportunity to tap into their own potential, to be exposed to a whole world of ideas, and to contribute to a more productive and saner world community.
So the computer is just a tool in this effort.
There is a special promotion starting on November 12th – their Give One, Get One program. For $400, you get one XO laptop, and donate one to a child in the developing world. You also receive a $200 tax deduction. And – yet – there’s more (from the letter we received from them):
Additionally, T-Mobile is offering donors one year of complimentary access to T-Mobile HotSpot locations throughout the United States, which can be used from any Wi-Fi-capable device, including the XO laptop.
It is worth getting one (perhaps to give to your child or grandchild) just to open your mind up to what it makes possible:
Mesh networks
Incredible power consumtion
Cool power generation devices
Python, Logo
An Rss reader
A Wiki
The capabilities are incredible – spend some time on the site – and then imagine what you can do with yours – and imagine what a child in the developing world can do with theirs. Maybe you need to buy two and give two…
[Update 12 November 2007]
Bob Zurek has also commented on this program.
Jim on November 9th 2007 in Companies, Technologies
Brady Forrest noted today that Amazon has published an SLA for their S3 Service.
In particular it establishes a target of 99.9% uptime.
This is progress – but the SLA does reference section 7.1 of the Amazon Web Services™ Customer Agreement. And this includes the following clause: “your access to and use of the Services may be suspended for the duration of any unanticipated or unscheduled downtime or unavailability of any portion or all of the Services for any reason, including as a result of power outages, system failures or other interruptions”.
Jim on October 9th 2007 in Technologies
Yahoo has a web site on Exceptional Performance and Steve Souder, Chief Performance Yahoo! has recently authored a book (O’Reilly) called High Performance Web Sites.
Yahoo also makes available a tool, YSlow, that helps you to assess how you measure up against the Yahoo guidelines.
The advice is clearly focused on sites like Yahoo – and as a number of blogs have suggested, you need to take the advice with a grain of salt. But it is a good starting list – especially if you look at some of the follow on blog entries (many of which are referenced from the Yahoo site).
Phil Haack’s blog describes his experience using Coral Distribution Network (it slowed down his site).
Jeff Atwood’s blog entry in Coding Horror is called YSlow: Yahoo’s Problems Are Not Your Problems.
Look especially at the follow on discussions on Jeff Atwood’s blog.
I now live in two places – one with a 40 megabit connection, the other is much slower (and I am now in my car – and seeing about 800 kbps). It is worth making sure that your engineers are not always running on the the high speed connection – with the servers next door. Sometimes performance problems are masked by really high speed links, or small development databases. You need to simulate the real world when you are evaluating your system. And it may be worth simulating something even worse than the real world. Several years ago, I was running an application that was developed with a development environment. I was trying it on a dial-up line (remember those), and noticed that the application always repainted the screen twice. It was a serious bug in the tool that no one had ever noticed – because on high speed networks, you couldn’t see the repaint.
Use other people’s advice (with a grain of salt), and do your own ‘real world’ evaluations.
Update:
A couple of my colleagues pointed me at some tools to facilitate load testing:
Update:
The comments keep coming in. There is a post today on O’Reilly Radar pointing to A Great Performance and Operations Blog called High Scalability by Todd Hoff. Lot’s of posts about Amazon, Twitter, Hadoop, etc.
And my friend and former colleague Jeff Dao comments:
Some of the suggestions I know of, and some I don’t – like get servers closer to the users, and order you load scripts matter, respectively. Bottom line is, distance and data size matter.
When thinking about this, I always think of water delivery system – pipe size, water volume and water pressure (bandwidth, data size and latency).
Jim on September 17th 2007 in Companies, Technologies, Uncategorized
I was recently searching on Google Books (I wrote about Google Books earlier this week), and found that they now have information on the books that Mary and I have written and contributed to. But I was surprised that I couldn’t find a reference to The Microsoft SQL Server Survival Guide. At least I couldn’t looking it up by author name (Panttaja). I did find that there was a book by that title authored by Jim and Mary Panttajja. But that’s my book.
So, Google has meta data that is incorrect. No problem, I contacted Google to help them correct this information (they can actually read the information off the cover image if they would like).
It appears that they are ‘unable’ to correct data that is known by them to be in error. I received the following response from Greg:
Hello,
Thank you for your recent message. I have noted your book issue regarding
“The Microsoft SQL Server Survival Guide.” It appears that this title is
one of many books that we recently added to the Google Book Search index
in a metadata-only view. This means that users will only be searching
title, author, subject and copyright information, and in some cases,
tables of contents and/or a book summary. In effect, this is like seeing a
library card catalog online.At this time we are unable to edit the information for books in
metadata-only view, as we receive this information from third-party
providers. We apologize for this inconvenience. However, I encourage you
to check back with us periodically, as we continue to develop new features
and functionalities.Sincerely,
Greg
The Google Book Search Team
As Greg points out, it is like viewing a library card catalog online. The difference is that in this case the information is wrong. And Google is unable, and unwilling to provide correct information. Oh yes, and to be clear, it isn’t their fault because it comes from a third party.
This naively appears to me to be at odds with the Google mission statement: “Google’s mission is to organize the world’s information and make it univerally accessible and useful.” Apparently inaccurate is ok – and too troublesome to correct.
I would expect Google to be at the forefront of maintaining accurate information. I would expect them to provide mechanisms to correct mistakes. Even though it comes from a third party – it is now their data. I am disappointed that they seem content to offer data that they know to be erroneous.
Jim on September 13th 2007 in Companies, Technologies
We had a number of errands to run over the weekend – getting a few things for the office, and a few things for our apartment. Before heading out in the car Mary used Google Maps to set up a multi-stop trip, and then email them to the two of us. Here is the map:
If you click the map (or the view larger map link), it takes you to Google, and you can see the turn by turn directions.
What is really cool is that when we clicked on the link in the email we sent ourselves on the iPhone, it brings up the Map application. Now you can step through the directions and it shows a map of each ‘turn’, and gives you the instructions for the turn.
Jim on September 11th 2007 in iPhone, Technologies
I have written on another blog about Google Books (in a post on Google Notebooks). Now Google has announced that you can identify a collection of books in your own library ( Google Books).
You can search against only your own set of books (which I do in my genealogy research), or you can do a more global search. You could also identify a set of books that are of interest to you (I have recorded the books I have co-written, or that I wrote a chapter of in my library). Those books may not be searchable (if their copyright is current – or they haven’t been scanned by Google). Here is a link to my library. I noticed while searching that Google has my name misspelled for one of my books.
You can also write reviews (you can view that as notes to yourself), and identify tags (Google calls them labels).
See my posting (referenced above) on Google Notebooks for examples of putting samples from books in to Google Notebooks. Sometimes you are on a roll searching – finding great stuff. Taking snippets as you find them and inserting them in to your notebooks means you can be sure that you won’t misplace the references.
Jim on September 9th 2007 in Technologies