Что-бы закончить с blob-aми , деревьями и коммитами надо разобраться как git генерирует имена файлам и как хранит все версии всех файлов.
Название git файла определяется следующим образом:
tree #{text.lenght}\0
Общее правило: тип файла => решетка => длина текста => нулевой байт.
Это наш хедер.
Что-бы получить название файла: Добавляем к хедеру текст файла и берем SHA1 сумму от результата.
Текст файла git сжимает через zlib.
Как это можно реализовать на python:
[1]: import hashlib In [2]: from hashlib import sha1 In [3]: sha = hashlib.sha1() In [4]: line = "developer tools test line" In [5]: header = f"blob {line.__len__()}\0" In [6]: content = (header + line).encode() In [7]: sha.update(content) In [8]: sha.hexdigest() Out[8]: '7f0571380d1f5e2a2fb13bb25eeefe5761895e7a' In [9]: import zlib In [10]: zlib.compress(content)
Первые два символа из 7f0571380d1f5e2a2fb13bb25eeefe5761895e7a пойдут как название директории, а остальные в название файла.
Резюме: Внутри git нет никакой магии, все данные весьма просто храняться и так-же просто используются.
Что-бы закончить с blob-aми , деревьями и коммитами надо разобраться как git генерирует имена файлам и как хранит все версии всех файлов.
Название git файла определяется следующим образом:
tree #{text.lenght}\0
Общее правило: тип файла => решетка => длина текста => нулевой байт.
Это наш хедер.
Что-бы получить название файла: Добавляем к хедеру текст файла и берем SHA1 сумму от результата.
Текст файла git сжимает через zlib.
Как это можно реализовать на python:
[1]: import hashlib In [2]: from hashlib import sha1 In [3]: sha = hashlib.sha1() In [4]: line = "developer tools test line" In [5]: header = f"blob {line.__len__()}\0" In [6]: content = (header + line).encode() In [7]: sha.update(content) In [8]: sha.hexdigest() Out[8]: '7f0571380d1f5e2a2fb13bb25eeefe5761895e7a' In [9]: import zlib In [10]: zlib.compress(content)
Первые два символа из 7f0571380d1f5e2a2fb13bb25eeefe5761895e7a пойдут как название директории, а остальные в название файла.
Резюме: Внутри git нет никакой магии, все данные весьма просто храняться и так-же просто используются.
Telegram auto-delete message, expiring invites, and more
elegram is updating its messaging app with options for auto-deleting messages, expiring invite links, and new unlimited groups, the company shared in a blog post. Much like Signal, Telegram received a burst of new users in the confusion over WhatsApp’s privacy policy and now the company is adopting features that were already part of its competitors’ apps, features which offer more security and privacy. Auto-deleting messages were already possible in Telegram’s encrypted Secret Chats, but this new update for iOS and Android adds the option to make messages disappear in any kind of chat. Auto-delete can be enabled inside of chats, and set to delete either 24 hours or seven days after messages are sent. Auto-delete won’t remove every message though; if a message was sent before the feature was turned on, it’ll stick around. Telegram’s competitors have had similar features: WhatsApp introduced a feature in 2020 and Signal has had disappearing messages since at least 2016.
Spiking bond yields driving sharp losses in tech stocks
A spike in interest rates since the start of the year has accelerated a rotation out of high-growth technology stocks and into value stocks poised to benefit from a reopening of the economy. The Nasdaq has fallen more than 10% over the past month as the Dow has soared to record highs, with a spike in the 10-year US Treasury yield acting as the main catalyst. It recently surged to a cycle high of more than 1.60% after starting the year below 1%. But according to Jim Paulsen, the Leuthold Group's chief investment strategist, rising interest rates do not represent a long-term threat to the stock market. Paulsen expects the 10-year yield to cross 2% by the end of the year.
A spike in interest rates and its impact on the stock market depends on the economic backdrop, according to Paulsen. Rising interest rates amid a strengthening economy "may prove no challenge at all for stocks," Paulsen said.