Updated: 9/7/02; 3:38:57 PM.
Mark Oeltjenbruns' Radio Weblog
The glass isn't half full or half empty, it's too big!
        

Monday, April 15, 2002

My wife of 6 years as of 4/15/2002 were in the library talking and heard a crash in the other room.  Shortly afterwards Luke, our almost 5 year old, came in.  I asked him what that crash was.  He said he didn't want to talk about it.  I told him he has to tell us what happened at which point he asked "Why?"  "Because I'm your Dad."  I said and to which Sue added "Come on Luke, spit it out."  Without missing a beat he said he didn't have anything in his mouth and probed it with his finger to reassure us.  Just goes to show, you have to be careful what you tell kids.. 

p.s.  Katie's plastic shovels fell off the counter, that was what the crash was.


6:57:23 PM    comment []

Waiter, there's a fly in my cell phone. Researchers at British Telecommunications look to the way a fruit fly grows its exoskeleton for a hint on improving cell phone networks. [CNET News.com]
12:06:25 PM    comment []

A picture named smallsoapwaredirectoryoutli.gifBoy one thing the Google API did was get me thinking about more ways to integrate content management with what they do. Key point. Google is more than a search engine. It's also a directory and Usenet and news (and images but I've already written about that). Focus on the directory. I love directories. Remember I'm the outliner guy. OK, so how to make the directories work. Distribute them the way you distribute the Web. One simple trick is needed. When Google finds an OPML file, it should branch into a directory displayer like the one we have baked into Manila. How do you think we do directories here? We don't hand-code them. No one has cloned this, as far as I know -- all the OPML displayers so far view outlines as documents. A mind bomb awaits you. Yes, they are documents, but viewed another way, an outline is a mini-website. Have a look at the SoapWare or XML-RPC directories. Then look at this screen shot showing the SoapWare outline as I edit it. See what's going on?? The whole site is a single outline. Easiest site to edit ever. And we do lots of them. That's a key feature of Manila that Slash and Movable Type, etc don't have. One more thing. All the directories in Manila are available in OPML and can be opened and browsed in any OPML-compatible outliner. See the white-on-orange XML button on the directories? They link to the OPML version of the directory. I'm going to turn this into an article on SoapWare.Org. Maybe it's time for this rocket to blast off.  [Scripting News]
8:22:14 AM    comment []

Who Reads What and Why [The Car Talk Guys, via LISNews]

    1. The Wall Street Journal is read by the people who run the country.
    2. The New York Times is read by people who think they run the country.
    3. The Washington Post is read by people who think they should run the country.
    4. USA Today is read by people who think they ought to run the country but don't really understand the Washington Post. They do, however, like their smog statistics shown in pie charts.
    5. The Los Angeles Times is read by people who wouldn't mind running the country, if they could spare the time, and if they didn't have to leave L.A. to do it.
    6. The Boston Globe is read by people whose parents used to run the country and they did a far superior job of it, thank you very much.
    7. The New York Daily News is read by people who aren't too sure who's running the country, and don't really care as long as they can get a seat on the train.
    8. The New York Post is read by people who don't care who's running the country either, as long as they do something really scandalous, preferably while intoxicated.
    9. The San Francisco Chronicle is read by people who aren't sure there is a country, or that anyone is running it; but whoever it is, they oppose all that they stand for. There are occasional exceptions if the leaders are handicapped minority feministic atheist dwarfs, who also happen to be illegal aliens from ANY country or galaxy as long as they are democrats.
    10. The Miami Herald is read by people who are running another country, but need the baseball scores.
    11. The National Enquirer is read by people trapped in line at the grocery store.
[The Shifted Librarian]
8:21:20 AM    comment []

Connecticut To Store Biometric Information.

"I just got word that when I renew my driver's license, I will have to submit to allowing the CT DMV to store biometric information, as well as smile for facial recognition software from Viisage to be able to continue driving. I am so appalled, I don't even know where to begin. With all of the national law enforcement agencies opening up their databases to each other, is this the first step in taking a surveillance society to a tracking society?" [Slashdot]

This is scary since you don't have a choice and you don't know where the information will end up. Could we soon see a day when the government implements a law that hooks library circulation records into these databases? I'd like to think it would never get that far, but then I never thought we'd see something like the Patriot Act.

[The Shifted Librarian]
8:11:41 AM    comment []

A Word Map for Wonderland? Curiouser and Curiouser

"Mr. Paley has created an Internet site, TextArc.org, that uses computer technology to put a new spin on the written word. Visitors to the site, which went online today, can pick from among 2,000 literary classics and watch as each work's complete text is etched clockwise, line by line, in a wide oval on the computer screen.

The texts, which range from Lewis Carroll's "Alice's Adventures in Wonderland" to Balzac's "Z. Marcas," are too tiny to read around the perimeter. Behind the computer glass, though, Mr. Paley's online software is counting each word and noting its location every time it is used. The oval's black center soon fills with legibly larger versions of every word from the source text. Different stories look different. As a result, Mr. Paley's software effectively turns any prose into concrete poetry in which a word's size and location are as important to its meaning as how it is used.

Once TextArc slices and dices a story, the most frequently used words are the brightest. So in the Carroll work, "Alice" glows at the center. And each word's location in this linguistic constellation is determined by its exact locations in the story text. "Cheshire," for instance, is near the bottom, close to the two middle chapters in which the cat materializes. Roll the cursor over a word, and lines pop up that connect it to all the points in the outer circle where the word is used....

New interpretations may also be suggested. Viewing "Alice," for instance, one can immediately see that the novel's second most significant word is "know," a paradoxical choice for a work in which neither the protagonist nor the reader ever fully understands what is happening.

During a test of the site, Mr. Paley conducted his own comparative-literature exercise with Bram Stoker's "Dracula" and Mary Shelley's "Frankenstein." The more prosaic Stoker novel yielded a circle with a few key words clustered hotly in the center; the elegant Shelley novel generated a circle with 50 words of moderate intensity that faded toward the edges.

'I've never read either book,' Mr. Paley said, 'but I got the sense that Dracula was just a story, while Frankenstein is meant to be a metaphor.' He learned later that Shelley's novel was subtitled 'Or the Modern Prometheus.' " [NY Times: Technology]

[The Shifted Librarian]
8:09:30 AM    comment []

Will Rogers. "Half our life is spent trying to find something to do with the time we have rushed through life trying to save." [Quotes of the Day]
8:01:01 AM    comment []

Ann Landers. "Opportunities are usually disguised as hard work, so most people don't recognize them." [Motivational Quotes of the Day]
7:59:24 AM    comment []

H. L. Hunt. "Decide what you want, decide what you are willing to exchange for it. Establish your priorities and go to work." [Motivational Quotes of the Day]
7:59:00 AM    comment []

Scripting the Google SOAP API via VBScript.

Scripting the Google SOAP API via VBScript

Hopefully, there's someone out there besides me who was excited by Dave Winer's post of the Google SOAP API release! Here's a vbscript snippet to call the google spelling API for those of you looking to experiment on Windows XP, or any release of Windows that has the Windows Scripting Host (WSH) and the SOAP 2.0 Toolkit installed. I intend to post more significant examples later but this is all I have time for right now.

Go Google! Can I work there? Please? Pretty please? I promise to develop the most killin' search client on the planet. If you open up images.google.com to the SOAP API, I'll even make it work with this!

REM googlespeller.vbs
dim SOAPClient
set SOAPClient = createobject("MSSOAP.SOAPClient")
on error resume next
REM put the wsdl from the googleapi.zip in the same directory as the vbscript
SOAPClient.mssoapinit("GoogleSearch.wsdl")
if err then
 wscript.echo "WSDL"
 wscript.echo SOAPClient.faultString
 wscript.echo SOAPClient.detail
end if
REM if you need proxy support keep the next 3 lines, if not, get rid of them
SOAPClient.ClientProperty("ServerHTTPRequest") = True
SOAPClient.ConnectorProperty("ProxyServer") = "your.proxy.goeshere.com"
SOAPClient.ConnectorProperty("ProxyPort") = 8080
outputText= SOAPClient.doSpellingSuggestion("YourGoogleKeyGoesHere", "Britney Spars")
if err then
 wscript.echo SOAP
 wscript.echo SOAPClient.faultString
 wscript.echo SOAPClient.detail
else
 MsgBox outputText
end if

Here's what you get:

[www.davidwatson.org]
7:56:47 AM    comment []

Scripting the Google API via C++ (Microsoft Visual Studio.net).

Scripting the google SOAP API via C++ (Microsoft Visual Studio.net)

Here's the next installment in my google SOAP API experiment. I have the major stuff working in a win32 C++ console application. You can get the project files, source, and binaries here. Too tired too say much about it but it works even though it's not iron-clad. I'd like to put the typical while loop and take the commands interactively like a real shell but ran out of steam. If you do that, please send me the updates. Thanks.

/*

PROGRAM: GoogleShell.cpp
AUTHOR:  David Watson
CONTACT: http://www.davidwatson.org/
DATE:    April 11, 2002
PURPOSE: Define a win32 console application for calling Google's SOAP API.

Copyright (c) 2002 David Watson

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/

#include "stdafx.h"
#include "GoogleSearchService.h"
#include
#include

class CCom
{
private :
    HRESULT m_hr;

public:
    CCom() : m_hr(E_FAIL)
    {
    }

    HRESULT Initialize()
    {
        ATLASSERT(FAILED(m_hr));
        return m_hr = CoInitialize(NULL);
    }

    ~CCom()
    {
        if (SUCCEEDED(m_hr))
            CoUninitialize();
    }
 
 static bool SoapSuccess( HRESULT hr)
 {
        if (FAILED(hr))
        {
            std::wcout << L"0x" << std::hex << hr;
            return false;
        }
        return true;
 }

};

int _tmain(int argc, _TCHAR* argv[])
{
    using namespace GoogleSearchService;
    using namespace std;

    if ( argc < 4 )
    {
       cout << "usage: GoogleShell key [page, search, spell] [\"url", "search string", "spelling word"]" << endl << endl;
       cout << "example: GoogleShell \"7ei2nf9e8wn3s7dhjr8dnr8e72lednd7" page "http://www.davidwatson.org/"" << endl;
       cout << "example: GoogleShell \"7ei2nf9e8wn3s7dhjr8dnr8e72lednd7" search "david watson"" << endl;
       cout << "example: GoogleShell \"7ei2nf9e8wn3s7dhjr8dnr8e72lednd7" spell "britney spars"" << endl;
       return 0;
    }

    CCom COM;
    HRESULT hr = COM.Initialize();
    if (SUCCEEDED(hr))
    {
        CGoogleSearchService service;
        CComBSTR bstrResponse;
        GoogleSearchResult retVal;
        ATLSOAP_BLOB blob;
        wstring command ( static_cast(CComBSTR(argv[2]) ));
        wstring SPELL ( L"spell" );
        wstring SEARCH ( LSearch );
        wstring PAGE ( L"page" );
  
        if ( command == SPELL)
        {
            if (CCom::SoapSuccess(service.doSpellingSuggestion(CComBSTR(argv[1]), CComBSTR(argv[3]), &bstrResponse)))
            wcout << static_cast(bstrResponse);
        }
        else if (command == SEARCH)
        {
            if (CCom::SoapSuccess(service.doGoogleSearch(CComBSTR(argv[1]), CComBSTR(argv[3]), 0, 10, false, CComBSTR(L""),false,CComBSTR(L"lang_en"),CComBSTR(L"latin1"),CComBSTR(L"latin1"), &retVal)))
            for(int i = retVal.startIndex; i < retVal.endIndex; i++)
                wcout << static_cast(retVal.resultElements[i].title) << endl;
        }
        else if (command == PAGE)
        {
            if (CCom::SoapSuccess(service.doGetCachedPage( CComBSTR(argv[1]), CComBSTR(argv[3]), &blob)))
                wcout << static_cast(CComBSTR(blob.size,(LPCTSTR)blob.data)) << endl;
        }
    }
    return 0;
}

[www.davidwatson.org]
7:55:03 AM    comment []

Sam continues to find interesting articles/resources:

[Peter Drayton's Radio Weblog]
7:48:40 AM    comment []

Cool! Here's something you don't see every day from Microsoft - an ASP.NET IDE and Web Server that fits on a floppy! Codenamed Saturn, the web site is giving a 403 right now (I'm guessing someone, somewhere's will have mirrored it :-) ), but you can still download a article about it from NeoWin.net. I wonder if they will release the source for the IDE, like SharpDevelop? Maybe under a Shared Source licence? (After all, it's not as if anyone's going to build a business selling IDEs competing against VS.NET) [Peter Drayton's Radio Weblog]
7:48:18 AM    comment []

The full text for Advanced Programming Language Design by Raphael Finkel is available online. A little bit dated (1995) but still interesting, and free!

[Peter Drayton's Radio Weblog]
7:47:34 AM    comment []


© Copyright 2002 Mark Oeltjenbruns.
 
April 2002
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
Mar   May


Click here to visit the Radio UserLand website.

Subscribe to "Mark Oeltjenbruns' Radio Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.