tag:blogger.com,1999:blog-79072462024-03-19T03:39:57.537-07:00Python NotesAnonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.comBlogger44125tag:blogger.com,1999:blog-7907246.post-1169232780476840162007-01-19T10:53:00.000-08:002007-01-19T10:53:01.916-08:00Why I stopped coding - and why I would like to do it againSometimes I wonder why I stopped coding. No,the above mentioned link isn't about me, but I couldn't state it better than this. I feel that I miss today the drive to just "fuss around" with stuff. Now I want to get things done, and little things that get in the way really break the flow.Besides the database issues that the article describes so well right on the first page, there is another one Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com180tag:blogger.com,1999:blog-7907246.post-1132351661863086152005-11-18T14:07:00.000-08:002005-11-18T14:07:41.906-08:00PyKaraoke - Karaoke for LinuxThis is a new project that goes along with my latest sound explorations... I just saw the announcement of PyKaraoke 0.4. PyKaraoke is a karaoke player, written in Python, of course. I'll check you and write about it over the course of this weekend.
Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com79tag:blogger.com,1999:blog-7907246.post-1131377124595314102005-11-07T07:25:00.000-08:002005-11-07T07:25:24.643-08:00The Linux Sound Font Manager ProjectAfter a long time without writing any code... and thus without writing anything in this very blog... I'm finding some time to write code again, now for my personal use. The Linux Sound Font Manager is a new project, aimed a making it easier for a user to add, test, or remap sound fonts. It's part of my ongoing battle with multimedia in Linux.
Why does Linux need a Sound Font Manager? There are Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com67tag:blogger.com,1999:blog-7907246.post-1115338966867470352005-05-05T17:22:00.000-07:002005-05-05T17:22:46.933-07:00Living with JavascriptIt's nice to be back after a couple months of unrelated work... let's start catching up, a lot of interesting things are going on the Python world.
First of all, there is a interesting discussion going on the Python Web SIG regardingJavaScript libraries. After a long thread discussing why everyone else loves Rails (which is something that really makes many Python programmers envy!), we're Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com49tag:blogger.com,1999:blog-7907246.post-1110848918157217192005-03-14T17:08:00.000-08:002005-03-14T17:38:59.263-08:00RAD style programming for web appsIt's nearly one month since I posted my last rant here. I was very busy, and working on a lot of different stuff, so I did not really had time to get my hands on code. But the forced rest was good, because it allowed me to take some time to investigate some of the underlying ideas that were bothering for long.I was a relative early adopter of the then-called event driven programming, when the Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com130tag:blogger.com,1999:blog-7907246.post-1108939112145073512005-02-20T14:38:00.000-08:002005-02-20T14:38:32.146-08:00A curious remark about code structure in PythonPython never ceases to surprise me. Today I noticed something really simple; it's one of those things that can go on unnoticed for ages, but make the code read better.
When coding in several other languages -- C, C or Delphi -- there's the need to declare things before using them. As a consequence, class declarations tend to be organized to satisfy this restriction (of course, there are Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com60tag:blogger.com,1999:blog-7907246.post-1108736697999379722005-02-18T05:51:00.000-08:002005-02-18T08:14:39.856-08:00Trac is great!Well. I may be exaggerating a little bit, but for people like me that easily get lost in the transition from the big picture into the details of the software, Trac is a great tool. My initial experience with Trac was due to the CherryPy project, that adopted it a while ago. Later, I participated in a private project that also relied on Trac for documentation and ticket management. It's a great Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com114tag:blogger.com,1999:blog-7907246.post-1108643754482477302005-02-17T04:13:00.000-08:002005-02-17T04:49:47.403-08:00PC virtualization is coming to ageWell, this is not exactly a post about Python, but it relates a lot to my development experiences. I've been interested in PC virtualization techniques for a long time. I was an early user of VMWare, back when the license (and the price) were not so restrictive. I followed projects such as Bochs, which is a fine piece of software, but it's too slow for practical use; and later Plex86, that for Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com23tag:blogger.com,1999:blog-7907246.post-1107569675894122692005-02-04T18:14:00.000-08:002005-02-04T18:14:35.893-08:00What's the U in URI?It's nice when one finds someone else talking about something that's seemingly evading his own understanding. Permanent URIs (or URLs, for old hats like myself) are one such a beast, at least for me. Roberto de Almeida wrote a good article on URLs for blogs a little while ago. I only found the link today but it still reads fresh. It helped me to organize my thoughts on this subject in some Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com9tag:blogger.com,1999:blog-7907246.post-1106912458608218402005-01-28T03:40:00.000-08:002005-01-28T03:43:42.543-08:00Eat your own dog foodIan Bicking has summed up pretty well what's the problem with documentation, by large: "Tell me what to do, please". Going down this road, I have some suggestions to offer.Every framework author should eat his own dog food. Most of them do... but 'cheat'; they sprinkle some salt over it, so it doesn't taste so bad. Sometimes they feel that it's not enough and drink a wine while using it too. Of Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com31tag:blogger.com,1999:blog-7907246.post-1106840498114399012005-01-27T07:41:00.000-08:002005-01-27T08:50:40.383-08:00Reinventing the wheelWe coders have a strange standing on reinventing the wheel. Most of the time, a programmer will agree that he should reuse code. It's plain logical. So when we see someone baking his own library we say, 'why don't you use library X'? It usually leads to a heated argument as the programmer in question can't justify his reasons to write a new library instead of reusing something that works (at Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com7tag:blogger.com,1999:blog-7907246.post-1106345506315877082005-01-24T13:54:00.000-08:002005-01-28T08:26:00.070-08:00Storing persistent classes with SQLObjectI've been playing with extensions to store persistent classes and custom methods using SQLObject. The need arised as I was trying to write a relational representation of the Petri net model for a business framework. The standard model boasts few basic concepts (basically speaking, transitions, places, tokens and arcs). The relationship between the entities is simple, and easy to map with Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com40tag:blogger.com,1999:blog-7907246.post-1106439551433606792005-01-23T16:03:00.001-08:002005-01-22T16:19:11.433-08:00Low level networking: performance issuesI spent a few hours working on a multicast file transfer program, written in Python, with a friend of mine. The experience was filled with ups and downs. It was good to see that we were able to handle low level stuff such as broadcast packets, for example, in Python. On the other hand, two things were a problem from the start: timing, and raw performance.
Timing problems surfaced out as we were Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com14tag:blogger.com,1999:blog-7907246.post-1106331575283945712005-01-21T09:51:00.000-08:002005-01-22T08:14:02.573-08:00What's the fuss about Rails?Ruby on Rails is making a lot of noice these days. I first heard about it on comp.lang.python, where it was mentioned a few times. Later, I noticed how many people wanted to write an application on Rails. And this weekend, it has made it to Slashdot home page. That's attention. Rails is already Ruby's killer application.
Rails has appeared in a very interesting moment. First it was Perl, and Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com14tag:blogger.com,1999:blog-7907246.post-1106323543659519252005-01-21T07:56:00.000-08:002005-01-22T06:50:36.610-08:00Inheritance in SQLObjectThere's a debate going on about the best way to support inheritance in SQLObject. Better to have this discussion now than never; there is demand for this feature, but there's still no consensus on the best way to do it.
Based on a patch initially offered by Daniel Savard, Oleg Broytmann started last November and maintained a private inheritance branch, and got it working with some patches Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com5tag:blogger.com,1999:blog-7907246.post-1105887615518520242005-01-16T07:00:00.000-08:002005-01-16T07:09:05.803-08:00Low-level networking with PythonIf for any reason you ever need to write low-level network protocols, and if you need direct access to the wire, a good starting pointer is on the Vaults of Parnassus Networking section. It contains pointers to some implementations of the libpcap library, the de-facto standard for low level network access. There is also a free port of libpcap for Windows, named WinPcap.
The reason to use libpcapAnonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com13tag:blogger.com,1999:blog-7907246.post-1105742722147393112005-01-14T14:45:00.000-08:002005-01-14T15:07:50.950-08:00Deploying distributed applicationsDeveloping a strategy for application deployment is always hard. Every environment has its own characteristics. It's far easier to see the problem with popular applications that are installed by the end user. Custom applications are sometimes installed by an expert; sometimes the developer himself is available to do it. This helps to make the difficulty of this task to be greatly underestimated. Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com41tag:blogger.com,1999:blog-7907246.post-1104941291201865142005-01-05T08:08:00.000-08:002005-01-14T15:35:17.136-08:00Concepts & Generic ProgrammingOn a recent thread on comp.lang.python (which originally discussed some perceived problems about Python evolution, the topic of generic programming was brought up by Roman Suzi. In ensuing debate, there were some great posts, specially one by Alex Martelli (once again), where he goes into detail to explain why Python interfaces are different. Roman wrote a great followup to it, pointing out that Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com19tag:blogger.com,1999:blog-7907246.post-1104766140227610412005-01-03T07:29:00.000-08:002005-01-03T07:41:10.376-08:00Large scale small projects, Part IIntegrating teams isn't an easy task. There's much written about it, and it's usually one of the major complaints in management. Software development teams are no exception to this rule. But until recently, most projects could be split in two relatively well-defined classes: small (and thus more manageable) projects, and big projects. Big projects impose such a management overhead that they can Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com10tag:blogger.com,1999:blog-7907246.post-1103129533107428352004-12-15T08:52:00.000-08:002004-12-15T08:52:13.106-08:00XML is not the questionA quote from the Python Is Not Java article (great reading, btw):
XML is not the answer. It is not even the question. To paraphrase Jamie Zawinski on regular expressions, "Some people, when confronted with a problem, think “I know, I’ll use XML.” Now they have two problems."Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com20tag:blogger.com,1999:blog-7907246.post-1103120264237006702004-12-15T06:17:00.000-08:002004-12-15T06:17:44.236-08:00Flow Based Programming & the new Python coding styleSince being introduced in the language, generators (and their lesser cousins, list comprehensions) are finally making it into the community mindset. In the long term, I think that this change will have a lasting effect on the way we write Python programs.
In the beginning, Python was a conventional scripting language that happened to have a exceptionally clean syntax and a solid object model. SoAnonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com44tag:blogger.com,1999:blog-7907246.post-1103066759978836822004-12-14T15:25:00.000-08:002004-12-14T15:30:55.723-08:00Forget the GUI (long live the GUI!)There was a time, not a really long ago, when business programming meant basically processing data. The visual interface options were really limited, so much more time was spent in the business logic than in the UI part of the system. Now times have changed for better, and GUIs are the norm; in fact, it's so common place now as to make one wonder how were things done before. For many programmers,Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com93tag:blogger.com,1999:blog-7907246.post-1101504962025750542004-11-26T13:38:00.000-08:002004-11-26T14:46:43.983-08:00A simple protocol for data synchronization between objectsWhat follows can't still be considered a definite version of this idea. It's still a prototype of an idea that I have been working on in a rather fuzzy way, to solve a practical problem that arised as I started to used templates and a declarative style approach to model business entities. Consider it as an attempt to write it down to clarify things for myself; if you find it useful, or at least Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com38tag:blogger.com,1999:blog-7907246.post-1101233393427674482004-11-23T09:35:00.000-08:002004-11-23T10:09:53.426-08:00References on workflow modellingThere are a number of resources about workflow on the Internet. Finding the good ones is not that easy, though. First of all, the search term is too generic (Google found nearly 8 million results for it alone). There are a number of commercial offerings with little or no info on their web pages, besides mentioning "workflow" as one of the features. The academic sources are, for the most part, Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com5tag:blogger.com,1999:blog-7907246.post-1100699029525946912004-11-17T04:49:00.000-08:002004-11-17T05:50:52.850-08:00What is adaptation?This document was originally posted as a reply to a c.l.py post asking for more information on adaptation vs type checking for Python. It was well received, and I thought it deserved a spot here. This is a revised edition, with more information and some clarifications.
Adaptation is the act of taking one object and making it conform to a given protocol (or interface). Adaptation is the key to Anonymoushttp://www.blogger.com/profile/16043745572254494898noreply@blogger.com90