From: Erin Date: Fri, 14 Nov 2014 06:21:03 +0000 (-0800) Subject: a website for danny X-Git-Url: http://challenge-bot.com/repos/?p=challenge-bot;a=commitdiff_plain;h=519ca502296190473f58e96ced1ee3edc93b7145 a website for danny --- diff --git a/challenge-bot.com/.gitignore b/challenge-bot.com/.gitignore new file mode 100644 index 0000000..badbc02 --- /dev/null +++ b/challenge-bot.com/.gitignore @@ -0,0 +1,2 @@ +_site +.sass-cache diff --git a/challenge-bot.com/_config.yml b/challenge-bot.com/_config.yml new file mode 100644 index 0000000..f4a57d6 --- /dev/null +++ b/challenge-bot.com/_config.yml @@ -0,0 +1,14 @@ +# Site settings +title: challenge-bot +email: ozzloy@gmail.com +description: > # this means to ignore newlines until "baseurl:" + Learn to make your first robot! For professionals, students, kids -- + anyone who has never made a robot but wants to. The goal of this + class is to *empower* you to modify, create, and explore robotics + *on your own*, even after the class is over. Hundreds of students + have successfully built their first robot in this class. +baseurl: "" # the subpath of your site, e.g. /blog/ +url: "http://challenge-bot.com" # the base hostname & protocol for your site + +# Build settings +markdown: kramdown diff --git a/challenge-bot.com/_sass/_base.scss b/challenge-bot.com/_sass/_base.scss new file mode 100644 index 0000000..d4c178f --- /dev/null +++ b/challenge-bot.com/_sass/_base.scss @@ -0,0 +1,240 @@ +/** + * Reset some basic elements + */ +body, h1, h2, h3, h4, h5, h6, +p, blockquote, pre, hr, +dl, dd, ol, ul, figure { + margin: 0; + padding: 0; +} + + + +/** + * Basic styling + */ +body { + font-family: $base-font-family; + font-size: $base-font-size; + line-height: $base-line-height; + font-weight: 300; + color: $text-color; + background-color: $background-color; + -webkit-text-size-adjust: 100%; +} + + + +/** + * Set `margin-bottom` to maintain vertical rhythm + */ +h1, h2, h3, h4, h5, h6, +p, blockquote, pre, +ul, ol, dl, figure, +%vertical-rhythm { + margin-bottom: $spacing-unit / 2; +} + + + +/** + * Images + */ +img { + max-width: 100%; + vertical-align: middle; +} + + + +/** + * Figures + */ +figure > img { + display: block; +} + +figcaption { + font-size: $small-font-size; +} + + + +/** + * Lists + */ +ul, ol { + margin-left: $spacing-unit; +} + +li { + > ul, + > ol { + margin-bottom: 0; + } +} + + + +/** + * Headings + */ +h1, h2, h3, h4, h5, h6 { + font-weight: 300; + font-family: $special-font; +} + +strong { + font-weight: 800; +} + +h1 { + color: darken($brand-color, 20%); +} + +h2 { + color: darken($brand-color, 15%); +} + +h3 { + color: darken($brand-color, 10%); +} + + + +/** + * Links + */ +a { + color: $brand-color; + font-family: $special-font; + text-decoration: underline; + + /*&:visited { + color: darken($brand-color, 15%); + }*/ + + &:hover { + color: lighten($brand-color, 15%); + text-decoration: none; + } +} + + + +/** + * Blockquotes + */ +blockquote { + color: $grey-color; + border-left: 4px solid $grey-color-light; + padding-left: $spacing-unit / 2; + font-size: 18px; + letter-spacing: -1px; + font-style: italic; + + > :last-child { + margin-bottom: 0; + } +} + + + +/** + * Code formatting + */ +pre, +code { + font-size: 15px; + border: 1px solid $grey-color-light; + border-radius: 3px; + background-color: #eef; +} + +code { + padding: 1px 5px; +} + +pre { + padding: 8px 12px; + overflow-x: scroll; + + > code { + border: 0; + padding-right: 0; + padding-left: 0; + } +} + + + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(800px - (#{$spacing-unit} * 2)); + max-width: calc(800px - (#{$spacing-unit} * 2)); + margin-right: auto; + margin-left: auto; + padding-right: $spacing-unit; + padding-left: $spacing-unit; + @extend %clearfix; + + @include media-query($on-laptop) { + max-width: -webkit-calc(800px - (#{$spacing-unit})); + max-width: calc(800px - (#{$spacing-unit})); + padding-right: $spacing-unit / 2; + padding-left: $spacing-unit / 2; + } +} +.site-header { + .wrapper { + max-width: -webkit-calc(1000px - (#{$spacing-unit} * 2)); + max-width: calc(1000px - (#{$spacing-unit} * 2)); + margin-right: auto; + margin-left: auto; + padding-right: $spacing-unit; + padding-left: $spacing-unit; + @extend %clearfix; + + @include media-query($on-laptop) { + max-width: -webkit-calc(800px - (#{$spacing-unit})); + max-width: calc(800px - (#{$spacing-unit})); + padding-right: $spacing-unit / 2; + padding-left: $spacing-unit / 2; + } + } +} + + + +/** + * Clearfix + */ +%clearfix { + + &:after { + content: ""; + display: table; + clear: both; + } +} + + + +/** + * Icons + */ +.icon { + + > svg { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + + path { + fill: $grey-color; + } + } +} diff --git a/challenge-bot.com/_sass/_layout.scss b/challenge-bot.com/_sass/_layout.scss new file mode 100644 index 0000000..65affb4 --- /dev/null +++ b/challenge-bot.com/_sass/_layout.scss @@ -0,0 +1,241 @@ +/** + * Site header + */ +.site-header { + border-top: 5px solid $grey-color-dark; + border-bottom: 1px solid $grey-color-light; + min-height: 56px; + + // Positioning context for the mobile navigation icon + position: relative; +} + +.site-title { + font-size: 26px; + line-height: 56px; + letter-spacing: -1px; + margin-bottom: 0; + float: left; + margin-right: 20px; + + /*&, + &:visited { + color: $grey-color-dark; + }*/ +} + +.site-nav { + float: right; + line-height: 56px; + + .menu-icon { + display: none; + } + + .page-link { + /*color: $text-color;*/ + line-height: $base-line-height; + font-size: 1.5*$base-font-size; + + // Gaps between nav items, but not on the first one + &:not(:first-child) { + margin-left: 20px; + } + } + + @include media-query($on-palm) { + position: absolute; + top: 9px; + right: 30px; + background-color: $background-color; + border: 1px solid $grey-color-light; + border-radius: 5px; + text-align: right; + + .menu-icon { + display: block; + float: right; + width: 36px; + height: 26px; + line-height: 0; + padding-top: 10px; + text-align: center; + + > svg { + width: 18px; + height: 15px; + + path { + fill: $grey-color-dark; + } + } + } + + .trigger { + clear: both; + display: none; + } + + &:hover .trigger { + display: block; + padding-bottom: 5px; + } + + .page-link { + display: block; + padding: 5px 10px; + } + } +} + + + +/** + * Site footer + */ +.site-footer { + border-top: 1px solid $grey-color-light; + padding: $spacing-unit 0; +} + +.footer-heading { + font-size: 18px; + margin-bottom: $spacing-unit / 2; +} + +.contact-list, +.social-media-list { + list-style: none; + margin-left: 0; +} + +.footer-col-wrapper { + font-size: 15px; + color: $grey-color; + margin-left: -$spacing-unit / 2; + @extend %clearfix; + .text { + font-size: 0.95*$base-font-size; + } +} + +.footer-col { + float: left; + margin-bottom: $spacing-unit / 2; + padding-left: $spacing-unit / 2; +} + +.footer-col-1 { + width: -webkit-calc(35% - (#{$spacing-unit} / 2)); + width: calc(35% - (#{$spacing-unit} / 2)); +} + +.footer-col-2 { + width: -webkit-calc(20% - (#{$spacing-unit} / 2)); + width: calc(20% - (#{$spacing-unit} / 2)); +} + +.footer-col-3 { + width: -webkit-calc(45% - (#{$spacing-unit} / 2)); + width: calc(45% - (#{$spacing-unit} / 2)); +} + +@include media-query($on-laptop) { + .footer-col-1, + .footer-col-2 { + width: -webkit-calc(50% - (#{$spacing-unit} / 2)); + width: calc(50% - (#{$spacing-unit} / 2)); + } + + .footer-col-3 { + width: -webkit-calc(100% - (#{$spacing-unit} / 2)); + width: calc(100% - (#{$spacing-unit} / 2)); + } +} + +@include media-query($on-palm) { + .footer-col { + float: none; + width: -webkit-calc(100% - (#{$spacing-unit} / 2)); + width: calc(100% - (#{$spacing-unit} / 2)); + } +} + + + +/** + * Page content + */ +.page-content { + padding: $spacing-unit 0; +} + +.page-heading { + font-size: 20px; +} + +.post-list { + margin-left: 0; + list-style: none; + + > li { + margin-bottom: $spacing-unit; + } +} + +.post-meta { + font-size: $small-font-size; + color: $grey-color; +} + +.post-link { + display: block; + font-size: 24px; +} + + + +/** + * Posts + */ +.post-header { + margin-bottom: $spacing-unit; +} + +.post-title { + font-size: 42px; + letter-spacing: -1px; + line-height: 1; + + @include media-query($on-laptop) { + font-size: 36px; + } +} + +.post-content { + margin-bottom: $spacing-unit; + + h2 { + font-size: 32px; + + @include media-query($on-laptop) { + font-size: 28px; + } + } + + h3 { + font-size: 26px; + + @include media-query($on-laptop) { + font-size: 22px; + } + } + + h4 { + font-size: 20px; + + @include media-query($on-laptop) { + font-size: 18px; + } + } +} diff --git a/challenge-bot.com/_sass/_syntax-highlighting.scss b/challenge-bot.com/_sass/_syntax-highlighting.scss new file mode 100644 index 0000000..e36627d --- /dev/null +++ b/challenge-bot.com/_sass/_syntax-highlighting.scss @@ -0,0 +1,67 @@ +/** + * Syntax highlighting styles + */ +.highlight { + background: #fff; + @extend %vertical-rhythm; + + .c { color: #998; font-style: italic } // Comment + .err { color: #a61717; background-color: #e3d2d2 } // Error + .k { font-weight: bold } // Keyword + .o { font-weight: bold } // Operator + .cm { color: #998; font-style: italic } // Comment.Multiline + .cp { color: #999; font-weight: bold } // Comment.Preproc + .c1 { color: #998; font-style: italic } // Comment.Single + .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special + .gd { color: #000; background-color: #fdd } // Generic.Deleted + .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific + .ge { font-style: italic } // Generic.Emph + .gr { color: #a00 } // Generic.Error + .gh { color: #999 } // Generic.Heading + .gi { color: #000; background-color: #dfd } // Generic.Inserted + .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific + .go { color: #888 } // Generic.Output + .gp { color: #555 } // Generic.Prompt + .gs { font-weight: bold } // Generic.Strong + .gu { color: #aaa } // Generic.Subheading + .gt { color: #a00 } // Generic.Traceback + .kc { font-weight: bold } // Keyword.Constant + .kd { font-weight: bold } // Keyword.Declaration + .kp { font-weight: bold } // Keyword.Pseudo + .kr { font-weight: bold } // Keyword.Reserved + .kt { color: #458; font-weight: bold } // Keyword.Type + .m { color: #099 } // Literal.Number + .s { color: #d14 } // Literal.String + .na { color: #008080 } // Name.Attribute + .nb { color: #0086B3 } // Name.Builtin + .nc { color: #458; font-weight: bold } // Name.Class + .no { color: #008080 } // Name.Constant + .ni { color: #800080 } // Name.Entity + .ne { color: #900; font-weight: bold } // Name.Exception + .nf { color: #900; font-weight: bold } // Name.Function + .nn { color: #555 } // Name.Namespace + .nt { color: #000080 } // Name.Tag + .nv { color: #008080 } // Name.Variable + .ow { font-weight: bold } // Operator.Word + .w { color: #bbb } // Text.Whitespace + .mf { color: #099 } // Literal.Number.Float + .mh { color: #099 } // Literal.Number.Hex + .mi { color: #099 } // Literal.Number.Integer + .mo { color: #099 } // Literal.Number.Oct + .sb { color: #d14 } // Literal.String.Backtick + .sc { color: #d14 } // Literal.String.Char + .sd { color: #d14 } // Literal.String.Doc + .s2 { color: #d14 } // Literal.String.Double + .se { color: #d14 } // Literal.String.Escape + .sh { color: #d14 } // Literal.String.Heredoc + .si { color: #d14 } // Literal.String.Interpol + .sx { color: #d14 } // Literal.String.Other + .sr { color: #009926 } // Literal.String.Regex + .s1 { color: #d14 } // Literal.String.Single + .ss { color: #990073 } // Literal.String.Symbol + .bp { color: #999 } // Name.Builtin.Pseudo + .vc { color: #008080 } // Name.Variable.Class + .vg { color: #008080 } // Name.Variable.Global + .vi { color: #008080 } // Name.Variable.Instance + .il { color: #099 } // Literal.Number.Integer.Long +} diff --git a/challenge-bot.com/about.md b/challenge-bot.com/about.md new file mode 100644 index 0000000..b4bde15 --- /dev/null +++ b/challenge-bot.com/about.md @@ -0,0 +1,45 @@ +--- +layout: default +title: about +permalink: /about/ +--- + +## What is challenge-bot? + +The [challenge-bot](http://goo.gl/fHGKyO) course is an 8-hour long + course where we walk you through the process of building your own + robot, which you will keep. The goal of this class is to teach you the + basics of robotics, get you excited about making stuff, and empower you + to go out and create new robotics projects on your own after the class. + +## Team + +### Daniel Watson + +danny + +Daniel simulated a self driving car in a massive online class a few + years ago. Since then he has worked towards making this happen in the + real world. Along the way, he has learned a great deal about + electronics, and mechanics. He now has a very solid understanding of + a very basic robot. + +He rock climbs, and makes robots. + +### Erin Bennett + +erin + +Erin learned to program in a Linguistics class, where she explored text + corpora and drew pictures of finite state machines. A few years later + while programming a remote-controlled robot, she implemented her first + finite state machine. She was so happy, she made up a song about it. + +She enjoys spending her time juggling, sleeping, drawing, designing + webpages, putting together robots, and making computational models of + cognition and language. + +## Contact Us + +For more information or to sign up for classes, contact + [Daniel Watson](ozzloy@gmail.com). diff --git a/challenge-bot.com/css/main.scss b/challenge-bot.com/css/main.scss new file mode 100755 index 0000000..88fe456 --- /dev/null +++ b/challenge-bot.com/css/main.scss @@ -0,0 +1,66 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + + + +// Our variables +$base-font-family: monospace;//Helvetica, Arial, sans-serif; +$special-font: monospace; +$base-font-size: 12px; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.5; + +$spacing-unit: 30px; + +$text-color: #111; +$background-color: #fdfdfd; +$brand-color: #00CC00; +$highlight-color: #00ff00; + +$grey-color: #828282; +$grey-color-light: lighten($grey-color, 40%); +$grey-color-dark: darken($grey-color, 25%); + +$on-palm: 999px; +$on-laptop: 1000px; + +$h1-color: #267F26; +$h2-color: #007F00; + + + +// Using media queries with like this: +// @include media-query($palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "base", + "layout", + "syntax-highlighting" +; + +.main { + width: 90%; +} +.person { + width: 30%; +} + +iframe { + width: 560; + height: 315; +} \ No newline at end of file diff --git a/challenge-bot.com/favicon.ico b/challenge-bot.com/favicon.ico new file mode 100644 index 0000000..cdeffa8 Binary files /dev/null and b/challenge-bot.com/favicon.ico differ diff --git a/challenge-bot.com/images/IMG_20141113_213443.jpg b/challenge-bot.com/images/IMG_20141113_213443.jpg new file mode 100644 index 0000000..9248e98 Binary files /dev/null and b/challenge-bot.com/images/IMG_20141113_213443.jpg differ diff --git a/challenge-bot.com/images/IMG_20141113_213958.jpg b/challenge-bot.com/images/IMG_20141113_213958.jpg new file mode 100644 index 0000000..d15c47f Binary files /dev/null and b/challenge-bot.com/images/IMG_20141113_213958.jpg differ diff --git a/challenge-bot.com/images/bunny.png b/challenge-bot.com/images/bunny.png new file mode 100644 index 0000000..66a1728 Binary files /dev/null and b/challenge-bot.com/images/bunny.png differ diff --git a/challenge-bot.com/images/bunny.svg b/challenge-bot.com/images/bunny.svg new file mode 100644 index 0000000..cb561e8 --- /dev/null +++ b/challenge-bot.com/images/bunny.svg @@ -0,0 +1,145 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenge-bot.com/images/bunny2.svg b/challenge-bot.com/images/bunny2.svg new file mode 100644 index 0000000..77e40df --- /dev/null +++ b/challenge-bot.com/images/bunny2.svg @@ -0,0 +1,1253 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenge-bot.com/images/computerkitty.png b/challenge-bot.com/images/computerkitty.png new file mode 100644 index 0000000..dbae0c6 Binary files /dev/null and b/challenge-bot.com/images/computerkitty.png differ diff --git a/challenge-bot.com/images/computerkitty.svg b/challenge-bot.com/images/computerkitty.svg new file mode 100644 index 0000000..f036064 --- /dev/null +++ b/challenge-bot.com/images/computerkitty.svg @@ -0,0 +1,765 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenge-bot.com/images/danny-bw.png b/challenge-bot.com/images/danny-bw.png new file mode 100644 index 0000000..7a4276b Binary files /dev/null and b/challenge-bot.com/images/danny-bw.png differ diff --git a/challenge-bot.com/images/danny.png b/challenge-bot.com/images/danny.png new file mode 100644 index 0000000..0dad6ac Binary files /dev/null and b/challenge-bot.com/images/danny.png differ diff --git a/challenge-bot.com/images/erin-bw.png b/challenge-bot.com/images/erin-bw.png new file mode 100644 index 0000000..b1c81a6 Binary files /dev/null and b/challenge-bot.com/images/erin-bw.png differ diff --git a/challenge-bot.com/images/erin.png b/challenge-bot.com/images/erin.png new file mode 100644 index 0000000..c139593 Binary files /dev/null and b/challenge-bot.com/images/erin.png differ diff --git a/challenge-bot.com/images/kitty.png b/challenge-bot.com/images/kitty.png new file mode 100644 index 0000000..2807ec9 Binary files /dev/null and b/challenge-bot.com/images/kitty.png differ diff --git a/challenge-bot.com/images/kitty.svg b/challenge-bot.com/images/kitty.svg new file mode 100644 index 0000000..db34c33 --- /dev/null +++ b/challenge-bot.com/images/kitty.svg @@ -0,0 +1,752 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenge-bot.com/images/kittybunny.png b/challenge-bot.com/images/kittybunny.png new file mode 100644 index 0000000..4c996d6 Binary files /dev/null and b/challenge-bot.com/images/kittybunny.png differ diff --git a/challenge-bot.com/images/robobunny.png b/challenge-bot.com/images/robobunny.png new file mode 100644 index 0000000..98ea258 Binary files /dev/null and b/challenge-bot.com/images/robobunny.png differ diff --git a/challenge-bot.com/images/robobunny.svg b/challenge-bot.com/images/robobunny.svg new file mode 100644 index 0000000..5d12d02 --- /dev/null +++ b/challenge-bot.com/images/robobunny.svg @@ -0,0 +1,538 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/challenge-bot.com/index.md b/challenge-bot.com/index.md new file mode 100644 index 0000000..2984eb2 --- /dev/null +++ b/challenge-bot.com/index.md @@ -0,0 +1,8 @@ +--- +layout: default +--- + +Sign up for the challenge-bot class by emailing + [Daniel Watson](ozzloy@gmail.com)! + +bunny2.svg diff --git a/challenge-bot.com/source-code.md b/challenge-bot.com/source-code.md new file mode 100644 index 0000000..34ba5c7 --- /dev/null +++ b/challenge-bot.com/source-code.md @@ -0,0 +1,7 @@ +--- +title: source-code +layout: default +--- + +The source code for the challenge-bot is up on + [gitorious](//gitorious.org/ozzloy/challenge-bot). \ No newline at end of file diff --git a/challenge-bot.com/upcoming-classes.md b/challenge-bot.com/upcoming-classes.md new file mode 100644 index 0000000..9c33b97 --- /dev/null +++ b/challenge-bot.com/upcoming-classes.md @@ -0,0 +1,19 @@ +--- +title: upcoming-classes +layout: default +--- + +Sign up for the challenge-bot class by emailing + [Daniel Watson](ozzloy@gmail.com)! + +You can also sign up for + [this Google group](https://groups.google.com/forum/#!forum/challenge-bot-announcements) + to get announcements when new courses are added. + +## November 2014 + +**Session 0**: 2014-11-16 13:00 - 17:00 + ([event page @ Hacker Dojo](http://events.hackerdojo.com/event/5898334455726080-challenge-bot-0)) + +**Session 1**: 2014-11-23 13:00 - 17:00 + ([event page @ Hacker Dojo](http://events.hackerdojo.com/event/5843037724868608-challenge-bot-1)) diff --git a/challenge-bot.com/videos.md b/challenge-bot.com/videos.md new file mode 100644 index 0000000..86a13b9 --- /dev/null +++ b/challenge-bot.com/videos.md @@ -0,0 +1,23 @@ +--- +title: videos +layout: default +--- + +# Videos! + +## challenge-bot in action + + + +The challenge-bot has two autonomous functions: + +1. follow-bot: keep a constant distance from something in front of it +2. the tabletop challenge: wander around a table without falling off + +## instructions for building your challenge-bot + + + +Here are instructions for putting together the kit (version 5df1ea8). + +The challenge-bot course will walk you through all of these steps. diff --git a/challenge-bot.com/what-to-bring.md b/challenge-bot.com/what-to-bring.md new file mode 100644 index 0000000..212460a --- /dev/null +++ b/challenge-bot.com/what-to-bring.md @@ -0,0 +1,23 @@ +--- +layout: default +title: how-to-prepare +--- + +## How do I prepare for the challenge-bot class? + +We will use some software in the challenge-bot class: + +* [openSCAD](//www.openscad.org/downloads) +* [fritzing](//fritzing.org/download/) +* [arduino ide](//arduino.cc/en/Main/Software) + +You can install the software above ahead of time to save time in class, + but we will have this available when you get there. + +## What should I bring to the challenge-bot class? + +Bring your laptop and that's it! Tools and materials are provided at + the class. + +If you don't have a laptop, we might be able to let you borrow one. Just + let us know when you contact us to sign up, and we'll try to help.