Notes On Google App Engine

  • I pushed a Python starter app to GAE, and I confirmed that it worked. Then I pushed a Java starter app to the same GAE application. I was getting the "Gwt module 'modulenamehere' may need to be (re)compiled" error.
    • It turns out that when you push an application, it does not replace the old application; it simply pushes the new files, with overwrites where the names are the same and adds where the names are unique.
    • When you push V2, it pushes all files to V2, but it leaves V1, and V1 remains as the application that is run when you enter http://appnamehere.appspot.com.
    • You either have to go to the GAE Dashboard and make V2 the default, or enter http://2.latest.appnamehere.appspot.com. (That's a prefix of version number, plus "latest".) </ul>
    • I've been reading lots of complaints about "scaling down" with GAE. For apps that are run only occasionally, the wall clock time requires to start up a JVM plus a Java framework can be 6+ seconds. Google says they're doing much of their GAE development with Java, but they don't have to worry about scaling down. There are several JVM languages I'm interested in (Java, Jython, JRuby, Scala, JavaScript), but I'm going to need quick start-up time until my app becomes popular, so the decision seems to be between JVM and Python. I don't find the same complaints about Python. Plus, pyjamas and desktop-pyjamas look interesting, and unlike Ruby, Windows is a first-class platform with Python. </ul>

Multiprotocol IM Clients

On the PC:
Digsby
- can be made semi-portable via http://www.mcsoft.online.fr/madcow/?Ninja-Digsby.html
    Facebook
    GMail
    Google Chat
    Twitter
    Linked-in
    NOT Skype

Trillian - I didn’t see a portable
    Facebook
    GMail
    Twitter
    Skype
    Google Chat
    NOT Linked-In

Meebo - doesn’t do Skype, LinkedIn, or Twitter

On the iPhone:
    Beejive - does Google Talk and Facebook
    ?

Object Expected Error in Internet Explorer

I’ve got a web page that works just fine in Firefox but not in IE 8.  It includes HTML that looks like this:

<a href="#" onclick="myFunc(0);">Call myFunc</a>

and in my JavaScript, it includes something like this:

function myFunc(num) {
alert("got here");
}

In Firefox, clicking on the link displays the alert.  In Internet Explorer, it produces an "Object expected" error.

I did a little poking around and I learned that myFunc is not defined in IE.

<a href="#" onclick="alert("Type is:" + typeof(myFunc));">Call myFunc</a>

produces an alert which says, "Type is:undefined".

I defined the function in a systemConfig Tiddler in my TiddlyWiki, so I thought maybe it was something funky about TiddlyWiki.  It turns out that IE has a quirk, in that global functions aren’t visibly globally by default.  Or, maybe it is that references to apparently global functions are qualified with "window."

At any rate, changing my JavaScript to:

function myFunc(num) {
alert("got here");
}

window.myFunc = myFunc;

resolved the problem.

Documentum

I really don't like the implementation of Documentum at my current employer.

Today, Documentum doesn't like me either.  When I click on the name of a file that I used to be able to view, it shows me a blank Internet Explorer page.  Bummer.

UPDATED RESOLUTION:

1. After IE shows the blank window, click in the address bar and hit Enter.  If the Documentum plug-in is not installed on your compter, this will cause IE to go through its do-you-want-to-install-this dialog for Duckumentom.  Let it install.

2. Set the Java proxy (via Control Panel Java applet) to official employer's PAC file, exit all browsers, ensure that NO Java is running, and restart IE</em />.

RETURNING TO THE ORIGINAL STORY

  • I tried rebooting.  No joy.
  • I uninstalled all versions of Java, and deleted my Windows tmp directory (there were ~10,000 files there), rebooted, installed the company-approved edition of Java (1.6.0_16). No joy.
  • Uninstall everything from "C:\windows\Downloaded Program Files" (by right-clicking on it and selecting Remove). Revisit Documentum.  It downloaded and installed something.  Still can't open a file.
  • THE NEXT DAY: I'm in the office today (yesterday was VPN).  When I attempted to open a file, it downloaded something ADDITIONAL, and now it works.  I'm thinking that either IE or Java security was confused by the VPN. 
  • If it happens again, I'm going to set both IE and Java to anything-goes for all sites and see what happens. 
  • Oh, you know.... There is something else different besides the VPN.  At home, I use VPN over WiFi.  It wouldn't hurt to try it over a wired VPN connection with the WiFi disabled. 

UPDATE:  It now works from home, over VPN and over WiFi.  My best guess is that there is a cached component (the download that happened on "THE NEXT DAY" above) and that download was failing security or failing to choose the right network adapter.  The conclusion is, when Documentum shows a mostly blank page after you click on a document link, go to the office, connect via wired LAN without VPN, open ANY Microsoft Office document that is stored in documentum, and the problem will go away.

Update 2: It isn't working again.  I'm at the office. 

The following seems to clear it up:

  • Delete temp files in IE.
  • Delete all of C:\Temp.
  • Delete Java temp data (via the Java Control Panel applet)
  • Uninstall everything from "C:\windows\Downloaded Program Files" (by right-clicking on each item and selecting Remove).
  • Reboot.
  • Set IE proxy to official employer's PAC file.
  • Revisit Documentum WITHOUT running my startup stuff.
  • Move to Project Module on project 216745.
  • Select Artifacts view.
  • It wants to install Webtop.  Tell it OK.
  • Navigate to folder containing documents.
  • Wait a minute.
  • Click on a document.  Wait about 2 minutes.  It eventually shows a progress bar and opens the document.

I'm sure it doesn't require ALL of the above, but I don't (yet) know a minimal subset.  Let's see if I can break it:

  • Set IE proxy to file://t:/pac/employer-name-here/proxy.pac
  • Exit/restart IE.
  • Revisit Prism WITHOUT running my startup stuff.
  • Move to Project Module on project 216745.
  • Select Artifacts view.
  • Navigate to folder containing documents.
  • Click on a document.  Does not open.
  • Set the proxy back to official employer's PAC file.
  • It is still broken.
  • Close all IE.
  • Kill javaw.exe
  • restart IE.
  • Revisit Prism.
  • Move to Project Module on project 216745.
  • Select Artifacts view.
  • Navigate to folder containing documents.
  • Click on a document.
  • It works again.

New theory -- Maybe once javaw.exe throws an exception, it never fully recovers.  Try this the next time it fails:

  1. Set proxy to official employer's PAC file.
  2. Exit all IE.
  3. Make sure javaw.exe is NOT running.
  4. Start IE again and try to access the document.

"Final" disposition:

  • When at work, set the Java proxy (via Control Panel Java applet) to official employer's PAC file, and restart IE</em />.

 

iTunes - Synchronize at a Scheduled Time

I wanted my iTunes to synch (or ‘sync’ if you prefer) with my iPhone at 7:20 each morning.  NPR updates its A.M. news podcast at 7:15, and I leave for work at 7:30.  Since I take the subway, I can’t listen to the news via radio, so I wanted to get my news via podcast.



I couldn’t find a way to do this without programming, so I wrote a little Windows program to start iTunes, and tell iTunes to start synchronizing.



Source and executable are attached below.  Note that it assumes you installed iTunes to C:\Program Files\iTunes.  No warranty. Code placed in the public domain.



Just create a Windows scheduled task to run this at the time of your choosing.



What to DO With an iPad?

I’ve been pondering the merits of the iPad, and I’ve had a tough time coming up with a compelling use for it. Until now…

I (and several hundred thousand others) work for a large corporation, that has a highly restrictive firewall and “locks down” the software on its laptops and PCs. Fair enough. The LAN and the computers belong to it.

But I want to check my personal email once in a while. (All webmail is blocked by the firewall.) And there are many people who want their Twitter/Facebook/you-name-it. Carrying a second (personally owned) laptop with 3G or 4G would be a pain, and it would really be too big for most cluttered desks anyhow.

Enter the iPad. I could slide it into my existing laptop bag. It is relatively light. It runs for 10 hours, so I can use it all day. The limited data plan would be enough for email and Twitter, supplemented with WiFi at home. It would even be more convenient to carry to meetings than my laptop, and I can listen to eBooks/podcasts or watch movies or Ted Talks on the subway.

In fact, it is even more valuable because my employer does NOT use them. The security guards won’t fuss that I’m carrying equipment out the door without a pass.

It is a 10-inch window to the outside world for the cube-dweller!

Remote Desktop to Windows 7 Home Basic

I want to use Remote Desktop to control a PC which is running Windows 7 Home Basic (we’ll call this PC ‘the host’).  Officially, this isn’t possible.  Here’s my unofficial idea.

  1. First, go to the host and enable the Telnet service on the host.  (Yes, it is included with Win 7 HB.)
  2. Also at the host, enable Remote Assistance.
  3. Still at the host, enable file sharing of C:\temp. (Create it, if the folder doesn't exist.)
  4. At the client, telnet to the host and login.  Then enter "msra /saveasfile c:\temp\file1 yaddayadda" and logout.
  5. At the client, browse to the host's shared \temp folder, and open the file1.msrcincident file.  The Remote Desktop client will start and connect to the client.

I got this far, but the prompt to accept the connection never showed up on the host.  Assuming I get that debugged, it may be necessary to install PTFB on the host, to automatically click OK on the do-you-want-to-accept-the-connection prompt.

Once everything is set up, you could put the msra command line as a scheduled task on the host, and run it every day.

Windows Sound Output to Multiple Devices

I wanted Windows to send output to two devices.  Same content.  Just send it to my amplifier (via HDMI) and to a wireless audio transmitter.  Both the HDMI and the analog audio devices are on the Acer Revo motherboard.

Windows 7 insisted that it could send output to one or the other, but not to both at once.  I Googled and Googled, and I found others who wanted to do the same thing, but no one succeeding.

So I dropped $40 on a SIIG USB SoundWave 7.1 Digital audio device.  It is just a USB audio ‘card’ for Windows, with speaker, headphone, and SPDIF outputs. 

Since my amp has SPDIF input, I send the digital audio to the amp via SPDIF, and I used the headphone output to send the output to the wireless audio transmitter.  The SIIG driver lets you turn on/off any of its outputs, so I was able to tell WINDOWS to send output to the SIIG (only), making Windows happy with its one-and-only-one-output-at-a-time policy, and I was able to use the SIIG to split the output to my two devices.

Weather.com Versus AdBlock

Weather.com stopped showing the live Radar map today.  After tinkering with exception rules, I found that adding a whitelist entry for:

@@|http://www.weather.com/common/a2/OASAdFrame.html?position=PointSpon*

brought back the radar weather map.