search_index.json 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. {
  2. "docs": [
  3. {
  4. "location": "/",
  5. "text": "Welcome\n\n\nI made some projects and published them on \nGitHub\n.\nIn this space, you will find some of them. Basiclly, these pages are \nREADME\n files but with some adds and demos.\n\n\nDifferent projects for different needs :\n\n\n\n\nDevelopment\n\n\nJava\n\n\nSpringboot / React / Webpack\n\n\n\n\n\n\nNodeJS\n\n\nCloudBudget\n (Express)\n\n\nProject deployer\n (Meteor)\n\n\n\n\n\n\nClient-side\n\n\nCloudBudget-AngularJS\n (Express / AngularJS)\n\n\nDurandal filebrowser widget\n (DurandalJS)\n\n\n\n\n\n\n\n\n\n\nDocker\n\n\nFullstack servers\n\n\nLog centralizer\n ELK stack with Kafka\n\n\nGoCD\n GoCD server and agents\n\n\n\n\n\n\nUtilities\n\n\nApache log generator\n\n\n\n\n\n\n\n\n\n\nJavascript games\n\n\nSpace invaders\n\n\nPacman\n\n\nPyramid\n\n\nYahtzee",
  6. "title": "Home"
  7. },
  8. {
  9. "location": "/#welcome",
  10. "text": "I made some projects and published them on GitHub .\nIn this space, you will find some of them. Basiclly, these pages are README files but with some adds and demos. Different projects for different needs : Development Java Springboot / React / Webpack NodeJS CloudBudget (Express) Project deployer (Meteor) Client-side CloudBudget-AngularJS (Express / AngularJS) Durandal filebrowser widget (DurandalJS) Docker Fullstack servers Log centralizer ELK stack with Kafka GoCD GoCD server and agents Utilities Apache log generator Javascript games Space invaders Pacman Pyramid Yahtzee",
  11. "title": "Welcome"
  12. },
  13. {
  14. "location": "/development/cloudbudget/",
  15. "text": "Introduction \n \n\n\nCloudbudget is a work-in-progress online Money-like application.\n\n\nIt's written using ExpressJS and provided only REST services. The web interface is in a different project \nCloudBugdet-AngularJS\n.\n\n\nRequirements\n\n\nCloudBudget needs a Mongo database. Database configuration is done in the \nconfig/db.js\n file.\n\n\nThe environment mode is defined by the environment variable NODE_ENV.\n\n\nFeatures\n\n\nThe following features are developed:\n\n\n\n\nAPI security done with JWT\n\n\nAPI documentation\n\n\nUser log on / log in\n\n\nUser deregistration\n\n\nBank account CRUD\n\n\nBank accounts listing\n\n\nDeposit / Bill entry CRUD\n\n\nDeposit / Bill entries listing\n\n\n\n\nUsage\n\n\nTo initialize the application, install all dependencies with\n\n\nnpm install\n\n\n\n\nTo launch CloudBudget, use the following command :\n\n\nNODE_ENV=development node app.js\n\n\n\n\nIf the PORT environment variable is set, it will be used, if not, the default port is 3000.\nThe server configuration is done with the \nconfig/server.js\n file.\n\n\nAPI documentation\n\n\nThe root URL is linked to the API documentation.\nThe API documentation is generated with apidocs into the \npublic\n folder. To generate it, use the following command :\n\n\nnpm run-script generate-doc\n\n\n\n\n\n\n\n \nFork me on GitHub",
  16. "title": "Cloudbudget"
  17. },
  18. {
  19. "location": "/development/cloudbudget/#introduction",
  20. "text": "Cloudbudget is a work-in-progress online Money-like application. It's written using ExpressJS and provided only REST services. The web interface is in a different project CloudBugdet-AngularJS .",
  21. "title": "Introduction"
  22. },
  23. {
  24. "location": "/development/cloudbudget/#requirements",
  25. "text": "CloudBudget needs a Mongo database. Database configuration is done in the config/db.js file. The environment mode is defined by the environment variable NODE_ENV.",
  26. "title": "Requirements"
  27. },
  28. {
  29. "location": "/development/cloudbudget/#features",
  30. "text": "The following features are developed: API security done with JWT API documentation User log on / log in User deregistration Bank account CRUD Bank accounts listing Deposit / Bill entry CRUD Deposit / Bill entries listing",
  31. "title": "Features"
  32. },
  33. {
  34. "location": "/development/cloudbudget/#usage",
  35. "text": "To initialize the application, install all dependencies with npm install To launch CloudBudget, use the following command : NODE_ENV=development node app.js If the PORT environment variable is set, it will be used, if not, the default port is 3000.\nThe server configuration is done with the config/server.js file.",
  36. "title": "Usage"
  37. },
  38. {
  39. "location": "/development/cloudbudget/#api-documentation",
  40. "text": "The root URL is linked to the API documentation.\nThe API documentation is generated with apidocs into the public folder. To generate it, use the following command : npm run-script generate-doc \n Fork me on GitHub",
  41. "title": "API documentation"
  42. },
  43. {
  44. "location": "/development/cloudbudget_angularjs/",
  45. "text": "Introduction \n \n\n\nCloudbudget-AngularJS is a work-in-progress web application for \nCloudBugdet\n written in AngularJS.\n\n\nRequirements\n\n\nCloudBudget-AngularJS needs a running CloudBudget instance. The access to this instance is set in the \npublic/js/app.js\n file with the \nHOST\n variable.\n\n\nFeatures\n\n\nThis web application covers all CloudBudget features.\n\n\nUsage\n\n\nTo initialize the application, install all dependencies with\n\n\nnpm install\n\n\n\n\nTo launch CloudBudget, use the following command :\n\n\nNODE_ENV=development node app.js\n\n\n\n\nIf the PORT environment variable is set, it will be used, if not, the default port is 3000.\nThe server configuration is done with the \nconfig/server.js\n file.\n\n\n\n\n\n \nFork me on GitHub",
  46. "title": "Cloudbudget angularjs"
  47. },
  48. {
  49. "location": "/development/cloudbudget_angularjs/#introduction",
  50. "text": "Cloudbudget-AngularJS is a work-in-progress web application for CloudBugdet written in AngularJS.",
  51. "title": "Introduction"
  52. },
  53. {
  54. "location": "/development/cloudbudget_angularjs/#requirements",
  55. "text": "CloudBudget-AngularJS needs a running CloudBudget instance. The access to this instance is set in the public/js/app.js file with the HOST variable.",
  56. "title": "Requirements"
  57. },
  58. {
  59. "location": "/development/cloudbudget_angularjs/#features",
  60. "text": "This web application covers all CloudBudget features.",
  61. "title": "Features"
  62. },
  63. {
  64. "location": "/development/cloudbudget_angularjs/#usage",
  65. "text": "To initialize the application, install all dependencies with npm install To launch CloudBudget, use the following command : NODE_ENV=development node app.js If the PORT environment variable is set, it will be used, if not, the default port is 3000.\nThe server configuration is done with the config/server.js file. \n Fork me on GitHub",
  66. "title": "Usage"
  67. },
  68. {
  69. "location": "/development/filebrowser_durandal_widget/",
  70. "text": "Durandal Filebrowser widget\n\n\nWhat's this widget ?\n\n\nThis \nDurandal\n widget allows to display a folder tree and add some actions to manipulate this items :\n\n\n\n\nA clic on a file or folder selects it\n\n\nA double-clic opens / closes a folder\n\n\nA double-clic displays the file content in the editor\n\n\nA right-clic opens a context menu with different options\n\n\nRename the item\n\n\nCopy the selected item(s)\n\n\nPaste the selected item(s)\n\n\nCreate an item (in a folder)\n\n\nDelete an item (and its components)\n\n\n\n\n\n\n\n\nDemo\n\n\n\n \n \n\n \n\n\n\n\n \n\n\nLicence\n\n\nSource code is under \nMIT Licence\n \n\n\n\n\n\n \nFork me on GitHub",
  71. "title": "Filebrowser durandal widget"
  72. },
  73. {
  74. "location": "/development/filebrowser_durandal_widget/#durandal-filebrowser-widget",
  75. "text": "",
  76. "title": "Durandal Filebrowser widget"
  77. },
  78. {
  79. "location": "/development/filebrowser_durandal_widget/#whats-this-widget",
  80. "text": "This Durandal widget allows to display a folder tree and add some actions to manipulate this items : A clic on a file or folder selects it A double-clic opens / closes a folder A double-clic displays the file content in the editor A right-clic opens a context menu with different options Rename the item Copy the selected item(s) Paste the selected item(s) Create an item (in a folder) Delete an item (and its components)",
  81. "title": "What's this widget ?"
  82. },
  83. {
  84. "location": "/development/filebrowser_durandal_widget/#demo",
  85. "text": "",
  86. "title": "Demo"
  87. },
  88. {
  89. "location": "/development/filebrowser_durandal_widget/#licence",
  90. "text": "Source code is under MIT Licence \n Fork me on GitHub",
  91. "title": "Licence"
  92. },
  93. {
  94. "location": "/development/project_deployer/",
  95. "text": "Introduction\n\n\nProjectDeployer is a work-in-progress web application to deploy Git projects on a server written with Meteor.\n\n\nFeatures\n\n\nIn ProjectDeployer, it's possible to :\n\n\n\n\nregister / modify / delete Git project\n\n\ndeployment is \n\n\nsee deployment logs for each project\n\n\n\n\nUsage\n\n\nThe location for deployed projects is set in the \nserver/constants.js\n file with the \nDEPLOYMENT_FOLDER\n variable.\n\n\nTo launch ProjectDeployer, use the following command :\n\n\nmeteor --port $IP:$PORT\n\n\n\n\n\n\n\n \nFork me on GitHub",
  96. "title": "Project deployer"
  97. },
  98. {
  99. "location": "/development/project_deployer/#introduction",
  100. "text": "ProjectDeployer is a work-in-progress web application to deploy Git projects on a server written with Meteor.",
  101. "title": "Introduction"
  102. },
  103. {
  104. "location": "/development/project_deployer/#features",
  105. "text": "In ProjectDeployer, it's possible to : register / modify / delete Git project deployment is see deployment logs for each project",
  106. "title": "Features"
  107. },
  108. {
  109. "location": "/development/project_deployer/#usage",
  110. "text": "The location for deployed projects is set in the server/constants.js file with the DEPLOYMENT_FOLDER variable. To launch ProjectDeployer, use the following command : meteor --port $IP:$PORT \n Fork me on GitHub",
  111. "title": "Usage"
  112. },
  113. {
  114. "location": "/development/springboot_react_webpack/",
  115. "text": "springboot-react-webpack\n\n\nA demo project with Spring Boot, React and Webpack\n\n\nThis project includes :\n\n\n\n\nSpring Boot as backend resource\n\n\nReact as client JS framework\n\n\nwebpack to translate JSX to JS and manage client resources link\n\n\nmaven-release-plugin\n\n\ncf-maven-plugin\n\n\ndocker-maven-plugin (from Spotify)\n\n\n\n\nProfile\n\n\nThere are 3 profiles :\n\n\n\n\nthe default one (without specification) is for development mode.\n\n\nproduction\n used to generate the production ready client resources\n\n\ndocker\n to access to the Docker plugin and generate an image\n\n\n\n\nLaunching\n\n\nTo launch this project, just use the following command line :\n\n\nIn development mode :\n\n\nmvn clean spring-boot:run\nnpm run watch\n\n\n\n\nIn production mode :\n\n\nmvn clean spring-boot:run -P production\n\n\n\n\nWithout a profile, you have to run the webpack watcher to deliver client resources. With the \nproduction\n profile, no needs to launch the wepback watcher.\n\n\nConfiguration\n\n\nTo use the CloudFoundry and Release plugins, the \nsettings.xml\n must contains the following lines :\n\n\n \nservers\n\n \nserver\n\n \nid\ncloudfoundry\n/id\n\n \nusername\nusername\n/username\n\n \npassword\npassword\n/password\n\n \n/server\n\n \nserver\n\n \nid\ngithub\n/id\n\n \nusername\nusername\n/username\n\n \npassword\npassword\n/password\n\n \n/server\n\n \n/servers\n\n\n\n\n\nSpring Boot\n\n\nSpring Boot is used as the backend server. It provides the HTML pages and the REST endpoints.\nReact is server side compiled at runtime using nashorn.\n\n\nReact\n\n\nReact is the client side library. It's possible to write JSX which will be translate by webpack.\n\n\nWebpack\n\n\nConfiguration\n\n\nWebpack configuration is done by the \nwebpack.config.js\n file at the project's root.\n\n\nUsage\n\n\nWebpack is launched at the \ngenerate-resources\n maven phase.\nIn this configuration, webpack provides resources (JS and CSS) for commons librairies and custom JS scripts. It takes in account LESS. The HTML final resource is generated from a template adding the needed resources.\nUsing the default profile and the watcher, the HotModuleReplacement module is activated, so no need to refresh the page when updating a JS or a CSS, webpack does it.\n\n\nPlugin release\n\n\nConfiguration\n\n\nTo manage the release process with Git, you have to replace the link in the \ndeveloperConnection\n tag with the Git project URL.\n\n\nUsage\n\n\nThe \nmaven-release-plugin\n allows to release an app tagging the repository. A release is :\n\n changing from SNAPSHOT to stable\n\n creating a tag (locally and remotely)\n* increasing the SNAPSHOT version\n\n\nTwo steps :\n\n\nmvn release:prepare\nmvn release:perform\n\n\n\n\nTo rollback a \nprepare\n :\n\n\nmvn release:rollback\n\n\n\n\nTo test the release :\n\n\nmvn -DdryRun=true release:prepare\nmvn release:clean (test cleaning)\n\n\n\n\nDocumentation\n\n\nhttps://maven.apache.org/maven-release/maven-release-plugin/index.html\n\n\nPlugin CloudFoundry\n\n\nConfiguration\n\n\nChange the \nTOFILL\n strings in the comment plugin's section.\n\n\nUsage\n\n\nThe \ncf-maven-plugin\n plugin allows to manage the application in a CloudFoundry platform and specifically to push it :\n\n\nmvn cf:push\n\n\n\n\nDocumentation\n\n\nhttp://docs.cloudfoundry.org/buildpacks/java/build-tool-int.html\n\n\nPlugin Docker\n\n\nConfiguration\n\n\nThe \ndocker-maven-plugin\n (from Spotify) plugin has no configuration.\n\n\nUsage\n\n\nThe default project packaging (for CloudFoundry) is a WAR. In the Docker image, we use a JAR. To use this plugin (and the correct packaging), use the \ndocker\n profile :\n\n\nmvn package -P docker\n\n\n\n\nThis command generates a local Docker image. To manage it, use the \ndocker\n profile to access the \ndocker-maven-plugin\n (such as push it).\n\n\nDocumentation\n\n\nhttps://github.com/spotify/docker-maven-plugin\n\n\n\n\n\n \nFork me on GitHub",
  116. "title": "Springboot react webpack"
  117. },
  118. {
  119. "location": "/development/springboot_react_webpack/#springboot-react-webpack",
  120. "text": "A demo project with Spring Boot, React and Webpack This project includes : Spring Boot as backend resource React as client JS framework webpack to translate JSX to JS and manage client resources link maven-release-plugin cf-maven-plugin docker-maven-plugin (from Spotify)",
  121. "title": "springboot-react-webpack"
  122. },
  123. {
  124. "location": "/development/springboot_react_webpack/#profile",
  125. "text": "There are 3 profiles : the default one (without specification) is for development mode. production used to generate the production ready client resources docker to access to the Docker plugin and generate an image",
  126. "title": "Profile"
  127. },
  128. {
  129. "location": "/development/springboot_react_webpack/#launching",
  130. "text": "To launch this project, just use the following command line : In development mode : mvn clean spring-boot:run\nnpm run watch In production mode : mvn clean spring-boot:run -P production Without a profile, you have to run the webpack watcher to deliver client resources. With the production profile, no needs to launch the wepback watcher.",
  131. "title": "Launching"
  132. },
  133. {
  134. "location": "/development/springboot_react_webpack/#configuration",
  135. "text": "To use the CloudFoundry and Release plugins, the settings.xml must contains the following lines : servers \n server \n id cloudfoundry /id \n username username /username \n password password /password \n /server \n server \n id github /id \n username username /username \n password password /password \n /server \n /servers",
  136. "title": "Configuration"
  137. },
  138. {
  139. "location": "/development/springboot_react_webpack/#spring-boot",
  140. "text": "Spring Boot is used as the backend server. It provides the HTML pages and the REST endpoints.\nReact is server side compiled at runtime using nashorn.",
  141. "title": "Spring Boot"
  142. },
  143. {
  144. "location": "/development/springboot_react_webpack/#react",
  145. "text": "React is the client side library. It's possible to write JSX which will be translate by webpack.",
  146. "title": "React"
  147. },
  148. {
  149. "location": "/development/springboot_react_webpack/#webpack",
  150. "text": "",
  151. "title": "Webpack"
  152. },
  153. {
  154. "location": "/development/springboot_react_webpack/#configuration_1",
  155. "text": "Webpack configuration is done by the webpack.config.js file at the project's root.",
  156. "title": "Configuration"
  157. },
  158. {
  159. "location": "/development/springboot_react_webpack/#usage",
  160. "text": "Webpack is launched at the generate-resources maven phase.\nIn this configuration, webpack provides resources (JS and CSS) for commons librairies and custom JS scripts. It takes in account LESS. The HTML final resource is generated from a template adding the needed resources.\nUsing the default profile and the watcher, the HotModuleReplacement module is activated, so no need to refresh the page when updating a JS or a CSS, webpack does it.",
  161. "title": "Usage"
  162. },
  163. {
  164. "location": "/development/springboot_react_webpack/#plugin-release",
  165. "text": "",
  166. "title": "Plugin release"
  167. },
  168. {
  169. "location": "/development/springboot_react_webpack/#configuration_2",
  170. "text": "To manage the release process with Git, you have to replace the link in the developerConnection tag with the Git project URL.",
  171. "title": "Configuration"
  172. },
  173. {
  174. "location": "/development/springboot_react_webpack/#usage_1",
  175. "text": "The maven-release-plugin allows to release an app tagging the repository. A release is : changing from SNAPSHOT to stable creating a tag (locally and remotely)\n* increasing the SNAPSHOT version Two steps : mvn release:prepare\nmvn release:perform To rollback a prepare : mvn release:rollback To test the release : mvn -DdryRun=true release:prepare\nmvn release:clean (test cleaning)",
  176. "title": "Usage"
  177. },
  178. {
  179. "location": "/development/springboot_react_webpack/#documentation",
  180. "text": "https://maven.apache.org/maven-release/maven-release-plugin/index.html",
  181. "title": "Documentation"
  182. },
  183. {
  184. "location": "/development/springboot_react_webpack/#plugin-cloudfoundry",
  185. "text": "",
  186. "title": "Plugin CloudFoundry"
  187. },
  188. {
  189. "location": "/development/springboot_react_webpack/#configuration_3",
  190. "text": "Change the TOFILL strings in the comment plugin's section.",
  191. "title": "Configuration"
  192. },
  193. {
  194. "location": "/development/springboot_react_webpack/#usage_2",
  195. "text": "The cf-maven-plugin plugin allows to manage the application in a CloudFoundry platform and specifically to push it : mvn cf:push",
  196. "title": "Usage"
  197. },
  198. {
  199. "location": "/development/springboot_react_webpack/#documentation_1",
  200. "text": "http://docs.cloudfoundry.org/buildpacks/java/build-tool-int.html",
  201. "title": "Documentation"
  202. },
  203. {
  204. "location": "/development/springboot_react_webpack/#plugin-docker",
  205. "text": "",
  206. "title": "Plugin Docker"
  207. },
  208. {
  209. "location": "/development/springboot_react_webpack/#configuration_4",
  210. "text": "The docker-maven-plugin (from Spotify) plugin has no configuration.",
  211. "title": "Configuration"
  212. },
  213. {
  214. "location": "/development/springboot_react_webpack/#usage_3",
  215. "text": "The default project packaging (for CloudFoundry) is a WAR. In the Docker image, we use a JAR. To use this plugin (and the correct packaging), use the docker profile : mvn package -P docker This command generates a local Docker image. To manage it, use the docker profile to access the docker-maven-plugin (such as push it).",
  216. "title": "Usage"
  217. },
  218. {
  219. "location": "/development/springboot_react_webpack/#documentation_2",
  220. "text": "https://github.com/spotify/docker-maven-plugin \n Fork me on GitHub",
  221. "title": "Documentation"
  222. },
  223. {
  224. "location": "/docker/docker_apache_log_generator/",
  225. "text": "Docker Apache log generator\n\n\nThis is a simple Docker container to provide random apache logs.\nIt's based on \nFake-Apache-Log-Generator\n\n\nThe default behaviour is the following :\n\n\npython apache-fake-log-gen.py -o LOG -p /var/log/apache/apache -n 0 -s 3\n\n\n\n\nThe endless generated file is located in /var/log and a line is appended every 3 seconds.\n\n\nTimezone\n\n\nYou can change the timezone mounting \n/etc/timezone\n and \n/etc/localtime\n files with a file content such as :\n\n\nEurope/Paris\n\n\n\n\nLicences\n\n\nCopyright (c) 2017 Fabrice ECAILLE aka Febbweiss\n\n\nPermission 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:\n\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n\nTHE 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.\n\n\n\n\n\n \nFork me on GitHub",
  226. "title": "Docker apache log generator"
  227. },
  228. {
  229. "location": "/docker/docker_apache_log_generator/#docker-apache-log-generator",
  230. "text": "This is a simple Docker container to provide random apache logs.\nIt's based on Fake-Apache-Log-Generator The default behaviour is the following : python apache-fake-log-gen.py -o LOG -p /var/log/apache/apache -n 0 -s 3 The endless generated file is located in /var/log and a line is appended every 3 seconds.",
  231. "title": "Docker Apache log generator"
  232. },
  233. {
  234. "location": "/docker/docker_apache_log_generator/#timezone",
  235. "text": "You can change the timezone mounting /etc/timezone and /etc/localtime files with a file content such as : Europe/Paris",
  236. "title": "Timezone"
  237. },
  238. {
  239. "location": "/docker/docker_apache_log_generator/#licences",
  240. "text": "Copyright (c) 2017 Fabrice ECAILLE aka Febbweiss 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. \n Fork me on GitHub",
  241. "title": "Licences"
  242. },
  243. {
  244. "location": "/docker/docker_gocd/",
  245. "text": "Docker GoCD\n\n\nGoCD is a Continuous Delivery solution. This project embedded different containers such as a server and nodes.\n\n\nEmbedded containers\n\n\n\n\nGoCD server\n - The main container based on Debian image\n\n\nCloudfoundry agent\n - A node to deploy on CloudFoundry based on alpine image\n\n\nDocker agent\n - A node to build and deploy Docker containers based on docker image\n\n\nJava agent\n - A node to manage Java applications (compile / build) based on alpine-oraclejdk8 image\n\n\nNodeJS agent\n - A node to manage NodeJS applications (compile / build) based on Debian image\n\n\nGeneric agent\n - A node providing Java and NodeJS applications management based on Node image\n\n\n\n\nUsage\n\n\nThe full stack is manage with docker-compose. So, to launch it, just use\n\n\ndocker-compose up\n\n\n\n\n\n\n\n \nFork me on GitHub",
  246. "title": "Docker gocd"
  247. },
  248. {
  249. "location": "/docker/docker_gocd/#docker-gocd",
  250. "text": "GoCD is a Continuous Delivery solution. This project embedded different containers such as a server and nodes.",
  251. "title": "Docker GoCD"
  252. },
  253. {
  254. "location": "/docker/docker_gocd/#embedded-containers",
  255. "text": "GoCD server - The main container based on Debian image Cloudfoundry agent - A node to deploy on CloudFoundry based on alpine image Docker agent - A node to build and deploy Docker containers based on docker image Java agent - A node to manage Java applications (compile / build) based on alpine-oraclejdk8 image NodeJS agent - A node to manage NodeJS applications (compile / build) based on Debian image Generic agent - A node providing Java and NodeJS applications management based on Node image",
  256. "title": "Embedded containers"
  257. },
  258. {
  259. "location": "/docker/docker_gocd/#usage",
  260. "text": "The full stack is manage with docker-compose. So, to launch it, just use docker-compose up \n Fork me on GitHub",
  261. "title": "Usage"
  262. },
  263. {
  264. "location": "/docker/docker_log_centralizer/",
  265. "text": "Docker log centralizer\n\n\nThis a end-to-end log centralizer powered by the ELK stask.\n\n\nEmbedded containers\n\n\n\n\nFilebeat\n - An agent to poll logs\n\n\nLogstash-Forwarder\n - An other agent to poll logs\n\n\nLogstash\n - The collector / analyzer / parser solution\n\n\nKafka\n - The queueing solution for logs\n\n\nZooKeeper\n - The cluster on which Kafka is running\n\n\nElasticSearch\n - The indexing engine\n\n\nKibana\n - The visualization / dashboard tool for ElasticSearch\n\n\nKafka Manager\n - The Kafka cluster web manager\n\n\nApache log generator\n - A container generating fake apache logs\n\n\nRandom log generator\n - A container genrating text logs (Star Wars quotes)\n\n\n\n\nHow it works\n\n\nThere are 2 agent types :\n\n\n\n\nFilebeat\n\n\nLogstash-Forward\n\n\n\n\nThese agents push logs (from the apache and random generators) to a Logstasth shipper filling a Kafka queue (one type of log for one topic). \nA Logstash indexer polls the Kafka topics indexing logs into a ElasticSearch.\n\n\nA short schema :\n\n\nAgent -\n Logstach shipper -\n Kafka \n- Logstash indexer -\n ElasticSearch\n\n\n\n\nTools access\n\n\nKibana is available at http://localhost:5601.\nKafka Manager is available at http://localhost:9000\n\n\n\n\n\n \nFork me on GitHub",
  266. "title": "Docker log centralizer"
  267. },
  268. {
  269. "location": "/docker/docker_log_centralizer/#docker-log-centralizer",
  270. "text": "This a end-to-end log centralizer powered by the ELK stask.",
  271. "title": "Docker log centralizer"
  272. },
  273. {
  274. "location": "/docker/docker_log_centralizer/#embedded-containers",
  275. "text": "Filebeat - An agent to poll logs Logstash-Forwarder - An other agent to poll logs Logstash - The collector / analyzer / parser solution Kafka - The queueing solution for logs ZooKeeper - The cluster on which Kafka is running ElasticSearch - The indexing engine Kibana - The visualization / dashboard tool for ElasticSearch Kafka Manager - The Kafka cluster web manager Apache log generator - A container generating fake apache logs Random log generator - A container genrating text logs (Star Wars quotes)",
  276. "title": "Embedded containers"
  277. },
  278. {
  279. "location": "/docker/docker_log_centralizer/#how-it-works",
  280. "text": "There are 2 agent types : Filebeat Logstash-Forward These agents push logs (from the apache and random generators) to a Logstasth shipper filling a Kafka queue (one type of log for one topic). \nA Logstash indexer polls the Kafka topics indexing logs into a ElasticSearch. A short schema : Agent - Logstach shipper - Kafka - Logstash indexer - ElasticSearch",
  281. "title": "How it works"
  282. },
  283. {
  284. "location": "/docker/docker_log_centralizer/#tools-access",
  285. "text": "Kibana is available at http://localhost:5601.\nKafka Manager is available at http://localhost:9000 \n Fork me on GitHub",
  286. "title": "Tools access"
  287. },
  288. {
  289. "location": "/games/Space_invaders_stories/",
  290. "text": "Space invaders : Stories\n\n\nThis is \nSpace invaders\n implementation currently under construction.\n\n\nHow to\n\n\nThe goal is to avoid alien invasion.\nUse your keyboard arrows to move your hero and the space key to fire.\nWarning : your ammo are limited by your weapon rate of fire...\n\n\nThere are currently 3 different weapons :\n\n\n a shotgun\n\n\n a carot-machine gun\n\n\n a corn-grenade\n\n\n\n \n \n\n \n\n\n\n\n\n\nCredits\n\n\n\n\nGraphics : Fabrice Ecaille aka Febbweiss\n\n\nCode : Fabrice Ecaille aka Febbweiss\n\n\n\n\nLicences\n\n\nCopyright (c) 2013 Fabrice ECAILLE aka Febbweiss\n\n\nPermission 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:\n\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n\nTHE 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.\n\n\n\n\n\n \nFork me on GitHub",
  291. "title": "Space invaders stories"
  292. },
  293. {
  294. "location": "/games/Space_invaders_stories/#space-invaders-stories",
  295. "text": "This is Space invaders implementation currently under construction.",
  296. "title": "Space invaders : Stories"
  297. },
  298. {
  299. "location": "/games/Space_invaders_stories/#how-to",
  300. "text": "The goal is to avoid alien invasion.\nUse your keyboard arrows to move your hero and the space key to fire.\nWarning : your ammo are limited by your weapon rate of fire... There are currently 3 different weapons : a shotgun a carot-machine gun a corn-grenade",
  301. "title": "How to"
  302. },
  303. {
  304. "location": "/games/Space_invaders_stories/#credits",
  305. "text": "Graphics : Fabrice Ecaille aka Febbweiss Code : Fabrice Ecaille aka Febbweiss",
  306. "title": "Credits"
  307. },
  308. {
  309. "location": "/games/Space_invaders_stories/#licences",
  310. "text": "Copyright (c) 2013 Fabrice ECAILLE aka Febbweiss 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. \n Fork me on GitHub",
  311. "title": "Licences"
  312. },
  313. {
  314. "location": "/games/pacman/",
  315. "text": "Pacman\n\n\ngq-pacman is a jQuery implementation of the famous Namco\u00a9's Pacman\u00a9.\n\n\nHow to\n\n\nUse your keyboard arrows to move Pacman to eat all energizer to complete the level.\nGhosts become frightened when Pacman eats a big energizer. Eat them !!!\n\n\nBeware of ghost who haunt the maze !!! Each one has his own personality :\n\n\n\n\n\nBlinky tracks Pacman as his shadow.\n\n\n\n\n\nPinky perfoms ambushes to Pacman.\n\n\n\n\n\nInky is the least predictable.\n\n\n\n\n\nClyde pretends ignorance and is one who lags behind.\n\n\nDemo\n\n\n\n \n \n\n \n\n\n\n\n\n\nCredits\n\n\n\n\nGraphics : Fabrice Ecaille aka Febbweiss\n\n\nCode : Fabrice Ecaille aka Febbweiss\n\n\nAlgorithm : Based on the \n\"Pacman Dossier\"\n\n\nTools : \ngameQuery\n\n\nSounds : \nSound FX Center\n\n\n\n\nLicences\n\n\nSource code is under \nMIT Licence\n\nSprite is under \nCC BY-SA 3.0\n\n\n\n\n\n\n\n \nFork me on GitHub",
  316. "title": "Pacman"
  317. },
  318. {
  319. "location": "/games/pacman/#pacman",
  320. "text": "gq-pacman is a jQuery implementation of the famous Namco\u00a9's Pacman\u00a9.",
  321. "title": "Pacman"
  322. },
  323. {
  324. "location": "/games/pacman/#how-to",
  325. "text": "Use your keyboard arrows to move Pacman to eat all energizer to complete the level.\nGhosts become frightened when Pacman eats a big energizer. Eat them !!! Beware of ghost who haunt the maze !!! Each one has his own personality : Blinky tracks Pacman as his shadow. Pinky perfoms ambushes to Pacman. Inky is the least predictable. Clyde pretends ignorance and is one who lags behind.",
  326. "title": "How to"
  327. },
  328. {
  329. "location": "/games/pacman/#demo",
  330. "text": "",
  331. "title": "Demo"
  332. },
  333. {
  334. "location": "/games/pacman/#credits",
  335. "text": "Graphics : Fabrice Ecaille aka Febbweiss Code : Fabrice Ecaille aka Febbweiss Algorithm : Based on the \"Pacman Dossier\" Tools : gameQuery Sounds : Sound FX Center",
  336. "title": "Credits"
  337. },
  338. {
  339. "location": "/games/pacman/#licences",
  340. "text": "Source code is under MIT Licence \nSprite is under CC BY-SA 3.0 \n Fork me on GitHub",
  341. "title": "Licences"
  342. },
  343. {
  344. "location": "/games/pyramid/",
  345. "text": "Pyramid\n\n\nPyramid is a jQuery implementation of the famous Pyramid solitaire game card.\n\n\nHow to\n\n\nThe goal is to remove all Pyramid's cards.\nTo remove a card, it must be associated with an other one and their sum must be equals to 13.\nEach card has is numeric value and Kings' value is 13 (no need to be associated with an other card), Queens' value is 12 and Jake' value is 11.\n\n\nDemo\n\n\n\n \n \n\n \n\n\n\n\n\n\nCredits\n\n\n\n\nGraphics : \nByron Knoll\n\n\nCode : Fabrice Ecaille aka Febbweiss\n\n\n\n\nLicences\n\n\nSource code is under \nMIT Licence\n\nCards sprite is under \nPublic domain\n\n\n\n\n\n \nFork me on GitHub",
  346. "title": "Pyramid"
  347. },
  348. {
  349. "location": "/games/pyramid/#pyramid",
  350. "text": "Pyramid is a jQuery implementation of the famous Pyramid solitaire game card.",
  351. "title": "Pyramid"
  352. },
  353. {
  354. "location": "/games/pyramid/#how-to",
  355. "text": "The goal is to remove all Pyramid's cards.\nTo remove a card, it must be associated with an other one and their sum must be equals to 13.\nEach card has is numeric value and Kings' value is 13 (no need to be associated with an other card), Queens' value is 12 and Jake' value is 11.",
  356. "title": "How to"
  357. },
  358. {
  359. "location": "/games/pyramid/#demo",
  360. "text": "",
  361. "title": "Demo"
  362. },
  363. {
  364. "location": "/games/pyramid/#credits",
  365. "text": "Graphics : Byron Knoll Code : Fabrice Ecaille aka Febbweiss",
  366. "title": "Credits"
  367. },
  368. {
  369. "location": "/games/pyramid/#licences",
  370. "text": "Source code is under MIT Licence \nCards sprite is under Public domain \n Fork me on GitHub",
  371. "title": "Licences"
  372. },
  373. {
  374. "location": "/games/yahtzee/",
  375. "text": "Yahtzee\n\n\nThe classical dice game Yahtzee\n\n\nHow to\n\n\nThe goal is to complete the two combinaisons grids with five dice\n\n\nEach player can launch three times the dice to have a combinaison. After each launch, the player chooses to keep or not some dice. Each combinaison has a score.\n\n\nWhen both grids are completed, their scores are added and the player with the higher score wins. If the upper grid has a score higher than 63 points, the player wins a bonus of 35 points.\n\n\n\n \n \n\n \n\n\n\n\n\n\nCredits\n\n\n\n\nGraphics : Fabrice Ecaille aka Febbweiss\n\n\nCode : Fabrice Ecaille aka Febbweiss\n\n\n\n\nLicences\n\n\nCopyright (c) 2013 Fabrice ECAILLE aka Febbweiss\n\n\nPermission 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:\n\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n\nTHE 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.\n\n\n\n\n\n \nFork me on GitHub",
  376. "title": "Yahtzee"
  377. },
  378. {
  379. "location": "/games/yahtzee/#yahtzee",
  380. "text": "The classical dice game Yahtzee",
  381. "title": "Yahtzee"
  382. },
  383. {
  384. "location": "/games/yahtzee/#how-to",
  385. "text": "The goal is to complete the two combinaisons grids with five dice Each player can launch three times the dice to have a combinaison. After each launch, the player chooses to keep or not some dice. Each combinaison has a score. When both grids are completed, their scores are added and the player with the higher score wins. If the upper grid has a score higher than 63 points, the player wins a bonus of 35 points.",
  386. "title": "How to"
  387. },
  388. {
  389. "location": "/games/yahtzee/#credits",
  390. "text": "Graphics : Fabrice Ecaille aka Febbweiss Code : Fabrice Ecaille aka Febbweiss",
  391. "title": "Credits"
  392. },
  393. {
  394. "location": "/games/yahtzee/#licences",
  395. "text": "Copyright (c) 2013 Fabrice ECAILLE aka Febbweiss 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. \n Fork me on GitHub",
  396. "title": "Licences"
  397. }
  398. ]
  399. }