Hi All,
Just a quick reminder about tonight's talk about functional programming, details below.
All the best,
Ben
Jane Street Capital: Real world functional programming
Wednesday 29/02, 20:15, St Catz Lodge First Floor Car Park Facing
"Come and hear about how you can use functional languages to write reliable, large-scale, distributed software. Nearly two million lines of OCaml code and sixty full-time OCaml coders. Functional programming on Linux reigns supreme at Jane Street, a trading firm with offices in London, New York and Hong Kong."
This should be a very interesting talk, that will begin to explore and demonstrate real world large-scale uses of functional programming. Followed by drinks courtesy of Jane Street.
http://www.janestreet.com/
Jane Street is a quantitative proprietary trading firm who are always looking to recruit (although this is not a recruitment specifc event), so if you are interested in a career with them this would be an excellent opportunity to meet some of their staff. They offer both internships and graduate positions.
Here is a handy map for finding Catz: http://g.co/maps/eeut2
The Arumugan building is the fancy name of the lodge, we will be in the room facing the car park on the first floor. We'll put up some signs in the lodge (which is that big glass building straight in front of you as you walk into catz) to the room.
The talk starts at 2015.
Good Morning All,
Firstly, thanks to everyone who turned up to last week's AGM, I hope you enjoyed exercising your democratic right. From it we have elected a new committee, who will take over the running of the society from Easter. More details about them, and where to find the minutes of the meeting
This week Jane Street Capital will be coming to give us a talk titled "Real world functional programming". I think this should be a very interesting talk, and will hopefully lay to bed any doubts (that I'm sure most of us harbour) about the place of functional programming in industry. Jane Street is a quantitative proprietary trading firm who are always looking to recruit, so if you are interested in a career with them this would be an excellent opportunity to meet some of their staff. The talk will be followed by drinks courtesy of Jane Street.
Full details of the new committee, the AGM minutes, this week's talk and more can be found below.
Have a good one,
Ben and Alex
CompSoc Co-Presidents
*******************************************
The Oxford Computer Society
*******************************************
Jane Street Capital: Real world functional programming
Wednesday 29/02, 20:15, St Catz Arumugan Building First Floor Car Park Facing
FB Event: http://www.facebook.com/events/307624742624821/
Please note the change of venue compared to our printed termcard
Real-world functional programming at Jane Street
Nearly two million lines of OCaml code and sixty full-time OCaml coders. Functional programming on Linux reigns supreme at Jane Street, a trading firm with offices in London, New York and Hong Kong. Come and hear about how you can use functional languages to write reliable, large-scale, distributed software.
Followed by drinks courtesy of Jane Street.
http://www.janestreet.com/
Here is a handy map for finding Catz: http://g.co/maps/eeut2
The Arumugan building is the fancy name of the lodge, we will be in the room facing the car park on the first floor. We'll put up some signs in the lodge (which is that big glass building straight in front of you as you walk into catz) to the room.
If you get truly lost in Catz, you can call Ben on 0754 999 3401. The talk starts at 2015.
------------------------------------------------------------------------
CompSoc AGM Minutes + New Committee:
Recently the CompSoc AGM elected a new committee who will begin running the society from Trinity term.
They are all 1st year Computer Scientists at St Catherine's College, and have formed the committee as follows:
- President - Pete York
- Vice-President - Mike Savage
- Secretary - Sam Lanning
- Treasurer - Laura Bengescu
A more comprehensive introduction from them will probably follow on the mailing list at some point.
Minutes for the AGM are available at http://compsoc.net/minutes/Annual_General_Meeting__44___Hilary_2012/.
------------------------------------------------------------------------
Technology Competition:
Challenge 7:
Yes, once again: A discrete elevator simulation. Anyone who solves this challenge will receive a £20 prize.
This challenge is using a given list of discrete elevator request events (found at http://compsoc.dartoxia.com/request.txt) determine the number of elevators required to service the requests, and their final configuration once the requests have been serviced. The number of elevators required is the minimum needed to ensure all requests are serviced within 21 time blocks (ie completed in 21 or fewer time blocks after creation).
In the file of event requests, an event is either "SKIP", or a list of requests in the form "x to y;". "SKIP" is the event where no request was made. "x to y;" is the request go from floor x to floor y. Each line corresponds to the a time block, ie line 0 = time 0, line 1 = time 1 etc. In a single time block the requests for that block are made, then the elevators move in the direction they are travelling in, then the elevators service any requests at the floor they are now at. If an elevator is empty it can enter travel mode, where it will travel towards a selected request with the intention of servicing specifically that request (it can service others as long as they do not want to go past the selected request), as soon as it has picked up the specific request it travels in the direction needed for that request and resumes normal mode.
An elevator can only move up 1 floor, down 1 floor or remain at the same floor during each time block.
There is a building containing elevators which is 10 stories high, with each floor numbered 0 through to 9 (ie. 0 is the ground floor). Users request the elevator by pushing a button on the floor they are currently at, indicating the floor they are going to.
An elevator's initial configuration is that it is idling at level 0. Individual elevators follow the following protocol:
Elevators can be in 2 modes: Normal mode and Travel mode
Normal mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if no one is in the elevator, then direction = 0 //ie we are idling
4 if anyone is waiting at currentFloor and would like to travel in the same direction as the elevator (or the elevator is idling) then they get on and we go to the floor they requested, if we were idling then we go in the direction for that floor. We always let the people who have been waiting the longest on first.
Travel mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if anyone is waiting at currentFloor and would like to travel between targetFloor and currentFloor then they get on
4 if currentFloor = targetFloor then let anyone on who would like to go in targetDestination direction and set direction to be towards targetDestination
5 switch to Normal mode
An elevator will switch into Travel mode if at the end of part 4 of normal mode it does not contain any passengers. When it switches into travel mode, it will take a request (x to y) which isn't being acted upon by another elevator and travel to targetFloor (x), doing as much transporting as it can on the way, then will travel towards targetDestination (y). When it is travelling towards targetDestination it has switched back into Normal mode.
If there are [0..N] elevators the system acts in the following manner:
1 todo = <read in request events happening on this time block (if there are any)>
2 for i = 0 to N do
3 execute elevator i's protocol once, removing any request events from todo which it can immediately handle
4 for i = 0 to N do
5 if elevator i is in Normal mode and empty, and todo is not empty then
6 take the request which has been waiting longest (x to y) from todo, and switch elevator i into Travel mode with targetFloor = x and targetDestination = y
7 advance the time by 1 and go back to step 1
One request is determined to be waiting longer than another if it was generated before the other. If they were generated at the same time, then the request before the other in the list defining them in the requests.txt file is the one that has been waiting longer.
Answers can be submitted to http://compsoc.dartoxia.com/answer/<num<http://compsoc.dartoxia.com/answer/%3cnum> of elevators><final floor of elevator 0><final floor of elevator 1><etc..> (obviously without the brackets, ie just a string of numbers). Whilst the solution to this challenge may seem to favour using methods taught in 2nd year CompSci, it can clearly be solved without using any of that fanciness.
An example runthrough and solution can be found at http://compsoc.dartoxia.com/example.txt.
As a clue to help you solve it, 6 elevators are required to service all of the requests in time. A second clue is that none of the lifts end up in positions 0, 2, 4, 6 or 9. A final third clue is that the first elevator finishes at floor 1. That is now a reasonable amount of information to just brute force it against my vps.
Anyone (with a .ox.ac.uk email address) can sign up to the competition through the http://compsoc.dartoxia.com website, but only members can receive prizes.
Compsoc.dartoxia.com isn't connected to the compsoc network, and so you will need to make a new account to participate.
For more details about the competition see http://compsoc.net/technology_competition or contact committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> if you have questions about this round.
------------------------------------------------------------------------
Technology Competition:
Week 6 result:
No one solved the challenge!
------------------------------------------------------------------------
CompSoc Jobs Mailing list
The society receives a number of advertisements each week from companies and individuals interested in employing our members. The jobs range from graduate positions, to a bit of help with another societies website.
If you would like to receive these emails just email compsoc-jobs-request(a)lists.ox.compsoc.net<mailto:compsoc-jobs-request@lists.ox.compsoc.net> with 'subscribe' in the subject line.
Hi all,
This is just a quick reminder about today's Annual General Meeting and Committee Elections. Whether you are interested in standing for a position, just want to be involved in discussion about what the society might do next term, or just enjoy the sheer thrill of general meetings, you will be very welcome. Full details are copied below. Since filling in ballot paper can understandably be a tiring and strenuous activity, food and drink will be provided.
All the best,
Ben
--
Co-President, CompSoc
CompSoc AGM including elections:
Wednesday 22/02, 6pm, St Catz Arumugan Building First Floor Meadow Facing
FB Event: http://www.facebook.com/events/276868755717384/
Please note the change in venue compared to our printed termcard
Out with the old, in with the new.
We will be reviewing progress the society has made this term and discussing any other issues that arise. Elections for the 2012/2013 committee will be held (further details to be sent on mailing list). If you are interested in standing for a position please get in touch with the committee if you have any questions.
If you are interested in the intricacies of how the AGM/society works then please see the constitution. (http://compsoc.net/constitution/)
Pizza and drinks will be provided! (and hot cross buns)
The Arumugan building is the fancy name of the lodge, we will be in the room just to the left after you go up the stairs. We'll put up some signs in the lodge (which is that big glass building straight in front of you as you walk into catz) to the room.
Here is a handy map for finding Catz: http://g.co/maps/eeut2. If you get truly lost in Catz, you can call Ben on 0754 999 3401.
This event, like most CompSoc events, is free for anyone to attend. Although only members of the society may vote in the meeting.
Specific election information:
If you think you might be interested in a role on the committee then please feel free to get in touch with us over committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> and we'd be happy to answer any questions that you might have - alternatively speak to us in person of course!
Along with the positions required by the university (President, Secretary and Treasurer) a number of other roles could be suitably created, such as Vice President, Social Secretary, Sponsorship Secretary, Publications Officer, etc. (basically whatever title + support that you think could be provided to the society). Personally, I (Ben) believe that a larger committee than the required roles is highly preferable - there is an upper limit of 10 members to the committee. Constitutionally, we have the that the required positions are:
The President, to preside over meetings, to authorise all expenditure and ultimately be responsible for the running of the Society.
The Secretary, to take minutes at meetings, deal with Society correspondence and stand in for the President when necessary.
The Treasurer, to maintain the accounts of the Society, report to the members thereon, and to stand in for the Secretary when necessary.
The elections themselves will proceed as follows. Initially nominations for President will be asked for, candidate(s) will then give a few words in proposition, questions may be asked to the candidate(s), and then a secret ballot (everyone at the meeting (who is a member) writes down their vote on paper) will be held to determine the winner by simple majority (not counting abstentions). The same will then follow for Secretary and Treasurer. Following this any other positions can be nominated and voted on.
To be nominated you must be proposed by another member, and then seconded by another different member - you must also be a member. You may stand for as many roles as you like, although once you have been appointed to one you cannot stand for another. You may propose or second as many other members as you like (but only 1 per position). For each position you may vote to abstain from voting.
If you are considering standing and need a proposer/seconder feel free to get in touch with committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> as we would be happy to support any candidates looking to stand.
Good Morning All,
6th week is here and the sun is shining. I daresay soon it will be flip flop weather.
This Wednesday we will be having our important Annual General Meeting, during which we will be electing a committee to replace Alex, Ian, Laurens and I. There will be pizza, and potentially hot cross buns. Please note yet another change in venue for this event from our printed term card. We will be on the first floor of St Catherine's lodge.
Since, yet again, no one correctly solved last week's technology challenge the prize for whoever solves it this week will be £15. Along with last weeks clue, another is printed below.
Details about the AGM, the technology challenge, an event CoreFiling are running and possibly more are below.
Have a good one,
Ben and Alex
CompSoc Co-Presidents
*******************************************
The Oxford Computer Society
*******************************************
CompSoc AGM including elections:
Wednesday 22/02, 6pm, St Catz Arumugan Building First Floor Meadow Facing
FB Event: http://www.facebook.com/events/276868755717384/
Please note the change in venue compared to our printed termcard
Out with the old, in with the new.
We will be reviewing progress the society has made this term and discussing any other issues that arise. Elections for the 2012/2013 committee will be held (further details to be sent on mailing list). If you are interested in standing for a position please get in touch with the committee if you have any questions.
If you are interested in the intricacies of how the AGM/society works then please see the constitution. (http://compsoc.net/constitution/)
Pizza and drinks will be provided! (and possibly hot cross buns)
The Arumugan building is the fancy name of the lodge, we will be in the room just to the left after you go up the stairs. We'll put up some signs in the lodge (which is that big glass building straight in front of you as you walk into catz) to the room.
Here is a handy map for finding Catz: http://g.co/maps/eeut2. If you get truly lost in Catz, you can call Ben on 0754 999 3401.
This event, like most CompSoc events, is free for anyone to attend. Although only members of the society may vote in the meeting.
Specific election information:
If you think you might be interested in a role on the committee then please feel free to get in touch with us over committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> and we'd be happy to answer any questions that you might have - alternatively speak to us in person of course!
Along with the positions required by the university (President, Secretary and Treasurer) a number of other roles could be suitably created, such as Vice President, Social Secretary, Sponsorship Secretary, Publications Officer, etc. (basically whatever title + support that you think could be provided to the society). Personally, I (Ben) believe that a larger committee than the required roles is highly preferable - there is an upper limit of 10 members to the committee. Constitutionally, we have the that the required positions are:
The President, to preside over meetings, to authorise all expenditure and ultimately be responsible for the running of the Society.
The Secretary, to take minutes at meetings, deal with Society correspondence and stand in for the President when necessary.
The Treasurer, to maintain the accounts of the Society, report to the members thereon, and to stand in for the Secretary when necessary.
The elections themselves will proceed as follows. Initially nominations for President will be asked for, candidate(s) will then give a few words in proposition, questions may be asked to the candidate(s), and then a secret ballot (everyone at the meeting (who is a member) writes down their vote on paper) will be held to determine the winner by simple majority (not counting abstentions). The same will then follow for Secretary and Treasurer. Following this any other positions can be nominated and voted on.
To be nominated you must be proposed by another member, and then seconded by another different member - you must also be a member. You may stand for as many roles as you like, although once you have been appointed to one you cannot stand for another. You may propose or second as many other members as you like (but only 1 per position). For each position you may vote to abstain from voting.
If you are considering standing and need a proposer/seconder feel free to get in touch with committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> as we would be happy to support any candidates looking to stand.
------------------------------------------------------------------------
CoreFiling Drinks:
Local software company CoreFiling is hosting an informal get-together at
The Red Lion pub on Thursday 23rd February. Members of the development
team will be on hand to talk to students considering careers in the
software industry and to discuss the opportunities for internships and
full time positions available at CoreFiling. Are you interested in
working with Java, Python, XML and Linux? Curious about Extreme
Programming and Test Driven Development? Want to know how international
software projects are managed? If so then come along for a chat over a
drink or two to find out more.
Drinks and snacks will be provided. No need to book.
Date: Thursday 23rd February (6th week)
Time: 5.30pm - 8.30pm.
Location: Red Lion Pub, Gloucester Green.
------------------------------------------------------------------------
Technology Competition:
Challenge 6:
A discrete elevator simulation.
This challenge is using a given list of discrete elevator request events (found at http://compsoc.dartoxia.com/request.txt) determine the number of elevators required to service the requests, and their final configuration once the requests have been serviced. The number of elevators required is the minimum needed to ensure all requests are serviced within 21 time blocks (ie completed in 21 or fewer time blocks after creation).
In the file of event requests, an event is either "SKIP", or a list of requests in the form "x to y;". "SKIP" is the event where no request was made. "x to y;" is the request go from floor x to floor y. Each line corresponds to the a time block, ie line 0 = time 0, line 1 = time 1 etc. In a single time block the requests for that block are made, then the elevators move in the direction they are travelling in, then the elevators service any requests at the floor they are now at. If an elevator is empty it can enter travel mode, where it will travel towards a selected request with the intention of servicing specifically that request (it can service others as long as they do not want to go past the selected request), as soon as it has picked up the specific request it travels in the direction needed for that request and resumes normal mode.
An elevator can only move up 1 floor, down 1 floor or remain at the same floor during each time block.
There is a building containing elevators which is 10 stories high, with each floor numbered 0 through to 9 (ie. 0 is the ground floor). Users request the elevator by pushing a button on the floor they are currently at, indicating the floor they are going to.
An elevator's initial configuration is that it is idling at level 0. Individual elevators follow the following protocol:
Elevators can be in 2 modes: Normal mode and Travel mode
Normal mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if no one is in the elevator, then direction = 0 //ie we are idling
4 if anyone is waiting at currentFloor and would like to travel in the same direction as the elevator (or the elevator is idling) then they get on and we go to the floor they requested, if we were idling then we go in the direction for that floor. We always let the people who have been waiting the longest on first.
Travel mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if anyone is waiting at currentFloor and would like to travel between targetFloor and currentFloor then they get on
4 if currentFloor = targetFloor then let anyone on who would like to go in targetDestination direction and set direction to be towards targetDestination
5 switch to Normal mode
An elevator will switch into Travel mode if at the end of part 4 of normal mode it does not contain any passengers. When it switches into travel mode, it will take a request (x to y) which isn't being acted upon by another elevator and travel to targetFloor (x), doing as much transporting as it can on the way, then will travel towards targetDestination (y). When it is travelling towards targetDestination it has switched back into Normal mode.
If there are [0..N] elevators the system acts in the following manner:
1 todo = <read in request events happening on this time block (if there are any)>
2 for i = 0 to N do
3 execute elevator i's protocol once, removing any request events from todo which it can immediately handle
4 for i = 0 to N do
5 if elevator i is in Normal mode and empty, and todo is not empty then
6 take the request which has been waiting longest (x to y) from todo, and switch elevator i into Travel mode with targetFloor = x and targetDestination = y
7 advance the time by 1 and go back to step 1
One request is determined to be waiting longer than another if it was generated before the other. If they were generated at the same time, then the request before the other in the list defining them in the requests.txt file is the one that has been waiting longer.
Answers can be submitted to http://compsoc.dartoxia.com/answer/<num<http://compsoc.dartoxia.com/answer/%3cnum> of elevators><final floor of elevator 0><final floor of elevator 1><etc..> (obviously without the brackets, ie just a string of numbers). Whilst the solution to this challenge may seem to favour using methods taught in 2nd year CompSci, it can clearly be solved without using any of that fanciness.
An example runthrough and solution can be found at http://compsoc.dartoxia.com/example.txt.
As a clue to help you solve it, 6 elevators are required to service all of the requests in time. A second clue is that none of the lifts end up in positions 0, 2, 4, 6 or 9.
Anyone (with a .ox.ac.uk email address) can sign up to the competition through the http://compsoc.dartoxia.com website, but only members can receive prizes.
Compsoc.dartoxia.com isn't connected to the compsoc network, and so you will need to make a new account to participate.
For more details about the competition see http://compsoc.net/technology_competition or contact committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> if you have questions about this round.
------------------------------------------------------------------------
Technology Competition:
Week 5 result:
No one solved the challenge!
------------------------------------------------------------------------
CompSoc Jobs Mailing list
The society receives a number of advertisements each week from companies and individuals interested in employing our members. The jobs range from graduate positions, to a bit of help with another societies website.
If you would like to receive these emails just email compsoc-jobs-request(a)lists.ox.compsoc.net<mailto:compsoc-jobs-request@lists.ox.compsoc.net> with 'subscribe' in the subject line.
Hi guys,
As I'm sure you remember, tonight is the CompSoc DVD night. Details are copied below. We'll be in the Bernard Sunley Room A at 7pm (see the map in details below).
The poll proved inconclusive/corrupt, so I have rented Tron Legacy and Blade Runner - we will decide based on who turns up. As usual, there will be pizza and snacks and stuff.
I look forward to seeing you there,
Ben
Please note that on our printed termcard the venue is incorrect.
CompSoc DVD night (film TBD). There will be pizza, popcorn and soft drinks! The perfect solution to those mythical 5th week blues. I'm pretty sure there is a whiteboard in that room too, so lively computer science discussion will undoubtedly follow.
To help us decide which film to watch please vote at http://compsoc.dartoxia.com/poll.php (no log in required, just unique IP). If none of the films in the list take your fancy, you can write in a preferred film. http://en.wikipedia.org/wiki/List_of_films_about_computers seems to capture the theme we are going for pretty well. You can't cancel your vote, so chose wisely.
We will be watching BladeRunner or Tron Legacy.
If you are unable to vote because of college NAT or some other witchcraft, and are unable to vote by other means feel free to send an email with your choice to president(a)ox.compsoc.net<mailto:president@ox.compsoc.net>.
Here is a handy map for finding Catz: http://g.co/maps/eeut2
And here is another one for finding Bernard Sunley Room A: http://compsoc.dartoxia.com/map2.png (room A is on the first floor)
If you get truly lost in Catz, you can call Ben on 0754 999 3401.
FB Event: http://www.facebook.com/events/334539779924694/
Good Morning All,
Already 5th week, term seems to be flying by!
This Wednesday we will be watching a computer themed film at 7pm. There will, of course, be drinks and pizza. The film is to be decided by vote (which can be as undemocratic as you can make it) - more details follow (PLEASE NOTE the change of venue compared to our printed termcard).
There are also some details about the upcoming committee elections below, please read if you are considering standing.
Finally, since no one solved last week's challenge (admittedly it is rather lengthy to read, but quite easy to solve), this week's one is the same one, but with double the prize. There is also a hint, which may save you some time.
Have a good one,
Ben and Alex
CompSoc Co-Presidents
*******************************************
The Oxford Computer Society
*******************************************
CompSoc DVD night
Wednesday 15/02, 7pm, St Catz Bernard Sunley Room A
Please note that on our printed termcard the venue is incorrect.
CompSoc DVD night (film TBD). There will be pizza, popcorn and soft drinks! The perfect solution to those mythical 5th week blues. I'm pretty sure there is a whiteboard in that room too, so lively computer science discussion will undoubtedly follow.
To help us decide which film to watch please vote at http://compsoc.dartoxia.com/poll.php (no log in required, just unique IP). If none of the films in the list take your fancy, you can write in a preferred film. http://en.wikipedia.org/wiki/List_of_films_about_computers seems to capture the theme we are going for pretty well. You can't cancel your vote, so chose wisely.
If you are unable to vote because of college NAT or some other witchcraft, and are unable to vote by other means feel free to send an email with your choice to president(a)ox.compsoc.net<mailto:president@ox.compsoc.net>.
Here is a handy map for finding Catz: http://g.co/maps/eeut2
And here is another one for finding Bernard Sunley Room A: http://compsoc.dartoxia.com/map2.png (room A is on the first floor)
If you get truly lost in Catz, you can call Ben on 0754 999 3401.
FB Event: http://www.facebook.com/events/334539779924694/
------------------------------------------------------------------------
Upcoming CompSoc AGM:
You may know that in Week 6 CompSoc will be holding its Annual General Meeting during which the committee for 2012/2013 will be elected. If you think you might be interested in a role on the committee then please feel free to get in touch with us over committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> and we'd be happy to answer any questions that you might have - alternatively speak to us in person of course!
Along with the positions required by the university (President, Secretary and Treasurer) a number of other roles could be suitably created, such as Vice President, Social Secretary, Sponsorship Secretary, Publications Officer, etc. (basically whatever title + support that you think could be provided to the society). Personally, I (Ben) believe that a larger committee than the required roles is highly preferable - there is an upper limit of 10 members to the committee. Constitutionally, we have the that the required positions are:
The President, to preside over meetings, to authorise all expenditure and ultimately be responsible for the running of the Society.
The Secretary, to take minutes at meetings, deal with Society correspondence and stand in for the President when necessary.
The Treasurer, to maintain the accounts of the Society, report to the members thereon, and to stand in for the Secretary when necessary.
The elections themselves will proceed as follows. Initially nominations for President will be asked for, candidate(s) will then give a few words in proposition, questions may be asked to the candidate(s), and then a secret ballot (everyone at the meeting (who is a member) writes down their vote on paper) will be held to determine the winner by simple majority (not counting abstentions). The same will then follow for Secretary and Treasurer. Following this any other positions can be nominated and voted on.
To be nominated you must be proposed by another member, and then seconded by another different member - you must also be a member. You may stand for as many roles as you like, although once you have been appointed to one you cannot stand for another. You may propose or second as many other members as you like (but only 1 per position). For each position you may vote to abstain from voting.
If you are considering standing and need a proposer/seconder feel free to get in touch with committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> as we would be happy to support any candidates looking to stand.
------------------------------------------------------------------------
Technology Competition:
Challenge 5:
A discrete elevator simulation.
This challenge is using a given list of discrete elevator request events (found at http://compsoc.dartoxia.com/request.txt) determine the number of elevators required to service the requests, and their final configuration once the requests have been serviced. The number of elevators required is the minimum needed to ensure all requests are serviced within 21 time blocks (ie completed in 21 or fewer time blocks after creation).
In the file of event requests, an event is either "SKIP", or a list of requests in the form "x to y;". "SKIP" is the event where no request was made. "x to y;" is the request go from floor x to floor y. Each line corresponds to the a time block, ie line 0 = time 0, line 1 = time 1 etc. In a single time block the requests for that block are made, then the elevators move in the direction they are travelling in, then the elevators service any requests at the floor they are now at. If an elevator is empty it can enter travel mode, where it will travel towards a selected request with the intention of servicing specifically that request (it can service others as long as they do not want to go past the selected request), as soon as it has picked up the specific request it travels in the direction needed for that request and resumes normal mode.
An elevator can only move up 1 floor, down 1 floor or remain at the same floor during each time block.
There is a building containing elevators which is 10 stories high, with each floor numbered 0 through to 9 (ie. 0 is the ground floor). Users request the elevator by pushing a button on the floor they are currently at, indicating the floor they are going to.
An elevator's initial configuration is that it is idling at level 0. Individual elevators follow the following protocol:
Elevators can be in 2 modes: Normal mode and Travel mode
Normal mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if no one is in the elevator, then direction = 0 //ie we are idling
4 if anyone is waiting at currentFloor and would like to travel in the same direction as the elevator (or the elevator is idling) then they get on and we go to the floor they requested, if we were idling then we go in the direction for that floor. We always let the people who have been waiting the longest on first.
Travel mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if anyone is waiting at currentFloor and would like to travel between targetFloor and currentFloor then they get on
4 if currentFloor = targetFloor then let anyone on who would like to go in targetDestination direction and set direction to be towards targetDestination
5 switch to Normal mode
An elevator will switch into Travel mode if at the end of part 4 of normal mode it does not contain any passengers. When it switches into travel mode, it will take a request (x to y) which isn't being acted upon by another elevator and travel to targetFloor (x), doing as much transporting as it can on the way, then will travel towards targetDestination (y). When it is travelling towards targetDestination it has switched back into Normal mode.
If there are [0..N] elevators the system acts in the following manner:
1 todo = <read in request events happening on this time block (if there are any)>
2 for i = 0 to N do
3 execute elevator i's protocol once, removing any request events from todo which it can immediately handle
4 for i = 0 to N do
5 if elevator i is in Normal mode and empty, and todo is not empty then
6 take the request which has been waiting longest (x to y) from todo, and switch elevator i into Travel mode with targetFloor = x and targetDestination = y
7 advance the time by 1 and go back to step 1
One request is determined to be waiting longer than another if it was generated before the other. If they were generated at the same time, then the request before the other in the list defining them in the requests.txt file is the one that has been waiting longer.
Answers can be submitted to http://compsoc.dartoxia.com/answer/<num<http://compsoc.dartoxia.com/answer/%3cnum> of elevators><final floor of elevator 0><final floor of elevator 1><etc..> (obviously without the brackets, ie just a string of numbers). Whilst the solution to this challenge may seem to favour using methods taught in 2nd year CompSci, it can clearly be solved without using any of that fanciness.
An example runthrough and solution can be found at http://compsoc.dartoxia.com/example.txt.
As a clue to help you solve it, 6 elevators are required to service all of the requests in time.
Anyone (with a .ox.ac.uk email address) can sign up to the competition through the http://compsoc.dartoxia.com website, but only members can receive prizes.
Compsoc.dartoxia.com isn't connected to the compsoc network, and so you will need to make a new account to participate.
For more details about the competition see http://compsoc.net/technology_competition or contact committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> if you have questions about this round.
------------------------------------------------------------------------
Technology Competition:
Week 4 result:
No one solved the challenge!
------------------------------------------------------------------------
CompSoc Jobs Mailing list
The society receives a number of advertisements each week from companies and individuals interested in employing our members. The jobs range from graduate positions, to a bit of help with another societies website.
If you would like to receive these emails just email compsoc-jobs-request(a)lists.ox.compsoc.net<mailto:compsoc-jobs-request@lists.ox.compsoc.net> with 'subscribe' in the subject line.
Good Morning All,
Whilst the snow melts and slowly becomes slushy ice, let the weekly CompSoc email liven your day!
This Wednesday is the Gloucester Research dinner at Quod, I will send out a confirmation email to everyone I have got as attending after this one - if you don't get one and said you wanted to come, please get in touch with president(a)ox.compsoc.net<mailto:president@ox.compsoc.net>.
As usual I have included details of this event below, as well as an important notice about our upcoming AGM (at which a new committee will be elected), and of course the weekly technology competition.
Have a good one,
Ben and Alex
CompSoc Co-Presidents
*******************************************
The Oxford Computer Society
*******************************************
Gloucester Research Networking Dinner
Wednesday 08/02, 7pm, Quod
Gloucester Research is hosting a networking dinner for Oxford Computer Society Members on 8th February at Quod.
If you are interested in pursuing a career in financial IT whether as a software developer or within an infrastructure team - you are invited to a three course dinner, each course with different experienced members of the company.
This is a unique opportunity for you to find out first-hand about Gloucester Research and how they develop and support a sophisticated trading platform.
All of the places for this dinner have been taken, this notice is for information only.
------------------------------------------------------------------------
Upcoming CompSoc AGM:
You may know that in Week 6 CompSoc will be holding its Annual General Meeting during which the committee for 2012/2013 will be elected. If you think you might be interested in a role on the committee then please feel free to get in touch with us over committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> and we'd be happy to answer any questions that you might have - alternatively speak to us in person of course!
Along with the positions required by the university (President, Secretary and Treasurer) a number of other roles could be suitably created, such as Vice President, Social Secretary, Sponsorship Secretary, Publications Officer, etc. (basically whatever title + support that you think could be provided to the society). Personally, I (Ben) believe that a larger committee than the required roles is highly preferable - there is an upper limit of 10 members to the committee. Constitutionally, we have the that the required positions are:
The President, to preside over meetings, to authorise all expenditure and ultimately be responsible for the running of the Society.
The Secretary, to take minutes at meetings, deal with Society correspondence and stand in for the President when necessary.
The Treasurer, to maintain the accounts of the Society, report to the members thereon, and to stand in for the Secretary when necessary.
------------------------------------------------------------------------
Technology Competition:
Challenge 4:
This week's challenge is a long one.
A discrete elevator simulation.
This challenge is using a given list of discrete elevator request events (found at http://compsoc.dartoxia.com/request.txt) determine the number of elevators required to service the requests, and their final configuration once the requests have been serviced. The number of elevators required is the minimum needed to ensure all requests are serviced within 21 time blocks (ie completed in 21 or fewer time blocks after creation).
In the file of event requests, an event is either "SKIP", or a list of requests in the form "x to y;". "SKIP" is the event where no request was made. "x to y;" is the request go from floor x to floor y. Each line corresponds to the a time block, ie line 0 = time 0, line 1 = time 1 etc. In a single time block the requests for that block are made, then the elevators move in the direction they are travelling in, then the elevators service any requests at the floor they are now at. If an elevator is empty it can enter travel mode, where it will travel towards a selected request with the intention of servicing specifically that request (it can service others as long as they do not want to go past the selected request), as soon as it has picked up the specific request it travels in the direction needed for that request and resumes normal mode.
An elevator can only move up 1 floor, down 1 floor or remain at the same floor during each time block.
There is a building containing elevators which is 10 stories high, with each floor numbered 0 through to 9 (ie. 0 is the ground floor). Users request the elevator by pushing a button on the floor they are currently at, indicating the floor they are going to.
An elevator's initial configuration is that it is idling at level 0. Individual elevators follow the following protocol:
Elevators can be in 2 modes: Normal mode and Travel mode
Normal mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if no one is in the elevator, then direction = 0 //ie we are idling
4 if anyone is waiting at currentFloor and would like to travel in the same direction as the elevator (or the elevator is idling) then they get on and we go to the floor they requested, if we were idling then we go in the direction for that floor. We always let the people who have been waiting the longest on first.
Travel mode:
1 currentFloor = currentFloor + direction //as long as this won't place the elevator out of the building
2 let people out of the elevator if they are in it and this is their floor
3 if anyone is waiting at currentFloor and would like to travel between targetFloor and currentFloor then they get on
4 if currentFloor = targetFloor then let anyone on who would like to go in targetDestination direction and set direction to be towards targetDestination
5 switch to Normal mode
An elevator will switch into Travel mode if at the end of part 4 of normal mode it does not contain any passengers. When it switches into travel mode, it will take a request (x to y) which isn't being acted upon by another elevator and travel to targetFloor (x), doing as much transporting as it can on the way, then will travel towards targetDestination (y). When it is travelling towards targetDestination it has switched back into Normal mode.
If there are [0..N] elevators the system acts in the following manner:
1 todo = <read in request events happening on this time block (if there are any)>
2 for i = 0 to N do
3 execute elevator i's protocol once, removing any request events from todo which it can immediately handle
4 for i = 0 to N do
5 if elevator i is in Normal mode and empty, and todo is not empty then
6 take the request which has been waiting longest (x to y) from todo, and switch elevator i into Travel mode with targetFloor = x and targetDestination = y
7 advance the time by 1 and go back to step 1
One request is determined to be waiting longer than another if it was generated before the other. If they were generated at the same time, then the request before the other in the list defining them in the requests.txt file is the one that has been waiting longer.
Answers can be submitted to http://compsoc.dartoxia.com/answer/<num<http://compsoc.dartoxia.com/answer/%3cnum> of elevators><final floor of elevator 0><final floor of elevator 1><etc..> (obviously without the brackets, ie just a string of numbers). Whilst the solution to this challenge may seem to favour using methods taught in 2nd year CompSci, it can clearly be solved without using any of that fanciness.
An example runthrough and solution can be found at http://compsoc.dartoxia.com/example.txt.
Anyone (with a .ox.ac.uk email address) can sign up to the competition through the http://compsoc.dartoxia.com website, but only members can receive prizes.
Compsoc.dartoxia.com isn't connected to the compsoc network, and so you will need to make a new account to participate.
For more details about the competition see http://compsoc.net/technology_competition or contact committee(a)ox.compsoc.net<mailto:committee@ox.compsoc.net> if you have questions about this round.
------------------------------------------------------------------------
Technology Competition:
Week 3 result:
Congratulations to Jonathan Tuckwell who was the first person to submit a correct response to last weeks challenge. We will get in touch separately to send you your prize.
The week 3 challenge was to find the message hidden in our termcard (http://compsoc.net/termcards/2012/hilary/termcard.pdf). The message was binary ASCII plaintext in the border, which directed the reader to a link which led them to the solution.
------------------------------------------------------------------------
CompSoc Jobs Mailing list
The society receives a number of advertisements each week from companies and individuals interested in employing our members. The jobs range from graduate positions, to a bit of help with another societies website.
If you would like to receive these emails just email compsoc-jobs-request(a)lists.ox.compsoc.net<mailto:compsoc-jobs-request@lists.ox.compsoc.net> with 'subscribe' in the subject line.
Hi All,
Just one last reminder that the Google talk: "My other computer is a data center" is tonight, starting at 8.15pm in the St Catz JCR Lecture Theatre.
Also, if there is anyone who would like to come to the free Gloucester Research dinner at Quod, 7pm next Wednesday, please RSVP by the end of tomorrow - there are still a few places left. Feel free to RSVP in person if you will be at the talk tonight (let one of the committee members know).
All the best,
Ben
--
Co-President, Oxford CompSoc
"My other computer is a data center" - The warehouse-scale computing infrastructure at Google
Wednesday 01, 20:15, St Catz JCR Lecture Theatre
Christoph Best, Software Engineer, Google
Google's mission, to organize the world's information and make it universally accessible and useful, is simple, but it entails running a large number of very different applications from web search and advertising over video, geo and commerce to enterprise. All these activities are supported by a single underlying computing infrastructure: Google's worldwide data centers.
In this talk, Christoph will try to give an impression of what it is like to work with such a unique infrastructure, and what its implications for computer science could be, with an emphasis on large-scale data processing.
Google have kindly offered to provide free drinks afterwards. They have also provided us with some Google T-Shirts to give away!
Here is a handy map for finding Catz: http://g.co/maps/eeut2 And here is another one for finding the JCR lecture theatre (it joins on to the PDR): http://compsoc.dartoxia.com/map.png
The talk starts at 20.15, the lodge are always happy to point you to the JCR Lecture Theatre (don't be afraid to ask!)..
FB Event: http://www.facebook.com/events/351801234844571