gameontext / gameon Goto Github PK
View Code? Open in Web Editor NEWThe root repository provides mechanics to set up a local environment for building and testing rooms.
Home Page: http://gameontext.org
License: Apache License 2.0
The root repository provides mechanics to set up a local environment for building and testing rooms.
Home Page: http://gameontext.org
License: Apache License 2.0
When I run go-platform-services.sh start
from Linux I get this:
iain@iain-UbuntuVirtualBox:~/git/gameon_new$ ./go-platform-services.sh start
+++ dirname ./go-platform-services.sh
++ cd .
++ pwd
+ SCRIPTDIR=/home/iain/git/gameon_new
+ '[' start == start ']'
+ echo 'starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,gateway)'
starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,gateway)
+ docker-compose -f /home/iain/git/gameon_new/platformservices.yml up -d
Starting registry
Starting couchdb
Starting elasticsearch
Starting kibana
Creating kafka
Starting logstash
ERROR: for kafka Conflict. The name "/kafka" is already in use by container 35ed77cc8fc3d87a0cfadfa68d46542cf30588f32bd34212520a6a7574ed9a62. You have to remove (or rename) that container to be able to reuse that name.
+ echo 'waiting for the platform to initialize..'
waiting for the platform to initialize..
+ sleep 60
+ NAME=empty
+ IP=127.0.0.1
+ '[' empty = empty ']'
+ echo 'DOCKER_MACHINE_NAME is not set. If you don'\''t use docker-machine, you can ignore this, or export DOCKER_MACHINE_NAME='\'''\'''
DOCKER_MACHINE_NAME is not set. If you don't use docker-machine, you can ignore this, or export DOCKER_MACHINE_NAME=''
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' registry
+ AR=172.17.0.3:8080
+ AC=127.0.0.1:31200
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' kafka
+ KA=:9092
+ echo 'Setting up a new tenant named '\''local'\'''
Setting up a new tenant named 'local'
+ read -d '' tenant
+ curl -H 'Content-Type: application/json' -H 'Authorization: local' -d @- http://127.0.0.1:31200/v1/tenants
+ echo '{' '"credentials":' '{' '"kafka":' '{' '"brokers":' '[":9092"],' '"sasl":' false '},' '"registry":' '{' '"url":' '"http://172.17.0.3:8080",' '"token":' '"local"' '}' '}' '}'
curl: (7) Failed to connect to 127.0.0.1 port 31200: Connection refused
It looks like there is already an existing container that is named Kafka. However, it is not clear from the output what to do about this, I think it would be good to:
docker ps -a
lists a bunch of containers that use a different format for their IDsWas expecting a query string of the form 'access_token=XXX' or 'access_token=XXX&expires=YYY'
It looks like the query string is actually in the form:
'access_token:XXX&token_type:XXX&expires_in:XXX'
Gitbook build is acting unreliably on gitbook.com.
Create a pipeline & hosting solution to build & host it ourselves within an ICS routed group.
We're not sure if our room transition issues are due to platform, or the way we do our kafka push..
It may have been fixed by an env var / setupsh / server xml change..
if not.. we may need to invert the way we do kafka updates
?[ERROR ] CWWKG0075E: The value ${env.LOGMET_PORT} is not valid for attribute port of configuration element bluemixLogCollector. The validation message was: Value "${env.LOGMET_PORT}" is not a number..
?[AUDIT ] CWWKT0016I: Web application available (default_host): http://ga-ddre-xwa3lhil2zwx-qerpvcbrxyj4-server-5tawtk5pm7mh:9080/rooms/
message hub library link moved -- that should have been a build/package failure, not a docker run failure.
Just a marker for presentation for this session:
Game On! Exploring Microservices with a Text-Based Adventure Game [CON1559]
Erin Schnabel, Senior Software Engineer, IBM
Creating a single microservice is easy, as walkthroughs everywhere show. See? Add a few annotations, invoke this command to build it, and you have a running microservice! Ta-da! But what happens next? Game On! is an interactive text adventure written as a collection of microservices to help people answer that very question. This session covers how the speaker and her colleagues used service composition and discovery, API definition and versioning, security (authentication, authorization, and identity propagation), the 12 factors, and a combination of lightweight protocols to build the game. The presentation also discusses what they learned from building it and from others extending it.
Conference Session
Thursday, Sep 22, 2:30 p.m. - 3:30 p.m. | Parc 55 - Embarcadero
ditto
a) legal text
b) links/display in UI
When typing "/help" I can see a list of possible commands - some of these such as /look don't require additional parameters, but some do. It would be helpful if /help also listed optional/required parameters for each of the commands.
It would also be additionally useful if I entered a command which requires an additional parameter that it would tell me that an extra parameter is required - if I type "/examine" I get the error "I'm sorry, but I'm not sure how I'm supposed to examine" - it would be great if the error said "I'm sorry I don't know how to examine nothing - try /examine to examine an object" or something like that - would make it easier to understand why a command didn't work.
These Java microservices need to explicitly use the MicroProfile framework
Apologies if this is the incorrect repo to track this issue.
The sign-in link on the Slack Inviter is invalid; it points to slack_subdomain.slack.com
.
After wondering why I had encountered 3 rooms all seeming to be themed around an unwell person it's now appearing that "the room is unwell" themed messages are indicating that a room is actually down? It's not clear if that's the case, as the first couple of rooms that gave those messages had me trying to interact with them and try to solve some sort of puzzle that wasn't there.
ICS is using a different etcd to SL, the etcd image info in the root repo is the SL information.
If we are migrating away from SL with the aim of shutting down SL, we need to update the etcd image info in the root repo to be based around the ICS etcd instructions (currently held privately in Box).
If we plan to keep SL as a secondary hosting env, then we should split the etcd stuff in root to make it clear which hosting env each etcd is destined for.
https://hub.docker.com/_/websphere-liberty/
For docker compose, should mount a volume for shared classes.
Java isn't otherwise required on the path.
Need a presentation / running order for the workshop.
Draft is in box here : https://ibm.box.com/s/52d85c9w5tlyb5z92eb70eegnkgewh6d
our startup/launch script contained some code to "move" the server's directory to one with a new name to assist with unique log records with the logCollector feature. That hasn't been needed for awhile now, but we never went back and removed the cruft.
Go forth. Remove the cruft.
New SSL certificate for main site.
If the etcd container bounces during a container come up, we may have etcdctl commands fail. We should wrap these in a function in the scripts so that a failure to get the returned values results in the container not coming up, or at least notifying us of issues, rather than coming up with potentially corrupted config.
If I was in a room (persisted) that was subsequently deleted, we correctly detect that the room doesn't exist and send a rescue to first room.. but we don't then persist THAT change. Leaving the player in an endless limbo of nowhereness
Representation of a news room for publishing/displaying game updates
A) News Items:
-- news blurb
-- twitter digest (140 characters less "#news " hashtag)
-- date
-- author / poster (or treat all as game news, and not a blog, also good)
B) REST API for adding/retrieving news items
-- POST news (see A), results in further NodeRED push of news digest to twitter
(link back to news item)
C) WebSocket endpoint (room impl) to display news within the game
-- commands to view newspaper, notice board, ... something
D) WebFrontEnd for news (creating and displaying)
Add gradle build files to https://github.com/gameontext/gameon-room-java
Room description can be entered via the web ui, via the reg util, and can be overridden / sent by the room as part of location response.. if the description is omitted from the location response, verify the mediator/web ui defaults back to using the one stored in map.
If rooms are sick for > 30 days, remove them from the map
Using Docker Quickstart Terminal
to run the build scripts I was able to run go-setup.sh
to successfully but then running go-platform-services.sh start
I get the following error:
$ ./go-platform-services.sh start
+++ dirname ./go-platform-services.sh
++ cd .
++ pwd
+ SCRIPTDIR=/c/Users/IBM_ADMIN/git/gameon_no_recurse
+ '[' start == start ']'
+ echo 'starting platform services (kafka, ELK stack, couchdb, a8 controller,reg
istry,gateway)'
starting platform services (kafka, ELK stack, couchdb, a8 controller,registry,ga
teway)
+ docker-compose -f /c/Users/IBM_ADMIN/git/gameon_no_recurse/platformservices.ym
l up -d
Creating couchdb
Creating elasticsearch
Creating registry
Creating kafka
Creating logstash
Creating kibana
Creating controller
Creating gateway
ERROR: for gateway HTTPSConnectionPool(host='192.168.99.100', port=2376): Read
timed out. (read timeout=60)
←[31mERROR←[0m: An HTTP request took too long to complete. Retry with --verbose
to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consid
er setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
+ echo 'waiting for the platform to initialize..'
waiting for the platform to initialize..
+ sleep 60
+ NAME=default
+ IP=127.0.0.1
+ '[' default = empty ']'
+ '[' -n default ']'
++ docker-machine ip default
+ IP=192.168.99.100
+ rc=0
+ '[' 0 '!=' 0 ']'
+ '[' -z tcp://192.168.99.100:2376 ']'
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' registry
++ MSYS_NO_PATHCONV=1
++ docker.exe inspect -f '{{.NetworkSettings.IPAddress}}' registry
+ AR=172.17.0.4:8080
+ AC=192.168.99.100:31200
++ docker inspect -f '{{.NetworkSettings.IPAddress}}' kafka
++ MSYS_NO_PATHCONV=1
++ docker.exe inspect -f '{{.NetworkSettings.IPAddress}}' kafka
+ KA=172.17.0.5:9092
+ echo 'Setting up a new tenant named '\''local'\'''
Setting up a new tenant named 'local'
+ read -d '' tenant
+ echo '{' '"credentials":' '{' '"kafka":' '{' '"brokers":' '["172.17.0.5:9092"]
,' '"sasl":' false '},' '"registry":' '{' '"url":' '"http://172.17.0.4:8080",' '
"token":' '"local"' '}' '}' '}'
+ curl -H 'Content-Type: application/json' -H 'Authorization: local' -d @- http:
//192.168.99.100:31200/v1/tenants
{"error":"unknown_availability_error","description":"unknown_availability_error"
}
/teleport JavaOne2016 (room id or name)
/listmyrooms (borrowed from FirstRoom, command more or less the same via room API)
/register RoomName (associate my room with the JavaOne2016 event)
Implementation should not be JavaOne specific (i.e. the name of the event should be an env var)
WebSocket / room interactions
REST API for listing registered rooms
Once I've logged into game on it isn't entirely clear on what I as a user am meant to do. Having a message along the lines of "the aim of the game is to move between rooms and interact with them" would make it clearer exactly what the aim is. That could also introduce commands like /go .
A) Site created in cloudant (done, Erin)
B) update Site + connection details to point to a real place.
Ugly unclickable green box w/ all upcase link..
Why is there the "look" command for looking at the contents of a room, and an "examine" command for looking at given objects? Surely "/examine room" should do the same as "/look" and "/look object" should do the same as "/examine object" - there doesn't seem to be much distinction on why one command only works for some objects and not others (looking at a room as an object).
Remove logstash forwarder from liberty images
Use explicit installUtility step for better caching
Consistent location and usage of config dropins
Regarding the gameon site. It gives you an error once you go
to the sign in page of twitter, click cancel and then try to come back.
"Exception thrown by application class 'java.net.URLEncoder.encode:225'"
Changes that were made to remove kafkaviewer allowed for further progress but then other things cropped up
Error 404: javax.servlet.UnavailableException: SRVE0319E: For the [net.wasdev.gameon.auth.google.GoogleAuth] servlet, net.wasdev.gameon.auth.google.GoogleAuth servlet class was found, but a resource injection failure has occurred. CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/net.wasdev.gameon.auth.google.GoogleAuth/key reference. The exception message was: CWNEN1003E: The server was unable to find the googleOAuthConsumerKey binding with the java.lang.String type for the java:comp/env/net.wasdev.gameon.auth.google.GoogleAuth/key reference.
I was trying to update a room, and now the POI isn't showing anything and I can't see my room.
Some rooms have sent messages that added a horizontal scroll bar for the room content iframe in my browser - this would be ok if it didn't mean I was going forward/back through page history in my browser when trying to scroll left/right to read the contents of the message. This is on a mac where the gesture for scroll left/right is the same as go forward/back a page.
Have added a screenshot of what it looks like, including some of the room info so you can see which room it was.
Safari does not provide a good way for marking the certificate used for the websocket as ok/trusted, so it just falls over.
http://stackoverflow.com/questions/5312311/secure-websockets-with-self-signed-certificate
https://bugs.webkit.org/show_bug.cgi?id=41419
https://bugzilla.mozilla.org/show_bug.cgi?id=594502
https://www.starnet.com/xwin32kb/installing-a-self-signed-certificate-on-safari/
Player should be saving names and emails in the backing store so we can contact ppl if/when things go awry.
Privacy policy statement (link to Ts & Cs)
There's inconsistency on if commands are case sensitive or not - I can have whatever case of "/examine" and that part of a command will work fine. If I try and "/eXamInE jukebox" in a room with a "Jukebox" then the command will fail, because despite the lack of case sensitivity on the command there is case sensitivity on the objects. Surely sanitising input text to always be lower case would effectively enforce case insensitive interaction with rooms?
Otherwise somewhere needs to warn the user that although the commands are case insensitive the parameters for commands are case sensitive.
We have run out of space for Game On! images in ICS and need to have the quota increased.
It is not scoring empty rooms (fine), but it isn't swapping them out either (not fine)
hawkmoonv (@HawkmoonV) reported (and I confirmed):
Error when trying to log in via Github
As of today 02/23/18, I am receiving the following error when attempting to login via Github: Error 500: javax.net.ssl.SSLException: Reveived fatal alert: protocol_versionLogging in via google appears to still work correctly as well as via Facebook. I believe this would need to be resolved on your end, Gitbook...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.