{"id":18476344,"url":"https://github.com/mikavilpas/squanmate","last_synced_at":"2025-04-08T13:32:44.616Z","repository":{"id":62797051,"uuid":"92854458","full_name":"mikavilpas/squanmate","owner":"mikavilpas","description":"Square-1 trainer, analysis and general learning tool","archived":false,"fork":false,"pushed_at":"2018-11-06T05:40:50.000Z","size":6535,"stargazers_count":17,"open_issues_count":12,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T13:22:40.463Z","etag":null,"topics":["clojurescript","devcards","figwheel","html5-canvas","quil","react","reagent"],"latest_commit_sha":null,"homepage":"","language":"Clojure","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/mikavilpas.png","metadata":{"files":{"readme":"readme.md","changelog":"changes.md","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":"2017-05-30T16:39:04.000Z","updated_at":"2023-12-14T15:06:20.000Z","dependencies_parsed_at":"2022-11-06T20:24:29.983Z","dependency_job_id":null,"html_url":"https://github.com/mikavilpas/squanmate","commit_stats":null,"previous_names":["mikavilpas/squanmate"],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikavilpas%2Fsquanmate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikavilpas%2Fsquanmate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikavilpas%2Fsquanmate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikavilpas%2Fsquanmate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikavilpas","download_url":"https://codeload.github.com/mikavilpas/squanmate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247851992,"owners_count":21006860,"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":["clojurescript","devcards","figwheel","html5-canvas","quil","react","reagent"],"created_at":"2024-11-06T10:39:35.607Z","updated_at":"2025-04-08T13:32:42.964Z","avatar_url":"https://github.com/mikavilpas.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\"\n     width=\"30%\"\n     src=\"https://rawgit.com/sp3ctum/squanmate/master/resources/public/readme/cubeshape-trainer.png\"\u003e\n\n![logo][logolink]\n\n*Squanmate* is a Square-1 trainer, analysis and general learning tool.\n\n**You can run it with a modern web browser right now.\nTry it [here][applink]!** (the link will change with every release,\nso always open it from this readme file!)\n\n\nSquanmate can help you:\n\n* **Train your cubeshape (or cubeshape parity) skills**\n  * select the combinations of shapes you would like to train\n  * a random scramble is generated for you. Solve away!\n  * repeat the selected case with the same/opposite parity, to train both cases\n    effectively!\n  * enable an optional inspection timer to see if you can determine the parity\n    of your puzzle within 15 seconds\n* **Train algorithms**\n  * like with cubeshape cases, select the cases you want to train\n  * supported algsets:\n    * **cubeshape (square square)** even \u0026 odd parity scrambles\n    * **edge permutation (EP)**\n    * **permute last layer (PLL)**\n    * **Lin corner permutation**\n    * **Lin PLL+1** ([source][lin-pll-plus-1-algs])\n  * cases are split into even and odd parity cases for your convenience.\n* **Learn and remember all different shapes and their names**\n* **Inspect a scramble**\n  * check whether the scramble gives an odd or even **parity count** and see\n    exactly what the count consists of.\n  * rotate the scramble how you like\n  * link to a scramble so that it can be returned to later.\n* **Display cubeshape algorithms and the shapes the algorithm goes through**\n  * it's a good aid for memorizing algorithms!\n  * link to your created visualizations from e.g. your Google Sheets\n* **Cubeshape parity helpers**. If you use Cale Schoon's cubeshape parity\n    method, Squanmate offers a couple of helpful features:\n  - displays whether your entered algorithm is **even** or **odd** for that\n    specific starting count position\n  - allows you to find a more comfortable count position by rotating either\n    layer for counting, then undoing that rotation for the algorithm. It's\n    really easy to find out interesting things this way. For example, did you\n    know that for all kite cases every sliceable position for a kite layer\n    gives the same count?\n* **Import a cubeshape algorithm**. Say you have a cool alg that you would like\n  to inspect or verify with Squanmate. Enter your alg into the *Cubeshape\n  algorithm importer* and it will be recognized with minimal work on your part.\n  I use this to import the cubeshape algs originally made for the more popular\n  blind tracing CSP method.\n* **Inspect all possible parity count positions for all shapes**. When counting\n  your parity, it's possible to start at multiple positions and still get the\n  same result. Having options for counting will come in handy when your scramble\n  orients the layers uncomfortably.\n* **Train your skills in recognizing parities in color sequences**. See the\n  Squanmate algorithm document below for details on how color sequences\n  contribute to the parity of the puzzle.\n\n## Related Square-1 learning resources\n- I have collected all cubeshape parity algorithms for the Cale\n  Schoon method. If you use that method, take a look at\n  [my algorithms at Google Sheets][my-algs]\n- I use a simple but effective method for solving the Square-1. If you want to\n  take a look, here are [my Lin method algs][my-lin-algs]\n\n# Development instructions\n\nMaster:\n[![Build Status: master](https://travis-ci.org/sp3ctum/squanmate.svg?branch=master)](https://travis-ci.org/sp3ctum/squanmate)\nDevelop:\n[![Build Status: develop](https://travis-ci.org/sp3ctum/squanmate.svg?branch=develop)](https://travis-ci.org/sp3ctum/squanmate)\n\nAs for dependencies, you need a clojure development environment. Check out\nfigwheel, then start hacking something!\n\n- To start figwheel in your REPL, evaluate this\n\n```clojure\n    (do (require 'figwheel-sidecar.repl-api)\n        (figwheel-sidecar.repl-api/start-figwheel!)\n        (figwheel-sidecar.repl-api/cljs-repl))\n```\n\n## Java 9\n\nIf you’re using JDK 9, you need to include the JVM options `\"--add-modules\" \"java.xml.bind\"` \nin your _project.clj_. Add it just to the existing one that the line fully reads \n`:jvm-opts [\"--add-modules\" \"java.xml.bind\" \"-Xmx1G\"]`. Do not commit this, as it breaks \n\u003cJava 9 JVMs. \n\n## Development environments\nYou have the option of choosing between two development environments:\n- *devcards* shows tests and isolated reagent components, allowing you to\n  manipulate both without seeing the main application at all (think \"sandbox\").\n  It can be accessed at http://localhost:3449/cards.html\n- *dev* is the main application, but can still be hot reloaded at will. Access\n  it at http://localhost:3449/\n- *prod* is not really a development environment, but I'll mention it here\n  anyway. If you build prod with `(build-once prod)`, it will actually be shown\n  in the place of the *dev* build. Do a `ctrl+f5` reload to force a change\n  between the *prod* and *dev* \"environments\" just to be sure.\n\n## How to run tests\nThe tests are compiled to JavaScript and then run in a headless environment. To\nrun the tests:\n\n- Install PhantomJS from http://phantomjs.org/download.html\n- `lein doo once`\n- you can also run `lein doo` to keep running the tests whenever the files'\n  contents change\n\n## How to preview live changes on multiple devices\nIt's possible, thanks to figwheel magic, to hot reload your code changes e.g. on\nyour main development desktop/laptop and your mobile device at the same time.\n\nTo do this,\n- be on the same network as your host (e.g. on your home network)\n- eval `(switch-to-build ...)` with the id of your build (devcards / dev)\n\n# Build production js\nIn the repl, run `(build-once prod)`. The output file is tracked by git, so it\nwill show up as changed in your `git status`. Commit the changed file to the\nrepository so that the app works online with the newest version.\n\n[logolink]: https://rawgit.com/sp3ctum/squanmate/master/resources/public/readme/logo.png\n[applink]: https://cdn.rawgit.com/sp3ctum/squanmate/6.10/resources/public/index.html#/\n[my-algs]: https://docs.google.com/spreadsheets/d/1r0LN41RGKI4oAvD9rCmmc-A5UBpNPvsEOb7eWaEtIFo/edit?usp=sharing\n[my-lin-algs]: https://docs.google.com/spreadsheets/d/1VxhlAqf0z91Cqqo-EEmUuZhJP4NjlA741fjOOZLrcns/edit?usp=sharing\n[lin-pll-plus-1-algs]: https://docs.google.com/document/d/1sXODF-g3CowiUr1_brwyR2JpQsu6VYb-NKaYYTP1Sd8/edit?usp=sharing\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikavilpas%2Fsquanmate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikavilpas%2Fsquanmate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikavilpas%2Fsquanmate/lists"}