Tonight, we'll be running through Stripe's Capture The Flag (CTF) Challenge. :)
Stripe's CTF basically gives you some hands-on playtime with interesting problems. Your goal is to solve the problems to the best of your ability.
It's fairly beginner friendly, at least for the first level or two. But don't worry if you don't feel up to it, we have some other exercises for you that are even more suitable for beginners.
If you want to jump right in, head on over to the Stripe-CTF Challenge page and get started.
You should have and know the following:
-
A Linux-Based laptop (a Mac will work) with Ruby and Git installed.
-
Beginner level knowledge of Ruby. For level0, you should understand loops. Take a look at the code for level0 to see if you understand. If not, feel free to ask us.
We'll try to get you paired up with someone.
- Open your Terminal / Console
- Type ruby -v
- If the response is "Command not found," you don't have Ruby installed. You can use Nitrous.io instead.
You can use Nitrous.io, which will give you an in-browser Terminal/Console on a Linux based machine. It also comes with Ruby pre-installed.
- Open your Terminal / Console
- Type git
- If the response is "Command not found," you don't have Git installed. You can use Nitrous.io instead.
You can use Nitrous.io, which will give you an in-browser Terminal/Console on a Linux based machine. It also comes with Ruby pre-installed.
You should understand
- git clone
- git commit
- git push
Or at least not be afraid to type in the commands that Stripe gives you. ;) You can pretty much copy and paste what Stripe says, and you'll be okay.
You can go through this free, interactive run-through of Git by CodeSchool. It should take about 15-20 minutes, then you should be good to go.
You can use Nitrous.io, which will give you an in-browser Terminal/Console on a Linux based machine. It also comes with Ruby pre-installed.
Okay, technically, you should understand, or be ready to Google:
- That File.read() opens a file, and returns a string
- What the #split method does
- What the #gsub method does
- What the #include method does
- What the #downcase method does
- That the last statement in an if block gets returned as the result of the if statement, just like how a method returns the value of the last statement, without needing you to say "return my_value"
You can find all of this information by Googling for it (e.g. Google for "ruby include?").
That's okay. We've got some other fun stuff for you to do.
If you want to learn the basics of Ruby in a fun way, we suggest the following:
-
Run through the Ruby Primer at RubyMonk.com.
-
Try Ruby Warrior, which is an in-browser game where you write Ruby to maneuver a game and pass levels. (Please be kind to your neighbours and turn the sound off, though. ;)
-
If you want to try some coding challenges,
Beginner level should be okay. We'd suggest trying it, and if you have questions, ask a neighbour or come and find one of the organizers.
Head on over to http://stripe-ctf.com, and sign up. That site will give you instructions on what to do next.
If you want some other exercises / challenges to do, give some of these a try:
- http://rubeque.com/
- http://projecteuler.net/
- https://www.hackerrank.com/
- https://www.codeeval.com/
- http://www.hackermeter.com/
If you just want to learn some more Ruby, you can try rubymonk.com or Ruby Warrior.
Not a problem. Please do one of the following:
-
Come and find an organizer. (If we're with someone, maybe just come over, tap us on the shoulder and ask if we can come over after we're done… sometimes, it's easy to get wrapped up helping someone, so this will help us manage our time.)
-
If you want help with a Stripe-CTF solution, visit their IRC chat room
-
You can also try asking a neighbor. Even if you don't know them, we're friendly people. :)
Most importantly, have fun tonight! Feel free to holler if you have any questions.