Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.datemas.de!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'base.': 0.05; 'subject:Python': 0.06; 'compiler': 0.07; 'pypi': 0.07; 'pypy': 0.07; 'already.': 0.09; 'etc).': 0.09; 'framework.': 0.09; 'measure': 0.09; 'sure,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'language.': 0.14; 'apache': 0.15; '(and,': 0.16; 'fetch': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'gained': 0.16; 'in;': 0.16; 'lisp,': 0.16; 'mean,': 0.16; 'numpy': 0.16; 'optimised': 0.16; 'sockets': 0.16; 'sorts': 0.16; 'files.': 0.16; 'sat,': 0.16; 'wrote:': 0.18; 'library': 0.18; 'module': 0.19; 'server,': 0.19; 'work,': 0.20; '(the': 0.22; 'code,': 0.22; 'input': 0.22; 'cc:addr:python.org': 0.22; 'install': 0.23; 'adds': 0.24; "aren't": 0.24; 'compilation': 0.24; 'example.': 0.24; 'instance,': 0.24; 'library,': 0.24; 'module,': 0.24; 'text,': 0.24; 'decide': 0.24; 'server.': 0.24; "haven't": 0.24; 'cc:2**0': 0.24; 'header:In- Reply-To:1': 0.27; 'hosting': 0.29; 'host': 0.29; 'am,': 0.29; 'cool': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'page.': 0.31; 'that.': 0.31; 'commonly': 0.31; 'produces': 0.31; 'servers.': 0.31; 'subject:Database': 0.31; 'though.': 0.31; 'file': 0.32; 'there.': 0.32; 'service,': 0.32; 'run': 0.32; 'another': 0.32; 'running': 0.33; 'entirely': 0.33; 'actual': 0.34; "i'd": 0.34; 'could': 0.34; 'common': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'application': 0.37; 'easily': 0.37; 'server': 0.38; 'that,': 0.38; 'short': 0.38; 'anything': 0.39; 'help,': 0.39; 'itself': 0.39; 'sure': 0.39; 'how': 0.40; 'even': 0.60; 'easy': 0.60; 'most': 0.60; 'new': 0.61; 'simple': 0.61; "you're": 0.61; 'complete': 0.62; 'such': 0.63; 'more': 0.64; 'services': 0.66; 'internet': 0.71; 'score': 0.74; 'music': 0.75; 'asynchronous': 0.84; 'compilers,': 0.84; 'inexpensive': 0.84; 'musical': 0.84; 'generation.': 0.91; 'reasons,': 0.91; 'scores': 0.91; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type:content-transfer-encoding; bh=qW+pZFo3PgF2eENK6Gex5wZgbMh8TsIKMMp5Wxm3I3c=; b=sbuRlEMN2c8IhiEa3jV3TH1mDK8UR6og9bLGc/M5Ap7cymIi2im0yiceigMzOELw0j gyCIAcDtE+TWMQWdwjqvhG2zDkO1fNeQE0Rt8lbN/wRypmWWETiUQr9lm4vXLgV/+QMW 3IR4x7JuBYk9iMuvy7kox+7UED4c9v1r3EB/46xU6hZuHSK9K77Aug3bWM52N7xb1fKC hFDh5pJ1YguyIgQ7tGY2qy8tW6ZWS4DtW0iCM7jswdoN9kzuGoKXTf98GwVcRUsWQ3F/ E7H/NK6g7Ft83y77By94kG/DfSJs7biEmi6WNBCxP2A+gJ7tFEEk5OenJCfoh37BHFab VvSQ== MIME-Version: 1.0 X-Received: by 10.58.28.204 with SMTP id d12mr4330veh.81.1399669594883; Fri, 09 May 2014 14:06:34 -0700 (PDT) In-Reply-To: References: Date: Sat, 10 May 2014 07:06:34 +1000 Subject: Re: Python Internet Database From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 51 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1399669604 news.xs4all.nl 2964 [2001:888:2000:d::a6]:51929 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:71193 On Sat, May 10, 2014 at 6:45 AM, wrote: > To keep with my work, I need an Internet Data Base from where a person wr= iting a program in Python could fetch libraries, applications, compilers, e= tc. One of the things I need to measure is how complete and easy to use is = such a data base. I will give a concrete example. > I'm not entirely sure, but I think PyPI (the Python Package Index) might be what you're looking for. It has all sorts of things that aren't in the Python standard library (and, for various reasons, some things which are). > 1 - Internet servers. In Lisp, one has hunchentoot. In Racket, one has th= e Racket Web Framework. Bigloo has hiphop. > Python has some of this built in; not sure what you mean by "internet servers", but you can easily write some of the more common services in Python (eg web (HTTP), mail (SMTP), etc). I don't know of a way to conveniently write a Python DNS server, for instance, short of working with sockets manually, but most of what people commonly use is there. > 2 - Jit compiler for using from a web server. I mean, one has a web serve= r running under Apache in a hosting service like Hostgator, Daddy Host or a= nother inexpensive service. I decide to run a few applications in Racket, b= ut the application requires number crunching. I install the Jit Racket in = the hosting service, and call it from my dynamic generated page. My program= s will run almost at the speed of optimised C. > For number crunching, you can use the numpy library, which is highly efficient. For general JIT compilation of actual Python code, PyPy will do that. AFAIK there's no standard module for that, though. > 3 - Music generation. I would like generation of musical scores and midi = files. I'm not aware of anything in particular, but a GNU LilyPond input file is simple text, so I'd just write a program that produces a .ly file and then run it through LilyPond to generate both score and MIDI. But if you don't need printable score, the MIDI file itself is pretty simple; there may be a module that will help, but even without, it's pretty straight-forward in any language. I don't know about your other requests, but check out PyPI and see what you can find - and do also check the standard library, if you haven't already. Each new version adds even more cool stuff; we've recently gained a dedicated statistics module, for instance, and a new asynchronous I/O structure. ChrisA