Thread: About the psycopg2 name

About the psycopg2 name

From
Reuben Rissler
Date:

Does anybody know the history behind the psycopg2 name?

Thanks, Reuben

Re: About the psycopg2 name

From
Karsten Hilbert
Date:
On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote:

> Does anybody know the history behind the psycopg2 name?

The 2 was added after a major rewrite, for what that's worth :-)

Karsten
-- 
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


Re: About the psycopg2 name

From
Joe Abbate
Date:
On 24/02/18 11:29, Karsten Hilbert wrote:
> On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote:
> 
>> Does anybody know the history behind the psycopg2 name?
> 
> The 2 was added after a major rewrite, for what that's worth :-)

IIRC Federico Di Gregorio (who should know the story behind the name) 
was a psychology major (just kidding :-).

Joe


Re: About the psycopg2 name

From
Federico Di Gregorio
Date:
On 24/02/18 18:20, Joe Abbate wrote:
> On 24/02/18 11:29, Karsten Hilbert wrote:
>> On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote:
>>
>>> Does anybody know the history behind the psycopg2 name?
>>
>> The 2 was added after a major rewrite, for what that's worth :-)
> 
> IIRC Federico Di Gregorio (who should know the story behind the name) 
> was a psychology major (just kidding :-).

Ah ah, no. At the time I was just fresh out of university (biophysics) 
and working for a "free software" company during the dot.com bubble.

Like always, the name was a joke, and a badly worded one. At the time, 
all PostgreSQL Python drivers were pure s**t and my company gave to two 
interns the job to write a new driver. They produced s**t^2 by writing 
first a server that connected to PostgreSQL using libpq and then a 
Python client that was supposed to connect to the server and pass 
through it all the SQL for the backend. After a couple of month the 
whole thing still didn't work: the worse bug was that for apparently no 
reason it opened connections to the backend like _crazy_.

So, in about a weekend I wrote the core of psycopg 1, just to 
demonstrate that you can write something that works without 
over-engineering it. I wanted to call it psychopg (a reference to their 
psychotic driver) but I typed the name wrong.

Fast forward a couple of week: psycopg 1 is much better than anything 
else (that says a lot about the state of the other drivers) and we have 
our first adopter outside the company[1] :)

And the name just stuck.

To be honest, we later decided that the name was ok, given that, at the 
time, psycopg was the only driver able to support multi-threaded Python 
applications without dying an horrible death. Something along the lines 
that the driver should be a bit "psycho" to manage all the threads. Or 
something like that.

federico

[1] If you're curious about that, just have a look at the docs/SUCCESS 
file in the source distribution. Is a gathering of the email we received 
after checking with the users if a particularly nasty bug was gone and 
asking for success stories while preparing the 1.0 release back in 2001.

-- 
Federico Di Gregorio                         federico.digregorio@dndg.it
DNDG srl                                                  http://dndg.it
  I porcellini di terra sono davvero Crostacei! Non lo sapevo!
   Certo che sono crostacei, hanno la crosta!
   Allora la pizza è un crostaceo?!               -- discorso all'ESC2k07


Re: About the psycopg2 name

From
Mike Bayer
Date:
On Tue, Feb 27, 2018 at 8:44 AM, Federico Di Gregorio <fog@dndg.it> wrote:
> On 24/02/18 18:20, Joe Abbate wrote:
>>
>> On 24/02/18 11:29, Karsten Hilbert wrote:
>>>
>>> On Sat, Feb 24, 2018 at 11:27:22AM -0500, Reuben Rissler wrote:
>>>
>>>> Does anybody know the history behind the psycopg2 name?
>>>
>>>
>>> The 2 was added after a major rewrite, for what that's worth :-)
>>
>>
>> IIRC Federico Di Gregorio (who should know the story behind the name) was
>> a psychology major (just kidding :-).
>
>
> Ah ah, no. At the time I was just fresh out of university (biophysics) and
> working for a "free software" company during the dot.com bubble.
>
> Like always, the name was a joke, and a badly worded one. At the time, all
> PostgreSQL Python drivers were pure s**t and my company gave to two interns
> the job to write a new driver. They produced s**t^2 by writing first a
> server that connected to PostgreSQL using libpq and then a Python client
> that was supposed to connect to the server and pass through it all the SQL
> for the backend. After a couple of month the whole thing still didn't work:
> the worse bug was that for apparently no reason it opened connections to the
> backend like _crazy_.

today we call this PGBouncer :)


>
> So, in about a weekend I wrote the core of psycopg 1, just to demonstrate
> that you can write something that works without over-engineering it. I
> wanted to call it psychopg (a reference to their psychotic driver) but I
> typed the name wrong.

I always thought it was related to Psyco
(http://psyco.sourceforge.net/), like you tried using that at first or
something like that.


>
> Fast forward a couple of week: psycopg 1 is much better than anything else
> (that says a lot about the state of the other drivers) and we have our first
> adopter outside the company[1] :)
>
> And the name just stuck.
>
> To be honest, we later decided that the name was ok, given that, at the
> time, psycopg was the only driver able to support multi-threaded Python
> applications without dying an horrible death. Something along the lines that
> the driver should be a bit "psycho" to manage all the threads. Or something
> like that.
>
> federico
>
> [1] If you're curious about that, just have a look at the docs/SUCCESS file
> in the source distribution. Is a gathering of the email we received after
> checking with the users if a particularly nasty bug was gone and asking for
> success stories while preparing the 1.0 release back in 2001.
>
> --
> Federico Di Gregorio                         federico.digregorio@dndg.it
> DNDG srl                                                  http://dndg.it
>  I porcellini di terra sono davvero Crostacei! Non lo sapevo!
>   Certo che sono crostacei, hanno la crosta!
>   Allora la pizza è un crostaceo?!               -- discorso all'ESC2k07
>