January 2009 Archives
Boston.com has more images of Earth taken from satellites. They are amazing:Tibet in the dead of winter, phytoplankton blooms in the Black Sea, the Amazon River, Mount St. Helens 28 years after the explosion.
GigaPan has huge high resolution panoramas on its website that are zoomable down to very low detail. In this image of the Obama inauguration, you can see faces pretty clearly up to 1000 meters from the camera.
TinEye comes highly recommended as a website for tracking down copies of web images. There is also a Firefox addin for TinEye to make looking up images that much easier. Via Kelly's Kool Tools.
SQLServerPedia has become the one-stop shopping location for all useful information on SQL Server: sample code, best practices, architecture, configuration, etc.
Recently, I moved my site to a new ISP. Normally, this would not involve resubmitting to search engines, but I had to change the URL to include my blog name, so the URLs were all changed. Hence, the resubmission problem.
Submitting to google, yahoo, and a few others was the same, but when I tried ask.com, I realized that the protocol had changed in the past few years. Instead of giving one of the search engines the URL of your site, it has become increasingly common to require that the site have a sitemap file that lists all of the URLs that you wish to have submitted. Since I could not find code to do this, I rolled my own.
- Download sitemap.py
- Based on protocol specification here
- Directory walking classes adapted from recipe at ActiveState.com
- The End of the Financial World as We Know It
- How to Repair a Broken Financial World
- The Spread of the Credit Crisis: View from a Stock Correlation Network
- Who is Going to Bail Out the FED?
- As Funds Leverage Up, Fears of Reckoning Rise
- Don't buy Wall Street's latest con
Here are 15 reminders of how happy talk misled us a decade ago
- Timothy Geithner in 2007
Timothy Geithner, president of the Federal Reserve Bank of New York, said in an interview that the torrent of money flowing into hedge funds has coincided with a troubling erosion in lending practices.
Mr. Geithner, who has been deeply involved in the effort, said in the interview that regulators want to make sure that major U.S. banks and brokerage firms "can comfortably manage" a shock to the system, such as a big hedge-fund failure.
An amazing number of famous and influential people passed in 2008. Here is my list of the ones I found most interesting:
- Clive Barnes
- Sunny von Bulow
- George Carlin
- Arthur C. Clarke
- Michael Crichton
- Dr. Michael DeBakey
- Mark Felt
- Bobby Fischer
- Isaac Hayes
- Jeff Healey
- Jesse Helms
- Charlton Heston
- Sir Edmund Hillary
- Albert Hofmann
- Eartha Kitt
- Harvey Korman
- Yves Saint Laurent
- Heath Ledger
- Bernie Mac
- Dick Martin
- Anthony Minghella
- Robert Mondavi
- Paul Newman
- Bettie Page
- Dr. Randy Pausch
- Harold Pinter
- Sydney Pollack
- Dith Pran
- Tim Russert
- Roy Scheider
- Alexander Solzhenitsyn
- Richard Wright
First, find the search engine submission pages. This is not nearly so obvious as you'd think. Many search engines make it really hard to find their site submission pages. That's why I ended up relying on links to pages similar to Google's submission page:
AOL and a few of the others rely on Yahoo for submission, and the page they link to does not actually allow submission. Ay ay ay.
Going Under: A doctor's downfall, and a profession's struggle with addiction
In December 2003, Brent Cambron gave himself his first injection of morphine. Save for the fact that he was sticking the needle into his own skin, the motion was familiar--almost rote. Over the course of the previous 17 months, as an anesthesia resident at Boston's Beth Israel Deaconess Medical Center, Cambron had given hundreds of injections. He would stick a syringe into a glass ampule of fentanyl or morphine or Dilaudid, pulling up the plunger to draw his dose. Then he'd inject the dose into his patient. If the patient had been in a panic before her surgery, Cambron would watch her drift into a pleasant, happy daze; if the patient had been moaning in pain after surgery, he'd watch the relief spread across her face as the pain went away. It was understandable, perhaps, that Cambron was curious to experience these sensations himself, to feel what his patients felt once the drugs began coursing through their bodies. It could even be considered a clinical experiment of sorts. "I had thought about it for a long time," he later confessed.
So if you are reading this, then you have been successfully redirected to my new website on hostmysite.com. Congratulations!
The whole adventure was not without some complications and extra steps. Partly, it was the change of internet host. In addition, I was changing from Movable Type 4.21 to MT 4.23, from Microsoft IIS to Apache, and from Windows to Linux. All of these factors contributed.
- mt-config.cgi
A lot of the problems flowed from the new mt-config.cgi file. Every Movable Type site has a mt-config.cgi file which describes where the CGI/Perl files can be found, where the generated static HTML files should go, and what the IP/URL of the website is. I was previously using MT under Microsoft IIS, and it allowed certain configuration errors that will haunt me.
MT is designed to allow multiple blogs to share a single domain. Typically, your blog is rooted at http://www.domain.com/blogname/index.html. In my case, I had mine rooted at http://www.domain.com/index.html because I put the MT code and generated files into a directory hierarchy that omitted the blog name. Unfortunately, that is really not possible in a typical Linux installation, as far as I can tell.
Linux sites set up (interpreted, executable) CGI files under /cgi-bin/ and (static, uninterpreted) HTML files under /htdocs/. Thus, you end up with your mt-static directory moved under htdocs and everything else put under cgi-bin.
Everything would still be cool if either:
- I omitted the directory with the blog name (putting everything in the htdocs root) or
- I could find a way to configure mt-config.cgi to redirect to index.html without the blog name.
- Hard-coded iwebthereforeiam.com / missing blog name
Because of the change above, I could not have internal links that omitted the blog name. At a minimum, I had to change all these internal links. All of them used my domain name, so for simplicity, I just replaced the domain name with ../... That will work even if I someday discover a simple way to omit the blog name from URLs.
- Move static HTML/ASP files
Because of laziness, I had placed many files into the root of my configuration. In most cases, it was easier to just put them into a new directory /htdocs/files/. In like fashion, I ended up adding some other directories to the root so that I did not go insane patching my entire site:
- /files/
- /images/
- /projects/
- /sounds/
- /styles/
- Fix Movable Type templates
I have a bunch of CSS and JavaScript packages on my site that have to be added to parts of the MT templates in order to flow through directly:
- google-analytics
- code coloring with prettify.js and prettify.css
- snapshots from snap.com
- blockquote.quote
I would have followed the instructions I posted some months ago for this, but MT 4.23 has removed some templates and added others, so I ended up figuring it out from scratch again. The gist of it is that anywhere that MT generates a head section, I needed to include the CSS and JS files, and anywhere that MT generates a body section, I needed to add an onload setting. The color coding involved adding the CSS and JavaScript inclusions to HTML Head:
<link rel="stylesheet" href="/mt-static/css/prettify.css" type="text/css" /> <script type="text/javascript" src="/mt-static/js/prettify.js"> </script>
and then adding onload="prettyPrint();" to the body element of these templates:
- Search results
- Comment Preview
- Category Entry Listing
- Entry
- Monthly Entry Listing
- Page
Setting up google analytics and snap.com involved making modifications to the bottom of the template Banner Footer. I still have not got blockquote.quote in extra.css working.
- Add banned sites using mt_ipbanlist
I have a huge collection of banned spammers from my previous site. I was not going to let them start spamming my trackbacks again, so I have to insert all these IP addresses into the MySQL table mt_ipbanlist. This will be a bit of a pain. I'll probably write a python script that does the insertions and upload the script to MySQL and let it chew on that for awhile. I imagine that must be how I did it before.
- Rewrite ASP pages
SInce I was under Microsoft IIS for so long, I have old ASP pages that will have to be rewritten, probably in PHP. I'll have to evaluate why they had to be ASP (i.e. interpreted/dynamic ) in the first place.
- Redirect name servers
This was the final step in throwing the switch. Once I did this, web surfers could find my new site with the old domain name. I had to add in an HTML file with a redirect to deal with the absence of the blog name:
<html> <head> <meta HTTP-EQUIV="REFRESH" content="3; url=http://www.iwebthereforeiam.com/iwebthereforeiam/index.html"> </head> <body><p>Redirecting to <a href="http://www.iwebthereforeiam.com/iwebthereforeiam/index.html">new blog location</a> in 3 seconds.</p></body> </html>
- Alert the search engines
Because of the addition of the blog name to the middle of the URL, most all URLs in the search engines are now bad. Sigh. So I have to resubmit my site for spidering.
Update 2009-01-09: Unbelievable. The whole problem with the blockquote.quote style in extra.css was that the file began with a C++-style comment and the entire file was interpreted as if it was commented out. Some sort of Unix versus Windows/LF versus CR-LF issue. Totally resolved by taking out the comment.
These instructions assume you have a Linux account and that you are using Apache as a webserver. Admittedly, they are based on the instructions for Linux installation at Movable Type. Ahem.
Typically, you are going to have a directory structure like in What is the directory structure of my Linux website?:
- htdocs
The htdocs directory is your main web directory. All files placed in this directory are visible in a web browser. When building your website, you want to place your files within this directory. The server knows to look in this directory so you do not need to specify htdocs in your code. When uploading your website through FTP, you will need to change into the htdocs directory on the server.
- cgi-bin
The cgi-bin directory is the one exception for your web files; all cgi scripts must be placed within the cgi-bin directory. Your cgi scripts will not run correctly if placed within the htdocs directory. Separating the cgi-bin and htdocs directories allows us to place proper permissions on the cgi-bin directory without impacting the performance of the htdocs directory.
The not especially intuitive conclusion is that you have to split up your Movable Type installation: put mt-static into /htdocs/ and everything else into /cgi-bin/.
- ftp Movable Type installation to /mt directory.
- Move /mt/mt-static to /htdocs/mt-static.
- Move /mt to /cgi-bin/mt.
- Open http://<your domain>/cgi-bin/mt/mt.cgi in browser and start MT configuration.
I am missing IBD 100 (Investors Business Daily) data for the following dates:
2008-10-06- 2008-09-29
2008-06-232008-05-192008-03-172007-09-102006-12-18
If you have any of these dates, I'd appreciate getting it. Thanks.
- Steve Smith's favorite developer books
Recommendations for developers.
- CodeBetter.com
In response to a question of how best to manage source for vendor libraries using SVN, these technical resources were recommended:
A film location scout shares photos of his finds in New York City. Typically, he visits unusual places or shoots familiar places with a close attention to detail. Interesting all around.
Photos taken of London and New York
- NYC Taxi Photo
Photos taken by a NYC cab driver
- London Daily Photo
A perennial financial skeptic explains how he was taken in by Madoff's Ponzi scheme in Fooled by Ponzi (and Madoff): How Bernard Madoff Made Off with My Money.
Recently, I wanted a product to take the chlorine out of swimwear. The products on offer were fairly expensive -- typically $5 (plus shipping and handling) for a 2 ounce bottle of dechlorinator. But I discovered that the mystery ingredient is sodium thiosulfate, so it was a simple matter to find some other product that uses the same ingredient.
As it turns out, it is also used as a dechlorinator for water for pets, and the cheapest source is R-Zilla's Aquatic Reptile Water Conditioner which costs $10 for 8 ounces at my local petstore. So now I am using this to take the chlorine out of my swimsuit.
A Reference Guide to the U.S. Rescue Efforts
A 60+ page PDF to help track the US government efforts at financial rescue.
Lies We Tell Kids
Paul Graham weighs in on lies we tell to children: the controversial topics and the reasons behind the lines.
Boston.com has 120 newsworthy photographs from all of 2008. Enjoy!
