<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Williamsport Web Developer Weblog</title>
	<atom:link href="http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://williamsportwebdeveloper.com/cgi/wp</link>
	<description>Brief notes on what I am up to as a web developer in Williamsport PA, Lycoming County.</description>
	<lastBuildDate>Wed, 01 Sep 2010 13:45:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Undocumented Google Search Operator For Backlinks</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=873</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=873#comments</comments>
		<pubDate>Wed, 01 Sep 2010 13:45:11 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Backlinks]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[inlink search operator]]></category>
		<category><![CDATA[undocumented Google tricks]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=873</guid>
		<description><![CDATA[Yesterday I discovered what may be an unknown and undocumented Google search operator for listing the backlinks to your web site. A backlink is an incoming link to your web site. The number of backlinks to your web site is a factor in how well it will rank in the search engines. The Yahoo! Site [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I discovered what may be an unknown and undocumented Google search operator for listing the backlinks to your web site. A <em>backlink</em> is an incoming link to your web site. The number of backlinks to your web site is a factor in how well it will rank in the search engines.</p>
<p>The <a href="https://siteexplorer.search.yahoo.com/mysites ">Yahoo! Site Explorer</a> provides a tool to see who is linking to your web site. Enter the site’s URL at the top of the page next to the yellow “Explore URL” button and then click the “Explore URL” button. Then click the Inlinks buton:</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/09/YahooSiteExplorer.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Yahoo! Site Explorer" border="0" alt="Yahoo! Site Explorer" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/09/YahooSiteExplorer_thumb.png" width="404" height="136" /></a> </p>
<p>There is also an online tool called Backlink Checker at <a href="http://www.iwebtool.com/backlink_checker">http://www.iwebtool.com/backlink_checker</a></p>
<p>Google provides the search operator <strong>link:</strong> to show the number of backlinks it has on record for a particular web page but it only shows you a small fraction of the links pointing to a site. It credits many more backlinks than it shows for each website.</p>
<p>Yesterday I tried the undocumented search operator <strong>inlink:</strong> and found that it appears to show you all of the links to your web site. For example, compare the following search results:</p>
<p><a href="http://www.google.com/#hl=en&amp;source=hp&amp;q=link%3Awilliamsportwebdeveloper.com&amp;btnG=Google+Search&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=link%3Awilliamsportwebdeveloper.com&amp;gs_rfai=&amp;fp=7c3183ab296c3180">link:williamsportwebdeveloper.com</a> – 2 results    <br /><a href="http://www.google.com/#hl=en&amp;q=inlink%3Awww.williamsportwebdeveloper.com&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=inlink%3Awww.williamsportwebdeveloper.com&amp;gs_rfai=&amp;fp=7c3183ab296c3180">inlink:www.williamsportwebdeveloper.com</a> – 603 results</p>
<p>Obviously, the <strong>inlink:</strong> search operator was far more useful. It appears to more accurately reflect the incoming links I would expect for my web site. For example, there are incoming links from blog comments and forum postings that I have made.</p>
<p>As far as I know, this search operator is unknown to search engine optimization consultants and experts. Hopefully this is the first article on the topic that can be found on the Internet. That alone will be worth a lot of backlinks!</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=873</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Urban Explorer Treks The Upper West Side</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=866</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=866#comments</comments>
		<pubDate>Mon, 30 Aug 2010 01:27:38 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Café Luxembourg]]></category>
		<category><![CDATA[Columbus Circle]]></category>
		<category><![CDATA[Dakota Apartments]]></category>
		<category><![CDATA[Lincoln Center]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[Strawberry Fields]]></category>
		<category><![CDATA[Time Warner Center]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=866</guid>
		<description><![CDATA[Yesterday I made my tenth visit to New York City this year. On this trip, my mission was to explore the Upper West Side, a part of the city I had not seen before. As usual, I took the Susquehanna Trailways bus from Williamsport because that is the most convenient transportation method for me. On [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I made my tenth visit to New York City this year. On this trip, my mission was to explore the Upper West Side, a part of the city I had not seen before. As usual, I took the Susquehanna Trailways bus from Williamsport because that is the most convenient transportation method for me. On the long drive to the city I finished reading the book, <em>Avant-Guide New York City 3rd Edition</em> by Dan Levine. This book dates from 2003 but it provides a hipster view of the city. That is probably the last guidebook on New York City that I shall read. I&#8217;ve already read eight books so it is getting repetitive. I will now proceed to read guidebooks on Philadelphia. I think I can make several more trips to New York City before I run out of things to do, so it will be awhile before I switch to Philadelphia. </p>
<p>I had just received the Pacsafe MetroSafe 100 Anti-Theft shoulder bag that I ordered. It sure beats carrying a cell phone, camera, iPod, reading glasses, and small change in my front pockets. All that weight was pulling my pants down. LOL. I paid attention to what people were using in New York City and noticed that quite a few people had shoulder bags or backpacks. This particular shoulder bag is really small but it has many built-in pockets so it is perfect for electronic gear and small objects. It was small enough that the strap did not hurt my neck. </p>
<p>Upon arriving in New York City I took the C train at the 50th Street station downtown to Penn Station. Unfortunately, I can&#8217;t tell you what I was doing in that area because it is confidential. But I was very pleased to have private business in the city because that is a step up from tourist to local. I wish I had some professional business to attend to in the city but it is better to be in the Big Apple on a lark, as a tourist, than on business. I had to find a restroom before my appointment which brings up a common problem. Where do you find a public restroom in New York City? I went into a nearby Wendy&#8217;s and bought a crispy chicken and small soft drink for the privilege of using their filthy restroom. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/MadisonSquareGarden.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Madison Square Garden" border="0" alt="Madison Square Garden" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/MadisonSquareGarden_thumb.jpg" width="404" height="304" /></a> </p>
<p>My appointment took over an hour. I then walked to the 34th Street Station and took the 1 train uptown to the Lincoln Center station. There were some movie posters on the walls of the subway platforms. I saw the movie poster for &quot;Resident Evil: Afterlife&quot; which haunted me for the rest of the day. I guess it was the image of a city in ruins and a badass model, Milla Jovovich, that evoked a vision of the far flung future; New York City as a pile of industrial wreckage but still having cool as ice models determined to survive the apocalypse. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/residentevilafterlifesubwayposter3450x600.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="resident-evil-afterlife-subway-poster-3-450x600" border="0" alt="resident-evil-afterlife-subway-poster-3-450x600" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/residentevilafterlifesubwayposter3450x600_thumb.jpg" width="404" height="537" /></a> </p>
<p>I had made a reservation for the 2:30 p.m. tour of the Lincoln Center but I arrived uptown early so I had some time to kill. There is a Barnes and Nobles bookstore directly across from the subway station so I went there. This bookstore has a huge selection of books on several floors with escalators to whisk you from floor to floor. I bought two books; <em>Teach Yourself German Grammar</em> and <em>Wallpaper City Guide: Berlin</em> to prepare myself for a trip to Berlin, the New York City of Europe. I checked out the newsstand on the very top floor but I could not find any international magazines or newspapers. I was hoping to find some French, German, or Italian reading material. New York City is really disappointing on this score. You cannot find publications in any language except English. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BarnesandNobleBookstore.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Barnes and Noble Bookstore" border="0" alt="Barnes and Noble Bookstore" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BarnesandNobleBookstore_thumb.jpg" width="404" height="304" /></a> </p>
<p>After killing enough time at the bookstore I walked down to the Lincoln Center Plaza and took some photos. There was a lot of construction on the South Plaza in preparation for a fashion show. I&#8217;ve always been fascinated by the performing arts so it was really thrilling to visit this mecca of the performing arts. Although the Lincoln Center plays a huge role in the cultural life of the United States, I can&#8217;t say that I have ever heard much about the actual complex. Maybe I&#8217;ve seen a few performances on television that were filmed at the Lincoln Center but as a cultural institution it becomes background information so you never actually think about it. I&#8217;m not a big fan of ballet, opera, or symphony music. I am a theater buff but I suppose the New York State Theater is overshadowed by Broadway. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/LincolnCenterPlaza.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Lincoln Center Plaza" border="0" alt="Lincoln Center Plaza" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/LincolnCenterPlaza_thumb.jpg" width="404" height="304" /></a> </p>
<p>Since I was only making a day trip and would be leaving the city in the evening, I was not able to attend a Lincoln Center performance. The tour of the Lincoln Center was my only chance to see the theaters. The tour cost me $15.00 and left from the David Rubenstein Atrium across the street from the Lincoln Center Plaza. The tour guide took our small group to the Avery Fisher Hall where we sat in the theater. We were allowed to take photos but only one of my photos turned out well due to the low lighting. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/AliceTullyHallStageintheDark.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Alice Tully Hall Stage in the Dark" border="0" alt="Alice Tully Hall Stage in the Dark" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/AliceTullyHallStageintheDark_thumb.jpg" width="404" height="304" /></a> </p>
<p>Then we went to the David H. Koch Theater where we entered its auditorium. There were many packing crates on stage which gave it a peculiar industrial funk, sort of an existential vibe in contrast to the magnificence of the plush red seats and central &quot;globe&quot; chandelier. I only have one photograph that isn&#8217;t blurry due to the low lighting. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DavidH.KochTheaterRowsofSeats.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="David H. Koch Theater Rows of Seats" border="0" alt="David H. Koch Theater Rows of Seats" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DavidH.KochTheaterRowsofSeats_thumb.jpg" width="404" height="304" /></a> </p>
<p>That was the end of the tour. It was a very short tour. The tour guide asked everyone where they were from. One couple was from Sweden I think although they appeared to be Asian. I said I was from Pennsylvania so I was addressed as &quot;Pennsylvania&quot;. I was not too pleased to be addressed by my state. Some New Yorkers act like they are a world apart. The most useful piece of information that I picked up was that you do not have to dress formally to attend a Lincoln Center performance. You can come in torn jeans and sneakers if you like. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/AppleStore.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Apple Store" border="0" alt="Apple Store" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/AppleStore_thumb.jpg" width="404" height="304" /></a> </p>
<p>There did not appear to be anything else for me to do at the Lincoln Center after the tour so I walked a short distance up Broadway to the Apple Store. This is just one of the many flagship Apple Stores in New York City. I know a lot of Apple fan boys online so I figured I could make them jealous by visiting this store. Apple products are too expensive for my taste but I do own an iTouch and an old iBook. I saw some of the latest Apple products like huge widescreen monitors, laptops, tiny keyboards and mice, and the iPad. Downstairs I found the software and iPhone accessories that might have tempted me to make a purchase. I saw a case for the 2nd generation iTouch which includes a built-in battery to extend your battery life. This item really tempted me but I think my iTouch is 1st generation so it probably would not have worked. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DakotaApartmentsCorner.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Dakota Apartments Corner" border="0" alt="Dakota Apartments Corner" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DakotaApartmentsCorner_thumb.jpg" width="404" height="304" /></a> </p>
<p>My next appointment was a reservation for dinner at Café Luxembourg. That was not until 5:30 p.m. so I had time to see the Dakota Apartment building, where John Lennon was shot, and Strawberry Fields. There were a few tourists taking photos of the Dakota. Although it is just an apartment building, all the guide books list it as an attraction because John Lennon used to live there and he was shot outside the building. I&#8217;ve read a few biographies of John Lennon but I&#8217;m not a big Beatles fan. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/CrowdAroundJohnLennonMemorial.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Crowd Around John Lennon Memorial" border="0" alt="Crowd Around John Lennon Memorial" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/CrowdAroundJohnLennonMemorial_thumb.jpg" width="404" height="304" /></a> </p>
<p>Strawberry Fields is the memorial to John Lennon in Central Park, just across the street from the Dakota. I found a crowd of photographers surrounding the Strawberry Fields Memorial Mosaic. It seemed a bit disrespectful to mob this spot but I joined them and got a few photographs of my own. The only thing I can say for myself is that I alone seemed interested in photographing the Daniel Webster Statue a little further on. Where is the love for Daniel Webster? </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DanielWebsterStatueFullView.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Daniel Webster Statue Full View" border="0" alt="Daniel Webster Statue Full View" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DanielWebsterStatueFullView_thumb.jpg" width="404" height="304" /></a> </p>
<p>I walked deeper into Central Park and found the famous Bethesda Terrace and The Angel Of The Waters fountain. It was a bright sunny day so I took many photos of these landmarks. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/TheAngelOfTheWatersFrontView.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="The Angel Of The Waters Front View" border="0" alt="The Angel Of The Waters Front View" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/TheAngelOfTheWatersFrontView_thumb.jpg" width="404" height="304" /></a> </p>
<p>I made sure to find my way back to Broadway in time for my dinner at Café Luxembourg. I choose this restaurant because it is French and mentioned in Bret Easton Ellis&#8217;s novel, <em>American Psycho</em>, which I had just read. I should have been wild about this novel because it combines 1980s nostalgia with New York City culture but the descriptions of the violence are sickening. The main character, Patrick Bateman, mentions Café Luxembourg several times, although this restaurant is not listed in the guidebooks as being a hot spot today. While I was eating, I kept wondering if the staff had read that book. I bet they are not amused to be associated with that novel by their clientele! By the way, have you ever noticed how detailed I am in my descriptions? Just like Patrick Bateman! </p>
<p>There were more wait staff in the restaurant than customers. I watched them make minute adjustments to the place settings so there is excessive attention to details. I had the scallop special which consisted of four large scallops in a fancy bed of onions and green beans covered in a mushroom sauce. I also had a German glass of white wine, Gewurztramine, which was better than any wine I&#8217;ve tasted. For desert I had the frozen yogurt covered in orange sauce with four little scoops of melon. It was not a very filling meal. I would say it was all presentation and no substance. It was also extremely expensive at $60.00 for just one person! </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/CafeLuxembourg.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Cafe Luxembourg" border="0" alt="Cafe Luxembourg" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/CafeLuxembourg_thumb.jpg" width="404" height="304" /></a> </p>
<p>After the late diner I had just enough time to visit the Time Warner Center at Columbus Circle. I took the subway even though it was only one stop away. At the Time Warner Center I headed straight for the Borders bookstore because I figured this was the only store within my budget. It is kind of lame for me to visit a Borders bookstore in New York City because we have one in the Lycoming Mall. I go there often because I like to be surrounded by new books but their selection still manages to be poor. This particular Borders store in the Time Warner Center actually has a great view of Columbus Circle. I think it is also a popular spot for celebrity book signings. They had a good selection of New York City guide books but I am tired of reading those so I only bought a <em>Wallpaper City Guide: New York</em>. These guidebooks neglect most of the obvious landmarks because their focus is on design. Their sole criteria for listing a place seems to be design so it makes a good supplement to other guidebooks. I also bought the guidebook <em>Hidden Philadelphia and Amish Country</em>, a sure sign I am beginning to need fresh inspiration, and a large picture book on Berlin. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/ColumbusCircleSeenFromBorders.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Columbus Circle Seen From Borders" border="0" alt="Columbus Circle Seen From Borders" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/ColumbusCircleSeenFromBorders_thumb.jpg" width="404" height="304" /></a> </p>
<p>It was getting late so I had to head out for 51st Street to wait for my bus. Columbus Circle is actually just a few blocks north of 51st Street so I decided to walk. I made it in plenty of time and did some people watching while waiting for my bus. I noticed that a truck parked across the street had something amusing written across it, &quot;The Bed Bug Experts&quot;. I took a photo of the truck because there has been a lot of news about New York City&#8217;s bed bug infestation. I even overheard my fellow bus passengers talking about this subject. The bed bug exterminators were parked in front of the recently remodeled McDonalds. Feel free to infer that this means McDonalds NYC has bed bugs. I hate McDonalds and wish them ill. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/NewYorkCityBedBugExperts.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="New York City Bed Bug Experts" border="0" alt="New York City Bed Bug Experts" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/NewYorkCityBedBugExperts_thumb.jpg" width="404" height="304" /></a> </p>
<p>There are still many more landmarks and museums for me to see in New York City. For example, there is the Brooklyn Museum which will take an entire day to visit because it is huge and I have to allow extra time for a subway ride to Brooklyn. I also have not been in lower Manhattan to check out the financial district. I should see Wall Street before it gets destroyed in the revolution. It will probably be replaced by a statue to Karl Marx. </p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=866</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I Visit Lock Haven</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=837</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=837#comments</comments>
		<pubDate>Sat, 14 Aug 2010 17:49:21 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[Clinton County]]></category>
		<category><![CDATA[D Dashem Books]]></category>
		<category><![CDATA[Lock Haven]]></category>
		<category><![CDATA[PA]]></category>
		<category><![CDATA[Texas Lunch]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=837</guid>
		<description><![CDATA[Today I drove west to visit Lock Haven PA, the county seat of Clinton County. This is part of my personal project to explore the region. I have several reasons for making these little trips: I am extremely bored and need a change of scene. I may need to visit various towns in the area [...]]]></description>
			<content:encoded><![CDATA[<p>Today I drove west to visit Lock Haven PA, the county seat of Clinton County. This is part of my personal project to explore the region. I have several reasons for making these little trips:</p>
<ol>
<li>I am extremely bored and need a change of scene.</li>
<li>I may need to visit various towns in the area while looking for a job.</li>
<li>I may need to meet someone in the vicinity.</li>
</ol>
<p>I have never been to downtown Lock Haven before so it was a new experience for me. Lock Haven is actually part of the service area of my employer. They are opening a big office there so I may need to visit it someday. </p>
<p>Downtown Lock Haven is quite picturesque with an extensive main street. There are many business establishments on main street and most of them are not chain stores. Lock Haven retains the sort of downtown retail space that has been destroyed in other towns by shopping malls.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/TexasLunch.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Texas Lunch" border="0" alt="Texas Lunch" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/TexasLunch_thumb.jpg" width="404" height="540" /></a> </p>
<p>I did not spend much time in Lock Haven. I had lunch at the <a href="http://www.texas-lunch.com/ " target="_blank">Texas Lunch</a> diner. It is a classic diner with a stainless steal counter and plenty of booths and stools. I really liked the decor. I ordered a Pepsi and a BLT Club. Then I went to the D Dashem Books used book store which did not have much of a selection. I only bought one of those <a href="http://www.arcadiapublishing.com/" target="_blank">Arcadia Publishing</a> books on local history. This book store didn’t even have a book on Lock Haven so I bought one on Williamsport. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DDashemBooks.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="D Dashem Books" border="0" alt="D Dashem Books" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/DDashemBooks_thumb.jpg" width="404" height="304" /></a> </p>
<p>I did not take many <a href="http://www.flickr.com/photos/youtuber/" target="_blank">photos</a> on this trip because that is really conspicuous in these small towns. After my trip to Jersey Shore somebody at work asked me what I was doing in Jersey Shore taking a lot of photos. There are not many tourists in the area. However it is often surprisingly difficult to find a photo of a local restaurant or landmark online.</p>
<p>That concludes my exploration of the region to the west. I may revisit Jersey Shore and Lock Haven. I will probably move on to the north and visit Wellsboro and Mansfield. Then I will head south and explore Selinsgrove, Sunbury, and Mifflinburg. To the east I could go to Danville and Bloomsburg. In the past, I have drove pass these towns but I have never made a proper visit. </p>
<p>There really aren’t any decent guide books to Pennsylvania. Further afield are many cities that would require a longer drive; Pittsburgh, Reading, Lancaster, Allentown, and Scranton. </p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=837</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Need A Cell Phone</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=832</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=832#comments</comments>
		<pubDate>Wed, 11 Aug 2010 16:50:44 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[cell phone]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=832</guid>
		<description><![CDATA[I’m thinking about getting a cell phone. I don’t have a cell phone because nobody ever calls me. I really don’t need one. But now that I’m traveling more often it may come in handy in an emergency. I will probably get a prepaid mobile phone with a pay-as-you-go plan. I don’t want the recurring [...]]]></description>
			<content:encoded><![CDATA[<p>I’m thinking about getting a cell phone. I don’t have a cell phone because nobody ever calls me. I really don’t need one. But now that I’m traveling more often it may come in handy in an emergency. I will probably get a prepaid mobile phone with a pay-as-you-go plan. I don’t want the recurring monthly bill that comes with a mobile phone contract.</p>
<p>That rules out the iPhone. I’m not sure which phone to get but something that runs a mobile browser would fit in with my web development plans. Currently I’m doing more research on web design for mobile phone friendly web sites. In fact, I have installed another theme on this WordPress blog which will be used if you visit my blog from an iPhone or iTouch device. This theme makes the blog easier to navigate and read on the smaller screen.</p>
<p>Prospective clients are increasingly asking for mobile friendly versions of their web site. Although this can be as simple as a special theme or web design, there are some other considerations like JavaScript optimization and offline storage. </p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=832</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ellis Island and Statue of Liberty</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=830</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=830#comments</comments>
		<pubDate>Wed, 11 Aug 2010 00:10:18 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Ellis Island]]></category>
		<category><![CDATA[Jersey City]]></category>
		<category><![CDATA[Manhattan]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[State of Liberty]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=830</guid>
		<description><![CDATA[On August 8th, 2010 I went on a special bus tour to Ellis Island and the Statue of Liberty. This trip did not take us into New York City. I left Williamsport at 5:00 a.m. and we arrived at the Liberty State Park in New Jersey at 10:00 a.m. We stopped in at McDonalds for [...]]]></description>
			<content:encoded><![CDATA[<p>On August 8th, 2010 I went on a special bus tour to Ellis Island and the Statue of Liberty. This trip did not take us into New York City. I left Williamsport at 5:00 a.m. and we arrived at the Liberty State Park in New Jersey at 10:00 a.m. We stopped in at McDonalds for breakfast so I ordered a Big Breakfast because I figured there would not be anyplace to get a bite to eat on the islands. After breakfast the tour guide handed out the ferry tickets.</p>
<p>The ferry to Ellis Island departs at the Communipaw Terminal, a train station at the Liberty State Park. We had to go through airport style security which meant taking off my belt and all metal objects to pass through a metal detector. Somebody could make a fortune by making decent plastic belt buckles. I hate taking off my belt in front of everyone.</p>
<p>I was fascinated by the modern skyscrapers of Jersey City so I took many photos of them. The tallest skyscraper is the <a href="http://en.wikipedia.org/wiki/Goldman_Sachs_Tower_%2830_Hudson_Street%29" target="_blank">Goldman Sachs Tower</a> where they probably keep the <em>Eye of Sauron</em>. I’ve never heard anything about <a href="http://en.wikipedia.org/wiki/Jersey_City,_New_Jersey" target="_blank">Jersey City</a> because it is in New Jersey which suffers scorn and neglect for not being New York City. However, I did see this area from Manhattan and did some research on the city because it is pretty impressive. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/GoldmanSachsTower.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Goldman Sachs Tower" border="0" alt="Goldman Sachs Tower" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/GoldmanSachsTower_thumb.jpg" width="404" height="304" /></a> </p>
<p>The New York City skyline was also very impressive but missing the World Trade Center’s Twin Towers. I did see them while they were still standing on my very first trip to New York City back in the 1980s but the city was a terrible place back then and I did not have a good time. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/ManhattanSkyline.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Manhattan Skyline" border="0" alt="Manhattan Skyline" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/ManhattanSkyline_thumb.jpg" width="404" height="304" /></a> </p>
<p>The ferry soon took our bus group to Ellis Island. I did not particularly want to visit the <a href="http://nyharborparks.org/visit/elis.html " target="_blank">Ellis Island Immigration Museum</a> but it was actually very interesting for me because I’m doing some armchair travel in Europe. My current passion is Germany and Italy and I saw plenty of artifacts from the immigration waves that originated there. I could read a few German words in the documents but I don’t know much Italian yet. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BaggageRoom.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Baggage Room" border="0" alt="Baggage Room" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BaggageRoom_thumb.jpg" width="404" height="304" /></a> </p>
<p>On the first floor I saw stacks of old immigrant baggage and the Peopling of America exhibit. I was initially underwhelmed by Ellis Island because this exhibit looked like a three dimensional Power Point presentation with a lot of charts rendered as museum pieces. I expect more from a museum than charts and graphs! There was also a collection of Barbie dolls dressed in the national costumes of all the countries that the immigrants came from. I took a photo of Barbie France. Then I went to the movie theater and saw a short film narrated by Gene Hackman. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BarbieFrance.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Barbie France" border="0" alt="Barbie France" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/BarbieFrance_thumb.jpg" width="404" height="304" /></a> </p>
<p>On the second floor I found an exhibit dedication taking place in the Registry Room for the <em>Go For Broke: Japanese American Soldiers Fighting Two Fronts</em> exhibit. One of the speakers was George Takei, the famous actor best know for his role as Sulu in the classic Star Trek series. It is was quite thrilling to see him in person although I did not sit down for the dedication which had already started. Instead I walked through the Through America’s Gate wing on the second floor. There were some interesting exhibits there including paper and coin money that immigrants exchanged. At the Peak Immigration Years wing I saw a steamship model, railroad timetables, and anti-immigration newspapers from that era. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/GoForBrokeSpeaker.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Go For Broke Speaker" border="0" alt="Go For Broke Speaker" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/GoForBrokeSpeaker_thumb.jpg" width="404" height="304" /></a> </p>
<p>The third floor had the <em>Go For Broke</em> exhibit and examples of clothing and belongings of immigrants. There were a lot of huge black and white photos blown up to poster size. The street scenes were life sized and rather impressive. You almost felt like you were there. </p>
<p>Back on the first floor, I went into the gift shop and bought a seven inch replica of the Statue of Liberty which is sitting on my desk. Then I went to the cafeteria and ordered a lobster roll and large coke with homemade potato chips. After eating my lunch, I walked around the promenade and took photos of seagulls, ferries, the Manhattan skyline, the Immigration Museum and the Statue of Liberty which was still too far away for good photos. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SeagullCloseup.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Seagull Closeup" border="0" alt="Seagull Closeup" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SeagullCloseup_thumb.jpg" width="404" height="304" /></a> </p>
<p>At around 1:00 p.m. I got on the ferry to go to the Statue of Liberty. It was really thrilling to see the Statue of Liberty up close. I took hundreds of photos of it from all angles by walking around the promenade. The tourists were concentrated in the front of the statue. I’ve never seen so many people taking photos. I overheard a women calling to her children in French.&#160; Fortunately my ferry ticket included admission to the pedestal so I was able to see the Statue of Liberty museum inside and climb up to the pedestal for some great views of New York Harbor and the Manhattan skyline. You could even see the Brooklyn Bridge. It was very windy up there. Unfortunately I think that is as high as you can go. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/StatueofLibertyClassicShot.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Statue of Liberty Classic Shot" border="0" alt="Statue of Liberty Classic Shot" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/StatueofLibertyClassicShot_thumb.jpg" width="404" height="304" /></a> </p>
<p>Before I left the Statue of Liberty National Monument I stopped in at the gift shop and bought a Statue of Liberty bookmark and a copy of the photo book <em>New York Vertical</em>. I did not spend much money on this trip because there wasn’t much opportunity to do any shopping. I took the ferry back to New Jersey in plenty of time to catch my bus at 5:00 p.m. Unfortunately we were kept waiting for two people who took the wrong ferry and wound up at Battery Park in lower Manhattan. They had to go to the Port Authority Bus Terminal to take a regular Susquehanna Trailways bus home. That is fine example of how a little confusion can ruin your trip. But it does tell me that Susquehanna Trailways runs a regular bus service to NYC. </p>
<p>On the way home we stopped at one of New Jersey’s many diners , the <a href="http://www.hiberniadiner.com/" target="_blank">Hibernia Diner</a>, where I ordered a New York egg cream and a chicken gyro, managing to squeeze a little more New York City into the experience. </p>
<p>My next trip to New York City will be on August 28, 2010. I’m really going to kick it up a notch for this trip and maybe do some business like a real New Yorker. But I also plan to go on the Lincoln Center tour. I would prefer to see a performance at the Lincoln Center but I won’t be there for the evening so I will have to settle for a guided tour. That requires a reservation. I’m currently reading the novel <em>American Psycho</em> by Bret Easton Ellis, a fascinating glimpse into the world of the NYC financial community.&#160; Stock brokers and financial executives certainly are psycho. Look how they knifed the world’s economy to death! Anyway, it is great to read a novel set in New York City while actually having a good idea of the neighborhoods and establishments being mentioned. I may go the Cafe Luxembourg restaurant which is mentioned in the book if I can make a reservation. You can easily do that online using <a href="http://www.opentable.com/" target="_blank">OpenTable</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=830</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offline Database On iPhone Using SQLite</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=809</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=809#comments</comments>
		<pubDate>Wed, 04 Aug 2010 20:54:50 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iTouch]]></category>
		<category><![CDATA[offline web applications]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=809</guid>
		<description><![CDATA[I like to take my iTouch with me on my trips to New York City so I can listen to music during the long bus trip. I also copy my compiled HTML notes on New York City to my iTouch so I can consult it when I need to. Neither of those uses requires a [...]]]></description>
			<content:encoded><![CDATA[<p>I like to take my iTouch with me on my trips to New York City so I can listen to music during the long bus trip. I also copy my compiled HTML notes on New York City to my iTouch so I can consult it when I need to. Neither of those uses requires a wireless Internet connection. I can rarely get a wireless Internet connection while traveling so I don’t rely upon it.</p>
<p>Recently I have discovered an interesting way to increase the usefulness of my iTouch. It is possible to create offline web applications which remain functional even when you can’t find a wireless connection. These offline web applications can also make use of a database which will reside on the device.</p>
<p>Safari and Opera browsers support <a href="http://www.sqlite.org/">SQLite</a>,&#160; a SQL database engine. Web applications can create databases which will be stored on the user’s computer. The iPhone and iTouch run the mobile version of Safari which includes SQLite so you can potentially store databases on your mobile phone or iPod. This gave me the idea to store a few databases on my iTouch with an offline web application to query the data. This would give me the ability to look up data without a wireless connection. There are a few database applications for the iPhone but this method is free and completely customizable.</p>
<p>To create a database, you just need to write a little JavaScript:</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">try</span> {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span>     <span style="color: #0000ff">if</span> (!window.openDatabase) {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span>         alert(<span style="color: #006080">'not supported'</span>);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span>     } <span style="color: #0000ff">else</span> {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span>         <span style="color: #0000ff">var</span> shortName = <span style="color: #006080">'mydatabase'</span>;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span>         <span style="color: #0000ff">var</span> version = <span style="color: #006080">'1.0'</span>;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span>         <span style="color: #0000ff">var</span> displayName = <span style="color: #006080">'My Important Database'</span>;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>         <span style="color: #0000ff">var</span> maxSize = 65536; <span style="color: #008000">// in bytes</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span>         <span style="color: #0000ff">var</span> db = openDatabase(shortName, version, displayName, maxSize);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum10">  10:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum11">  11:</span>         <span style="color: #008000">// You should have a database instance in db.</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum13">  13:</span> } <span style="color: #0000ff">catch</span>(e) {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum14">  14:</span>     <span style="color: #008000">// Error handling code goes here.</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum15">  15:</span>     <span style="color: #0000ff">if</span> (e == 2) {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum16">  16:</span>         <span style="color: #008000">// Version number mismatch.</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum17">  17:</span>         alert(<span style="color: #006080">&quot;Invalid database version.&quot;</span>);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum18">  18:</span>     } <span style="color: #0000ff">else</span> {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum19">  19:</span>         alert(<span style="color: #006080">&quot;Unknown error &quot;</span>+e+<span style="color: #006080">&quot;.&quot;</span>);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum20">  20:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum21">  21:</span>     <span style="color: #0000ff">return</span>;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum22">  22:</span> }</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum23">  23:</span> alert(<span style="color: #006080">&quot;Database is: &quot;</span>+db);</pre>
<p><!--CRLF--></div>
</div>
<p>You can verify that the JavaScript created a database by opening Preferences &gt; Security and clicking the Show Databases button in Safari:</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SafariSQLiteDatabases.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Safari-SQLite-Databases" border="0" alt="Safari-SQLite-Databases" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SafariSQLiteDatabases_thumb.png" width="460" height="355" /></a> </p>
</p>
<p>Here you can see that I have a few databases under localhost from my experimentation on my local web server and a Books database from my business web site. A database is associated with a domain name so web sites cannot access each other’s databases. You may be wondering where these database files were created. I found them under <em>C:\Documents and Settings\[<strong>username</strong>]\Local Settings\Application Data\Apple Computer\Safari\Databases\http_localhost_0/<strong>0000000000000001.db</strong></em></p>
<p>After you create the database, you need to create your tables using some more JavaScript: </p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> createTables(db);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span> <span style="color: #0000ff">function</span> nullDataHandler(transaction, results) { }</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum4">   4:</span> <span style="color: #0000ff">function</span> createTables(db)</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum5">   5:</span> {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum6">   6:</span>     db.transaction(</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum7">   7:</span>         <span style="color: #0000ff">function</span> (transaction) {</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum8">   8:</span>             <span style="color: #008000">/* The first query causes the transaction to (intentionally) fail if the table exists. */</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum9">   9:</span>             transaction.executeSql(<span style="color: #006080">'CREATE TABLE people(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL DEFAULT &quot;John Doe&quot;, shirt TEXT NOT NULL DEFAULT &quot;Purple&quot;);'</span>, [], nullDataHandler, errorHandler);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum10">  10:</span>             <span style="color: #008000">/* These insertions will be skipped if the table already exists. */</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum11">  11:</span>             transaction.executeSql(<span style="color: #006080">'insert into people (name, shirt) VALUES (&quot;Joe&quot;, &quot;Green&quot;);'</span>, [], nullDataHandler, errorHandler);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum12">  12:</span>             transaction.executeSql(<span style="color: #006080">'insert into people (name, shirt) VALUES (&quot;Mark&quot;, &quot;Blue&quot;);'</span>, [], nullDataHandler, errorHandler);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum13">  13:</span>             transaction.executeSql(<span style="color: #006080">'insert into people (name, shirt) VALUES (&quot;Phil&quot;, &quot;Orange&quot;);'</span>, [], nullDataHandler, errorHandler);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum14">  14:</span>             transaction.executeSql(<span style="color: #006080">'insert into people (name, shirt) VALUES (&quot;jdoe&quot;, &quot;Purple&quot;);'</span>, [], nullDataHandler, errorHandler);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum15">  15:</span>         }</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum16">  16:</span>     );</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum17">  17:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p>You are now ready to import data into your database table. If you have a lot of data you’ll probably want to download the <strong>sqlite3.exe</strong> tool from <a title="http://www.sqlite.org/download.html" href="http://www.sqlite.org/download.html">http://www.sqlite.org/download.html</a>. This little program is a command line shell for SQLite. It can import data from text files and dump the database as SQL statements. </p>
<p>My Books database is a simple database I maintain to keep track of all the books I’ve read. I like to use it for experimenting with database technology because it is extremely simple. I keep this database in Access. To import the data into SQLite from Access, I exported the table into a comma separated values CSV text file. However, because I have a few commas in the titles of books, I changed the separator character to a semicolon. I also discovered that text values should be surrounded by single quotes, not double quotes. I used the following commands&#160; to import the data.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> sqlite<span style="color: #0000ff">&gt;</span> .separator &quot;;&quot;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> sqlite<span style="color: #0000ff">&gt;</span> .import Books.txt Books</pre>
<p><!--CRLF--></div>
</div>
<p>NOTE: To make things easier, I copied the <strong>sqlite3.exe</strong> tool and my <strong>Books.txt</strong> file into the folder that Safari uses to store its SQLite databases.</p>
<p>The built-in Safari developer tools make it easy to verify that the database now has some data. Just open the Web Inspector and select the Storage button while the web site with the database is open:</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SafariWebInspector.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Safari-Web-Inspector" border="0" alt="Safari-Web-Inspector" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SafariWebInspector_thumb.png" width="404" height="306" /></a>&#160; </p>
<p>You can also download the <a href="https://addons.mozilla.org/en-US/firefox/addon/5817/ ">SQLite Manager</a> extension for Firefox which gives you a complete tool for managing your SQLite databases. Firefox does not permit web sites to use SQLite but the browser uses it for a few internal databases. You can still use SQLite Manager to work with your Safari databases by browsing to the file.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SQLiteManager.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SQLite-Manager" border="0" alt="SQLite-Manager" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SQLiteManager_thumb.png" width="404" height="189" /></a> </p>
<p>These tools will not help you to get data into a database on the iPhone. To accomplish that I dumped the database to a file of SQL statements and then created a web page containing the JavaScript to run those SQL statements. This is not a very eloquent approach but it was the simplest way to get data into the database. I used the following commands in the <strong>sqlite3.exe</strong> tool to dump my database as SQL statements which I copied raw into JavaScript with a little editing.</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum1">   1:</span> sqlite<span style="color: #0000ff">&gt;</span> .output dump.sql</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum2">   2:</span> sqlite<span style="color: #0000ff">&gt;</span> .dump Books</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060" id="lnum3">   3:</span> sqlite<span style="color: #0000ff">&gt;</span> .output stdout</pre>
<p><!--CRLF--></div>
</div>
<p>I then created a very simple web page to query the database and return the results in a table. Here is the JavaScript to query the database:</p>
<div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px">
<div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   1:</span> <span style="color: #0000ff">try</span> {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   2:</span>     <span style="color: #0000ff">if</span> (!window.openDatabase) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   3:</span>         alert(<span style="color: #006080">'not supported'</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   4:</span>     } <span style="color: #0000ff">else</span> {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   5:</span>         <span style="color: #0000ff">var</span> shortName = <span style="color: #006080">'books'</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   6:</span>         <span style="color: #0000ff">var</span> version = <span style="color: #006080">'1.0'</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   7:</span>         <span style="color: #0000ff">var</span> displayName = <span style="color: #006080">'Books'</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   8:</span>         <span style="color: #0000ff">var</span> maxSize = 65536; <span style="color: #008000">// in bytes</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">   9:</span>         <span style="color: #0000ff">var</span> db = openDatabase(shortName, version, displayName, maxSize);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  10:</span>&#160; </pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  11:</span>         <span style="color: #008000">// You should have a database instance in db.      </span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  12:</span>     }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  13:</span> } <span style="color: #0000ff">catch</span> (e) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  14:</span>     <span style="color: #008000">// Error handling code goes here.</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  15:</span>     <span style="color: #0000ff">if</span> (e == 2) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  16:</span>         <span style="color: #008000">// Version number mismatch.</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  17:</span>         alert(<span style="color: #006080">&quot;Invalid database version.&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  18:</span>     } <span style="color: #0000ff">else</span> {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  19:</span>         alert(<span style="color: #006080">&quot;Unknown error &quot;</span> + e + <span style="color: #006080">&quot;.&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  20:</span>     }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  21:</span> }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  22:</span> <span style="color: #008000">//alert(&quot;Database is: &quot; + db);</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  23:</span> <span style="color: #008000">//createTables(db);</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  24:</span>&#160; </pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  25:</span> <span style="color: #0000ff">function</span> searchDatabase() {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  26:</span>     <span style="color: #0000ff">var</span> criteria = $(<span style="color: #006080">&quot;#criteria&quot;</span>).val();</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  27:</span>     <span style="color: #0000ff">var</span> column = $(<span style="color: #006080">&quot;input[@name='column']:checked&quot;</span>).val();</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  28:</span>     db.transaction(</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  29:</span>         <span style="color: #0000ff">function</span> (transaction) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  30:</span>             transaction.executeSql(<span style="color: #006080">&quot;SELECT * FROM Books WHERE &quot;</span> + column + <span style="color: #006080">&quot; LIKE '%&quot;</span> + criteria + <span style="color: #006080">&quot;%';&quot;</span>,</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  31:</span>                 [], <span style="color: #008000">// array of values for the ? placeholders</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  32:</span>                 dataHandler, errorHandler);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  33:</span>         }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  34:</span>     );</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  35:</span> }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  36:</span>&#160; </pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  37:</span> <span style="color: #0000ff">function</span> createTables(db) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  38:</span>     db.transaction(</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  39:</span>         <span style="color: #0000ff">function</span> (transaction) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  40:</span>             <span style="color: #008000">/* The first query causes the transaction to (intentionally) fail if the table exists. */</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  41:</span>             transaction.executeSql(<span style="color: #006080">'CREATE TABLE Books(BookNum INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Title TEXT NOT NULL, Author TEXT NOT NULL);'</span>, [], nullDataHandler, errorHandler);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  42:</span>         }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  43:</span>     );</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  44:</span> }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  45:</span> <span style="color: #0000ff">function</span> nullDataHandler(transaction, results) { }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  46:</span> <span style="color: #0000ff">function</span> errorHandler(transaction, error) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  47:</span>     <span style="color: #008000">// error.message is a human-readable string.</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  48:</span>     <span style="color: #008000">// error.code is a numeric error code</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  49:</span>     alert(<span style="color: #006080">'Oops.  Error was '</span> + error.message + <span style="color: #006080">' (Code '</span> + error.code + <span style="color: #006080">')'</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  50:</span>&#160; </pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  51:</span>     <span style="color: #008000">// Handle errors here</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  52:</span>     <span style="color: #0000ff">var</span> we_think_this_error_is_fatal = <span style="color: #0000ff">true</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  53:</span>     <span style="color: #0000ff">if</span> (we_think_this_error_is_fatal) <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  54:</span>     <span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>;</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  55:</span> }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  56:</span> <span style="color: #0000ff">function</span> dataHandler(transaction, results) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  57:</span>     <span style="color: #008000">// Handle the results</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  58:</span>     $(<span style="color: #006080">&quot;#results&quot;</span>).empty();</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  59:</span>     $(<span style="color: #006080">&quot;#results&quot;</span>).append(<span style="color: #006080">&quot;&lt;table id=\&quot;resultsTable\&quot; class=\&quot;tableData\&quot;&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  60:</span>     $(<span style="color: #006080">&quot;#resultsTable&quot;</span>).append(<span style="color: #006080">&quot;&lt;tr&gt;&lt;th&gt;BookNum&lt;/th&gt;&lt;th&gt;Title&lt;/th&gt;&lt;th&gt;Author&lt;/th&gt;&lt;/tr&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  61:</span>     <span style="color: #008000">//var string = &quot;The Books table contains the following records:&lt;br /&gt;&lt;br /&gt;\n\n&quot;;</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  62:</span>     <span style="color: #0000ff">for</span> (<span style="color: #0000ff">var</span> i = 0; i &lt; results.rows.length; i++) {</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  63:</span>         <span style="color: #008000">// Each row is a standard JavaScript array indexed by column names.</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  64:</span>         <span style="color: #0000ff">var</span> row = results.rows.item(i);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  65:</span>         $(<span style="color: #006080">&quot;#resultsTable &gt; tbody:last&quot;</span>).append(<span style="color: #006080">&quot;&lt;tr&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  66:</span>         $(<span style="color: #006080">&quot;#resultsTable &gt; tbody:last&quot;</span>).append(<span style="color: #006080">&quot;&lt;td&gt;&quot;</span> + row[<span style="color: #006080">'BookNum'</span>] + <span style="color: #006080">&quot;&lt;/td&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  67:</span>         $(<span style="color: #006080">&quot;#resultsTable &gt; tbody:last&quot;</span>).append(<span style="color: #006080">&quot;&lt;td&gt;&quot;</span> + row[<span style="color: #006080">'Title'</span>] + <span style="color: #006080">&quot;&lt;/td&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  68:</span>         $(<span style="color: #006080">&quot;#resultsTable &gt; tbody:last&quot;</span>).append(<span style="color: #006080">&quot;&lt;td&gt;&quot;</span> + row[<span style="color: #006080">'Author'</span>] + <span style="color: #006080">&quot;&lt;/td&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  69:</span>         $(<span style="color: #006080">&quot;#resultsTable &gt; tbody:last&quot;</span>).append(<span style="color: #006080">&quot;&lt;/tr&gt;&quot;</span>);</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  70:</span>         <span style="color: #008000">//string = string + row['BookNum'] + &quot;: &quot; + row['Title'] + &quot;, &quot; + row['Author'] + &quot;&lt;br /&gt;\n&quot;;</span></pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  71:</span>     }</pre>
<pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #606060">  72:</span> }</pre>
</p></div>
</div>
<p>The final task in this project was to get the web application to function while offline. This proved to be difficult because the manifest file must be received by the web browser with the content type <strong>text/cache-manifest</strong>. Unfortunately IIS already has the <strong>.manifest</strong> file extension registered for Silverlight. My business web site is hosted by CrystalTech and I am unable to add mime types to their web server. It really does not matter what web server you use because the web application is going to function offline anyways. So I eventually used my Apache web server on localhost. Once I&#8217;d loaded the page from there and bookmarked the site, it remained available even without access to my local network. Just make sure the manifest file for the offline web application has the content type <strong>text/cache-manifest</strong> as revealed in Firebug:</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/Firebug-Manifest-Content-Type.gif"><img src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/Firebug-Manifest-Content-Type-300x125.gif" alt="Firebug Manifest Content Type" title="Firebug Manifest Content Type" width="300" height="125" class="alignnone size-medium wp-image-810" /></a></p>
<p>Here is what my offline web application looks like while running on my iTouch. I can still query my database even when I don&#8217;t have a wireless connection. Now I can look up the author and title of any book I&#8217;ve read while I&#8217;m on the go!</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SQLite-Books-Database.png"><img src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/08/SQLite-Books-Database.png" alt="SQLite Books Database Query Page" title="SQLite Books Database Query Page" width="320" height="480" class="alignnone size-full wp-image-811" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=809</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NYC Overnight Trip &#8211; Day 2</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=762</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=762#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:12:19 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Beekman Tower]]></category>
		<category><![CDATA[Brooklyn Bridge]]></category>
		<category><![CDATA[DUMBO]]></category>
		<category><![CDATA[Hallo Berlin]]></category>
		<category><![CDATA[Macy's]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=762</guid>
		<description><![CDATA[On Sunday I got up early and walked along 51st Street to the subway station on Lexington Avenue. This was a long walk but I did get to see a nearly deserted New York City at 6:00 AM in the morning. I took the 6 train to the Brooklyn Bridge. This ride took a long [...]]]></description>
			<content:encoded><![CDATA[<p>On Sunday I got up early and walked along 51st Street to the subway station on Lexington Avenue. This was a long walk but I did get to see a nearly deserted New York City at 6:00 AM in the morning. I took the 6 train to the Brooklyn Bridge. This ride took a long time because the train was delayed near Canal Street. But since my subway car was empty I took a few photos. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/6Train.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="6 Train" border="0" alt="6 Train" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/6Train_thumb.jpg" width="404" height="304" /></a> </p>
<p>By the way, on Saturday it was 97 degrees, tying the 1999 record for hottest July 24th ever. And with the humidity, it was more like 102. No wonder it was so uncomfortably hot! Fortunately it was cooler on Sunday morning which was a perfect time to walk across the Brooklyn Bridge. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/BeekmanTower.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Beekman Tower" border="0" alt="Beekman Tower" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/BeekmanTower_thumb.jpg" width="404" height="304" /></a> </p>
<p>One building that caught my eye was the Beekman Tower which is currently rising in downtown    <br />Manhattan. It is located near the Brooklyn Bridge just south of Pace University. I took many photos of this gleaming, twisting skyscraper which will become the tallest residential building in New York City. I thought it might be the Freedom Tower but the new construction to replace the twin towers is not that far along. Other interesting buildings visible from the Brooklyn Bridge include the Manhattan Municipal Building, the United States Courthouse, South Street Seaport, and the Verizon Building. The Statue of Liberty and Governor’s Island could be seen in New York Harbor but they were distant and hazy.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/MunicipalBuildingandUnitedStatesCourthouse.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Municipal Building and United States Courthouse" border="0" alt="Municipal Building and United States Courthouse" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/MunicipalBuildingandUnitedStatesCourthouse_thumb.jpg" width="404" height="304" /></a> </p>
<p>On the Brooklyn side of the Brooklyn Bridge I followed the signs to DUMBO (keep left and walk towards the underpass tunnel). I saw the “Welcome To Brooklyn” bulletin board in the underpass and followed the signs to the&#160; DUMBO neighborhood. Unfortunately everything was closed on a Sunday morning and the streets were deserted but this did give me an excellent opportunity to take lots of photos. I found the following landmarks on my list; Grimaldi&#8217;s Pizzeria, Jacques Torres Chocolate Factory, Pete&#8217;s Downtown Restaurant, St. Ann&#8217;s Warehouse, Barge Music, and the Manhattan Bridge. The street was all dug up in front of St. Ann&#8217;s Warehouse but I took a photo of a bulldozer with the theater in the background.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/St.AnnsWarehouseBulldozer.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="St. Ann&#39;s Warehouse Bulldozer" border="0" alt="St. Ann&#39;s Warehouse Bulldozer" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/St.AnnsWarehouseBulldozer_thumb.jpg" width="404" height="304" /></a> </p>
<p>I had planned to take the subway back to Manhattan but unfortunately I could not locate the High Street Station in Cadman Park Plaza. Maybe this station was demolished as part of the budget cuts or it may have been hidden in one of the many construction sheds I saw nearby. I walked around the park and could not find a subway entrance so I had to walk back across the Brooklyn Bridge. At one of the arches I was able to buy a bottle of water from a street vendor. When I got back to City Hall on the Manhattan side I found the Brooklyn Bridge – City Hall Station and took the 6 train back uptown to 51st Street. It was another long walk along 51st street back to the Skyline Hotel on 10th Avenue. As I walked pass the Rockefeller Plaza I saw many production&#160; trailers because they were filming a crowd scene there. I stopped at a Starbucks along the way and had a Skinny Vanilla Latte. I had to check out by Noon so after taking a cold shower I took care of that. They placed my luggage in a conference room so it could be loaded on the bus at 5:30 PM. I certainly did not want to have to lug it around Manhattan until then!</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/BrooklynBridgeArchinSun.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Brooklyn Bridge Arch in Sun" border="0" alt="Brooklyn Bridge Arch in Sun" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/BrooklynBridgeArchinSun_thumb.jpg" width="404" height="304" /></a> </p>
<p>I was planning to return to Hallo Berlin for lunch but they did not open until Noon. So instead I took a subway to 34th Street, Penn Station. I eventually bought three metro cards on this trip. Some of the machines would not accept bills so I had to pay with my credit card. On 34th Street I headed for Macy’s Department Store. Macy’s is like a mall with its own chain restaurants and a few stores that are not part of Macy’s. For example, on the first floor I went to the Metropolitan Museum of Art store and bought a bookmark and a CD of NYC music. Then I went to Starbucks and had another Skinny Vanilla Latte to help me cool off. Fortunately Macy’s is air conditioned so I spent a lot of time riding its elevators. You don’t need to be well dressed in this store. I saw many poorly dressed tourists in shorts. I also had a caramel sundae at Ben &amp; Jerry&#8217;s Macy&#8217;s Scoop Shop and a quarter pounder with cheese at McDonalds. I was rather surprised to find a McDonalds at Macy’s, just like a Walmart! After I tired of Macy’s I went to Penn Station and bought foreign language magazines at Hudson News; <em>Stern </em>in German, <em>L’Express</em> in French, and <em>Voici </em>in French. Unfortunately they did not have any Italian magazines. Then I went to the Borders book store in the Penn Station vicinity where I bought <em><a href="http://www.amazon.com/gp/product/0767916344?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0767916344">New York: The Movie Lover&#8217;s Guide: The Ultimate Insider Tour of Movie New York</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=0767916344" width="1" height="1" /> </em>. That book should help me to find the landmark sites in films. I also bought an <a href="http://www.amazon.com/gp/product/0061241946?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0061241946">Access Philadelphia 7e (Access Guides)</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=0061241946" width="1" height="1" /> because I eventually want to explore that city as thoroughly as New York City. As a resident of Pennsylvania I should find Philly more interesting than NYC but unfortunately Philly is not as prominent in American culture. I also picked up a Lonely Planet Italian phrasebook but I really should not start on Italian while I am still learning German. </p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/macys.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="macys" border="0" alt="macys" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/macys_thumb.jpg" width="404" height="304" /></a> </p>
<p>At this point I was burdened with packages so I went back to the Starbucks in Macy’s to plan my next move. I decided to visit a small park near the Skyline Hotel to wait for the bus which would leave at 6:00 PM. Since I was already checked out I could not go back to my room. I decided to have lunch at Hallo Berlin again. I saw at the bar and ordered a Sprite and Berlin Currywurst. Unfortunately I was unable to finish my meal because I was feeling full. A Ghost Busters movie was playing on their widescreen TVs. I watched the ghostbusters slime the Statue of Liberty and animate her. The special effects were quite poor by today’s standards. </p>
<p>Unfortunately it began to rain as soon as I left the restaurant. A lot of fire engines and ambulances appeared and raced to a scene near the Skyline Hotel although I did not see any smoke or fire. The rain made it impossible for me to visit the park so I spent the next two hours stuck under a sidewalk shed near the Skyline Hotel. I did have my iTouch with its earplug headphones so I was able to listen to music. The only interesting thing to happen was a homeless man showed up pushing a large canvas dumpster filled with bottles. He proceeded to lay out a blanket and went to sleep under the sidewalk shed. </p>
<p>Although my last two hours in the city were not much fun, I had another successful trip and memorable experience in New York City. It may seem mundane to be a tourist in New York City but for me it is pretty exciting due to the central role the city plays in American culture. As I was growing up I was inundated with television shows and entire stations broadcast from New York City with local news so I got used to hearing about the Big Apple. It became a familiar place through the media but I never went there. Of course, back in the late 70s and early 80s New York City was virtually bankrupt and not a safe place to be. Visiting New York City now after all that television exposure is like travelling to the future and seeing the futuristic skyscrapers that are going up. There has been a lot of development during the last decade as Wall Street prospered so there are many new buildings. </p>
<p>I have scheduled two more trips in August. The first trip in just two weeks will just be to Ellis Island and the Statue of Liberty. This will be a good opportunity to catch those two tourist sites which I have not managed to see on any previous trip. I have to figure out what to do on the other trip to NYC. I may take the Lincoln Center tour because I cannot attend a performance. </p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=762</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NYC Overnight Trip &#8211; Day 1</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=761</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=761#comments</comments>
		<pubDate>Tue, 27 Jul 2010 09:33:41 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Chelsea Art Museum]]></category>
		<category><![CDATA[East Village]]></category>
		<category><![CDATA[New Museum of Contemporary Art]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[Performance Space 122]]></category>
		<category><![CDATA[Skyline Hotel]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=761</guid>
		<description><![CDATA[Over the weekend I went on a special bus trip to New York City. This trip included an overnight stay at a hotel so I was able to schedule a show in the evening. I was also able to do something in the morning. The bus left Williamsport at 7:00 AM and we arrived in [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I went on a special bus trip to New York City. This trip included an overnight stay at a hotel so I was able to schedule a show in the evening. I was also able to do something in the morning.</p>
<p>The bus left Williamsport at 7:00 AM and we arrived in New York City at 11:00 AM. We were dropped off at the <a href="http://www.skylinehotelny.com/" target="_blank">Skyline Hotel</a> in Hell’s Kitchen. I was unable to check in until 3:00 PM so the bellhop showed me where to store my luggage in an empty conference room. I did not pack much because I expected to be bringing many purchases home in my one piece of luggage.</p>
<p>I did not waste any time heading to my first destination, the <a href="http://www.chelseaartmuseum.org/ " target="_blank">Chelsea Art Museum</a>. I’m becoming more proficient at navigating the subway system. On this trip I went to the 50th Street Subway Station on 8th Avenue. It is much closer than the East 51st Street &amp; Lexington Avenue that I usually use. I took a photo of the subway entrance under the Worldwide Plaza because I was unable to find any good photos of it online.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/50thStreetSubwayStation.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="50th Street Subway Station" border="0" alt="50th Street Subway Station" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/50thStreetSubwayStation_thumb.jpg" width="404" height="304" /></a> </p>
<p>Before I reached the subway station I walked pass the New World Stages theater which may be a good place for a show on a future trip. The New York City subway is a bit of a mess right now because budget cuts have forced many route changes which add to the confusion. I took the C train to the 23rd Street Station.</p>
<p>On my way to the Chelsea Art Museum I walked pass the London Terrace Gardens, a massive apartment block. One of my guidebooks mentioned that Deborah Harry lives there so I made sure to take a few photos. As I neared the High Line Building on Chelsea I managed to take a photo of our Susquehanna Trailways tour bus as it drove by. However I did not even notice it at the time. I was quite surprised and pleased to find our tour bus in my photos as I prepared to upload them to <a href="http://www.flickr.com/photos/youtuber/" target="_blank">Flickr</a>.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/SusquehannaTrailwaysBusInChelsea.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Susquehanna Trailways Bus In Chelsea" border="0" alt="Susquehanna Trailways Bus In Chelsea" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/SusquehannaTrailwaysBusInChelsea_thumb.jpg" width="404" height="304" /></a> </p>
<p>The Chelsea Art Museum exhibition was the second edition of Open Portfolio at the Chelsea Art Museum. This was a lot of artists showing their portfolios on their laptops with a few pieces mounted on the wall behind their table. The artists were there to greet you and hand out their business cards. I found this to be slightly awkward so I did not interact with many artists. There was a concert upstairs that seemed to just be getting started. The Chelsea Art Museum is a very small museum with only three floors. I only spent a half hour there. On the way out I bought the book <a href="http://www.amazon.com/gp/product/3829601271?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=3829601271">One Night on Broadway</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=3829601271" width="1" height="1" /> by Horst Hamann. This turned out to be a good souvenir because it is a book of photos taken at night all along Broadway.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/NewYorkCitySkyline.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="New York City Skyline" border="0" alt="New York City Skyline" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/NewYorkCitySkyline_thumb.jpg" width="404" height="304" /></a> </p>
<p>I then proceeded to the <a href="http://www.newmuseum.org " target="_blank">New Museum of Contemporary Art</a> on the Bowery. I knew exactly which subway trains to take so I got there by 1:02 PM according to my ticket. The New Museum of Contemporary Art was kind of disappointing. The most interesting piece of artwork was a McDonalds straw and soda lid which looked like it was picked up off the street and deposited into the display case. I took the elevator to the top floor and worked my way down. The top floor just has a terrace where you can take photos of the Bowery neighborhood and the Manhattan skyline. This was actually pretty cool so I took many photos. Another memorable exhibit was the Beat writer and artist <a href="http://en.wikipedia.org/wiki/Brion_Gysin" target="_blank">Brion Gysin</a>, an associate of William S. Burroughs. They even had his legendary dream machine which seemed very popular. A crowd was gathered around it trying to alter their consciousness by staring at the flickering lights. I don’t need such a device to alter my consciousness. Just being in New York City is sufficient to alter my consciousness. Unfortunately that was the only thing I found interesting at the New Museum of Contemporary Art. I was very thirsty so I bought an expensive little bottle of fancy soft drink at their cafe. Even their soft drinks were pretentious! Their bookstore did seem well stocked with many rare and interesting books. I was slightly impressed by the taste shown in their selection. I bought <a href="http://www.amazon.com/gp/product/1932595120?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1932595120">The Seven Addictions and Five Professions of Anita Berber: Weimar Berlin&#8217;s Priestess of Depravity</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=1932595120" width="1" height="1" /> . This is a book I’ve been meaning to buy in preparation for my trip to Berlin.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/PuckBuilding.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Puck Building" border="0" alt="Puck Building" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/PuckBuilding_thumb.jpg" width="404" height="304" /></a> </p>
<p>After leaving the New Museum of Contemporary Art at 1:53 PM according to my receipt, I walked straight ahead down Prince Street which takes you into SoHo. I walked pass the landmark buildings Old St Patrick&#8217;s Cathedral and the Puck Building which I photographed. Using Google Street View to plan your walk is very useful for spotting nearby landmarks that you might miss. Then I stopped in at the McNally Jackson bookstore on 52 Prince Street. I’m beginning to dream about Italy now so I bought some Italian literature. I’ve been reading <a href="http://www.amazon.com/gp/product/0312426844?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0312426844">Midnight in Sicily: On Art, Food, History, Travel and la Cosa Nostra</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=0312426844" width="1" height="1" /> by Peter Robb so I bought Giuseppe Di Lampedusa’s novel <a href="http://www.amazon.com/gp/product/0375714790?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0375714790">The Leopard: A Novel</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=0375714790" width="1" height="1" /> which is described in Peter Robb’s book. They also had the Luchino Visconti DVD of <a href="http://www.amazon.com/gp/product/B00003CWQL?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00003CWQL">The Leopard &#8211; Criterion Collection</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=B00003CWQL" width="1" height="1" /> film so I bought that too. And I bought Umberto Eco’s <a href="http://www.amazon.com/gp/product/015603297X?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=015603297X">Foucault&#8217;s Pendulum</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=015603297X" width="1" height="1" /> which I’ve heard a lot about. I really spent too much money on this trip but it was mostly for things I was planning to buy eventually.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/SkylineHotelRoom.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Skyline Hotel Room" border="0" alt="Skyline Hotel Room" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/SkylineHotelRoom_thumb.jpg" width="404" height="304" /></a></p>
<p>After that I took the subway back to the Skyline Hotel where I was finally able to check in. It was 3:00 PM by then. I had trouble finding my room. First I had to take the elevator to the second floor then walk down a passageway to another building and take the elevator to the third floor. Fortunately there was a soda machine just outside my door which I used frequently to stay hydrated. I took a cold shower because I was sticky with sweat and put my purchases in my luggage.</p>
<p>For lunch I walked&#160; five blocks south on 10th Avenue to <a href="http://www.halloberlinrestaurant.com" target="_blank">Hallo Berlin</a>. This was an excellent opportunity to get some German food in preparation for my trip to Berlin. And they had Berlin specialties like currywurst and Berliner Weiss. I sat at the bar and ordered a Sprite and two types of curry with red cabbage, German potatoes, and sauerkraut. Plus a side dish of two potato pancakes with applesauce and sour cream. The restaurant was decorated with many German banners and advertisements for brands of beer.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/HalloBerlin.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Hallo Berlin" border="0" alt="Hallo Berlin" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/HalloBerlin_thumb.jpg" width="404" height="304" /></a> </p>
<p>I took another cold shower when I got back to my hotel room because even a short walk in the muggy heat was enough to make you sweat. I had a ticket for a show in the East Village but it was too early to head down there so I took the subway to 23rd Street again and walked south to find another bookstore, <a href="http://www.idlewildbooks.com/" target="_blank">Idlewild Books</a>. This bookstore specializes in travel and world literature organized by country so I thought it was worth a visit. I bought a copy of <a href="http://www.amazon.com/gp/product/1846700418?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1846700418">Time Out Shortlist Venice</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=1846700418" width="1" height="1" /> , <a href="http://www.amazon.com/gp/product/1905428308?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1905428308">A Hedonist&#8217;s Guide to Berlin (A Hedonist&#8217;s Guide to&#8230;)</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=1905428308" width="1" height="1" /> , and <a href="http://www.amazon.com/gp/product/1845115783?ie=UTF8&amp;tag=robertrobbins-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1845115783">Strolling through Venice: The Definitive Walking Guidebook to &#8216;La Serenissima&#8217;</a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=robertrobbins-20&amp;l=as2&amp;o=1&amp;a=1845115783" width="1" height="1" /> . After leaving the bookstore I walked further south until I found Union Square Park where I saw and photographed the statue of George Washington and that peculiar public art installation, the Metronome. Then I took the subway back uptown to 50th Street and walked west to the Skyline Hotel where I needed another cold shower.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/MetronomeUnionSquare.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Metronome Union Square" border="0" alt="Metronome Union Square" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/07/MetronomeUnionSquare_thumb.jpg" width="404" height="304" /></a> </p>
<p>Although it was still pretty early for my show, I then returned to the subway and went to the East Village. I still remembered the neighborhood from my previous NYC trip. I had two hours to kill so I revisited some places. First I ordered a Berliner Weiss at <a href="http://www.currywurstnyc.com/ " target="_blank">Wechsler&#8217;s Currywurst &amp; Bratwurst</a> because it is the one place where they won’t give you any grief for ordering it. I was thinking of having a tshirt made for my Berlin trip which would read,<em> “Gib mir ein Berliner Weiss und Fresse!”</em> After sucking down<em> </em>my Berliner Weiss through a straw I headed next door to Kim&#8217;s Video and Music where I bought a DVD of the Italian film <em>Salvatore Giuliano</em>, a film about the Sicilian Mafia. </p>
<p>I then bought an ice cream cone at Ray&#8217;s Candy Store. Ray&#8217;s Candy Store is a shabby little dive but it has become quite famous due to the owner’s struggles to keep his business and make rent. I saw a lot of photos of Ray&#8217;s Candy Store on a photoblog while researching my initial trip to East Village. I didn’t dare to enter the place on my first trip because there seemed to be a lot of low lifes hanging out there according to the photoblog. Anyway the ice cream cone proceeded to melt faster than I could eat it. Fortunately I was able to clean my sticky fingers in a water fountain in Tompkins Square Park.</p>
<p>Finally I headed over to the <a href="http://www.vampirefreaks.com/ " target="_blank">Vampire Freaks Store</a> and got up the nerve to enter this time. I headed straight to the CD rack where I immediately kicked in the sliding door, making a racket. I quickly picked out three <em>Clan of Xymox</em> CDs to cover my embarrassment. My purchase was rung up by a dude covered in tattoos. He had big spikes of hair and commented on how quick I was. I feel too old to stop in at Goth and other alternative music stores now. I doubt that the goths will ever gain their immortality from an ancient vampire since they find old people too creepy to associate with. LOL. <em>Clan of Xymox</em> CDs are hard to find so I did want to buy as many as I could.</p>
<p>I sat in Tompkins Square Park until it was time for my show to start. This was meant to be the highlight of my trip, an actual Off-Broadway show that promised to be really edgy. And I was not disappointed as you will read in a minute. The show I selected was <em>The Last Burlesque Show In The World</em> at the <a href="http://www.ps122.org/" target="_blank">Performance Space 122</a>. I had taken a photo of PS 122 on my previous trip to the East Village but that was a lame way to honor the Off-Broadway scene. I bought my ticket online so I just showed them my printed receipt to get an actual ticket. This was something I was agonizing over so I was pleased they didn’t refuse to honor my online ticket purchase. The show was late to start so I joined a crowd that was kept waiting in the sweltering hallway of the second floor stage.</p>
<p>Fortunately it was slightly cooler in the theater. There was a pre-show bar where they sold beer, bottled water, and wine. At first I thought this might be part of the show but it was an actual bar they wheeled out during intermissions. I was dying of thirst after the long wait in the hall so I ordered a beer during intermission.&#160; After another half hour wait the burlesque show began. Although the show was not exactly a serious dramatic performance, I accepted it as a fine example of the edgy comedy Off-Broadway is known for, in the tradition of the Ridiculous Theater Company. There was some nudity but most of the performers wore pasties and thongs. Then something happened which was truly a WHAT THE FUCK moment! This was so shocking that I was impressed by just how daring Off Off-Broadway could be. A nude man came onstage wearing nothing but a top hat and sang Unforgettable. This was Mat Fraser, born with phocomelia of both arms, due to his mother taking thalidomide while she was pregnant. Mat Fraser had the biggest penis I’ve ever seen and seeing him nude with his flipper arms was pretty shocking. This didn’t gross me out but it was rather unexpected.</p>
<p>After the show was over I got a chance to see St. Marks Place at night. The street was crowded and had more of a street festival vibe than it does during the day. I took the subway back uptown to the Skyline Hotel and called it a day. The Performance Space 122 show was certainly memorable and fulfilled my expectations for high weirdness from the East Village.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=761</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>World Wide Depression In 2011</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=757</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=757#comments</comments>
		<pubDate>Mon, 05 Jul 2010 16:24:27 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[budget]]></category>
		<category><![CDATA[depression]]></category>
		<category><![CDATA[economics]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=757</guid>
		<description><![CDATA[Today I found this article on http://www.reddit.com/r/Economics/,&#160; 23 Doomsayers Who Say We’re Heading Toward Depression In 2011. The severity of the economic downturn is already apparent in state budgets which are far in the red. With unemployment benefits running out and state budget cuts closing social programs you can expect to see more visible signs [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found this article on <a title="http://www.reddit.com/r/Economics/" href="http://www.reddit.com/r/Economics/">http://www.reddit.com/r/Economics/</a>,&#160; <a href="http://wallstcheatsheet.com/breaking-news/economy/23-doomsayers-who-say-were-heading-toward-depression-in-2011/?p=13823/">23 Doomsayers Who Say We’re Heading Toward Depression In 2011</a>. The severity of the economic downturn is already apparent in state budgets which are far in the red. With unemployment benefits running out and state budget cuts closing social programs you can expect to see more visible signs of the global economic apocalypse. </p>
<p>Fortunately the state of Pennsylvania did not have another budget impasse this year. The budget has been passed so I don’t expect to be laid off this year. However, the state of Pennsylvania does not have a genuinely balanced budget. I expect the state budget crisis to get worse and worse until it eventually puts the non-profit agency I work for out of business. </p>
<p>There are several steps I will be taking to prepare for the great depression. It is important to do some things while you still have a job and the money to do things. Here is my list of precautionary spending:</p>
<ol>
<li>Buy more work clothes suitable for job interviews. </li>
<li>Explore the area by taking cheap staycations in small towns which I may need to find for job interviews. </li>
<li>Invest in office equipment for freelance work. I need a new computer chair and a secondary hard drive.</li>
<li>Throw out junk. If I have to move away for a job, I will need to reduce the amount of stuff I will need to pack. </li>
</ol>
<p>The last time I was unemployed for a long time, I had to drive up to Wellsboro for a job interview. I also drove to Pittsburgh. Being unemployed actually forces you to travel a bit more. You have to be on time so it pays to familiarize yourself with a few routes. </p>
<p>Divesting myself of the possessions I don’t really need is a long term goal. I can’t throw everything out at once or I will be hit with a huge garbage bill. So far I have thrown away some filmstrip projectors that I bought for their nostalgia value. Needless to say, I don’t really need filmstrip projectors! They were too large to sell on eBay. I probably would have lost money on the shipping. So they went out with the garbage. I will try to sell my filmstrips on eBay but if they don’t sell they will be thrown out too.</p>
<p>I also have some old computer equipment which I’ll trash. I have an old inkjet printer with too much ink dried up in it. I have a flatbed scanner which I’ve replaced with a better scanner. And I have a small VGA monitor which I really don’t need. </p>
<p>But my biggest problem is the piles of books everywhere. I have gotten rid of many books through book swapping web sites like <a title="http://bookmooch.com/" href="http://bookmooch.com/">http://bookmooch.com/</a>, <a title="http://www.paperbackswap.com/index.php" href="http://www.paperbackswap.com/index.php">http://www.paperbackswap.com/index.php</a>, and <a title="http://www.swaptree.com/userhome/" href="http://www.swaptree.com/userhome/">http://www.swaptree.com/userhome/</a> but I need to list many more books. It costs money to ship books for swap so I need to do this while I still have a job.</p>
<p>The great depression will be very disruptive. It will bring many changes to the lives of a lot of people. There may be some positive aspects to the situation. For example, it may be good for an eligible bachelor such as myself. I like to live alone but it may become difficult to remain unattached as more and more women become truly desperate. I’ve read many sob stories about single women who have lost their job and health insurance. They really can’t afford to remain single any longer. The best solution to such a problem is to find a man with a job and get on his health insurance plan. So far I have only seen one woman adopt this scheme <a title="http://www.willmarryforhealthinsurance.com/" href="http://www.willmarryforhealthinsurance.com/">http://www.willmarryforhealthinsurance.com/</a> but we can expect more. I like to joke that I’ll get married when I’m the last man on earth with a job. That day is soon coming!</p>
<p>Since it has always been difficult to find a job in this area, the great depression may be my opportunity to move to a big city like Philadelphia or New York City. I’m too comfortable where I am now to move to the big city. But if things get bad enough around here I may angle for a job in Philadelphia or move closer to New York City. This is how my frequent trips to New York City may pay off in the end.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=757</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Museum Mile In Manhattan</title>
		<link>http://williamsportwebdeveloper.com/cgi/wp/?p=755</link>
		<comments>http://williamsportwebdeveloper.com/cgi/wp/?p=755#comments</comments>
		<pubDate>Sun, 27 Jun 2010 13:08:00 +0000</pubDate>
		<dc:creator>Robert S. Robbins</dc:creator>
				<category><![CDATA[travel]]></category>
		<category><![CDATA[Manhattan]]></category>
		<category><![CDATA[Museum of Sex]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[The Frick Collection]]></category>
		<category><![CDATA[Whitney Museum of American Art]]></category>

		<guid isPermaLink="false">http://williamsportwebdeveloper.com/cgi/wp/?p=755</guid>
		<description><![CDATA[Yesterday, June 26th 2010, I made my seventh trip to New York City this year. My purpose on this trip was to visit some of the minor museums on Museum Mile, Upper East Side, Manhattan. As usual, I took the 6 Lexington Avenue Local subway from 51st Street to reach 68th Street Hunter College. I [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, June 26th 2010, I made my seventh trip to New York City this year. My purpose on this trip was to visit some of the minor museums on Museum Mile, Upper East Side, Manhattan. </p>
<p>As usual, I took the 6 Lexington Avenue Local subway from 51st Street to reach 68th Street Hunter College. I was surprised to receive two Liberty dollar coins in change for my MetroCard purchase. Dollar coins are rare because you never seem to find them in circulation. Even though I studied the area the night before on Google Maps I managed to head off in the wrong direction again. I am seeing more homeless people on the mean streets of NYC and I even saw someone sleeping on the street on the Upper East Side right in front of some posh Fifth Avenue hotels.</p>
<p>The first museum I visited was <a href="http://www.frick.org" target="_blank">The Frick Collection</a>. This museum gives you a glimpse of the Gilded Age of New York City. It is a small museum but the interior is very elegant and the artwork is by some of the great European masters. Henry Clay Frick was a steel magnate and the museum is housed in his former mansion on Fifth Avenue. The Frick Collection was the highlight of my trip and made me glad I spent another day exploring New York City. Unfortunately, they do not allow photography.</p>
<p><img title="The Frick Collection" alt="The Frick Collection" src="http://farm5.static.flickr.com/4094/4738271674_61296f8b5e.jpg" /> </p>
<p>Among the artwork I saw was several high society portraits by James Whistler, Rembrant’s “<em>Self-Portrait</em>”, and Joseph Mallord William Turner’s “<em>The Harbor of Dieppe</em>” and “<em>Cologne: The Arrival of a Packet-Boat: Evening</em>”. Turner is famous for his paintings of Venice. I was disappointed that these paintings were not of Venice but they looked very much like them. They were certainly more impressive in real life than in photos due to their size and vivid colors. I was struck by one piece of bronze sculpture of Hercules which was black with gold detailing. I generally prefer modern art to classical art but this sculpture seemed especially noble. I even had the thought that I should try to recreate that look in Photoshop. This is evidence that The Frick Collection had been inspirational to me. </p>
<p>The Frick Collection is one of the lesser known treasures of the Big Apple but it was still a bit crowded. I had some trouble seeing “<em>St. Francis In The Desert</em>” by Giovanni Bellini which everyone seemed to like so they stood in front of it for long periods of time. But the paintings that most captured my imagination were Jean-Honoré Fragonard’s “<em>The Progress Of Love</em>”. “<em>Reverie</em>” in particular caught my eye. It is a charming vision of an elegant past and immediately inspired my own reverie of a lush wonderland which would be sustained by the dreaming of entranced maidens. There was also a book-lined study which I thought was a particularly charming setting for some of the portraits, including Henry Clay Frick’s portrait.</p>
<p><a href="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/06/JeanHonoreFragonardReverie.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Jean-Honore Fragonard Reverie" border="0" alt="Jean-Honore Fragonard Reverie" src="http://williamsportwebdeveloper.com/cgi/wp/wp-content/uploads/2010/06/JeanHonoreFragonardReverie_thumb.jpg" width="474" height="772" /></a> </p>
<p>The Frick Collection has a bookstore where I bought &quot;<em>The Frick Collection: Handbooks of Paintings</em>&quot; and &quot;<em>Italian Renaissance Sculpture</em>&quot;. I noticed that the sales clerk was able to speak French to one customer. I’m curious as to how people manage to get by without knowing the language of the country they are visiting so I took note of this exchange. I only spent one hour or maybe an hour and half there because I had a restaurant reservation for 1:00 PM. You can probably see everything this museum has in one hour because it is really quite small.</p>
<p>For lunch, I went to the <a href="http://match65.com/" target="_blank">Match 65 Brasserie &amp; Sushi Bar</a>, a little French restaurant that also serves sushi. There aren’t very many restaurants on the Upper East Side so I had to prowl the area using Google Maps to find something suitable. Match 65 is on East 65th Street so I only had to walk south for five blocks. I made my reservation online using <a title="http://www.opentable.com" href="http://www.opentable.com">http://www.opentable.com</a> which is linked to by <a title="http://www.yelp.com/" href="http://www.yelp.com/">http://www.yelp.com/</a> reviews. By the way, Yelp is a good resource for finding restaurants and stores to visit. Even their <a href="http://www.yelp.com/williamsport-pa" target="_blank">Williamsport</a> page shows that tourists were able to find something in my small town that I did not know about. I may make another staycation using Yelp.</p>
<p>I ordered the <a href="http://en.wikipedia.org/wiki/Croque-monsieur" target="_blank">Croque Madame</a> which is sort of like a toasted cheese sandwich with ham and a scrambled egg on top. There was also a large helping of French fries on the side, <em>les frites</em>. That meal only cost me $25.00 which is pretty cheap for French food.</p>
<p>After lunch I walked uptown to the <a href="http://www.whitney.org/ " target="_blank">Whitney Museum of American Art</a>, another minor museum on Museum Mile that you probably would not visit on your first trip to New York City. Unfortunately most of the floors were closed. Out of the five floors, only two floors were open so I did not see much art there. However, on the third floor was an exhibit of the paintings of Charles Burchfield, “<em>Heat Waves In A Swamp</em>”. I’ve never heard of the artist Charles Burchfield but his work is quite impressive. I saw many paintings of fantastical forest scenes with vibrant patterns in the foliage. His paintings of small town scenes were an excellent blend of representational art with some stylish abstraction. I especially liked the painting&#160; <em>“Icebound Lake Boat”.</em> One room in the exhibit was wallpapered using his design. I spent a lot of time in the museum bookstore looking for a Whitney Museum guidebook or a book on pop surrealism but I did not find anything. Eventually I had to settle on the book “<em>Charles Burchfield: Ecstatic Light</em>”. Except for discovering the work of Charles Burchfield, this museum was rather disappointing. I had intended to be at this museum until 6:00 PM when it closed but I wound up leaving at 3:00 PM and had to find something else to do for a few hours.</p>
<p><img title="Whitney Museum of American Art" alt="Whitney Museum of American Art" src="http://farm5.static.flickr.com/4121/4737651885_ba5924f865.jpg" /> </p>
<p>At this point I decided to make an unplanned visit to the <a href="http://www.museumofsex.com/ " target="_blank">Museum of Sex</a>! This museum is not on Museum Mile so I was not expecting to visit it that day. I took the 6 Lexington Avenue Local subway back downtown to 28th Street and walked to East 27th Street and 5th Avenue. The entrance of the museum takes you right into the museum store where they mostly sell books and no porn. You have to walk through the store to reach the admissions desk. General Admission cost me $16.75. Then I had to walk down a steep flight of steps to leave my bag of previous museum purchases at the coat check which cost $1.00. There is a dingy bar down there that was deserted. When I got back upstairs I found it difficult to tell where the exhibits were. The museum is arranged like a shabby funhouse. The first room had some large video tables playing porn. Awkward! Then I climbed some more steep stairs to the second floor which had more interesting exhibits. I saw some life sized sex dolls and a display case of robot sex which was very amusing. This consisted of a display case of doll-sized robots doing mechanical sex.</p>
<p><img title="Museum of Sex" alt="Museum of Sex" src="http://farm5.static.flickr.com/4075/4737664651_05cbdf9b9d.jpg" /> </p>
<p>Other items on display included various examples of condom packaging, French postcards, Tijuana Bibles, and dildo sculptures. The top floor was an exhibit on animal sex. I never knew that dolphins were such twisted, perverted creatures! I’ll just say that they have that extra hole, the blow-hole, and there was a model of what they do with it. That was the most shocking thing I saw at the Museum of Sex.</p>
<p>I bought a book in the museum bookstore because they didn’t sell porn. “<em>Hos, Hookers, Call Girls, and Rent Boys</em>” is a book that “humanizes the men and women we pay for sex”. All in all, I thought the Museum of Sex was a bit shabby. I was also disappointed that there were no interactive exhibits!</p>
<p>After that I had nothing in particular to do so I walked to Madison Square Park. I took a lot of photos of the Flatiron Building. There is a Shake Shack in Madison Square Park so I stood in line for a shake because I was dying of thirst. The Shake Shack is extremely popular in New York City. I’ve seen it mentioned many times in the Reddit <a href="http://www.reddit.com/r/nyc/" target="_blank">subreddit on NYC</a>. I was given a little pager which shook when my order was ready, even though I only ordered a shake. I thought it was a little odd to be given a restaurant pager at a little park snack stand.</p>
<p><img title="Flatiron Building" alt="Flatiron Building" src="http://farm5.static.flickr.com/4139/4737726419_f48b134df5.jpg" /> </p>
<p><img title="Chelsea Hotel" alt="Chelsea Hotel" src="http://farm5.static.flickr.com/4097/4738480398_18dafc9c5f.jpg" /> </p>
<p><img title="Chelsea Art Museum" alt="Chelsea Art Museum" src="http://farm5.static.flickr.com/4077/4738513308_bd30f17f30.jpg" /> </p>
<p>I still had an hour to kill so I walked along East 23rd Street and found the Chelsea Hotel. I took a lot of photos of this legendary hotel. I saw an Universal News store so I stopped in to buy a copy of Time Out: London and NY Arts. They did not have any foreign language magazines or newspapers. I walked to the very end of&#160; 23rd Street and found the <a href="http://www.chelseaartmuseum.org/ " target="_blank">Chelsea Art Museum</a> but they close at 6:00 PM so it was too late to go in. I did see a very interesting example of architecture along the way, a building that looks like a transparent hamster wheel, the HL23 High Line Building of luxury condos.</p>
<p><img title="High Line Building" alt="High Line Building" src="http://farm5.static.flickr.com/4118/4737901281_09ee6f7c63.jpg" /> </p>
<p>I was still dying of thirst due to the heat so I stopped at two different Starbucks on my way to the bus pickup. In my last hour in New York City I went to the <a href="http://www.colonymusic.com " target="_blank">Colony Music</a> store on Broadway where I bought an official MTA Subway metal sign. I think the sales clerk cheated me out of twenty bucks on the price. I won’t be going there again. On the way home on the bus, we were shown the movie <em>No Reservations</em> starring Catherine Zeta-Jones and Aaron Eckhart. This movie is about the work life of an executive chef of an upscale New York restaurant so it was a good choice. </p>
<p>In conclusion, this was another memorable trip to New York City even though I only visited some small museums. The Frick Collection really made it all worthwhile. I’m still not done with New York City! I still have the American Folk Art Museum, the Chelsea Art Museum, and the New Museum of Contemporary Art to visit. I also want to walk across the Brooklyn Bridge and see part of Brooklyn some day. My next trip is in July. I will be staying overnight this time so I can finally see a show in the evening. I have not decided what show to see yet but it will probably be Off-Broadway.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamsportwebdeveloper.com/cgi/wp/?feed=rss2&amp;p=755</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
