ulid
marc
Our great sponsors
ulid | marc | |
---|---|---|
4 | 6 | |
644 | 65 | |
- | - | |
0.0 | 0.0 | |
about 1 year ago | almost 2 years ago | |
Python | Swift | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ulid
-
Plan B for UUIDs: double AES-128
I really like ULID for this problem (e.g: https://github.com/ahawker/ulid)
- same number of bytes as UUID
- start with a date, so has great locality. Plus you get extra information in the uid that you can extract.
- can be created from an existing date or uuid, and exported to a uuid, so there is a migration path
-
New UUID Formats from IETF
As the author of a popular ULID implementation in python[1], the spec has no stewardship anymore. The specification repo[2] has plenty of open issues and no real guidance or communication beyond language implementation authors discussing corner cases. The monotonic functionality is ambiguous (at best) and is implemented differently per-languages [3].
Functionality, UUIDv7 might be the _same_ but the hope would be for a more rigid specification for interoperability.
[1]: https://github.com/ahawker/ulid
[2]: https://github.com/ulid/spec
[3]: https://github.com/ulid/spec/issues/11
-
Sortable Collision-Free UUIDs
Looks similar to ULID[0] (I am the author of a popular python implementation[1]).
It appears to have a similar constraint that two ID's generated within the same timestamp (ms, ns) have no strong guarantee of ordering. That might not be a deal breaker depending on your use case but something to consider.
* https://github.com/ulid/spec
* https://github.com/ahawker/ulid
- Usando ULIDs para criar ordem em dados não ordenados
marc
-
Markov Chain Monte Carlo Without All the Bullshit (2015)
I love Markov chains! But, I too don't like "terminology, notation, and style of writing in statistics"... so, I built a simple "Rosetta Stone" (Python <> Swift) library implementation of Markov chains here: https://github.com/maxhumber/marc
-
I built two Markov chain libraries to showcase the differences between packaging in Python vs. Swift (Spoiler: While Python is great we all know the packaging experience isn't the best...)
But, frustratingly, I originally had a blank __init__.py here, and the tests were working on the build server... but when you installed the package with pip install -U marc from PyPI, it wouldn't be able to import until I added in the from .marc import MarkovChain
- Markov chains implemented and packaged in Swift vs. Python
- Show HN: marc – Markov chain generator for Python and/or Swift
What are some alternatives?
ksuid - K-Sortable Globally Unique IDs
xeger - Library to generate random strings from regular expressions.
python-ulid - ULID implementation for Python
EXREX - Irregular methods on regular expressions
uuid - Generate RFC-compliant UUIDs in JavaScript
HotBits Python API - Python API for HotBits random data generator
UUID - :snowflake: A PHP library for generating universally unique identifiers (UUIDs).
essential-generators - Dead Simple Document Generation
MarkovNameGenerator - :black_nib: Markov process-based procedural name and word generator demo