
В этом переводе к старту курса по Fullstack-разработке на PythonЧитать полностью »

В этом переводе к старту курса по Fullstack-разработке на PythonЧитать полностью »
Постоянно мы чистим IP-адреса, разбираемся с поставками оборудования, управляем командой, ставим приоритеты разработки и делаем ещё кучу вещей внутри хостинга. Я хочу рассказать про то, как это выглядит с позиции операционного директора.
Есть три уровня управления VDS-хостингом: стратегический, когда вы выбираете, что за продукт вы делаете, какое железо и у кого покупаете и в какие ЦОДы и на каких условиях встаёте, — по сути, это формирование ДНК хостинга. Есть операционный — это рутина вроде «отбить диапазон IP-адресов, который попыталась заблокировать Сони», «опять железо застряло на границе» или «админ заболел, кого поставить в смену», «сложный тикет третьей линии». Например, на уровне ДНК мы решаем, что нужно заменить поддержку на разработку (чтобы клиент мог сам всё решать из личного кабинета), а на уровне тактики уже определяем, как именно это сделать.

Даже такая мелочь, как кабель разной длины под рукой — следствие того, что про это заранее кто-то подумал
И есть промежуточный тактический уровень, которым занимается операционный директор. Это не решение конкретной формализованной задачи, но и не глобальная стратегия.
Первое, что нужно видеть, — это чёткая картина всех имеющихся ресурсов. Для этого нужно знать маркетинговые параметры и параметры финансовой модели. То есть нужно знать состояние счетов хостинга на неделю, месяц и полгода вперёд на основе оплат, которые планируются, и расходов, которые планируются. То есть нужно знать процент выхода из строя железа и его ремонты, оплаты сотрудникам, прогнозировать приток и отток клиентов и так далее. Второе — нужно управлять разработкой, то есть выбирать фичи для реализации и находить время для рефакторинга.
Так что добро пожаловать в рубрику «Хостер наконец-то пишет про хостинг в своём корпоративном блоге»… Читать полностью »
В последнее время всё чаще появляются статьи о производительности российских процессоров Эльбрус на различных задачах. Тема криптографии пока что остаётся за кадром, хотя в разное время были упоминания то о высоких возможностях Эльбруса (некий ГОСТ лучше в 9 раз на Эльбрус-4С, чем на Intel Core i7-2600), то о плохой оптимизации компилятора и, соответственно, крайне низкой скорости реализованных алгоритмов (Кузнечик в 100 раз медленнее, чем на Intel?). Предлагаю наконец разобраться, что может Эльбрус, на примере двух ГОСТ алгоритмов симметричного шифрования.
Наметилась странная тенденция. Возникает впечатление, что с каждым годом компьютеры замедляются. Количество ядер растёт, софт лагает. Нативных программ всё меньше. Остальные работают через Electron или в браузере. Древний текстовый редактор в DOS'е реагировал на нажатия за 15-20 миллисекунд, а в современном Google Docs задержка 100-150 мс. То же самое с остальными. Вспомните, ведь IRC и аська летали практически в реальном времени. А сейчас монстры Skype и Viber на десктопе загружаются по десять секунд. Спасибо разработчикам Telegram, хоть там нормальные ребята, иначе бы вера в человечество совсем исчезла…
Невольно начинаешь завидовать коллегам, которые сохранили компьютеры и софт двадцатилетней давности, не обновили ни железо, ни программы. У них всё работает как часы, техпроцессы налажены, вёрстка, дизайн, ничего не лагает и не глючит. Никаких дурацких обновлений для предыдущих обновлений.
Читать полностью »
LLVM оптимизирует суммы степеней, например:
int sum(int count)
{
int result = 0;
for (int j = 0; j < count; ++j)
result += j*j;
return result;
}
генерируя код, вычисляющий результат без цикла (godbolt):
sum(int):
test edi, edi
jle .LBB0_1
lea eax, [rdi - 1]
lea ecx, [rdi - 2]
imul rcx, rax
lea eax, [rdi - 3]
imul rax, rcx
shr rax
imul eax, eax, 1431655766
add eax, edi
shr rcx
lea ecx, [rcx + 2*rcx]
lea eax, [rax + rcx]
add eax, -1
ret
.LBB0_1:
xor eax, eax
ret
Также обрабатываются более сложные случаи (godbolt) – то есть оптимизация здесь не просто сравнивает паттерны. В этом посте мы рассмотрим, как выполняется эта оптимизация.
Читать полностью »
Первая часть маленького «срывания покрова» о работе подсистемы виртуальной памяти, связи механизмов mmap, разделяемых библиотек и кэшей вызвало такое бурное обсуждение, что я не смог удержаться от того, чтобы не продолжить исследование на практике
Поэтому, сегодня мы сделаем… Крошечную лабораторную работу. В виде крошечной же программы на C, которую мы напишем, скомпилируем и проверим в деле — со свапом и без свапа.
Однажды, в качестве тестового задания на позицию PHP разработчика была предложена задача реализации сервиса проверки номеров паспортов граждан РФ на предмет нахождения в списке недействительных. Текст задания был лаконичным: «Пользовательская база 10 миллионов, время ответа 1 миллисекунда, аптайм 99%».
Для начала посмотрим, в каком виде представлены записи в списке недействительных паспортов. На сайте МВД РФ можно скачать bzip2-архив размером около 460 МБ, внутри которого CSV-файл с двумя колонками PASSP_SERIES,PASSP_NUMBERЧитать полностью »
Жажда тюнинга может завести в неведомые дебри. И, пожалуй, едва ли не самая частая неправильная оптимизация — отключение swap-файла. Если прикинуть частоту, с которой эта ошибка встречается, то, наверное, она входит в негласный top-10 (а может и top-5) самых распространенных, самых бесполезных и самых вредных оптимизаций - потому что swap-файл это одна из самых интересных, сложно понимаемых и недооцененных сущностей в подсистеме управления виртуальной памятью.

- Добрый день, я на интервью на позицию старшего разработчика.
- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.
Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.
Я достаю свой верный лаптоп, и пишу такой Читать полностью »

Тайлер Дерден делает домашний рецепт. Скорее всего, органический, на базе глицерина.
Мы тут запустили линейку экокосметики и занялись экологичностью производства. На самом деле, конечно, началось с того, что мы почти втрое сократили потребление воды за счёт кардинальной переделки линии водоподготовки. Вообще-то мы хотели меньше платить за неё городу, но получилось очень экологично.
Как только мы увидели экономию, стали смотреть на другие экологичные решения. И ещё тренды привели к тому, что в любом случае нужно было производить экокосметику либо вообще органик-косметику. Потому что надпись «эко-» даёт минимум +20 % к цене.
И вот тут-то и началось странное противоречие.
Дело в том, что почти всё то, что называют «органик-» и «эко-», на деле при расчёте потребляемых ресурсов на единицу продукции таковым не является. Приведу пару примеров. Вот когда на полках магазинов начал появляться «органический» салат-латук дороже обычного, я была удивлена. Серьёзно, вы возьмёте салат, обильно удобряемый натуральным навозом с ближайшей фермы, когда есть контролируемые гидропонные линии, где он растёт на чистых растворах? Особенно после 2011 года, когда натуральные удобрения заразили резистентным к антибиотикам штаммом кишечной палочки кучу людей в Германии и убили 48 из них.
Читать полностью »