These are Go bindings for Tk, a cross-platform widget toolkit initially developed as extension for Tcl. Nowadays a lot of languages have bindings for Tcl/Tk. Python for example has been including tkinter [0] for a long time.
The dash-separated hexadecimal format takes 36 characters to represent 16 bytes of data.
You can use a different formatting. I would suggest looking at https://github.com/oculus42/short-uuid Of course if you just want a random ID, then you might not need a UUID. But UUIDs have the advantage that there are different versions and you can distinguish them; e.g. you might want a unique ID that gives you some debugging information (where/when was it created), so you use v1 and later you can decide to switch to v4 if decide you want the IDs to carry no information.
Indepedent of how you generate the ID, I think the base-57 encoding that shortUUIDs use is quite good when the IDs are user facing. Not using O,0,l,1,I in the alphabet makes IDs more readable.
When my job gives me a task that's hard and complicated and has lots of paperwork, I don't get to say "naw don't want to".
I would probably see it more like low priority bugs in an issue tracker. They only get done when there's nothing with higher priority or someone takes a person personal interest.
Yes. Simplest in-place example would be bubble sort. You might need a temp element for swaps, but that's it. Heap sort can also be done with constant space.
You need of course O(n) space to store the original data; but that is not part of the sort algorithm.
Sorry, wasn't clear. Was talking about the space complexity. If you sort in-place you don't need O(n) space, you can do with O(1 ). Not talking about time complexity
Software engineering within Google is painless in many of the usual sense of pains seen outside Google, but it has its own pains some quite painful pains.
vim had an undo tree for 10 years (or longer?) [0] and there are plugins (eg [1]) that make it very easy to go back in history and also to explore different branches of your undo/edit history. Dura will not track changes that are not saved to disk IIUC
- Clean used to be dual licensed: commercial license + LGPL
- 3 years ago LGPL was replaced by Simplified BSD
- 7 months ago the commercial license was removed
IIRC I looked at Clean 10+ years ago and it was not BSD licensed; either closed source or some restrictive license. And that made me not invest any time into trying it out.
Do I remember this correctly? Does anyone know/remember?