Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #30560

Re: Can somebody give me an advice about what to learn?

Path csiph.com!usenet.pasdenom.info!dedibox.gegeweb.org!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <rosuav@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.005
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; 'root': 0.04; 'model,': 0.05; 'front-end': 0.07; 'objects,': 0.07; 'accepts': 0.09; 'grid': 0.09; 'patterns,': 0.09; 'system;': 0.09; '"socket': 0.16; '(memcache,': 0.16; 'belongs': 0.16; 'disk.': 0.16; 'dump': 0.16; 'fine.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'in-memory': 0.16; 'oct': 0.16; 'process?': 0.16; 'processes.': 0.16; 'reload': 0.16; 'roy': 0.16; 'sure.': 0.16; 'threads': 0.16; 'mon,': 0.16; 'wrote:': 0.17; 'instance,': 0.17; 'code,': 0.18; 'memory': 0.18; 'code.': 0.20; 'sort': 0.21; 'exists.': 0.22; 'logical': 0.22; 'sends': 0.22; "i'd": 0.22; "python's": 0.23; 'statement': 0.23; 'somewhere': 0.24; 'external': 0.24; 'feature': 0.24; 'header:In-Reply-To:1': 0.25; 'am,': 0.27; 'structures': 0.27; 'tree': 0.27; 'message- id:@mail.gmail.com': 0.27; "doesn't": 0.28; 'subject:what': 0.29; 'install': 0.29; 'connection': 0.30; 'connections': 0.30; 'on,': 0.30; 'code': 0.31; 'gets': 0.32; 'server.': 0.32; 'generally': 0.32; 'could': 0.32; 'getting': 0.33; 'retain': 0.33; 'to:addr :python-list': 0.33; 'front': 0.33; 'languages': 0.33; 'another': 0.33; 'received:google.com': 0.34; 'done': 0.34; 'requiring': 0.35; 'subject:?': 0.35; 'received:209.85': 0.35; 'but': 0.36; 'client': 0.36; "i'll": 0.36; 'display': 0.36; 'does': 0.37; 'uses': 0.37; 'why': 0.37; 'rather': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'some': 0.38; 'login': 0.38; 'to:addr:python.org': 0.39; 'where': 0.40; 'header:Received:5': 0.40; 'end': 0.40; 'your': 0.60; 'most': 0.61; 'stay': 0.61; 'needing': 0.62; 'situation': 0.62; 'different': 0.63; 'more': 0.63; 'details,': 0.65; 'bothered': 0.65; 'else.': 0.65; 'direct': 0.69; 'smith': 0.71; 'bulk': 0.78; 'battle': 0.84; 'fly,': 0.84; 'lightweight': 0.84; 'moves': 0.84; 'subject:learn': 0.84; 'tree,': 0.84; 'processes,': 0.93; 'imagine': 0.96; 'hands': 0.97
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:to :content-type; bh=Rlt89flXTiXxh3EBcBYJtxkBPI70zovMIDnkiRup+SE=; b=ntqhJUj8cILTilQ0i0bEt0gfP1FhxJUybUEftQ2W8FfxeRRbAcAvZhWJLH4QY8pfC2 kbG/Rsqv5B+Y7rp+Qxbyj+ZobywSz5tXDNkEEJCSIBor2yg0/wmv47rpDWcDz9AMbpOM Ov5rPrq7yS+PQBv9PZtK55BkrBesyQbSmdCb/xKQCMZeJPnHrAHk/OWblLQ9kVrrLRnR ICZCPl6CPvii1cXBwky5a1CHchmi2vZ/zTvJy8Zo333pjQooHTlVzN7kXYlkq6u1sSXl lFJdsfLmrchk5DsUZ4LE4+3lAuJZavWvz+JW15gS7sNQT+19+Hpabzp1UepvoS6NzZg8 cntw==
MIME-Version 1.0
In-Reply-To <roy-0C9D23.11011030092012@news.panix.com>
References <15f76508-437a-4d18-ac9b-16174ef172e8@googlegroups.com> <mailman.1672.1349011558.27098.python-list@python.org> <roy-A05EF0.10233530092012@news.panix.com> <mailman.1675.1349015755.27098.python-list@python.org> <roy-0C9D23.11011030092012@news.panix.com>
Date Mon, 1 Oct 2012 01:37:07 +1000
Subject Re: Can somebody give me an advice about what to learn?
From Chris Angelico <rosuav@gmail.com>
To python-list@python.org
Content-Type text/plain; charset=ISO-8859-1
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.1677.1349019431.27098.python-list@python.org> (permalink)
Lines 39
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1349019431 news.xs4all.nl 6844 [2001:888:2000:d::a6]:41058
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:30560

Show key headers only | View raw


On Mon, Oct 1, 2012 at 1:01 AM, Roy Smith <roy@panix.com> wrote:
> Well, more strictly, what you need is to keep your state somewhere else.
> Doesn't have to be on disk.  Could be in memory, if that memory belongs
> to another process (memcache, redis, or any of a number of in-memory
> databases).

Sure. I'll generalize my statement to "Has to be external to the
process". That generally precludes the direct use of complex objects,
requiring some form of serialization or dump format - you can't, for
instance, retain a "socket connection object" across that sort of
reload.

> Why does it have to be a single process?  I could imagine some front-end
> process which accepts connections and hands them off to worker
> processes.  When you install new code, you could do it in a different
> directory tree, and then signal the front end that new code exists.  The
> front end could then {chdir, munge sys.path, whatever} to the root of
> the new tree and keep going.  Existing connections stay up with the old
> code, new connections get the new code.

That's also a good model, for situations that can use it. My situation
is a MUD-like system where different clients can affect one another,
so the most logical way to do it is a single process. For instance, we
have a Dungeons and Dragons battle grid that uses a web browser as its
display engine; you go to a particular URL, key in your login details,
and it sends AJAX long polls to the server. Whenever one client moves
a token on the grid, every other client gets notified. I could, of
course, do this across processes, but I'd end up needing a hefty IPC
system; this way, all I need is a lightweight event semaphore that the
threads wait on, and they look at the process's internal structures
(thread-safe, they need only read at that point). I could have done it
in other ways, of course, but this is nice and straightforward.

But this is getting rather off-topic :) For the bulk of usage
patterns, Python's fine. Most languages don't let you reload code on
the fly, and most applications are never going to be bothered by this
miniscule feature lack!

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Can somebody give me an advice about what to learn? tcgo <tomeuari@gmail.com> - 2012-09-30 05:58 -0700
  Re: Can somebody give me an advice about what to learn? Chris Angelico <rosuav@gmail.com> - 2012-09-30 23:25 +1000
    Re: Can somebody give me an advice about what to learn? Roy Smith <roy@panix.com> - 2012-09-30 10:23 -0400
      Re: Can somebody give me an advice about what to learn? Chris Angelico <rosuav@gmail.com> - 2012-10-01 00:35 +1000
        Re: Can somebody give me an advice about what to learn? Roy Smith <roy@panix.com> - 2012-09-30 11:01 -0400
          Re: Can somebody give me an advice about what to learn? Chris Angelico <rosuav@gmail.com> - 2012-10-01 01:37 +1000
            Re: Can somebody give me an advice about what to learn? Roy Smith <roy@panix.com> - 2012-09-30 18:14 -0400
              Re: Can somebody give me an advice about what to learn? Chris Angelico <rosuav@gmail.com> - 2012-10-01 09:11 +1000
              Re: Can somebody give me an advice about what to learn? Hans Mulder <hansmu@xs4all.nl> - 2012-10-03 19:55 +0200
      Re: Can somebody give me an advice about what to learn? Chris Angelico <rosuav@gmail.com> - 2012-10-01 00:37 +1000
  Re: Can somebody give me an advice about what to learn? Tim Chase <python.list@tim.thechases.com> - 2012-09-30 08:45 -0500
  Re: Can somebody give me an advice about what to learn? rusi <rustompmody@gmail.com> - 2012-09-30 08:18 -0700
    Re: Can somebody give me an advice about what to learn? Roy Smith <roy@panix.com> - 2012-09-30 18:17 -0400
      Re: Can somebody give me an advice about what to learn? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-09-30 23:59 +0000
  Re: Can somebody give me an advice about what to learn? Mark Lawrence <breamoreboy@yahoo.co.uk> - 2012-09-30 16:47 +0100
  Re: Can somebody give me an advice about what to learn? Wolfgang Keller <feliphil@gmx.net> - 2012-10-03 20:31 +0200
    Re: Can somebody give me an advice about what to learn? Chris Rebert <clp2@rebertia.com> - 2012-10-03 21:47 -0700
      Re: Can somebody give me an advice about what to learn? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-10-04 06:34 +0000
        Re: Can somebody give me an advice about what to learn? Wolfgang Keller <feliphil@gmx.net> - 2012-10-04 19:45 +0200

csiph-web