This is a NextJS app that will automatically generate a portfolio website from any users public github repositories
yarn install to install dependancies.env file containing PAT=GITHUB_TOKEN replacing GITHUB_TOKEN with a github personal access tokenAn SSH Certificate Authority with a simple web interface and easy-to-use command line tool
SSH_KEY, JWT_PRIVATE, JWT_PUBLIC, DOMAIN, and DATABASE_URL
yarn start the servergo install github.com/sshca/sshca/sshca-client@latest
CertificateFile /tmp/sshca-key.pub to ~/.ssh/config
sshca-client login
git clone https://github.com/sshca/sshca.gitSSH_KEY, JWT_PRIVATE, JWT_PUBLIC, DOMAIN, and DATABASE_URL
yarn in server and web directories)yarn build Note: NODE_ENV must be set!yarn start
yarn start
This is a tool used to parse iCal files with swift
import iCalParser
let cal = try iCalParser.parseIcal(data: """
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:uid1@example.com
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
GEO:48.85299;2.36885
END:VEVENT
END:VCALENDAR
""")
// Prints "Bastille Day Party"
print(cal.events.first!.SUMMARY)Javascript library for interacting with FTC robots
Add to your project: npm install robocol
Current Features:
import { Robot, RobotEvent } from "robocol";
const robot = new Robot();
robot.connect();
robot.on(RobotEvent.TELEMETRY, console.log);import { GamepadMessage, Robot } from "robocol";
const allReleased = {
left_stick_x: 0,
left_stick_y: 0,
right_stick_x: 0,
right_stick_y: 0,
dpad_up: false,
dpad_down: false,
dpad_left: false,
dpad_right: false,
a: false,
b: false,
x: false,
y: false,
guide: false,
start: false,
back: false,
left_bumper: false,
right_bumper: false,
left_stick_button: false,
right_stick_button: false,
left_trigger: 0,
right_trigger: 0,
updatedAt: 0,
};
const aPressed = { ...allReleased, a: true };
const robot = new Robot();
robot.connect();
// Start pressing A every second after initial 0.5 second delay
setTimeout(() => {
setInterval(() => {
robot.send(new GamepadMessage(0, aPressed, 1));
}, 1000);
}, 500);
// Start releasing A every second in order to alternate
setInterval(() => {
robot.send(new GamepadMessage(0, allReleased, 1));
}, 1000);import { CommandMessage, Robot, RobotCommand, RobotEvent } from "robocol";
const robot = new Robot();
robot.connect();
robot.on(RobotEvent.OPMODES_LIST, (list) => {
const firstName = list[0].name;
robot.send(
new CommandMessage(
RobotCommand.CMD_INIT_OP_MODE,
0,
false,
Date.now(),
firstName
)
);
setTimeout(() => {
robot.send(
new CommandMessage(
RobotCommand.CMD_RUN_OP_MODE,
0,
false,
Date.now(),
firstName
)
);
}, 500);
});This is meant to be a project to help teams that have team members quanatined but still wish to be able to host driver practice remotely. It allows a driver to control the robot remotely, from another location.