{"id":15655362,"url":"https://github.com/awalterschulze/ragax","last_synced_at":"2025-05-04T08:30:30.760Z","repository":{"id":72411057,"uuid":"57953722","full_name":"awalterschulze/ragax","owner":"awalterschulze","description":"A Talk on Ragalur Expressions","archived":false,"fork":false,"pushed_at":"2022-09-19T14:22:54.000Z","size":3104,"stargazers_count":25,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"gh-pages","last_synced_at":"2025-05-03T19:47:40.690Z","etag":null,"topics":["ableton-live","brzozowski-derivative","context-free-grammar","golang","haskell","javascript","maxmsp","music-generation","playground","regular-expression","slide","validation"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awalterschulze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-03T08:29:05.000Z","updated_at":"2023-12-20T17:42:06.000Z","dependencies_parsed_at":"2023-09-17T12:31:24.340Z","dependency_job_id":null,"html_url":"https://github.com/awalterschulze/ragax","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/awalterschulze%2Fragax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awalterschulze%2Fragax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awalterschulze%2Fragax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awalterschulze%2Fragax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awalterschulze","download_url":"https://codeload.github.com/awalterschulze/ragax/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252307569,"owners_count":21727029,"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":["ableton-live","brzozowski-derivative","context-free-grammar","golang","haskell","javascript","maxmsp","music-generation","playground","regular-expression","slide","validation"],"created_at":"2024-10-03T12:58:27.834Z","updated_at":"2025-05-04T08:30:30.744Z","avatar_url":"https://github.com/awalterschulze.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Talk on Ragalur Expressions\n\nUsing Ragas, scales from Indian Classical Music, you will get to know the Brzozowski Derivative. \nThe Brzozowski Derivative is a more intuitive way to match strings using Regular Expressions, than the standard Thompson's construction algorithm. \nFunctional concepts such as Laziness, Memoization and Least Fixed Point can enhance the capabilities of Derivatives to even validate Recursive Regular Expressions (Context Free Grammars). \nFinally we'll see what I use derivatives for.\n\n## Videos\n\nAfter giving the talk several times, I have turned it into a series of videos and blog posts:\n\n### Brzozowski's Derivatives of Regular Expressions (1/4)\n\n\u003ca href=\"https://www.youtube.com/watch?v=k9linVmyIiE\u0026list=PLYwF9EIrl42S9ldgii7kfBEIHPle7PqMk\u0026index=1\" target=\"_blank\"\u003e\n \u003cimg src=\"https://img.youtube.com/vi/k9linVmyIiE/maxres1.jpg\" alt=\"Watch the video\" width=\"480\" border=\"10\" /\u003e\n\u003c/a\u003e\n\n#### Blog Post\n\n\u003ca href=\"https://medium.com/@awalterschulze/how-to-take-the-derivative-of-a-regular-expression-explained-2e7cea15028d\"\u003e\n How to take the Derivative of a Regular Expression explained\n\u003c/a\u003e\n\n### Ragax - Extending Regex Derivatives to Context Free Grammars (2/4)\n\n\u003ca href=\"https://www.youtube.com/watch?v=O3aO5eskiLc\u0026list=PLYwF9EIrl42S9ldgii7kfBEIHPle7PqMk\u0026index=2\" target=\"_blank\"\u003e\n \u003cimg src=\"https://img.youtube.com/vi/O3aO5eskiLc/maxres2.jpg\" alt=\"Watch the video\" width=\"480\" border=\"10\" /\u003e\n\u003c/a\u003e\n\n### Generating Ragas using Brzozowski Derivatives for Regular Expressions with Ableton Live and Max MSP (3/4)\n\n\u003ca href=\"https://www.youtube.com/watch?v=Jg8eFh96wPU\u0026list=PLYwF9EIrl42S9ldgii7kfBEIHPle7PqMk\u0026index=3\" target=\"_blank\"\u003e\n \u003cimg src=\"https://img.youtube.com/vi/Jg8eFh96wPU/maxres2.jpg\" alt=\"Watch the video\" width=\"480\" border=\"10\" /\u003e\n\u003c/a\u003e\n\n### Relaxing Raga (Indian Classical Music) Computer Generated (4/4)\n\n\u003ca href=\"https://www.youtube.com/watch?v=1now1LySky4\u0026list=PLYwF9EIrl42S9ldgii7kfBEIHPle7PqMk\u0026index=4\" target=\"_blank\"\u003e\n \u003cimg src=\"https://img.youtube.com/vi/1now1LySky4/maxres1.jpg\" alt=\"Watch the video\" width=\"480\" border=\"10\" /\u003e\n\u003c/a\u003e\n\n## Slides\n\nThe [slides](https://github.com/awalterschulze/ragax/raw/gh-pages/latex/ragax.pdf) are located in the latex folder.\nIf you missed the talk you can also download the [slides with notes](https://github.com/awalterschulze/ragax/raw/gh-pages/latex/ragax-with-notes.pdf) which include my exact speech as notes.\n\n## Demos\n\nThe code is split into 2 projects:\n\n  - ragabot: the albeton, maxjs and javascript folders.  Open the albeton live project and start playing.\n  - playground: the golang and root folders.  Open the [playground website](http://awalterschulze.github.io/ragax/).\n\n## Locations\n\nI have given this talk 7 times:\n\n  - [Functional Programming Cape Town Meetup](http://www.meetup.com/Cape-Town-Functional-Programmers/events/229984534/) Scarborough, Cape Town, South Africa - April 2016\n  - Technopark, Stellenbosch, South Africa - May 2016\n  - Jexia, Apeldoorn, The Netherlands - May 2016\n  - eBay Office, Amsterdam, The Netherlands - May 2016\n  - [Stellenbosch University, Stellenbosch, South Africa](http://www.meetup.com/Stellenbosch-Computer-Science-Meetup/events/231041690/) - June 2016\n  - eBay Office, Amsterdam, The Netherlands - April 2018\n  - [Functional Programming Amsterdam Meetup](https://www.meetup.com/fp-ams/events/249766439/), Amsterdam, The Netherlands - May 2018\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawalterschulze%2Fragax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawalterschulze%2Fragax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawalterschulze%2Fragax/lists"}