Test to add Google Gadget to WP
Thursday, April 29th, 2010This is a google gadget with a spider on it.
This is a google gadget with a spider on it.
Testing out the Wordpress app on my new iPad. I stood in line for half an hour in front of the Palo Alto Apple store being photographed and videotaped by all sorts of idiots. The next time Apple releases a product I need to get it from the Stanford store or Valley Fair. The “associate” that I was assigned to put a hard sell on getting Apple Care for it and buying Apple Me, which I think are the only two non-enterprise Apple products I don’t own at this point. Typing on the keyboard in landscape mode is surprisingly easy and accurate.
I struggled mightily with this issue trying to get WebEx to work, so I’m posting my solution on my blog.
The error is “Failed to load GPC extension” when trying to attend a WebEx meeting. I could only find one other post on the whole Internet with this issue and it was unsolved since 2003.
Anyway, the reason I was getting this error was because I had named my hard drive “☯” (the Unicode character for Yin Yang). The solution was the manually uninstall everything (instructions below), reboot, change the name of my hard drive to something boring like “Todd,” and then try again.
Here are the instructions for manually removing WebEx:
a. Open up your MacHD –> User Folder –> Library –> Application Support
Trash the WebEx Folder
b. Go back to your User Folder –> Library –> Internet-Plugins
Trash the WebEx-Plugins Folder
c. Go back to your User Folder –> Library –> Preferences
Trash all WebEx Preference files (3-6 possible prefs)
d. Open up your MacHD –> Applications –> Java –> J2SE 5.0 –> Java Preferences
Click on Delete Files under Temporary Internet Files and delete all all Temp Files.
e. Open up your MacHD –> Applications –> Utilities –> Terminal
type: rm -rf .webex (return)
type exit (return)
f. Empty Trash (not all items may be removed, if not empty trash again after reboot)
g. Reboot system
My theory is that the Meeting Manager installer and program both can’t handle file paths with Unicode/non-ascii characters in them. When I turned on debugging and looked in console I saw pointer problems in both Safari and Firefox:
11/17/08 4:13:24 PM [0x0-0x1f01f].com.apple.Safari[240] Destroy
11/17/08 4:13:24 PM [0x0-0x1f01f].com.apple.Safari[240] Safari(240,0xa0477fa0) malloc: *** error for object 0xec32c8: pointer being freed was not allocated
11/17/08 4:13:45 PM [0x0-0x1d01d].org.mozilla.firefox[234] plugin,NP_Initialize start
11/17/08 4:13:45 PM [0x0-0x1d01d].org.mozilla.firefox[234] plugin,NP_Initialize end
11/17/08 4:13:45 PM [0x0-0x1d01d].org.mozilla.firefox[234] plugin,NP_GetEntryPoints start
11/17/08 4:13:45 PM [0x0-0x1d01d].org.mozilla.firefox[234] plugin,NP_GetEntryPoints end
11/17/08 4:14:15 PM [0x0-0x1d01d].org.mozilla.firefox[234] Destroy
11/17/08 4:14:15 PM [0x0-0x1d01d].org.mozilla.firefox[234] firefox-bin(234,0xa0477fa0) malloc: *** error for object 0×26532c8: Non-aligned pointer being freed
11/17/08 4:14:15 PM [0x0-0x1d01d].org.mozilla.firefox[234] *** set a breakpoint in malloc_error_break to debug
11/17/08 4:14:15 PM [0x0-0x1d01d].org.mozilla.firefox[234] NP_Shutdown
I hope this helps someone else out there who runs into this.
[Update: I tried to send this info to WebEx support and got this in return:
Thank you for trying to contact WebEx Support, but your request could not be accepted for one of the following reasons:
- There was no open case number in the subject line,
- The case number in the subject line refers to a case that is closed,
- Or the case number is invalid.
]
I just downloaded this WordPress app to my iPhone. I’m attaching a picture of Matt with his buddy R2D2. We are in New York, and I regret that I haven’t been able to find an unofficial Star Wars shirt. I may be reduced to buying one at Baby Gap.
Star Wars is his new obsession though he hasn’t seen the movie. A friend across the street has some sort of Star Wars video game. He and Matt will walk around singing the theme that plays whenever the Empire does something naughty or is about to.
Took this picture at FAO Schwartz, where they do a regular show on that keyboard in Big. *Spoiler alert!* The grand finale is Bach’s tocatta and fugue in D minor.
This is the last night of my vacation. I took last week and the preceding Friday off. My favorite kind of vacation is where I hang out at home for the time out. All my books, music, and gadgets are at home. And most of my favorite places are a short drive from my home, so home is an ideal place to spend a vacation as far as I am concerned.
The day before vacation I made a quick list of what I wanted to do with the time off. Eleven days later I am in the happy position of being able to grade my vacation.
Here’s the list from my notebook:
I woke up this morning and read an email from friend (Hi Kent!) stating that my blog had been hacked. Frankly, I deserved the haxoring because I was running an old (2.1.1) version of WordPress — one that had actually been cracked while on the download servers at that.
I exported by blog posts, cleaned out the bad links, deleted every wp file, deleted my database and every associated database user, deleted a bunch of other files that were laying around my htdocs directory, installed WP, imported my posts, and added a new theme.
Most everything made it over okay. I even moved the blog to a /blog directory and updated my .htaccess file to 301 all of the links. The old feed link doesn’t seem to work in Google Reader for some reason. The only real data lose occurred because I used the Exhibit plug in for a bunch of posts, so a lot of my image links were gone when I delet. I may need to redo my album of pictures I found on the ground after I retire.
I’m going to upload a few images to test that feature out and then check the feed links. (Note: WebKit crashed when trying to upload pictures the first time.)
More than a year ago I wrote a “buzzword bingo” application. I was at work and had about three hours to kill while waiting for some scripts to finish, so I hacked together some PHP to pick random words out of a file and put them on a bingo card image that I found on Google image search.
This made conference calls more interesting and probably caused my friends at work to listen more closely than they would have otherwise. It was fun for a while, and then we kind of forgot about it.
The last time I thought about it before this week was when I got a nasty email from someone in Canada complaining that there were 500 bingo cards printed out on their printer in color. Since I hosted this app out of my home directory, my LDAP name was in the URL for every page. I explained that anyone with a browser could have printed it out, which got no response. (I sure hope he doesn’t have a job that requires deduction.)
But anyway, I have been trying to stay abreast of Google’s 6,000 APIs, and App Engine seemed as good a place to start. (I played with Open Social a little the week before.) Porting my simple bingo card app to Python and to Google App Engine seemed like the perfect starter project.
I worked through the tutorial using vim, then I tried to work through it again using Eclipse. Maybe I’m just an idiot, but after using Eclipse for over two years I still don’t really get it. I can run programs and include libraries and set breakpoints for debugging, but I get the impression that somehow I’m doing it all wrong. After a few hours trying to find a browser previewer to show the app dev server, I gave up on Eclipse in search of a new IDE to work with.
And after reading through this thread about Python editors, I downloaded the free (as in speech) Komodo Edit app. I spent most of last night using it to port my bingo card app, and I think it’s a great development environment for App Engine.
I’ve only used Komodo Edit for a little while, but here are the steps I took on my government^WGoogle-issued MacBook Pro (running Leopard) to get it set up for App Engine:
1. Download Google App Engine SDK and install
2. Download Komodo Edit and install. (I installed 4.3.2 for x386.)
3. Configure Komodo Edit
a. Make a command to start the dev server
Tools->Run Command…
In the Command box: /usr/local/bin/dev_appserver.py %p
Check Add To Toolbox
Press the More button
Select Run In New Console (otherwise you won’t be able to run any other commands)
b. Make a command to upload the app to Google
Tools->Run Command…
In the Command box: /usr/local/bin/appcfg.py update .
Check Add To Toolbox
Press the More button
In the Start in box: %p
Select Run In New Console
Note that these commands will show up when you show the Toolbox, which you can see by toggling the “Show/Hide Right Pane” or selecting View->Tabs->Toolbox from the main menu.
c. Add the Google libraries to the code completion path
Go to Komodo->Preferences…
Languages->Python
Add /usr/local/google_appengine
d. Django file extension
This isn’t really a configuration, but remember to save your Django templates (the templating language that Google App Engine uses) with the file extension .django.html to enable syntax highlighting.
e. Add handy URLs
I found it handy to add some common URLs that I was using in development.
To add a URL go to the main menu and select Toolbox->Add->New Url…
I added these:
Appspot login == http://www.appspot.com/
Google App Engine intro == http://code.google.com/appengine/docs/gettingstarted/introduction.html
http://localhost:8080/ == http://localhost:8080/
Double click to launch the default browser, right click and select Open URL in Tab to open it as a tab in Komodo Edit.
f. Use vi mode if it floats your boat
One interesting feature is the ability to use vi or emacs commands in the editor window. You can set this in the Preferences under Edit->Key Bindings, then select Vi under Key Binding Schemes. I turned this on for a while but quickly tired of the novelty.
There is also an emacs mode, but it seems unnecessary because if you know emacs you are already such an efficient programmer that using a program with a gui Komodo Edit would be too jolting, sort of like a speeding race car hitting a large pothole.
g. Getting a side by side view
I heard this complaint in a review of Komodo Edit, so here’s how I was able to do it (not that I really used this):
Put focus on a file you are editing
Window->Move To Other Tab Group
Window->Rotate Tab Group
4. Create a project
I didn’t really get the whole Live Import thing, so I might be doing this wrong. I made a directory, copied the .yaml, .py, and .html files into it, then File->New->New Project… Then I browsed to the directory and saved the project file with the name of the app that I was working on. Be careful naming the project because I couldn’t figure out how to rename project files.
When uploading the app to Google only the necessary files are uploaded, so it doesn’t matter if the project file is in that directory or not.
I’m not sure how the project view (on the left hand side) maps to the file system. I created a directory and moved a file into it from the project view, but that wasn’t reflected in the file system. So I just moved files around with Finder and then selected File->Refresh Status from the main menu.
5. Reflect on the experience
Once I was set up it was very easy to code, test, and deploy with this environment. You can check out the end result at http://wordbingo.appspot.com/ After I password protect editing the buzzwords, I’d like to try to make it multiplayer. But that might require more free time than I have.
(Actually, if I had some extra time I’d really like to set up syntax highlighting and code completion for the Gadget API — because I spend a lot of time on gadgets, gadget ads, and Open Social gadgets. Currently I’m using the Google Gadget editors which are okay but have their limitations.)
Now you have a full accounting of last Friday night between the time that my wife fell sleep putting my son to bed at 8:00 and when I went to bed at 12:30am.
The great Funky 16 Corners blog has a nice write up of the song that my blog is named for. “I’m not weak but not I’m not too strong. But I think I’ve been around too long.” My first choice — Ain’t Too Proud To Blog — was already taken, which sent me looking through my soul CDs for an appropriate title.
In related news, two nights ago Matt was singing “You can feel it all o-o-over. You can feel it all o-ver people” from Sir Duke.