From Python Newbie to Python Guru on the Fast Track: HOW?

Robert W. Cunningham rcunning at acm.org
Tue Apr 4 05:23:27 EDT 2000


Well, I just bit off more than I can chew.  While I know barely enough
Python to patch the occasional errant script, I've never written a thing
of my own.

Now I need to get up to speed FAST to design and develop a
cross-platform UI interoperability environment for Windows-to-Linux that
will allow much tighter integration of Windows apps running on a Linux
desktop, no matter if the Windows app is running locally under Win4Lin
or VMware, or is running remotely on a machine on a LAN or WAN or even
the Internet (via a remote-control app such as VNC).

I've selected Python simply due to the massive support it enjoys on both
platforms (Windows Python is nothing less than amazing), the simplicity
of the language itself, and it's ability to be used for fairly large
distributed programs (via DOPY or PYRO or Fnorb).  However, when the
Windows app is running locally, all unnecessary communication layers
should be eliminated, since there is only one CPU available to run
Linux, the Windows app, and this interface (making for one very busy
CPU).

The goal will be to provide only the connective interface needed to
bridge "the User Interface Gap" in the simplest way possible, even if
that way is not optimal at the start.  For example, all shared
filesystems will be either vfat (if local) and/or NFS and Samba (until
Windows gets native ext2 support ;^)).  This will allow the
implementation of services such as Drag&Drop to avoid having to
transport the dragged item itself, if it is a file, and will allow files
to be used as an intermediary mechanism (including on RAM disks, to
simplify or eliminate any shared memory issues).

Ultimately, I hope to expose Python Linux interfaces to many Windows
services, ones that would permit dynamic application interaction (such
as via ActiveX or OLE/COM), and maybe even to give Linux access to the
Windows Media Player.  The primary focus will be two-fold:  1)  Make it
easier for Windows apps to be sued from the Linux desktop.  2)  Give
Linux full access to Windows applications that have no true Linux
equivalent (such as MathCad, LabView, TurboTax, Quicken, FaxTalk
[answering machine + speakerphone + fax + BBS + ...], etc.).  One thing
I like about this entire approach is that it makes Windows seem more
like an optional Linux add-on than a competitor!

I'm an embedded real-time systems wonk, with lots of hardware how-to (I
hate device drivers with a passion - I've written far too many),
fantastic debugging skills, a decade of design and programming, a thin
layer of OOP, and very little Python experience.  I already program in
at least 10 languages, so picking up a new one won't be hard.  But
learning to use it well can be a bit harder, not to mention all the
extension packages.

As for the time angle:  I'm self-employed, and presently between
clients.  I have at least a few weeks to devote 100% to this effort,
maybe more.  At *least* a hundred hours or so, just to get started.

Then there's the money angle:  I don't mind spending $100 on this, but
I'd like to keep it minimal (I also need to get a new system this month
- this one is on its last legs).

Given where I am, and where I hope to go, what is the fastest way to
fill in the gaps in my knowledge?

I'm looking for the best books and tutorials that will do the job, with
my only access to other Python expertise being this newsgroup (or any
other similar forum that may be recommended).  I will be completely
unable to evaluate these resources until AFTER I've put substantial time
into the effort, so I'd really like to avoid the lemon I'd likely wind
up with if I shop randomly on FatBrain.  And I need to proceed to solid
discussions of (and practice with) the various Python packages fairly
quickly.  Please also include any on-line classes that are known to be
fast-paced and effective.

Right now, I'm reading everything on Python.org, since I'll need to be
familiar with that documentation no matter what else I use.

Suggestions?


TIA,

-BobC





More information about the Python-list mailing list