From 8892b27300c7ca236c69818e9aa35061cc9b5d5c Mon Sep 17 00:00:00 2001 From: Nam Vu Date: Mon, 10 Oct 2016 13:09:58 +0700 Subject: [PATCH] Create gh-pages branch via GitHub --- images/body-bg.jpg | Bin 0 -> 2281 bytes images/download-button.png | Bin 0 -> 27151 bytes images/github-button.png | Bin 0 -> 1550 bytes images/header-bg.jpg | Bin 0 -> 9461 bytes images/highlight-bg.jpg | Bin 0 -> 30991 bytes images/sidebar-bg.jpg | Bin 0 -> 2270 bytes index.html | 147 ++++++ javascripts/main.js | 1 + params.json | 6 + stylesheets/github-light.css | 124 +++++ stylesheets/print.css | 228 +++++++++ stylesheets/stylesheet.css | 881 +++++++++++++++++++++++++++++++++++ 12 files changed, 1387 insertions(+) create mode 100644 images/body-bg.jpg create mode 100644 images/download-button.png create mode 100644 images/github-button.png create mode 100644 images/header-bg.jpg create mode 100644 images/highlight-bg.jpg create mode 100644 images/sidebar-bg.jpg create mode 100644 index.html create mode 100644 javascripts/main.js create mode 100644 params.json create mode 100644 stylesheets/github-light.css create mode 100644 stylesheets/print.css create mode 100644 stylesheets/stylesheet.css diff --git a/images/body-bg.jpg b/images/body-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..719fb8863848157e6bf4c126884f4d21320a9843 GIT binary patch literal 2281 zcmb_dc~sKd7XBfKk{aM}4YUNwOmiL*a~9Lo>vYX-PB~rCr#@#(ECnuRglTFPV5ZXK zaC0hq*2>I`FpIR3G|DnDt?Xi%1Cj$zt99?{pZmvK?>lRqv-eqh@Ad7o&sv}Cnd~)y z@N)Nb2S6YI0Ie=S_5vUPa(@B5YJnlEI~XDlS%W-O{wttR1qDR~1t<)*ZXFD!{3F(i zfWTm|JVYJ_g~C*nU`i_R^{arxzXpCkl)rgD=Kkf$x&fpj&D z7o}-o?drLQx~pinr&azVoa>1oRRS)+jCc9%-Y2_G`nWwddsGzQ`jl<8iymSaU7Fue zkFFyG1o>>|3`5n#Mf`|b&TJdSRDh_+$A6?O^#aHdi#?qXB44p z@p#%b`uppHoB&1DAQmx&ZphbWq`yCw8>@Nbs^#(QJ*ES*%+@c-xJB$giLN&i7Vc&CY7J@c8pOmy?+`wr{UxQDndz zem$8n-5DMJ^Rf(pjL=<%I#PTg*Mc(|cxXDLR`bO52gO}?rR70YvEhs4-o6F)bK|C( z+Tx!x0VRwNGB#xRrRE{7M_Im2O%%>HEbM0BgGyns`r^$bH1WuumH&nXn5T<2!lRw^&*)U*+QUb(w83f@@oD zi%h%&g0WS#?NpITZ=1wClm9M`Zht}s2rwGiRvcxlHEkiX>5BjF1*Hbrg@kavjo2t~ z;|3Dyk+lPh`7p~u?TUujg4=|_O082!D*A(6_B5$?VLGf6i2&`HEQyF?|@K|-e4NDIqg!x-AlJaJgVZ3v-y}I9EPX`4%FxNv&CXS`AlUw2ahgd zdYhT)}jB_uMwd#Qt$O1Wya8 z99o}>7u>sR;4!lN@HL5I8nA7tI1Y1&uAw4M$hGEsY~62nD%YLToP8YebUL#KD-rxX%}i z1h#Qc2H|aUSds|qnH~wb;bxSzl`5%g`OyE-gq0RN{)|G4TE^r^puh4QOIDI|{0-g+ z0AZ%PZw=(PTLTnBy%2JCU*S$u4g10|ZjDI^vqX-)DcU)UJ6jrmb}daFVscFL z`F18+1_aE>0Afl|>b5r@SUVRAnhLaz$$k;IK@}_M$cCsCS*L9z*@2-X|#?{kp#|s{^j`d4*kC@7|JO& z?pUGFGVsugh#AXJM=YvVuB(ft_fiz9oo7qty`J2kTRSj=tOAQ-N2p5i>VD?MKHiv3 zflC&}E7*ZSeRh55Hvcyv6aEI6E5nZd<<%bz@Aqi)vU|NO^3Ffle1I6jJgb|HIp-Rk z>KEl>Qc-*#HIHbcm1$KEHKm=kS{+7Yzi23K@IO(8?No#WfekUDxu1)R8s#%Vvz5Aa zI+ynDozn4kEQ2ppPG#nH(JlNpHGbi&M2;@@g^3+NmTs>&TUAX{%uetXgRn=P?d@pV zYMX3wXmT$KC|jrIklPG+{3VKbOIs86*1<=3Pz`LuHBL{gQ`?NznGZ&#n7w^R zzIc~p8BhbP6s=nJ=d9<0&M%2XDDo|A5X%v?@61 literal 0 HcmV?d00001 diff --git a/images/download-button.png b/images/download-button.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ffb3a891788af5ceff835cde7d305d723aaf21 GIT binary patch literal 27151 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 t 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 az+X*J7T+u-ZHxU^ZlxJl66tU<@_zu4*#OM| literal 0 HcmV?d00001 diff --git a/images/highlight-bg.jpg b/images/highlight-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..355e089b2d7d7a6f78caa818e302c8a15c6c0e3c GIT binary patch literal 30991 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 literal 0 HcmV?d00001 diff --git a/images/sidebar-bg.jpg b/images/sidebar-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..536ead91e35a69e8e8e2c28021be8ae4eef42b18 GIT binary patch literal 2270 zcmcgtdpz4&7XKv?NhL_U(|Se~m7-ylv|5xjs1ijJwkYw~+3HR-m|6xg-tR}KdXrW? zI!#iYPwBKpy;TTPt6ht38Sz-1iBO~3Ow!K!?CUe1{b%=kKlh$+5pL)fzyB-LP;nSwTTrO-V^%6zZ79nHA?WI&{pCR5DWL`IUrWEABBq-zpvwlpS#%#=KaQ=!p8X5 z)N$}J_G)Px<;^Pyh?zIDp4Gg9gARSy3MB?s<9L0;6JkJi0dmwVER7h>LO`tClDU;^ z@W@i?W0nTyFCUm)^XuQ>V9HU{klw%kP0Z}8vTxy-W$>oi+KFY-D84RD+ZcTw%(3fq zxP4Vj;b_*bQx2az^#wI7=ZANIa`{vjY)r`OXpeTU3+SV&PKMaCTky)?t zsU^drHQ50WtCWhdvogixrA;9|ul2K+-#k7by(%(tTg2UYBF&XC3INH0q|Y6I{GB`y z+Tf@oihPNl!Y!)*LBIP)!K*!QQSK<3$Ut~eKzcMlzZ<5ub(}hQ>k0o5aqG~#P*1+e z1D(b<0h8}Bmb*1+pJ{lj`W5VuW?0eIBJ&L;oc`*<4Gjj}M115t%ZP7dtI~iS-?GyZ zoZpU3$TjW%NpFSEPa_rgozcZ)A7`uY`_{5;f#j4!{fVIVmARWpeM3A^S_>> zty95wbrfy&=uzK2=wGta3fPyXNsqHn3d`#n6n4fR?dPq2fR93yoAwjDmNF*0mgl3} z;7j1fDg)EJONOqAx_Z!Fk_VyKD@Lbty2H`)nRgbA{ADj&hY}I!a*J-sbQ;`!oEvYn z71*zDsP5shwSby;lX-B=ZlO?7}Q;_TZ(lb~79M$K@Ue zld=~Y2E%pwrf*D6H`#?KcE~w<7WzS#Z3(w_+TE|*{Z)!i$0a+>#c)XD6RJl z&}x8tE*~blc$V~5&Ce{5H#T>1mGjXfE>CMaR8vI-y_&}U9=gX-E7yzKYU{*~zwesK z^7m5~{_c_G;&9|cvapOXbeJ1?wOV`8r2YfcOJ>* zCwu2?&zFq1^$dRSs!l8y#;jRKi=%OxHw$~w%$D3AI}+=Ni>HrVKGq%YnPReVA(B^8 z!n*eyUWxiQ8cYm#FBoZ@wp=&wovP`x8$qv;oSi2Ubg~&4u{b@qc!SVG)@&^1bx5x5 zs#8m|Qm)9&tLaWI8N5Hq)%l-jI3nsHu!RqBm$jT`)yl|BI_tN4Dqoav?)kFK8J zw{J8dXm?>$`wA5-mgrJi6zZJfN5&IuiXxoeHWaQ#Va6}^AHd8JoduOV7O&GF;YtMa zUpY`spkzU-Dty8%9WA;$cU78oiJGCi=roa){(t7c`vSq0kF<9*&&Z2aM>;u{4Q63? vtA!HaK&Ic~GUPov+*4K(&>su=-cJkwg`X-D2y_ZKD*=9Gi}YXowB^OmrRYZ> literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..e1eb88e --- /dev/null +++ b/index.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + Machine learning for software engineers by ZuzooVn + + + +
+
+

Machine learning for software engineers

+

A complete daily plan for studying to become a machine learning engineer.

+ View project on GitHub +
+
+ +
+
+
+

+Top-down learning path: machine learning for software engineers

+ +

Inspired by Google Interview University.

+ +

If you like this project, please give me a star.

+ +

+What is it?

+ +

This is my multi-month study plan for going from mobile developer (self-taught, no CS degree) to machine learning engineer.

+ +

My main goal was to find an approach to studying Machine Learning that is mainly hands-on and abstracts most of the math for the beginner. +This approach is unconventional because it’s the top-down and results-first approach designed for software engineers.

+ +

Please, feel free to make any contributions you feel will make it better.

+ +

+Start Learning +

+ +
+ +

+Why use it?

+ +

I'm following this plan to prepare for my near future job: Machine learning engineer. I've been building the native mobile application (Android/iOS/Blackberry) since 2011. I have a Software Engineering degree, not a Computer Science degree. I have itty bitty of basic knowledge about: Calculus, Linear Algebra, Discrete Mathematics, Probability & Statistics at university. +Think about my interest in machine learning:

+ + + +

I find myself in times of trouble.

+ +

AFAIK, There are two sides to machine learning:

+ +
    +
  • Practical Machine Learning: This is about queries databases, cleaning data, writing scripts to transform data and gluing algorithm and libraries together and writing custom code to squeeze reliable answers from data to satisfy difficult and ill defined questions. It’s the mess of reality.
  • +
  • Theoretical Machine Learning: This is about math and abstraction and idealized scenarios and limits and beauty and informing what is possible. It is a whole lot neater and cleaner and removed from the mess of reality.
  • +
+ +

I think the best way for practice-focused methodology is something like 'practice — learning — practice', that means where students first come with some existing projects with problems and solutions (practice) to get familiar with traditional methods in the area and perhaps also with their methodology. After practicing with some elementary experiences, they can go into the books and study the underlying theory, which serves to guide their future advanced practice and will enhance their toolbox of solving practical problems. Studying theory also further improves their understanding on the elementary experiences, and will help them acquire advanced experiences more quickly.

+ +

It's a long plan. It's going to take me years. If you are familiar with a lot of this already it will take you a lot less time.

+ +

+How to use it

+ +

Everything below is an outline, and you should tackle the items in order from top to bottom.

+ +

I'm using Github's special markdown flavor, including tasks lists to check my progress.

+ +

I check each task box at the beginning of a line when I'm done with it. When all sub-items in a block are done, +I put [x] at the top level, meaning the entire block is done. Sorry you have to remove all my [x] markings +to use this the same way. If you search/replace, just replace [x] with [ ]. +Sometimes I just put a [x] at top level if I know I've done all the subtasks, to cut down on clutter.

+ +

More about Github flavored markdown: https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown

+ +

+Follow me

+ +

I'm a Vietnamese Software Engineer who are really passionate and want to work in the USA.

+ +

How much did I work during this plan? Roughly 4 hours/night after a long, hard day at work.

+ +

I'm on the journey.

+ +

Nam Vu - Top-down learning path: machine learning for software engineers

+ +

+Start Learning +

+
+ + +
+
+ + + + 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..a61c928 --- /dev/null +++ b/params.json @@ -0,0 +1,6 @@ +{ + "name": "Machine learning for software engineers", + "tagline": "A complete daily plan for studying to become a machine learning engineer.", + "body": "# Top-down learning path: machine learning for software engineers\r\nInspired by [Google Interview University](https://github.com/jwasham/google-interview-university).\r\n\r\n_If you like this project, please give me a star._ ★\r\n\r\n## What is it?\r\n\r\nThis is my multi-month study plan for going from mobile developer (self-taught, no CS degree) to machine learning engineer.\r\n\r\nMy main goal was to find an approach to studying Machine Learning that is mainly hands-on and abstracts most of the math for the beginner. \r\nThis approach is unconventional because it’s the top-down and results-first approach designed for software engineers.\r\n\r\nPlease, feel free to make any contributions you feel will make it better.\r\n\r\n## [Start Learning](https://github.com/ZuzooVn/machine-learning-for-software-engineers) \r\n\r\n---\r\n\r\n## Why use it?\r\n\r\nI'm following this plan to prepare for my near future job: Machine learning engineer. I've been building the native mobile application (Android/iOS/Blackberry) since 2011. I have a Software Engineering degree, not a Computer Science degree. I have itty bitty of basic knowledge about: Calculus, Linear Algebra, Discrete Mathematics, Probability & Statistics at university.\r\nThink about my interest in machine learning:\r\n- [Can I learn and get a job in Machine Learning without studying CS Master and PhD?](https://www.quora.com/Can-I-learn-and-get-a-job-in-Machine-Learning-without-studying-CS-Master-and-PhD)\r\n - You can, but it is far more difficult than when I got into the field.\r\n- [How do I get a job in Machine Learning as a software programmer who self-studies Machine Learning, but never has a chance to use it at work?](https://www.quora.com/How-do-I-get-a-job-in-Machine-Learning-as-a-software-programmer-who-self-studies-Machine-Learning-but-never-has-a-chance-to-use-it-at-work)\r\n - I'm hiring machine learning experts for my team and your MOOC will not get you the job (there is better news below). In fact, many people with a master's in machine learning will not get the job because they (and most who have taken MOOCs) do not have a deep understanding that will help me solve my problems\r\n- [What skills are needed for machine learning jobs?](http://programmers.stackexchange.com/questions/79476/what-skills-are-needed-for-machine-learning-jobs)\r\n - First, you need to have a decent CS/Math background. ML is an advanced topic so most textbooks assume that you have that background. Second, machine learning is a very general topic with many sub specialties requiring unique skills. You may want to browse the curriculum of an MS program in Machine Learning to see the course, curriculum and textbook.\r\n - Statistics, Probability, distributed computing, and Statistics.\r\n\r\nI find myself in times of trouble.\r\n\r\nAFAIK, [There are two sides to machine learning](http://machinelearningmastery.com/programmers-can-get-into-machine-learning/):\r\n- Practical Machine Learning: This is about queries databases, cleaning data, writing scripts to transform data and gluing algorithm and libraries together and writing custom code to squeeze reliable answers from data to satisfy difficult and ill defined questions. It’s the mess of reality.\r\n- Theoretical Machine Learning: This is about math and abstraction and idealized scenarios and limits and beauty and informing what is possible. It is a whole lot neater and cleaner and removed from the mess of reality.\r\n\r\nI think the best way for practice-focused methodology is something like ['practice — learning — practice'](http://machinelearningmastery.com/machine-learning-for-programmers/#comment-358985), that means where students first come with some existing projects with problems and solutions (practice) to get familiar with traditional methods in the area and perhaps also with their methodology. After practicing with some elementary experiences, they can go into the books and study the underlying theory, which serves to guide their future advanced practice and will enhance their toolbox of solving practical problems. Studying theory also further improves their understanding on the elementary experiences, and will help them acquire advanced experiences more quickly.\r\n\r\n It's a long plan. It's going to take me years. If you are familiar with a lot of this already it will take you a lot less time.\r\n\r\n## How to use it\r\n\r\nEverything below is an outline, and you should tackle the items in order from top to bottom.\r\n\r\nI'm using Github's special markdown flavor, including tasks lists to check my progress.\r\n\r\nI check each task box at the beginning of a line when I'm done with it. When all sub-items in a block are done,\r\nI put [x] at the top level, meaning the entire block is done. Sorry you have to remove all my [x] markings\r\nto use this the same way. If you search/replace, just replace [x] with [ ].\r\nSometimes I just put a [x] at top level if I know I've done all the subtasks, to cut down on clutter.\r\n\r\nMore about Github flavored markdown: https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown\r\n\r\n## Follow me\r\nI'm a Vietnamese Software Engineer who are really passionate and want to work in the USA.\r\n\r\nHow much did I work during this plan? Roughly 4 hours/night after a long, hard day at work.\r\n\r\nI'm on the journey. \r\n\r\n![Nam Vu - Top-down learning path: machine learning for software engineers](http://sv1.upsieutoc.com/2016/10/08/331f241c8da44d0c43e9324d55440db6.md.jpg)\r\n\r\n## [Start Learning](https://github.com/ZuzooVn/machine-learning-for-software-engineers) \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-light.css b/stylesheets/github-light.css new file mode 100644 index 0000000..0c6b24d --- /dev/null +++ b/stylesheets/github-light.css @@ -0,0 +1,124 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 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, variable.other.constant, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header */, +.pl-s .pl-v /* string variable */ { + color: #0086b3; +} + +.pl-e /* entity */, +.pl-en /* entity.name */ { + color: #795da3; +} + +.pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */, +.pl-s .pl-s1 /* string source */ { + color: #333; +} + +.pl-ent /* entity.name.tag */ { + color: #63a35c; +} + +.pl-k /* keyword, storage, storage.type */ { + color: #a71d5d; +} + +.pl-s /* string */, +.pl-pds /* punctuation.definition.string, string.regexp.character-class */, +.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-sre /* string.regexp source.ruby.embedded */, +.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ { + color: #183691; +} + +.pl-v /* variable */ { + color: #ed6a43; +} + +.pl-id /* invalid.deprecated */ { + color: #b52a1d; +} + +.pl-ii /* invalid.illegal */ { + color: #f8f8f8; + background-color: #b52a1d; +} + +.pl-sr .pl-cce /* string.regexp constant.character.escape */ { + font-weight: bold; + color: #63a35c; +} + +.pl-ml /* markup.list */ { + color: #693a17; +} + +.pl-mh /* markup.heading */, +.pl-mh .pl-en /* markup.heading entity.name */, +.pl-ms /* meta.separator */ { + font-weight: bold; + color: #1d3e81; +} + +.pl-mq /* markup.quote */ { + color: #008080; +} + +.pl-mi /* markup.italic */ { + font-style: italic; + color: #333; +} + +.pl-mb /* markup.bold */ { + font-weight: bold; + color: #333; +} + +.pl-md /* markup.deleted, meta.diff.header.from-file */ { + color: #bd2c00; + background-color: #ffecec; +} + +.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ { + color: #55a532; + background-color: #eaffea; +} + +.pl-mdr /* meta.diff.range */ { + font-weight: bold; + color: #795da3; +} + +.pl-mo /* meta.output */ { + color: #1d3e81; +} + diff --git a/stylesheets/print.css b/stylesheets/print.css new file mode 100644 index 0000000..7da6db0 --- /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 { + padding-left: 20px; + list-style-position: inside; + list-style: disc; +} + +ol li { + padding-left: 3px; + list-style-position: inside; + list-style: decimal; +} + +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..543c951 --- /dev/null +++ b/stylesheets/stylesheet.css @@ -0,0 +1,881 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + color: #000; + background: #ff0; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + margin: 0; /* 3 */ + font: inherit; /* 2 */ + color: inherit; /* 1 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-box-sizing: content-box; /* 2 */ + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; /* 1 */ +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + padding: 0; /* 2 */ + border: 0; /* 1 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-spacing: 0; + border-collapse: collapse; +} + +td, +th { + padding: 0; +} + +/* LAYOUT STYLES */ +body { + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 15px; + font-weight: 400; + line-height: 1.5; + color: #666; + background: #fafafa url(../images/body-bg.jpg) 0 0 repeat; +} + +p { + margin-top: 0; +} + +a { + color: #2879d0; +} +a:hover { + color: #2268b2; +} + +header { + padding-top: 40px; + padding-bottom: 40px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + background: #2e7bcf url(../images/header-bg.jpg) 0 0 repeat-x; + border-bottom: solid 1px #275da1; +} + +header h1 { + width: 540px; + margin-top: 0; + margin-bottom: 0.2em; + font-size: 72px; + font-weight: normal; + line-height: 1; + color: #fff; + letter-spacing: -1px; +} + +header h2 { + width: 540px; + margin-top: 0; + margin-bottom: 0; + font-size: 26px; + font-weight: normal; + line-height: 1.3; + color: #9ddcff; + letter-spacing: 0; +} + +.inner { + position: relative; + width: 940px; + margin: 0 auto; +} + +#content-wrapper { + padding-top: 30px; + border-top: solid 1px #fff; +} + +#main-content { + float: left; + width: 690px; +} + +#main-content img { + max-width: 100%; +} + +aside#sidebar { + float: right; + width: 200px; + min-height: 504px; + padding-left: 20px; + font-size: 12px; + line-height: 1.3; + background: transparent url(../images/sidebar-bg.jpg) 0 0 no-repeat; +} + +aside#sidebar p.repo-owner, +aside#sidebar p.repo-owner a { + font-weight: bold; +} + +#downloads { + margin-bottom: 40px; +} + +a.button { + width: 134px; + height: 58px; + padding-top: 22px; + padding-left: 68px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 23px; + line-height: 1.2; + color: #fff; +} +a.button small { + display: block; + font-size: 11px; +} +header a.button { + position: absolute; + top: 0; + right: 0; + background: transparent url(../images/github-button.png) 0 0 no-repeat; +} +aside a.button { + display: block; + width: 138px; + padding-left: 64px; + margin-bottom: 20px; + font-size: 21px; + background: transparent url(../images/download-button.png) 0 0 no-repeat; +} + +code, pre { + margin-bottom: 30px; + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-size: 13px; + color: #222; +} + +code { + padding: 0 3px; + background-color: #f2f8fc; + border: solid 1px #dbe7f3; +} + +pre { + padding: 20px; + overflow: auto; + text-shadow: none; + background: #fff; + border: solid 1px #f2f2f2; +} +pre code { + padding: 0; + color: #2879d0; + background-color: #fff; + border: none; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +hr { + height: 0; + margin-top: 1em; + margin-bottom: 1em; + border: 0; + border-top: solid 1px #ddd; +} + +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 */ + +#main-content h1 { + margin-top: 0; + margin-bottom: 0; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 2.8em; + font-weight: normal; + color: #474747; + text-indent: 6px; + letter-spacing: -1px; +} + +#main-content h1:before { + padding-right: 0.3em; + margin-left: -0.9em; + color: #9ddcff; + content: "/"; +} + +#main-content h2 { + margin-bottom: 8px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 22px; + font-weight: bold; + color: #474747; + text-indent: 4px; +} +#main-content h2:before { + padding-right: 0.3em; + margin-left: -1.5em; + content: "//"; + color: #9ddcff; +} + +#main-content h3 { + margin-top: 24px; + margin-bottom: 8px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 18px; + font-weight: bold; + color: #474747; + text-indent: 3px; +} + +#main-content h3:before { + padding-right: 0.3em; + margin-left: -2em; + content: "///"; + color: #9ddcff; +} + +#main-content h4 { + margin-bottom: 8px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 15px; + font-weight: bold; + color: #474747; + text-indent: 3px; +} + +h4:before { + padding-right: 0.3em; + margin-left: -2.8em; + content: "////"; + color: #9ddcff; +} + +#main-content h5 { + margin-bottom: 8px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 14px; + color: #474747; + text-indent: 3px; +} +h5:before { + padding-right: 0.3em; + margin-left: -3.2em; + content: "/////"; + color: #9ddcff; +} + +#main-content h6 { + margin-bottom: 8px; + font-family: 'Architects Daughter', 'Helvetica Neue', Helvetica, Arial, serif; + font-size: .8em; + color: #474747; + text-indent: 3px; +} +h6:before { + padding-right: 0.3em; + margin-left: -3.7em; + content: "//////"; + color: #9ddcff; +} + +p { + margin-bottom: 20px; +} + +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 { + list-style-position: inside; + list-style: disc; + padding-left: 20px; +} + +ol { + 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; + 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) { + .inner { + width: 740px; + } + header h1, header h2 { + width: 340px; + } + header h1 { + font-size: 60px; + } + header h2 { + font-size: 30px; + } + #main-content { + width: 490px; + } + #main-content h1:before, + #main-content h2:before, + #main-content h3:before, + #main-content h4:before, + #main-content h5:before, + #main-content h6:before { + padding-right: 0; + margin-left: 0; + content: none; + } +} + +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { + .inner { + width: 93%; + } + header { + padding: 20px 0; + } + header .inner { + position: relative; + } + header h1, header h2 { + width: 100%; + } + header h1 { + font-size: 48px; + } + header h2 { + font-size: 24px; + } + header a.button { + position: relative; + display: inline-block; + width: auto; + height: auto; + padding: 5px 10px; + margin-top: 15px; + font-size: 13px; + line-height: 1; + color: #2879d0; + text-align: center; + background-color: #9ddcff; + background-image: none; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + } + header a.button small { + display: inline; + font-size: 13px; + } + #main-content, + aside#sidebar { + float: none; + width: 100% ! important; + } + aside#sidebar { + min-height: 0; + padding: 20px 0; + margin-top: 20px; + background-image: none; + border-top: solid 1px #ddd; + } + aside#sidebar a.button { + display: none; + } + #main-content h1:before, + #main-content h2:before, + #main-content h3:before, + #main-content h4:before, + #main-content h5:before, + #main-content h6:before { + padding-right: 0; + margin-left: 0; + content: none; + } +} + +/* 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) { } +