Build desktop apps with web UI and Python

January 5th, 2009

The next release of Appcelerator Titanium (PR2, due January 23rd) is slated to include support for Python and Ruby!

Titanium is a completely open source competitor to Adobe AIR. It lets you build installable desktop applications that build their GUIs via a built-in WebKit renderer (in other words, you can use HTML/CSS/JavaScript to build a GUI, just like you do on the web). The next version of Titanium is going to include support for Python and Ruby, which means that you can use something other than just JavaScript for creating your desktop apps.

I haven’t built Titanium yet to see how it works (script type=”text/python”?), but the fact that they’re working on this is very interesting.

Python

Making web development suck less

January 5th, 2009

We make shitty software… with bugs!
old Living Videotext slogan, as reported by Dave Winer

I love that quote. On the surface, it sounds disparaging about the software you have today, but it’s actually more of a statement of hopes for the future. The status quo, in fact every status quo, is less than ideal. It’s great to be proud of your products and where you are, but it’s even more important to keep in mind how much more there is to do.

Early in my career, I worked at the ANS Network Operations Center. ANS ran the original NSFNet and provided internet and dial-up connectivity for America Online, as well as a number of large companies and research labs. We had the internal slogan “we suck less”, and it was the same idea as the “we make shitty software” quote. At ANS, we did suck less than our competitors. But, every time a customer’s connection was down we knew we had work to do to make things even better.

I’ve been doing web-based software development for a long time, and the tools for creating web-based software have improved tremendously. Server side frameworks like Rails, TurboGears and Django have made writing typical server side code far easier. Client side toolkits like Dojo, jQuery and Prototype/Scriptaculous have made creating better client experiences even easier. And tools like Firebug have made it much easier to debug an application and tweak its appearance on the fly.

But, developing compelling web-based applications still sucks. Its still more work than it should be in the ideal case. I’m sure that the people working on all of those tools, and all of the competing tools, all have ideas on how to make things better and will all be pushing the state of the art forward and removing a bit of suckyness with each release.

I’m delighted to say that starting today I am working with Ben Galbraith and Dion Almaer at Mozilla Labs on web development tools. I’ve been a reader of Ben and Dion’s Ajaxian site for years and I know how much thought they’ve put in to making webdev better, so I’m really excited to be joining their group. And Mozilla looks like a fantastic organization to be a part of.

It’s still a very new group, but you can bet that every day I’m going to be thinking about how I can help make web development easier, faster and better.

Python, Software Development

A change to my blogging

December 28th, 2008

First of all, my blogging has been very sporadic of late. Well, it’s always been irregular, and that’s not going to change. I do plan on blogging more frequently than I have been over the past couple of months. I have recently concluded a very busy job search (more on that in a separate post) and can get back to a bit more writing.

Blue Sky on Mars (BSOM) has been my blog for everything for several years now. I’ve had lots of software development blog postings, but also have had articles about parenting, politics, music, money and, as you’d get on Woot, random crap. Not to mention things that originated on other sites like delicious and twitter. I want to change things on BSOM to make things more useful and predictable.

BSOM has been largely about software development. Now, it will be exclusively about building software products including software development and product management, possibly with some software process mixed in for good measure. Everything that appears on BSOM henceforth will be longish articles and commentary, all related to modern software.

I will still use Delicious to track interesting things that I find online, and Twitter for small, random bits of commentary. I use Friendfeed to aggregate all of that stuff.

Finally, I’ve started a blog over at KevinDangoor.com for all of the non-software stuff that had previously been here. I won’t be doing anything crazy like moving blog posts from here over to there, however… A lot of people find my writing via search engines and I don’t want to disrupt that.

To sum up: subscribe to BSOM for software topics, KevinDangoor.com if you’re interested in my views on other things, follow me on Twitter for the truly random or subscribe to my Delicious bookmarks for cool stuff that I find.

(By the way, there will be no change to my feed that appears on Planet Python which is focused strictly on my Python category.)

Random

Beyond the Source: Growing Your Community

December 3rd, 2008

I have just recorded a screencast version of my php|works/PyWorks 2008 opening keynote: Beyond the Source: Growing Your Community. They gave me the option to talk about anything I wanted to, and so I decided to do a talk on marketing of open source projects.

Python, Software Business , , ,

Dinner Tuesday @ PyWorks?

November 8th, 2008

My flight to PyWorks arrives around 6:20pm on Tuesday, and I anticipate needing dinner after I get to the hotel. Anyone want to meet up for dinner there?

Update: I may not be coming in on Tuesday after all. We’ve got some illnesses going around in the family, so it’s looking like I’ll come in on Wednesday.

Update 2: I’m coming in today after all.

Python

Google App Engine Hack-A-Thon Ann Arbor 11/17

November 2nd, 2008

I started the ball rolling on this a few weeks ago, and I’m thankful that some folks picked up that ball and ran with it. I’m reposting Matt Simmons’ announcement here:

The Michigan Python Users Group (MichiPUG) in conjunction with Google are happy to present: Google App Engine Hack-a-thon: Ann Arbor

What: An App Engine developer event for Google App Engine!

  • Learn about Google App Engine: We will have talks on the major features of Google App Engine at different points throughout the day. We will run through developing an app with the SDK and show you how to deploy and manage applications on Google App Engine.
  • Build With Us, or Build Your Own: You are welcome to bring along anything you can prepare ahead of time (sketches, designs, web page mock ups, etc.) and use the time and information provided to develop your idea into a working application, then share it with the world. Or, you can code along with us in building a Google App Engine application from start to finish.

Who: You! Your ideas and your enthusiasm complete the mix. We will assume some basic skills and preparation for the event, including an
existing knowledge of the Python programming language. We’ll provide power, copies of the SDK, and an awesome ambiance. Just bring yourself and your laptop. Some light snacks and beverages will be available, as will a pizza lunch. If you decide to bring extra food, please make sure it is computer friendly. :)

When: Monday Nov 17th, 2008 10AM-6PM

Where: Google’s Ann Arbor Office: 201 S. Division St. Ann Arbor, MI 48104

You can read more about previous hack-a-thons at the AppEngine blog
(http://googleappengine.blogspot.com)

RSVP for the Ann Arbor event with the link below.
http://hackathon.appspot.com/index.html?event=agloYWNrYXRob25yDAsSBUV2ZW50GLw2DA

Looking forward to seeing you there!

Python ,

Changes coming to Paver

October 30th, 2008

Paver is the Python-based build tool that I released several months ago. It uses a Rake-like approach; you create a .py file that is filled with “tasks” which are basically just functions that can be invoked from the command line. Paver has largely been focused on automating Python projects.

Last week, I got together with Marshall and Matt from Zattoo. They’ve been working on a tool called pytoss which is focused on deployment. There are two parts to pytoss: the library and the “tool”. The library is being broken out into a new project called CloudControl, and it provides all kinds of high-level, handy deployment goodies on top of Paramiko. And it’s liberally licensed.

There’s a lot of overlap between pytoss’ tool component and Paver. So, we got together to see what we can do about that. The two approaches were already quite similar. There are a handful of small differences, and I like some of the pytoss approach. At a high-level, here’s what’s going to happen:

  • the pytoss tool part will go away
  • Paver will become less Python project-specific (but won’t lose the Python project-specific features it has)
  • the small bit of magic that Paver has will go away
  • Paver will add some optional support for CloudControl for deployment
  • Paver will also inherit some nice features like the easy ability to run sub-builds (build other Paver-based projects)

These are just the changes that are in store based on the pytoss integration. There are some other cool features that I have in mind.

I have also decided to move Paver from Launchpad to Googlecode. I find Launchpad to be far more confusing, especially for a small project like Paver. Additionally, bzr’s svn plugin appears to make it so easy to sync with a central server that there’s no reason to make everyone use bzr. Those who want to, can. And those that are used to svn can use svn.

Paver’s official homepage is unchanged, there’s just a new project page, bug tracker and source control URL.

A big thanks to Matt, Marshall and Jonathan for CloudControl and for helping out with Paver!

Python

In the market for a job

October 29th, 2008

Short form: I’m looking for a job. Are you doing something interesting? And hiring? Send me email! kid @at@ blazingthings.com.

I’ve opened up my LinkedIn profile to make it easier to get a quick rundown.

I bring a lot to the table: 20 years of experience in product management, management and software development. Some of my work in Python is out there and well-known. In September 2005, I released TurboGears, which led to an interesting and fun flurry of activity for me (talks at PyCon 3 years running, plus talks at EuroPython, CodeMash and the upcoming PyWorks conference, the Prentice-Hall book with Mark Ramm, the self-produced and published DVD, etc). At Arbor Networks, I applied Python (and others) in many parts of their security product, and even convinced them to release TGWebServices, an open source library that takes the pain out of SOAP. And, this year at SitePen I released the Paver build tool.

Most recently, at SitePen, I was the Product Manager in an otherwise custom services company. I oversaw the launch of SitePen’s growing Support service, and the Dojo Toolbox, created in collaboration with Adobe.

Throughout my career, I’ve been taking collections of raw materials and turning out packages that customers can really use. In the earliest part of my career, I created insurance company billing software for doctors’ offices. The people using that software were decided non-technical. I had to quickly learn to speak their language, figure out what they needed to accomplish and then make it happen. I also had to help spark their interest in our product.

And, I’ve been doing that all along. My audiences have varied and my role has varied (sometimes I’ve been a manager with people reporting to me, other times I’ve been a developer on the team), but the product management aspect has been there all along. I’ve also spent a couple of years doing enterprise sales and have been involved in marketing along the way.

Of course, I’m also a very technical person. I did a lot of the software development on the SitePen products I was involved with. I have a ton of experience in Python (going back to 1995), plus solid experience in JavaScript, Java and Perl. I’ve been using relational and other styles of databases forever. I’ve been using some variety of *nix since the early 1990s.

I’m located in Ann Arbor, Michigan and I’m willing to telecommute (and have done so for 4 of the past 10 years).

There are many jobs out there listed on the various jobs sites, but I also know that there are plenty of great opportunities that are not listed on those sites. If you happen to know of one, let me know!

Python, Random

Rapid Web Apps with TG in Chinese

October 28th, 2008

I just got a mysterious package in the mail from Pearson. It felt like it contained a book… and, indeed, inside there were two copies of Rapid Web Applications with TurboGears in Simplified Chinese:

TGinChinese.jpg

I can only assume that Benjamin T. Hamilton, who is prominently quoted on the front cover, is saying good things about TurboGears and Python :)

Python, TurboGears

Python without explicit self

October 28th, 2008

A month ago, Bruce Eckel wrote about wanting to remove the explicit self parameter from function argument lists in Python. Personally, I don’t mind the explicit self. To me, it makes it feel like all function objects are equal, even those that happen to be methods on classes. That said, Guido wrote an in-depth response, and I certainly recommend that you check that out if you’ve ever considered getting rid of the explicit self.

After reading Guido’s response, I assumed that there must still be some way to eliminate the need for self in Python. Python is an amazingly flexible language. Further, I assumed that somebody had already done it. And sure enough, Michael Foord wrote an article that includes a metaclass called Selfless. As I suspected, this metaclass had to resort to bytecode manipulation. You really can’t change a lot about code objects in Python. I have no intention of using Selfless myself, but the Byteplay library that Michael links to seems neat and interesting.

Python