Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!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.011 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'sorts': 0.04; 'parser': 0.05; 'processing,': 0.07; 'protocols.': 0.09; 'solution,': 0.09; 'xml.': 0.09; 'wrote:': 0.15; 'around!': 0.16; "else's": 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'install.': 0.16; 'mon,': 0.16; 'pm,': 0.16; 'received:209.85.210.174': 0.19; 'received:mail- iy0-f174.google.com': 0.19; 'work,': 0.20; 'header:In-Reply-To:1': 0.22; 'stuff': 0.22; 'code': 0.24; 'xml': 0.25; "i'm": 0.27; 'message-id:@mail.gmail.com': 0.28; 'code,': 0.29; 'about.': 0.32; 'coding': 0.32; 'it.': 0.33; "i've": 0.33; 'to:addr:python-list': 0.34; 'someone': 0.34; 'things': 0.34; 'pretty': 0.35; "isn't": 0.35; 'trouble': 0.37; 'push': 0.37; 'some': 0.37; 'but': 0.37; 'received:google.com': 0.38; 'received:209.85': 0.38; 'subject:: ': 0.38; 'processing': 0.39; 'to:addr:python.org': 0.39; "couldn't": 0.40; 'received:209': 0.40; 'did': 0.40; 'your': 0.60; 'taking': 0.65; 'production': 0.65; 'here': 0.66; 'subject:program': 0.67; 'gain': 0.79; 'ready-made': 0.84; 'complies': 0.91; 'mentality': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=kNpx3h0k3q3PV/522ItLYogq4MWtfqAKwmoKIWWKyBw=; b=P973VAfYN5NWTAOSiG5ELTTM+e0rinPejYwSYwVCn+FTecCNSD4Vb7wWJxJGZiaobN GhcXEucI7QU8uMQd+PMHdOXfJQd3ULFuHMOHp/WwRqJeQrEXx85pkWghxJ/JBx2qRj+B udrFPra1p3KAF2vN1lcPmmi5udG5/nTxZW2cU= MIME-Version: 1.0 In-Reply-To: <18eb8b2b-fcf6-4700-a849-b58204f2004c@glegroupsg2000goo.googlegroups.com> References: <18eb8b2b-fcf6-4700-a849-b58204f2004c@glegroupsg2000goo.googlegroups.com> Date: Mon, 18 Jul 2011 17:42:38 +1000 Subject: Re: Looking for general advice on complex program From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 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: 22 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1310974961 news.xs4all.nl 23878 [2001:888:2000:d::a6]:55485 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:9787 On Mon, Jul 18, 2011 at 1:33 PM, Josh English wrote: > Sadly, I'm the type of guy who almost has to re-invent the wheel. When I = started XML processing, it was on an old computer and I couldn't get things= like lxml to work, or understand the ones I did manage to install. To full= y understand XML processing and validating, I had to write my own XML valid= ation utility. > Actually, this isn't a bad thing. Writing your own XML validator is an excellent way to gain proper comprehension of XML. Look up all the specifications and be sure that your parser complies with them, and you'll truly understand what XML is all about. For production code, it's often better to take a ready-made solution, if only to save you the trouble of coding it. But for learning, taking someone else's code can lead to black-box mentality - "I push this in here and I get that out there" - which can lead to all sorts of ridiculous piles of overlaid protocols. Yes, I've seen some pretty dumb stuff floating around! ChrisA