Explaining rationale and pros/cons behind encoding approach.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2022-07-24 09:33:28 -05:00
parent 547bba2c14
commit c984b4768d

View File

@ -126,14 +126,19 @@ Tiddler >> createdAsTWFormat [
] ]
{ #category : #accessing } { #category : #accessing }
Tiddler >> createdEncoded [ Tiddler >> createdReversableEncoded [
"I encode the tiddler creation date with miliseconds precision in a shorter reversable way
(from 17 characters to 10).
But when tiddlers are created with the same exact date (for example programmatically)
I produce the same encoding (because of reversability).
I recommend to use nanoID instead to get unique visible different identifiers "
| output longDate | | output longDate |
longDate := self createdAsTWFormat. longDate := self createdAsTWFormat.
output := '' writeStream. output := WriteStream on: ''.
1 to: 14 by: 2 do: [ :i | 1 to: 14 by: 2 do: [ :i |
output nextPutAll: (longDate copyFrom: i to: i +1 ) asInteger asCharacterDigit asString output nextPutAll: (longDate copyFrom: i to: i +1) greaseInteger asCharacterDigit greaseString
]. ].
output nextPutAll: ((longDate copyFrom: 15 to: 17)). output nextPutAll: (longDate copyFrom: 15 to: 17).
^ output contents ^ output contents
] ]
@ -532,7 +537,7 @@ Tiddler >> uid [
Tiddler >> uidGenerator [ Tiddler >> uidGenerator [
self created ifNil: [ self created: self class nowLocal ]. self created ifNil: [ self created: self class nowLocal ].
^ self customFields at: 'uid' put: self createdEncoded. ^ self customFields at: 'uid' put: self createdReversableEncoded.
] ]