Как стать автором
Обновить
4
0
Sergey Kozharinov @skozharinov

Software Engineer

Отправить сообщение

Dovecot: Работа с групповыми почтовыми ящиками под своим паролем

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.5K

В любой организации имеются ролевые почтовые адреса (типа info@company.com или order@company.com) с которыми коллективно работает группа сотрудников . В некоторых почтовых системах (как например MS Exhange), поддержка таких адресов уже зашита в логику программного обеспечения. В других случаях приходится самим подбирать различные технические подходы. Давайте рассмотрим их подробнее.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии14

Гладко было на бумаге, или почему не стоит чрезмерно доверять туториалам

Время на прочтение19 мин
Количество просмотров4.2K

Такая история всегда начинается одинаково. Вам показывают демку, в которой набор проблем, ранее казавшийся сложным, решается на раз — достаточно запустить некий Волшебный Инструмент. Зачастую такой инструмент рекомендуют Большие Тузы из отрасли, либо не только рекомендуют, но и сами поддерживают. У вас в организации отыскиваются коллеги, ратующие за то, чтобы немедленно взять эту технологию на вооружение. Буквально наутро этот новый инструмент приравнивается к «решению всех наших проблем».

Вскоре запускается внутрикорпоративная инициатива. Среди начальства найдутся те, кто решат превратить Волшебный Инструмент в важный проект, и Волшебный Инструмент начинают навязывать в командах. Именно тут пробегают первые трещинки, когда команды, относительно индифферентные к Волшебному Инструменту, реально начинают им пользоваться. «Он же не делает всего того, чем нам приходится сейчас заниматься, а ещё не учтены пограничные случаи — в них с Инструментом работать гораздо сложнее, чем нам рассказывали».

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии11

Без одной faangи или как я проходил собеседования

Время на прочтение14 мин
Количество просмотров30K

Привет, Хабр! Меня зовут Рустам, работаю программистом 9 лет. 7 лет работал в Контуре и около 2 лет в Яндексе. В этой статье расскажу про свой опыт подготовки и прохождения собеседований в большие технологические компании, поделюсь рекомендациями.

Пробовался в Facebook, Apple, Amazon, Microsoft, Google. Пять попыток: четыре на бэкенд программиста, одна на инженера по инфраструктуре. Два предложения по работе, два отказа, одно потенциальное предложение.

Принял предложение в Amazon. Сейчас в Лондоне.

Читать далее
Всего голосов 69: ↑66 и ↓3+76
Комментарии27

Обзор Музея криптографии в Москве

Время на прочтение8 мин
Количество просмотров16K

Редакция портала Хабр (в лице @lexxnimoff и @ancotir) побывала в музее криптографии, расположенном по адресу: Москва, улица Ботаническая, дом 25, строение 4. Показать экспозицию музея и рассказать о ней любезно согласились Анна Титовец, главный куратор музея, и Владимир Бельский, заместитель главы лаборатории криптографии компании «Криптонит»

Читать далее
Всего голосов 54: ↑51 и ↓3+72
Комментарии7

Создаем новое ключевое слово в C++

Время на прочтение27 мин
Количество просмотров23K

C++ - один из языков, который можно назвать "легендарным". Его история насчитывает несколько десятилетий, принципы программирования на нем революционным образом менялись не раз, а черновик стандарта уже разросся до 1800+ страниц мелкого шрифта.

На C++ есть много хороших библиотек. Но нередко изменения в самом языке делали неактуальными большие куски кода, потому что они становились менее надёжными и быстрыми по сравнению с функционалом в самом языке. Правки в стандарт имеют несоизмеримо более сильное влияние, чем любая библиотека.

В этой статье мы в учебных целях напишем для C++ поддержку нового ключевого слова defer, которое будет работать во многом аналогично такому в языках Go и Swift. Это будет сделано через правку исходного кода Clang.

Создать!
Всего голосов 64: ↑62 и ↓2+87
Комментарии43

Мышь для людей с ограниченными возможностями

Время на прочтение5 мин
Количество просмотров6.8K

Речь в данной статье пойдет про проектирование оборудования, которое упрощает работу за компьютером. Предыстория моего небольшого проекта связана, совершенно неожиданно, со спектрумами, apple 2 и прочей ретрокомпьютерной техникой. Есть увлечение такое — ковыряться во всяком старье. Плюс делать это в прямом эфире на YouTube. Коллективный разум помогает чинить. После одного из стримов обратился подписчик с весьма необычной просьбой. Зовут его Александр и у него ДЦП. Соответственно, ему трудно работать на компьютере. А желание работать имеется, что не может не радовать.

Читать далее
Всего голосов 35: ↑34 и ↓1+56
Комментарии35

Красивое дерево PATRICIA (Реализация на C++)

Время на прочтение13 мин
Количество просмотров9.4K

Забытое, сложное, изумительное, красивое дерево со звуком ломающихся коленок.

Прострелить колени о патрицию
Всего голосов 16: ↑16 и ↓0+16
Комментарии7

Как можно оптимизировать dot-product и не только. Доклад Яндекса

Время на прочтение18 мин
Количество просмотров3.7K
Разработчик инфраструктуры качества поиска Яндекса Ильнур Хузиев ilnurKh взял простую задачу — скалярное произведение двух векторов — и попробовал выжать все соки производительности кода. Из доклада вы узнаете, как использовать возможности процессора, настройки компилятора (и даже попробовать превзойти его), какой была бы правильная постановка задачи, как выбирать приоритеты и архитектуру. Да, вопрос выбора абстракций может встать даже на примере настолько простой задачи.

— Сегодня мы рассмотрим достаточно простую функцию — скалярное произведение двух векторов, и попробуем провести различные оптимизации. Надеюсь, что приёмы, которые мы рассмотрим, будут применены не только в этой задаче, но и в других.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Как ускорить игру «Жизнь» в сто раз

Время на прочтение17 мин
Количество просмотров50K
image

Сложно найти человека, не знакомого с игрой "Жизнь", придуманной английским математиком Джоном Конвеем еще в 1970 году, и до сих пор не теряющей своей популярности. Многие программисты писали свою реализацию этой игры, и еще одна вряд ли кого-то удивит. Однако эта игра является отличным примером, показывающим, насколько полезной может оказаться оптимизация вычислений, даже не меняющая асимтотическую сложность алгоритма. Мы начнем с простейшей реализации на c# и будем последовательно применять различные оптимизации, ускоряя работу программы.

Мы также улучшим алгоритм на JavaScript, ускорив его в 10 раз по сравнению с неоптимизированной версией.

В конце статьи дана ссылка на код, а также на online-реализацию игры с оптимизированным алгоритмом на JavaScript, выполняющим до двухсот итераций в секунду на поле размера 1920x1080 (Full HD), где вы можете убить время поиграть в эту замечательную игру.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+81
Комментарии124

Game of Life с битовой магией, многопоточностью и на GPU

Время на прочтение8 мин
Количество просмотров14K

Всем привет!


Недавняя статья на Хабре в очередной раз показала неостывающий интерес к игре «Жизнь» в частности и всевозможным оптимизациям в общем. Статья и комментарии к ней, особенно любопытство к вычислениям на GPU, вдохновили меня на то, чтобы поделиться своими изысканиями на данном поприще и, забегая вперёд, скажу, что повествование пойдёт о расчётах на GPU, битовой магии, многопоточности и огромных полях для игры «Жизнь», порядка миллиарда клеток.


Читать дальше →
Всего голосов 21: ↑20 и ↓1+29
Комментарии18

Нельзя так просто взять и вычислить абсолютное значение

Время на прочтение4 мин
Количество просмотров33K

Кажется, задача вычисления абсолютного значения (или модуля) числа совершенно тривиальна. Если число отрицательно, давайте сменим знак. Иначе оставим как есть. На Java это будет выглядеть примерно так:


public static double abs(double value) {
  if (value < 0) {
    return -value;
  }
  return value;
}

Вроде бы это слишком просто даже для вопроса на собеседовании на позицию джуна. Есть ли тут подводные камни?

Читать дальше →
Всего голосов 92: ↑89 и ↓3+115
Комментарии102

Информация

В рейтинге
Не участвует
Откуда
Белград, Белград, Сербия
Дата рождения
Зарегистрирован
Активность