Бесплатный доступ к платным сервисам во время эпидемии коронавируса

Безусловно, коронавирус повлияет на нас всех в той или иной форме. Ничего хорошего от него нет, не было и не будет. Мир стоит на грани. Но все же есть компании, которые путь и не решают проблему с коронавирусом, но хотя бы делают свои ресурсы для нас бесплатными. Ну или почти бесплатными. Ниже представляю вам подборку таких ресурсов.

Бесплатный премиум-доступ к PornHub.

Бесплатный премиум-доступ к PornHub.

PornHub в течении всего марта пользователям, которые заходят на сайт с территории Италии, могут бесплатно пользоваться премиум-доступом на сайте. Ставим VPN и наслаждаемся.


GeekBrains откроет бесплатный доступ к курсам на время карантина

GeekBrains откроет бесплатный доступ к курсам на время карантина

Образовательный портал GeekBrains открывает доступ к курсам по четырем направлениям: программирование, дизайн, управление и маркетинг. Проходить курсы бесплатно можно будет в период карантина, связанного с распространением коронавируса. 

Каждый пользователь, находящийся на карантине или в добровольной самоизоляции, может выбрать три курса из перечня, среди которых — основы баз данных, алгоритмы и структуры на C, основы продакт-менеджмента, тренды и целеполагание в дизайне, продвижение ВКонтакте и другие. Чтобы получить к ним доступ, он должен быть зарегистрирован на портале. Активировать доступ можно до 31 марта: для этого нужно заполнить анкету по ссылке, указать выбранные курсы и оставить адрес почты, на которую зарегистрирован.


«Альпина» открывает доступ к электронным книгам

«Альпина» открывает доступ к электронным книгам

Заходите на сайт «Альпина.Книги» или скачивайте приложение (AndroidIOS), регистрируйтесь и добавляйте промокод GIFT_STAYHOME. 70 бесплатных книг на самые разные темы — от прокачки памяти до религиоведения — уже ждут вас в специальной подборке*. Вы сможете читать их прямо на сайте, в приложении или скачать на свою читалку. ПОСМОТРЕТЬ КНИГИ


Бесплатные уроки от Bang Bang Education

Бесплатные уроки от Bang Bang Education
Processed with VSCO with e3 preset

Обновляемая онлайн-коллекция из 46 курсов для каждого, кто хочет учиться и готов контролировать этот процесс самостоятельно.

До 17 апреля она доступна бесплатно всем желающим — команда Bang Bang Education поддерживает инициативы коллег из сферы онлайн-образования, открывших доступ к своему контенту. Предлагаем не унывать в самоизоляции, а проводить это время с пользой и учиться новому. Дизайн, программирование, сайты и многое другое.ПОСМОТРЕТЬ КУРСЫ


Storytel открыл бесплатный доступ к книгам

Storytel открыл бесплатный доступ к книгам

Сервис аудиокниг Storytel сообщил, что на фоне вспышки коронавируса открывает всем новым пользователям бесплатный доступ ко всей библиотеке.Доступ будет открыт пользователям сроком на 30 дней. Кроме того, бесплатными будут подкасты собственного производства на онлайн-платформах SoundCloud, в подкастах Apple, на «Яндекс Музыке» и «Google подкастах».

30 дней считаются с даты регистрации в сервисе по ссылке. 

Как получить список всех файлов в истории git с размерами

Если вы планируете оптимизировать размер своего git-репозитория с помощью, например, bfg — то просто жизненно необходимо получить список всех файлов в репозитории с их размерами. Из которых вы потом сможете выделить именно те, которые надо удалить из истории вашего проекта. Ниже я приведу вам bash-скрипт который сформирует для вас этот список и отсортирует его по размеру файлов.

git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest

Удаление каталогов в истории git с помощью BFG

Если вы столкнулись с тем, что вам надо удалить целиком каталог из истории git, то это может быть проблемой, так как BFG не поддерживает слеши в путях.

Но есть способ обойти это ограничение. Собираем список всех Id-шников у файлов в каталоге и далее этот список скармливаем в BFG на очистку.

git rev-list --all --objects -- path/to/the/directory/to/delete | git cat-file --batch-check='%(objectname) %(objecttype) %(rest)' | grep -Pe '^\w+ blob' | cut -d' ' -f1 > ./to-delete.txt 

java -jar bfg.jar --no-blob-protection --strip-blobs-with-ids ./to-delete.txt

Ну и финальным шагом не забываем пробежаться скриптом для очистки мусора

git reflog expire --expire=now --all && git gc --prune=now --aggressive

The principle is simple: create a list of object IDs to strip, and input that to BFG. This means that if an object is referenced through a different path it will be nuked nonetheless.

  • git rev-list --all --objects -- path/to/the/directory/to/delete
    This will list all objects in the subdirectory referenced in all commits which modify the given path. The format is objectid filepath.You should run this command to check its output matches what you’d expect.
  • git cat-file --batch-check='%(objectname) %(objecttype) %(rest)'
    This will qualify the object with its type. It will turn the previous format objectid filepath into objectid type filepath.
  • grep -Pe '^\w+ blob'
    This will filter out non-blob objects.
  • cut -d' ' -f1 > ./to-delete.txt
    This will extract the object ID and redirect the output into the to-delete.txt file.
  • java -jar bfg.jar --no-blob-protection --strip-blobs-with-ids ./to-delete.txt
    This runs BFG, giving it the list of objects to remove.