User:BrandonDHaskell

From Noisebridge
Jump to navigation Jump to search
Docent: This user has volunteered to be a docent and help out with greeter tours and assisting new people learn how to use the space and navigate the community. | See Category:Docent for more folks | (edit)

Projects[edit | edit source]

Noisebridge - Be Excellent[edit | edit source]

Collaborate and Create - Noisebridge is a space for sharing, creation, collaboration, research, development, mentoring, and learning. Let's build together!

Respect and Inclusivity - We're a diverse group of amazing individuals. Respect each other's backgrounds, skills, and perspectives.

Communicate with Empathy - Approach each conversation with empathy and understanding, as if speaking with a close friend.

Personal Responsibility - Your actions shape our community. Be mindful and contribute positively.

Feedback Welcomed - Share your ideas to make Noisebridge even better.

[QR code here]

Conflict Resolution Wiki Updates[edit | edit source]

Getting Along With Others[edit | edit source]

Noisebridge is an amazing and diverse community. It's what makes us excellent! But at times, it may also be a challenge to find compromise with so many thoughts, ideas, opinions, cultures, and backgrounds. If you find yourself in conflict there options available to you.

Safe Space[edit | edit source]

Noisebridge is meant to be a safe place. If you feel you are unsafe, or are being threatened report it here: https://safespace.noisebridge.net/

If you wish to report harassment anonymously or privately, you can send a message to secretary@noisebridge.net, or engage with one of our mediators below.

Noisebridge does not tolerate harassment. Please see our harassment policies here


Best Practices and Goals In High Conflict Situations[edit | edit source]

  1. Encourage each other to be excellent as you work through.
  2. Use Restorative Communication.
  3. Ask to disengage and attempt the conversation at a later time.
  4. Ask for help from a mentor below


When That Doesn't Work, Try Mediation[edit | edit source]

Software Project Management Best Practices[edit | edit source]

Categorize Your Tasks[edit | edit source]

Categorizing tasks effectively in a project is crucial for efficient project management. Here is an extensive (but not complete) list:

Core Development Tasks

  • Feature - Enhancements to the core product or app. These generally directly enhance the user experience.
  • Docs (aka Documentation) - Content that contributes to enhancing knowledge around the use or usage of the product. This might also include system documentation, API guides, as well as help pages.
  • Test - Writing or fixing tests.
  • Bug - Functionality that is not working as expected and needs to be fixed.

Advanced Development Tasks

  • Refactor - Code that needs to be optimized or improved for better readability or performance.
  • Performance - Optimization tasks such as improving database queries.
  • Deployment - Tasks related to deployment pipelines.
  • UI/UX - User interface or user experience tasks.
  • Enhancement - Minor improvements or non-critical updates such as improving form validation messaging.

QA

  • Feedback - Tasks related to User or Stakeholder feedback.

Security or Rapid Response Tasks (these may be better managed in Kanban)

  • Hotfix - Urgent fixes such as a security patch.
  • Security - Addressing security vulnerabilities or enhancing security features

Maintenance

  • Chore (aka Keep The Lights On [KTLO]) - Routine tasks or maintenance such as updating dependencies or updating CC info on recurring charges.
  • Research - Investigating or exploring new technologies or solutions. This is typically done before committing to any related work.


Project - MeetUp[edit | edit source]

  • Side Project Meetup?
  • Review current Meetup meeting for Sunday afternoon
  • Set Meetup time
  • Set Meetup room (Electronics?)
  • Create Meetup recurring event for Noisebridge
  • Create mini projects for same day activities
  • Design multi-week projects
  • Create mini projects


Noisebridge Physical Access Project (SHED 2.0 and 3.0)[edit | edit source]

Noisebridge is a long-time running egalitarian hackerspace with a radical open door policy. Noisebridge provides access to all members of the community and for a broad range of activities and relies on members to screen individuals who enter the space. At Noisebridge we want to ensure safety and security to members and our community at large, this project aims to implement systems and processes that restrict access to individuals that are part of Noisebridge, or have been vouched for by a member of Noisebridge.

Previous version of this system have been implemented like Earl, the-bike-shed, and NBCardreader (see Earl, SHED, and Olympus respectively for more details). Earl and the-bike-shed have been largely abandoned after one of the major hardware components "went missing" and has opened a security risk that prevents the system from being re-instated. Olympus has mostly replaced the the-bike-shed with some functionality still work in progress (see Olympus#Wants_&_Future_Directions for more details).

The primary intent of this project is to update the software and hardware interfacing for the main entrance to Noisebridge at its current location, 272 Capp Street, San Francisco, CA, and make the code, interfacing, and setup easy to maintain and hack on (not hack in). Secondary benefits for this project are building community involvement and creating a future hacking platform.


Overview[edit | edit source]

The project will be split into 3 phases. In the first phase, the focus will be on getting a solidly working door access system for the main entrance to Noisebridge. The second phase goal is to make the door access system deployable so it can be implemented on internal doors within the Noisebridge space. This might be the sewing room, 3D print room, etc. The third and last phase it to make the access system available through a mobile app.


Phase I Goals[edit | edit source]

  • Refactor the existing code and make extensible to additional hardware implementations
  • Build an interface in the main function for integrating with multiple hardware components
  • Enforce logging from integrated hardware and software components
  • Develop a unit testing process
  • Develop a hardware testing process
  • Develop a process for implementing new interfaces (e.g., LED light controllers, music controllers, motions sensors, etc.)

Phase II Goals (SHED 2.0)[edit | edit source]

  • Implement multiple access points in Noisebridge (Sewing room, 3D printing room, Electronics room, etc.)
  • Update database to include individual room access
  • Centralize the access database to a single point on the Noisebridge network
  • Centralize access updating to a single station within Noisebridge (aka detach from main entrance access point)

Phase III Goals (SHED 3.0)[edit | edit source]

  • Implement building access through mobile devices (iOS, Android)
  • Implement a cloud access service that generates access codes and syncs Noisebridge DB with Mobile devices
  • Implement access management through admin access on mobile app or from NB Cloud server

Possible Project Names:

  • ADA: Advanced Doorway Access
  • ADA: Adaptable Ddevice Automation
  • NAPSEC: Noisebridge Access and Physical Security Entry Control
  • PHYSACON: Physical Hybrid System for Access Control and Noisebridge

ADA_Project/

├── src/
│ ├── __init__.py
│ ├── ada.py # Main application file
│ ├── config.py # Configuration settings, e.g., logging
│ ├── hardware_interface.py # Base hardware interface
│ ├── hardware/ # Folder for hardware implementations
│ │ ├── __init__.py
│ │ ├── door_sensor.py # Door sensor implementation
│ │ ├── rfid_scanner.py # RFID scanner implementation
│ │ ├── led_screen.py # LED screen implementation
│ │ ├── [other hardware modules]
│ │ └── interfaces/ # Specific interfaces for complex hardware
│ │ ├── __init__.py
│ │ ├── rfid_scanner_interface.py
│ │ └── [other specific interfaces]
│ └── utils/ # Utility modules, e.g., logging
│ ├── __init__.py
│ └── logger.py # Logger utility

├── tests/ # Unit tests for your project
│ ├── __init__.py
│ ├── test_ada.py
│ ├── test_door_sensor.py
│ ├── test_rfid_scanner.py
│ ├── test_led_screen.py
│ └── [other test files]

├── logs/ # Directory for log files (if logging to files)
│ └── ada.log

├── README.md # Project description and instructions
├── requirements.txt # List of project dependencies
└── setup.py # Setup script for installing the project

ADA github repo