{"id":22615586,"url":"https://github.com/marcellodesales/world-challenges","last_synced_at":"2025-09-07T02:32:53.443Z","repository":{"id":3131987,"uuid":"4160166","full_name":"marcellodesales/world-challenges","owner":"marcellodesales","description":"World Challenges","archived":false,"fork":false,"pushed_at":"2012-04-28T19:39:58.000Z","size":132,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T00:44:13.034Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcellodesales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-27T16:25:30.000Z","updated_at":"2017-01-30T17:23:50.000Z","dependencies_parsed_at":"2022-09-10T21:13:14.395Z","dependency_job_id":null,"html_url":"https://github.com/marcellodesales/world-challenges","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcellodesales/world-challenges","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcellodesales%2Fworld-challenges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcellodesales%2Fworld-challenges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcellodesales%2Fworld-challenges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcellodesales%2Fworld-challenges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcellodesales","download_url":"https://codeload.github.com/marcellodesales/world-challenges/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcellodesales%2Fworld-challenges/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262178015,"owners_count":23270976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T19:08:26.264Z","updated_at":"2025-06-27T02:33:38.785Z","avatar_url":"https://github.com/marcellodesales.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Reverse String Server Counter\n===========================================\n\nThis is a TCP server, listening to port 4567, that can revert your strings and maintain a shared\ncounter.\n\n## Building \n\nYou must have [Gradle](http://www.gradle.org/downloads) installed in your machine.\n\n    gradle clean jar\n\nThe server includes the dependency to the TFlyService.jar provided to reverse Strings.\n\nThat should be enough to generate the server Jar and the executable script \"run.sh\", as shown below.\n\n    marcello@hawaii:/u1/development/workspaces/open-source/challenges/ticketly$ gradle clean jar\n    :clean\n    :compileJava\n    :processResources UP-TO-DATE\n    :classes\n    :jar\n    \n    ##############################\n    WOOOHOOO! FINISHED!\n    You are ready to run the command \"./run.sh\"\n    ##############################\n\n## Starting the Server\n\nJust run the script \"run.sh\". It has the Java command to start the server.\n\n    marcello@hawaii:/u1/development/workspaces/open-source/challenges/ticketly$ ./run.sh \n    TicketFly Server running, waiting connections on 192.168.190.190:4567\n    Developed by Marcello de Sales (marcello.desales@gmail.com)\n\nUpon receiving a new connection, the server prints out just some info about the request and server status.\n\n    Thread Pool [ 50 , 50 ]\n    The Largest Pool size: 1\n    # of active threads: 0\n    # of maximum pool size:50\n    Handling client request Client [/127.0.0.1:39158]\n    \n    Thread Pool [ 50 , 50 ]\n    The Largest Pool size: 2\n    # of active threads: 1\n    # of maximum pool size:50\n    Handling client request Client [/127.0.0.1:39159]\n\nAs service errors may occur (TFlyServiceExption) during the computation of reverse Strings \nby the TFlyService, the server prints the number of attempts requested for a given String as \nshown below.\n\n    WARNING: The tfly service was retried 1 times for request dfs.\n    WARNING: The tfly service was retried 1 times for request dg.\n\n## Interacting with the server\n\nThe status above was initialized for 2 different clients. Simply telnet to the listening port.\n\n    marcello@hawaii:/u1/development/workspaces/open-source/google-go-tutorial/src$ telnet localhost 4567\n    Trying 127.0.0.1...\n    Connected to localhost.\n    Escape character is '^]'.\n    |\n\nAt this point you can issue the commands to the server. Here's the interaction between two clients.\n\n## Allowed Commands \n\n* \"string\"\n - The server will return the reverted input with the current counter value \"gnirts 1\"\n\n* \"string 3\"\n - The server will return the reverted input with the incremented value of the request \"gnirts 4\".\n - Note that the reset value will only occur when the current server's value is smaller than the received one.\n   That is, \"string 2\" will result in \"gnirts 5\".\n\n* \"/q\"\n* \"/quit\"\n - The server terminates the connection with the client. The ignored cases are also recognized as valid.\n\n## Session Example\n\nClient 1: started the interaction, entering wrong command..\n\n    marcello@hawaii:/u1/development/workspaces/open-source/google-go-tutorial/src$ telnet localhost 4567\n    Trying 127.0.0.1...\n    Connected to localhost.\n    Escape character is '^]'.\n    Marcello\n    ollecraM 1\n    Go 4\n    oG 52\n    WrongInput noNumber\n    INCORRECT_REQUEST_PARAMETER(6): The parameter provided is incorrect.\n    /quit\n    Have a nice day!\n    Connection closed by foreign host.\n\nClient 2: started the interaction after client 2, and set a new number.\n\n    marcello@hawaii:/u1/development/workspaces/open-source/google-go-tutorial/src$ telnet localhost 4567\n    Trying 127.0.0.1...\n    Connected to localhost.\n    Escape character is '^]'.\n    Google\n    elgooG 2\n    Gradle 50\n    eldarG 51\n    /q\n    Have a nice day!\n    Connection closed by foreign host.\n\n## Troubleshooting\n\n\n\nAfter changing the code, make sure the important pieces are working! Run the server tests!\n\n    marcello@hawaii:/u1/development/workspaces/open-source/challenges/ticketly$ gradle test\n    :compileJava UP-TO-DATE\n    :processResources UP-TO-DATE\n    :classes UP-TO-DATE\n    :compileTestJava\n    :processTestResources UP-TO-DATE\n    :testClasses\n    :test\n    Instrumenting the classes at /u1/development/workspaces/open-source/challenges/ticketly/build/classes/main\n    Creating /u1/development/workspaces/open-source/challenges/ticketly/build/tmp/emma/instr to instrument from /u1/development/workspaces/open-source/challenges/ticketly/build/classes/main\n    Creating test coverage reports for classes  /u1/development/workspaces/open-source/challenges/ticketly/src/main/java\n    Test coverage reports available at /u1/development/workspaces/open-source/challenges/ticketly/build/reports/emma.\n    txt: /u1/development/workspaces/open-source/challenges/ticketly/build/reports/emma/coverage.txt\n    Test /u1/development/workspaces/open-source/challenges/ticketly/build/reports/emma/coverage.html\n    Test /u1/development/workspaces/open-source/challenges/ticketly/build/reports/emma/coverage.xml\n    \n    BUILD SUCCESSFUL\n    \n    Total time: 14.915 secs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcellodesales%2Fworld-challenges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcellodesales%2Fworld-challenges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcellodesales%2Fworld-challenges/lists"}