diff --git a/images/body-bg.png b/images/body-bg.png new file mode 100644 index 0000000..5e8c4c2 Binary files /dev/null and b/images/body-bg.png differ diff --git a/images/highlight-bg.jpg b/images/highlight-bg.jpg new file mode 100644 index 0000000..355e089 Binary files /dev/null and b/images/highlight-bg.jpg differ diff --git a/images/hr.png b/images/hr.png new file mode 100644 index 0000000..d32f689 Binary files /dev/null and b/images/hr.png differ diff --git a/images/octocat-icon.png b/images/octocat-icon.png new file mode 100644 index 0000000..2406608 Binary files /dev/null and b/images/octocat-icon.png differ diff --git a/images/tar-gz-icon.png b/images/tar-gz-icon.png new file mode 100644 index 0000000..502e67d Binary files /dev/null and b/images/tar-gz-icon.png differ diff --git a/images/zip-icon.png b/images/zip-icon.png new file mode 100644 index 0000000..732aced Binary files /dev/null and b/images/zip-icon.png differ diff --git a/index.html b/index.html index 7632406..a4ba8b3 100644 --- a/index.html +++ b/index.html @@ -1,735 +1,66 @@ - - - - - - - Tobias Weiß - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Tobias Weiß

- -

Web Developer, Rubyist, Dad.

- -
- -
- -
-
-
- - - -
- -
- -

JSON-encoded Annotations for Your ActiveRecord Model

- - -

- - - - - - - - - - - - - - -

- -
- - -

A quick and dirty module to add json-encoded annotations to your model.

- -
-
- -
- - - - -
- - -
- -
- -

Kilometeranzeige 2012

- - -

- - - - - - - - - - - - - - -

- -
- - -

- -
    -
  • Mai, Tempelhof, 35 km
  • -
  • Mai, RTF Havelrunde, 120 km
  • -
  • Juni, Sprockhövel - Duisburg, 90 km
  • -
  • Juni, Duisburg - Lünen, 110 km
  • -
  • Juli, Montalivet, 82 km
  • -
  • Juli, Montalivet, 21 km
  • -
  • Juli, Montalivet, 93 km
  • -
  • Juli, Montalivet, 89 km
  • -
  • August, Tempelhof, 42 km
  • -
- - -

Summe: 682 km

-
- - - - -
- - -
- -
- -

Go Your Own Way

- - -

- - - - - - - - - - - - - - -

- -
+ + + + + + + + + + twei55.github.io by twei55 + + +
+
-

Good ol’ times. NOFX covers Fleetwood Mac.

+
+

twei55.github.io

+

Web Developer, Rubyist, Environmental Scientist, Dad.

+
- +
+ View on GitHub +
-
- - +
+
+

+Welcome to GitHub Pages.

-
- - -
- -
- -

Encoding Issue When Migrating From Rails 2.3 to Rails 3.2

- - -

- - - - - - - - - - - - - - -

- -
- - -

I thought, I had a basic understanding of how character encoding works. Nonetheless I get frequently confronted with a new issue that drives me crazy. This time it was the different behaviour of Ruby 1.9.2 and 1.8.7, in particular when getting strings with special characters from a MySQL database (we have a few of them in German).

- -

I am migrating an application running on Rails 2.3.8 to Rails 3.2.2, using Ruby 1.9.2 instead of 1.8.7 and the improved mysql2 instead of the old mysql gem.

+

This automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new gh-pages branch locally. If you’re using GitHub Desktop, simply sync your repository and you’ll see the new branch.

-

I have some data in a MySQL database that was - more or less accidentally - encoded in latin-1. I imported this data from my production database into my development database using mysqldump.

+

+Designer Templates

-

My Rails 2.3.8 application displayed special characters from this data correctly within a HTML page, whereby the Rails 3.2.2 application doesn´t.

+

We’ve crafted some handsome templates for you to use. Go ahead and click 'Continue to layouts' to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved.

-

I checked the whole encoding chain, database configuration and application settings, and set all encodings and charsets to UTF-8. Nonetheless the problem remained.

+

+Creating pages manually

-

The solution was to set the flag –default-character-set correctly when exporting the data from the production database with mysqldump (data only):

+

If you prefer to not use the automatic generator, push a branch named gh-pages to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.

-
1
-
mysqldump --skip-triggers --compact --no-create-info -u root -p --default-character-set=latin-1 db_production > my_data.sql
-
+

+Authors and Contributors

+

You can @mention a GitHub username to generate a link to their profile. The resulting <a> element will link to the contributor’s GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.

-

After importing the data the following way, everything went fine:

+

+Support or Contact

-
1
-
mysql -u user -p --default-character-set=utf-8 db_development > my_data.sql
-
+

Having trouble with Pages? Check out our documentation or contact support and we’ll help you sort it out.

+ + -

Nevertheless I have not yet discovered why the behaviour of Rails 3.2.2 / Ruby 1.9.2 is different from Rails 2.3.8 / Ruby 1.8.7 in this case.

-
- - - - -
- - -
- -
- -

Radiant CMS & Friendly_id

- - -

- - - - - - - - - - - - - -

- -
- - -

I use Radiant CMS for some applications, still running on Rails 2.3.x and wanted to make use of friendly_id in one of my models within a Radiant extension. So I added the following lines to my Gemfile:

- -
1
-2
-
# I picked a version that requires active_support >= 2.2
-gem "friendly_id", "3.0.6"
-
- - -

Next step is to run the friendly_id generator, which returned an error:

- -
1
-2
-
./script/generate friendly_id
-Couldn''t find ''friendly_id'' generator
-
- - -

My solution to this problem was to copy the folder GEM_PATH/friendly_id/generators/friendly_id to RAILS_ROOT/lb/generators.

- -

Afterwards I added a line to script/generate:

- -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-
class Rails::Generator::Base
-  def self.use_application_sources!
-      reset_sources
-      sources << Rails::Generator::PathSource.new(:builtin, "#{RADIANT_ROOT}/lib/generators")
-      plugins_path = File.expand_path(File.join(RAILS_ROOT, %w(vendor plugins)))sources << Rails::Generator::PathSource.new(:"plugins (vendor/plugins)", "#{plugins_path}/*/**/{,rails_}generators")
-
-      # Add other custom generators
-      sources << Rails::Generator::PathSource.new(:builtin, "#{RAILS_ROOT}/lib/generators")
-  end
-end
-
- - -

UPDATE: -The easiest way to get around this issue is to copy create_slugs.rb to your migration and friendly_id to your lib/tasks folder.

-
- - - - -
- - -
- -
- -

Ruby Singleton Logger

- - -

- - - - - - - - - - - - - - -

- -
- - -

I have been working on a module lately that parses a XML file structure into a hash and writes it to a database. The module includes some classes and methods and I needed a central logger class.

- -

I created a class that inherits from Ruby´s Logger class.

- -
1
-2
-
class MyLogger < Logger
-end
-
- - -

I decided to make this class a Singleton. Singleton is a design pattern that restricts instantiation of a class to only one instance that is globally available. This can e.g. be done by simply including the Singleton Module.

- -
1
-2
-3
-
class MyLogger < Logger
-  include Singleton
-end
-
- - -

I wanted this class to be able to either log to STDOUT or a file. The standard way to do this, is to pass the log device to the Logger class during instantiation. The problem is that the singleton module creates the singleton instance before it is actually needed, called eager instantiation. In order to tell the singleton instance to which log device it should log to, we need to set a member variable in the initialize method. Secondly we need a method to reassign the log device.

- -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-
class MyLogger < Logger
-  include Singleton
-  LOG_FILE = File.open("myfile.log","a")
-  def initialize
-      @logdev = Logger::LogDevice.new(LOG_FILE)
-      @level = INFO
-  end
-  def change_logdev_to_stdout
-      @logdev = Logger::LogDevice.new(STDOUT)
-  end
-end
-
- - -

I could now use the logger methods from everywhere in my code, e.g.:

- -
1
-
MyModule::MyLogger.instance.info("Hello World!")
-
- - -

In order to make things a little bit shorter, I added an additional method to the module:

- -
1
-2
-3
-
def self.logger
-  return MyModule::MyLogger.instance
-end
-
- - -

Logging can now been done from everywhere by calling:

- -
1
-
MyModule::logger.info("Hello Universe!")
-
- -
- - - - -
- - -
- -
- -

How to Get Rid of Bundle Exec

- - -

- - - - - - - - - - - - - - -

- -
- - -

- -
1
-
bundle install --binstubs; export PATH="./bin:$PATH"
-
- -
- - - - -
- - -
- -
- -

Kilometeranzeige 2011

- - -

- - - - - - - - - - - - - - -

- -
- - -

- -
    -
  • Mai, Werder-Fohrde, 50km
  • -
  • Mai, Flughafen Tempelhof, 35km
  • -
  • Juli, Tour de Gironde I, 80 km
  • -
  • Juli, Montalivet - Carcans Plage - Montalivet, 75 km
  • -
  • Juli, Tour de Gironde II, 85 km
  • -
  • Juli, Tour de Gironde III, 90 km
  • -
  • August, Flughafen Tempelhof, 45km
  • -
  • September, BRC Semper Oderbruch, 123km
  • -
- - -

Summe: 583 km

-
- - - - -
- - -
- -
- -

How to Ssh Into Your Pogoplug

- - -

- - - - - - - - - - - - - - -

- -
- - -

- -

I recently had to fix something on my pogoplug attached harddrive. When attaching it to my Mac the hdd was read-only, so I decided to attach it to the pogoplug again and try it using ssh.

- -

To enable SSH, login to http://my.pogoplug.com, navigate to the Settings page, select Security Settings, and from the main pane, enable SSH for your Pogoplug. Choose your own SSH password.

- -

Open up a terminal and login:

- -
1
-
ssh root@192.168.x.x
-
- - -

Go to hdd (in my case):<

- -
1
-
cd /tmp/.cemnt/mnt_sda1
-
- - -

Have fun!

-
- - - - -
- - -
- -
- -

La Femme D´argent

- - -

- - - - - - - - - - - - - - -

- -
- - -

Nice trip back with Air´s “La Femme D´Argent” from the “Moon Safari” album (1998).Live! All time classic!

- - - -
- - - - -
- - -
- - +
- - - - - - - - - - - - - - - - - + diff --git a/javascripts/main.js b/javascripts/main.js new file mode 100644 index 0000000..d8135d3 --- /dev/null +++ b/javascripts/main.js @@ -0,0 +1 @@ +console.log('This would be the main JS file.'); diff --git a/params.json b/params.json new file mode 100644 index 0000000..78d90d1 --- /dev/null +++ b/params.json @@ -0,0 +1,6 @@ +{ + "name": "twei55.github.io", + "tagline": "Web Developer, Rubyist, Environmental Scientist, Dad.", + "body": "### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here [using GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/), select a template crafted by a designer, and publish. After your page is generated, you can check out the new `gh-pages` branch locally. If you’re using GitHub Desktop, simply sync your repository and you’ll see the new branch.\r\n\r\n### Designer Templates\r\nWe’ve crafted some handsome templates for you to use. Go ahead and click 'Continue to layouts' to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved.\r\n\r\n### Creating pages manually\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `` element will link to the contributor’s GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out our [documentation](https://help.github.com/pages) or [contact support](https://github.com/contact) and we’ll help you sort it out.\r\n", + "note": "Don't delete this file! It's used internally to help with page regeneration." +} \ No newline at end of file diff --git a/stylesheets/github-dark.css b/stylesheets/github-dark.css new file mode 100644 index 0000000..3711a0f --- /dev/null +++ b/stylesheets/github-dark.css @@ -0,0 +1,124 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 GitHub, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +.pl-c /* comment */ { + color: #969896; +} + +.pl-c1 /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */, +.pl-s .pl-v /* string variable */ { + color: #0099cd; +} + +.pl-e /* entity */, +.pl-en /* entity.name */ { + color: #9774cb; +} + +.pl-s .pl-s1 /* string source */, +.pl-smi /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ { + color: #ddd; +} + +.pl-ent /* entity.name.tag */ { + color: #7bcc72; +} + +.pl-k /* keyword, storage, storage.type */ { + color: #cc2372; +} + +.pl-pds /* punctuation.definition.string, string.regexp.character-class */, +.pl-s /* string */, +.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */, +.pl-sr /* string.regexp */, +.pl-sr .pl-cce /* string.regexp constant.character.escape */, +.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */, +.pl-sr .pl-sre /* string.regexp source.ruby.embedded */ { + color: #3c66e2; +} + +.pl-v /* variable */ { + color: #fb8764; +} + +.pl-id /* invalid.deprecated */ { + color: #e63525; +} + +.pl-ii /* invalid.illegal */ { + background-color: #e63525; + color: #f8f8f8; +} + +.pl-sr .pl-cce /* string.regexp constant.character.escape */ { + color: #7bcc72; + font-weight: bold; +} + +.pl-ml /* markup.list */ { + color: #c26b2b; +} + +.pl-mh /* markup.heading */, +.pl-mh .pl-en /* markup.heading entity.name */, +.pl-ms /* meta.separator */ { + color: #264ec5; + font-weight: bold; +} + +.pl-mq /* markup.quote */ { + color: #00acac; +} + +.pl-mi /* markup.italic */ { + color: #ddd; + font-style: italic; +} + +.pl-mb /* markup.bold */ { + color: #ddd; + font-weight: bold; +} + +.pl-md /* markup.deleted, meta.diff.header.from-file */ { + background-color: #ffecec; + color: #bd2c00; +} + +.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ { + background-color: #eaffea; + color: #55a532; +} + +.pl-mdr /* meta.diff.range */ { + color: #9774cb; + font-weight: bold; +} + +.pl-mo /* meta.output */ { + color: #264ec5; +} + diff --git a/stylesheets/print.css b/stylesheets/print.css new file mode 100644 index 0000000..4b19b67 --- /dev/null +++ b/stylesheets/print.css @@ -0,0 +1,228 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + padding: 0; + margin: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; + border: 0; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +body { + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 13px; + line-height: 1.5; + color: #000; +} + +a { + font-weight: bold; + color: #d5000d; +} + +header { + padding-top: 35px; + padding-bottom: 10px; +} + +header h1 { + font-size: 48px; + font-weight: bold; + line-height: 1.2; + color: #303030; + letter-spacing: -1px; +} + +header h2 { + font-size: 24px; + font-weight: normal; + line-height: 1.3; + color: #aaa; + letter-spacing: -1px; +} +#downloads { + display: none; +} +#main_content { + padding-top: 20px; +} + +code, pre { + margin-bottom: 30px; + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; + font-size: 12px; + color: #222; +} + +code { + padding: 0 3px; +} + +pre { + padding: 20px; + overflow: auto; + border: solid 1px #ddd; +} +pre code { + padding: 0; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +table { + width: 100%; + border: 1px solid #ebebeb; +} + +th { + font-weight: 500; +} + +td { + font-weight: 300; + text-align: center; + border: 1px solid #ebebeb; +} + +form { + padding: 20px; + background: #f2f2f2; + +} + + +/* GENERAL ELEMENT TYPE STYLES */ + +h1 { + font-size: 2.8em; +} + +h2 { + margin-bottom: 8px; + font-size: 22px; + font-weight: bold; + color: #303030; +} + +h3 { + margin-bottom: 8px; + font-size: 18px; + font-weight: bold; + color: #d5000d; +} + +h4 { + font-size: 16px; + font-weight: bold; + color: #303030; +} + +h5 { + font-size: 1em; + color: #303030; +} + +h6 { + font-size: .8em; + color: #303030; +} + +p { + margin-bottom: 20px; + font-weight: 300; +} + +a { + text-decoration: none; +} + +p a { + font-weight: 400; +} + +blockquote { + padding: 0 0 0 30px; + margin-bottom: 20px; + font-size: 1.6em; + border-left: 10px solid #e9e9e9; +} + +ul li { + list-style-position: inside; + list-style: disc; + padding-left: 20px; +} + +ol li { + list-style-position: inside; + list-style: decimal; + padding-left: 3px; +} + +dl dd { + font-style: italic; + font-weight: 100; +} + +footer { + padding-top: 20px; + padding-bottom: 30px; + margin-top: 40px; + font-size: 13px; + color: #aaa; +} + +footer a { + color: #666; +} + +/* MISC */ +.clearfix:after { + display: block; + height: 0; + clear: both; + visibility: hidden; + content: '.'; +} + +.clearfix {display: inline-block;} +* html .clearfix {height: 1%;} +.clearfix {display: block;} diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css new file mode 100644 index 0000000..d58131a --- /dev/null +++ b/stylesheets/stylesheet.css @@ -0,0 +1,373 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + padding: 0; + margin: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; + border: 0; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-spacing: 0; + border-collapse: collapse; +} + +/* LAYOUT STYLES */ +body { + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 1em; + line-height: 1.5; + color: #6d6d6d; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); + background: #e7e7e7 url(../images/body-bg.png) 0 0 repeat; +} + +a { + color: #d5000d; +} +a:hover { + color: #c5000c; +} + +header { + padding-top: 35px; + padding-bottom: 25px; +} + +header h1 { + font-family: 'Chivo', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 48px; font-weight: 900; + line-height: 1.2; + color: #303030; + letter-spacing: -1px; +} + +header h2 { + font-size: 24px; + font-weight: normal; + line-height: 1.3; + color: #aaa; + letter-spacing: -1px; +} + +#container { + min-height: 595px; + background: transparent url(../images/highlight-bg.jpg) 50% 0 no-repeat; +} + +.inner { + width: 620px; + margin: 0 auto; +} + +#container .inner img { + max-width: 100%; +} + +#downloads { + margin-bottom: 40px; +} + +a.button { + display: block; + float: left; + width: 179px; + padding: 12px 8px 12px 8px; + margin-right: 14px; + font-size: 15px; + font-weight: bold; + line-height: 25px; + color: #303030; + background: #fdfdfd; /* Old browsers */ + background: -moz-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f2f2f2)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* IE10+ */ + background: linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f2f2f2',GradientType=0 ); /* IE6-9 */ + border-top: solid 1px #cbcbcb; + border-right: solid 1px #b7b7b7; + border-bottom: solid 1px #b3b3b3; + border-left: solid 1px #b7b7b7; + border-radius: 30px; + -webkit-box-shadow: 10px 10px 5px #888; + -moz-box-shadow: 10px 10px 5px #888; + box-shadow: 0px 1px 5px #e8e8e8; + -moz-border-radius: 30px; + -webkit-border-radius: 30px; +} +a.button:hover { + background: #fafafa; /* Old browsers */ + background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* IE10+ */ + background: linear-gradient(top, #fdfdfd 0%,#f6f6f6, 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */ + border-top: solid 1px #b7b7b7; + border-right: solid 1px #b3b3b3; + border-bottom: solid 1px #b3b3b3; + border-left: solid 1px #b3b3b3; +} + +a.button span { + display: block; + height: 23px; + padding-left: 50px; +} + +#download-zip span { + background: transparent url(../images/zip-icon.png) 12px 50% no-repeat; +} +#download-tar-gz span { + background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat; +} +#view-on-github span { + background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat; +} +#view-on-github { + margin-right: 0; +} + +code, pre { + margin-bottom: 30px; + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; + font-size: 14px; + color: #222; +} + +code { + padding: 0 3px; + background-color: #f2f2f2; + border: solid 1px #ddd; +} + +pre { + padding: 20px; + overflow: auto; + color: #f2f2f2; + text-shadow: none; + background: #303030; +} +pre code { + padding: 0; + color: #f2f2f2; + background-color: #303030; + border: none; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +hr { + height: 1px; + padding-bottom: 1em; + margin-top: 1em; + line-height: 1px; + background: transparent url('../images/hr.png') 50% 0 no-repeat; + border: none; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +table { + width: 100%; + border: 1px solid #ebebeb; +} + +th { + font-weight: 500; +} + +td { + font-weight: 300; + text-align: center; + border: 1px solid #ebebeb; +} + +form { + padding: 20px; + background: #f2f2f2; + +} + + +/* GENERAL ELEMENT TYPE STYLES */ + +h1 { + font-size: 32px; +} + +h2 { + margin-bottom: 8px; + font-size: 22px; + font-weight: bold; + color: #303030; +} + +h3 { + margin-bottom: 8px; + font-size: 18px; + font-weight: bold; + color: #d5000d; +} + +h4 { + font-size: 16px; + font-weight: bold; + color: #303030; +} + +h5 { + font-size: 1em; + color: #303030; +} + +h6 { + font-size: .8em; + color: #303030; +} + +p { + margin-bottom: 20px; + font-weight: 300; +} + +a { + text-decoration: none; +} + +p a { + font-weight: 400; +} + +blockquote { + padding: 0 0 0 30px; + margin-bottom: 20px; + font-size: 1.6em; + border-left: 10px solid #e9e9e9; +} + +ul li { + list-style-position: inside; + list-style: disc; + padding-left: 20px; +} + +ol li { + list-style-position: inside; + list-style: decimal; + padding-left: 3px; +} + +dl dt { + color: #303030; +} + +footer { + padding-top: 20px; + padding-bottom: 30px; + margin-top: 40px; + font-size: 13px; + color: #aaa; + background: transparent url('../images/hr.png') 0 0 no-repeat; +} + +footer a { + color: #666; +} +footer a:hover { + color: #444; +} + +/* MISC */ +.clearfix:after { + display: block; + height: 0; + clear: both; + visibility: hidden; + content: '.'; +} + +.clearfix {display: inline-block;} +* html .clearfix {height: 1%;} +.clearfix {display: block;} + +/* #Media Queries +================================================== */ + +/* Smaller than standard 960 (devices and browsers) */ +@media only screen and (max-width: 959px) { } + +/* Tablet Portrait size to standard 960 (devices and browsers) */ +@media only screen and (min-width: 768px) and (max-width: 959px) { } + +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { + header { + padding-top: 10px; + padding-bottom: 10px; + } + #downloads { + margin-bottom: 25px; + } + #download-zip, #download-tar-gz { + display: none; + } + .inner { + width: 94%; + margin: 0 auto; + } +} + +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +@media only screen and (min-width: 480px) and (max-width: 767px) { } + +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ +@media only screen and (max-width: 479px) { }