Skip to content

Commit

Permalink
Website update
Browse files Browse the repository at this point in the history
* Moved about OpenRC content to main OpenRC page (also improved said content)
* Added a custom 404 page (the one GitHub uses by default doesn't have a link to our homepage)
* Added a page that goes into detail about the legality of both OpenRC and it's stock mode.
* Added a page to document the secure Vuforia storage feature
  • Loading branch information
NoahAndrews committed Mar 7, 2018
1 parent 1d36f23 commit 56440fa
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 15 deletions.
14 changes: 14 additions & 0 deletions 404.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
permalink: /404.html
---

## Unable to find the requested page

This isn't a very big website, so it shouldn't be hard to find the content you're looking for.

[Take me to the OpenFTC homepage](http://openftc.org)


---

**404 Error**
21 changes: 19 additions & 2 deletions OpenRC/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
# OpenRC

[About OpenRC](about)
[OpenRC](https://github.com/OpenFTC/OpenRC) is a modified version of the ftc_app Software Development Kit
(SDK), maintained by members of the OpenFTC community. The goal of OpenRC is to improve the development
experience for teams, while providing a quick-and-easy path to install a competition-legal version of the
app. See our page on [competition legality](legality).

In addition to the [normal version of OpenRC](https://github.com/OpenFTC/OpenRC), we also have a
[Turbo version](https://github.com/OpenFTC/OpenRC-turbo). **Both** versions are significantly faster to build
than the official app (as of version 3.6), but the Turbo version takes the speed improvement much further,
and completely strips out the Blocks and OnBotJava features, that most Android Studio users don't use.

When a new release of the official SDK comes out, both OpenRC and OpenRC-turbo will be updated to it within
a week.

***********************

[OpenRC legality for official competitions](legality)

[Switching to OpenRC](switching)

[Updating to a new version of OpenRC](updating)

[Using the stock build variant](buildvariants)
[Using the competition-legal stock build variant](buildvariants)

[Using the secure Vuforia key storage feature](vuforia-key)

[Benchmarks](benchmarks)
11 changes: 0 additions & 11 deletions OpenRC/about.md

This file was deleted.

39 changes: 39 additions & 0 deletions OpenRC/legality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Is OpenRC legal to use in competition?

In a word, no. However, there is more to the story. OpenRC's build speed improvements and
added features are mostly useful when you're developing your OpModes at team meetings.
It's not actually even that useful when you're at a competition.

### Our solution

While OpenRC was originally legal for competition use, we recognized that the GDC has the
power to change that, and developed a feature called [stock mode](buildvariants) that lets
you build a competition-legal version of the app from within your OpenRC Android Studio
project. [You can read its documentation here](buildvariants).

### Why stock mode is legal

Stock mode is possible because of the exact wording of
[the ruling](https://ftcforum.usfirst.org/forum/i-first-i-tech-challenge-game-q-and-a-forum-this-is-a-moderated-forum/first-relic-recovery-presented-by-qualcomm-game-q-a-forum/robot-inspection-rules/answers-electrical-materials/50465-control-system-answers?p=63242#post63242),
specifically, this sentence:

> "An unauthorized version of the FTC SDK includes any version of the
SDK that modifies or omits any of the libraries included within the Robot Controller app."

In software development, the term "library" is used for software that your program uses,
but that is not developed as a part of your program. Libraries are maintained separately,
often by a third party.

What this means for the FTC Robot Controller app is that you're free to modify any code
that's provided only in the form of its source code. This would include the `TeamCode`
module (obviously), the `FtcRobotController` module, and all of the Gradle files that tell
Android Studio how everything goes together.

What's not legal to modify is everything in the `libs` folder. This includes all of the `.aar`
and `.jar` files that we used to make many of the modules in OpenRC. This is what makes the regular
OpenRC mode illegal.

The stock mode builds the app from the unmodified `.aar` files in the `libs` folder directly, ignoring the
project modules that are based on them. Even though it's not technically required, we also disable all of
our modifications to the `FtcRobotController` module when stock mode is enabled. The result is an app that's
fully legal for competition use.
40 changes: 40 additions & 0 deletions OpenRC/vuforia-key.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Securely storing your Vuforia key

If you publish your source code publicly on GitHub with your
Vuforia key, you're actually violating the Vuforia Developer
Agreement. The solution to avoid this is to load the Vuforia
key from a non-public file when the app is built.

OpenRC has set up this up for you, so that you just need
to set up the external file and change your Vuforia code to
access the key dynamically.

Note that this **WILL work on the stock build variant** as
well, because we didn't need to modify any of the official
libraries to make this work.

1. In the TeamCode module, you'll find a file called
`vuforia.template.properties`. You need to make a copy
of this file in the same folder, called
`vuforia.properties`.

2. Open up this new copy, and paste your Vuforia key in
between the quotation marks on the bottom line. It
should look like `VUFORIA_KEY="VUFORIAKEYTHATLOOKSLIKEGIBBERISH"`.

3. Change the line where you tell vuforia what your key is
to `parameters.vuforiaLicenseKey = BuildConfig.VUFORIA_KEY`.

a. If you get an error when you try to build the project,
try changing the line to
`parameters.vuforiaLicenseKey = org.firstinspires.teamcode.BuildConfig.VUFORIA_KEY`.
You may have accidentally imported a different `BuildConfig` class.

4. Copy `vuforia.properties` to the TeamCode module on any
other computers that you'll be using for programming.
Remember, the vuforia key won't automatically be synced
between computers any more.

And you're done! `vuforia.properties` is included in the
`.gitignore` file, which means that Git won't try to add it
to your public GitHub repository.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## Our Projects
### Our Projects

[OpenRC](OpenRC)
### [OpenRC](OpenRC)

0 comments on commit 56440fa

Please sign in to comment.