From tibs at tibsnjoan.co.uk Thu Jan 1 18:56:49 2015 From: tibs at tibsnjoan.co.uk (Tony Ibbs) Date: Thu, 1 Jan 2015 17:56:49 +0000 Subject: [python-uk] Next CamPUG meeting: Tue Jan 2015 Message-ID: <3C5AAB75-C93E-446D-B4F0-B9AEA993023E@tibsnjoan.co.uk> From the google group: Happy New Year to all The next meeting will be Tuesday 6th January 2015 (!), 7.30pm at RealVNC (http://goo.gl/maps/ktqpS). We normally stop about 9.30pm, and go on to the pub. If we have nothing else to talk about, we can talk about our good intentions with respect to how we want to use Python in this new year. But if anyone has a specific talk, please do let us know. Meetings after that will be: ? Tuesday 3rd February ? Tuesday 3rd March ? Tuesday 7th April Tibs From daniele at vurt.org Thu Jan 1 19:18:35 2015 From: daniele at vurt.org (Daniele Procida) Date: Thu, 1 Jan 2015 18:18:35 +0000 Subject: [python-uk] DjangoCon Europe 2015 is in Cardiff, and registration is now open Message-ID: <20150101181835.681974713@mail.wservices.ch> Greetings to the UK Python community. The first-ever six-day DjangoCon will run from the 2nd to the 7th June this year, in Cardiff. Registration for tickets and the call for proposals are now open: It's going to be huge fun, and we're hoping to put on the most diverse and accessible DjangoCon ever. This year's event will feature a free cr?che, an early registration period open only to members of under-represented minorities and financial assistance for attendees who need it, amongst other initiatives. There's information about all this and more on the website. We hope to see you in June. Wishing you a very good 2015, Daniele From tom at viner.tv Fri Jan 2 22:02:17 2015 From: tom at viner.tv (Tom Viner) Date: Fri, 2 Jan 2015 21:02:17 +0000 Subject: [python-uk] Announcing: London Dojo Thursday 8th, in Shoreditch Message-ID: Hi and Happy New Year everyone! It's a fresh new year, and as the holiday season resides we have a fresh new London Dojo for you. Something tells me everyone's glad it wasn't held yesterday, on our traditional first Thursday of the month! We're with our regular hosts FryIT in Shoreditch again, who we truly thank for their ongoing support. As usual we'll have pizza, drinks and all the group coding you can manage. There'll also be the prize draw for a random O'Reilly Python book. Get your tickets while they're hot - especially if you've never come before, we welcome everyone: https://ldnpydojo.eventwax.com/london-python-code-dojo-season-6-episode-5 If you need any more information, contact the team via Twitter: @ldnpydojo or via email team at ldnpydojo.org.uk Look forward to seeing you all on Thursday. Tom @tomviner -------------- next part -------------- An HTML attachment was scrubbed... URL: From theodore.koterwas at it.ox.ac.uk Wed Jan 7 16:25:01 2015 From: theodore.koterwas at it.ox.ac.uk (Theodore Koterwas) Date: Wed, 7 Jan 2015 15:25:01 +0000 Subject: [python-uk] Job: Software Developer - Mobile and Web apps at University of Oxford (Python/Django/JS/Objective-C/Java) Message-ID: <9A1497DABD924546A1AA9F977D026A363A7AE788@MBX01.ad.oak.ox.ac.uk> Hi There We're currently seeking an experienced software developer to join the Mobile and Web App development team in IT Services. We're a small team working with departments, academics and researchers to build web and mobile apps that make interacting with the University and its collections, teaching, research, and services more useful and compelling. We develop in Python, Javascript and objective-c and often use Django, PhoneGap, and Backbone.js. Current projects include a rebuild of the OxfordTalks website and a number of mobile projects for the University museums. Beyond that there are a number of exciting possibilities with an emphasis on innovation, public engagement, and the student digital experience. This is a three year post in the first instance. https://www.recruit.ox.ac.uk/pls/hrisliverecruit/erq_jobspec_version_4.jobspec?p_id=116459 We hope to hear from you Theodore Koterwas Mobile and Web App Team Lead -------------- next part -------------- An HTML attachment was scrubbed... URL: From tom at viner.tv Wed Jan 7 23:10:13 2015 From: tom at viner.tv (Tom Viner) Date: Wed, 7 Jan 2015 22:10:13 +0000 Subject: [python-uk] Question from uniq dojo about fileinput Message-ID: 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 . This allowed the flexibility of seamlessly reading from either stdin or taking filenames as arguments. With fileinput the code 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 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 . Appreciate any insight! Tom -------------- next part -------------- An HTML attachment was scrubbed... URL: From stestagg at gmail.com Thu Jan 8 00:30:00 2015 From: stestagg at gmail.com (Stestagg) Date: Wed, 07 Jan 2015 23:30:00 +0000 Subject: [python-uk] Question from uniq dojo about fileinput References: Message-ID: 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 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 > . This allowed the > flexibility of seamlessly reading from either stdin or taking filenames as > arguments. > > With fileinput the code > > 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 > > 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 > > . > > Appreciate any insight! > Tom > _______________________________________________ > python-uk mailing list > python-uk at python.org > https://mail.python.org/mailman/listinfo/python-uk > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stestagg at gmail.com Thu Jan 8 00:35:22 2015 From: stestagg at gmail.com (Stestagg) Date: Wed, 07 Jan 2015 23:35:22 +0000 Subject: [python-uk] Question from uniq dojo about fileinput References: Message-ID: 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 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 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 >> . This allowed the >> flexibility of seamlessly reading from either stdin or taking filenames as >> arguments. >> >> With fileinput the code >> >> 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 >> >> 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 >> >> . >> >> Appreciate any insight! >> Tom >> _______________________________________________ >> python-uk mailing list >> python-uk at python.org >> https://mail.python.org/mailman/listinfo/python-uk >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tom at viner.tv Thu Jan 8 15:02:48 2015 From: tom at viner.tv (Tom Viner) Date: Thu, 8 Jan 2015 14:02:48 +0000 Subject: [python-uk] Question from uniq dojo about fileinput In-Reply-To: References: Message-ID: Thanks Steve, just adding os.close(slave) does the jobs. Although I do have to catch an OSError (errno=5 Input/Output Error) when reading the first non-existent byte. On 7 January 2015 at 23:35, Stestagg wrote: > 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 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 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 >>> . This allowed the >>> flexibility of seamlessly reading from either stdin or taking filenames as >>> arguments. >>> >>> With fileinput the code >>> >>> 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 >>> >>> 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 >>> >>> . >>> >>> Appreciate any insight! >>> Tom >>> _______________________________________________ >>> python-uk mailing list >>> python-uk at python.org >>> https://mail.python.org/mailman/listinfo/python-uk >>> >> > _______________________________________________ > python-uk mailing list > python-uk at python.org > https://mail.python.org/mailman/listinfo/python-uk > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dougal at dougalmatthews.com Tue Jan 13 22:35:11 2015 From: dougal at dougalmatthews.com (Dougal Matthews) Date: Tue, 13 Jan 2015 13:35:11 -0800 (PST) Subject: [python-uk] =?utf-8?q?Fwd=3A_=5Bpsf-members-ann=5D_ANN=3A_Python_?= =?utf-8?q?Events_Calendar_-_Please_submit_your_2015_events=E2=80=8B?= In-Reply-To: <54B58B99.9010301@python.org> References: <54B58B99.9010301@python.org> Message-ID: <1421184911157.79b2bd6e@Nodemailer> ---------- Forwarded message ---------- From: "M.-A. Lemburg" Date: Tue, Jan 13, 2015 at 9:23 PM Subject: [psf-members-ann] ANN: Python Events Calendar - Please submit your 2015 events To: "PSF Members Announcements" > [Please help spread the word by forwarding to other relevant mailing lists, > user groups, etc. world-wide; thanks :-)] > ________________________________________________________________________ > ANNOUNCING > Python Events Calendars - Please submit your 2015 events > maintained by the Python Software Foundation (PSF) > and a group of volunteers > ________________________________________________________________________ > INTRODUCTION > As some of you may know, the PSF has a team of volunteers who are > maintaining a set of central Python event calendars. We currently have > two calendars in place: > * Python Events Calendar - meant for conferences and larger gatherings > focusing on Python or a related technology (in whole or in part) > * Python User Group Calendar - meant for user group events and other > smaller local events > The calendars are displayed on http://pycon.org/ and also on the new > https://python.org/ website at https://www.python.org/events/python-events/ > and https://www.python.org/events/python-user-group/. > You can subscribe to the calendars using iCal and RSS feeds and also > embed the calendar widgets on your sites. We have also added a > Twitter feed @PythonEvents to get immediate updates whenever a new > event is added. Please see our wiki page for details: > https://wiki.python.org/moin/PythonEventsCalendar > The calendars are open to the world-wide Python community, so you > can have local user group events, as well as regional and > international conference events added to the calendars. > ________________________________________________________________________ > NEWS > Looking back on 2014, the calendars have proven to be a great tool > for the Python community to connect, with more than 60 conferences > and more than a hundred of user group events listed. > We would therefore like to encourage everyone to submit their > 2015 events, so that the Python community can get a better overview > over what's happening in Python land. > ________________________________________________________________________ > ADDING EVENTS > Please see the instructions at https://wiki.python.org/moin/PythonEventsCalendar#Available_Calendars > for details on how to > submit an event. We've made it really easy for you: just need to send > an email to our team address using the email template we > provide for this. Thanks. > ________________________________________________________________________ > MORE INFORMATION > More information on the calendars, the URLs, feed links, IDs, embedding, > etc. is available on the wiki: > https://wiki.python.org/moin/PythonEventsCalendar > Enjoy, > -- > Marc-Andre Lemburg > Director > Python Software Foundation > http://www.python.org/psf/ > _______________________________________________ > psf-members-announce mailing list > psf-members-announce at python.org > https://mail.python.org/mailman/listinfo/psf-members-announce -------------- next part -------------- An HTML attachment was scrubbed... URL: From hansel at interpretthis.org Fri Jan 16 12:18:02 2015 From: hansel at interpretthis.org (Hansel Dunlop) Date: Fri, 16 Jan 2015 11:18:02 +0000 Subject: [python-uk] Fwd: [EuroPython-Members] EuroPython 2015: Your chance to sign up as a launch sponsor In-Reply-To: <54B8EE78.2030506@europython.eu> References: <54B8EE78.2030506@europython.eu> Message-ID: Hi All, I'm on the sponsors work group for EuroPython 2015 in Bilbao (Espa?a!!!) this year. If any of the companies you work for are interested in being launch sponsors then you need to get in touch quickly. i,e: Start talking to us next week. Launch sponsors get extra exposure because they are included in the initial announcements (at no extra cost :) If you think your company **should** be interested in sponsoring EuroPython but you're really not the right person to talk to then maybe drop me a line privately with the name of the person who handles that stuff and I'll take it from there. You can see the forwarded email below or read the full announcement on the blog here: http://blog.europython.eu/post/108247660317/europython-2015-your-chance-to-sign-up-as-a . Cheers Hansel Dunlop ---------- Forwarded message ---------- From: M.-A. Lemburg Date: Fri, Jan 16, 2015 at 10:56 AM Subject: [EuroPython-Members] EuroPython 2015: Your chance to sign up as a launch sponsor To: EuroPython Society Members Just released on the blog... Companies who would like to sign up as a EuroPython 2015 launch sponsor are encouraged to contact the sponsor work group at: sponsoring at europython.eu Launch sponsors will get the additional benefit of being listed on the website when we launch - for free. You just need to be quick, since the launch is planned for early in February. More Booths and more Sponsor Slots ---------------------------------- The Euskalduna Conference Center and Concert Hall (ECC) venue in Bilbao was chosen as conference venue for EuroPython 2015: http://www.euskalduna.net/Index.asp?idioma=en It offers plenty of room for sponsor booths, so we will try to make EuroPython 2015 as effective as possible for you as sponsors by offering more booth space and sponsor slots than ever before: http://www.euskalduna.net/espacios/espacios_hall_exposiciones.asp This is your chance to reach out to more than a thousand enthusiastic and highly motivated EuroPython attendees ! Please email us at sponsoring at europython.eu and we?ll send you the sponsor brochure. Thanks, ? EuroPython Society (EPS) http://www.europython-society.org/ PS: Please help spread the word and forward this email to companies you know, your local lists, user groups, etc. Many thanks ! _______________________________________________________________________ EuroPython-Members Mailing List https://www.egenix.com/mailman/listinfo/europython-members EuroPython: https://www.europython.eu/ EuroPython Society: http://www.europython-society.org/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From martin.campbell at cometgc.com Mon Jan 19 15:03:57 2015 From: martin.campbell at cometgc.com (Martin Campbell) Date: Mon, 19 Jan 2015 14:03:57 +0000 Subject: [python-uk] Looking for Big Data experience Message-ID: <1DFC7AB0-13C1-4910-8945-8587FC54C643@cometgc.com> Hi all, Advance apologies if this is outside the scope of this group, but I thought it would be a good place to start. The company I work for (Comet Global Consulting ? www.cometgc.com) is looking for people with realtime Big Data experience, specifically with Cassandra. If you are such a person (or know anyone who fits the bill) and would like to discuss potential opportunities then please let me know and I?ll put you in touch with the right folks here. Thanks Martin -------------- next part -------------- An HTML attachment was scrubbed... URL: From ntoll at ntoll.org Tue Jan 20 13:30:08 2015 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Tue, 20 Jan 2015 12:30:08 +0000 Subject: [python-uk] PyconUK organising committee minutes Message-ID: <54BE4A50.6000908@ntoll.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I've updated the PyconUK wiki with the minutes of yesterday's planning meeting. http://pyconuk.net/January2015Meeting I've also updated the planning page (http://pyconuk.net/planning2015) with a new draft agenda for the February meeting and a link to the minutes as described above. We're a community organised event - and you're the community! If you'd like to help with the planning of PyconUK 2015 please don't hesitate to get in touch. All the best, Nicholas. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAEBAgAGBQJUvkpPAAoJEP0qBPaYQbb6qrcH+wR8NR91VSgC/o7PuVLnkJFE xNzSPEJfPQc5rU59uxEZ5qFSNVMso1FVyIrRCYbeVlblIs0AcBxMGuzOO3FE+PPY UsupQvuaGnEV2iowcoRCSmmQlOibF8IO7j+mS5P9glx//phWy6i5z/UefkX9yJYq aqAhZilwoXBl3p6QlfyqbGCa0DwafU7xGrdi2ZEf9PI21FNX6ifTlu1etKorhfQh KRV3WLzBQgVK9A7Jgvkl3X6oYDqMnghor7sFFzB4GaYlTY6jnwHsdtZsAnP2DST+ MZxZzRod84TEKfSFcPb8MlEZKMLwfsw169tIse7r45GXUg/xYsPSoUAkoSRGl5Y= =8hdc -----END PGP SIGNATURE----- From hansel at interpretthis.org Thu Jan 29 14:34:29 2015 From: hansel at interpretthis.org (Hansel Dunlop) Date: Thu, 29 Jan 2015 13:34:29 +0000 Subject: [python-uk] Looking for a work mate Message-ID: Hello! I'm in the process of trying to find someone to work with me (past colleagues will know this is obviously a difficult task) at MediaGamma. If anyone on this list is looking at the moment they can find more information here: http://www.techcityjobs.co.uk/company/mediagamma/job/software-engineers-python-flask-and-angularjs-london/9dcea7 . Cheers -- Hansel -------------- next part -------------- An HTML attachment was scrubbed... URL: From tibs at tibsnjoan.co.uk Thu Jan 29 21:09:48 2015 From: tibs at tibsnjoan.co.uk (Tony Ibbs) Date: Thu, 29 Jan 2015 20:09:48 +0000 Subject: [python-uk] Next CamPUG meeting: Tue 3rd Feb 2015 Message-ID: <08389670-ADD1-4686-9A1E-D2E46570435C@tibsnjoan.co.uk> From our google group: The next meeting will be Tuesday 3rd February 2015, 7.30pm at RealVNC (http://goo.gl/maps/ktqpS). We normally stop about 9.30pm, and go on to the pub. Meetings after that will be: ? Tuesday 3rd March ? Tuesday 7th April ? Tuesday 5th May Tibs