{"id":24623013,"url":"https://github.com/cdent/twords","last_synced_at":"2026-05-11T02:46:48.236Z","repository":{"id":7805433,"uuid":"9175875","full_name":"cdent/twords","owner":"cdent","description":"word finding game for tsapp","archived":false,"fork":false,"pushed_at":"2013-04-03T12:52:39.000Z","size":11168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T03:28:49.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"zaach/jsxgettext","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdent.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":"2013-04-02T17:36:41.000Z","updated_at":"2013-10-12T10:42:40.000Z","dependencies_parsed_at":"2022-09-22T06:42:51.541Z","dependency_job_id":null,"html_url":"https://github.com/cdent/twords","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdent%2Ftwords","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdent%2Ftwords/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdent%2Ftwords/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdent%2Ftwords/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdent","download_url":"https://codeload.github.com/cdent/twords/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244333022,"owners_count":20436123,"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":"2025-01-25T03:14:00.278Z","updated_at":"2026-05-11T02:46:43.201Z","avatar_url":"https://github.com/cdent.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What\n\nMessing around with [tsapp](http://tsapp.tiddlyspace.com) to create\na word finding game. See it in action at\n[twords](http://twords.tiddlyspace.com/twords).\n\nThe code is mostly a straight port (with added UI) of an earlier\n[gist in Python](https://gist.github.com/cdent/268079) to experiment\nwith a trie-like (but not actually a trie) data structure. That\nstructure worked very well for Python idioms but makes less sense in\na JavaScript context because it makes itself very large to support\neasy queries. This is great when local, but less great when wanting\nthat data structure available in a browser. `words.js` is a 37M\nfile... With a `_cache-max-age` it's better but still needs to be\ninterpreted.\n\n**Update**: Switching to a more formal trie gets the size down to\njust under 7M. Still large but much better.\n\n# Why\n\nCuz, why not?\n\nTo learn stuff.\n\n# How\n\nIf you add a `#\u003csome number\u003e` arg to the\n[URI](http://twords.tiddlyspace.com/twords#6) that number controls\nthe size of the square that makes up the game.\n\n# Wrong\n\n* Letter frequencies are not aligned with Boggle norms.\n* The letter `Q` is not used at all, to make life easier.\n* The dictionary (`web2`) is full of all kinds of bizarre words\n  which are not legit.\n\n# Next\n\nIf I get sufficiently motivated what it would be nice for this to do\nis:\n\n* Use a better data structure.\n* Be pretty with lovely CSS etc.\n* Be multi-player.\n\nI think it ought to be possible to hack the websocket handling to:\n\n* Use a tiddler which serializes a board to announce that that board\n  is getting ready.\n* Various listening clients hear that board and load it, counting\n  down to a start.\n* Upon completion each individual saves a tiddler with the\n  serialized results of their game, with the title of the board, such\n  that everyone else can `GET` and compare, also over the sockets.\n* Some kind of tiddler cleanup would be done after the game is over.\n\n# Who\n\n[cdent](http://cdent.tiddlyspace.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdent%2Ftwords","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdent%2Ftwords","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdent%2Ftwords/lists"}