Tuesday, July 10, 2007

Rene talks about multithreading and multiple cpu's

Rene's talk is about how to use python with multiple cpu's. He has written a paper about it. The core libraries you use for game programming are already threaded. He has written a library to manage threads in games. The core idiom is "map", which in the context of threads becomes tmap.

Monday, July 09, 2007

py.test

I was a little late into this talk (took a nap in the break). An alternative to unittest, py.test, but it seams specifically geared to the needs of pypy.

ThenCad

I'm intriqued that somebody went and developed a whole CAD and released it as GPL, in pure python.

The gust of why ThanCad is better, is that it has some fancy features basically all other CAD apps lack, because it was easy for the guy who implemented them because, he built it open from the ground up. It's the lesson of simplicity really. It makes sense, because for instance in autocad, when you wanted to tag on some fancy features, you mostly can't because you don't have the code, and even if you did have the code, you can't because it's big and bloated.

The architecture seems pretty much an exercise in patterns (as in gemma et. all), but I suspect it works because it's bourne of practicality (rather then academic blindness to the real world).

On the downside, the choice of toolkit and technique leads to many problems and workarounds. While the speaker enumerates the problems met with doing it, ideas pop to my head of doing that in opengl, some small gui toolkit and greenlets.

It seems a highly interesting project, I'll definitly check it out

KSS, javascript with style

KSS is a client framework, so there's no intrinistic server side requirement. It looks interesting, it sort of encapsulates event handling and view changes into a domain specific language. I woner if it works outside a sandbox/wiki environment, with requirements on interaction.

It is an interesting thing, and it certainly is worth trying out.

Pylons

The pylons talk is pretty much what you can find out about pylons yourself. On an interesting note, supervisor2 received some praise in this talk, as a tool that can restart died apps, seems nice. The talk was about the development .

Pythonic interfaces?

This talk is about (the java understanding of) interfaces. The argument is that if you work with many many people on large scale projects, you basically need interfaces. I tend to agree, but I think large teams are a bad idea :)

So, the speaker also mentions that the other solutions out there (zope interfaces, py-protocols etc) are overly complex. Yes I agree, let's see...

Ah-ha, he uses decorators and inheritance to implement the functionality of an interface. And that seems to be it, mostly.

Well, I sort of like that the author tries to out of his way to make usage of it easy. The thing is contained in a single file. Speed seems to have been a focus, since it caches and optimizes for instanciation time.

Well, I don't know, it might be helping, it might be not, on any account there's no version up of it to date at http://www.mikeware.com/index.php

Sunday, July 08, 2007

mxTextTools

At the core mxTextTools is a state machine (tagging engine), written in C. The reason for introducing it was that in order to write a parser, you need a matcher (on a tokenizer and parser level). Writing matchers usually involves re, which is a pain in the butt. I like that it has a JIT compiler for the tagging commands. This seems to be a pretty powerfull replacment for the usual lexers/parsers.

Have a look at mxTextTools, it seems to be an interesting alternative to writing parsers using re/ebnf machines. I'm not sure it's really going to be easy to edit this list of assembly-like commands over a few bits of REs and a nicely written down ebnf.

easy extend

Easy extend seems to be about creating DSLs in python. It allows parsing from an ebnf grammar and can extend the python grammar for the language. You can download EasyExtend.

It compiles these defined languages to the python parse tree, this is then compiled to python bytecode by python. It can run multiple different languages within one python run, by a concept called fibres.

I don't know if it's really apealing, since it seems pretty much tied to the python runtime. For instance, can somebody tell me if I can create new syntax, for instance for a anonymous function? It seems like that's possible, the hard thing is changing not just syntax but changing semantics.

gearing up for europython

I've arrived at the hotel reva in vilnius, had some good nights sleep and I'm headed down for breakfast and registration. The hotel is nice, Thomas Waldmann (with whom I share a room) doesn't snore (sight of of relief).

so long, __doc__

Friday, February 09, 2007

Linux and Mac users may be in the minority, but they are vocal

I found the phrase "Linux and Mac users may be in the minority, but they are vocal" in this article about java and ajax. It struck me as odd to even remark upon it, but then I figured that maybe it's an ignored phenomenon.

Beeing an early adopter is a way of living, not some marketing category. Either you do it in most aspects of your living, or you don't. In order for you to take up Linux or Mac, or use Firefox instead of IE, you have to get active. Purely by crossing that line you've placed yourself in group of people that care about their digital tools and search to improve them.

Funnily this kind of description would perfectly fit the bill of early adopters too. It's no coincidence there's a similarity. Linux and Mac users are deep early adopters, on the very end of the scale of how early adopterish they can get.

Thus the remark becomes:
Early adopters may be in the minority, but they are vocal.
And now it's you, who'll go "duh!" on me. Because it's so glaringly obvious.
But consider, most applications that are written are for Windows. A lot of websites out there are only working satisfactory in IE. Thus the deep early adopters will avoid these products and projects like the pest, because it doesn't run with what they prefer from the depths their hearts.

We all know early adopters are important because they give you a kick start market, free marketing and a clear indication weather what you did rocks or sucks. If you throw a good percentage of early adopters away simply because you feel that their market is to small to be considered, you should consider that decision very very careful. It may prove fatal for your product.

Thursday, February 08, 2007

More thoughts on DRM

Because a DRM requires a secret that may not be revealed, but the place where the secret is kept/produced/defined is in the hands of an untrusted party, it cannot be “secure”. Thus obscurity is important to “secure” a DRM scheme, and in this FairPlay is not alone. Other companies can proudly claim to have the most obscure DRM, for whatever it's worth.

DRM advocates may cry foul now, after all they have invented all their shiny toys they like to brandish, however consider these two simply facts:
  • DRM circumvention protection rights are lobbied for all around the globe by industry lobbyists
  • No DRM company puts their specification up into the open public for review.

The issue to be dealt with is trust. The consumer has been ruled out to be trusted, thus nobody else to trust is left. If you trust nobody you're paranoid, and the world's a scary place to live in. Oddly that's just how the RIAA/MPAA seem to be behaving.
  • A talk about DRM by Cory Doctorow
  • A video illustrating problems with trusted computing. DRM runs on the concept of trusted hardware, and trust is an important topic in the discussion.
Contrary to popular believe copyright law is not only about who owns the content and may restrict copying. It also is about:
  • Fair use
  • Right for private copy
  • The public domain (after the copyright expires)
Unless DRM is implemented in a fashion to accommodate these (still existing and well, thank you) laws, it’s in a legal grey zone.

The future of the DRM industry may seem rosy for now. Today and for a while to come a demand for the technology exists, nobody guarantees that demand will continue. A down in this market will emerge, and as usual, who had a solid business foundation and delivered real and lasting value to his customers will survive it.

Wednesday, February 07, 2007

Basic inalienable digital rights

I was reading a piece about the RIAA and their convoluted understanding of Steve Jobs open letter when I stumbled upon the term "Basic inallienable digitial rights".

There a question occured to me. Do I want to fund the society our children are going to live in, on the basis of the DMCA, patent law, copyright and a RIAA/MPAA mafia?

Every society traces it's funding back to documents laying out basic rights. Such documents as the declaration of independence and the bill of rights. Today we are in the midst of a fast changing civilization. In a mere 15 years the Internet and widespread computing hardware have started to influence and change our lives completely.

A new substrate, a basic building block for civilization as we know it is right now being invented. We find new ways to partake in culture, express ourselves, communicate, discover, share and consume. I have no doubt that the last 15 years of history have been as important as the invention of law, the written word and printing of books.

But who forges rights in our brave new society? we have copyright (which mostly serves a content industry these days), patent law, the DMCA and any other number of legal paraphernalia that usually accompanies enterprises, none of which are concerned with ensuring the rights of the digital citizens.

These are times of change and times of definition. We as a children of a digital age must come together and define the basic inalienable digital rights we want to live by. These rights are personal rights, and they will be as important to the founding of our future society as the declaration of independence has been.

We are in dire need to define ourselves before the rifts of opposing forces of our society become too great for it to mend. We're in dire need of basic inalienable digital rights. It is a great plunder of our time that we haven't gotten around to think about it sooner.

Wednesday, January 10, 2007

postgres mindset

Interesting, today I poked my head into #postgres on freenode, and told the guys that there is no bugtracker for pgadmin (because I had a bug). There was some civilized back and fro which amounted to:
  • stfu if you don't want to setup the bugtracker yourself.
  • apologize for suggesting a butracker or be kicked, you're insulting us.
A-hum. Yes, that was a productive conversation. I was kicked by David Fetter (david@fetter.org)

Funny, that really reminds me of one or the other episode on #zope, wonder why that is. Must be the postgres mindset then. I really like the "stfu or be kicked" mentality when you say something inconvinient. I just see David is a Perl programmer, well that would explain one or the other thing.

/me adds #postgres to the trollop list

Good Job David, rock on!

Saturday, January 06, 2007

PJE the immature pest

PJE wrote a post praising zope in a fashion (well it's the foreword for a zope book). Inevitably he attracted some flak, and by the followup post you can see that he clearly couldn't deal with it.

I expected the article to be a bit controversial, but I was surpised to find that it was even more controversial than my series of articles about women in IT. The amount of flaming hatred, profanity, and sheer vitriol leveled against both Zope and me was such that I soon found it prudent to remove the comment thread altogether.
I was one of those voicing my opinion about zope passionately, there are many like me. I and the others commenting didn't insult PJE and apart from calling zope what it is, namely an unworkable, unfinished, broken, horrid and bloated consultware there was no big profanity.
Case in point he makes his reasons for closing the comments up.

Clearly if it was after PJE we should just shut up and stop criticize zope, he made sure by closing the comments that this won't happen on his site on any account.

But PJE doesn't leave it at that.

I had a policy of not hiring a**holes when I had Python jobs available, or I might have accidentally hired one of these dimwits! (Nobody sane wants to work in a toxic mental environment, and women are slightly more likely to be sane than men.)

... if you can't do anything but spew hatred at someone who has the temerity to find praiseworthy things in a tool you dislike, you are not learning anything.

... you're being a dimwit. ... also being an a**hole.

if you want more women in IT, don't hire a**holes. ... I would now have a new weapon in my arsenal for screening out a**holes quickly...

... a bright light in the Python community said, "You know, Python has gained a lot of things from Zope," ...

Because that's what professionals do. They are always learning. Always.
I have a few comments on this kind of posting:

  1. PJE it reflects poorly on you when you go about calling people dimwits and a**holes publicly on your blog. You might intend to insult those who entered the discussion with you, but a casual visitor doesn't care, all he sees is you who behaves like an immature pest.
  2. You go at great lengths to point out how you would never hire such a**holes and dimwits as you describe them. If their crime is to be passionate about what they do and voicing their opinion, that's a poor testament to your sense of judgment. Also have you considered that people might think you're one of these aforementioned a**holes and dimwits by behaving like this on your own blog?
  3. You also drag this debate down into a chauvinist/macho deprecation of these who said something that happen not to suit you. You insult them personally, you question their professionalism and you're being a pest. Have you considered that there could be women among those you're insulting? Have you considered you've just become a reason why women don't work in the IT? I hope you like your own medicine.
  4. The comments coming in until you shut them down where not to your liking, and you felt threatened. Thus in the next logical step you personally insult those who didn't like Zope and say so. That's not only childish, it's outright immature, it's a trap so common to fall in you should know it. Perhaps you should work harder on moving to "You revision 3.0" because sure as hell 2.0 still has serious flaws.
  5. If all this swearing and being childish is the kind of professionalism you talk about you can keep it, we can live well without that.
  6. I for sure wouldn't hire such a bloatware advocatist who goes to lengths to insult other people just because he doesn't like what they don't like.
PJE rock on dude!