diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/__init__.pyc b/__init__.pyc new file mode 100644 index 0000000..e3c65fe Binary files /dev/null and b/__init__.pyc differ diff --git a/base.html b/base.html new file mode 100644 index 0000000..b19a1c8 --- /dev/null +++ b/base.html @@ -0,0 +1,118 @@ + + + +
+ + + + {% if page_description %}{% endif %} + {% if site_author %}{% endif %} + {% block htmltitle %} +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.
+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.
+The following features are developed:
+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. +The server configuration is done with the config/server.js file.
+The root URL is linked to the API documentation. +The API documentation is generated with apidocs into the public folder. To generate it, use the following command :
+npm run-script generate-doc
+
+
+
+
+ Cloudbudget-AngularJS is a work-in-progress web application for CloudBugdet written in AngularJS.
+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.
+This web application covers all CloudBudget features.
+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. +The server configuration is done with the config/server.js file.
+ + +This Durandal widget allows to display a folder tree and add some actions to manipulate this items :
++
Source code is under MIT Licence
+ + +ProjectDeployer is a work-in-progress web application to deploy Git projects on a server written with Meteor.
+In ProjectDeployer, it's possible to :
+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
+
+
+
+
+ A demo project with Spring Boot, React and Webpack
+This project includes :
+There are 3 profiles :
+To launch this project, just use the following command line :
+In development mode :
+mvn clean spring-boot:run
+npm 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.
+To use the CloudFoundry and Release plugins, the settings.xml must contains the following lines :
+ <servers>
+ <server>
+ <id>cloudfoundry</id>
+ <username>username</username>
+ <password>password</password>
+ </server>
+ <server>
+ <id>github</id>
+ <username>username</username>
+ <password>password</password>
+ </server>
+ </servers>
+
+
+Spring Boot is used as the backend server. It provides the HTML pages and the REST endpoints. +React is server side compiled at runtime using nashorn.
+React is the client side library. It's possible to write JSX which will be translate by webpack.
+Webpack configuration is done by the webpack.config.js file at the project's root.
+Webpack is launched at the generate-resources maven phase. +In 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. +Using 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.
+To manage the release process with Git, you have to replace the link in the developerConnection tag with the Git project URL.
+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) +* increasing the SNAPSHOT version
+Two steps :
+mvn release:prepare
+mvn release:perform
+
+
+To rollback a prepare :
+mvn release:rollback
+
+
+To test the release :
+mvn -DdryRun=true release:prepare
+mvn release:clean (test cleaning)
+
+
+https://maven.apache.org/maven-release/maven-release-plugin/index.html
+Change the TOFILL strings in the comment plugin's section.
+The cf-maven-plugin plugin allows to manage the application in a CloudFoundry platform and specifically to push it :
+mvn cf:push
+
+
+http://docs.cloudfoundry.org/buildpacks/java/build-tool-int.html
+The docker-maven-plugin (from Spotify) plugin has no configuration.
+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).
+This is a simple Docker container to provide random apache logs. +It'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.
+You can change the timezone mounting /etc/timezone and /etc/localtime files with a file content such as :
+Europe/Paris
+
+
+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.
+ + +GoCD is a Continuous Delivery solution. This project embedded different containers such as a server and nodes.
+The full stack is manage with docker-compose. So, to launch it, just use
+docker-compose up
+
+
+
+
+ This a end-to-end log centralizer powered by the ELK stask.
+There are 2 agent types :
+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). +A Logstash indexer polls the Kafka topics indexing logs into a ElasticSearch.
+A short schema :
+Agent -> Logstach shipper -> Kafka <- Logstash indexer -> ElasticSearch
+
+
+Kibana is available at http://localhost:5601. +Kafka Manager is available at http://localhost:9000
+ + +This is Space invaders implementation currently under construction.
+The goal is to avoid alien invasion. +Use your keyboard arrows to move your hero and the space key to fire. +Warning : 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
+ +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.
+ + +gq-pacman is a jQuery implementation of the famous Namco©'s Pacman©.
+Use your keyboard arrows to move Pacman to eat all energizer to complete the level. +Ghosts 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.
+Source code is under MIT Licence +Sprite is under CC BY-SA 3.0
+ + + +Pyramid is a jQuery implementation of the famous Pyramid solitaire game card.
+The goal is to remove all Pyramid's cards. +To remove a card, it must be associated with an other one and their sum must be equals to 13. +Each 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.
+Source code is under MIT Licence +Cards sprite is under Public domain
+ + +The classical dice game Yahtzee
+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.
+ +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.
+ + +I made some projects and published them on GitHub. +In 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 :
+