Моя пост с инструкциями: hackernoon.com. Пример полученного сайта-визитки: https://kazakov.xyz/ Отличный выбор для личных сайтов без затрат!
Как это работает шаг за шагом:
Создание сайта с Hugo: Вы устанавливаете Hugo на свой компьютер, создаете структуру сайта, добавляете контент (например, в формате Markdown) и генерируете статические HTML-файлы командой hugo.
Размещение кода на GitHub: Создаете публичный или приватный репозиторий на GitHub и загружаете туда исходный код сайта. Например, можно форкнуть готовый шаблон, такой как github.com/kksudo/kazakov.xyz.
Подключение Cloudflare Pages: В панели Cloudflare создаете проект Pages, связываете его с вашим репозиторием на GitHub и указываете команду сборки (например, hugo --minify). Cloudflare автоматически собирает и публикует сайт при каждом коммите.
Настройка домена: Привязываете собственный домен (если есть) или используете бесплатный поддомен вида *.pages.dev. Cloudflare предоставляет SSL-сертификат для HTTPS.
P.S.: Если сайт из РФ недоступен и вам его не открыть, то тут PDF копия. P.P.S: Если вы не используете свой личный домен и проксирование Cloudflare, то возможно ограничения по доступу из различных регионов. В других случаях ограничений не будет. P.P.P.S: Надеюсь трудностей с переводом с Eng не будет, но если что, то могу перевести на наш родной )
В данном случае совет только один, прежде чем писать почитайте, в частности по nginx читать:
— всё подряд от VBart
— действительно хорошие методы борьбы с флудом от kyprizel
— просто бест-практик от lexore — https://habrahabr.ru/post/231277/
и т.п.
Все очень просто.
1) Не выделяй память, если можно не выделять
2) Знай какие операции блокирующие, а какие нет. Очевидно читать файл или слать запросы в сеть в гуёвом потоке дело неправильное.
3) Не городи абстракций в одноразовых решениях или на среднем уровне архитектуры приложения. Конкретный код, под конкретное бизнес решение, никогда не будет переиспользован.
4) Соблюдай стайл-гайд
5) Если пишешь костыль, оставь огромный комментарий с цепочкой размышлений, который привёл к появлению костыля.
6) Если условие сложное, разбей на несколько булевых переменных с нормальным названием и скомбинируй. Если невозможно (например сложная регулярка), то оставь понятный текстовый пример, когда условие срабатывает и когда не срабатывает.
7) Не используй редких английских слов в названиях
8) Погугли хоть раз в жизни " best practices".
9) Не пиши сложно и оптимально, если код вызывается раз в час/сутки/жизнь.
10) Даже если ты невероятно крут и умен, помни, что читать и поддерживать твой код будут люди менее компетентные. Это не значит, что надо писать хуже, но значит, что в каждой точке, над которой пришлось подумать и сделать неочевидно — нужно оставить комментарий.
Хм. Я как раз довольно активно думал на тему «как добавить в ОС нативные макросы-расширители», и под венду, например, ничего не нарыл. Остаётся только AHK.
Почта для домена (Яндекс Коннект, например) позволяет указать ящик, на который будет сыпаться почта для незарегистрированных адресов в этом домене.
Получаются алиасы, которые даже вручную создавать не надо.
Я так при регистрации на мусорных сайтах обычно указываю домен_мусорного_сайта@мой_домен и даже запоминать, на какую я трешепочту я когда-то на этом конкретном сайте регистрировался, не приходится.
Согласен, прямо сейчас ни одна реализация не вычисляет, но стандарт c++17 допускает Temporary materialization prvalue в sizeof.
Да, *ptr это конечно не prvalue, но тем не менее — в какой то момент код очень похожий на sizeof *ptr может сломаться от nullptr в ptr.
Бесплатная альтернатива: GitHub + Cloudflare Pages.
Это дает:
IaC и CI/CD для автоматизации,
DDoS-защиту, HTTPS, CDN от Cloudflare,
шаблон: github.com/kksudo/kazakov.xyz.
Моя пост с инструкциями: hackernoon.com. Пример полученного сайта-визитки: https://kazakov.xyz/
Отличный выбор для личных сайтов без затрат!
Как это работает шаг за шагом:
Создание сайта с Hugo: Вы устанавливаете Hugo на свой компьютер, создаете структуру сайта, добавляете контент (например, в формате Markdown) и генерируете статические HTML-файлы командой hugo.
Размещение кода на GitHub: Создаете публичный или приватный репозиторий на GitHub и загружаете туда исходный код сайта. Например, можно форкнуть готовый шаблон, такой как github.com/kksudo/kazakov.xyz.
Подключение Cloudflare Pages: В панели Cloudflare создаете проект Pages, связываете его с вашим репозиторием на GitHub и указываете команду сборки (например, hugo --minify). Cloudflare автоматически собирает и публикует сайт при каждом коммите.
Настройка домена: Привязываете собственный домен (если есть) или используете бесплатный поддомен вида *.pages.dev. Cloudflare предоставляет SSL-сертификат для HTTPS.
P.S.: Если сайт из РФ недоступен и вам его не открыть, то тут PDF копия.
P.P.S: Если вы не используете свой личный домен и проксирование Cloudflare, то возможно ограничения по доступу из различных регионов. В других случаях ограничений не будет.
P.P.P.S: Надеюсь трудностей с переводом с Eng не будет, но если что, то могу перевести на наш родной )
Kiwix делает периодические оффлайн дампы Stack Overflow (а также Википедии и т.п.). Там и комментарии, и поиск работает.
https://kiwix.org/en/
https://library.kiwix.org/#lang=eng&category=stack_exchange&q=stack+overflow
— всё подряд от VBart
— действительно хорошие методы борьбы с флудом от kyprizel
— просто бест-практик от lexore — https://habrahabr.ru/post/231277/
и т.п.
Все очень просто.
1) Не выделяй память, если можно не выделять
2) Знай какие операции блокирующие, а какие нет. Очевидно читать файл или слать запросы в сеть в гуёвом потоке дело неправильное.
3) Не городи абстракций в одноразовых решениях или на среднем уровне архитектуры приложения. Конкретный код, под конкретное бизнес решение, никогда не будет переиспользован.
4) Соблюдай стайл-гайд
5) Если пишешь костыль, оставь огромный комментарий с цепочкой размышлений, который привёл к появлению костыля.
6) Если условие сложное, разбей на несколько булевых переменных с нормальным названием и скомбинируй. Если невозможно (например сложная регулярка), то оставь понятный текстовый пример, когда условие срабатывает и когда не срабатывает.
7) Не используй редких английских слов в названиях
8) Погугли хоть раз в жизни " best practices".
9) Не пиши сложно и оптимально, если код вызывается раз в час/сутки/жизнь.
10) Даже если ты невероятно крут и умен, помни, что читать и поддерживать твой код будут люди менее компетентные. Это не значит, что надо писать хуже, но значит, что в каждой точке, над которой пришлось подумать и сделать неочевидно — нужно оставить комментарий.
Получаются алиасы, которые даже вручную создавать не надо.
Я так при регистрации на мусорных сайтах обычно указываю домен_мусорного_сайта@мой_домен и даже запоминать, на какую я трешепочту я когда-то на этом конкретном сайте регистрировался, не приходится.
Согласен, прямо сейчас ни одна реализация не вычисляет, но стандарт c++17 допускает Temporary materialization prvalue в sizeof.
Да, *ptr это конечно не prvalue, но тем не менее — в какой то момент код очень похожий на sizeof *ptr может сломаться от nullptr в ptr.
faculty.hampshire.edu/lspector/push3-description.html
Да, область называется en.wikipedia.org/wiki/Genetic_programming
Там много подводных камней на самом деле.