Add protospace info
This commit is contained in:
parent
a924818066
commit
5118e9cc9a
286
info.txt
Normal file
286
info.txt
Normal file
|
@ -0,0 +1,286 @@
|
|||
What is Protospace?
|
||||
===================
|
||||
|
||||
Written by Riel.
|
||||
|
||||
First, let's get some structural stuff out of the way: Protospace is a 100%
|
||||
volunteer-run, Non-Profit Co-op. We have a board of Directors who fulfill some
|
||||
necessary administrative tasks, but aside from the additional duties they've
|
||||
taken on, they have the same powers as non-directors. Each of our members is
|
||||
an individual and brings their own backgrounds and expertise and having
|
||||
everyone be equals on an organizational level leads to some of the most
|
||||
positive aspects of our community, such as while some of our tools are owned
|
||||
by Protospace as an entity, many are on loan from our members. Our community
|
||||
is where our biggest strength lies.
|
||||
|
||||
|
||||
Do-ocracy
|
||||
---------
|
||||
|
||||
We're structured as a Do-ocracy, which is to say that we're all empowered as
|
||||
individuals to find our own tasks and take them on, both for our own projects
|
||||
and with regards to the space. See something that needs fixing and you know
|
||||
how? Fix it! Have a skill people are interested in? Teach them? Take on what
|
||||
you'd like to take on given the time and energy you have.
|
||||
|
||||
That said, we do have a lot of members. Functionally, what Do-ocracy means is
|
||||
that you can do effectively whatever you want as long as it:
|
||||
|
||||
- Is not a change to the building and its systems (code and permits may apply)
|
||||
- Is safe and does not make things unsafe
|
||||
- Can be reasonably undone in less than four hours.
|
||||
|
||||
But to add to that, any Do-ocracy this large falls apart if everyone acts as
|
||||
an individual. Keep in mind that over 200 people use the space and the things
|
||||
you do can affect them and the things they do can affect you, both positively
|
||||
and negatively. Be kind to each other. Be excellent. Treat others as you'd
|
||||
like to be treated. Treat the equipment and space well because you're sharing
|
||||
it. Leave things at least as clean as you found them. If you're concerned
|
||||
about someone getting upset with you for doing something with the space, post
|
||||
a topic on the forum and you'll find out pretty quickly whether people are for
|
||||
or against what you're planning.
|
||||
|
||||
There's also an expectation that each of our members put a bit of time into
|
||||
the space in addition to keeping your dues current. That could be taking trash
|
||||
to the dumpster, becoming a trainer, attending monthly cleans and meetings,
|
||||
fixing broken equipment, or whatever else you find.
|
||||
|
||||
On the personal side of any community, mistakes and miscommunications happen.
|
||||
We have a lot of people here. Generally speaking, things run best when we
|
||||
assume good intentions of other people. I think most of us tend to act with
|
||||
good intentions, right? So please try to be kind and understanding if anything
|
||||
comes up. We want everyone to feel welcome and safe and kind discussion is
|
||||
generally preferable to loud confrontation.
|
||||
|
||||
Especially be respectful of other people's time. If you sign up for a class
|
||||
that you can't make, withdraw so someone else can take that class. If progress
|
||||
on something someone is doing isn't going as quickly as you'd like, help! We
|
||||
all have lives outside of here and things get delayed. If someone is too busy
|
||||
or uninterested in helping you, let it go. We all have those days.
|
||||
|
||||
|
||||
Some Policy Stuff
|
||||
-----------------
|
||||
|
||||
Safety and Fire code rule Supreme.
|
||||
|
||||
Please bring your own consumables.
|
||||
|
||||
If you're using Protospace for profit, it is expected that a portion of your
|
||||
profits will be reinvested in Protospace.
|
||||
|
||||
Personal shelves are available, and that space is your own, but we don't have
|
||||
enough space for large projects for all our members. If you don't take it home
|
||||
and it won't fit on your shelf, it needs a pitch. If it's small and fits out
|
||||
of the way but needs a bit of time (like for paint to dry) put a note with
|
||||
your name, contact info, and when you'll be back to get it. If it's clamped,
|
||||
also write down when the clamps can be removed in case someone needs to use
|
||||
them. If it's bigger, the pitch should be made on the forums with 48 hours of
|
||||
notice *before* your project shows up. Let people know what your project looks
|
||||
like, where you hope to put it, and how long it'll have to be there.
|
||||
|
||||
There is no overnight storage in the no-fly zone at the back of the Wood Shop.
|
||||
|
||||
|
||||
Community Events
|
||||
----------------
|
||||
|
||||
We have a number of community events that pop up from time to time. Currently,
|
||||
the only consistent one is our Tuesday Night Open House, from 7-9pm. All
|
||||
members are encouraged to come out and be social and get to know each other.
|
||||
If you're comfortable with the public, please volunteer to tour people around
|
||||
the building, and share your enthusiasm! It lets us get to know each other and
|
||||
in a place like this where we're sharing a lot of space, knowing the people
|
||||
around you is an extremely valuable tool at your disposal. (It also helps with
|
||||
vetting, but we'll get to that later).
|
||||
|
||||
Aside from that, we have games nights and movie nights and LAN parties and all
|
||||
sorts of things. Any vetted member can organize an event.
|
||||
|
||||
We also occasionally do group buys and other community things that aren't tied
|
||||
directly into socializing, so keep an eye on the forums to see what's
|
||||
currently going on.
|
||||
|
||||
Now let's move onto some general safety stuff before coming back to talk about
|
||||
what to do while you're un-vetted, as well as how larger organizational
|
||||
decisions are made here.
|
||||
|
||||
|
||||
Safety
|
||||
======
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
This isn't mean to be an exhaustive Safety seminar, because that would be
|
||||
impossible. Most tools have different safety requirements associated with them
|
||||
that will be gone over during the training on that machinery, and if you're
|
||||
ever not comfortable with how to do something safely, please ask. Also,
|
||||
everyone does unsafe things sometimes without realizing it, so if someone lets
|
||||
you know you're doing something questionable, not matter what your experience
|
||||
is, please listen to them—they're probably right.
|
||||
|
||||
The main things to keep in mind are to keep your eyes and hearing safe, and
|
||||
also to keep yourself from getting snagged by a machine. Sometimes things fly
|
||||
across the room unexpectedly. That's life. If it hits you in the arm it might
|
||||
do a lot of damage, but it'll do much more if it hits you in the eye. Wear
|
||||
safety glasses as much as possible if you're even near *other* people using
|
||||
power tools. You also can't really recover your hearing, so if you're around
|
||||
loud things, using hearing protection.
|
||||
|
||||
With snags, avoid wearing things like loose clothing, long sleeves, rings,
|
||||
necklaces, ties, gloves, and keep your hair tied back or under a hat if
|
||||
there's any chance it might fall into machinery. Any of these things can mean
|
||||
a trip to the ER around a lot of our equipment if you aren't incredibly
|
||||
careful.
|
||||
|
||||
Speaking of Emergencies, if someone is hurt or in danger, please call 9-1-1.
|
||||
You can find the address of the building on most doors. If there's a building
|
||||
emergency, like a burst pipe or something, please email
|
||||
directors@protospace.ca.
|
||||
|
||||
|
||||
Bigger Decisions and Getting Started
|
||||
====================================
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
Since you're in this class, you've either been to the Portal or someone has
|
||||
done that for you. You can find that at my.protospace.ca. It's where you sign
|
||||
up for classes, make payments, see your records, and other things as we add
|
||||
them.
|
||||
|
||||
You'll want to upload a photo of yourself. It's the photo that will go on your
|
||||
keycard when you get vetted. Some corporate partners in the past have asked
|
||||
for ID so please have it be a photo of your actual face. You can also use the
|
||||
menus to look in the member directory to try to attach faces to names or see
|
||||
who our current Directors are.
|
||||
|
||||
There's also a link to set up an account on our forum, known as Spacebar. You
|
||||
can access the forum directly at forum.protospace.ca, but will need to sign up
|
||||
through the Portal in order to have access to the Member section.
|
||||
|
||||
We're not going to go into too much depth here, but most of the Forum is
|
||||
publicly viewable, aside from the Administrivia section (there's a lock beside
|
||||
it) so be mindful that things that only members should see go there. The Forum
|
||||
is pretty well broken into categories so it should be pretty obvious what goes
|
||||
where.
|
||||
|
||||
You've already signed up for a class, but you might not know that you can
|
||||
indicate interest by hitting the Interest button beside a course on the
|
||||
classes page. The next time a class on that topic gets scheduled, you should
|
||||
receive an email letting you know. It's a great way to let everyone know where
|
||||
priorities are and lets people with those knowledge-sets know that people
|
||||
would really appreciate some guidance.
|
||||
|
||||
|
||||
Accessing the Space as an Un-Vetted Member
|
||||
------------------------------------------
|
||||
|
||||
Until you have keyed access, there must be a vetted member in the space
|
||||
willing to chaperone and take accountability for you. Currently, the best way
|
||||
to ensure that is to post a message on the forums asking if someone will be
|
||||
around, otherwise you can come to the space and ring the bell and hope for the
|
||||
best. The only time we can mostly guarantee there will be someone in the
|
||||
building is during Open House and Member Meetings, but there are typically
|
||||
people here most hours on the weekends as well. Outside of that, it's
|
||||
difficult to say.
|
||||
|
||||
While you're un-vetted, you should try to attend as many Open Houses as
|
||||
possible, and spend time at the space getting to know people. Part of that is
|
||||
just learning about the people you're sharing the space with, but also you
|
||||
will need to know at least a couple of people to be vetted
|
||||
|
||||
|
||||
Vetting
|
||||
-------
|
||||
|
||||
On to vetting. When you are vetted, you get voting rights, a shelf, 24/7
|
||||
access to the space, and a keycard.
|
||||
|
||||
Everything I'm going to mention here typically happens on a Tuesday night,
|
||||
though it can happen any time we have 11 vetted members and a Director
|
||||
present. If you are getting vetted on a Tuesday, please try to find a director
|
||||
as soon as you get here, as this process can take some time. To be vetted, you
|
||||
need to tick a few boxes:
|
||||
|
||||
- You must be sponsored by 2 vetted members in good standing
|
||||
- You must have been a member for at least 4 weeks.
|
||||
- You must be current on your dues.
|
||||
- You must show ID and provide a photo for the member directory.
|
||||
- You must complete a short 1-on-1 chat with a director or designate. This is
|
||||
about making sure you have the knowledge you need from us—it's not a
|
||||
screening interview.
|
||||
- You should also be given an in-person tour of the space, including opening
|
||||
and closing procedures.
|
||||
|
||||
Once you've been vetted, you can request a key from the Portal and get your
|
||||
access. Find a shelf and put your name on it, and start voting at Monthly
|
||||
Member Meetings.
|
||||
|
||||
|
||||
Bigger Decisions
|
||||
----------------
|
||||
|
||||
Remember the "11 vetted members" thing? We call that "Quorum" and it's the
|
||||
amount of vetted members we need to make any sort of organizational decision,
|
||||
whether it be accepting a new member or purchasing a new tool.
|
||||
|
||||
We have scheduled Monthly Member Meetings on the third week of every month (it
|
||||
alternates days: Thursdays on odd months, Wednesdays on even months) at 7pm,
|
||||
and our Annual General Meeting in June. You can also be vetted on these days.
|
||||
|
||||
These meetings are where all our bigger decisions get made, including whether
|
||||
or not to move the next meeting, so please check the calendar in the wiki or
|
||||
the Forum to make sure they haven't moved, or, better yet, attend and stay in
|
||||
the loop.
|
||||
|
||||
Vetted members are able make motions for new policies or purchases but these
|
||||
must be posted on the Forum *at least* 72 before the meeting. This lets us
|
||||
discuss any issues with it before the meeting and hopefully has us closer to a
|
||||
consensus. Motions are then voted on with a yes, no, or abstention, and
|
||||
require a 75% approval to pass.
|
||||
|
||||
Sometimes the motion is not specific enough to pass, at which point it is
|
||||
differed to a small group of people with relevant expertise and enthusiasm to
|
||||
hone and make a more concrete decision on.
|
||||
|
||||
The board of directors is voted in the same way, but exclusively at the Annual
|
||||
General Meeting.
|
||||
|
||||
|
||||
Participating in Decision-making
|
||||
--------------------------------
|
||||
|
||||
Most of the debate regarding decisions happens on the Forum. It's where people
|
||||
post motions and discuss general interests even before ideas get formed to the
|
||||
point that a motion comes together. If there's something you'd like to see but
|
||||
don't, that's a good place to start. If you're knowledgeable about something
|
||||
that gets deferred at a Member's Meeting, you can probably also join the group
|
||||
of people entrusted in honing the motion.
|
||||
|
||||
If you don't feel strongly about something or wouldn't actually use the thing
|
||||
being discussed, weighing in may be counter-productive. Remember that we are a
|
||||
Do-ocracy and arguing whether A is better than B when neither affect you can
|
||||
just make things more complicated for the people who just want to do the
|
||||
thing.
|
||||
|
||||
And, of course, come to the Member's Meetings and vote.
|
||||
|
||||
|
||||
To Finish Off
|
||||
-------------
|
||||
|
||||
I touched on this before, but we don't have a cleaning staff, so please, clean
|
||||
up after yourself for both courtesy and safety reasons. In addition, the 3rd
|
||||
Saturday of every month is the Monthly Group Clean. Areas to be cleaned and a
|
||||
Clean Leader are usually discussed at the preceding member's meeting. It
|
||||
generally runs from about 10am to 2pm, and lunch is provided.
|
||||
|
||||
And again, I really do want to stress that we want everyone to feel welcome
|
||||
here. In a shared space with this many people that depends on people being
|
||||
excellent to each other. Treat others as you'd like to be treated, and if
|
||||
you're trying to find out something out about this place I haven't covered,
|
||||
check the wiki or the Forum, or ask around. Most of us are friendly most of
|
||||
the time.
|
40
main.py
40
main.py
|
@ -28,6 +28,9 @@ ESCAPE_KEY = 27
|
|||
|
||||
TIMEZONE_CALGARY = pytz.timezone('America/Edmonton')
|
||||
|
||||
with open('info.txt') as f:
|
||||
PROTO_INFO = f.read()
|
||||
|
||||
def format_date(datestr):
|
||||
d = datetime.strptime(datestr, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.UTC)
|
||||
d = d.astimezone(TIMEZONE_CALGARY)
|
||||
|
@ -171,6 +174,7 @@ classes = {}
|
|||
classes_start = 0
|
||||
protocoin = {}
|
||||
protocoin_line = 0
|
||||
info_line = 0
|
||||
|
||||
logging.info('Starting main loop...')
|
||||
|
||||
|
@ -184,13 +188,14 @@ while True:
|
|||
stdscr.addstr(5, 1, '|_____| |____| |___|`.___.\' |_____| `.___.\' \_/|____| |____|`.____ .\'')
|
||||
stdscr.addstr(7, 1, ' UNIVERSAL COMPUTER')
|
||||
|
||||
stdscr.addstr(9, 4, '[S] Stats')
|
||||
stdscr.addstr(11, 4, '[N] Sign')
|
||||
stdscr.addstr(13, 4, '[C] Classes')
|
||||
stdscr.addstr(15, 4, '[P] Protocoin')
|
||||
stdscr.addstr(9, 4, '[I] Info')
|
||||
stdscr.addstr(11, 4, '[S] Stats')
|
||||
stdscr.addstr(13, 4, '[N] Sign')
|
||||
stdscr.addstr(15, 4, '[C] Classes')
|
||||
stdscr.addstr(17, 4, '[P] Protocoin')
|
||||
if wa_api_key:
|
||||
stdscr.addstr(17, 4, '[T] Think')
|
||||
stdscr.addstr(19, 4, '[A] About')
|
||||
stdscr.addstr(21, 4, '[A] About')
|
||||
|
||||
stdscr.addstr(23, 1, ' Copyright (c) 1985 Bikeshed Computer Systems Corp.')
|
||||
stdscr.clrtoeol()
|
||||
|
@ -270,6 +275,17 @@ while True:
|
|||
classes = fetch_classes()
|
||||
stdscr.erase()
|
||||
skip_input = True
|
||||
elif current_screen == 'info':
|
||||
stdscr.addstr(0, 1, 'PROTOVAC UNIVERSAL COMPUTER')
|
||||
lines = PROTO_INFO.split('\n')
|
||||
|
||||
offset = 2
|
||||
for num, line in enumerate(lines[info_line:info_line+20]):
|
||||
stdscr.addstr(num + offset, 1, line)
|
||||
|
||||
stdscr.addstr(23, 1, '[B] Back [J] Down [K] Up')
|
||||
stdscr.clrtoeol()
|
||||
stdscr.refresh()
|
||||
elif current_screen == 'protocoin':
|
||||
stdscr.addstr(0, 1, 'PROTOVAC UNIVERSAL COMPUTER')
|
||||
stdscr.addstr(2, 1, 'Protocoin')
|
||||
|
@ -395,6 +411,8 @@ while True:
|
|||
if current_screen == 'home':
|
||||
if button == 's':
|
||||
current_screen = 'stats'
|
||||
elif button == 'i':
|
||||
current_screen = 'info'
|
||||
elif button == 'n':
|
||||
current_screen = 'sign'
|
||||
elif button == 'c':
|
||||
|
@ -431,6 +449,18 @@ while True:
|
|||
if classes_start > 0:
|
||||
classes_start -= 1
|
||||
stdscr.erase()
|
||||
elif current_screen == 'info':
|
||||
if button == 'b':
|
||||
current_screen = 'home'
|
||||
protocoin = {}
|
||||
info_line = 0
|
||||
elif button == 'j':
|
||||
info_line += 5
|
||||
stdscr.erase()
|
||||
elif button == 'k':
|
||||
if info_line > 0:
|
||||
info_line -= 5
|
||||
stdscr.erase()
|
||||
elif current_screen == 'protocoin':
|
||||
if button == 'b':
|
||||
current_screen = 'home'
|
||||
|
|
Loading…
Reference in New Issue
Block a user