{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":667576980,"defaultBranch":"master","name":"frostmount","ownerLogin":"cr0t","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-07-17T20:37:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/113878?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717189085.0","currentOid":""},"activityList":{"items":[{"before":"5e72844a99ff0910988c825cc6bac9036c2b9ff5","after":"f6e8e268a5d5c218918b95a38de5a67ac24411c9","ref":"refs/heads/master","pushedAt":"2024-06-01T20:34:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce Docker-way deploy changes\n\nWe have added various files (Dockerfile, .env, .tool-versions, etc.) to\nprepare our application for being deployed as a Docker container.\n\nIn addition, there is also a new section in the README on how to do the\ndeployment.","shortMessageHtmlLink":"Introduce Docker-way deploy changes"}},{"before":"17e1d9b63841afa3044613ee08fbc61b222ce8ca","after":"1d983bb9345901bfce012b457436f385b7fc544f","ref":"refs/heads/step-extra-deploy-as-container","pushedAt":"2024-06-01T20:33:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce Docker-way deploy changes\n\nWe have added various files (Dockerfile, .env, .tool-versions, etc.) to\nprepare our application for being deployed as a Docker container.\n\nIn addition, there is also a new section in the README on how to do the\ndeployment.","shortMessageHtmlLink":"Introduce Docker-way deploy changes"}},{"before":"4922444b7d5bcb4bcc7a6782ebaca448e143ee01","after":"17e1d9b63841afa3044613ee08fbc61b222ce8ca","ref":"refs/heads/step-extra-deploy-as-container","pushedAt":"2024-06-01T20:31:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce Docker-way deploy changes\n\nWe have added various files (Dockerfile, .env, .tool-versions, etc.) to\nprepare our application for being deployed as a Docker container.\n\nIn addition, there is also a new section in the README on how to do the\ndeployment.","shortMessageHtmlLink":"Introduce Docker-way deploy changes"}},{"before":"0255aa6d48f49c2fd381fb68b5bd3129a1a00339","after":"4922444b7d5bcb4bcc7a6782ebaca448e143ee01","ref":"refs/heads/step-extra-deploy-as-container","pushedAt":"2024-06-01T09:34:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce Docker-way deploy changes\n\nWe have added various files (Dockerfile, .env, .tool-versions, etc.) to\nprepare our application being deployed as a Docker container.\n\nIt can builld and upload artifacts (images) now, but we also must\nprovide instructions on how to run it in production.","shortMessageHtmlLink":"Introduce Docker-way deploy changes"}},{"before":"871156903e96874ce20b976bba987e97be14aeec","after":null,"ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-05-31T20:58:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"}},{"before":"dd4666ceaa5907ec19b9ebb2d617760890478d61","after":"5e72844a99ff0910988c825cc6bac9036c2b9ff5","ref":"refs/heads/master","pushedAt":"2024-05-31T20:57:34.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Improve Lobby's UI (spacings, structure, etc.)","shortMessageHtmlLink":"Improve Lobby's UI (spacings, structure, etc.)"}},{"before":"f4590aeb509de582274d3db76266f3c5a20d346f","after":"871156903e96874ce20b976bba987e97be14aeec","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-25T21:49:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Improve Lobby's UI (spacings, structure, etc.)","shortMessageHtmlLink":"Improve Lobby's UI (spacings, structure, etc.)"}},{"before":"17d9b05d0ecb2ed86f7b72c9030fba4e7385a80c","after":"f4590aeb509de582274d3db76266f3c5a20d346f","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-25T21:36:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Add a few UI/UX improvements: self-aura, beast attack\n\nWith the previously added \"Quick Join\" feature it might be hard for\nplayers to see themselves on a battlefield, so we highlight the player's\ncard.\n\nAnother small UX improvement is to let players click/tap on the Beast\nimage to attack it. It might be a bit harder to click on a smaller\n\"Attack\" button below the Beast. However, it just duplicates the same\nevent.\n\nA micro-UI fix is to remove right margin from player cards from the\nlast-child element to center them better on the screen.","shortMessageHtmlLink":"Add a few UI/UX improvements: self-aura, beast attack"}},{"before":"921e92b97f221210b34087b522fbc83d8499a829","after":"17d9b05d0ecb2ed86f7b72c9030fba4e7385a80c","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-23T21:59:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce 'Quick Join' feature\n\nIt allows users to join the Battlefield in a fast way, without entering\nthe required character's name in the Lobby form.\n\nWe generate player's name and strength in a special new module (which we\nalso use in the Battlefield), right after that we redirect user's to the\n/battlefield URL with the given params.\n\nIn addition to the new /quick URL, we added a link to it from the main\n(Lobby) page.","shortMessageHtmlLink":"Introduce 'Quick Join' feature"}},{"before":"b37d6a53f208a8618dfc0b3e74bd7299c7e8fdf4","after":"921e92b97f221210b34087b522fbc83d8499a829","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-22T09:25:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce 'Quick Join' feature\n\nIt allows users to join the Battlefield in a fast way, without entering\nthe required character's name in the Lobby form.\n\nWe generate player's name and strength in a special new module (which we\nalso use in the Battlefield), right after that we redirect user's to the\n/battlefield URL with the given params.\n\nIn addition to the new /quick URL, we added a link to it from the main\n(Lobby) page.","shortMessageHtmlLink":"Introduce 'Quick Join' feature"}},{"before":"e826652effd42da841e0fa0b489e88262bede6e1","after":"b37d6a53f208a8618dfc0b3e74bd7299c7e8fdf4","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-21T21:26:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce 'Quick Join' feature\n\nIt allows users to join the Battlefield in a fast way, without entering\nthe required character's name in the Lobby form.\n\nWe generate player's name and strength in a special new module (which we\nalso use in the Battlefield), right after that we redirect user's to the\n/battlefield URL with the given params.\n\nIn addition to the new /quick URL, we added a link to it from the main\n(Lobby) page.","shortMessageHtmlLink":"Introduce 'Quick Join' feature"}},{"before":"0ed6805274236145dd53480421642c022a42c9d5","after":null,"ref":"refs/heads/fix-animation-throttling-in-background-chrome-tabs","pushedAt":"2024-04-21T21:23:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"}},{"before":null,"after":"e826652effd42da841e0fa0b489e88262bede6e1","ref":"refs/heads/fix-ui-and-ux","pushedAt":"2024-04-21T21:22:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce 'Quick Join' feature\n\nIt allows users to join the Battlefield in a fast way, without entering\nthe required character's name in the Lobby form.\n\nWe generate player's name and strength in a special new module (which we\nalso use in the Battlefield), right after that we redirect user's to the\n/battlefield URL with the given params.\n\nIn addition to the new /quick URL, we added a link to it from the main\n(Lobby) page.","shortMessageHtmlLink":"Introduce 'Quick Join' feature"}},{"before":null,"after":"0255aa6d48f49c2fd381fb68b5bd3129a1a00339","ref":"refs/heads/step-extra-deploy-as-container","pushedAt":"2024-04-20T21:34:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Introduce Docker-way deploy changes\n\nWe have added various files (Dockerfile, .env, .tool-versions, etc.) to\nprepare our application being deployed as a Docker container.\n\nIt can builld and upload artifacts (images) now, but we also must\nprovide instructions on how to run it in production.","shortMessageHtmlLink":"Introduce Docker-way deploy changes"}},{"before":null,"after":"0ed6805274236145dd53480421642c022a42c9d5","ref":"refs/heads/fix-animation-throttling-in-background-chrome-tabs","pushedAt":"2024-04-20T21:21:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Fix background tab animations throttling...\n\nWe noticed a weird bug: if connected player switches to another tab, so\nFrostmount's Battlefield goes background, and other players actively hit\nthe Beast, when original player opens tab again they see\n\"retrospectively\" all the activity that happened (like an instant\nreplay). It goes until all the attack animation events got handled.\n\nThat happens in Chrome (not in Safari, for example).\n\nAfter some experiments we conclude that this is due to the nature of how\nLiveView handles JS.transition and how Chrome aggresively throttles the\nanimations in background tabs (to preserve CPU and thus device battery).\n\nUnfortunately, we cannot easily set (or toggle) CSS class on custom\nLiveView event in the JavaScript, because the underlying library\n(morphdom) and the way how LiveView handles DOM patches, instantly\nremoves new classes from our elements.\n\nHowever, we can ~~leverage~~ hack it with setTimeout with little delay:\nthis way allows us to run our JS callback asynchronously and _after_\nmorphdom patches.\n\nSeems, this ~~hack~~ workaround works...","shortMessageHtmlLink":"Fix background tab animations throttling..."}},{"before":"dd4666ceaa5907ec19b9ebb2d617760890478d61","after":null,"ref":"refs/heads/prepare-for-massive-demo","pushedAt":"2023-09-04T20:25:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"}},{"before":"b90392b6252ce34af7534a308e07635272188d86","after":"dd4666ceaa5907ec19b9ebb2d617760890478d61","ref":"refs/heads/master","pushedAt":"2023-09-04T20:25:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Prepare battle UI for more gamers\n\nTo let more gamers play the battle and actively participate, we must\nconsider a couple of things in the UI:\n\n- the 'Attack' button should be visible to all the users, and it's\n better to place it at some predefined place on the page (as we've done\n in this commit – we put it under the monster, so it's visible for all)\n- some users might join the game from their phones with smaller screen\n estate available – for them we made a few adjustments to the sizes of\n the basic elements on the page","shortMessageHtmlLink":"Prepare battle UI for more gamers"}},{"before":null,"after":"dd4666ceaa5907ec19b9ebb2d617760890478d61","ref":"refs/heads/prepare-for-massive-demo","pushedAt":"2023-09-03T21:31:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Prepare battle UI for more gamers\n\nTo let more gamers play the battle and actively participate, we must\nconsider a couple of things in the UI:\n\n- the 'Attack' button should be visible to all the users, and it's\n better to place it at some predefined place on the page (as we've done\n in this commit – we put it under the monster, so it's visible for all)\n- some users might join the game from their phones with smaller screen\n estate available – for them we made a few adjustments to the sizes of\n the basic elements on the page","shortMessageHtmlLink":"Prepare battle UI for more gamers"}},{"before":"26aa75c434b939738b67a3256e67885f36e197f2","after":"b90392b6252ce34af7534a308e07635272188d86","ref":"refs/heads/master","pushedAt":"2023-07-25T19:26:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Update README.md\n\nAdd final game screenshots.","shortMessageHtmlLink":"Update README.md"}},{"before":"7bcc17b04dcb23a83023c7a311d1e168821a7fcf","after":"26aa75c434b939738b67a3256e67885f36e197f2","ref":"refs/heads/master","pushedAt":"2023-07-18T21:42:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Update README","shortMessageHtmlLink":"Update README"}},{"before":"761a463d8d01471fef66c48634eeee244fe95a5b","after":"7bcc17b04dcb23a83023c7a311d1e168821a7fcf","ref":"refs/heads/master","pushedAt":"2023-07-18T21:37:21.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Update README","shortMessageHtmlLink":"Update README"}},{"before":null,"after":"80c7fc6ce143f8d4a0b08c21727d06630103d2ec","ref":"refs/heads/step-3-final-lobby-form","pushedAt":"2023-07-18T21:21:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Fix flash messages on the live routed pages (move back flash_group)","shortMessageHtmlLink":"Fix flash messages on the live routed pages (move back flash_group)"}},{"before":null,"after":"e4c83f246a7d135a489dc00e1273fa14d4b02644","ref":"refs/heads/step-extra-pubsub-via-redis","pushedAt":"2023-07-18T21:04:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Add ability to use remote Redis as PubSub transport\n\nWe can try to use a remote Redis instance to let cluster of machines\nthat are running Frostmount Phoenix app to \"talk\" to each other via\nPubSub.\n\nThis way will allow machines that are not directly connected to each\nother (via epmd), still send PubSub broadcasts and react to them.\n\nWe must have running a Redis instance on a publicly available IP\naddress. Here is how we can use Docker for that:\n\n```console\ndocker run -it --rm -p 6379:6379 redis redis-server --loglevel verbose\n```\n\nThen, each Phoenix app instance need to be started like that:\n\n```console\nenv REDIS_HOST= mix phx.server\n```\n\nAfter that, Phoenix instances should be able to talk to each other via\nPubSub.","shortMessageHtmlLink":"Add ability to use remote Redis as PubSub transport"}},{"before":null,"after":"14913912cd8b0bdd632c003de6583c8a0434e71b","ref":"refs/heads/step-6-deploy-to-fly","pushedAt":"2023-07-18T20:29:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Use Fly.io to deploy this application\n\nThe set of files we commit here is a result of running `fly launch`\nmaster that asks a few questions.\n\nThough, we must not deploy this particular app right away, as we do not\nuse database and there are not migrations (this is why we will need to\nremove the corresponding to migrations block from `fly.toml` after\ngeneration).\n\nAnother thing worth to be mentioned is this: as we haven't configured\nour application to work in a multi-machines environment, it's better to\nscale down number of machines to 1 (by default Fly starts 2 VMs) with\nthis command: `fly scale count 1`.","shortMessageHtmlLink":"Use Fly.io to deploy this application"}},{"before":null,"after":"046973187dddf15aac9992bead17d99d00c6e0e1","ref":"refs/heads/step-5-final-battlefield","pushedAt":"2023-07-18T20:06:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Finalize FrostmountWeb.Battlefield game logic and UI","shortMessageHtmlLink":"Finalize FrostmountWeb.Battlefield game logic and UI"}},{"before":null,"after":"5a16f273f7da975802ae1c20696e84d6227f1a55","ref":"refs/heads/step-4-pre-battlefield","pushedAt":"2023-07-17T23:33:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Add static assets, tweak some CSS and JS","shortMessageHtmlLink":"Add static assets, tweak some CSS and JS"}},{"before":null,"after":"534b5a09da01cf3cfaff7fb2240309c0edde924b","ref":"refs/heads/step-2-pre-lobby-form","pushedAt":"2023-07-17T22:51:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Add core modules and a few new deps (to be used later)","shortMessageHtmlLink":"Add core modules and a few new deps (to be used later)"}},{"before":null,"after":"c5af3ab3a33a0af03f236ff9f4f8e352b6fcac78","ref":"refs/heads/step-1-live-view-basics","pushedAt":"2023-07-17T22:50:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Add Counter, a very basic LiveView example","shortMessageHtmlLink":"Add Counter, a very basic LiveView example"}},{"before":null,"after":"761a463d8d01471fef66c48634eeee244fe95a5b","ref":"refs/heads/step-0-overview","pushedAt":"2023-07-17T20:38:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Genesis!\n\nWe have just created a fresh Phoenix application using this command:\n\n```console\nmix phx.new frostmount --no-ecto --no-mailer\n```","shortMessageHtmlLink":"Genesis!"}},{"before":null,"after":"761a463d8d01471fef66c48634eeee244fe95a5b","ref":"refs/heads/master","pushedAt":"2023-07-17T20:37:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cr0t","name":"Sergey Kuznetsov","path":"/cr0t","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113878?s=80&v=4"},"commit":{"message":"Genesis!\n\nWe have just created a fresh Phoenix application using this command:\n\n```console\nmix phx.new frostmount --no-ecto --no-mailer\n```","shortMessageHtmlLink":"Genesis!"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWeK-mgA","startCursor":null,"endCursor":null}},"title":"Activity · cr0t/frostmount"}