Личный блог с мыслями и наблюдениями

Как Cloudflare защищает email

26.04.2020   go   cloudflare   javascript   email   Vernam   шифр  

Как опубликовать адрес электронной почты на сайте, не боясь, что в него тут же начнут валиться горы спама?

В большинстве случаев эту задачу решают так: вставка адреса картинкой; написание особым способом, который читатели сайта смогут расшифровать (не всегда); форма для ввода текста письма. Разберём плюсы и минусы каждого.

Вставка адреса картинкой

+ большинство ботов не читают тексты с картинки

– оформление картинки нужно как-то вписать в контекст

– картинку нужно хранить и беречь

– не получится создать письмо по нажатию на картинку

Написание особым способом

+ скорее всего боты не смогут понять что это адрес электронной почты

– как и некоторые посетители сайта: help 911 (собака) mail com (замените пробелы на точки)

– боты всё же умеют разбирать большинство таких "шифровок"

Форма для ввода текста письма

+ ваша почта явно не указана

– форма ввода текста — источник для спама (популярные капчи тоже разгадываются)

– разработка и поддержка формы ввода письма

– люди могут не хотеть писать в некую форму, не зная получит ли нужный человек письмо

 

Есть ли способ замаскировать почту так, чтобы и посетителям было удобно и боты на неё не обращали внимания?

 

Cloudflare Email Address Obfuscation позволяет подменять адреса на html-страничках таким образом, чтобы они перестали быть понятными ботам.

-> 472f222b37697e7676072a262e2b6924282a

Откройте исходный код страницы и убедитесь, что там нет адреса электронной почты!

Если интересно как работает этот способ и как сделать аналогичное решение у себя, читайте дальше.

Читать далее →


Github Actions и автоматическое создание релизов на Go

27.09.2019   техническое   github   go  

Если вам как и мне надоело делать релизы на Github для тех кто хочет попробовать последние изменения в коде, то можно автоматизировать это средствами самого Github, а именно Github Actions.

Следующий код при коммите создаст (или обновит релиз с именем/тэгом latest) и выложит в него собранные бинарники под linux/os x/arm/windows.


name: Release on commit or tag on: push: branches: - master - release/* jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Set up Go 1.13 uses: actions/setup-go@v1 with: go-version: 1.13 - name: Check out source code uses: actions/checkout@master - name: Build OS X binary run: GOOS=darwin GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-darwin64 -a -ldflags '-s -w' . - name: Build Linux binary run: GOOS=linux GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-linux64 -a -ldflags '-s -w' . - name: Build ARM binary run: GOOS=linux GOARCH=arm GOARM=6 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-arm -a -ldflags '-s -w' . - name: Build Windows binary run: GOOS=windows GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2).exe -a -ldflags '-s -w' . - name: Install olsu run: wget https://github.com/Telling/olsu/releases/download/v0.1.0/olsu-linux-amd64.zip && unzip olsu-linux-amd64.zip && chmod +x olsu-linux-amd64 && pwd && ls -la - name: Create or update release env: OLSU_TOKEN: ${{ secrets.GITHUB_TOKEN }} OLSU_DELETE_RELEASE: yes run: ./olsu-linux-amd64 -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 1) -r $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2) "Latest release" "latest" "Automatic release" $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-darwin64 $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-linux64 $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-arm $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2).exe

Лайфхаки для путешествий с айфоном

24.11.2018   iphone   camera   travel  

В последнем путешествии обнаружились пара лайфхаков, которые заметно упростили некоторые моменты… с айфоном, о них немного далее.

Обычно во время путешествия в стране назначения я брал местную симкарту, отключал лишние потребители трафика и наблюдая за ежедневным расходом трафика ограничивал (или нет) себя.

В этом путешествии по Японии нас было двое и прикинув стоимость аренды wifi-модема или двух симкарт было решено взять wifi-модем. Стоимость и разницу называть не буду, уточню только то, что получилось по нашему тарифу 22 ГБ трафика на 12 дней (по итогу мы израсходовали 20 ГБ, немного экономя).

Итак, первый лайфхак — Low power mode.

Так как в отличие от использования симкарты, для вайфая нельзя ограничить потребителей трафика и обычные уловки с убиранием галочек не особо помогают, этот режим помог не только растянуть время работы батарейки, но и сильно сэкономить потребление трафика за счет отключения iCloud Photo Library, загрузки фоток и видео в облако! Только у меня получилось более 2500 фото/видео, так что если бы не этот режим, то мы вышли бы за лимиты трафика очень быстро (в один день я решил проверить и не отключать и получилось 5 ГБ, при обычных 1.2 ГБ)

Второй лайфхак — камера.

Очень часто видя какое-то интересное событие, пока достаешь телефон, активируешь камеру, строишь кадр и жмешь на съемку — событие имеет свойство заканчиваться: (

В этот раз я действовал иначе, выбрал запись видео на 4к (в настройках камеры можно указать, чтобы камера запоминала последние настройки и тип выбранной съемки) и когда видел интересное событие, после активации камеры сразу начинал запись видео, и во время записи делал фотки.

Как оказалось, многие не знают что во время записи видео можно делать фотки нажимая на большую белую кнопку на экране. 

Таким образом, даже если не удавалось успеть сделать фотку, то хотя бы видео было, из которого также можно сделать фотку!


Медовый месяц

06.11.2018   наблюдения  

Месяц мёда!

Поднимите руку, кто еще так думал?

Спасибо, вижу ваши руки…

 

Вот что википедия говорит на этот счёт:

Выражение «медовый месяц» связано с обрядом изготовления на свадьбу слабоалкогольного пи́тного мёда, который молодые пили на свадебном пиру и в течение тридцати дней после свадьбы. Никаких других, более крепких напитков им пить не разрешалось.

Мёд вручался молодым в день свадьбы — это был бочонок весом около 5–10 кг, который полагалось освободить за месяц. По старинной технологии пи́тный мёд готовился не один год и при невысоких температурах. Полученный напиток давал бодрость, веселье и умиротворение без одурманивания.

 

В русском языке слово «Месяц» чаще встречается в качестве описания периода и я тоже считал что это значит что после свадьбы нужно целый месяц предаваться сладостным моментам.

Однако, в английском языке это звучит как honey moon, на французком lune de miel, honigmonat по-немецки, в каждом случае подразумевается луна, а периодичность фаз луны равна примерно месяцу (29.5 дней).

Таким образом, получается что месяц после свадьбы молодожены посвящены себе.



sudo через TouchID/Apple Watch в OS X

22.02.2018   OS X   terminal   TouchID   sudo  

Чтобы вместо ввода пароля для sudo прикладывать палец к TouchID нужно отредактировать файл

sudo nano /etc/pam.d/sudo

 

добавив второй строкой

auth sufficient pam_tid.so

 

 


The uWSGI Spooler

13.04.2017   uwsgi   spooler  

Когда проектируешь масштабируемые системы, где приходится обращаться ко множеству внешних компонент, например, использование стороннего API, отправка почты или конвертация видео, лучшим способом реализации является асинхронная модель с системой очередей, которая является связующим звеном для взаимодействия всех компонент системы…

 

Самой популярной системой очередей в Python является Celery, она обладает широким набором возможностей по управлению задачами.

 

К сожалению, сложные системы на базе Celery сложно поддерживать в работоспособном состоянии и когда что-то идёт не так, то найти проблему бывает весьма не просто. Можете спросить любого девопса об опыте работы с Celery, но будьте готовы услышать не очень приятные слова.

 

К счастью, есть альтернативное решение и сейчас я расскажу о нём.

Читать далее →



nginx for frontenders

26.04.2016   техническое   код   nginx   frontend  

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

Я расскажу как при работе с «чёрным ящиком» иметь возможность воздействать на его ответы, а также как решать проблемы связанные с безопасностью.

 

Читать далее →


Настройка Monit для поддержания жизни nginx/postgresql

29.12.2015   техническое   postgresql   nginx   monit  

Установка

apt-get install monit

Мониторинг PostgreSQL

check process postgres with pidfile /var/postgres/postmaster.pid
group database
start program = "/etc/init.d/postgresql start"
stop program = "/etc/init.d/postgresql stop"
if failed host 127.0.0.1 port 5432 protocol pgsql then restart

Мониторинг nginx

check process nginx with pidfile /var/run/nginx.pid
	start program = "/etc/init.d/nginx start"
	stop program  = "/etc/init.d/nginx stop"
 	group www-data (for ubuntu, debian)

Позднее