mystoreDie AnwendungThe Application

mystore – Die Anwendung

Die Anwendung mystore sichert Dateien und Inhalte von Verzeichnissen in Versionen. Jede Sicherung ist als Ganzes oder in Einzelteilen als Version abrufbar. Die Sicherungen werden in einem frei angebbaren Verzeichnis kompakt gespeichert. Anders als bei einem Backup werden keine vollständigen Partitionsinhalte gespeichert, sondern die Anwendung konzentriert sich auf reguläre Dateien und Verzeichnisse. Anders als bei einem Versionskontrollsystem gibt es keinen besonderen Ordner, der kontrolliert wird, sondern der Speicher ist für alle Verzeichnisse und Dateien gleichermaßen offen. Bis zu 1 Terabyte und mehr an Daten können mit mystore in einem Sicherungsverzeichnis verwaltet werden, wobei Duplikate nicht zählen.
The application mystore stores files and folder in versions. Every version can be restored as a whole or in parts. A storage-folder can freely be selected for a compact store. Unlike a backup, complete partition content can’t be stored, but the application focus on regular files and directories. Unlike a version control system, there is no special controlled folder, but the storage is open for all directories and files equally. Up to 1 terabyte and more of data can be managed with mystore in one storage folder, duplicates not counted.

mystore gibt es hier zum DownloadDownload of mystore

Linux SHA256 95F6442F1FEEB6FF70D45D25D6E7125499D3AF4CB4FE19C65AAB345E8176BDDD
Windows SHA256 1C3F70641D95D08F9C8B121BED7BD96964E55C61B85D0023A1A6AE731EF32E20

Bitte beachten Sie, dass die Anwendung mystore in der Version 0.9.7-rc nicht für Produktionszwecke freigegeben wurde. Dazu wurde die Anwendung zu wenig getestet und es gibt zu wenig Anwenderberichte. mystore ist für aktuelle Linux und Windows Betriebssysteme erhältlich (getestet unter Windows 10 und Ubuntu 18.04LTS).Please note that the application mystore in version 0.9.7-rc isn’t released for production usage. There are too few tests and user stories. mystore is available for current Linux and Windows operating systems (tested with Windows 10 and Ubuntu 18.04LTS).

mystoreDie LizenzThe License

Die Anwendung mystore ist für den privaten Gebrauch und zur Evaluation frei in der Verwendung. Für eine regelmäßige Nutzung im nicht-privaten Bereich (ab der 3. Sicherung oder nach 6 Monaten) wird eine kostenpflichtige Lizenz benötigt, die bei Inform4(Andreas Menke) erhältlich ist.The application mystore is free for private use and evaluation. For regular use in the non-private area (from the 3rd backup or after 6 months), a fee-based license is required, which is available at Inform4(Andreas Menke).

Die Anwendung mystore wird ohne Zusicherung spezieller Eigenschaften angeboten. Etwaige gezeigte Anwendungsbeispiele sind möglicherweise nicht für spezielle Situationen passend, noch wird irgendeine Haftung übernommen, dass Beispiele überhaupt funktionstüchtig sind. Soweit irgendwie gesetzlich möglich, wird eine Haftung für die Anwendung mystore ausgeschlossen.The application mystore is offered without assuring special properties. Any application examples shown may not be suitable for special situations, nor in any liability it is to be assumed that examples are functional at all. As far as legally possible, liability for the application mystore is excluded.

mystoreDie AbläufeUse Cases

mystoreSicherungenStoring

Eine Sicherung mit mystore kann über die BefehlszeileStoring with mystore can be initiated from the command line with

mystore —-store <Pfad-zum-Verzeichnis-oder-Datei>mystore —-store <path-to-file-or-folder>

angestoßen werden. Die Sicherung erfolgt in das Default-Verzeichnis ./.store. Wenn <Pfad-zum-Verzeichnis-oder-Datei> einen absoluten Pfad angibt, dann wird die Wurzel vom Pfad entfernt. Die Sicherung einer gesamten Partition ohne Angabe eines (Unter-)Verzeichnisses bzw. einer Datei wird nicht unterstützt. MitThe data is stored into the default folder ./.store. If <path-to-file-or-folder> specifies an absolute path, the root of the path is removed. Storing of an entire partition without specifying a (sub) directory or a file is not supported. With

mystore —-storage <Pfad-zum-Storage> —-store <Pfad-zum-Verzeichnis-oder-Datei>mystore —-storage <path-to-storage> —-store <path-to-file-or-folder>

wird die Sicherung im Verzeichnis <Pfad-zum-Storage> gespeichert.the data is stored in <path-to-storage>.

Für mystore ist eine Datei Dateiname im aktuellen Verzeichnis /A/B verschieden zu B/Dateiname im aktuellen Verzeichnis /A. Dieses Verhalten ist anders als bei Versionskontrollsystemen wie git und Co. mystore kennt kein Bezugsverzeichnis (z.B. / oder /A/). mystore kennt nur die Namen Dateiname und B/Dateiname, die unterschiedlich sind und nicht ineinander überführt werden können. Eine Suche nach Dateiname ergibt keine Ergebnisse zu B/Dateiname und umgekehrt.For mystore a file filename in the current directory /A/B is seen different from B/filename viewed from the current directory /A. This behavior is different from version control systems like git and Co. mystore has no reference directory (eg / or /A/). For mystore there are only the names filename and B/filename, which are different and cannot be converted into one another. A search for filename yields no results for B/filename and vice versa.

mystoreInformierenInforming

Mit mystore kann über die Schalter --show <name> und --browse <name> der Inhalt der Sicherungen durchsucht werden. Der BefehlWith mystore, the content of a store can be searched using the switches --show and --browse. The command

mystore --show-ee

zeigt die bei Sicherungen verwendeten Namen (End-Entity) und die Anzahl der Sicherungen zu diesem Namen. Als End-Entity (EE) werden diejenigen Dateien und Verzeichnisse benannt, die bei einer Sicherung explizit angegeben wurden.shows the names used for storing (end entity) and the number of versions for this name. End entity (EE) are those files and folders that were explicitly specified during a store.

$ ./mystore19UMTS.exe --storage mystore-vm --show-ee
Files in storage 'mystore-vm'
 EE   1 version  'Ubuntu18LTS'
 EE   1 version  'W10ITunes'

Im Gegensatz zu den explizit genannten Namen (EE) werden mit dem Schalter --show-all alle Namen angezeigt.In contrast to explicit names (EE) all names are shown with the switch --show-all.

$ ./mystore19UMTS.exe --storage mystore-vm --show-all
Files in storage 'mystore-vm'
 EE   1 version  'Ubuntu18LTS'
      1 version  'Ubuntu18LTS/ExtralDisk1.vdi'
      1 version  'Ubuntu18LTS/Logs'
      1 version  'Ubuntu18LTS/Logs/VBox.log'
      1 version  'Ubuntu18LTS/Logs/VBox.log.1'
      1 version  'Ubuntu18LTS/Logs/VBox.log.2'
      1 version  'Ubuntu18LTS/Logs/VBox.log.3'
...

Informationen über die Versionen zu einem Namen (Datei oder Verzeichnis) gibt es mit dem Schalter --show <Name>Information about the versions of a name (file or directory) is available with the switch --show <name>.

$ ./mystore19UMTS.exe --storage mystore-vm --show Ubuntu18LTS/ExtralDisk1.vdi
Versions for file 'Ubuntu18LTS/ExtralDisk1.vdi' in storage 'mystore-vm'
Version   0      21664628736 byte '2020-01-26T17.31.29Z'

Die Versionen werden von 0 (zero) aufwärts gezählt und jede Version erhält einen Zeitstempel (Rechnerzeit) in UTC / Zulutime. Zu jeder Version kann eine frei gewählte Zeichenkette mit dem Schalter --version-string <zeichenkette> hinzugefügt werden. Die Zeichen der <zeichenkette> sind sehr restriktiv. Nur ASCII 7-Bit Buchstaben und Ziffern und nur wenige Sonderzeichen sind erlaubt. Das Sicherungsverzeichnis kann mit dem Schalter --storage <storage> gesetzt werden.Versions are counted from 0 (zero) and each version receives a time stamp (computer time) in UTC / Zulu time. To each version a freely selectable character string can be added with the switch --version-string <string>. The character set of the <string> is very restrictive. Only ASCII 7-bit letters and numbers and only a few special characters are allowed. The storage directory can be set with the switch --storage <storage>.

Details über einen Namen werden über den Schalter --browse <name> ausgegeben.
Details about a name is shown via the switch --browse <name>.

$ ./mystore19UMTS.exe --storage mystore-vm --browse W10ITunes
Folder 'W10ITunes' in version '2020-01-26T14.29.01Z
 (folder)      'W10ITunes/Logs'
 (folder)      'W10ITunes/Snapshots'
29847715840 byte 'W10ITunes/W10ITunes-disk1.vdi'
     9634 byte 'W10ITunes/W10ITunes.vbox'
     9634 byte 'W10ITunes/W10ITunes.vbox-prev'

mystoreRestaurierenRestoring

Das Restaurieren von Dateien und Verzeichnissen erfolgt mit der Anwendung mystore genauso einfach wie die Sicherung.Restoring of files and folder is as easy as storing

mystore --restore <name>

Der genannte Befehl restauriert die letzte (neueste) Version von <name> in das Verzeichnis ./.restored. Der Befehl ist gleichbedeutend mitAbove command restores the last (newest) version of <name> into the folder ./.restored. The command is equivalent to

mystore --version -1 --restore <name>

Die Version -1 bezeichnet dabei die letzte und neueste Version und 0 (zero) bezeichnet die älteste und erste Version einer Datei oder eines Verzeichnisses. Die zweit-neueste Version ist dann -2 und die zweit-älteste Version wird durch 1 bezeichnet usw. Um die Daten in einem anderen Ordner zu restaurieren, kann der Schalter --restore-folder <Verzeichnis> verwendet werden.Version -1 denotes the last and newest version and 0 (zero) denotes the oldest and first version of a name. The second-newest version is denoted with -2 and the second-oldest version is denoted by 1 etc. To restore the data into another folder, the switch --restore-folder <folder> is used.

mystore —-restore-folder <verzeichnis> —-restore <name>mystore —-restore-folder <folder> —-restore <name>

Um alle Versionen auf einmal zu restaurieren, wird der Schalter --restore-all [<name>] verwendet. Hiermit werden alle Versionen des <name> bzw. alle Versionen ausgehend von den EE-Namen in eigenen Unterverzeichnissen restauriert. Jedes Unterverzeichnis wird nach der Versionszeit samt angegebenen Versionszeichenkette bezeichnet und ist für ein Sicherungsverzeichnis eindeutig.In order to restore all versions at once, there is the switch --restore-all [<name>]. This command restores all versions of <name> or all versions based on the EE names in their own subdirectories. Each subdirectory is named with the version time together with the specified version string and is unique for a storage.

Eine Überprüfung auf Fehler im Sicherungsverzeichnis kann mit den Schaltern --test <name> und --test-all [<name>] angestoßen werden. Die Tests führen intern die gleichen Aktionen durch, wie die entsprechende Restaurierung, allerdings mit dem Unterschied, dass die Daten nicht in das Dateisystem geschrieben werden. Der Schalter --test-all [<name>] bewirkt, dass sämtliche Versionen entweder aller Daten ausgehend von allen EE-Namen oder aller Daten ausgehend vom angegebenen <name> getestet werden.A check for errors in the storage can be initiated with the switches --test <name> or --test-all [<name>]. The tests perform internally the same actions as the corresponding restoration, but with the difference that the data is not written to the file system. The switch --test-all [<name>] causes all versions to be tested either all data based on all EE names or all data based on the specified <name>.

Wie die Sicherung funktioniertHow it works

Die Sicherung mit mystore erfolgt nach dem Prinzip des Zyklischen-Hashes (cyclic hash). Vereinfacht gesprochen werden die zu sichernden Dateien mittels des Zyklischen Hashwerts in Fragmente geteilt und gespeichert. Über Indexdaten können die Originaldateien wieder hergestellt werden. Die Aufteilung in Fragmente hat den Vorteil, dass gleiche Fragmente nicht zweimal gespeichert werden müssen. Dieser Vorteil tritt bei vollständig gleichen Dateien von selbst auf. Wenn aber in einer größeren Datei nur wenig verändert wurde, dann ist die Chance vorhanden, dass über den Zyklischen Hash Fragmente so gebildet werden, dass einige Fragmente gleich und nur wenige Fragmente unterschiedlich sind. Tatsächlich ist dieser Effekt für eine ’normale‘ Sicherung nur gering, da die Fragmentgröße per default mit 20 bit recht hoch ist. Für eigene Experimente und zur Justierung bei Sonderfällen gibt es bei mystore den Schalter --break-bits N. Die ungefähre Größe der Fragmente wird als Bitwert angegeben.Storing with mystore is based on the principle of the cyclic hash. Put simply, the files to be stored are divided into fragments and saved. The original file data is restored using index data. The division into fragments has the advantage that same fragments do not have to be saved twice. This advantage occurs automatically with completely identical files. If, however, in a larger file little has been changed, then there is a chance that fragments will be formed over the cyclic hash in such a way that some fragments are the same and only a few fragments are different. In fact, this effect is only slight for a ’normal‘ store, since the fragment size is quite high by default with 20 bits. The --break-bits N switch is available for your own experiments and for adjustment in special cases. The approximate size of the fragments is given as a bit value.

Jedes Fragment wird mit dem Algorithmus SHA-1 gehasht und mittels des Deflate-Algorithmus komprimiert und mit dem SHA-1 Hashwert als Namen im Dateisystem gespeichert. Der Algorithmus SHA-1 ist für diese Anwendung geeignet, da er nur zur Unterscheidung zweier Fragmente genutzt wird. Einen Angriff gegen gefälschte Duplikate muss der Hashwert nicht widerstehen. Damit die anwachsende Zahl von Fragmenten übersichtlich bleibt, erfolgt die Speicherung in Verzeichnissen, die mit dem ersten Byte des Hashwertes benannt sind. Zur absoluten Begrenzung der Anzahl verwendeter Dateien werden alle Fragemente mit Hashwerten, die mit zwei gleichen Bytes beginnen, in eine Datei gepackt. Durch diese Maßnahme wird die Anzahl der Dateien für Fragmente bei einer Speichertiefe von 1 absolut auf 2^16 = 64 *1024 Dateien begrenzt. Zum Experimentieren und für Sonderfälle gibt es bei mystore den Schalter --store-depth N zur Angabe der Speichertiefe. Per Default ist dieser Wert auf den kleinst möglichen Wert 1 gesetzt. Ebenfalls für Experimente und für Sonderfälle gibt es den Schalter --no-pack. Dieser Schalter bewirkt, dass die Fragmente nicht gepackt, sondern separat als Dateien gespeichert werden. Wenn der Schalter --no-pack angegeben wird, gibt es keine Beschränkung in der Anzahl der Dateien, die in der Sicherung erzeugt werden. Mit diesem Schalter ist vorsichtig umzugehen, da ein normales Dateisystem wie NTFS auf einem PC bei z. B. mehr als 100.000 Dateien in einem Verzeichnisbaum durchaus längere Zeit alleine zum Löschen der Dateien benötigt. Das Dateisystem selber oder Programme, die mit dem Dateisystem arbeiten, können an der großen Menge an Dateien Schaden nehmen oder verursachen. Also bitte Achtung! Mit dem Default-Wert von 1 für --store-depth kann das Sicherungsverzeichnis von mystore bis ca. 1 Terabyte an Daten verwalten.Each fragment is hashed using the SHA-1 algorithm and compressed using the deflate algorithm and saved with the hash value as it’s name in the file system. The SHA-1 algorithm is suitable for this application because it is only used to distinguish two fragments. The hash value does not have to withstand an attack against fake duplicates. To be the growing number of fragments remains clear, they are stored in directories named with the first byte of the hash value. To absolutely limit the number of files used, all fragments with hash values that begin with two identical bytes are packed into one file. With a storage depth of 1 the absolute number of files is limited to 2 ^ 16 = 64 * 1024. For experiments and special cases there is the switch --store-depth N specifying the memory depth. By default, this value is set to the smallest possible value 1. The switch --no-pack is available for experiments and special cases. It’s meaning is that fragments are not packed, but instead saved in separate files. In case of the switch --no-pack, there is no limit to the number of files created by a store. This switch must be handled with care, since a normal file system such as NTFS on a PC with e.g. more than 100,000 files in a directory tree may take a long time to delete the files alone. The file system itself or programs that work on the file system can make a damage on the huge amount of file. Take care! With the default value of 1 for --store-depth the backup directory of mystore is able to manage up to approx. 1 terabyte of data.

Weitergehende SicherungsmöglichkeitenMore Storing Alternatives

Sicherungen mittels mystore sind flexibel einstellbar, aber wirklich sinnvoll oder gar notwendig sind nur wenige Einstellungen und auch dann nur in wenigen Sonderfällen. Fast immer sind die Default-Einstellungen nicht nur ausreichend, sondern auch am besten.Storings using mystore can be flexibly set, but only a few settings are really useful or even necessary, and then only in a few special cases. The default settings are almost always not only sufficient, but also the best.

Eine nützliche und weitergehende Sicherungsmöglichkeit bietet der Im- und Export von tar-Archiven. Beim Import eines tar-Archives wird von mystore die tar-Struktur interpretiert. In die Sicherung gelangen die enthaltenen Dateien und Verzeichnisse des tar-Archivs, so als ob mystore die Daten selbst aus dem Dateisystem gelesen hätte. Der Import eines tar-Archiv macht dort Sinn, wenn z. B. von einem entfernten Dateisystem eine Sicherung erfolgen soll. Über den Schalter --storage <Sicherungsverzeichnis> kann das Sicherungsverzeichnis von mystore möglicherweise nicht erreichbar sein, aber über eine Weiterleitung als tar-Archiv kann die Sicherung trotzdem erfolgen. Mit dem Schalter --tar statt --store <Datei-oder-Verzeichnis> erwartet die Anwendung mystore über stdin ein tar-Archiv, dessen Struktur interpretiert wird und die Inhalte des tar-Archivs werden als Bestandteile in die Sicherung übernommen.A useful option for storing is the import and export of tar archives. When importing a tar archive, mystore interprets the tar structure. The files and directories contained in the tar archive are saved as if mystore had read the data itself from the file system. Importing a tar archive makes sense in case of, for example, reading from a remote file system. The mystore storage directory may not be accessible via the --storage <folder> switch, but storing can still be done by forwarding the data as a tar archive. Using the switch --tar instead of --store <file-or-folder> the application mystore expects a tar archive via stdin.

cat my.tar | mystore --tar
cat my.tgz | gzip -d | mystore --tar

Für den Export eines tar-Archivs gibt es keinen eigenen Schalter. Stattdessen wird implizit ein tar-Archive gepackt, wenn als Restaurierungsverzeichnis – (dash) als Parameter zum Schalter --restore-folder <Restaurierungsverzeichnis> angegeben wird. Das tar-Archiv wird dann über stdout ausgegeben und kann entweder als Datei gespeichert oder über eine Pipe (‚|‘) weitergeleitet werden.There is no separate switch for exporting a tar archive. Instead, a tar archive is implicitly packed if the restoration directory – (dash) is specified as <restore-folder> for the switch --restore-folder <restore-folder>. The tar archive is then output via stdout and can either be saved as a file or forwarded via pipe (‚|‘).

mystore --restore-folder - --restore myfolder > my.tar
mystore --restore-folder - --restore myfolder | gzip > my.tgz

Für den Sonderfall, dass über stdin kein tar-Archiv interpretiert werden soll, sondern die Daten als eigenständige Datei gespeichert werden sollen, hat mystore den Schalter --name <Name>. Für die Ausgabe gibt es diese Besonderheit nicht. D. h. bei einer Ausgabe über stdout wird immer ein tar-Archiv erzeugt.For the special case that stdin should not be interpreted as a tar archive, but the data should be saved as an independent file, mystore has the switch --name <name>. This peculiarity does not exist for output. Instead, an output via stdout always creates a tar archive.

FAQ – Frequently Asked Questions

FAQ – Frequently Asked Questions

Wie arbeite ich mit mystore?How do I work with mystore?

Auf der Kommandozeile. In dem Ordner, in dem gearbeitet werden soll, wird mit mystore . eine Sicherung durchgeführt. Mit mystore --restore . wird die letzte Sicherung in den Ordner .restored restauriert, mystore --show . zeigt die vorhandenen Versionen. mystore selbst verändert dabei per default keine Quelldateien, es werden nur die Verzeichnisse zum Speichern (default ./.store) und Restaurieren (default ./.restored) angelegt und gefüllt.In a terminal. Switch to the folder you want to work with and type mystore . to start storing. Getting back the latest stored version with mystore --restore ., mystore --show . shows up all stored versions. Per default mystore does not change any sources but only creates and fills two folder for storing (default ./.store) and restoring (default ./.restored).

Hat mystore eine Löschfunktion? Kann man aus einem Sicherungsverzeichnis eine Datei oder ein Verzeichnis löschen?Can I remove some content from a store? Does mystore have a delete function?

Nein. Eine Löschfunktion ist nicht implementiert.No. No delete nor remove are implemented.

Kann mystore Sicherungen verschlüsselt speichern?.Does mystore has the ability to encrypt it’s output?

Nein. Falls Daten gesichert werden sollen, die von Dritten nicht einsehbar sein sollen, dann verwenden Sie die Mittel des Betriebssystems (Setzen der Rechte für das Lesen von Dateien und Verzeichnissen), oder Sie verwenden ein Tool zum Verschlüsseln des gesamten Sicherungsverzeichnisses.No. If you have confidential data please use OS specific functionality (read settings) or some tool for storage encryption.

Warum unterstützt mystore keine Hard- und Softlinks?Why mystore does not support hard and soft links?

Bisher gab es dazu keine Nachfrage.At now there was no demand for it.

Ist mystore für die IT-Administration geeignet? Kann mystore ein reguläres Backup ersetzen?Is mystore sufficiant for IT administration? Is mystore a replacement for a regular backup?

Generell nein, zu beiden Fragen. Für die IT-Administration fehlen nutzerübergreifende Sicherungen. Reguläre Backups schützen vor dem Ausfall einer Festplatte. Für beides ist mystore nicht ausgelegt.In general no, for both questions. For IT administration ownership handling isn’t implemented. Regular backup secures for the damage of a disk. For both mystore isn’t designed for.

Die Anwendung mystore ist kostenlos, gibt es trotzdem Support für die Anwendung?mystore is free, is there any support for the application?

Kostenlosen Support für die Anwendung mystore gibt es nicht.There is no free support for the application mystore.

Was kostet die nicht-private Lizenz von mystore?What are the costs of the non-private license of mystore

Die Kosten für die nicht-private Lizenz von mystore sind nach der Größe der Sicherungen gestaffelt. Bis zu 500 Gigabyte an Sicherungen je Nutzer kostet die Lizenz € 5 je Monat und Nutzer. Bis zu einem Terabyte kostet die Lizenz € 10 pro Monat und ab 10 Terabyte kosten jede weitere 10 Terabyte € 90 pro Monat. Die unbeschränkte Lizenz je Nutzer kostet € 1000 pro Monat. Support kostet je Stunde € 150, ab 40h jede weitere Stunde € 130 und ab 200h kostet jede weitere Stunde € 110. Je 8h Supportzeit sind 2 Fragen erlaubt. Die Dauer, in der das Supportpacket verbraucht sein muss, beträgt das Doppelte der vereinbarten Supportzeit. Ein minimales Supportpaket umfasst 8h. Kann eine Anfrage nicht innerhalb der vereinbarten Supportzeit beantwortet werden, muss zusätzliche Supportzeit hinzugebucht werden. Bitte erfragen Sie Lizenzbedingungen für gemeinnützige Organisationen oder für Ausbildungszwecke.A non-private license costs € 5 per month per user for the use of mystore up to 500 Gigabyte of stored data. Up to 1 Terabyte the costs are € 10 per month and for every 10 Terabyte above the costs are € 90 per month and user. An unlimited license costs € 1000 per month per user. Up to 40h support every hour costs € 150, up to 200h every hour above € 130, and above every hour costs € 110. For each 8h there may be 2 questions. A support packet ends after double of the purchased time. A minimal support packet is of 8h. If a question can not be answered in the purchased time a new packed must be purchased. Please ask for license conditions for charitable organisations or for education purposes.

Gibt es mystore auch für den MAC oder andere Betriebssysteme / Prozessoren?Can I get mystore for MAC or an other OS / CPU?

Das Programm ist noch jung, bitte fragen Sie uns.The application already is young, please ask.

Zur BeachtungPlease note

Alle auf dieser Webseite genannten Namen und Warenzeichen sind Eigentum der jeweiligen Unternehmen.All published names and trademarks on this website are the property of their respective companies.

Bei Interesse sehen Sie auch Inform4 – Personal InformationIn case of interest have look at Inform4 – Personal Information