Skip to content

Weblog About Jim Jim's Resume Discussion Mailing List Search
  You are not logged in Link icon Log in Link icon Join
You are here: have browser, will travel

Twitter Updates
Pro Services

Jim Roepcke specializes in WebObjects (Java), Plone (Zope, Python), and Cocoa (Objective-C).

  • consultation
  • development
  • documentation
  • mentoring

Contact Jim for more information.

Python Tutorial

I presented the Introduction to Python for Plone developers tutorial at the first Plone conference in October 2003. Slides and Video are available to all on the plone.org site.

Badges

Proud Member of the ACM

Proud Member of the Association for Computing Machinery

RSS reader for Mac OS X

NetNewsWire: More news, less junk. Faster

Fantasy Trading of HBWT at:

Listed on BlogShares

Design by:

Powered by Plone
Blog Directory - Blogged
Log in
Name

Password

 
I forgot my password; please send me a new one.
 


Wednesday, March 14, 2007

Penguins stay in Pittsburgh

Yahoo! Sports: Penguins, officials strike arena deal to keep team in Pittsburgh

I'm very glad for Pittsburgh, but it would have been interesting to see an NHL team in Las Vegas. I'm not sure if I'm happy that the Oilers won't have to play the Pens more often (since they remain in different conferences) or be disappointed that us westerners won't see more of that exciting young team...

Thread: 0 replies. reply Last updated: 12:36 PM

Tuesday, March 13, 2007

PETAL and Perl, why must you suck?

In CSC 370 (Database Systems), our current assignment is to write a bunch of UDFs for accessing our local IMDB database, then write programs in 2 languages that display all of the information available about a single production, in HTML. This (like all assignments in this course) is a group assignment.

I chose Python, because it's what I've been using most recently and therefore it would be the easiest to write code quickly in.

One of my team members chose Perl. Ouch, but at least I'm not writing it!

I finished mine last week. I used Python, psycopg2 for PostgreSQL access, and SimpleTAL for templating (again, since TAL is what I've been using most recently and therefore would be fastest to get the job done - but also because TAL is sweet). The program is short and sweet.

In a meeting last week I demoed the program to the group. The fellow using Perl liked the TAL template made and we agreed it would be cool to reuse it for his solution. After all, PETAL is a Perl port of TAL, so why not.

He was having a lot of trouble getting PETAL to accept the data he was giving it. I decided to help him out, even though I haven't written Perl in years, 2 heads may be better than 1.

First of all: After all these years, I still hate Perl! I've never understood how people enjoy writing software with it. Then there's PETAL. I'm sorry to be rude (porting TAL to another platform is a nice thing to do), but what the hell were they smoking when they decided to change the TAL namespace from "tal" to "petal"?

Instead of the standard tal:content, tal:repeat, tal:condition, etc., as the TAL specification states, PETAL uses petal:content, petal:repeat, petal:condition! Now we need two versions of the template - one that uses tal: attributes for SimpleTAL, and one that uses petal: attributes for PETAL. A key advantage of TAL's design is being language neutral, and PETAL threw it out.

Also, the documentation and cookbooks we could find did NOT help us get the damn thing working. All we wanted to do was pass it hashes and arrays of hashes with data from SQL queries executed with DBI. But no matter which combination of stupid variable prefixes we used, it wouldn't work. How hard should it be to pass a hash containing keys to things like arrays of hashes, hashes and other simple values? In Python it's dead simple. It just works.

We ended up having to scour Google for some sample code to figure out what actually works. After a while I finally found this message to a mailing list with some DBI and PETAL code. After adapting our program to use the syntax used in that message, we got it working.

Today's lesson: Perl sucks, so I shouldn't be so surprised when Perl-based libraries don't improve the situation.

Thread: 0 replies. reply Last updated: 5:11 PM

Saturday, March 10, 2007

Video of Dean Kamen's Robotic Arm

Google Video: Dean Kamen's Fully Robotic Arm Invention

When I was a kid, I was pretty hard on my body... sports-wise. My parents used to tell me to cool it or I'd ruin my knees for sure. My standard answer was, "By the time I ruin my knees they'll have lightweight bionic replacements". But then I wrecked my knee on May 29th, 1995, at the ripe old age of 20. D'oh. Either way, it's nice to know that progress is being made!

Thread: 0 replies. reply Last updated: 8:21 PM

Linkdump and Twitter comments

Another big link dump. Some of these links came from other linkdumps. If you think your blog is the source of some of these links, you have my thanks, I enjoyed reading them. :-) Actually, I do remember several links came from this linkdump by Josh.

By the way, I built this linkdump using an AppleScript I wrote that builds links from all open NetNewsWire tabs and puts that HTML into a new MarsEdit post window. This will apparently be part of NNW 3, but I couldn't wait, and well, the script was dead-easy to write, and fun too! If you want the script, let me know.

Now what I need is the same thing for Firefox, I've got a ton of tabs open there too. :-)

Note: Go to the end of this post for my twitter link...

Reg Developer: Developers tell Eclipse why it sucks

LWN: Threadlets

LWN: Thread-based or event-based?

LWN: Fibrils and asynchronous system calls

LWN: Patch: Syslets/threadlets, generic AIO support, v4

MacDevCenter.com: MacFUSE: New Frontiers in File Systems

Los Angeles Times: Always a blast with the Boom

Rough Type, Nicholas Carr's Blog: Freebase: the Web 3.0 machine

Lone Star Times: Worst. Baby Name. EVER.

Coding Horror: Dude, Where's My 4 Gigabytes of RAM?

I, Cringely: The Great Apple Video Encoder Attack of 2007

Grupthink: Could the RTBA (Read the Bills Act) really work?

Macworld UK: Apple subnotebook will run iPhone OS X — analyst

Infendo: GDC: Fils-Aime owns Harrison

Computerworld: Why Apple's 'consumer' Macs are enterprise-worthy

Adactio: Watching the stream

Tenerife Skunkworks: Writing low-pain massively scalable multiplayer servers (via Barista)

mamamusings: why twitter matters

I haven't started using Twitter (yet), but I agree that this lightweight model is killer, and it's going to become more common.

mnot’s Web log: REST Issues, Real and Imagined

Natalie Downe: Hacking del.icio.us with Python

Web Worker Daily: Workstreaming: The New Face Time «

We did this at Macrobyte back in 2000. I tried, very hard yet unsuccessfully to promote this idea at Tyrell in 2002. I wish I had pushed harder, but the pushback was strong enough that I felt it was best to give up. I should have been more proactive and done it myself. I did, on occasion, but not consistently enough. I think part of the problem is that blogging tools just aren't lightweight (see my comments on Twitter above) enough to get people to buy in. I think something like Twitter for work is even better than an IRC channel, because it doesn't have the same distraction potential. That's not to say your Twitter log can't be broadcasted to your workgroup's IRC channel, just that you shouldn't be switching to your IRC client to post something.

Years ago I wrote a Rendezvous/Bonjour-oriented Cocoa app to do something like Twitter. I regret not releasing it, because I think it would have worked really well.

I need to release more of the software I write - I've written a lot of good stuff that I didn't release that as a result didn't receive the attention it deserved to mature.

Web Worker Daily: Refactoring Your Career

A Fresh Cup: Be Your Own Big Brother

Vecosys: Lifestreams could help create new personalised discovery engines

krynsky.com: Lifestream - Could it be the next big thing?

Yup. I need me a lifestream.

People Over Process: Using Twitter at Conferences

I love it!

Christopher S. Penn: How to make custom Twitter groups

ACM Queue: Why Writing Your Own Search Engine is Hard: So you have a grand idea; are you ready for the execution?

David Beach's Blog: Calendar Chatter & The Digital Life Manager

ITworld.com: It's not what you know, but who you know

25 Code Snippets for Web Designers (Part1)

Bob Sutton: Why Specialists are Grumpy and Generalists are Happy

Raganwald: I'll take Static Typing for $800, Alex.

I started reading this blog a couple of weeks ago. This is an old post but I saw someone link to it so I re-read it. Like most posts on that site, they're worth re-reading a few times.

Not Overlooking Much: Choosing a Python JSON Translator

Allegra: The Model Is JSON

Joe Walker's Blog: JSON is not as safe as people think it is

languagestolearn.enqueue("Lua") languagestolearn.enqueue("Erlang")

Pragmatic Programmer: Programming Erlang (out in July 2007, beta available now)

Joel on Software: Can Your Programming Language Do This?

Joel presents another reason to learn functional programming.

Room 101: Tuples +1

ADC: Shell Scripting Primer

20 must-have Firefox extensions

Revish: Microformats at Revish

Firefox add-ons: Operator (for microformats)

Twitter: JimRoepcke (just signed up!)

Thread: 1 replies. reply Last updated: 7:58 PM


March, 2007
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 31
Feb  Apr
 
Sponsors
Research

Jim Roepcke is Willing to Fail

Books

I'm currently reading:

I'm currently reading Programming Erlang

I co-authored:

I co-authored this book