Re: complaints about no replies last week

2009-04-02 Thread Aaron Brady
On Mar 31, 4:34 pm, Arnaud Delobelle arno...@googlemail.com wrote:
 a...@pythoncraft.com (Aahz) writes:
  Arnaud Delobelle  arno...@googlemail.com wrote:

 There are no comments - I don't have the time to add any, sorry!

  The margin is too small to contain the proof?

 I wish I could come up with such a resilient conjecture!

 Ah but in this case, the proof is in the program, as Curry-Howard may
 well have said.

Is it simple, complex, or complicated?  IS IT FLAT OR NESTED!  /
shouting
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-04-01 Thread pruebauno
On Mar 31, 4:07 pm, Arnaud Delobelle arno...@googlemail.com wrote:
 prueba...@latinmail.com writes:

 [...]



  Well since I attracted a couple people's attention I will describe the
  problem in more detail. Describing the problem properly is probably as
  hard as solving it, so excuse me if I struggle a bit.

  The problem is for a health insurance company and involves the period
  of time a person is covered. Most insurance companies allow not only
  for the main member to be insured but his family: the spouse and the
  dependents (children). This additional coverage costs extra but less
  than a full new insurance. So for example if Alice buys an insurance
  worth at 100 dollars a month, she can insure her husband Bob for an
  additional 50 dollars. Under certain circumstances Alice may go off
  the insurance and only Bob stays. In that case the price goes back to
  100 dollars or maybe there is a deal for 80 or something like that. In
  other words the cost of the insurance is dependent on the combination
  of family members that participate in it. Additionally not only do we
  have different family compositions but also different insurance
  products. So you can get medical, dental and vision insurance.

  All that data is stored in a database that is not very tidy and looks
  something like this:

  First Day of Coverage, Last Day of Coverage, Relationship, Product
  5/3/2005, 5/3/2005, D, M
  9/10/2005, 10/10/2005, S, V
  3/15/2005, 7/15/2005, M, M
  3/1/2005, 6/1/2005, S, M
  5/15/2005, 7/20/2005, D, D
  9/10/2005, 1/1/2140, M, V
  2/1/2005, 5/3/2005, M, M

  Where
  Relationship: M=Main Member, S=Spouse, D=Dependent
  Product: M=Medical, D=Dental, V=Vision

  As far as I know at the present time there are no deals based on
  combination of products purchased so we will handle each product
  independently. What I want is a simple algorithm that allows me to
  calculate something like this out of it (hopefully I didn’t make a
  mistake):

  Medical:
  2/1/2005, 2/28/2005, M
  3/1/2005, 5/2/2005, MS
  5/3/2005, 5/3/2005, MSD
  5/4/2005, 6/1/2005, MS
  6/2/2005, 7/15/2005, M

  Dental:
  5/15/2005, 7/20/2005, D

  Vision:
  9/10/2005, 10/10/2005, MS
  10/11/2005, 1/1/2140, M

 OK the approach I describe in my previous email works fine for this
 particular problem. I implement it below - the function walk_ivals is at
 the heart of it, I've made it as simple as possible and it's pretty
 clear that it is O(nlogn).

 The function that actually sorts the data is union(), and it's just a
 call to walk_ivals with callback the function acc() which is constant
 time, therefore union() itself has the same complexity as walk_ivals.

 There are no comments - I don't have the time to add any, sorry!

 --
 import datetime
 from collections import defaultdict

 def walk_ivals(ivals, callback, endvals=(-1, 1)):
     endpoints = [(x, data) for ival, data in ivals for x in zip(ival, 
 endvals)]
     endpoints.sort()
     for (endpoint, endval), data in endpoints:
         callback(endpoint, endval, data)

 def union(ivals):
     timelines = defaultdict(list)
     mult = defaultdict(lambda: defaultdict(int))
     def acc(date, step, data):
         rel, prod = data
         old_mult = mult[prod][rel]
         mult[prod][rel] -= step
         if not(old_mult and mult[prod][rel]):
             rels = [rel for rel, m in mult[prod].iteritems() if m]
             if timelines[prod] and timelines[prod][-1][0] == date:
                 timelines[prod][-1][1] = rels
             else:
                 timelines[prod].append([date, rels])
     walk_ivals(ivals, acc)
     return timelines

 test_data = 5/3/2005, 5/3/2005, D, M
 9/10/2005, 10/10/2005, S, V
 3/15/2005, 7/15/2005, M, M
 3/1/2005, 6/1/2005, S, M
 5/15/2005, 7/20/2005, D, D
 9/10/2005, 1/1/2140, M, V
 2/1/2005, 5/3/2005, M, M

 def parse_date(date_string):
     month, day, year = map(int, date_string.split('/'))
     return datetime.date(year, month, day)

 def parse_data(data_string):
     data = []
     for line in data_string.split(\n):
         start, end, rel, prod = line.split(,)
         start, end = map(parse_date, (start + datetime.timedelta(1), end))
         rel, prod = rel.strip(), prod.strip()
         data.append([(start, end), (rel, prod)])
     return data

 def test():
     ivals = parse_data(test_data)
     timelines = union(ivals)
     for prod, timeline in timelines.iteritems():
         print -*20
         print Product, prod
         for date, covers in timeline:
             print date, '  '.join(covers)

 if __name__ == '__main__':
    test()      
 --

 Here is what it outputs:

 marigold:junk arno$ python intervals2.py
 
 Product M
 2005-02-01 M
 2005-03-01 S  M
 2005-05-03 S  M  D
 2005-05-04 S  M
 2005-06-02 M
 2005-07-16
 
 Product D
 2005-05-15 D
 2005-07-21
 
 Product V
 2005-09-10 

Re: complaints about no replies last week

2009-03-31 Thread Arnaud Delobelle


Arnaud Delobelle wrote:

 prueba...@latinmail.com writes:
 [...]
  I myself asked about how to write a library to efficiently do union
  and intersection of sets containing time intervals some time ago on
  this list and got little to no answers. It is a tricky problem. Since
  I was getting paid I got an O(n*n) solution working. People on this
  list on the other hand do not get paid and answer whatever strikes
  their fancy. Sometimes the question is hard or confusing and nobody is
  motivated enough to answer.

 I wasn't around when you posted this I guess. Do you mean intervals sets
 on the (real) number line such as:

   1-3, 6-10 meaning all numbers between 1 and 3 and all numbers
   between 6 and 10.

 In this case I think you can achieve union and intersection in O(nlogn)
 where n is the total number of intervals in the interval sets to unify
 or intersect. There is an implementation below. I have chosen a very
 simple data structure for interval sets: an interval set is the list of
 its endpoints. E.g.

 1-3, 6-10 is the list [1, 3, 6, 10]

 This means that I can't specify whether an interval is closed or open.
 So in the implementation below all intervals are assumed to be open.
 The method could be made to work for any kind of intervals with the same
 complexity, there would just be a few more LOC.  I'm focusing on the
 principle - here it is:


 --
 # Implementation of union and intersection of interval sets.

 from itertools import *

 def combine(threshold, intsets):
 endpoints = sorted(chain(*imap(izip, intsets, repeat(cycle([1,-1])
 height = 0
 compound = []
 for x, step in endpoints:
 old_height = height
 height += step
 if max(height, old_height) == threshold:
 compound.append(x)
 return compound

 def union(*intsets):
 return combine(1, intsets)

 def intersection(*intsets):
 return combine(len(intsets), intsets)

 # tests

 def pretty(a):
 a = iter(a)
 return ', '.join(%s-%s % (a, b) for a, b in izip(a, a))

 tests = [
 ([1, 5, 10, 15], [3, 11, 13, 20]),
 ([2, 4, 6, 8], [4, 7, 10, 11]),
 ([0, 11], [5, 10, 15, 25], [7, 12, 13, 15]),
 ]

 for intsets in tests:
 print sets: , ; .join(imap(pretty, intsets))
 print union: , pretty(union(*intsets))
 print intersection: , pretty(intersection(*intsets))
 print -*20
 --

 Is this what you were looking for?

 --
 Arnaud

I realised after posting last night that I must be

(1) solving the wrong problem
(2) solving it badly

- My implementation of the combine() function above is O(nlogn)
(because of the sorted() call) whereas it could be O(n) by iterating
over the interval in the parallel manner, hence (2).  This would make
union() and intersection() O(n).

- As the problem was solved by the OP in O(n^2) I must be solving the
wrong problem (1).

I apologise for this.

However it was a nice and compact implementation IMHO :)

--
Arnaud
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-31 Thread pruebauno
On Mar 31, 2:56 am, Arnaud Delobelle arno...@googlemail.com wrote:
 Arnaud Delobelle wrote:
  prueba...@latinmail.com writes:
  [...]
   I myself asked about how to write a library to efficiently do union
   and intersection of sets containing time intervals some time ago on
   this list and got little to no answers. It is a tricky problem. Since
   I was getting paid I got an O(n*n) solution working. People on this
   list on the other hand do not get paid and answer whatever strikes
   their fancy. Sometimes the question is hard or confusing and nobody is
   motivated enough to answer.

  I wasn't around when you posted this I guess. Do you mean intervals sets
  on the (real) number line such as:

        1-3, 6-10 meaning all numbers between 1 and 3 and all numbers
        between 6 and 10.

  In this case I think you can achieve union and intersection in O(nlogn)
  where n is the total number of intervals in the interval sets to unify
  or intersect. There is an implementation below. I have chosen a very
  simple data structure for interval sets: an interval set is the list of
  its endpoints. E.g.

      1-3, 6-10 is the list [1, 3, 6, 10]

  This means that I can't specify whether an interval is closed or open.
  So in the implementation below all intervals are assumed to be open.
  The method could be made to work for any kind of intervals with the same
  complexity, there would just be a few more LOC.  I'm focusing on the
  principle - here it is:

  --
  # Implementation of union and intersection of interval sets.

  from itertools import *

  def combine(threshold, intsets):
      endpoints = sorted(chain(*imap(izip, intsets, repeat(cycle([1,-1])
      height = 0
      compound = []
      for x, step in endpoints:
          old_height = height
          height += step
          if max(height, old_height) == threshold:
              compound.append(x)
      return compound

  def union(*intsets):
      return combine(1, intsets)

  def intersection(*intsets):
      return combine(len(intsets), intsets)

  # tests

  def pretty(a):
      a = iter(a)
      return ', '.join(%s-%s % (a, b) for a, b in izip(a, a))

  tests = [
      ([1, 5, 10, 15], [3, 11, 13, 20]),
      ([2, 4, 6, 8], [4, 7, 10, 11]),
      ([0, 11], [5, 10, 15, 25], [7, 12, 13, 15]),
      ]

  for intsets in tests:
      print sets: , ; .join(imap(pretty, intsets))
      print union: , pretty(union(*intsets))
      print intersection: , pretty(intersection(*intsets))
      print -*20
  --

  Is this what you were looking for?

  --
  Arnaud

 I realised after posting last night that I must be

 (1) solving the wrong problem
 (2) solving it badly

 - My implementation of the combine() function above is O(nlogn)
 (because of the sorted() call) whereas it could be O(n) by iterating
 over the interval in the parallel manner, hence (2).  This would make
 union() and intersection() O(n).

 - As the problem was solved by the OP in O(n^2) I must be solving the
 wrong problem (1).

 I apologise for this.

 However it was a nice and compact implementation IMHO :)

 --
 Arnaud

I am pretty sure the problem can be solved in O(n log n). I just
wasn't feeling overly smart when I was writing the algorithm. N is on
average 4 and it had eventually to be implemented inside a framework
using C++ anyway, so it is pretty fast. I can’t believe that no
programmer has come over the same kind of problem before, yet my
Google fu didn’t do anything for me.

Well since I attracted a couple people's attention I will describe the
problem in more detail. Describing the problem properly is probably as
hard as solving it, so excuse me if I struggle a bit.

The problem is for a health insurance company and involves the period
of time a person is covered. Most insurance companies allow not only
for the main member to be insured but his family: the spouse and the
dependents (children). This additional coverage costs extra but less
than a full new insurance. So for example if Alice buys an insurance
worth at 100 dollars a month, she can insure her husband Bob for an
additional 50 dollars. Under certain circumstances Alice may go off
the insurance and only Bob stays. In that case the price goes back to
100 dollars or maybe there is a deal for 80 or something like that. In
other words the cost of the insurance is dependent on the combination
of family members that participate in it. Additionally not only do we
have different family compositions but also different insurance
products. So you can get medical, dental and vision insurance.

All that data is stored in a database that is not very tidy and looks
something like this:

First Day of Coverage, Last Day of Coverage, Relationship, Product
5/3/2005, 5/3/2005, D, M
9/10/2005, 10/10/2005, S, V
3/15/2005, 7/15/2005, M, M
3/1/2005, 6/1/2005, S, M
5/15/2005, 7/20/2005, D, D
9/10/2005, 1/1/2140, M, V
2/1/2005, 5/3/2005, M, 

Re: complaints about no replies last week

2009-03-31 Thread Arnaud Delobelle
prueba...@latinmail.com writes:
[...]
 Well since I attracted a couple people's attention I will describe the
 problem in more detail. Describing the problem properly is probably as
 hard as solving it, so excuse me if I struggle a bit.

 The problem is for a health insurance company and involves the period
 of time a person is covered. Most insurance companies allow not only
 for the main member to be insured but his family: the spouse and the
 dependents (children). This additional coverage costs extra but less
 than a full new insurance. So for example if Alice buys an insurance
 worth at 100 dollars a month, she can insure her husband Bob for an
 additional 50 dollars. Under certain circumstances Alice may go off
 the insurance and only Bob stays. In that case the price goes back to
 100 dollars or maybe there is a deal for 80 or something like that. In
 other words the cost of the insurance is dependent on the combination
 of family members that participate in it. Additionally not only do we
 have different family compositions but also different insurance
 products. So you can get medical, dental and vision insurance.

 All that data is stored in a database that is not very tidy and looks
 something like this:

 First Day of Coverage, Last Day of Coverage, Relationship, Product
 5/3/2005, 5/3/2005, D, M
 9/10/2005, 10/10/2005, S, V
 3/15/2005, 7/15/2005, M, M
 3/1/2005, 6/1/2005, S, M
 5/15/2005, 7/20/2005, D, D
 9/10/2005, 1/1/2140, M, V
 2/1/2005, 5/3/2005, M, M

 Where
 Relationship: M=Main Member, S=Spouse, D=Dependent
 Product: M=Medical, D=Dental, V=Vision

 As far as I know at the present time there are no deals based on
 combination of products purchased so we will handle each product
 independently. What I want is a simple algorithm that allows me to
 calculate something like this out of it (hopefully I didn’t make a
 mistake):

 Medical:
 2/1/2005, 2/28/2005, M
 3/1/2005, 5/2/2005, MS
 5/3/2005, 5/3/2005, MSD
 5/4/2005, 6/1/2005, MS
 6/2/2005, 7/15/2005, M

 Dental:
 5/15/2005, 7/20/2005, D

 Vision:
 9/10/2005, 10/10/2005, MS
 10/11/2005, 1/1/2140, M

OK the approach I describe in my previous email works fine for this
particular problem. I implement it below - the function walk_ivals is at
the heart of it, I've made it as simple as possible and it's pretty
clear that it is O(nlogn).

The function that actually sorts the data is union(), and it's just a
call to walk_ivals with callback the function acc() which is constant
time, therefore union() itself has the same complexity as walk_ivals.

There are no comments - I don't have the time to add any, sorry!

--
import datetime
from collections import defaultdict

def walk_ivals(ivals, callback, endvals=(-1, 1)):
endpoints = [(x, data) for ival, data in ivals for x in zip(ival, endvals)]
endpoints.sort()
for (endpoint, endval), data in endpoints:
callback(endpoint, endval, data)

def union(ivals):
timelines = defaultdict(list)
mult = defaultdict(lambda: defaultdict(int))
def acc(date, step, data):
rel, prod = data
old_mult = mult[prod][rel]
mult[prod][rel] -= step
if not(old_mult and mult[prod][rel]):
rels = [rel for rel, m in mult[prod].iteritems() if m]
if timelines[prod] and timelines[prod][-1][0] == date:
timelines[prod][-1][1] = rels
else:
timelines[prod].append([date, rels])
walk_ivals(ivals, acc)
return timelines

test_data = 5/3/2005, 5/3/2005, D, M
9/10/2005, 10/10/2005, S, V
3/15/2005, 7/15/2005, M, M
3/1/2005, 6/1/2005, S, M
5/15/2005, 7/20/2005, D, D
9/10/2005, 1/1/2140, M, V
2/1/2005, 5/3/2005, M, M

def parse_date(date_string):
month, day, year = map(int, date_string.split('/'))
return datetime.date(year, month, day)

def parse_data(data_string):
data = []
for line in data_string.split(\n):
start, end, rel, prod = line.split(,)
start, end = map(parse_date, (start + datetime.timedelta(1), end))
rel, prod = rel.strip(), prod.strip()
data.append([(start, end), (rel, prod)])
return data

def test():
ivals = parse_data(test_data)
timelines = union(ivals)
for prod, timeline in timelines.iteritems():
print -*20
print Product, prod
for date, covers in timeline:
print date, '  '.join(covers)

if __name__ == '__main__':
   test()  
--

Here is what it outputs:

marigold:junk arno$ python intervals2.py 

Product M
2005-02-01 M
2005-03-01 S  M
2005-05-03 S  M  D
2005-05-04 S  M
2005-06-02 M
2005-07-16 

Product D
2005-05-15 D
2005-07-21 

Product V
2005-09-10 S  M
2005-10-11 M
2140-01-02 

--

The date output is slightly different from yours - I didn't realise you
had time intervals and now I don't 

Re: complaints about no replies last week

2009-03-31 Thread Aahz
In article m263hpa21u@googlemail.com,
Arnaud Delobelle  arno...@googlemail.com wrote:

There are no comments - I don't have the time to add any, sorry!

The margin is too small to contain the proof?
-- 
Aahz (a...@pythoncraft.com)   * http://www.pythoncraft.com/

Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.  --Brian W. Kernighan
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-31 Thread Arnaud Delobelle
a...@pythoncraft.com (Aahz) writes:

 Arnaud Delobelle  arno...@googlemail.com wrote:

There are no comments - I don't have the time to add any, sorry!

 The margin is too small to contain the proof?

I wish I could come up with such a resilient conjecture!

Ah but in this case, the proof is in the program, as Curry-Howard may
well have said.

-- 
Arnaud
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-30 Thread pruebauno
On Mar 28, 11:07 am, Aaron Brady castiro...@gmail.com wrote:
 Hi,

 A week ago, I posted a question and an idea about Python's garbage
 collector.  I got a few replies.  Some days later, I posted a mock-up
 implementation of it, and got *NO* replies.  Does this mean:

 a) It works
 b) It doesn't work
 c) It's not particularly applicable to Python at that point
 (particularly)
 d) It's not news

 Thanks and sincerely.

 P.S.  Non-plugging 
 links:http://groups.google.com/group/comp.lang.python/browse_thread/thread/...http://groups.google.com/group/comp.lang.python/browse_thread/thread/...

e) It is a hard or complex problem that requires significant
investment of time on a problem or approach that few people are
interested in at the moment.

f) The description is confusing or incomplete or the source code is
long and difficult to read.

I myself asked about how to write a library to efficiently do union
and intersection of sets containing time intervals some time ago on
this list and got little to no answers. It is a tricky problem. Since
I was getting paid I got an O(n*n) solution working. People on this
list on the other hand do not get paid and answer whatever strikes
their fancy. Sometimes the question is hard or confusing and nobody is
motivated enough to answer.
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-30 Thread Steven D'Aprano
On Mon, 30 Mar 2009 07:50:49 -0700, pruebauno wrote:

 I myself asked about how to write a library to efficiently do union and
 intersection of sets containing time intervals some time ago on this
 list and got little to no answers. It is a tricky problem. 

With all the confidence of somebody who doesn't need to solve it, I can 
say, no, it's an easy problem, provided you use the correct data 
structure. What you want is an interval tree:

http://en.wikipedia.org/wiki/Interval_tree


 Since I was
 getting paid I got an O(n*n) solution working. 

Just off the top of my head, I *think* you should be able to get that 
down to O(m * log n) where m is the size of one set and n the size of the 
other. Don't quote me on that though.


 People on this list on the other hand do not get paid

We don't??? Damn! I was expecting a HUGE cheque at the end of the month!


BTW Aaron, I haven't replied to your post about the garbage collector 
because that's one part of Python programing where I cherish my ignorance.



-- 
Steven
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-30 Thread Arnaud Delobelle
prueba...@latinmail.com writes:
[...]
 I myself asked about how to write a library to efficiently do union
 and intersection of sets containing time intervals some time ago on
 this list and got little to no answers. It is a tricky problem. Since
 I was getting paid I got an O(n*n) solution working. People on this
 list on the other hand do not get paid and answer whatever strikes
 their fancy. Sometimes the question is hard or confusing and nobody is
 motivated enough to answer.

I wasn't around when you posted this I guess. Do you mean intervals sets
on the (real) number line such as:
  
  1-3, 6-10 meaning all numbers between 1 and 3 and all numbers
  between 6 and 10.

In this case I think you can achieve union and intersection in O(nlogn)
where n is the total number of intervals in the interval sets to unify
or intersect. There is an implementation below. I have chosen a very
simple data structure for interval sets: an interval set is the list of
its endpoints. E.g.

1-3, 6-10 is the list [1, 3, 6, 10]

This means that I can't specify whether an interval is closed or open.
So in the implementation below all intervals are assumed to be open.
The method could be made to work for any kind of intervals with the same
complexity, there would just be a few more LOC.  I'm focusing on the
principle - here it is:


--
# Implementation of union and intersection of interval sets.

from itertools import *

def combine(threshold, intsets):
endpoints = sorted(chain(*imap(izip, intsets, repeat(cycle([1,-1])
height = 0
compound = []
for x, step in endpoints:
old_height = height
height += step
if max(height, old_height) == threshold:
compound.append(x)
return compound

def union(*intsets):
return combine(1, intsets)

def intersection(*intsets):
return combine(len(intsets), intsets)

# tests

def pretty(a):
a = iter(a)
return ', '.join(%s-%s % (a, b) for a, b in izip(a, a))

tests = [
([1, 5, 10, 15], [3, 11, 13, 20]),
([2, 4, 6, 8], [4, 7, 10, 11]),
([0, 11], [5, 10, 15, 25], [7, 12, 13, 15]),
]

for intsets in tests:
print sets: , ; .join(imap(pretty, intsets))
print union: , pretty(union(*intsets))
print intersection: , pretty(intersection(*intsets))
print -*20
--

Is this what you were looking for?

-- 
Arnaud
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-29 Thread Aaron Brady
On Mar 28, 7:31 pm, ajaksu aja...@gmail.com wrote:
 Hi!

 Aaron Brady wrote:
  A week ago, I posted a question and an idea about Python's garbage
  collector.  I got a few replies.

 Some very nice, too :)

Yes.

  Some days later, I posted a mock-up
  implementation of it, and got *NO* replies.  Does this mean:

 It's not particularly clear to me what your goal is in that post.
 Something like I'm trying to model Python's GC or here's an
 alternative way for the Python GC to work would make it clear, so
 that feedback could be more objective.

 Also, a docstring with the executive overview on top of the module
 helps a lot, as does including your usage examples as doctests. I've
 heard these suggestion regarding my posts recently ;)

 However, I think the kind of deep, conceptual feedback I believe you'd
 like is available here and elsewhere[1]. It's just a matter of bad
 luck/bad timing IMHO :)

 Daniel

 [1]http://groups.google.com/group/unladen-swallow/browse_thread/thread/c...

Hi, Daniel,

I added an explanation of what I want-- a technical discussion of it.
I also included the output in a reply to the code.  Unfortunately it's
367 lines long and rather obscure, albeit systematic.

If it works, of course Python could adopt it, but my self-esteem kind
of interferes with thinking that I could have improved something that
is a decade old and hundreds of people have stared at... even though I
do have a CS Bachelor's.

Besides, Martin Lowis said:
 There is an easy design pattern around it, so I'm
 -1 on complicating the GC protocol.

That doesn't mean that no one will help me add it to /my/ project
though.
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread Benjamin Kaplan
On Sat, Mar 28, 2009 at 11:07 AM, Aaron Brady castiro...@gmail.com wrote:

 Hi,

 A week ago, I posted a question and an idea about Python's garbage
 collector.  I got a few replies.  Some days later, I posted a mock-up
 implementation of it, and got *NO* replies.  Does this mean:

 a) It works
 b) It doesn't work
 c) It's not particularly applicable to Python at that point
 (particularly)
 d) It's not news


e) Most of us don't have the time or inclination to look through and test
your code.



 Thanks and sincerely.

 P.S.  Non-plugging links:

 http://groups.google.com/group/comp.lang.python/browse_thread/thread/82ebfec89bcc906c/de901f689ae7a962

 http://groups.google.com/group/comp.lang.python/browse_thread/thread/d3bb410cc6dcae54/f4b282e545335c30
 --
 http://mail.python.org/mailman/listinfo/python-list

--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread r
On Mar 28, 10:07 am, Aaron Brady castiro...@gmail.com wrote:
 Hi,

 A week ago, I posted a question and an idea about Python's garbage
 collector.  I got a few replies.  Some days later, I posted a mock-up
 implementation of it, and got *NO* replies.  Does this mean:

 a) It works
 b) It doesn't work
 c) It's not particularly applicable to Python at that point
 (particularly)
 d) It's not news

 Thanks and sincerely.

 P.S.  Non-plugging 
 links:http://groups.google.com/group/comp.lang.python/browse_thread/thread/...http://groups.google.com/group/comp.lang.python/browse_thread/thread/...

It's probably more like
e) You are not a member of the Illuminati, so the elite don't give a
monkey's toss!

Go back and look over my most infamous thread (i will not utter the
title here but you know of which i speak) and you will see first hand
the wall of resistance put before any non-member who has a good idea.
just ideas
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread Aahz
In article 2d80ec1b-5eb5-4e82-9a4a-36934dd53...@z9g2000yqi.googlegroups.com,
Aaron Brady  castiro...@gmail.com wrote:

A week ago, I posted a question and an idea about Python's garbage
collector.  I got a few replies.  Some days later, I posted a mock-up
implementation of it, and got *NO* replies.  Does this mean:

a) It works
b) It doesn't work
c) It's not particularly applicable to Python at that point
(particularly)
d) It's not news

e) the best place to start these days with actual implementations of
ideas is the python-ideas list
-- 
Aahz (a...@pythoncraft.com)   * http://www.pythoncraft.com/

At Resolver we've found it useful to short-circuit any doubt and just
refer to comments in code as 'lies'. :-)
--Michael Foord paraphrases Christian Muirhead on python-dev, 2009-3-22
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread Aaron Brady
On Mar 28, 11:41 am, a...@pythoncraft.com (Aahz) wrote:
 In article 2d80ec1b-5eb5-4e82-9a4a-36934dd53...@z9g2000yqi.googlegroups.com,
 Aaron Brady  castiro...@gmail.com wrote:



 A week ago, I posted a question and an idea about Python's garbage
 collector.  I got a few replies.  Some days later, I posted a mock-up
 implementation of it, and got *NO* replies.  Does this mean:

 a) It works
 b) It doesn't work
 c) It's not particularly applicable to Python at that point
 (particularly)
 d) It's not news

 e) the best place to start these days with actual implementations of
 ideas is the python-ideas list

I'm not convinced I'm altogether welcome there.  I treated that list
as a social list for some time, not discovering its intensity until
after estranging everybody.  Not to mention, I'm not primarily
proposing this idea as an improvement to the reference management;
it's an idea I would probably implement on the side, for an
extension.  I just want to know if it's valid and functional.  Should
I ask about it on comp.programming?  Am I in the right place?  Or, is
my idea sophisticated and relevant enough to test the waters again?

 At Resolver we've found it useful to short-circuit any doubt and just
 refer to comments in code as 'lies'. :-)
 --Michael Foord paraphrases Christian Muirhead on python-dev, 2009-3-22

P.S.  No one read your sig or liked it.
P.P.S.  Ok, not bad.
--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread ajaksu
Hi!

Aaron Brady wrote:
 A week ago, I posted a question and an idea about Python's garbage
 collector.  I got a few replies.

Some very nice, too :)

 Some days later, I posted a mock-up
 implementation of it, and got *NO* replies.  Does this mean:

It's not particularly clear to me what your goal is in that post.
Something like I'm trying to model Python's GC or here's an
alternative way for the Python GC to work would make it clear, so
that feedback could be more objective.

Also, a docstring with the executive overview on top of the module
helps a lot, as does including your usage examples as doctests. I've
heard these suggestion regarding my posts recently ;)

However, I think the kind of deep, conceptual feedback I believe you'd
like is available here and elsewhere[1]. It's just a matter of bad
luck/bad timing IMHO :)

Daniel

[1] 
http://groups.google.com/group/unladen-swallow/browse_thread/thread/c39e75ad6100893f

--
http://mail.python.org/mailman/listinfo/python-list


Re: complaints about no replies last week

2009-03-28 Thread ajaksu
Aaron Brady wrote:
 Hi,
 c) It's not particularly applicable to Python at that point
 (particularly)

BTW, here's some interesting read:
http://mail.python.org/pipermail/python-3000/2006-September/003855.html
http://mail.python.org/pipermail/python-3000/2007-May/007129.html
http://mail.python.org/pipermail/python-dev/2007-October/074820.html

HTH,
Daniel
--
http://mail.python.org/mailman/listinfo/python-list