Re: [python-uk] C is it faster than numpy

2022-02-25 Thread Stestagg
This is a fascinating subject. Firstly:

a lot of people think that C (or C++) is faster than python, yes I agree,
>

if you look at raw execution speed, then this is absolutely correct.  The
reasons for this are many and complex, but people who use this as a
standalone reason to avoid Python almost always don't actually understand
the subject too well.

If you want to read more about this, I would recommend searching for
"python glue language"  for example:

https://numpy.org/devdocs/user/c-info.python-as-glue.html


> *Is there another explanation ?*
>

Yes, the people who wrote numpy implemented sum() 'better' than you did.
That's not a put-down or anything, just an interesting reason why Python as
a glue language works so well. Lots of very smart people spend a lot of
time making numpy fast, because lots of people rely on it being fast
(partly because raw Python is a bit too slow to do these sorts of things
natively).

In C/C++ it's easy to say: 'it's just a for-loop, let's write it the simple
way'.   9 times out of 10, the for loop will be much faster than you ever
need it to be in either language, but if you really need speed for whatever
reason, you're going to have to reach for a library.  Numpy's popularity
means that everyone knows to just use it for this sort of thing
(interestingly, if you have a GPU, using something like pytorch might be
much faster here, depending on data transfer overheads).  In C/C++ there
are many many libraries that can do this sort of thing, but none have the
same general appeal as Numpy (in my opinion).

This means that with Python, you write the simple bits in a nice dynamic,
easy to write language, and the hard bits get farmed out to libraries like
numpy, and you benefit from some really awesome optimized code that make
your code faster than the naive equivalent 'fast' C implementation.

For example the following are all (i believe) different array sum
implementations for different CPU vector features across different
architectures/extensions:
https://github.com/numpy/numpy/blob/b97e7d585de4b80ae8202c1028c0dc03f5dde4ef/numpy/core/src/common/simd/avx512/arithmetic.h#L353
https://github.com/numpy/numpy/blob/b97e7d585de4b80ae8202c1028c0dc03f5dde4ef/numpy/core/src/common/simd/sse/arithmetic.h#L327
https://github.com/numpy/numpy/blob/b97e7d585de4b80ae8202c1028c0dc03f5dde4ef/numpy/core/src/common/simd/neon/arithmetic.h#L283

It's absolutely possible to make C/C++ perform at the same speed as numpy,
but you will have to invest a lot of time/effort in learning about
performance programming to get there (this can be a really useful skill to
learn, if you're interested!)

Some anecdotes:

1. I was using a C data logger library for some data logger device that
performed awfully, so I re-wrote it, feature-for-feature in python, and it
was 100x faster.  Why?  Not because Python is faster than C, just that
somewhere the original implementation had some bug/issue that was causing
slowness (It was related to sqlite transaction handling, but the C code
made it very hard to spot the issue, whereas the python was much easier to
reason about).  Nothing about what this library was doing required
high-performance code, so using Python was not a speed issue at all.

2. I worked on a very large data processing application for a fortune 500
co in Python, one part of the input pipeline was never going to be fast
enough for our volumes in pure python, so we wrote a custom module in
Cython (A hybrid language that compiles to a C/C++ extension), this small
module allowed the entire system to perform up to spec, and (along with a
numpy-like library) meant we could implement a lot of custom business logic
in Python, rather than in less expressive languages, and generally
out-perform similar Java/other language systems.


Steve
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] The London Python Code Dojo is coming back next Thursday

2019-04-02 Thread Stestagg
The People’s Independant Python Dojo?


Dojo means dojo.

Steve

On Tue, 2 Apr 2019 at 17:01, S Walker  wrote:

> The Popular Python Dojo?
>
>
> S
>
> On 02/04/2019 16:45, Tim Golden wrote:
>
> Start a spin-off: The South Coast Python Code Dojo?
>
> Or maybe "The Cinque Ports Python Code Dojo" sounds a bit grander?
> [I'm sure there's a Monty Python reference there somewhere as well,
> riffing on the not-so-cinq Cinque Ports]
>
> TJG
>
> On 02/04/2019 16:41, Steve Holden wrote:
>
> Alas no longer quite as practical now I'm living in Hastings.
>
> regards
> Steve Holden
>
>
> On Tue, Apr 2, 2019 at 3:55 PM Tim Golden  wrote:
>
>> *Cough* obviously -- on Thursday evening. I mean: I hope you do have fun
>> tomorrow evening, but if you want to enjoy yourself with us at the London
>> Python Code Dojo you'll have to wait until Thursday
>>
>> TJG
>>
>> On 02/04/2019 15:52, Tim Golden wrote:
>>
>> We've still got some tickets left, so please sign up and join the fun
>> tomorrow evening:
>>
>>
>> https://www.eventbrite.co.uk/e/london-python-code-dojo-season-10-episode-8-tickets-5957444
>>
>> TJG
>>
>> On 29/03/2019 11:21, Gautier HAYOUN wrote:
>>
>> Dear python-uk,
>>
>> The London Python Code Dojo is coming back for a new season next
>> Thursday, the 4th of April at 6:30PM.
>>
>> We will be coming back to Sohonet near Oxford Circus.
>>
>> We will have our usual mixture of socialising, lightning talks, hacking
>> on silly problems. For those who wish, there will be post-Dojo socialising
>> in a nearby pub.
>>
>> So book now for a free ticket at
>> https://www.eventbrite.co.uk/e/london-python-code-dojo-season-10-episode-8-tickets-5957444
>>
>> The address:
>> Sohonet
>> 5 Soho Street
>> 
>> London
>> 
>> W1D 3QL
>> 
>>
>> See you next week!
>> Gautier
>>
>>
>>
>> ___
>> python-uk mailing list
>> python-uk@python.org
>> https://mail.python.org/mailman/listinfo/python-uk
>>
>
> ___
> python-uk mailing 
> listpython-uk@python.orghttps://mail.python.org/mailman/listinfo/python-uk
>
>
>
> ___
> python-uk mailing 
> listpython-uk@python.orghttps://mail.python.org/mailman/listinfo/python-uk
>
>
> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Burning desire to watch cataract surgery?

2017-10-13 Thread Stestagg
I think I’ll keep a close eye on this thread!
On Fri, 13 Oct 2017 at 17:00, S Walker  wrote:

> These puns are delivered with surgical precision.
>
>
> S
>
>
> On 13/10/17 16:31, Nicholas H.Tollervey wrote:
>
> Iris you could have given us more details...
>
> (BTW, plenty more where that came from...)
>
> :-)
>
> N.
>
> On 13/10/17 14:36, Hansel Dunlop wrote:
>
> He's getting to the heart of the matter
>
> On Fri, Oct 13, 2017 at 2:30 PM, Richard Barran
>  
> > wrote:
>
> I see what you did there...
>
>
> On 13 Oct 2017, at 15:21, Adam Johnson   > wrote:
>
> Sounds cutting edge!
>
> On 13 October 2017 at 14:05, Hansel Dunlop
>  
> > wrote:
>
> Probably not, in fact I probably don't want to watch another
> one in my life if I can help it. BUT:
>
> For those who know me, and for those that don't. The company
> I'm working for (It's called Touch Surgery, and I look after
> the platform team) is growing quickly at the moment. There are
> a broad range of technical roles. I'm particularly keen to
> find some Python devs who have worked on large Django projects
> but anyone senior looking for something exciting would be of
> great interest.
> 
>
>
>
> ___
> python-uk mailing list
> python-uk@python.org  
> https://mail.python.org/mailman/listinfo/python-uk
>  
> 
>
>
>
>
> --
>
> Hansel
>
>
> ___
> python-uk mailing 
> listpython-uk@python.orghttps://mail.python.org/mailman/listinfo/python-uk
>
>
>
>
> ___
> python-uk mailing 
> listpython-uk@python.orghttps://mail.python.org/mailman/listinfo/python-uk
>
>
> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] A stack with better performance than using a list

2017-06-08 Thread Stestagg
Apologies, In my previous email, I meant 'insert a marker', rather than
'push a marker'

On Thu, Jun 8, 2017 at 7:17 PM Stestagg <stest...@gmail.com> wrote:

> I tracked down the challenge on the site, and have a working solution (I
> won't share for obvious reasons). Basically the timeouts were being caused
> by 'add_to_first_n' being called in horrible ways in the test cases.
>
> Because add_to_first_n alters the bottom of the stack, you can just push a
> marker onto the stack rather than iterating and mutating each entry, doing
> this made those test cases pass
>
> Personally, I think it's not a well-described problem, because it's
> expecting you to tune the algo to specific shapes of data without allowing
> any visibility on the data, or a description of what to code for.  An algo
> junkie may jump straight to the optimized version, but a pragmatic
> developer would, in my opinion, hesitate to do that without any actual
> evidence that the problem required it.
>
> Steve
>
>
>
>
>
> On Thu, Jun 8, 2017 at 5:27 PM Jonathan Hartley <tart...@tartley.com>
> wrote:
>
>> Yep, that's a great elimination of the suspicious small overheads.
>>
>> line_profiler is beautiful, I'll definitely be adding it to my toolbox,
>> thanks for that!
>>
>> I tried a variant of accumulating the output and printing it all as a
>> single string, but of course this didn't help, printing is already buffered.
>>
>> Jonathan
>>
>> On 6/8/2017 03:54, Stestagg wrote:
>>
>> I honestly can't see a way to improve this in python.  My best solution
>> is:
>>
>> def main(lines):
>> stack = []
>> sa = stack.append
>> sp = stack.pop
>> si = stack.__getitem__
>> for line in lines:
>> meth = line[:3]
>> if meth == b'pus':
>> sa(int(line[5:]))
>> elif meth == b'pop':
>> sp()
>> else:
>> parts = line[15:].split()
>> end = len(stack)-1
>> amount = int(parts[1])
>> for x in range(int(parts[0])):
>> index = end - x
>> stack[index] += amount
>> print(stack[-1] if stack else None)
>>
>> which comes out about 25% faster than your solution.
>>
>> One tool that's interesting to use here is: line_profiler:
>> https://github.com/rkern/line_profiler
>>
>> putting a @profile decorator on the above main() call, and running with
>> kernprof produces the following output:
>>
>> Line #  Hits Time  Per Hit   % Time  Line Contents
>>
>> ==
>>
>> 12   @profile
>>
>> 13   def main(lines):
>>
>> 14 14  4.0  0.0  stack = []
>>
>> 15   201   949599  0.5 11.5  for line in lines:
>>
>> 16   200  1126944  0.6 13.7  meth = line[:3]
>>
>> 17   200   974635  0.5 11.8  if meth ==
>> b'pus':
>>
>> 18   100  1002733  1.0 12.2
>> stack.append(int(line[5:]))
>>
>> 19   100   478756  0.5  5.8  elif meth ==
>> b'pop':
>>
>> 2099   597114  0.6  7.2  stack.pop()
>>
>> 21   else:
>>
>> 22 16  6.0  0.0  parts =
>> line[15:].split()
>>
>> 23 12  2.0  0.0  end =
>> len(stack)-1
>>
>> 24 11  1.0  0.0  amount =
>> int(parts[1])
>>
>> 2551   241227  0.5  2.9  for x in
>> range(int(parts[0])):
>>
>> 2650   273477  0.5  3.3  index =
>> end - x
>>
>> 2750   309033  0.6  3.7  stack[index]
>> += amount
>>
>> 28   200  2295803  1.1 27.8  print(stack[-1])
>>
>> which shows that there's no obvious bottleneck (line by line) here (for
>> my sample data).
>>
>> Note the print() overhead dominates the runtime, and that's with me
>> piping the output to /dev/null directly.
>>
>> I had a go at using arrays, deques, and numpy arrays in various ways
>> without luck, but we're getting fairly clos

Re: [python-uk] A stack with better performance than using a list

2017-06-08 Thread Stestagg
If it's who I think it is, then I'm not entirely surprised, this particular
implementation is quite taxing for python in particular, and they don't do
much in the way of catering to more modern languages in general (not a
criticism, but most problems/samples are stated in a very 'traditional' way
that isn't very pythonic, feels like transliterated C most times).




On Thu, Jun 8, 2017 at 4:42 PM Jonathan Hartley  wrote:

> I cannot be sure. It is certainly used by many people. They are competent
> in that it is a comprehensive online framework, allowing candidates to
> submit solutions using an online editor, in any one of about ten different
> languages. They are so large that there was no obvious way to talk to
> anyone about my individual experience. I don't knowingly know any other
> candidates who have submitted.
>
> I don't want to identify them because the first step of the quiz is to
> accept the T that you won't reveal the answers to others (oops.), but
> suffice to say they are very large Indeed.
>
> On 6/8/2017 03:48, Andy Robinson wrote:
>
> Are you sure that their test infrastructure was behaving correctly?
> Is it widely used, day in day out, by thousands, and known to be
> reliable?  Did your colleagues all brag "no problem"?  Or is it
> possible that the whole execution framework threw a momentary wobbly
> while trying to load up some large text file off some remote cloud?
>
> Andy
> ___
> python-uk mailing 
> listpython-uk@python.orghttps://mail.python.org/mailman/listinfo/python-uk
>
>
> --
> Jonathan Hartleytart...@tartley.comhttp://tartley.com
> Made out of meat.   +1 507-513-1101 <(507)%20513-1101>twitter/skype: 
> tartley
>
>
> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


[python-uk] Looking for contracts

2017-03-22 Thread Stestagg
Hi All

I'm getting married right at the start of July , and am looking for some
work between now and then. Do any of you know a company that might be
looking for someone to come in (London or remote based) for a short spell?

I specialise in back end optimisation and architecture, preferably with
Python but language usually isn't the important part, and have worked in
many areas/types of companies.  I'm usually in at a Senior/Tech Lead level.

It would be great if you knew somewhere where writing excellent and
test-ably correct code was emphasised over process.

Thanks for your patience with the list-spam, please get in touch at
s...@sta.gg if you know of anything

Thanks

Steve
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Announcing the Yorkshire Inquisition

2016-12-07 Thread Stestagg
I think we submitted Guido for consideration, but did so using a byte
string rather than Unicode, so the submission got rejected ;)
On Wed, 7 Dec 2016 at 15:05, Jon Ribbens 
wrote:

> On Wed, Dec 07, 2016 at 02:15:27PM +, Daniel Pope wrote:
> >Idle thought: can the code of conduct be violated by accurately
> quoting
> >Time Person-of-the-Year Donald Trump?
>
> I don't see why not; "Time Person of the Year" doesn't mean that the
> recipient is a "good person", it just means they've had a significant
> effect on the events of that year. Adolf Hitler was "Person of the
> Year". Osama bin Laden only wasn't Person of the Year because Time
> chickened out.
>
> ObPythonContent: Guido for PotY next year? ;-)
> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Announcing the Yorkshire Inquisition

2016-12-07 Thread Stestagg
Perhaps offenders could have their words replaced by the server with
suitably contrite Monty Python quotes.

I believe the Knights who say ni have a particularly apt vocabulary.
On Wed, 7 Dec 2016 at 13:47, Andy Robinson  wrote:

On 7 December 2016 at 13:36, Thomas Kluyver  wrote:
> Give the inquisition the power to restrict someone's use of language
> features. For instance, in a relatively mild incident, the heretic may
> be banned from using for loops for a month, and have to emulate them
> using while instead.

Hmm.  Methinks we could implement a list filter, requiring strict
pep-8 compliance of the any future message from offending senders.
They would have to post in code.  Maybe even with python 3 print
syntax.  The possibilities are endless...
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Static site generators with Python

2016-09-02 Thread Stestagg
On Fri, Sep 2, 2016 at 7:57 PM Andy Robinson <a...@reportlab.com> wrote:

> Re-subjecting...
>
> On 2 September 2016 at 19:30, Stestagg <stest...@gmail.com> wrote:
> > Hi Andy
> >
> > We use travis to build the site. You can see the travis yaml file and
> build
> > scripts in our repo:
> ...
> > If you can make your repo public, I would recommend travis as a great
> way to
> > build your site.
> We can
> > If you've any questions, please ask on or off list.
>
> Thanks for this. I have never touched Travis, but it's time I learned.
>
> If I understand correctly, it's a hosted service which can do pretty
> much anything you want when it sees a commit; in this case
> - pull from jobs repo
> - generate output files
> - push back the finished HTML up to the GitHub repo
>
> ?
> Cool!
>
> (Yes, I've been under a rock for about 10 years)
>
> I am embarking on a rather ambitious project to modernise an entire
> sport.  Thousands of clubs have the problem of somewhere between zero
> and one webmasters at any one time, and the dynamic  things they need
> to do - fixture lists, race results - can just about all he handled by
> Javascript these days.  With some nice reusable widgets and standards,
> no need for database server.  And GitHub solves the problem of letting
> multiple people access the repo and write/edit stories with no coding
> skill.
>
> Speaking of which, is or was anyone on this site involved with
> athletics or running?
>
> - Andy
>

Yes, that's right, travis (and circleci, and the others..) basically just
spin up a container, check out the repo, and run the commands listed in the
travis.yml (or equivalent) in a full environment.

This allows us to pull, and even push, using secret tokens, to other git
repos (although that's not a very common use-case), install software, run
tests, and build the site.

One thing I would caution about is that github is not a CMS, and while it's
awesome and does DCVS really well, there is definitely a minimum level of
experience required to use it to submit a good pull request.  Simple things
like naming files correctly, editing online, cloning repos etc, are not
intuitive to people not used to these sort of workflows.

If your users are willing to learn/already know enough to understand what's
happening, then it's fine, but I would expect a certain amount of
frustration from the less technically oriented editors.  (Something of a
feature for pythonjobs, but I don't know if that's the case for athletics)

Finally, if you're thinking of doing this at scale, I'd recommend reaching
out to the github support team fairly early on. We did for pythonjobs, just
to check that what we were doing was a good idea, and they were very keen
on the idea, but opening a channel early on may help with any issues down
the line

Steve



> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Microbit motion sensors at PyCon UK Teachers' Day

2016-06-21 Thread Stestagg
Hi!

I have a micro:bit and would love to help in any way possible.

Feel free to get in touch if you would like to discuss

Thanks

Steve

On Mon, 20 Jun 2016 at 09:42, Leona So via python-uk 
wrote:

> Hi Stephen,
>
> I teach Maths at a FE college, have general interest in programming
> especially Python and would be more than happy to help. The only downside
> is I don't have access to a microbit, it's hard to get hold of one. I used
> it briefly during microbit training sessions with STEMNET, so I may be able
> to provide some ideas!
>
> Thanks.
>
> Regards,
>
>
> Leona
>
> On Tue, Jun 14, 2016 at 12:56 AM, Stephen Simmons 
> wrote:
>
>> Hi everyone,
>>
>>
>> Would anyone like to help me put together a microbit session for the
>> PyCon UK teachers' day using motion sensors? My plan is to use python on
>> the microbit to illustrate some motion-related maths/physics principles
>> from accelerometer/gyroscope data.
>>
>> Ideally we would prepare some exercises with direct relevance to
>> classwork that teachers could take back to their students and use right
>> away.
>>
>> So if you know microbits and are keen to help, get in touch!
>>
>> If you are a teacher with ideas you'd to implement, or you know teachers
>> with ideas, then get in touch too.
>>
>> The deadline for proposals is in 2 weeks...
>>
>> Cheers
>> Stephen
>>
>> P.S. I have also submitted a proposal on sensor fusion algorithms for the
>> main PyCon UK conference, using MetaWear PRO wearables. They can transmit
>> 9-axis accelerometer/gyroscope/magnetometer data over Bluetooth in real
>> time. The microbit, as I understand it (mine will arrive in 2 weeks...)
>> doesn't have enough memory to load Python and Bluetooth together. So we
>> will have to be more creative about logging/retrieving results. Plenty of
>> time to work through this in July/August. First step is the proposal
>> ___
>> python-uk mailing list
>> python-uk@python.org
>> https://mail.python.org/mailman/listinfo/python-uk
>>
>
> ___
> python-uk mailing list
> python-uk@python.org
> https://mail.python.org/mailman/listinfo/python-uk
>
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] python-uk Digest, Vol 144, Issue 5

2015-09-02 Thread Stestagg
The rule we use for pythonjobs.github.io is that the advert has to name the
actual company the ad is for(not just an agency/broker). This was something
that Sal Fadhley suggested, IIRC.

This allows posts by agents, but tends to lead to more useful/informative
ads, and avoids the vague teasers that are often seen as spam.

I suggest we adopt the same rule on this list, on top of Richard's comments

Thanks

Steve


On Wed, 2 Sep 2015 at 19:48 Richard Barran 
wrote:

> Hi Sophie,
>
> A quick hint: job ads are welcome here, but only if correctly written and
> targeted. A lot of people here *hate* recruiters (with reason - I myself
> have only ever met 2 or 3 that I get on with), hate seeing this list being
> used for spam, and, well… next time, please start a new discussion thread
> with its own title, rather than highjacking another thread ;-)
>
> Richard
>
> On 2 Sep 2015, at 18:44, Sophie Hendley 
> wrote:
>
> Hi guys,
>
> I'm helping to build a new team for a very exciting startup. It's a
> product company founded by some of the leading technical and business
> people from Spotify, Google and Facebook.
>
> I'm looking for a Senior Developer to work in the platform development
> working on a Micro-Services Architecture using Python in a TDD environment
>
> It's London's biggest technology investment and they're building their
> platform from scratch.
>
> The salary is anywhere up to £85,000 there are also share options and
> private healthcare on top of this along with free food and drinks
>
> Let me know if you're interested and we can have a chat.
>
> Kind regards,
>
> Sophie
>
> On Fri, Aug 28, 2015 at 11:00 AM,  wrote:
>
>> Send python-uk mailing list submissions to
>> python-uk@python.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> https://mail.python.org/mailman/listinfo/python-uk
>> or, via email, send a message with subject or body 'help' to
>> python-uk-requ...@python.org
>>
>> You can reach the person managing the list at
>> python-uk-ow...@python.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of python-uk digest..."
>>
>>
>> Today's Topics:
>>
>>1. London Python Code Dojo (Season 7, Episode 1) (Alistair Broomhead)
>>
>>
>> --
>>
>> Message: 1
>> Date: Thu, 27 Aug 2015 11:39:28 +
>> From: Alistair Broomhead 
>> To: UK Python Users 
>> Subject: [python-uk] London Python Code Dojo (Season 7, Episode 1)
>> Message-ID:
>> 

[python-uk] Python Jobs Board - Request for Adverts

2015-03-09 Thread Stestagg
Hi All

A few of us are setting up a community run, free to use (and advert free)
Jobs board (similar in nature to jobs.python.org)

It's designed to be simple to post to (if you're into that sort of thing,
we use Github pull requests), easy to moderate, and strictly no agencies.
The site will be search-engine indexable, and an easy place for people to
find opportunities.

At the moment we've got things up and running, but need some job specs to
fill up the site, and make things interesting.

If you're currently hiring (directly, no agencies please), or know anyone
who is, then please, during this pre-launch period, email me the details *off
list*, and I'll add your ad to the board.

Required details are:
* A contact name, email  optional phone number (of someone who works at
the company)
* The name of the company that is offering the job
* A Link/URL (optional)
* The type of contract: temp/perm/contract/remote
* Location
The job description/text (ideally in markdown format, if not, I can do some
simple reformatting)

The site link and details will be posted once we've got more content to show

Thanks

Steve Stagg
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


[python-uk] Pycon '15 - website update?

2015-03-03 Thread Stestagg
Hi

It's been pointed out that google searching for pycon uk takes you to a
site that talks about 2014.

This is a bit confusing, as it states early bird tickets are available from
1st March

Is anyone able to change this? Or remove the booking info?

Any updates on '15?

Thanks

Steve
___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Job Ad: Senior Python Engineers -Skimlinks - London

2015-02-04 Thread Stestagg
Hi Tom

I'm currently looking for work, as my current employer is awful, and I
pretty much hate my boss.  Do you have any roles available that could save
me from this hell?

Thanks

Steve

p.s. If you have a referral bonus, I can give you all my colleagues details
too..

j/k ;)

On Wed Feb 04 2015 at 8:22:06 PM Tom Viner t...@viner.tv wrote:

 Cheryl Fay would like to recall the message, [python-uk] New Year's
 London Dojo Next MONDAY.

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


 On 4 February 2015 at 15:49, Steve Holden st...@holdenweb.com wrote:

 +1

 As long as the list is Cc'd, reply-all works fine. It has the slight
 disadvantage that some people might receive a second copy of list messages,
 but that's probably better than accidental list messages.

 S

 On Feb 4, 2015, at 8:46 AM, Marcin Tustin marcin.tus...@gmail.com
 wrote:

 I'm generally persuaded by the arguments against reply-to.


 --
 Steve Holden st...@holdenweb.com +1 571 484 6266 @holdenweb




 ___
 python-uk mailing list
 python-uk@python.org
 https://mail.python.org/mailman/listinfo/python-uk


 ___
 python-uk mailing list
 python-uk@python.org
 https://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Question from uniq dojo about fileinput

2015-01-07 Thread Stestagg
So, I was running this in python2.7, hence the tracebacks and decoding
issues.  However I think the blocking issue is still to do with not closing
the slave half of the pty from the parent process.

On Wed Jan 07 2015 at 11:30:00 PM Stestagg stest...@gmail.com wrote:

 When I try to run it, I get a hang too, in my case (there may be other
 factors for you) what's happening is because of the openpty stuff.

 In the parent process, you're creating two file handles, master and
 slave.  Subprocess then forks, meaning the child inherits them.  At this
 point, both the parent and child processes have the same PTY handles open.

 In my version of the code, there's a traceback in uniq.py that's
 preventing making the child bail out early.  At this point the child's FDs
 are closed, but because the master still has the 'slave' FD open, the pty
 isn't being shut down.

 Add an os.close() after the subprocess call:

 process = Popen(python -u uniq.py, shell=True, stdin=PIPE, stdout=slave)
 os.close(slave)

 This will cause the pty to collapse when the child exits, which should
 stop the hanging read().

 After adding some UTF-8 decoding to the uniq.py file, I managed to get
 this:

assert expected == result
 E   assert ['bar\n', 'fo...o\n', 'end\n'] == ['bar\r\n', 'f...n',
 'end\r\n']
 E At index 0 diff: 'bar\n' != 'bar\r\n'
 E Full diff:
 E - ['bar\n', 'foo\n', 'bar\n', 'foo\n', 'end\n']
 E + ['bar\r\n', 'foo\r\n', 'bar\r\n', 'foo\r\n', 'end\r\n']
 E ?   ++ ++ ++ ++ ++

 Which seems quite close :)

 Steve


 On Wed Jan 07 2015 at 10:10:45 PM Tom Viner t...@viner.tv wrote:

 Hi all,

 So before the London dojo meets again tomorrow night I wanted to resolve
 a question from last month.

 The task last month was to make our own GNU uniq commands. After the dojo
 I got our team's code working with the fileinput module
 https://docs.python.org/2/library/fileinput.html. This allowed the
 flexibility of seamlessly reading from either stdin or taking filenames as
 arguments.

 With fileinput the code
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/uniq.py#L11
 can just say:
 for line in fileinput.input():

 and that gives you all these usages:

 python uniq.py my_filename.txt other_file.txt
 echo -e hello\nhello2 | python uniq.py
 python uniq.py (python print_sleep_print.py)

 With the print_sleep_print.py script
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/print_sleep_print.py
 I can even see about 8Kb at a time will be buffered into uniq.py, made
 unique and printed, and then more data will be passed in.

 The problem came when testing this feature. I found a way to connect to
 both the input and output of a subprocess running the command:

 master, slave = pty.openpty()
 process = Popen(python uniq.py, shell=True, stdin=PIPE,
 stdout=slave)
 stdin_handle = process.stdin
 stdout_handle = os.fdopen(master)

 I then write some data in, and read data out. It all works except for one
 thing: even if I close the stdin_handle the stdout_handle will just block
 once I've read all the output. Full test here
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/test_uniq.py#L37
 .

 Appreciate any insight!
 Tom
 ___
 python-uk mailing list
 python-uk@python.org
 https://mail.python.org/mailman/listinfo/python-uk


___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Question from uniq dojo about fileinput

2015-01-07 Thread Stestagg
When I try to run it, I get a hang too, in my case (there may be other
factors for you) what's happening is because of the openpty stuff.

In the parent process, you're creating two file handles, master and slave.
Subprocess then forks, meaning the child inherits them.  At this point,
both the parent and child processes have the same PTY handles open.

In my version of the code, there's a traceback in uniq.py that's preventing
making the child bail out early.  At this point the child's FDs are closed,
but because the master still has the 'slave' FD open, the pty isn't being
shut down.

Add an os.close() after the subprocess call:

process = Popen(python -u uniq.py, shell=True, stdin=PIPE, stdout=slave)
os.close(slave)

This will cause the pty to collapse when the child exits, which should stop
the hanging read().

After adding some UTF-8 decoding to the uniq.py file, I managed to get this:

   assert expected == result
E   assert ['bar\n', 'fo...o\n', 'end\n'] == ['bar\r\n', 'f...n',
'end\r\n']
E At index 0 diff: 'bar\n' != 'bar\r\n'
E Full diff:
E - ['bar\n', 'foo\n', 'bar\n', 'foo\n', 'end\n']
E + ['bar\r\n', 'foo\r\n', 'bar\r\n', 'foo\r\n', 'end\r\n']
E ?   ++ ++ ++ ++ ++

Which seems quite close :)

Steve


On Wed Jan 07 2015 at 10:10:45 PM Tom Viner t...@viner.tv wrote:

 Hi all,

 So before the London dojo meets again tomorrow night I wanted to resolve a
 question from last month.

 The task last month was to make our own GNU uniq commands. After the dojo
 I got our team's code working with the fileinput module
 https://docs.python.org/2/library/fileinput.html. This allowed the
 flexibility of seamlessly reading from either stdin or taking filenames as
 arguments.

 With fileinput the code
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/uniq.py#L11
 can just say:
 for line in fileinput.input():

 and that gives you all these usages:

 python uniq.py my_filename.txt other_file.txt
 echo -e hello\nhello2 | python uniq.py
 python uniq.py (python print_sleep_print.py)

 With the print_sleep_print.py script
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/print_sleep_print.py
 I can even see about 8Kb at a time will be buffered into uniq.py, made
 unique and printed, and then more data will be passed in.

 The problem came when testing this feature. I found a way to connect to
 both the input and output of a subprocess running the command:

 master, slave = pty.openpty()
 process = Popen(python uniq.py, shell=True, stdin=PIPE, stdout=slave)
 stdin_handle = process.stdin
 stdout_handle = os.fdopen(master)

 I then write some data in, and read data out. It all works except for one
 thing: even if I close the stdin_handle the stdout_handle will just block
 once I've read all the output. Full test here
 https://github.com/tomviner/pydojo-uniq-s6e4/blob/master/team1/test_uniq.py#L37
 .

 Appreciate any insight!
 Tom
 ___
 python-uk mailing list
 python-uk@python.org
 https://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] London Python Code Dojo is happening next Thursday

2013-08-29 Thread Stestagg
There's some confusion about which season/episode we're actually at,
there's definitely some lack of consistency :).

This link was posted on twitter:
https://ldnpydojo.eventwax.com/london-python-code-dojo-season-6-episode-1and
seems to have a working registration link, so I think
*this* is likely to be the correct one

Thanks

Steve


On Thu, Aug 29, 2013 at 10:43 AM, Alistair Broomhead 
alistair.broomh...@gmail.com wrote:

 Good morning Pythonistas,

 next week on Thursday will be the first Thursday (05/09) of September and
 that means London Python Code Dojo!

 We are moving to Mind Candy in Shoreditch this time so, grab some tickets
 before they are all
 gone, or you won't get to use the slide :

   https://ldnpydojo.eventwax.com/london-python-code-dojo
 -season-5-episode-1

 Given the nature of our host, let's think up some
 fun little games problems for the dojo to solve.
 Ascii space invaders? A twitter social game? Even something completely
 off the wall!
 If you can think of problems in the same vein please share them with
 us when you book your ticket.

 If you need any more information, contact the team via Twitter:
 @ldnpydojo or via email t...@ldnpydojo.org.uk .

 Look forward to seeing you all next Thursday.

 Best,
 Al

 --
 http://stackexchange.com/users/330968/biggal

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] The London Python Dojo is this Thursday

2013-07-15 Thread Stestagg
I wonder, with the dojo happening every month, and most people turning up
most times, if this might turn into a bit of a popularity contest.

If a leader won last time, then people will be more likely to go for the
'safe option' and join that person next time.

I do like the current method of having random team choices

Steve


On Mon, Jul 15, 2013 at 1:14 PM, René Dudfield ren...@gmail.com wrote:

 That could work with a theme... the goal doesn't have to be a game?   It's
 more inventing the problem as you go?

 Unrelated thought for a good exercise... new requirements are introduced
 at half time... and then 5 minutes before the end... like real life.
 On Jul 15, 2013 2:05 PM, Jonathan Hartley tart...@tartley.com wrote:

  I don't think this helps, but it's a model I think is otherwise widely
 applicable, so I'll spread the seed:

 One model I've seen work well on game programming challenges is that
 self-selected leaders will each pitch their project vision, and then
 participants will decide which leader's team they would like to join.
 Leaders may also prefer other pitches to their own, and decide to revoke or
 merge pitches (generally, only one leader in a merged pitch will retain the
 'leader' tag)

 This has advantages that:

 * self-selected leaders are vetted by the crowd. If they are revealed,
 during their pitch, to be blustering buffoons, then people can vote with
 their feet.

 * everyone gets to work with the project/leadership that they choose, so
 in theory happiness is maximised (for everyone apart from the 'failed'
 project leaders.)

 * projects which are popular are allocated correspondingly generous
 personpower.

 The disadvantages are:

 * It isn't remotely relevant to our current dojo format

 * It doesn't give even distribution of team sizes

 Jonathan



 On 12/07/13 20:53, xtian wrote:

 I like the sound of this - Scrapheap Challenge style. You're right, it
 would take a bit more organisation though.

 On 12 Jul 2013, at 14:31, Alistair Broomhead 
 alistair.broomh...@gmail.com wrote:

   Something that may may not work (I guess it would take a fair amount
 of organisation) once a challenge has been picked, we ask people to
 volunteer as team leaders, they get a git repo set up and write tests, but
 their main role is to advise their team and give them a nudge on things
 which are stopping them from progressing. This would mean that each team
 has an 'expert', but I guess it would also mean people who were willing to
 take this role would have to bring a laptop off their own -an issue for me
 as I don't own one...
 On 12 Jul 2013 14:19, Javier Llopis jav...@correo.com wrote:


  Another person could simply say: mmm... interesting but... not for my
  level. And stop coming. Do you really want this?
 
  When all's said and done, if someone doesn't think it's for them, then
  it's not for them. We can try to be as accommodating as possible, but
  you can't please all the people all the time.
 

 ...And in this case, I would rather try to keep the expert coders in
 instead of the newbies. Better be challenged than bored.

 Just my 2p

 J


 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk

   ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk



 ___
 python-uk mailing 
 listpython-uk@python.orghttp://mail.python.org/mailman/listinfo/python-uk



 --
 Jonathan Hartleytart...@tartley.comhttp://tartley.com
 Made of meat.   +44 7737 062 225   twitter/skype: tartley



 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] The London Python Dojo is this Thursday

2013-07-12 Thread Stestagg
The only obvious thing I can think of here would be to have a speed-dating
style bell/noise that rings periodically, prompting people to swap over on
the keyboard.

I think this could be quite fun, maybe slightly annoying(?) but worth it,
IMO.

Teams who decide to use multiple laptops should still adopt this, but with
people rotating between the laptops.



On Fri, Jul 12, 2013 at 12:18 PM, a.gra...@gmail.com a.gra...@gmail.comwrote:

 Hi,

 On 12 July 2013 12:00, Tim Golden m...@timgolden.me.uk wrote:
  While I'm definitely sympathetic, making sure to involve newbies is not
  that easy a problem to solve. (Though that's not to say we can't try).
  It pretty much comes down to who's in your team. Sometimes you get a
  team which wholeheartedly embraces egalitarianism and passes the
  keyboard round like a conch shell; other times, you've got someone
  desperately keen who just grasps the challenge du jour by the keyboard
  and will hardly let go.

 I was offered to take the keyboard (we were in the same team if I'm
 not wrong) and do some coding but I refused because I was both too
 tired and because I felt I was not at the proper level to code that
 problem.

  Which brings me to your suggestion of... well, I'm not sure whether
  you're suggesting team streaming, ie a team of newbies, a team of
  pros; or whether you're advocating specifically mixing the teams up.
  I'll assume the latter as it seems to make more sense in the context.

 wrong assumpion :P

 If I'm in a team where other people are way more expert than me, I
 will never want to take the keyboard and start coding something.
 I think they would be bored by my slowness and by my level. My slow
 speed in coding could affect also the whole result (considering also
 that we have a stric time to respect)

  We've tried to make this happen maybe once or twice in the past. It's
  actually very difficult in practice, because you need people to identify
  their level of profiency and then divide up on that basis. Actually,
  maybe it's not that hard: we could just ask people to put, say, 0, 1 or
  2 on their name badge at the beginning to indicate perceived expertise,
  and then somehow use that in the grouping. I don't know: something like
  that could work.

 I would put a 1 in my case, hoping to get a easier (and doable)
 problem to solve.
 If it's still to hard I will try with 0. Better coding something easy
 than just watch other people coding.

  I think people are likely to be self-deprecating when identifying their
  level. I liked a question that Bruce Durling used a few years back: Are
  you more likely to be asking or to be answering questions about Python?.

 I won't self depreate ;) if I see that the problem is too easy for me,
 I will go to the more difficoult group the next time, no problem at
 all.

  re bringing easy / intermediate problems along: well, anyone can propose
  a problem. I think you're suggesting that *different* problems be solved
  during the one evening, some easier, some harder. I don't say we'd never
  do it, but in general we like to have everyone working on the same thing
  so that, when it comes to the show-and-tell at the end, you're seeing
  how another team solved the same problem you solved.

 I understand your point, but.you really risk that people stop
 coming to the Python Dojo just because they don't feel to be at the
 proper level.

 I will probably keep coming anyway, because I really like the social
 part of the event (beer, meeting people, making new friends, talking
 about our jobs etc), but I will keep watching other people coding.

 Another person could simply say: mmm... interesting but... not for my
 level. And stop coming. Do you really want this?

  All that said, I'm up for trying anything. I have no issue with having a
  specifically newbie-friendly session; or with having a problem which
  specifically splits into an easier and a harder component; or with
  making teams deliberately mixed ability. But that's just my take.

 of course if it's just me wanting this no problem, I will adapt
 someway, but let's see what the other people think about.

 Regards.

 --
 Andrea Grandi -  Software Engineer / Qt Ambassador / Nokia Developer
 Champion
 Ubuntu Member: https://launchpad.net/~andreagrandi
 website: http://www.andreagrandi.it
 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Suggestions / best practices for deployment

2013-05-16 Thread Stestagg
The Zope 'brand' got trashed back in the bad old days.  If things have
truly improved, then the sensible thing to do would be to release the new
code in a way that has no obvious links to the name 'Zope', and let that
stand on its own merits.

Another factor here, is that the current trend is towards loosely coupled,
modular systems, look at flask or (to an extent) django.  The feeling of
having to 'buy in' to an ecosystem goes against the python ethos, in my
opinion.

Steve


On Thu, May 16, 2013 at 11:47 AM, Matt Hamilton ma...@netsight.co.ukwrote:


 On 16 May 2013, at 11:22, Tim Diggins wrote:

  PS at the risk of starting a flame war: zc.buildout… --shudder--
  Feels like there are two different python communities sometimes, those
 that use zope-derived rather java-flavoured tools and mindset, and the rest.

 I don't want to start a flamewar either, but I am interested in what
 exactly makes you shudder about zc.buildout?

 I agree with you about the two separate communities…well to a degree. When
 Zope started way back when, there was no best practise, and so it had to
 create its own path. There were a lot of mistakes along the way, and a lot
 of lessons learnt. But there were a lot of things that were way more
 advanced than anything out there at the time. There was no easy_install,
 pip, eggs… even PyPI (the cheeseshop) was in its infancy.

 Zope2 was a massive beast with quite a bit of momentum and it took quite
 some time to re-align it with the best practise as it emerged.

 But these days, it is very 'pythonic' and fits in with the rest of the
 community pretty will I think. I think the people that generally run
 screaming when the hear anything mentioned that starts with a 'z' are those
 that experienced Zope in its teenage years when it was transitioning to
 follow best practice.

 The Zope community was doing big web application deployments over a decade
 ago and needed tools to manage deployment, configuration management, etc
 and so had to build those tools as the term 'devops' had not even been
 invented yet. A lot of knowledge, experience, pain, and ultimately success
 has come out of that community, and I always feel a bit sad when it is
 written off by people who don't like the smell/flavour of it.

 The Pyramid developers took their knowledge and experience of Zope and
 learnt from its shortcomings and successes and went on to create something
 that really is truly awesome. I wish there was more of that in the Python
 community.

 -Matt

 --
 Matt Hamilton, Technical Director
 Netsight Internet Solutions Limited
 http://www.netsight.co.uk/matth
 Tel: 0117 90 90 90 1 Ext. 15

 Registered in England No. 3892180
 Registered office: 40 Berkeley Square, Clifton, Bristol, BS8 1HU

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Suggestions / best practices for deployment

2013-05-15 Thread Stestagg
To add a slightly different angle to this, whatever deployment solution you
use, make sure it is fully automated, and then hook it into you CI system.

Deployment, disaster recovery etc. are made so much simpler if you're
thinking about it from the start rather than just before release.  One way
to enforce this is to start running the process regularly.

My personal preference for this is to use snapshotted virtualbox VMs to
deploy the service/app to a clean OS install, and the run the tests, after
every commit (or on a schedule).  This way, you always know what
dependencies you need, and you're forced to make things as seamless as
possible.

The same goes for testing upgrades.  Set up a VM with version X and set up
a job to:  Upgrade  Test  Check  Rollback regularly.

Thanks

Steve




On Wed, May 15, 2013 at 12:19 PM, Muhammad Rahman 
muhammad.rah...@tangentlabs.co.uk wrote:

  Hi Harry,

 I would use salt(http://docs.saltstack.com/index.html) for provisioning
 and keep the python specific package to fabric to deploy using pip.

 Even though salt is able to deploy pip requirements but I think this
 separation is important.

 Mustafiz.


 On 15/05/2013 11:34, George Hickman wrote:

  Hi Harry,

  I use two methods for deployment - Heroku and Ubuntu VPSs.

  Heroku is really simple to get going but gets expensive if you want to
 run a serious production app. However it's probably what I'd recommend for
 beginners since so much is done for you and they have first class python
 support.

  For VPS deploys I use Nginx, Daemontools (for the envdir package),
 Supervisor, Gunicorn and Postgres (with Django). I usually deploy this
 setup with a mixture of Salt to build the VPS and Fabric to deploy the code.

  George


 On Wed, May 15, 2013 at 10:57 AM, Harry Percival harry.perci...@gmail.com
  wrote:

  Dear UK Python chums,

  some of you probably know I'm writing a book about TDD for O'Reilly.
 I'm looking for some help with the (first) chapter on deployment.

 http://www.obeythetestinggoat.com/what-to-say-about-deployment.html

  What do you use for deployment?  Do you have any kind of automated
 scripts? How do you manage virtualenvs, the database, apache/uwsgi
 config... What do you think might work as a sort of best practice lite
 for a simple site for beginners?  (django, sqlite database, static files)

 --
 --
 Harry J.W. Percival
 --
 Twitter: @hjwp
 Mobile:  +44 (0) 78877 02511 %2B44%20%280%29%2078877%2002511
 Skype: harry.percival

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk




 ___
 python-uk mailing 
 listpython-uk@python.orghttp://mail.python.org/mailman/listinfo/python-uk


 --

 Muhammad Rahman
 Developer

 Tangent Labs
 84 - 86 Great Portland Street
 London, W1W 7NR

 T:  +44 (0)207 462 6150 (Office)
 F:  +44 (0)207 462 6111
 W:  www.tangentlabs.co.uk


 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Biggest Fake Conference in Computer Science

2013-04-30 Thread Stestagg
Is this just spam?  It certainly has that feel about it..


On Wed, May 1, 2013 at 12:12 AM, eliswil...@hushmail.com wrote:

 Biggest Fake Conference in Computer Science

 We are researchers from different parts of the world and conducted a study
 on the world’s biggest
 bogus computer science conference WORLDCOMP
 http://sites.google.com/site/worlddump1
 organized by Prof. Hamid Arabnia from University of Georgia, USA.


 We submitted a fake paper to WORLDCOMP 2011 and again (the same paper with
 a modified title) to
 WORLDCOMP 2012. This paper had numerous fundamental mistakes. Sample
 statements from that
 paper include:

 (1). Binary logic is fuzzy logic and vice versa
 (2). Pascal developed fuzzy logic
 (3). Object oriented languages do not exhibit any polymorphism or
 inheritance
 (4). TCP and IP are synonyms and are part of OSI model
 (5). Distributed systems deal with only one computer
 (6). Laptop is an example for a super computer
 (7). Operating system is an example for computer hardware


 Also, our paper did not express any conceptual meaning.  However, it was
 accepted both the times
 without any modifications (and without any reviews) and we were invited to
 submit the final paper
 and a payment of $500+ fee to present the paper. We decided to use the fee
 for better purposes than
 making Prof. Hamid Arabnia richer. After that, we received few reminders
 from WORLDCOMP to pay
 the fee but we never responded. This fake paper is different from the two
 fake papers already published
 (see https://sites.google.com/site/worlddump4 for details) in WORLDCOMP.


 We MUST say that you should look at the above website if you have any
 thoughts of participating in
 WORLDCOMP.  DBLP and other indexing agencies have stopped indexing
 WORLDCOMP’s proceedings
 since 2011 due to its fakeness. See
 http://www.informatik.uni-trier.de/~ley/db/conf/icai/index.html for
 of one of the conferences of WORLDCOMP and notice that there is no listing
 after 2010. See Section 2 of
 http://sites.google.com/site/dumpconf for comments from well-known
 researchers about
 WORLDCOMP.


 The status of your WORLDCOMP papers can be changed from scientific to
 other (i.e., junk or
 non-technical) at any time. Better not to have a paper than having it in
 WORLDCOMP and spoil the
 resume and peace of mind forever!


 Our study revealed that WORLDCOMP is money making business, using
 University of Georgia mask, for
 Prof. Hamid Arabnia. He is throwing out a small chunk of that money
 (around 20 dollars per paper
 published in WORLDCOMP’s proceedings) to his puppet (Mr. Ashu Solo or
 A.M.G. Solo) who publicizes
 WORLDCOMP and also defends it at various forums, using fake/anonymous
 names. The puppet uses
 fake names and defames other conferences to divert traffic to WORLDCOMP.
 He also makes anonymous
 phone calls and threatens the critiques of WORLDCOMP (See Item 7 of
 Section 5 of above website). That
 is, the puppet does all his best to get a maximum number of papers
 published at WORLDCOMP to get
 more money into his (and Prof. Hamid Arabnia’s) pockets. Prof. Hamid
 Arabnia makes a lot of tricks. For
 example, he appeared in a newspaper to fool the public, claiming him a
 victim of cyber-attack (see Item
 8 in Section 5 of above website).


 Monte Carlo Resort (the venue of WORLDCOMP for more than 10 years, until
 2012) has refused to
 provide the venue for WORLDCOMP’13 because of the fears of their image
 being tarnished due to
 WORLDCOMP’s fraudulent activities. That is why WORLDCOMP’13 is taking
 place at a different resort.
 WORLDCOMP will not be held after 2013.


 The draft paper submission deadline is over but still there are no
 committee members, no reviewers,
 and there is no conference Chairman. The only contact details available on
 WORLDCOMP’s website is
 just an email address!

 We ask Prof. Hamid Arabnia to publish all reviews for all the papers
 (after blocking identifiable details)
 since 2000 conference. Reveal the names and affiliations of all the
 reviewers (for each year) and how
 many papers each reviewer had reviewed on average. We also ask him to look
 at the Open Challenge
 (Section 6) at https://sites.google.com/site/moneycomp1 and respond if he
 has any professional values.


 Sorry for posting to multiple lists. Spreading the word is the only way to
 stop this bogus conference.
 Please forward this message to other mailing lists and people.


 We are shocked with Prof. Hamid Arabnia and his puppet’s activities at
 http://worldcomp-fake-bogus.blogspot.com   Search Google using the
 keyword worldcomp fake for
 additional links.

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Advice on decorator grammar

2013-04-05 Thread Stestagg
I've been thinking about this, and the more I see, the more I'm convinced
that this extra gramma would *not* help with generating 'pythonic' code.

Having used decorators as: wrappers, subsituters, dynamic substituters,
dependency injectors, actual decorators and other things (several of these
were mistakes!).  I'm reasonably convinced that any pattern that uses
anonymous classes in decorators can be refactored to be structurally more
pythonic.

I'd be happy to be proven wrong (with specific examples), and I agree with
you that, superficially, this seems like a missing feature.  However, I
feel that in practice, not allowing such syntax is 'a good thing' (tm)

Yours

Steve

On Thu, Apr 4, 2013 at 5:32 PM, Simon Yarde simonya...@me.com wrote:

 Thanks Nick. I wonder if you see any use or validity in an expanded
 grammar allowing class-initialisation within the decorator syntax?

 Or as Stestagg suggests, there is no real practical need for it?

  decoratedfoo.orig(1, 2) # run original function


 Thanks for highlighting decorator-pattern-like-access, with the inner
 object available from the outer, and perhaps exposing methods beyond
 __call__ too, i.e. ``decorated.orig.some_method()``.

  @mydecorator
  def foo(a, b):
 pass
 
  is identical to
 
  def foo(a, b):
 pass
  foo = mydecorator(foo)

 I hoped to pick this one up with the example below.. it is presently a
 workaround to apply an instance-method decorator due to syntax restrictions.

 def f():
pass

 f = A('foo').some_process(f)

 ==

 @A('foo').some_process # raises syntax error
 def f():
 pass

 On 4 Apr 2013, at 10:16, Nick Murdoch wrote:

  Hi Simon,
 
  It might be of use to you to know that the decorator syntax is actually
 a syntactic shortcut for a longer way of writing the same thing.
 
  For instance,
 
  @mydecorator
  def foo(a, b):
 pass
 
  is identical to
 
  def foo(a, b):
 pass
  foo = mydecorator(foo)
 
 
  If you wanted to only apply the decorator at certain times, you could
 call the decorator directly when you need it. There'd be a bit of overhead
 since you're re-running the decorator function each time, but I'll leave it
 to you to decide whether that's a problem for your use case.
 
  For example:
 
  foo(1, 2)   # runs without decoration
  mydecorator(foo)(1, 2)  # runs with decoration
 
  You could expand this further, for instance your decorator could expose
 the original function so you don't have to keep on re-running the decorator.
 
  decoratedfoo = mydecorator(foo) # create decorated function
  decoratedfoo(1, 2)  # run decorated function
  decoratedfoo.orig(1, 2) # run original function
 
  Hope that helps,
 
  Nick
 
  On Wed, Apr 03, 2013 at 06:42:02PM +0100, Simon Yarde wrote:
  This may well be moot, so thank you for chipping in. All your
 suggestions  are completely valid and practical.
 
  And thank you Stestagg and a.cavallo for commenting on references; I've
 tried to show in the examples below how the instance might be used to store
 config that is accessed by instance-methods, so external access was not an
 issue for the scenario I was envisaging.
 
  I'm interested in decorator-methods that can be employed in different
 scenarios; as 'python decorators'; and using a decorator-pattern for
 dynamic decoration of callables.
 
  The grammar seems to preclude such flexibility, and a certain elegance.
 
  I'll try to set-out a possible flexible design-pattern that shows the
 same decorator-method employed flexibly, and where it becomes inelegant or
 unintuitive.
 
  This works:
 
  def f():
 pass
 
  f = A('foo').some_process(f)
 
  This 'could' work, where it not for grammar inconsistency:
 
  @A('foo').some_process
  def f():
 pass
 
  The same pattern enables dynamic decoration using different instances
 of A:
 
  @apply_some_process_from_one_of_these_at_random(
A('foo'),
A('bar')
  )
  def f():
 pass
 
  You could do this by making decorator_method a classmethod:
 
  @MyDecorator.decorate_this(foo)
 
 
  Using a class-method, I would have to name the method I wanted to call
 and supply initialisation at the same time, and return a configured
 callable to perform the desired process:
 
  @apply_some_process_from_one_of_these_at_random(
 A.some_process('foo')
 A.some_process('bar')
  )
 
  It's attractive not to have to name the process to be called at
 configuration, and to be able to store configuration in the instance (this
 works):
 
  @apply_an_arbitrary_process_from(
 A('foo')
  )
 
  and it would be elegant/consistent to be able to apply a process using
 the decorator-syntax if need be (this doesn't work because of the grammar):
 
  @A('foo').some_other_process
 
 
  On 3 Apr 2013, at 12:43, Stestagg wrote:
 
  This seems redundant to me, the MyDecorator instance would not be
 bound to anything, so you'll 'loose' the reference to it, except through
 the call to decorator_method

Re: [python-uk] Advice on decorator grammar

2013-04-03 Thread Stestagg
Technically, you don't have to worry about refcounts here.

evaluating 'AClass().method' results in a 'bound' method.

The method binding contains a reference to the instance, so internally, a
reference is always held.  It does mean however that the AClass instance is
anonymous, there is no simple way to directly access it from other python
code




On Wed, Apr 3, 2013 at 12:45 PM, a.cava...@cavallinux.eu wrote:


 My first tought would be the mydecorator = MyDecorator() will hold the
 object instance reference and the ref count won't go to zero..





  So..

 Decorator grammar is this:

 decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE

 The grammar prevents this:

  class MyDecorator:

 ... def decorator_method():
 ... pass
 ...

 @MyDecorator().decorator_**method()

   File stdin, line 1
 @MyDecorator().decorator_**method()
   ^
 SyntaxError: invalid syntax

 But is possible to achieve the desired effect by assigning the class
 instance to variable:

  mydecorator = MyDecorator()

 ... @mydecorator.decorator_method
 ... def f():


 My initial thoughts were that the syntax provided a neat way to
 provide a configurable decorator class instance with a number of
 alternative decorator-function generating methods, rather than just
 the usual __call__.

 S
 __**_
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/**mailman/listinfo/python-ukhttp://mail.python.org/mailman/listinfo/python-uk


 __**_
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/**mailman/listinfo/python-ukhttp://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] The perils of reply-to

2013-01-03 Thread Stestagg
I'm for keeping it, reply-to-list is easier for me, and definitely more
entertaining, at times

Steve

On Thu, Jan 3, 2013 at 3:21 PM, Daniele Procida dani...@vurt.org wrote:

 On Thu, Jan 3, 2013, Jon Ribbens jon+python...@unequivocal.co.uk wrote:

 On Thu, Jan 03, 2013 at 11:40:51AM +, Andy Robinson wrote:
  In the light of this morning's, er, entertainment, are the Python
  developers on this list (well, all but one of them...) happy with the
  way it currently works?
 
 No. Reply-to-list is almost never correct. There is even less excuse
 than usual (which would be almost none) on a technical list.

 You have to admit it's more entertaining.

 Daniele

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk

___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk


Re: [python-uk] Python Developers - ReportLab, Wimbledon, London

2012-12-11 Thread Stestagg
Having just gone through this, I would expect a python role of this nature
to be offered between £35-45 k DOE in London.

There are certainly candidates around who could satisfy all of the stated
requirements, but will be given competitive offers from other people
looking.

I got the impression that python adoption is growing fast right now in the
South of England, so the market is quite competitive

Thanks

Steve

On Tue, Dec 11, 2012 at 1:55 PM, James Tarin jamesta...@2degreesnetwork.com
 wrote:

 You'll get different numbers depending upon where you look:

 http://www.itjobswatch.co.uk/jobs/south%20east/python.do

 From: Duncan Booth duncan.bo...@suttoncourtenay.org.uk
 Reply-To: UK Python Users python-uk@python.org
 Date: Tuesday, 11 December 2012 13:27
 To: UK Python Users python-uk@python.org
 Subject: Re: [python-uk] Python Developers - ReportLab, Wimbledon, London

 On Tue, Dec 11, 2012 at 12:56 PM, chris.d...@gmail.com wrote:

 On Tue, 11 Dec 2012, Richard Barran wrote:

 PS Actually, bad idea. You've just dissuaded 95% of the developer
population from applying for your job.


 Is it fair to say that I hope the salary being offered already does
 that? Seems really low for near-London.

 Actually I have no idea. Is there a well known range for fair and
 appropriate salaries for Python devs in the vicinity of London, or
 perhaps it is standard to list low, offer high?


 Apparently the average Python salary offered in the UK is £52,500
 At least, according to this site it is:
 http://www.cwjobs.co.uk/salary-checker/average-python-salary
 and if you click through to the other tab the South West London average is
 £62,500.

 ___
 python-uk mailing list
 python-uk@python.org
 http://mail.python.org/mailman/listinfo/python-uk


___
python-uk mailing list
python-uk@python.org
http://mail.python.org/mailman/listinfo/python-uk