Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

July 03 2009

rozza

Concurrency with Python, Twisted, and Flex

The system you see here is only a framework for creating concurrent programs. There are various ways to implement your particular solution, but what I show here solves all the hard problems of wiring things up.
rozza

Build your own Kamaelia Core

It's interesting to note that there are two kinds of rich people in the world: those who made the money they have, and those who inherited it. Those who make it for themselves have often been noted to be greater risk takers than those who simply inherit. This is for the very simple reason - they've done it once, so they believe they can do it again. Likewise when using any system, library, or framework, you're likely to have a better understanding of the system and how to better use it if you really understand how it works. That is you've written the system rather than someone else. Our preferred approach to date so far for teaching a novice how to use to Kamaelia has been to get them to write a version of the core concurrency system. This is framed as a series of exercises. After having built it, they realise that the system is really just a simple skein over simple programs.
rozza

Stackless

Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads. The microthreads that Stackless adds to Python are a cheap and lightweight convenience which can if used properly, give the following benefits: Improved program structure. More readable code. Increased programmer productivity.
rozza

Kamaelia

In Kamaelia you build systems from simple components that talk to each other. This speeds development, massively aids maintenance and also means you build naturally concurrent software. It's intended to be accessible by any developer, including novices. It also makes it fun :)

June 26 2009

rozza

redirector

Say you want to deploy an app on Google App Engine under the domain yourname.com and www.yourname.com. The problem both domains will work, which leads to inconsitent results. For now it is not possible to configure a redirect in App Engine.
Tags: code google
rozza

APNG - the animated PNG

"Just what the world needed" Daniel Roseman 2009
rozza

scripty2: demos

Thomas Fuchs loves his javascript and shows some great animations utilising his new Scripty library. 

June 25 2009

rozza
I've seen a number of people on the Ruby newsgroup who really 
misunderstand the explicit self argument in Python methods.  While 
Python's style is certainly not the only approach, it *does* allow a 
genericity that is less easy in most all other languages.  The explicit 
self is distinctly a Python *feature*, not a flaw.

Some of the other criticisms are a bit misguided too.  For example, the 
widespread upset at significant indentation vanishes from 99% of Python 
users after a few days/weeks of actual usage.  Almost all of those folks 
wind up thinking of the indentation as a feature.  But that's largely a 
matter of taste (with which there is no arguing :-)).

The self thing, however, is worth an explicit explanation.  The point of 
the explicit self is that it allows detaching a method from an instance, 
and passing a different instance to the same method.  In the simple case 
this is sorta pointless:

	>>> class Klass:
	...   def __init__(self, data=None):
	...     self.data = data
	...   def say(self):
	...     print self.data
	...
	>>> this = Klass('this')
	>>> that = Klass('that')
	>>> just_say = Klass.say
	>>> this.say()
	this
	>>> that.say()
	that
	>>> just_say(this)
	this
	>>> just_say(that)
	that

Whether one uses the method or the function-with-argument amounts to the 
same thing where one names instances.

But consider nameless instances:

	>>> klasses = [Klass('this'), Klass('that'), Klass('other')]

One can use an index into a data structure to call the detached class 
method like:

	>>> just_say(klasses[1])
	that

Of course, that's still not such a big thing, since one can also write:

	>>> klasses[1].say()
	that

Where it becomes really interesting is in genuinely nameless 
functional-programming style constructs like:

	>>> map(just_say, klasses)
	this
	that
	other
	[None, None, None]

AFAIK (which is only a little Ruby), one would do this in Ruby by 
iterating over a code block... but the code block would still use a 
temporary name to refer to the object whose method is called.  There's 
nothing wrong with this... but it becomes slightly less elegant once you 
get into  more complicated function/class factories and generic FP 
programming.

Understanding Python

June 23 2009

rozza

Introducing Kanban, Flow, and Cadence

A great article examining different aspects of lean philosophy.  It also has some good formulae for metrics.
Reposted fromagile agile
rozza

A basic starting point would be:

  • Stop the Line for special cause problems
  • Monthly Retrospectives with Operations Reviews for common cause problems
  • Quarterly Value Stream Mapping to reassess the whole value stream
Kanban and Retrospectives
Reposted fromagile agile

June 17 2009

rozza
rozza

June 06 2009

rozza

django-chronograph - Google Code

Control django-admin commands via the web. Creating cron jobs for Django apps can be a pain, annoying and repetitive. With django-chronograph you simply create a single cron job to run every minute, point it at your site's directory and run manage.py cron. Then from the admin you can add jobs.

June 03 2009

rozza

Dean Wilson@UnixDaemon: Whatever affects one directly, affects all indirectly.

Should have read this when writing my cronjob, it  wasn't running due to no newline... *facepalm*

June 01 2009

rozza

May 24 2009

rozza

LamsonProject: Lamson The Python SMTP Server

We've all been there, mucking around in the sendmail m4 macros trying one more time to get the damn mailing list to update for the new users. Every time we say, "This sucks, I want to rewrite this stupid thing." Yet, when we're done, we simply crawl back to our caves covered in our sendmail wounds.

May 12 2009

rozza

Fraser Speirs – Understanding Git Submodules

Submodules are akin to svn:externals but are locked to a revision (they dont automatically track HEAD), but seem easy to use and simple enough
rozza
The Dreyfus Model - an interview with Andy Hunt
Reposted fromagile agile
rozza

Dreyfus model of skill acquisition

The Dreyfus Model of Skill Acquisition postulates that when individuals acquire a skill through external instruction, they normally pass through five stages.

May 11 2009

rozza

Functional Javascript

Functional is a library for functional programming in JavaScript. It defines the standard higher-order functions such as map, reduce (aka foldl), and select (aka filter). It also defines functions such as curry, rcurry, and partial for partial function application
Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.