Skip to main content

Web: PyCon 2005

I just finished attending PyCon. Specifically concerning the Web, I'd like to direct your attention to:

http://pyre.third-bit.com/pyweb/index.html
Basically, there are too damned many Web application frameworks, and they all assume you know what you're doing. The PyWebOff is an attempt to figure out which is best from a newbie's perspective. Hopefully the talk will be available in video format later. I just finished reading the blog. She said, "Please, whatever you do, don't try to solve the problem by writing another Web application framework!!!"

http://www.python.org/peps/pep-0333.html
Ian Bicking gave a talk on this. It's an attempt at consolidating some underlying Web application API's. Basically, it's an attempt at making up for lack of a servlet API. It's great in that Web application framework authors may be able to share some code, but it still doesn't address the fact that there are too many choices for the user. Furthermore, it does nothing for the API's exposed to the user himself. These aren't changing, it's the underlying API's that are changing. The API exposed to the user has to remain pretty much the same or else existing code will break :-/

http://www.python.org/pycon/2005/papers/75/LivePage.pdf
Donovan Preston, the author of Nevow, did a talk on writing dynamic Web applications. About the coolest thing is that he transparently transmits selected JavaScript events to the server so that he can write the callbacks in Python. From Python, he can do things like "client.myDiv.innerHTML = 'foo'". Furthermore, he uses an iframe that is always waiting for a response from the server. In this way, he can have the server "push" data to the client at anytime. I'm a bit bummed because I thought of almost all of these things before I had heard of him doing it, but he beat me to the punch in writing a proposal for PyCon. Nonetheless, it's always a pleasure talking to him.

http://sqlobject.org
I just ran into this. It's from Ian Bicking.

http://www.python.org/moin/Aquarium
I didn't write this, but I'm definitely impressed with how well the author summarized Aquarium. I've talked to him via email, and he sounds like a great guy. In fact, he suggested SQLObject would be a good combination with Aquarium, which is news to me ;)

I'm a little bummed about the whole WSGI thing since so much of it is really a duplication of the API's that Aquarium sought to lay down. Porting Aquarium to WSGI is like making an adaptor for an adaptor :-/ Nonetheless, I will probably make an Aquarium WebServerAdaptor to support WSGI's API.

I'm also a bit bummed about the "Ruby on Rails" thing, since Aquarium had the same functionality in a subproject called Piranha about three years ago (both automatic retrieval of data from an RDBMS and automatic code generation for a GUI to work with that data). The essential difference wasn't features, but it was accessibility for newbies, and it didn't help that I "left the Web" for about two years to work on the IPv6 project. In the future, I'm hoping to direct more of my attention to the newbies.

Comments

Popular posts from this blog

Drawing Sierpinski's Triangle in Minecraft Using Python

In his keynote at PyCon, Eben Upton, the Executive Director of the Rasberry Pi Foundation, mentioned that not only has Minecraft been ported to the Rasberry Pi, but you can even control it with Python. Since four of my kids are avid Minecraft fans, I figured this might be a good time to teach them to program using Python. So I started yesterday with the goal of programming something cool for Minecraft and then showing it off at the San Francisco Python Meetup in the evening.

The first problem that I faced was that I didn't have a Rasberry Pi. You can't hack Minecraft by just installing the Minecraft client. Speaking of which, I didn't have the Minecraft client installed either ;) My kids always play it on their Nexus 7s. I found an open source Minecraft server called Bukkit that "provides the means to extend the popular Minecraft multiplayer server." Then I found a plugin called RaspberryJuice that implements a subset of the Minecraft Pi modding API for Bukkit s…

Apple: iPad and Emacs

Someone asked my boss's buddy Art Medlar if he was going to buy an iPad. He said, "I figure as soon as it runs Emacs, that will be the sign to buy." I think he was just trying to be funny, but his statement is actually fairly profound.

It's well known that submitting iPhone and iPad applications for sale on Apple's store is a huge pain--even if they're free and open source. Apple is acting as a gatekeeper for what is and isn't allowed on your device. I heard that Apple would never allow a scripting language to be installed on your iPad because it would allow end users to run code that they hadn't verified. (I don't have a reference for this, but if you do, please post it below.) Emacs is mostly written in Emacs Lisp. Per Apple's policy, I don't think it'll ever be possible to run Emacs on the iPad.

Emacs was written by Richard Stallman, and it practically defines the Free Software movement (in a manner of speaking at least). Stal…

JavaScript: Porting from react-css-modules to babel-plugin-react-css-modules (with Less)

I recently found a bug in react-css-modules that prevented me from upgrading react-mobx which prevented us from upgrading to React 16. Then, I found out that react-css-modules is "no longer actively maintained". Hence, whether I wanted to or not, I was kind of forced into moving from react-css-modules to babel-plugin-react-css-modules. Doing the port is mostly straightforward. Once I switched libraries, the rest of the port was basically:
Get ESLint to pass now that react-css-modules is no longer available.Get babel-plugin-react-css-modules working with Less.Get my Karma tests to at least build.Get the Karma tests to pass.Test things thoroughly.Fight off merge conflicts from the rest of engineering every 10 minutes ;) There were a few things that resulted in difficult code changes. That's what the rest of this blog post is about. I don't think you can fix all of these things ahead of time. Just read through them and keep them in mind as you follow the approach above.…