Search
Write a publication
Pull to refresh
47
0
Boris Nagaev @starius

User

Send message

Видео докладов с DevOps Meetup про Docker

Reading time1 min
Views16K
Недавно в офисе Badoo проходил DevOps Meetup про Docker и контейнерную виртуализацию. Делимся с вами видео докладов.

1. «Docker в Badoo: от восторгов к внедрению».
Антон banuchka Турецкий, Раудсепп Илья, Badoo.



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

Атомарные и неатомарные операции

Reading time8 min
Views130K


Перевод статьи Джефа Прешинга Atomic vs. Non-Atomic Operations. Оригинальная статья: http://preshing.com/20130618/atomic-vs-non-atomic-operations/

В Сети уже очень много написано об атомарных операциях, но в основном авторы рассматривают операции чтения-модификации-записи. Однако, существуют и другие атомарные операции, например, атомарные операции загрузки (load) и сохранения (store), которые не менее важны. В этой статье я сравню атомарные загрузки и сохранения с их неатомарными аналогами на уровне процессора и компилятора C/C++. По ходу статьи мы также разберемся с концепцией «состояния гонок» с точки зрения стандарта C++11.
Читать дальше →

Десять типичных вопросов на собеседованиях на знание HTML

Reading time7 min
Views100K
Аурэлио Де Роза несколько дней назад выпустил, на мой взгляд, очень привлекательную статью, которой я хочу с вами поделиться на тот случай, если у вас плохо с английским.
Читать дальше →

За один проход

Reading time7 min
Views157K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи

Роскомнадзор шантажирует Роскомсвободу и не знает что такое «чёрный список»

Reading time2 min
Views94K
На Хабре уже прошла информация о рекурсивном документе от Роскомнадзора. История получила свое развитие.
В тви развернулся очень интересный диалог между представителями Роскомнадзора (roscomnadzor, mksenzov), СМИ и общественности.
В ходе которого выявилось ряд интересных моментов.
Во-первых, подтвердилось мое предположение, что п.5.4 готовящегося Роскомнадзором межведомственного приказа был специально добавлен для ограждения госорганов от общественных мониторингов их деятельности.
Подробнее о сути данного пункта я изложил на ресурсе «РосКомСвободы», приведу небольшую выдержку и наглядную схему.
Читать дальше →

Swift: теперь и на русском!

Reading time1 min
Views11K
Чертовски приятно быть причастным к большому и нужному делу, не так ли? Поэтому мы в Alconost Translations очень обрадовались, когда один из наших клиентов предложил подарить миру добро в виде перевода мануалов по молодому и перспективному языку программирования Swift. Язык новый, документации на русском по нему нет, а в англоязычной полно специфичных терминов. Мы же как раз специализируемся на IT-переводах, так что задача оказалась нам по плечу (кстати, будем рады помочь и вам с переводами мануалов, если что).

Первые главы уже есть в публичном доступе, приглашаем к прочтению! Переводы доступны по этой ссылке.

Как считаете, актуальное чтиво для iOS и OS X разработчиков?

Теоретический минимум *nix-based-систем для WebDev-падавана

Reading time12 min
Views110K


Помни: сила рыцаря-джедая — это сила Вселенной.
Но помни: гнев, страх — это всё ведет на темную сторону Силы.
Как только ты сделаешь первый шаг по темному пути,
ты уже не сможешь с него свернуть…


Добрый день, уважаемый галактический сенат! На связи снова Денис Мельский, и сегодня на повестке дня — определение теоретического минимума познания *nix систем для юного падавана web-мастерства.

Хотелось бы начать с того, что все мы прекрасно знаем: на 67.4 % наши любимые интернеты крутятся на *nix-based-серверах, а в жизни среднестатистического web-разработчика в вакууме — так и на все 90 %.



Для любителей пруфов — welcome.

Т. ч. в нашем ремесле без знания *nix-систем никак. Давайте проведем экскурс в мир *nix и поймем, какими знаниями должен обладать юный падаван.

Предлагаю рассмотреть три юниорских степени познания дзена управлением шайтан-машиной ака *nix-сервак на примере всеми любимой ubuntu.
Читать дальше →

Как удалить bucket с 400 миллионами файлов на Amazon S3

Reading time1 min
Views22K
Допустим, у вас в бакете скопилось несколько сотен миллионов файлов (всякое бывает) и вы решили их удалить. Удалить бакет без удаления содержимого нельзя. Удаление самих файлов происходит примерно по 1000 за 2 секунды. Несложно посчитать, что 400 миллионов файлов можно удалить за 9 дней работы браузера без выключения, да еще и заплатить придется за каждую операцию (DELETE хоть и бесплатный, но LIST стоит денег).

Но есть возможность настроить правила хранения файлов так, чтобы они удалялись автоматически:
Читать дальше →

Тест Тьюринга на основе реальных поисковых запросов в Яндексе

Reading time1 min
Views38K
Дело в том, что все (или почти все) поисковые запросы в Яндексе, пусть и в анонимизированном виде, в реальном времени доступны по адресу export.yandex.ru/last/last20x.xml

На основе этого API я сделал маленький проект на Openresty (nginx + Lua + imagemagick), предоставляющий высокопроизводительную реализацию CAPTCHA.

image

Предусмотрена возможность встраивания в виде iframe.

GitHub, demo
Читать дальше →

Интервью Скотта Мейерса в Яндексе. О настоящем и будущем C++

Reading time18 min
Views61K
Скотт Мейерс — один из самых известных и признанных экспертов по C++, автор серии книг «Эффективное использование C++», которые читал почти каждый профессиональный разработчик на C++ и которые оказали заметное влияние на всю экосистему и качество использование языка.

Лично я стал почти его фанатом ещё студентом, когда в начале 2000-х читал статьи Скотта, лежащие в основе его книг (сами книги на тот момент в России ещё не были переведены, а на английские с Амазона у меня, как бедного студента, денег не было).

Поэтому, когда он некоторое время назад приехал в Яндекс, чтобы провести тренинг для наших разработчиков, я не мог не воспользоваться этим шансом, чтобы поговорить с ним. Разговор получился о том, каким он видит будущее C++ и программирования вообще, как отличаются разработчики в разных странах и в разных индустриях, и о нём самом.



Полные тексты оригинала и перевода интервью

LUA в nginx: слегка интеллектуальный firewall

Reading time6 min
Views31K

Данный пост является продолжением применения lua в nginx.

Там обсуждалось кеширование в памяти, а тут lua будет использоваться для фильтрации входящих запросов в качестве этакого фаервола на nginx-балансере. Нечто подобное было у 2GIS. У нас свой велосипед :) В котором разделяем динамику и статику, стараемся учесть NAT и белый список. И, конечно же, всегда можно навернуть еще специфичной логики, что не выйдет при использовании готовых модулей.
Данная схема сейчас спокойно и ненапряжно (практически не сказывается на использовании cpu) обрабатывает порядка 1200 запросов/сек. На предельные величины не тестировалось. Пожалуй, к счастью :)
Читать дальше →

One-liner для компиляции шаблонов на Lua

Reading time2 min
Views7.5K
Синтаксис Lua позволяет реализовать шаблоны в стиле PHP буквально несколькими регулярными выражениями.
Для начала посмотрим, что из этого выйдет.

Подстановка переменных


<a href="<%url%>"><%label%></a>

Логические конструкции


Будет
<? if 1 > 2 then ?>
лучше
<? else ?>
хуже
<? end ?>

Циклы


<ul>
<? for i = 1, 9999 do ?>
  <li>ФЗ №<%i%></li>
<? end ?> 
</ul>

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

Зачем выступать на айтишных конференциях и митапах?

Reading time7 min
Views25K
С осенью нас, коллеги. Летняя спячка подошла к концу, и осень начала радовать нас айтишными выставками, анонсами и конференциями разных форм и размеров. Последние несколько лет я плотно занимаюсь хакатонами и конференциями и очень часто слышу вопросы об аудитории и докладчиках — зачем все эти люди собираются, что они хотят друг от друга и какая практическая польза кроме пиццы? В рамках этого поста я собрал немного информации по предмету и мои собственные наблюдения, как проще всего подготовить и провести выступление на айтишной конференции или митапе. Под катом — мои ответы на странные вопросы и несколько практических приемов, накопленных за годы борьбы с ленью и здравым смыслом.
Читать дальше →

Приглашаем на конференцию по web-разработке 29 ноября

Reading time3 min
Views13K


Друзья, 29 ноября в московском офисе Mail.Ru Group пройдёт конференция для frontend-разработчиков, посвящённая веб-разработке в мобильном и «большом» сегментах сети. Перед слушателями выступят специалисты, работающие в проектах Почта Mail.Ru, Одноклассники, Облако Mail.Ru и Редактор документов.

Программа конференции:

Андрей Сумин, руководитель разработки клиентской части Mail.Ru, представит доклад «Редизайн, ни одного пользователя не пострадало».

Мы часто слышим как надо разрабатывать, писать тесты и профилировать программный код. Но редко компании делятся опытом выкатки нового кода на продакшен. Андрей расскажет про этапы выкатки нового дизайна почты на миллионы пользователей.
Читать дальше →

Из дневника призера первой Всероссийской олимпиады по программированию для школьников 1989 года

Reading time5 min
Views36K

(из личного архива Даниэля Алиевского: «Второй слева — Илья Жильцов, светлая ему память. Я стою за ним, моя голова третья слева»)

(про саму олимпиаду Первая Всероссийская олимпиада школьников по программированию (информатике) 1989 года)

По моей просьбе Даниэль (http://algart.net) поделился воспоминаниями:

«Мы, т.е. свердловская „команда“ из 2 человек — первые два места с областной олимпиады, Максим Стацюк и я — вылетели в Красноярск ночью с 18 на 19 марта 1989 года. Рано утром мы наконец добрались до гостиницы. В гостиницах до той поры я никогда не был, только читал про них в книжках, и впечатление от советской гостиницы получилось довольно тяжелое. Но жить можно было. Даже был туалет и душ в номере, а вообще номер был рассчитан на двоих. Не так плохо, по советским временам! (Позже, на Всесоюзной, я понял, что бывает и хуже.)

Первый день был потрачен на сон (4 часа) и, конечно же, на карты, в которые мы резались со Стацюком и ребятами из других городов до полтретьего ночи. 3.40 — все же отбой.

Выспаться, впрочем, не получилось, поскольку с 9 утра, после завтрака, следовало снова заняться делом, а именно картами. Ну а после 3 дня мы все пошли по магазинам. Красноярск — большой город, интересный для новичков. С семи вечера и до 0.30 — снова карты, пока нас не разогнала наша руководительница, которая и привезла нас с Максимом из Свердловска. Кстати, очень милая девушка, звали, если не ошибаюсь, Виктория Викторовна.
Читать дальше →

Бесплатный CppCat для студентов

Reading time3 min
Views23K
Бесплатный CppCat для студентов
CppCat – это статический анализатор кода, интегрирующийся в среду Visual Studio 2010-2013. Анализатор предназначен для регулярного использования и позволяет выявить множество ошибок и опечаток в программах на языке Си и Си++. С целью его популяризации мы решили выдавать бесплатные лицензии всем студентам, которые к нам обратятся. Достаточно прислать фотографию студенческого билета или зачётной книжки.
Читать дальше →

Простейший SMTP сервер для разработок

Reading time2 min
Views27K
Для ленивых и не желающих возиться, сдувать пыль с бубна по настройке exim4/postfix/sendmail предлагается простейший сборщик почты написанный на Python[1].

Его работа заключается в сборе всей почты, посылаемой этому фейковому smtp серверу и складывании её в указанную папку /tmp/mails в виде файлов писем nobody@mail.local.1 с порядковым номером.

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

Смертельная болезнь оказалась программным багом 23andMe

Reading time3 min
Views199K
У немецкого программиста Лукаса Хартманна (Lukas F. Hartmann) недавно случился второй день рождения. Он узнал, что диагностированная у него по результатам генетического теста смертельная болезнь — всего лишь баг программы. В смысле, не его генетической программы, а компьютерной программы статистического анализа генетической информации.

23andMe — частная биотехнологическая компания из США, которая осуществляет изучение генома всего за $99. Человек должен отправить в фирму капельку слюны, а в ответ получит логин и пароль для доступа к результатам анализа (предупреждение: отправка генетического материала из России запрещена законодательством РФ, фирма 23andMe не высылает контейнеры для образцов в Россию).
Читать дальше →

Три стадии развития любой услуги или что общего у McDonalds и IBM Watson

Reading time9 min
Views88K
Сообразительные люди уже давно приметили, что любая услуга, будь то приготовление кофе или бухгалтерские услуги, проходит три определенные стадии развития, при том каждая из них неизбежна. Это очень интересный и любопытный факт. Я предлагаю попытаться вскрыть его природу, пронаблюдать за ним на близких нам примерах и попробовать сделать небольшие предсказания о том, что и как должно измениться в нашей жизни согласно этой закономерности.



Итак, что же это за стадии такие, нетерпеливо спросите вы? Предлагаю не спешить с ответом и попробовать вывести их самим, на основе знаний о мире и простых размышлений.
Стадии развития, примеры из жизни, применение знаний и выводы...

Information

Rating
Does not participate
Registered
Activity