Как настроить HTTPS для статичного сайта S3

Google с августа 2016 использует HTTPS как один из сигналов ранжирования. Amazon раздает своим пользователям бесплатные сертификаты. Эти два фактора заставили меня искать способ включения HTTPS для моего блога на S3. Решение довольно простое: спрятать S3 за CloudFront.

more ...

Делаем Java-подобный Optional в Python

В некоторых случаях использование None может превратить код в нечитаемую и неподдерживаемую кашу. К примеру, если есть необходимость отличить "пустое" значение от отсутствия значения для целочисленного ввода, когда 0 не может использоваться в качестве этого "пустого" значения, обойтись только используя None очень сложно. Одно из возможных значений использовать что-то подобное Optional из Java.

more ...

Бэктрекин без рекурсии на Python

В Питоне нет оптимизации хвостовой рекурсии и достаточно жесткий лимит на рекурсивные вызовы. Это может вызвать затруднения при решении задач с помощью алгоритма бэктрекинга: лимита хватает на поиск решения судоку, но он может оказаться слишком низким, если количество решений для проверки в задаче довольно высоко.

more ...

Обзор курса Functional Programming Principles in Scala

Это осенью я закончил курс на Курсере "Functional Programming Principles in Scala". Этот курс - часть специализации из 5 курсов "Functional Programming in Scala." Это 6 недельное введение в функциональное программирование и Scala.

more ...

Хочется добавить тип локальной переменной? Пора делать рефакторинг!

PEP 526 добавляет начиная с Python 3.6 опциональную возможность указать тип для локальной переменной. Это более стройная замена комментариям с указанием типа. Это хорошо, но есть одна ловушка: указывание типа в питоне может скрыть проблемы в коде.

more ...

c