diff --git a/Contact.md b/Contact.md index 584baf9e..ba5f34b4 100644 --- a/Contact.md +++ b/Contact.md @@ -1,10 +1,16 @@ title: "Learning Resources for Software Engineering Students" footer: footer.md + head: head.md +{{ navbar | safe }} + +
+ # Contact * Suggestions, questions, and bug reports can be posted in [our issue tracker](https://github.com/nus-oss/learningresources/issues) -* Alternatively, contact project mentor [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch) \ No newline at end of file +* Alternatively, contact project mentor [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch) +
diff --git a/GuidelinesForContributors.md b/GuidelinesForContributors.md index 26f5a304..1ff274cb 100644 --- a/GuidelinesForContributors.md +++ b/GuidelinesForContributors.md @@ -1,8 +1,13 @@ title: "Learning Resources for Software Engineering Students" footer: footer.md + head: head.md +{{ navbar | safe }} + +
+ # Guidelines for Contributors * Our objective is to help SE students learn a relevant topic quickly by locating good learning resources. @@ -19,3 +24,5 @@ * When contributing, follow the [oss-generics process](https://github.com/oss-generic/process) where applicable. + +
diff --git a/README.md b/README.md index 96cb9e27..47b5cd2e 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,5 @@ This repository is a collection of Software Engineering learning resources. --- [Guidelines for Contributors](GuidelinesForContributors.md) | [Contact](Contact.md) | License: MIT + + diff --git a/_markbind/head/head.md b/_markbind/head/head.md new file mode 100644 index 00000000..b1b7effb --- /dev/null +++ b/_markbind/head/head.md @@ -0,0 +1 @@ + diff --git a/_markbind/variables.md b/_markbind/variables.md index 13baf728..02761a01 100644 --- a/_markbind/variables.md +++ b/_markbind/variables.md @@ -1,9 +1,8 @@ -
-
-
\ No newline at end of file + + diff --git a/contents/ToC.md b/contents/ToC.md index e69de29b..b73c2ee0 100644 --- a/contents/ToC.md +++ b/contents/ToC.md @@ -0,0 +1,2 @@ + + diff --git a/contents/ai/ml.md b/contents/ai/ml.md index 7cde9ee6..94c358bc 100644 --- a/contents/ai/ml.md +++ b/contents/ai/ml.md @@ -1,10 +1,13 @@ title: Introduction to Machine Learning (ML) footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Machine Learning (ML) Authors: [Alex Fong](https://github.com/alexfjw) @@ -218,3 +221,5 @@ Popular resources for keeping up with machine learning research ## Footnotes [1]: No link is provided as MOOC is in unofficial release at time of writing + +
diff --git a/contents/android/IntroToAndroid.md b/contents/android/IntroToAndroid.md index d44600ad..f3ed0332 100644 --- a/contents/android/IntroToAndroid.md +++ b/contents/android/IntroToAndroid.md @@ -1,10 +1,13 @@ title: Introduction to Android App Development footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Android App Development Authors: [Lee Yan Hwa](https://github.com/leeyh20) @@ -190,3 +193,5 @@ Going further, it will be useful to know more about: Other useful links: * [Android Authority](https://www.androidauthority.com) * [Android Central](https://www.androidcentral.com/) + +
diff --git a/contents/architecture/RESTArchitecturalStyle.md b/contents/architecture/RESTArchitecturalStyle.md index ce3d0879..7473b14e 100644 --- a/contents/architecture/RESTArchitecturalStyle.md +++ b/contents/architecture/RESTArchitecturalStyle.md @@ -1,10 +1,13 @@ title: REST Architectural Style footer: footer.md + head: head.md {{ navbar | safe }} +
+ # REST Architectural Style Author: [Wen Xin](https://github.com/wenmogu) @@ -92,4 +95,5 @@ The server can send a code snippet to the client to let the client execute. One * Code On Demand * [a general wikipedia explanation](https://en.wikipedia.org/wiki/Code_on_demand) * [a stackoverflow explanation](https://stackoverflow.com/questions/32094952/code-demand-constraint-for-restful-apis?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa) -* [Video explaning REST (easy to get the big picture but not very precise)](https://www.youtube.com/watch?v=YCcAE2SCQ6k) \ No newline at end of file +* [Video explaning REST (easy to get the big picture but not very precise)](https://www.youtube.com/watch?v=YCcAE2SCQ6k) +
diff --git a/contents/c++/rvalue.md b/contents/c++/rvalue.md index 55e5446f..e064d3df 100644 --- a/contents/c++/rvalue.md +++ b/contents/c++/rvalue.md @@ -1,10 +1,13 @@ title: Rvalue References and Move Semantics footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Rvalue References and Move Semantics Authors: [Tan Jun An](https://github.com/yamidark) @@ -175,3 +178,5 @@ The following resources gives more readings on what was discussed, and a more in * [C++ Rvalue References Explained in 11 Sections](http://thbecker.net/articles/rvalue_references/section_01.html) * [Sample examples of using Rvalue References and Move Semantics](http://www.bogotobogo.com/cplusplus/C11/5B_C11_Move_Semantics_Rvalue_Reference.php) * [The Rvalue Reference Anti-Pattern](http://cpptruths.blogspot.sg/2012/03/rvalue-references-in-constructor-when.html) + +
diff --git a/contents/codeQuality/CodeQualityMetrics.md b/contents/codeQuality/CodeQualityMetrics.md index 22a79e1d..fa93198c 100644 --- a/contents/codeQuality/CodeQualityMetrics.md +++ b/contents/codeQuality/CodeQualityMetrics.md @@ -1,10 +1,13 @@ title: Code Quality Metrics footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Code Quality Metrics Authors: [Wilson Kurniawan](https://github.com/wkurniawan07) @@ -107,3 +110,5 @@ Measuring design (relevant to architects, QA team), most of them commercial: - Java: [JArchitect](http://www.jarchitect.com) - C#: [NDepend](http://www.ndepend.com) - PHP: [PHP Depend](https://pdepend.org) + +
diff --git a/contents/computerVision/cv.md b/contents/computerVision/cv.md index e556a5c0..bd436c77 100644 --- a/contents/computerVision/cv.md +++ b/contents/computerVision/cv.md @@ -1,10 +1,13 @@ title: Introduction to computer vision (CV) footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to computer vision (CV) Authors: [Nguyen Quoc Bao](https://github.com/bqnguyen94) @@ -330,3 +333,5 @@ or the Python version: [18]: https://pdfs.semanticscholar.org/56b1/eee82a51ce17d72a91b5876a3281418679cc.pdf
[19]: https://www.sciencedirect.com/science/article/pii/S0167865505003521
[20]: http://goldberg.berkeley.edu/pubs/acc-2012-visual-tracking-final.pdf
+ +
diff --git a/contents/data/databases.md b/contents/data/databases.md index 73a0b5b1..a1134ed5 100644 --- a/contents/data/databases.md +++ b/contents/data/databases.md @@ -1,10 +1,13 @@ title: Introduction to Databases & Database Management Systems (DBMS) footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Databases & Database Management Systems (DBMS) Authors: [Syed Abdullah](https://github.com/Skaty) @@ -168,4 +171,5 @@ Another level of abstraction is the **database abstraction layer**. This is usua ##### Database abstractions - [PHP Data Objects](https://secure.php.net/manual/en/book.pdo.php) -- [Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping) \ No newline at end of file +- [Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping) +
diff --git a/contents/devops/DevOps.md b/contents/devops/DevOps.md index 46ada149..5c430959 100644 --- a/contents/devops/DevOps.md +++ b/contents/devops/DevOps.md @@ -1,10 +1,13 @@ title: DevOps footer: footer.md + head: head.md {{ navbar | safe }} +
+ # DevOps Authors: [John Yong](https://github.com/whipermr5) @@ -118,4 +121,5 @@ As a software engineering student, the best way to get started is to gain some p - [Best Guide to Getting Started In DevOps](https://blog.xebialabs.com/2015/04/23/best-guide-to-getting-started-in-devops/) - recommends various places you can read up more on the topic - [9½ Simple Steps On How To Start With DevOps Today](https://devops.com/9%C2%BD-simple-steps-start-devops-today/) - includes practical suggestions like using a code static analysis tool - [A Pragmatic Guide to Getting Started with DevOps](http://www.ca.com/us/lpg/~/media/Files/eBooks/a-pragmatic-guide-to-getting-started-with-devops.pdf) - more of a management point of view but interesting -- [The DevOps Handbook: How to Create World-Class Speed, Reliability, and Security in Technology Organizations](https://books.google.com.sg/books/about/The_Devops_Handbook.html?id=XrQcrgEACAAJ) - about managing tech organisations, written by a CTO \ No newline at end of file +- [The DevOps Handbook: How to Create World-Class Speed, Reliability, and Security in Technology Organizations](https://books.google.com.sg/books/about/The_Devops_Handbook.html?id=XrQcrgEACAAJ) - about managing tech organisations, written by a CTO +
diff --git a/contents/functionalProgramming/intro.md b/contents/functionalProgramming/intro.md index 9e6a65ff..baf23b7d 100644 --- a/contents/functionalProgramming/intro.md +++ b/contents/functionalProgramming/intro.md @@ -1,10 +1,13 @@ title: An Introduction to Functional Programming footer: footer.md + head: head.md {{ navbar | safe }} +
+ # An Introduction to Functional Programming Authors: [Phang Chun Rong](https://github.com/crphang) @@ -138,4 +141,5 @@ Functional programming can be a very different programming paradigm and it defin - A good [overview of functional programming](https://en.wikipedia.org/wiki/Functional_programming) - A six-part [introduction to functional programming](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536) - If you are hungry for more, take the [excellent functional programming principles course](https://www.coursera.org/learn/progfun1) -- And to help with the mindset shift for functional programming, take a look at a [practical guide on how to translate an imperative to functional style](https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming) \ No newline at end of file +- And to help with the mindset shift for functional programming, take a look at a [practical guide on how to translate an imperative to functional style](https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming) +
diff --git a/contents/go/Go.md b/contents/go/Go.md index 7e1b6edf..602aa73b 100644 --- a/contents/go/Go.md +++ b/contents/go/Go.md @@ -1,10 +1,13 @@ title: Introduction to Go footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Go Author(s): [Cara Leong](https://github.com/craaaa) @@ -278,3 +281,5 @@ Go's development team is heavily involved in documenting and growing the Go lang - [The Go FAQ](https://golang.org/doc/faq) - answers common questions about the language's history, usage, design and more - [Go's documentation](https://golang.org/doc/) - a good starting point, contains links to official information about Go - [The Go Blog](https://blog.golang.org/) - features news and in-depth articles about Go by the Go team and guests + +
diff --git a/contents/gpgpu/cuda.md b/contents/gpgpu/cuda.md index 8c7b0a0e..62a04fe1 100644 --- a/contents/gpgpu/cuda.md +++ b/contents/gpgpu/cuda.md @@ -1,10 +1,13 @@ title: An Introduction to CUDA footer: footer.md + head: head.md {{ navbar | safe }} +
+ # An Introduction to CUDA ###### Author: [Pierce Anderson Fu](https://github.com/PierceAndy) @@ -250,3 +253,5 @@ This topic is widely covered. Here are some good references on what the differen [7]: http://stackoverflow.com/a/5957647
[8]: https://developer.nvidia.com/cuda-faq#Programming
[9]: https://www.khronos.org/opencl/
+ +
diff --git a/contents/gpgpu/gpgpu.md b/contents/gpgpu/gpgpu.md index 7ecd73a9..8bca419b 100644 --- a/contents/gpgpu/gpgpu.md +++ b/contents/gpgpu/gpgpu.md @@ -1,10 +1,13 @@ title: An Introduction to GPGPU footer: footer.md + head: head.md {{ navbar | safe }} +
+ # An Introduction to GPGPU ###### Authors: [Pierce Anderson Fu](https://github.com/PierceAndy), [Nguyen Quoc Bao](https://github.com/bqnguyen94) @@ -89,3 +92,5 @@ Compatible with a range of components and large ecosystem products[[8]](#fo [7]: https://en.wikipedia.org/wiki/Tegra#Tegra_X1/
[8]: https://elinux.org/Jetson_TX2#Ecosystem_Products
[9]: https://developer.nvidia.com/embedded/learn/success-stories
+ +
diff --git a/contents/haskell/Haskell.md b/contents/haskell/Haskell.md index b11c069b..fbef9cb8 100644 --- a/contents/haskell/Haskell.md +++ b/contents/haskell/Haskell.md @@ -1,10 +1,13 @@ title: Introduction to Haskell footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Haskell Author: Thenaesh Elango @@ -1048,3 +1051,5 @@ ad-hoc fashion. for the major typeclasses contained in the Haskell hierarchical libraries. Use it to determine which typeclasses are related to which (e.g. every monad is an applicative functor, which is in turn a functor). + +
diff --git a/contents/java/Java.md b/contents/java/Java.md index db223278..9d9ffd70 100644 --- a/contents/java/Java.md +++ b/contents/java/Java.md @@ -1,10 +1,13 @@ title: Java footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Java Authors: John Doe, Jane Doe @@ -24,3 +27,5 @@ Authors: John Doe, Jane Doe // Reflection overview // Learning resources + +
diff --git a/contents/java/JavaConcurrency.md b/contents/java/JavaConcurrency.md index 3fabc152..c99e4ddb 100644 --- a/contents/java/JavaConcurrency.md +++ b/contents/java/JavaConcurrency.md @@ -1,10 +1,13 @@ title: Java Concurrency footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Java Concurrency Authors: Vivek Lakshmanan @@ -224,3 +227,5 @@ The following resources are interesting reads for a deeper understanding. * [Computer Science Stack Exchange Post on the difference between Concurrency and Parallelism](https://cs.stackexchange.com/questions/19987/difference-between-parallel-and-concurrent-programming) * [Java Locks and Atomic Variables Tutorial](https://www.callicoder.com/java-locks-and-atomic-variables-tutorial/) * [A comparison between concurrency in Golang and Java](https://www.quora.com/What-is-the-advantage-of-Googles-Golang-over-Java-and-Scala) + +
diff --git a/contents/java/JavaReflections.md b/contents/java/JavaReflections.md index c496393a..b6af33ab 100644 --- a/contents/java/JavaReflections.md +++ b/contents/java/JavaReflections.md @@ -1,10 +1,13 @@ title: "Advanced Java: Reflections" footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Advanced Java: Reflections Authors: [Jeremy Goh](https://github.com/MightyCupcakes), [Yong Zhi Yuan](https://github.com/Zhiyuan-Amos) @@ -266,3 +269,5 @@ While Java reflections are powerful, you should not immediately jump on the refl [https://github.com/google/guava/wiki/ReflectionExplained](https://github.com/google/guava/wiki/ReflectionExplained) + +
diff --git a/contents/java/JavaSynchronization.md b/contents/java/JavaSynchronization.md index c56f6339..2171a9b9 100644 --- a/contents/java/JavaSynchronization.md +++ b/contents/java/JavaSynchronization.md @@ -1,10 +1,13 @@ title: Java Synchronization footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Java Synchronization Authors: [Boxin](https://github.com/boxin-yang) @@ -139,3 +142,5 @@ Java Synchronization as demonstrated in this tutorial is easy to learn, and you [5]: https://en.wikipedia.org/wiki/Thread_safety [6]: https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html [7]: https://en.wikipedia.org/wiki/Semaphore_(programming) + +
diff --git a/contents/java/streams-an-introduction.md b/contents/java/streams-an-introduction.md index 384e7cf2..3147254c 100644 --- a/contents/java/streams-an-introduction.md +++ b/contents/java/streams-an-introduction.md @@ -1,10 +1,13 @@ title: Java 8 Streams - An Introduction footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Java 8 Streams - An Introduction Author: Lee Yi Min @@ -410,3 +413,5 @@ The five-part tutorial by Brian Goetz gives a complete guide on how to work with #### Common pitfalls * https://blog.jooq.org/2014/06/13/java-8-friday-10-subtle-mistakes-when-using-the-streams-api/ The article gives a list of other common mistakes one may make when using streams. + +
diff --git a/contents/javascript/Javascript-framework-VueJs.md b/contents/javascript/Javascript-framework-VueJs.md index 219eebc2..b3806c83 100644 --- a/contents/javascript/Javascript-framework-VueJs.md +++ b/contents/javascript/Javascript-framework-VueJs.md @@ -1,10 +1,13 @@ title: VueJs footer: footer.md + head: head.md {{ navbar | safe }} +
+ # VueJs Author: [Lu Lechuan](https://github.com/LuLechuan) @@ -159,3 +162,5 @@ A majority of users of VueJs are the Chinese as VueJs is developed by a Chinese ## References - [VueJS Official Website](https://vuejs.org/) + +
diff --git a/contents/javascript/Javascript-libraries.md b/contents/javascript/Javascript-libraries.md index f83675e8..da553304 100644 --- a/contents/javascript/Javascript-libraries.md +++ b/contents/javascript/Javascript-libraries.md @@ -1,10 +1,13 @@ title: Libraries footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Libraries Authors: Li Kai @@ -33,3 +36,5 @@ The general advice is to go for Mocha if you are new, due to its [large communit Jest, due to its speed, support for React.js, support for asynchronous testing and helpful terminal outputs, seems to be the upcoming major player. The fact that it is being made by Facebook is icing to the cake. The odd test framework in the list above is QUnit, which is a test framework that runs on the browser instead of node.js like the others. QUnit has been around longer. Unless you are running JQuery and need to test for browser or UI related bugs, it is no longer a conventional choice. + +
diff --git a/contents/javascript/Javascript-promises.md b/contents/javascript/Javascript-promises.md index 6c309836..79a57061 100644 --- a/contents/javascript/Javascript-promises.md +++ b/contents/javascript/Javascript-promises.md @@ -1,10 +1,13 @@ title: "Javascript: Promises" footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Javascript: Promises Author: Daniel Berzin Chua @@ -205,3 +208,5 @@ You may read more about Promises, and how to use them at the following 2 website [JavaScript Promises: an Introduction](https://developers.google.com/web/fundamentals/primers/promises) [JavaScript Promises for Dummies](https://scotch.io/tutorials/javascript-promises-for-dummies) + +
diff --git a/contents/javascript/javascript.md b/contents/javascript/javascript.md index ba7f53a9..939b92fd 100644 --- a/contents/javascript/javascript.md +++ b/contents/javascript/javascript.md @@ -1,10 +1,13 @@ title: Writing Testable Javascript footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Writing Testable Javascript Authors: Li Kai @@ -258,3 +261,5 @@ The title says it all. From the most common to obscure patterns, this book cover [Namespacing in Javascript](https://javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/) [Method Chaining in JavaScript](https://schier.co/blog/2013/11/14/method-chaining-in-javascript.html) + +
diff --git a/contents/kotlin/NullSafety.md b/contents/kotlin/NullSafety.md index f40a5fa3..39836a30 100644 --- a/contents/kotlin/NullSafety.md +++ b/contents/kotlin/NullSafety.md @@ -1,10 +1,13 @@ title: Null Safety in Kotlin footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Null Safety in Kotlin Author: [Pan Haozhe](https://github.com/Haozhe321) @@ -149,3 +152,5 @@ The operator converts any value to a non-nullable type and throws an exception i * [Null Safety in Kotlin](https://kotlinlang.org/docs/reference/null-safety.html) * [Comprehensive Guide to Null Safety in Kotlin](http://www.baeldung.com/kotlin-null-safety) * [The Billion Dollar Mistake](https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare) + +
diff --git a/contents/kotlin/kotlin.md b/contents/kotlin/kotlin.md index 3dae0f6e..8f27d001 100644 --- a/contents/kotlin/kotlin.md +++ b/contents/kotlin/kotlin.md @@ -1,10 +1,13 @@ title: Introduction to Kotlin footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Kotlin Author: [Shradheya Thakre](https://github.com/tshradheya) @@ -107,3 +110,5 @@ The biggest issue is that Java isn’t a modern language, and although Java 8 wa - [Official Resources by Android](https://developer.android.com/kotlin/resources.html) - [Kotlin Documentation](https://kotlinlang.org/docs/reference/) - [Cheatsheet for shifiting from Java to Kotlin](https://github.com/MindorksOpenSource/from-java-to-kotlin) + +
diff --git a/contents/node/nodejs.md b/contents/node/nodejs.md index f9bc88ae..1e043fb3 100644 --- a/contents/node/nodejs.md +++ b/contents/node/nodejs.md @@ -1,10 +1,13 @@ title: Introduction to Node.js footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Node.js Author: Rachael Sim @@ -215,3 +218,5 @@ To find out more about when you should or should not use Node.js, checkout these * A summary and curation of the top-ranked content on Node.js best practices - [Node.js Best Practices](https://github.com/i0natan/nodebestpractices) * Node.js architecture and features - [All About Node.Js You Wanted To Know](https://codeburst.io/all-about-node-js-you-wanted-to-know-25f3374e0be7) * More about `package.json` - [npm official documentation on package.json](https://docs.npmjs.com/files/package.json). + +
diff --git a/contents/performance/Performance.md b/contents/performance/Performance.md index 4cfe030d..961b334a 100644 --- a/contents/performance/Performance.md +++ b/contents/performance/Performance.md @@ -1,10 +1,13 @@ title: Introduction to Performance Optimization footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Performance Optimization Author: [Ian Teo](https://github.com/IanTeo), [Phang Chun Rong](https://www.github.com/Crphang) @@ -126,3 +129,5 @@ In the example above, Row major takes around 100ms, while column major takes aro If you want to know more about Optimization, especially for that critical 3%, these other resources could be useful: * Finding the critical path - [Performance Profiling](PerformanceProfiling.md) + +
diff --git a/contents/performance/PerformanceProfiling.md b/contents/performance/PerformanceProfiling.md index 25d90d08..8cd7cbde 100644 --- a/contents/performance/PerformanceProfiling.md +++ b/contents/performance/PerformanceProfiling.md @@ -1,10 +1,13 @@ title: Performance Profiling footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Performance Profiling Author: [Ong Heng Le](https://github.com/initialshl) @@ -84,4 +87,5 @@ For Visual Studio 2015: 1. What is a software profiler?: [Profiling Overview](https://msdn.microsoft.com/en-us/library/bb384493(v=vs.110).aspx) 1. Common performance profiling methods: [Understanding Performance Collection Methods](https://msdn.microsoft.com/en-us/library/dd264994.aspx) 1. Learn the best practices in profiling: [Advanced Profiling: Theory in Practice with NetBeans IDE](https://netbeans.org/community/magazine/html/04/profiler.html) -1. Why do profilers exclude small functions from instrumentation by default?: [Excluding Small Functions From Instrumentation](https://blogs.msdn.microsoft.com/profiler/2008/07/08/excluding-small-functions-from-instrumentation/) \ No newline at end of file +1. Why do profilers exclude small functions from instrumentation by default?: [Excluding Small Functions From Instrumentation](https://blogs.msdn.microsoft.com/profiler/2008/07/08/excluding-small-functions-from-instrumentation/) +
diff --git a/contents/performance/ProfilingDesktopAppVS2015.md b/contents/performance/ProfilingDesktopAppVS2015.md index c34d1050..6748bc13 100644 --- a/contents/performance/ProfilingDesktopAppVS2015.md +++ b/contents/performance/ProfilingDesktopAppVS2015.md @@ -1,10 +1,13 @@ title: Profiling a Desktop Application In Visual Studio 2015 footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Profiling a Desktop Application In Visual Studio 2015 Author: [Ong Heng Le](https://github.com/initialshl) @@ -59,3 +62,5 @@ function body. But before that, here's a final tip: It is sometimes easier 1. The general steps in profiling your program: [Beginners Guide to Performance Profiling](https://msdn.microsoft.com/en-us/library/ms182372.aspx) 1. Read my chapter on performance profiling for more advanced topics: [Performance Profiling](PerformanceProfiling.md) + +
diff --git a/contents/projectManagement/AgileDevelopment.md b/contents/projectManagement/AgileDevelopment.md index 13d84181..88f4542e 100644 --- a/contents/projectManagement/AgileDevelopment.md +++ b/contents/projectManagement/AgileDevelopment.md @@ -1,10 +1,13 @@ title: Agile Development footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Agile Development Author: [Joanne Ong](https://github.com/joanneong) @@ -138,3 +141,5 @@ Here is a compilation of other resources on agile development for your further e - [Scrum vs Kanban vs Scrumban](http://www.eylean.com/blog/2013/05/scrum-vs-kanban-vs-scrumban-planning-estimation-and-performance-metrics/) - [Scrum vs Kanban vs Lean vs XP](https://dzone.com/articles/agile-framework-comparison-scrum-vs-kanban-vs-lean) - [XP vs FDD vs FDSM](https://project-management.com/xp-fdd-dsdm-and-crystal-methods-of-agile-development/) + +
diff --git a/contents/projectManagement/documentation.md b/contents/projectManagement/documentation.md index 2e99fd76..600922c0 100644 --- a/contents/projectManagement/documentation.md +++ b/contents/projectManagement/documentation.md @@ -1,10 +1,13 @@ title: Documentation footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Documentation Authors: [Chua Ka Yi Ong](https://github.com/kychua) @@ -167,4 +170,5 @@ In addition to the links mentioned above, here are the links used in the writing * https://arialdomartini.wordpress.com/2012/09/03/pre-emptive-commit-comments/ * https://spin.atomicobject.com/2015/04/24/source-control-documentation/ * https://wiki.openstack.org/wiki/GitCommitMessages -* https://github.com/matiassingers/awesome-readme \ No newline at end of file +* https://github.com/matiassingers/awesome-readme +
diff --git a/contents/python/introduction-to-python.md b/contents/python/introduction-to-python.md index cd023a70..4927da59 100644 --- a/contents/python/introduction-to-python.md +++ b/contents/python/introduction-to-python.md @@ -1,10 +1,13 @@ title: An Introduction to Python footer: footer.md + head: head.md {{ navbar | safe }} +
+ # An Introduction to Python Authors: [Samson Tan Min Rong](https://www.linkedin.com/in/samsontmr/), [Phang Chun Rong](https://www.github.com/Crphang) @@ -95,4 +98,5 @@ Looking at the above example, one might think that `my_other_list` will be `[42] Learning how to avoid such pitfalls is one huge step towards being a productive Python programmer. Here are some other guides that state some common gotchas and how to avoid them: * [Top 10 Common Mistakes of Python Programmers](https://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) -* [Common Python Gotchas](https://sopython.com/wiki/Common_Gotchas_In_Python) \ No newline at end of file +* [Common Python Gotchas](https://sopython.com/wiki/Common_Gotchas_In_Python) +
diff --git a/contents/regex/Regex.md b/contents/regex/Regex.md index 9bbcdf8c..7f71a55f 100644 --- a/contents/regex/Regex.md +++ b/contents/regex/Regex.md @@ -1,10 +1,13 @@ title: Introduction to Regular Expressions footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Regular Expressions Authors: Jamos Tay @@ -365,4 +368,5 @@ Since `o` is a suitable match for `.+`, the engine accepts it and tries to match ### Further Reading * [Regular Expressions Cookbook](https://www.amazon.com/Regular-Expressions-Cookbook-Solutions-Programming/dp/1449319432) - *Jan Goyvaerts, Steven Levithan* * [Teach Yourself Regular Expressions in 10 Minutes](https://www.amazon.com/exec/obidos/ASIN/0672325667/jgsbookselection) - *Ben Forta* -* [Mastering Regular Expressions](https://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124) - *Jeffrey Friedl* \ No newline at end of file +* [Mastering Regular Expressions](https://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124) - *Jeffrey Friedl* +
diff --git a/contents/revisionControl/bestPracticesGit.md b/contents/revisionControl/bestPracticesGit.md index 2aa59cba..3cb27f91 100644 --- a/contents/revisionControl/bestPracticesGit.md +++ b/contents/revisionControl/bestPracticesGit.md @@ -1,10 +1,13 @@ title: Best Practices with `git` footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Best Practices with `git` Author(s): [Darren Wee](https://github.com/darrenwee) @@ -345,3 +348,5 @@ These are the resources used in the writing of this chapter, as well as any addi - [Git for Computer Scientists](http://eagain.net/articles/git-for-computer-scientists/) - discusses the underlying implementation of `git` (merkle tree) - [Pro Git](https://git-scm.com/book/en/v2) - [The most useful git commands](https://orga.cat/posts/most-useful-git-commands) - a reference sheet of some handy command macros + +
diff --git a/contents/ruby/Ruby.md b/contents/ruby/Ruby.md index 02f6b4fb..432c9613 100644 --- a/contents/ruby/Ruby.md +++ b/contents/ruby/Ruby.md @@ -1,10 +1,13 @@ title: Introduction to Ruby footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Ruby Authors: [Wilson Kurniawan](https://github.com/wkurniawan07) @@ -152,3 +155,5 @@ As with most other languages, tools and frameworks exist for serious Ruby develo - **Static Analysis:** [RuboCop](http://batsov.com/rubocop/) is the sole leading static analysis tool for Ruby language. [This repository](https://github.com/markets/awesome-ruby) lists down a large collection of Ruby libraries, tools, frameworks, and software. + +
diff --git a/contents/rust/Rust.md b/contents/rust/Rust.md index efb4f5cf..ff2c4de4 100644 --- a/contents/rust/Rust.md +++ b/contents/rust/Rust.md @@ -1,10 +1,13 @@ title: Rust footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Rust Author(s): [Tan Li Hao](https://github.com/LiHaoTan) @@ -192,3 +195,5 @@ Choosing the right language for the job is important so let's look at a few poss Some other discussions on why not Rust: - [How can Rust improve](https://www.reddit.com/r/rust/comments/7p75ab/why_rust_what_i_want_changed_for_rust_to_help_way/) - [Why not Rust](https://www.reddit.com/r/rust/comments/6hp54n/blog_why_not_to_use_rust/) + +
diff --git a/contents/scalability/scalable-development.md b/contents/scalability/scalable-development.md index c8b4f815..82b837a7 100644 --- a/contents/scalability/scalable-development.md +++ b/contents/scalability/scalable-development.md @@ -1,10 +1,13 @@ title: Scalable Development - An Introduction footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Scalable Development - An Introduction Authors: Loh Jia Shun Kenneth, Vivek Lakshmanan @@ -104,4 +107,5 @@ Use the following tips to avoid those pitfalls: There is a huge gap between theory and practice. What looks well on paper might need tweaking with arbitrary constants and "hacks". As such, more research should be done before you implement any of the solutions. -However, scalability will still be a crucial part of servers aiming to provide services to an increasingly-growing user base. Learning good scalability practices will help prevent developing a server that will never be able to scale. Take the time to explore the depths of scalability, and you will be able help your server scale to meet its demand. \ No newline at end of file +However, scalability will still be a crucial part of servers aiming to provide services to an increasingly-growing user base. Learning good scalability practices will help prevent developing a server that will never be able to scale. Take the time to explore the depths of scalability, and you will be able help your server scale to meet its demand. +
diff --git a/contents/security/Https.md b/contents/security/Https.md index cbb8d881..3ec9427f 100644 --- a/contents/security/Https.md +++ b/contents/security/Https.md @@ -1,10 +1,13 @@ title: Security - https footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Security - https Author: [Boxin][1] @@ -90,4 +93,5 @@ HTTPS provides security to a web application. If the web application requires s [21]: https://en.wikipedia.org/wiki/Man-in-the-middle_attack [22]: https://weakdh.org/ [23]: https://en.wikipedia.org/wiki/Session_hijacking -[24]: https://www.youtube.com/watch?v=BjTwNzoMUuk \ No newline at end of file +[24]: https://www.youtube.com/watch?v=BjTwNzoMUuk +
diff --git a/contents/security/crossSiteRequestForgery/crossSiteRequestForgery.md b/contents/security/crossSiteRequestForgery/crossSiteRequestForgery.md index 8bc55384..46f4418e 100644 --- a/contents/security/crossSiteRequestForgery/crossSiteRequestForgery.md +++ b/contents/security/crossSiteRequestForgery/crossSiteRequestForgery.md @@ -1,10 +1,13 @@ title: Cross Site Request Forgery (CSRF) footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Cross Site Request Forgery (CSRF) Author: [Tran Tien Dat](https://github.com/tran-tien-dat) @@ -115,3 +118,5 @@ So a valid request by Alice made from the bank's own website will also carry thi - https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet (In-depth discussion of the various defense approaches, including those that do not work) - http://www.cgisecurity.com/csrf-faq.html (Short FAQs about CSRF) - https://docs.djangoproject.com/en/2.0/ref/csrf/ (CSRF Protection in Django) + +
diff --git a/contents/security/crossSiteScripting/crossSiteScripting.md b/contents/security/crossSiteScripting/crossSiteScripting.md index 7936d23a..a5eb7818 100644 --- a/contents/security/crossSiteScripting/crossSiteScripting.md +++ b/contents/security/crossSiteScripting/crossSiteScripting.md @@ -1,10 +1,13 @@ title: Cross Site Scripting footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Cross Site Scripting Author: [Tan Wang Leng](https://github.com/nus-oss/cs3281-website/tree/master/students/AY1617S2/tanWangLeng/TanWangLeng-Resume.md) @@ -116,3 +119,5 @@ Additional Resources: (Ruby on Rails plugin responsible for escaping String input in Ruby on Rails websites) 1. http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html (Ruby on Rails HTML sanitization function) + +
diff --git a/contents/security/cryptography.md b/contents/security/cryptography.md index 1db3741b..b7ad9e42 100644 --- a/contents/security/cryptography.md +++ b/contents/security/cryptography.md @@ -1,10 +1,13 @@ title: Introduction to Cryptography footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Introduction to Cryptography Authors: [Dickson Tan](https://github.com/neurrone) @@ -123,4 +126,5 @@ The [first article of this 2-part series ](http://doctrina.org/How-RSA-Works-Wi * [Understanding Cryptography: A Textbook for Students and Practitioners](https://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000) is an outstanding introductory text. Explanations are excellent, and no knowledge of number theory is assumed. It was used as reference material for this document. * [Awesome Cryptography](https://github.com/sobolevn/awesome-cryptography) is a curated list of resources - articles, blogs, books, libraries and more. -* [Security Now](https://grc.com/sn) is a weekly podcast on security. Though it does not go into much detail about the underlying mathematics, there are many episodes on cryptography that provide a working knowledge of the subject. It also discusses security headlines, which emphasize the practical aspect of cryptography; while the math may be sound, implementation mistakes or side-channel attacks often cause vulnerabilities in practice. \ No newline at end of file +* [Security Now](https://grc.com/sn) is a weekly podcast on security. Though it does not go into much detail about the underlying mathematics, there are many episodes on cryptography that provide a working knowledge of the subject. It also discusses security headlines, which emphasize the practical aspect of cryptography; while the math may be sound, implementation mistakes or side-channel attacks often cause vulnerabilities in practice. +
diff --git a/contents/security/sqlInjection.md b/contents/security/sqlInjection.md index 4f0deb2d..2db46335 100644 --- a/contents/security/sqlInjection.md +++ b/contents/security/sqlInjection.md @@ -1,10 +1,13 @@ title: SQL Injection footer: footer.md + head: head.md {{ navbar | safe }} +
+ # SQL Injection Author: [Lewis Koh](https://github.com/nus-cs3281/2018/blob/master/students/lewisKoh/lewisKoh-Resume.md) @@ -175,4 +178,5 @@ Additional Resources: 1. https://github.com/sqlmapproject/sqlmap (Penetration testing tool that detects and exploits SQL injection flaws) 1. https://find-sec-bugs.github.io/ -(Plugin to detect security vulnerabilities in Java web applications, including SQL injection) \ No newline at end of file +(Plugin to detect security vulnerabilities in Java web applications, including SQL injection) +
diff --git a/contents/staticAnalysis/ESLint.md b/contents/staticAnalysis/ESLint.md index 949cc37c..f1a9e8c0 100644 --- a/contents/staticAnalysis/ESLint.md +++ b/contents/staticAnalysis/ESLint.md @@ -1,9 +1,12 @@ title: ESLint footer: footer.md + head: head.md {{ navbar | safe }} + +
# ESLint @@ -137,3 +140,5 @@ A popular plugin would be [eslint-plugin-lodash](https://github.com/wix/eslint-p * [ESLint Github](https://github.com/eslint/eslint): You can contribute to the project but remember to read their [guidelines](https://eslint.org/docs/developer-guide/contributing/) first * [npm Developer Guide](https://docs.npmjs.com/misc/developers): If you're writing your own custom rules/configs, you need to know how to publish them on npm. * [Awesome ESLint](https://github.com/dustinspecker/awesome-eslint): repository for ESLint configs, plugins and other useful links. + +
diff --git a/contents/staticAnalysis/FindBugs.md b/contents/staticAnalysis/FindBugs.md index 0d9d2696..8dc426dc 100644 --- a/contents/staticAnalysis/FindBugs.md +++ b/contents/staticAnalysis/FindBugs.md @@ -1,10 +1,13 @@ title: FindBugs footer: footer.md + head: head.md {{ navbar | safe }} +
+ # FindBugs Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html), [Shradheya Thakre](https://github.com/tshradheya) @@ -142,3 +145,5 @@ The current projects using `FindBugs` can make a shift to `SpotBugs` by followin - [FindBugs Official Website](http://findbugs.sourceforge.net): Official website of FindBugs. You can find more documentations here. - [An Evaluation of FindBugs](http://www.cs.cmu.edu/~aldrich/courses/654/tools/Sandcastle-FindBugs-2009.pdf): Analysis of FindBugs in 2009's version, some content may be outdated. Useful for understanding the benefits and drawbacks. - [Improve the quality of your code](https://www.ibm.com/developerworks/library/j-findbug1/): Some examples showing the bugs reported by FindBugs. You can get a rough idea of how FindBugs will help you in your project. + +
diff --git a/contents/staticAnalysis/PMD.md b/contents/staticAnalysis/PMD.md index 0372684a..65256573 100644 --- a/contents/staticAnalysis/PMD.md +++ b/contents/staticAnalysis/PMD.md @@ -1,10 +1,13 @@ title: PMD footer: footer.md + head: head.md {{ navbar | safe }} +
+ # PMD Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html) @@ -97,4 +100,5 @@ PMD use [JavaCC](http://javacc.org) to parse your code to a [AST(Abstract Syntax ## Resources - [PMD](https://pmd.github.io/): PMD official website. You can download the latest version, view online documentation there. - [PMD Github](https://github.com/pmd/pmd): PMD GitHub page. You can contribute to the project or report bugs there. -- [StackOverflow PMD](https://stackoverflow.com/questions/tagged/pmd): Question/Answer forum in StackOverflow for PMD. You can ask question related to the using of PMD. \ No newline at end of file +- [StackOverflow PMD](https://stackoverflow.com/questions/tagged/pmd): Question/Answer forum in StackOverflow for PMD. You can ask question related to the using of PMD. +
diff --git a/contents/staticAnalysis/checkStyle.md b/contents/staticAnalysis/checkStyle.md index 5946319b..956f445a 100644 --- a/contents/staticAnalysis/checkStyle.md +++ b/contents/staticAnalysis/checkStyle.md @@ -1,10 +1,13 @@ title: CheckStyle footer: footer.md + head: head.md {{ navbar | safe }} +
+ # CheckStyle Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html) @@ -88,4 +91,5 @@ CheckStyle will use [ANTLR](http://www.antlr.org) to parse your code into a [AST ## Resources - [CheckStyle](http://checkstyle.sourceforge.net/): CheckStyle official website. You can download the latest version, view online documentation there. - [CheckStyle Github](https://github.com/checkstyle/checkstyle): CheckStyle GitHub page. You can contribute to the project or report bugs there. -- [StackOverflow CheckStyle](http://stackoverflow.com/questions/tagged/checkstyle): Question/Answer forum in StackOverflow for CheckStyle. You can ask question related to the using of CheckStyle. \ No newline at end of file +- [StackOverflow CheckStyle](http://stackoverflow.com/questions/tagged/checkstyle): Question/Answer forum in StackOverflow for CheckStyle. You can ask question related to the using of CheckStyle. +
diff --git a/contents/staticAnalysis/intro.md b/contents/staticAnalysis/intro.md index 7f060e17..a44be21c 100644 --- a/contents/staticAnalysis/intro.md +++ b/contents/staticAnalysis/intro.md @@ -1,10 +1,13 @@ title: Static Analysis footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Static Analysis Author: [Xiao Pu](https://nus-oss.github.io/cs3281-website/students/AY1617S2/xiaoPu/xiaoPu-Resume.html) @@ -115,3 +118,5 @@ Here, we will introduce several well-known ones in detail. You can click the hyp ## References - [Why Static Code Analysis is Important?](http://javarevisited.blogspot.sg/2014/02/why-static-code-analysis-is-important.html) + +
diff --git a/contents/swift/welcome-to-swift.md b/contents/swift/welcome-to-swift.md index 33ff7f11..5965a027 100644 --- a/contents/swift/welcome-to-swift.md +++ b/contents/swift/welcome-to-swift.md @@ -1,10 +1,13 @@ title: Swift footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Swift Authors: [Ch'ng Ming Shin](https://github.com/ablyx/cs3281-website/blob/mingshin-week6-progress/students/AY1617S2/ch'ngMingShin/Ch'ngMingShin-Resume.md), [Yong Zhi Yuan](https://github.com/Zhiyuan-Amos) @@ -309,4 +312,5 @@ Here is an [article](https://krakendev.io/blog/weak-and-unowned-references-in-sw ## CocoaPods -When you have been working on a Swift project for a while and start to think "Hmm... Someone has probably done something like this before" or "This is a common problem and there should be a library for this", check out [CocoaPods](https://guides.cocoapods.org/using/getting-started.html), THE package/library manager for Swift. \ No newline at end of file +When you have been working on a Swift project for a while and start to think "Hmm... Someone has probably done something like this before" or "This is a common problem and there should be a library for this", check out [CocoaPods](https://guides.cocoapods.org/using/getting-started.html), THE package/library manager for Swift. +
diff --git a/contents/testing/writing-testable-code.md b/contents/testing/writing-testable-code.md index b6782c5e..43a8ec4c 100644 --- a/contents/testing/writing-testable-code.md +++ b/contents/testing/writing-testable-code.md @@ -1,10 +1,13 @@ title: Writing Testable Code footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Writing Testable Code When the project is big enough and needs to be maintainable in the long run, it has to rely on automated tests to keep up its quality. Compared to system testing where you test the program as a whole, unit testing has its benefit for being fast (because it only instantiates a small piece of the program) and stable (because it usually mocks out the unstable dependency, e.g. network connection, database connection). Because of this, having automated unit tests becomes extremely important for Object-Oriented programs. @@ -171,3 +174,5 @@ This closely follows with [Open Closed Principle](https://en.wikipedia.org/wiki/ # Concluding Notes This article includes ten rules that can help you understand some key concepts, such as seams, dependency injection, global states, singletons and Singleton. Also, I hope you can apply these rules into practice, like writing a program with these rules in mind or reviewing some code your wrote before and see whether you can improve its testability, so you can benefit from the things you learn in this article. + +
diff --git a/contents/uix/refining-ux-skills.md b/contents/uix/refining-ux-skills.md index bb7a32dc..71e51f0e 100644 --- a/contents/uix/refining-ux-skills.md +++ b/contents/uix/refining-ux-skills.md @@ -1,10 +1,13 @@ title: Refining UX Design Skills footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Refining UX Design Skills Author: [Tan Jun Kiat](https://github.com/junkiattan) @@ -116,3 +119,5 @@ Know that there are many others before you who were new but successfully went in ## Additional Resource(s) 1. [List of Meetups/Conferences/Resources in Singapore](http://interface.sg/) + +
diff --git a/contents/uix/uix.md b/contents/uix/uix.md index f4047fcb..428a6e9b 100644 --- a/contents/uix/uix.md +++ b/contents/uix/uix.md @@ -1,10 +1,13 @@ title: UI/UX footer: footer.md + head: head.md {{ navbar | safe }} +
+ # UI/UX Authors: [Ang Shi Ya](https://github.com/AngShiYa), [Tan Jun Kiat](https://github.com/junkiattan) @@ -116,3 +119,5 @@ After User Testing and the launch of the final product, the next stage is Mainte ### Ending Notes The clearly-stated objectives and deliverables of each stage culminate in a well-defined target audience and a well-designed prototype needed to match the expectations of that audience. UX Design requires empathy in the users' shoes and effort to address their problems, however all that is worth it in the grand scheme of delighting users when they use your applications. + +
diff --git a/css/asciidoctor.css b/css/asciidoctor.css deleted file mode 100644 index 36590bf3..00000000 --- a/css/asciidoctor.css +++ /dev/null @@ -1,407 +0,0 @@ -/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */ -/* Remove comment around @import statement below when using as a custom stylesheet */ -/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block} -audio,canvas,video{display:inline-block} -audio:not([controls]){display:none;height:0} -[hidden],template{display:none} -script{display:none!important} -html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} -body{margin:0} -a{background:transparent} -a:focus{outline:thin dotted} -a:active,a:hover{outline:0} -h1{font-size:2em;margin:.67em 0} -abbr[title]{border-bottom:1px dotted} -b,strong{font-weight:bold} -dfn{font-style:italic} -hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} -mark{background:#ff0;color:#000} -code,kbd,pre,samp{font-family:monospace;font-size:1em} -pre{white-space:pre-wrap} -q{quotes:"\201C" "\201D" "\2018" "\2019"} -small{font-size:80%} -sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} -sup{top:-.5em} -sub{bottom:-.25em} -img{border:0} -svg:not(:root){overflow:hidden} -figure{margin:0} -fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} -legend{border:0;padding:0} -button,input,select,textarea{font-family:inherit;font-size:100%;margin:0} -button,input{line-height:normal} -button,select{text-transform:none} -button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer} -button[disabled],html input[disabled]{cursor:default} -input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0} -input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} -input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none} -button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} -textarea{overflow:auto;vertical-align:top} -table{border-collapse:collapse;border-spacing:0} -*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} -html,body{font-size:100%} -body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto} -a:hover{cursor:pointer} -img,object,embed{max-width:100%;height:auto} -object,embed{height:100%} -img{-ms-interpolation-mode:bicubic} -.left{float:left!important} -.right{float:right!important} -.text-left{text-align:left!important} -.text-right{text-align:right!important} -.text-center{text-align:center!important} -.text-justify{text-align:justify!important} -.hide{display:none} -body{-webkit-font-smoothing:antialiased} -img,object,svg{display:inline-block;vertical-align:middle} -textarea{height:auto;min-height:50px} -select{width:100%} -.center{margin-left:auto;margin-right:auto} -.spread{width:100%} -p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6} -.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} -div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr} -a{color:#2156a5;text-decoration:underline;line-height:inherit} -a:hover,a:focus{color:#1d4b8f} -a img{border:none} -p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility} -p aside{font-size:.875em;line-height:1.35;font-style:italic} -h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em} -h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0} -h1{font-size:2.125em} -h2{font-size:1.6875em} -h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em} -h4,h5{font-size:1.125em} -h6{font-size:1em} -hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0} -em,i{font-style:italic;line-height:inherit} -strong,b{font-weight:bold;line-height:inherit} -small{font-size:60%;line-height:inherit} -code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)} -ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit} -ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em} -ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em} -ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit} -ul.square{list-style-type:square} -ul.circle{list-style-type:circle} -ul.disc{list-style-type:disc} -ul.no-bullet{list-style:none} -ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0} -dl dt{margin-bottom:.3125em;font-weight:bold} -dl dd{margin-bottom:1.25em} -abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help} -abbr{text-transform:none} -blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd} -blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)} -blockquote cite:before{content:"\2014 \0020"} -blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)} -blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)} -@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2} -h1{font-size:2.75em} -h2{font-size:2.3125em} -h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} -h4{font-size:1.4375em}} -table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede} -table thead,table tfoot{background:#f7f8f7;font-weight:bold} -table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} -table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} -table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7} -table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6} -body{tab-size:4} -h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} -h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} -.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table} -.clearfix:after,.float-group:after{clear:both} -*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed} -pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed} -.keyseq{color:rgba(51,51,51,.8)} -kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap} -.keyseq kbd:first-child{margin-left:0} -.keyseq kbd:last-child{margin-right:0} -.menuseq,.menu{color:rgba(0,0,0,.8)} -b.button:before,b.button:after{position:relative;top:-1px;font-weight:400} -b.button:before{content:"[";padding:0 3px 0 2px} -b.button:after{content:"]";padding:0 2px 0 3px} -p a>code:hover{color:rgba(0,0,0,.9)} -#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em} -#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table} -#header:after,#content:after,#footnotes:after,#footer:after{clear:both} -#content{margin-top:1.25em} -#content:before{content:none} -#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} -#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8} -#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px} -#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap} -#header .details span:first-child{margin-left:-.125em} -#header .details span.email a{color:rgba(0,0,0,.85)} -#header .details br{display:none} -#header .details br+span:before{content:"\00a0\2013\00a0"} -#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)} -#header .details br+span#revremark:before{content:"\00a0|\00a0"} -#header #revnumber{text-transform:capitalize} -#header #revnumber:after{content:"\00a0"} -#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem} -#toc{border-bottom:1px solid #efefed;padding-bottom:.5em} -#toc>ul{margin-left:.125em} -#toc ul.sectlevel0>li>a{font-style:italic} -#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0} -#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none} -#toc li{line-height:1.3334;margin-top:.3334em} -#toc a{text-decoration:none} -#toc a:active{text-decoration:underline} -#toctitle{color:#7a2518;font-size:1.2em} -@media only screen and (min-width:768px){#toctitle{font-size:1.375em} -body.toc2{padding-left:15em;padding-right:0} -#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto} -#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em} -#toc.toc2>ul{font-size:.9em;margin-bottom:0} -#toc.toc2 ul ul{margin-left:0;padding-left:1em} -#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em} -body.toc2.toc-right{padding-left:0;padding-right:15em} -body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}} -@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0} -#toc.toc2{width:20em} -#toc.toc2 #toctitle{font-size:1.375em} -#toc.toc2>ul{font-size:.95em} -#toc.toc2 ul ul{padding-left:1.25em} -body.toc2.toc-right{padding-left:0;padding-right:20em}} -#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} -#content #toc>:first-child{margin-top:0} -#content #toc>:last-child{margin-bottom:0} -#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em} -#footer-text{color:rgba(255,255,255,.8);line-height:1.44} -.sect1{padding-bottom:.625em} -@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}} -.sect1+.sect1{border-top:1px solid #efefed} -#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400} -#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em} -#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible} -#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none} -#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} -.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} -.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic} -table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0} -.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)} -table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit} -.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%} -.admonitionblock>table td.icon{text-align:center;width:80px} -.admonitionblock>table td.icon img{max-width:none} -.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} -.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)} -.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} -.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px} -.exampleblock>.content>:first-child{margin-top:0} -.exampleblock>.content>:last-child{margin-bottom:0} -.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} -.sidebarblock>:first-child{margin-top:0} -.sidebarblock>:last-child{margin-bottom:0} -.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} -.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0} -.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8} -.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1} -.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em} -.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal} -@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}} -@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}} -.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)} -.listingblock pre.highlightjs{padding:0} -.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px} -.listingblock pre.prettyprint{border-width:0} -.listingblock>.content{position:relative} -.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999} -.listingblock:hover code[data-lang]:before{display:block} -.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999} -.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"} -table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none} -table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45} -table.pyhltable td.code{padding-left:.75em;padding-right:0} -pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8} -pre.pygments .lineno{display:inline-block;margin-right:.25em} -table.pyhltable .linenodiv{background:none!important;padding-right:0!important} -.quoteblock{margin:0 1em 1.25em 1.5em;display:table} -.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em} -.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} -.quoteblock blockquote{margin:0;padding:0;border:0} -.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)} -.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0} -.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right} -.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)} -.quoteblock .quoteblock blockquote{padding:0 0 0 .75em} -.quoteblock .quoteblock blockquote:before{display:none} -.verseblock{margin:0 1em 1.25em 1em} -.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility} -.verseblock pre strong{font-weight:400} -.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex} -.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic} -.quoteblock .attribution br,.verseblock .attribution br{display:none} -.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)} -.quoteblock.abstract{margin:0 0 1.25em 0;display:block} -.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0} -.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none} -table.tableblock{max-width:100%;border-collapse:separate} -table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0} -table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} -table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0} -table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0} -table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0} -table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0} -table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0} -table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0} -table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0} -table.frame-all{border-width:1px} -table.frame-sides{border-width:0 1px} -table.frame-topbot{border-width:1px 0} -th.halign-left,td.halign-left{text-align:left} -th.halign-right,td.halign-right{text-align:right} -th.halign-center,td.halign-center{text-align:center} -th.valign-top,td.valign-top{vertical-align:top} -th.valign-bottom,td.valign-bottom{vertical-align:bottom} -th.valign-middle,td.valign-middle{vertical-align:middle} -table thead th,table tfoot th{font-weight:bold} -tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7} -tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} -p.tableblock>code:only-child{background:none;padding:0} -p.tableblock{font-size:1em} -td>div.verse{white-space:pre} -ol{margin-left:1.75em} -ul li ol{margin-left:1.5em} -dl dd{margin-left:1.125em} -dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} -ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} -ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none} -ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em} -ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em} -ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px} -ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden} -ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block} -ul.inline>li>*{display:block} -.unstyled dl dt{font-weight:400;font-style:normal} -ol.arabic{list-style-type:decimal} -ol.decimal{list-style-type:decimal-leading-zero} -ol.loweralpha{list-style-type:lower-alpha} -ol.upperalpha{list-style-type:upper-alpha} -ol.lowerroman{list-style-type:lower-roman} -ol.upperroman{list-style-type:upper-roman} -ol.lowergreek{list-style-type:lower-greek} -.hdlist>table,.colist>table{border:0;background:none} -.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} -td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} -td.hdlist1{font-weight:bold;padding-bottom:1.25em} -.literalblock+.colist,.listingblock+.colist{margin-top:-.5em} -.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1} -.colist>table tr>td:last-of-type{padding:.25em 0} -.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd} -.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0} -.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em} -.imageblock>.title{margin-bottom:0} -.imageblock.thumb,.imageblock.th{border-width:6px} -.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em} -.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0} -.image.left{margin-right:.625em} -.image.right{margin-left:.625em} -a.image{text-decoration:none;display:inline-block} -a.image object{pointer-events:none} -sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super} -sup.footnote a,sup.footnoteref a{text-decoration:none} -sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline} -#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em} -#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0} -#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em} -#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none} -#footnotes .footnote:last-of-type{margin-bottom:0} -#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} -.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0} -.gist .file-data>table td.line-data{width:99%} -div.unbreakable{page-break-inside:avoid} -.big{font-size:larger} -.small{font-size:smaller} -.underline{text-decoration:underline} -.overline{text-decoration:overline} -.line-through{text-decoration:line-through} -.aqua{color:#00bfbf} -.aqua-background{background-color:#00fafa} -.black{color:#000} -.black-background{background-color:#000} -.blue{color:#0000bf} -.blue-background{background-color:#0000fa} -.fuchsia{color:#bf00bf} -.fuchsia-background{background-color:#fa00fa} -.gray{color:#606060} -.gray-background{background-color:#7d7d7d} -.green{color:#006000} -.green-background{background-color:#007d00} -.lime{color:#00bf00} -.lime-background{background-color:#00fa00} -.maroon{color:#600000} -.maroon-background{background-color:#7d0000} -.navy{color:#000060} -.navy-background{background-color:#00007d} -.olive{color:#606000} -.olive-background{background-color:#7d7d00} -.purple{color:#600060} -.purple-background{background-color:#7d007d} -.red{color:#bf0000} -.red-background{background-color:#fa0000} -.silver{color:#909090} -.silver-background{background-color:#bcbcbc} -.teal{color:#006060} -.teal-background{background-color:#007d7d} -.white{color:#bfbfbf} -.white-background{background-color:#fafafa} -.yellow{color:#bfbf00} -.yellow-background{background-color:#fafa00} -span.icon>.fa{cursor:default} -.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} -.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c} -.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111} -.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900} -.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400} -.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000} -.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold} -.conum[data-value] *{color:#fff!important} -.conum[data-value]+b{display:none} -.conum[data-value]:after{content:attr(data-value)} -pre .conum[data-value]{position:relative;top:-.125em} -b.conum *{color:inherit!important} -.conum:not([data-value]):empty{display:none} -dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility} -h1,h2,p,td.content,span.alt{letter-spacing:-.01em} -p strong,td.content strong,div.footnote strong{letter-spacing:-.005em} -p,blockquote,dt,td.content,span.alt{font-size:1.0625rem} -p{margin-bottom:1.25rem} -.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em} -.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc} -.print-only{display:none!important} -@media print{@page{margin:1.25cm .75cm} -*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important} -a{color:inherit!important;text-decoration:underline!important} -a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important} -a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em} -abbr[title]:after{content:" (" attr(title) ")"} -pre,blockquote,tr,img,object,svg{page-break-inside:avoid} -thead{display:table-header-group} -svg{max-width:100%} -p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} -h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} -#toc,.sidebarblock,.exampleblock>.content{background:none!important} -#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important} -.sect1{padding-bottom:0!important} -.sect1+.sect1{border:0!important} -#header>h1:first-child{margin-top:1.25rem} -body.book #header{text-align:center} -body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0} -body.book #header .details{border:0!important;display:block;padding:0!important} -body.book #header .details span:first-child{margin-left:0!important} -body.book #header .details br{display:block} -body.book #header .details br+span:before{content:none!important} -body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important} -body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always} -.listingblock code[data-lang]:before{display:block} -#footer{background:none!important;padding:0 .9375em} -#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em} -.hide-on-print{display:none!important} -.print-only{display:block!important} -.hide-for-print{display:none!important} -.show-for-print{display:inherit!important}} diff --git a/css/gh-pages.css b/css/gh-pages.css index 121cac38..e4205995 100644 --- a/css/gh-pages.css +++ b/css/gh-pages.css @@ -1,5 +1,4 @@ @import url(https://fonts.googleapis.com/css?family=Montserrat|Open+Sans); -@import "asciidoctor.css"; /* Default asciidoc style framework - important */ /* Custom block: details */ @@ -112,6 +111,7 @@ table.tableblock > .title, .navbar-lg { font-size: 1.3rem; + line-height: 1; } .navbar-light { @@ -195,7 +195,7 @@ table.tableblock > .title, line-height: inherit; } -.nav-link { +.navbar-expand .navbar-nav .nav-link { display: block; margin: 0px; border: 0px; @@ -212,3 +212,22 @@ table.tableblock > .title, display: none; } } + +#app.container-fluid { + padding: 0; +} + +footer { + margin: 0; +} + +.website-content { + width: 100%; + max-width: 62.5rem; + margin-left: auto; + margin-right: auto; +} + +#site-header { + margin-bottom: 2.25rem; +} diff --git a/index.md b/index.md index 55b6294b..873095d3 100644 --- a/index.md +++ b/index.md @@ -1,10 +1,13 @@ title: "Learning Resources for Software Engineering Students" footer: footer.md + head: head.md {{ navbar | safe }} +
+ # Learning Resources for Software Engineering Students This repository is a collection of Software Engineering learning resources. @@ -80,3 +83,5 @@ This repository is a collection of Software Engineering learning resources. [Guidelines for Contributors](GuidelinesForContributors.html) | [Contact](Contact.html) | License: MIT + +