<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for pap</title>
    <link>http://www.advogato.org/person/pap/</link>
    <description>Advogato blog for pap</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 30 Aug 2008 02:32:11 GMT</pubDate>
    <item>
      <pubDate>Thu, 5 Apr 2001 13:09:02 GMT</pubDate>
      <title>5 Apr 2001</title>
      <link>http://www.advogato.org/person/pap/diary.html?start=4</link>
      <guid>http://www.advogato.org/person/pap/diary.html?start=4</guid>
      <description>Did some work on Sotonians last night.  Finally dusted down 
the old schema and began work on a lower-level API for it.  
Basically, for each table I need the classic insert, 
modify, get and delete behaviour modelled.  The biggest 
dilemma, however,  is where to perform the error 
checking.&lt;p&gt;
If I wanted, I could just pass stuff to the DB verbatim, 
and get it to report errors to me if values don't fit into 
the attributes they are assigned to.  That can be costly, 
though.  I don't really want the overhead of creating a DB 
connection if the end result is going to be fruitless.&lt;p&gt;
Which leads us into option 2 - which is to provide program 
logic which will use the Perl regexp checking to make sure 
values fit before placing them inside.  Makes for a much 
bigger API, but you can be reasonably sure that DB 
connections are worthwhile.&lt;p&gt;
I did actually knock up a seventy-line Perl script to 
analyze my DB schema and provide template methods for 
insertion, modification, deletion and retrieval.   This had 
type checking built-in, so if something was NOT NULL, it'd 
produce a check to make sure that particular attribute has 
been supplied as a parameter.  It also spawned little 
regexp and length checks to ensure that INTEGERs were 
correct, and that VARCHARs had a sensible number of 
characters in them.&lt;p&gt;
The problem with the generated code stems from the schema.  
The DB is heavily normalised, which results in the same 
attribute being present in a lot of other tables.  In each 
table method, the same code was being used to check the 
same attribute again and again.  The generated API weighed 
in at something like 1200 lines, which is a maintenance 
bitch.  So, whilst my DB API generator was a nice idea ( 
and a hairy coding experience - nice lot of escape 
sequences ) I'm now thinking about taking an alternative 
approach.&lt;p&gt;
I plan to wrap all the attribute checks into a single 
method, which can be called from the insertion, modify, 
retrieval and delete functions.  I'm also thinking of 
parameterising those functions to enable me to have just 
one routine for insertion, one for modification, etc.&lt;p&gt;
Still, a damn useful prototyping session, and something 
that ought to bear fruit regardless of it's apparent 
failure.</description>
    </item>
    <item>
      <pubDate>Thu, 22 Mar 2001 13:22:17 GMT</pubDate>
      <title>22 Mar 2001</title>
      <link>http://www.advogato.org/person/pap/diary.html?start=3</link>
      <guid>http://www.advogato.org/person/pap/diary.html?start=3</guid>
      <description>A while since my last entry.  I've been inundated with work 
of all kinds since my last post - most of it a total waste 
of time under better development circumstances.
&lt;p&gt;
Been writing this file moving system that collects files 
from an arbitrary number of locations and delivers them to 
an arbitrary number of locations.  The collection 
connection is quite limited in terms of bandwidth, so the 
sensible thing to do is to maintain a database of what 
you've downloaded and what you haven't - to ensure that 
files aren't needlessly transferred.
&lt;p&gt;
A job for something like Postgres, you might assume.  
However, due to some crap company policy the only DB I 
could get my hands on would be ORACLE, which is clearly 
overkill.  I haven't got root anywhere on our dev or live 
boxes, so I can't really install stuff myself - even if I 
could IT Services would put a contract out on my life.
&lt;p&gt;
So, the bulk of my experience over the last few months has 
been writing a Perl-hash-based DB in order to meet the 
system's  basic requirements.  A lot of fun.
&lt;p&gt;
Got the system into a nicely working state, but I have to 
ask why big corporates think that if something is free, it 
is unworthy of consideration.  It's a miracle that we even 
have Perl here.  And haven't they heard of third-party 
support contracts?  Re-inventing the wheel is not my idea 
of fun.  The sooner more companies embrace open-source 
software, the better.</description>
    </item>
    <item>
      <pubDate>Wed, 20 Dec 2000 14:57:45 GMT</pubDate>
      <title>20 Dec 2000</title>
      <link>http://www.advogato.org/person/pap/diary.html?start=2</link>
      <guid>http://www.advogato.org/person/pap/diary.html?start=2</guid>
      <description>&lt;b&gt;Sotonians&lt;/b&gt; Actually done some open source work since 
my last diary entry.  Been working on the database 
structure for &lt;a href="http://www.sotonians.org.uk/" &gt;Sotonians&lt;/a&gt; - a 
locally-themed site for the city of Southampton, England. 
&lt;p&gt;
I know what you're thinking - it's another of those sad 
sites which is replete with local (&lt;i&gt;flower 
shops&lt;/i&gt;|&lt;i&gt;restaurants&lt;/i&gt;|&lt;i&gt;brothels&lt;/i&gt;) advertising 
their (&lt;i&gt;chrysanthenums&lt;/i&gt;|&lt;i&gt;reconstituted 
dog&lt;/i&gt;|&lt;i&gt;cheap Thai imports&lt;/i&gt;) in 
wholly unappropriate colours.  Nothing could be further 
from the truth.&lt;p&gt;
The main idea of the site is to give a voice to the 
disenfranchised denizens of our fair city.  The site is 
frequently rude, covers all areas of conversation from 
monkey-spanking to primate-punishing - and is something 
we're looking to scale up.&lt;p&gt;
The current implementation is somewhat dodgy.  Most of the 
stuff is statically delivered, making maintenance a bit of 
a bitch.  &lt;a href="http://www.advogato.org/person/TheCorruptor/" &gt;
TheCorruptor&lt;/a&gt; and I are fed up with this headache, so 
we're 
doing something about it.&lt;p&gt;
Essentially, we're moving almost all of the content into a 
PostgreSQL database.  The DB design is now complete - I've 
just got to nip it on over.  The API for DB updates will be 
coming next.  Incidentally, we chose &lt;b&gt;postgres&lt;/b&gt; 
because I have a personal thing for clean databases.  It 
has stuff like referential integrity and transactions (not 
sure we'll need transactions for a lot of our stuff).  
postgres will help us keep the DB clean without excessive 
logic, hence its adoption as the DB of choice.&lt;p&gt;
&lt;a href="http://www.advogato.org/person/TheCorruptor/" &gt;
TheCorruptor&lt;/a&gt; is going to use the APIs to yank stuff 
outta the database, transform it using XSLT and deliver it 
to end users. &lt;p&gt;

&lt;p&gt; The DB design and API are actually very generic, which will 
allow it to be used for a wide range of dynamic content 
websites.&lt;p&gt;

&lt;p&gt; The new version of &lt;a href="http://www.sotonians.org.uk/" &gt;Sotonians&lt;/a&gt; will 
launch in early 2001.</description>
    </item>
    <item>
      <pubDate>Mon, 27 Nov 2000 13:36:52 GMT</pubDate>
      <title>27 Nov 2000</title>
      <link>http://www.advogato.org/person/pap/diary.html?start=1</link>
      <guid>http://www.advogato.org/person/pap/diary.html?start=1</guid>
      <description>Been awhile since my last diary entry.  Haven't had a great 
deal of time to be involved with stuff, due to the slings 
and arrows of outrageous relationship fortune.  Need a kick 
up the arse at the moment to get my developer head back on.
&lt;p&gt;
Projects are slowly starting to kick in.  The main thing 
I'm involved with at the moment is the complete re-write of 
our fair web-site, &lt;a href="http://www.sotonians.org.uk/" &gt;Sotonians&lt;/a&gt;.  I'm 
working on this with &lt;a href="http://www.advogato.org/person/TheCorruptor/" &gt;TheCorru
ptor&lt;/a&gt; - he's handling client-side delivery while I'm 
doing all of the backend stuff I know and (love|hate).
&lt;p&gt;
Been a reasonably interesting couple of months work-wise.  
I've become the custodian of a Perl-based GPS project, 
which isn't open source, but is interesting all the same.  
I've done the analysis on the entire codebase and sussed 
out where and why things are going wrong.  Did some real SE 
for a change and weighed the project in at about 100 days.  
Only problem is, I &lt;em&gt;am&lt;/em&gt; the team.  Not having a long-
haired associate to (rubbish|validate) my ideas is really 
starting to bake my brains.
&lt;p&gt;
We've procured a dedicated server for Sotonians and a 
number of other sites that we run, including 
southampton.pm.org - so I've been busy working on that.  
Unfortunately, access at my place of work is a bit crap - 
but there are always HTTP tunnels for that sort of thing.
&lt;p&gt;
&lt;a href="http://www.advogato.org/person/TheCorruptor/" &gt;TheCorru
ptor&lt;/a&gt; and I are going into business together very 
shortly.  I'm already contracting - he will be too, and 
we're looking to develop even more projects for the good of 
the business.  Not exactly Marxism - but hey - we all have 
to eat and pay for the nights out.  It should be pretty 
neat - we're quite up for it now, and figure that our vast 
collection of bullshit coupled with our sporadic sampling 
of talent should enable us to at least put Linux dev boxes 
on the table for awhile.
&lt;p&gt;
So, to summarise then.  A lot of projects, a lot of 
business and life as we know it isn't going to be the same 
in a months time.
&lt;p&gt;
Situation normal, then.</description>
    </item>
    <item>
      <pubDate>Fri, 21 Jul 2000 11:01:29 GMT</pubDate>
      <title>21 Jul 2000</title>
      <link>http://www.advogato.org/person/pap/diary.html?start=0</link>
      <guid>http://www.advogato.org/person/pap/diary.html?start=0</guid>
      <description>Another first post from a newbie muppet!&lt;br&gt;&lt;br&gt;

&lt;p&gt; &lt;p&gt;
Where are we at?  Been looking at possible projects to get
involved with but am frustrated when I find that someone has
already done the very thing I thought would be useful.

&lt;p&gt;
I was recently mortified to see someone charging a $10
registration fee for a Windows-based file-splitter, so my
first project will be a simple Windows-app to do precisely
that, but for nowt, and make it open-source.  If you know of
someone who has already done this, let me know.

&lt;p&gt;
The app is mostly intended to help the diminishing
population of Amiga owners transfer large files from their
PCs to Amiga on several 720K disks.
</description>
    </item>
  </channel>
</rss>
