Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Scratch.py -- hyper-fast mini-webapp production, in Python (speakeasy.org)
65 points by jmonegro on Aug 28, 2009 | hide | past | favorite | 10 comments


From the author's homepage, this is a project of 2006, seems that it hasn't changed for 3 years.


Is code that hasn't changed in a long time stigmatized? If so, is it an assumption that all code is broken and needs to be changed regularly?


1) "if it's been around that long, why hasn't it caught on with more people? is there a problem with it?"

2) "if I face a problem with it, will the author help me debug it for fix it?"

3) "if the last changes to this software were made X years ago, how does it apply the number of industry practices and techniques that have been developed since then?"


It'd be interesting to see something like this that uses Python 3's function annotations.

  def greetings(ladies: int, gentlemen: (int, 80, 40)): pass


> Note that when you specify field width & height w/ _80 or _40_20 (or whatever,) that you have to change the variable use within the code, too... Real bummer, hunh? I know.

Encoding presentation code into the controller layer seems like a bad idea in my mind. Besides being ugly to look at.


For a proof-of-concept that you expect to throw away when you start on a real version, things can be sacrificed to speed. But it is ugly, I'll agree.


Tried it in OS X, and the web server crashed on first request. I'll try it later on linux. Either way, it's an interesting prototyping tool.


Happens on osx, linux, win32 for me.

Quick workaround (this is the first time I've ever sent out a patch. heh)

    --- scratch.py.original 2009-08-28 10:49:38.000000000 +0100
    +++ scratch.py  2009-08-28 10:42:17.000000000 +0100
    @@ -213,10 +213,13 @@

         def one_line_description(self):
             """DOC"""
    -        if len(self.mod.__doc__) > 0:
    -            return self.mod.__doc__.splitlines()[0]
    -        else:
    -            return "(no description)"
    +        try:
    +            if len(self.mod.__doc__) > 0:
    +                return self.mod.__doc__.splitlines()[0]
    +            else:
    +                return "(no description)"
    +        except:
    +            return "(no description)"

         def long_description(self):
             """DOC"""
Save that to a file called scratch.patch (make sure there's no indentation at the beginning of lines) in the dir. Then run this:

    patch < ../scratch.patch


OK; I've applied the fix to the master. Thank you!


Cool. The naming conventions might get unruly for very tiny projects, but definitely an interesting piece of work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: