From 3289cd9eb7a6d58631de22018da06af0a457e1a1 Mon Sep 17 00:00:00 2001 From: -=yb4f310 Date: Sat, 24 Jun 2017 18:13:28 +0200 Subject: [PATCH] o2 --- bash_history | 754 ++++++++++++++++++++++++++++++++++++++++++++++ general.encrypted | Bin 2880 -> 2896 bytes 2 files changed, 754 insertions(+) diff --git a/bash_history b/bash_history index 54c5a7b..ebe98cf 100644 --- a/bash_history +++ b/bash_history @@ -2855,3 +2855,757 @@ git diff git commit -am "toApiObject" git push exit +3d +git diff +git commit -am "stats and GUI" +git push +cd .. +gl +git diff +git commit -am "stats and gui components" +git push +cd src/ +grep "toApi" * -R +grep "toApi(\w*)" * -R +grep "toApi\(\w*\)" * -R +grep "toApi\(\w*\)" * -Rl | xargs sed -i "s/toApi\(\w*\)" +grep "toApi\(\w*\)" * -Rl | xargs sed -i "s/toApi\(\w*\)/toApiObject/g" +git diff +grep "build" * -R +grep "\bbuild\b" * -R +grep "\bbuild\b" * -Rl | xargs sed -i "s/\bbuild\b/built/g" +exit +s +m +exit +3d +gulp +exit +gl +gulp +exit +c +cd api-v1/ +git diff +git commit -am "image mesages" +git status +vim .gitignore +git commit -am "ign" +git push +cd .. +cd blender- +cd blender-node/ +git diff +git commit -am "code instp" +git push +cd .. +exit +3d +npm remove --save dat.gui +npm install --save dat.gui +sudo npm i -g npm +git diff +git commit -am "style updates - migrating to gamelib gui" +git push +cd .. +gl +git diff +git commit -am "migrating gui to gamelib" +git push +cd .. +cd config/ +git diff +git commit -am "upload path histroty" +git push +ls +cd .. +;ls +./status_all +s +d +, +m +exit +s +m +gl +git pull +git checkout v2_v3_broken +git checkout v2_v3_stable +git diff v2_v3_broken +git checkout v2_v3_broken -- src/game-lib-gui.js +git diff +git status +git diff HEAD +gulp build +git commit -am "gui updates" +git push +gulp +3d +git pull +git diff v2_v3_broken +git checkout v2_v3_broken +git diff v2_v3_broken +git checkout v2_v3_stable +git diff v2_v3_broken +git checkout v2_v3_broken -- src/editor.js/editor-gui.js +git diff HEAD +gulp build +git commit -am "gui updates" +git push +gulp +gedit +exit +c +cd 3d-editor/ +git diff +git commit -am "systems up" +git push +gl +git diff +git commit -am "GUI system" +git push +cd src/ +grep ".*loadImage" * -TR +grep ".*loadImage" * -R +e +git diff +git commit -am "some gui stuff" +git push +3d +git diff +git commit -am "some gui stuff" +git push +exit +3d +gulp +exit +gl +gulp +exit +s +m +exit +s +3d +gulp +3d +git diff +git commit -am "textures reload after load" +git push +gl +git diff +git commit -am "texture and number" +git push +gl +gulp +c +./update_all +s +m +exit +gl +gulp +git diff +git commit -am "parent scenes change - helpers are now components - intersects are now per scene / camera and sorted to distance" +git push +exit +3d +gulp +git diff +git commit -am "scene change to game lib" +git push +exit +3d +gulp +git diff +git commit -am "create generic properties" +git push +exit +gl +cd src/ +grep "buildIdToObject" +grep "buildIdToObject" * -R +exit +gl +gulp +git diff +git commit "some gui checks" +git commit -am "some gui checks" +git push +3d +gulp +git diff +git commit -am "entity manager takes care of parent entity change" +git push +exit +gl +gulp +git diff +guop +gulp +git diff +git commit -am "multiple viewports (finally) - start with clone" +git push +exit +s +m +exit +ps -A +top +ps -A | grep ry +ps -A | grep r +killall rhythmbox +rhythmbox +ping gw-new +sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 +c +cd controller/ +mongo -eval +mongo --eval "var instanceId = [3284]" queries/crispy.js +, +mongo --eval "var instanceId = [3284]" queries/crispy.js +, +mongo --eval "var instanceId = [3284]" queries/crispy.js +exit +c +cd controller/ +mongo --eval "var instanceId = [3284]" queries/crispy.js +cd controller/ +mongo --eval "var instanceId = [3284]" queries/crispy.js +clear +c +cd controller/ +mongo --eval "var instanceId = [3284]" queries/crispy.js +git diff +git commit -am "query for max score" +git push +exit +echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list +sudo apt-get update +sudo apt-get install mongodb-org +sudo apt-get autoremove +c +./update_all +exit +mongo +sudo service mongodb restart +cd /etc/ +vim mongodb.conf +ls -l +vim mongod.conf +mongo +mongod +sudo mongod +cd /dat +vim mongodb.conf +sudo vim mongod.conf +sudo service mongod start +mongo +sudo apt-get remove mongodb +ls +cd conf +cd default/ +ls +mongo +mongo --help +mongo --host ec2-52-57-8-255.eu-central-1.compute.amazonaws.com +mongo --host 52.57.8.255 +mongo --host 52.57.8.255/statistic +ssh gw-new +mongo +exit +ssh gw-new +mongo +exot +exit +cd /etc/sysctl.d/ +ls +sudo vim 20-idea.conf +sudo sysctl -p --system +exit +3d +gulp +git pull +systemctl enable mongod.service +sudo service mongod start +mongo +gulp +cd .. +3d +gulp +git pull +gulp +git diff +git commit -am "image loading for additional textures too" +git push +exit +c +./update_all +mongo +vim /etc/ls +vim /etc/ +exit +s +m +exit +r +exit +c +cd api-v1/ +git diff +git status +exit +gl +gulp +git diff +git commit -am "textures working nice" +git push +cd .. +./status_all +git clone https://github.com/cybafelo/dark-matter.git +cd dark-matter/ +git branch -a +git checkout unstable +exit +c +3d +grep "addMesh" * -R +cd src/ +grep "addMesh" * -R +grep "removeMesh" * -R +cd .. +gl +grep "addMesh" * -R +cd src/ +grep "addMesh" * -R +cd .. +cd src/ +grep "removeMesh" * -R +exit +s +m +exit +gl +gulp +git diff +git commit -am "light fixes - also parent scenes for lights" +git push +s +st +exit +3d +gulp +git diff +git commit -am "light fixes" +git push +exit +s +r +exit +3d +gulp +git diff +exit +gl +gulp +git pull +git log +gulp +git diff +git commit -am "keydown and up - tex map fixes - delete objects" +git push +exit +m +r +m +exit +r +exit +g +c +./update_all +sudo apt-get install audacity +audacity +exit +s +m +exit +gl +gulp +exit +gulp +3d +gulp +exit +c +./update_all +exit +cat .ssh/id_rsa.pub +exit +c +cd api-v1/ +git remote -v +cd .. +cd config/ +git remote -v +cd .. +ls +cd config/ +vim .git/config +git pull +git push +cd .. +ls +cd blender-files/ +vim .git/config +git pull +cd .. +cd api-v1/ +vim .git/config +git pull +git push +git status +git commit -am "rm blend" +git push +cd .. +cd 3d-editor/ +vim .git/config +git pull +git push +cd .. +cd blender-node/ +vim .git/config +git pul +git pull +git diff +git reset --hard HEAD +git pull +git push +cd .. +cd game-lib/ +vim .git/config +git pull +git push +cat ~/.ssh/id_rsa.pub +audacity +ps -A |grep aud +c +cd game-lib/ +cd src/ +git diff +git commit -am "more checks" +git push +exit +3d +git pull +git remote add gamewheel git@github.com:ToywheelDev/3d_editor.git +git pull gamewheel +git pull gamewheel v2_v3_stable +cd .. +cd game-lib/ +3d +gulp +c +cd api-v1/ +git pull +git add remote gamewheel git@github.com:ToywheelDev/GW_Config.git +git remote add gamewheel git@github.com:ToywheelDev/GW_Config.git +git pull gamewheel v2_v3_stable +sa +s +m +r +c +3d +git diff +git commit -am "name" +git push +gl +git diff +git commit -am "fixes" +git push +gl +git remote add gamewheel git@github.com:ToywheelDev/game-lib.git +git pull gamewheel v2_v3_stable +gulp +34d +3d +gulp +git diff +git commit -am "no buildidtoobject" +git push +cd .. +gl +git diff +git commit -am "first loading seems ok" +git push +exit +gl +gulp +exit +c +cd 3d-editor/src/ +grep "buildIdToObject" * -R +gl +cd src/ +grep "buildIdToObject" * -R +grep "LoadIdsFromObjectToIdObject" * -R +r +s +m +gl +gulp +git diff +git commit -am "buildIdTOObject slowly" +git push +oexit +exit +3d +gulp +git diff +git commit -am "re-introduce buildIdToObject slowly" +git push +exit +s +m +exit +c +cd blender-node/ +git push gamewheel +exit +3d +git push gamewheel +cd .. +cd api-v1/ +git push gamewheel +exit +gl +git push gamewheel +sudo poweroff +mongo +exit +3d +git pull +git pull gamewheel +cd .. +cd game +cd game-lib/ +git pull gamewheel +git pull gamewheel v2_v3_stable +cd .. +cd blender-node/ +git pull +git log +gl +gulp +git diff +git commit -am "wicked systems" +git push +exit +3d +gulp +git diff +git commit -am "wicked systems" +git push +exit +s +m +c +3d +cd src/ +grep "linkObjects" * -R +gl +cd src/ +grep "linkObjects" * -R +grep "GameLib.Event.SAVE" * -R +grep "GameLib.Event.SAVE\bv" * -R +grep "GameLib.Event.SAVE\b" * -R +grep "GameLib.Event.LOADED\b" * -R +grep "GameLib.Event.LOAD" * -R +grep "GameLib.Event.SAVE_SUCCESS" * -R +grep "GameLib.Event.SAVE_SUCCESS" * -Rl | xargs sed -i "s/SAVE_SUCCESS/COMPONENT_SAVED/g" +git dff +git diff +grep "GameLib.Event.SAVE_SUCCESS" * -R +grep "GameLib.Event.SAVE\b" * -R +grep "GameLib.Event.LOAD" * -R +grep "GameLib.Event.SAVE" * -R +grep "GameLib.Event.SAVE_FAILURE" * -R +grep "GameLib.Event.SAVE_FAILURE" * -Rl | xargs sed -i "s/SAVE_FAILURE/SAVE_COMPONENT_ERROR/g" +grep "GameLib.Event.SAVE" * -R +grep "GameLib.Event.LOAD" * -R +grep "LOAD_IMAGE" * -R +git pull +3d +git pull +git pull gamewheel +git pull gamewheel v2_v3_stable +git diff +git commit -am "component load to lib" +git push +git pull gamewheel v2_v3_stable +gl +git diff +git commit -am "component loading continues" +git push +git pull gamewheel v2_v3_stable +git diff +eix +cd .. +3d +git diff +git commit -am "start loading components which really work" +git diff +gl +git diff +cd .. +cd api-v1 +git diff +cd .. +cd blender-node/ +git diff +exit +gl +gulp +exot +exit +3d +gulp +exit +gl +cd str +cd src/ +grep "addComponent" * -R +cd .. +3d +cd src/ +grep "addComponent" * -R +r +grep "addComponent" * -R +grep "buildIdToObject" * -R +gl +grep "GameLib.EntityManager = fu" * -R +cd ./ +cd .. +cd 3d-editor/ +vim package.json +npm install +git status +grep "GameLib.EntityManager = fu" * -R +cd src/ +grep "buildIdToObject" * -R +c +cd api-v1/ +git pull +grep "buildIdToObject" * -R +c +gl +git diff +git commit -am "constructor fixes - auto add child components" +git push +c +3d +git diff +git commit -am "more stuff to gl" +git push +r +mongo +r +mongo +gl +git diff +git commit -am "canSave deprecated" +git push +exit +c +cd api-v1/ +git pull +git log +exit +s +m +exit +gl +git pull +gulp +git diff +git commit -am "create instances immediately when dependencies are met" +git push +git push gamewheel +git diff +exit +3d +exit +r +3d +cd src/ +grep "ts=" * -R +gl +cd src/ +grep "ts=" * -R +git diff +git branch "child_meshes" +git checkout child_meshes +git commit -am "child meshes?" +git push +git push -u origin child_meshes +git push -u gamewheel child_meshes +3d +git pull +git mergetool +sudo apt-get install meld +git mergetool +git commit -am "merge conflicts" +find . -name "*.orig" | xargs rm +git status +find . -name "*2295.js" | xargs rm +git push +gulp +git diff +git commit -am "fix texture loading and image loading" +git push +git push gamewheel +mongo +s +exit +s +m +exit +c +cd 3d-ed +cd 3d-editor/ +npm install --save cannon +cd .. +3d +cd node_modules/cannon/ +ls +cd build/ +ls +vim cannon. +vim cannon.js +cd .. +cd ... +cd .. +ln -s 3d-editor/node_modules/cannon/ +ln -s 3d-editor/node_modules/three/ +exit +3d +git pull +gulp +exit +gulp +gl +git pull +git checkout v2_v3_stable +git pull +gulp +git diff +git commit -am "physics start (again)" +git push +exit +dmesg +exit +syslinux +tail -f /var/log/syslog +exit diff --git a/general.encrypted b/general.encrypted index 60eab8bc97b3f519ff149154808dd6de01fdb9b8..d0c6ad7e4db0933a78c4c299ab770659b7e971dc 100644 GIT binary patch literal 2896 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 literal 2880 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