[racket-users] Re: Edmond's Blossom Algorithm
I'm not sure that what you need is Edmond's blossom algorithm. Maximum matching is a problem on undirected graphs. Your problem seems to involve a directed graph structure (A prefers B doesn't mean B prefers A). Daniel Prager's solution involves randomization, so I think it's possible that the solution will not be optimal. If optimality is of concern, you might consider expressing constraints in your problem as an integer program. I'm not sure if Racket has any integer programming library. Using SMT solvers is also another possibility. On Monday, May 14, 2018 at 7:51:17 AM UTC-4, Jens Axel Søgaard wrote: > > Context: > > I have students A, B, C, ..., Z that needs to work in pairs for their exam. > Each student has made a wish list with 3 other students that they'd like > to work with. > I need to find the maximum possible pairing. > > I think - maybe - that the algorithm I need is Edmond's blossom algorithm. > > > Am I so lucky that someone has this in Racket? > > https://en.wikipedia.org/wiki/Blossom_algorithm > > http://www.cs.dartmouth.edu/~ac/Teach/CS105-Winter05/Handouts/tarjan-blossom.pdf > > /Jens Axel > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] github for third-party racket packages
In regard to "non-commercial stuff that you're not ready to release" (I have a lot of that), I believe GitHub requires a paid account to host private repositories. (I'd be delighted to hear otherwise.) I host some of my non-public code on BitBucket, which provides private repositories for free. It works particularly well for Digital Ricoeur, as they give some additional free benefits if you have a ".edu" or equivalent email address. I've never released a Racket package any way but as a Git repository, but I've found it completely friction-less for public packages and fairly low-friction for private ones. -Philip On Wed, May 23, 2018 at 2:14 PM, Greg Hendershottwrote: > I like using GitHub for this (IIUC Bitbucket or GitLab would work equally > well). > > The Racket package catalog tracks a branch, say `master`. After you > push a commit to `master`, the rkt pkg cat will notice automatically. > It scans at intervals. (If you're impatient, sign in and choose > "Refresh my packages". After which there is still some delay, but > IIRC < 1 hour.) > > Having people submit Issues against the repo works well, I think, for > both authors and users of a package. For example in your recent fixes > to html-parsing, other people could see the report, any discussion, > and better appreciate the change. > > Also, you can use magic phrases in your commit message, like "Closes > #123". GitHub will automatically close the issue. Also it creates > cross-links between issues and commits, which can be handy. > > > I think all of GitHub, Bitbucket, and GitLab let you have unlimited > public repos on the free plan. Last I checked, each also allows at > least some number of private repos. > > > I can't speak to migrating version histories. I know that for some > Racket packages it's considered unnecessary to make official version > numbers and release notes. The public commit and/or issue history on > GitHub or whatever, is considered adequate. > > > I'm typing this kind of in a rush so apologies if there are any errors > or it's unclear. Hopefully others will chime in. The TL;DR is I > _think_ you'll find GitHub et al to be <= friction than your status > quo? > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] github for third-party racket packages
I like using GitHub for this (IIUC Bitbucket or GitLab would work equally well). The Racket package catalog tracks a branch, say `master`. After you push a commit to `master`, the rkt pkg cat will notice automatically. It scans at intervals. (If you're impatient, sign in and choose "Refresh my packages". After which there is still some delay, but IIRC < 1 hour.) Having people submit Issues against the repo works well, I think, for both authors and users of a package. For example in your recent fixes to html-parsing, other people could see the report, any discussion, and better appreciate the change. Also, you can use magic phrases in your commit message, like "Closes #123". GitHub will automatically close the issue. Also it creates cross-links between issues and commits, which can be handy. I think all of GitHub, Bitbucket, and GitLab let you have unlimited public repos on the free plan. Last I checked, each also allows at least some number of private repos. I can't speak to migrating version histories. I know that for some Racket packages it's considered unnecessary to make official version numbers and release notes. The public commit and/or issue history on GitHub or whatever, is considered adequate. I'm typing this kind of in a rush so apologies if there are any errors or it's unclear. Hopefully others will chime in. The TL;DR is I _think_ you'll find GitHub et al to be <= friction than your status quo? -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[racket-users] github for third-party racket packages
I'm thinking of moving all my open source third-party Racket packages to GitHub, and had some questions, for other third-party developers... 1. How do third-party developers of polished Racket packages like using GitHub? (Example questions... What friction is there still, to rapidly making a change and a new release that appears in the Racket package catalog? Do you know whether being on GitHub imposes extra work over non-GitHub for some things? With GitHub, is there more work to go through issue reports and pull requests, and process within the Web site, because it happens to be convenient or in pursuit of metrics, as opposed to receiving issue reports limited to ones people felt were important enough to email you about privately? How do you deal with using GitHub for SCM of non-commercial stuff that you're not ready to release? Noticed any signs that GitHub might not always be as warm-fuzzy, or have any unease about implicitly encouraging other people to use it?) 2. Has anyone automated migrating a history of Racket package releases to Git (or to GitHub, specifically)? (Rather than converting to Git from a different SCM system, I'd be converting a history of release packages from pre-PLaneT, PLaneT, and the current package system, and want to have version tagging/labeling/naming happen. I'm not sure it's a good idea, since files were shuffled around within packages over the last 17 years, for various reasons, but I'd like a sense of how much work it would be. An alternative, which I suspect is what I'll end up doing if I move at all, is just to put the source from each last release in Git, and not try to capture the history before that.) Background: My Racket open source releases are in minimal maintenance mode, while I do a career shift, from gov't independent consulting, to academic/non-profit/industry research/engineering/policy. Also, my Racket package release workflow is friction-y for the last few years, so every urgent quick release in response to some issue someone is facing feels like more work than it should be, and so I haven't tried to release various unreleased packages that have been sitting around for years, and I ceased the occasional evening/weeking whipping up of a new package intended for release. My top priority for my Racket open source code is to continue to provide support for packages that I've already released, and my second priority is to be in a position that I could easily ramp back up releasing polished new stuff at later date. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.