Как стать автором
Обновить
14.2
Карма
0
Рейтинг
Eldar Zakirov @unixod

C++ Software Engineer

  • Публикации
  • Комментарии

Не боги горшки обжигают

Карьера в IT-индустрии
Дима: Читал эту статью? (Разработчики — никакая не элита, а голые короли индустрии). Что скажешь?

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

Дисклеймер


  1. Несмотря на то, что есть, о чем сказать, постараюсь не превратить своё повествование в безумный лонгрид
  2. Мы немного коснёмся рыночных и экономических отношений, но давайте постараемся не удариться в политическую дискуссию
  3. Это моя первая статья на Хабре. Почти уверен, что совершаю “литературное” самоубийство, но хочется ответить на некоторые вопросы как минимум самому себе

Разработчики действительно УЖЕ не элита



Читать дальше →
Всего голосов 187: ↑165 и ↓22 +143
Просмотры68.2K
Комментарии 308

Новости

Показать еще

Как следует писать комментарии к коммитам

ПрограммированиеGitСистемы управления версиями
Перевод


Предисловие от переводчика


На протяжении многих лет разработки ПО, будучи участником многих команд, работая с разными хорошими и опытными людьми, я часто наблюдал (да и чего греха таить, до определенного момента — создавал) одну и ту же проблему — тотальный бардак в репозитории. Каждый писал комментарии к коммитам в своем стиле (и хорошо, если постоянно в одном); половина комментариев была бесполезна (из разряда "это мост"), половина оставшейся половины — едва понятна.

И вот в один прекрасный момент я увидел данную статью, до перевода которой у меня наконец дошли руки. Всего 7 простых и коротких правил, и — о чудо — смотреть на историю коммитов стало не только полезно, но и приятно. Ничего революционного, все довольно очевидно, но сформулировано и резюмировано просто отлично.
Читать дальше →
Всего голосов 55: ↑51 и ↓4 +47
Просмотры80.6K
Комментарии 115

Визуализация интеграционных приложений

ICL ServicesМессенджерыUML DesignВизуализация данных
Перевод
image

С тех пор как я начал выполнять обязанности системного архитектора, мне чаще приходится рисовать прямоугольники и стрелки, чем писать программный код. С этим можно было бы бороться, например, бессонными ночами участвовать в проектах с открытым исходным кодом, создавать подтверждения осуществимости концепции и демонстрационный код, но и там тоже нужно рисовать прямоугольники, чтобы продемонстрировать архитектуру. Эта статья посвящена визуализации обмена сообщениями в распределенных системах, сервис-ориентированной архитектуре (SOA) и микросервисным приложениям при использовании методологии разработки agile (этот термин потерял свое значение, но более подходящего в данном случае нет).
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры19.7K
Комментарии 6

Последние новости о развитии C++

ЯндексC++АлгоритмыКомпиляторыIT-стандарты
Недавно в финском городе Оулу завершилась встреча международной рабочей группы WG21 по стандартизации C++, в которой впервые официально участвовали сотрудники Яндекса. На ней утвердили черновой вариант C++17 со множеством новых классов, методов и полезных нововведений языка.



Во время поездки мы обедали с Бьярне Строуструпом, катались в лифте с Гербом Саттером, жали руку Беману Дейвсу, выходили «подышать воздухом» с Винцентом Боте, обсуждали онлайн-игры с Гором Нишановым, были на приёме в мэрии Оулу и общались с мэром. А ещё мы вместе со всеми с 8:30 до 17:30 работали над новым стандартом C++, зачастую собираясь в 20:00, чтобы ещё четыре часика поработать и успеть добавить пару хороших вещей.

Теперь мы готовы поделиться с вами «вкусностями» нового стандарта. Всех желающих поглядеть на многопоточные алгоритмы, новые контейнеры, необычные возможности старых контейнеров, «синтаксический сахар» нового чудесного C++, прошу под кат.
Покажите мне чудеса!
Всего голосов 92: ↑86 и ↓6 +80
Просмотры76K
Комментарии 422

Файловая система, дешево и быстро

PythonEmacsРазработка под Linux

Разработчикам часто приходится иметь дело с файлами, представляющими из себя древовидную структуру: XML, JSON, YAML, всякого рода языки разметки вроде Markdown или Org-mode. Облегчая в общем и целом нашу жизнь, такие файлы имеют склонность к бесконтрольному росту, в какой-то момент из решения превращаясь в проблему.


Стандартное решение этой проблемы — разбиение на меньшие файлы. Это, конечно, работает, но не всегда удобно.


Но существует и альтернатива, о которой — ниже.

Читать дальше →
Всего голосов 53: ↑51 и ↓2 +49
Просмотры29.7K
Комментарии 50

Как узнать, достаточен ли ваш уровень английского для работы за границей

itRabotaУчебный процесс в ITОбразование за рубежом
Этот вопрос весьма актуален для тех, кто желает найти работу заграницей, но не уверен на счет своих знаний английского. У меня такой вопрос не стоял, так как первая моя специальность «переводчик с английского и немецкого». Но уже первая моя статья о переезде заграницу вызвала множество комментариев на тему знаний языка. Об этом говорили практически все. Когда я отвечал, что я по первой специальности переводчик, мне отвечали: «ну вот! Теперь все понятно!». Когда я пожил заграницей какое-то время, пообщался с другими людьми, теперь я могу сказать вам точно — не обязательно быть переводчиком, чтобы найти работу там. Ниже я предоставляю вам опыт моей жены, которая НЕ переводчик и по-английски говорила исключительно на бытовом уровне, когда мы переехали. Вот как она справилась с этой задачей, и сколько времени это у нее заняло. Возможно, найдете для себя что-то интересное. Далее повествование пойдет «от первого лица», а именно, от лица моей жены.
Читать дальше →
Всего голосов 17: ↑13 и ↓4 +9
Просмотры17.8K
Комментарии 5

Поиск работы за рубежом: дайджест полезных материалов для потенциальных ИТ-экспатов

Карьера в IT-индустрии


Вопрос о поиске работы за границей при нынешней нестабильной экономической ситуации в России стоит перед многими ИТ-специалистами довольно остро. Недавний опрос мэрии Иннополиса и рекрутингового портала HeadHunter показал, что около 13% российских ИТ-спецалистов готовы стать «трудовыми мигрантами». Но так ли просто найти работу за рубежом и настолько ли «там» все лучше, чем «здесь» — чтобы с этим разобраться я изучил много интересных материалов. Свое мнение афишировать не буду, лучше поделюсь полезным дайджестом материалов о поиске работы в разных странах и решения возникающих по ходу дела задач и вопросов.
Читать дальше →
Всего голосов 40: ↑27 и ↓13 +14
Просмотры58.3K
Комментарии 61

Что такое Protected Mode и с чем его едят

Системное программирование
Для того, чтобы писать операционку, нужно разбираться во многих деталях. Вот давайте я вас немного просвещу, (но давайте договоримся, что маны вы будете читать сами, чтобы было о чём побеседовать).
Честно говоря, на просторах сети есть туча тучная материалов по PM, да и ileyи pehat несколько рассказали об этом режиме, но меня попросили всё равно описать в общих рамках его. Сейчас кратко выдам теорию (вообще то специально для этого Intel маны писала), потом начнём писать код.
Читать дальше →
Всего голосов 67: ↑61 и ↓6 +55
Просмотры19.9K
Комментарии 16

Навигация квадрокоптера с использованием монокулярного зрения

Singularis LabОбработка изображенийРазработка робототехники
Сейчас для многих компьютерное зрение не является тайной за семью замками. Однако новые алгоритмы и подходы не перестают впечатлять. Одним из таких направлений является монокулярное зрение, в особенности SLAM. О том, как мы решали задачу навигации квадрокоптера, оснащенного единственной камерой, и пойдет речь в этой статье.


Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры31.9K
Комментарии 31

Немного об архитектурах программного обеспечения

CloudMTSАнализ и проектирование системРазработка под e-commerce


Никаких сомнений, что за последнее время мир только укрепил свою зависимость от программного обеспечения. Приложения должны обладать высокой доступностью, качественно выполнять требуемые функции и иметь адекватную стоимость. Эти характеристики, в той или иной степени, определяет архитектура ПО.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Просмотры54.6K
Комментарии 2

Создание архитектуры программы или как проектировать табуретку

Разработка веб-сайтовАнализ и проектирование системПроектирование и рефакторинг
Из песочницы
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Всего голосов 88: ↑85 и ↓3 +82
Просмотры495.5K
Комментарии 44

Опубликован быстрый алгоритм для задачи изоморфизма графов

Занимательные задачкиМатематика

Эти два графа являются изоморфными

Математик Ласло Бабай (László Babai) с факультета компьютерных наук и математики Чикагского университета представил быстрый новый алгоритм для решения задачи изоморфизма графов — одной из фундаментальных проблем теории сложности вычислений. Алгоритм приводит проблему очень близко к классу P. По мнению некоторых специалистов, это один из самых значительных результатов в теоретической информатике за десятилетие, если не за несколько десятилетий.
Читать дальше →
Всего голосов 51: ↑46 и ↓5 +41
Просмотры41.6K
Комментарии 26

Рекурсивный zip-архив

Ненормальное программирование
Перевод
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

Читать дальше →
Всего голосов 171: ↑168 и ↓3 +165
Просмотры37K
Комментарии 55

Логируем контекст исключений

ПрограммированиеC++ООП
В преддверии Дня программиста и по следам Дня тестировщика хочу рассказать о том как упростить жизнь и тем и другим в их общем деле — разработке и отладке ПО.
А именно — расскажу о том как сделать исключения С++ более информативными, а логирование ошибок — более компактным.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры13.9K
Комментарии 17

Как быстро и бесплатно получить доступ к windows на osx или linux

Разработка веб-сайтовТестирование веб-сервисов
Из песочницы
Среди разработчиков нередка ситуация, когда основной рабочий компьютер это mac или linux, но время от времени нужен доступ к windows: запустить специфичную программу, проверить верстку в internet explorer, поставить триальную версию corel draw для конвертации в .svg.

“Классический” способ решения этой задачи — установить одну из популярных виртуальных машин, скачать 90-дневную триал версию windows и установить ее в виртуальноый машине. Но у этого способа есть один большой минус — о необходимости деражать под рукой такую виртуальную машину разработчик обычно вспоминает в тот момент когда “о, тут нужна винда!”. А ставится windows не то чтобы очень быстро. И 90-дневный триал, что характерно, имеет обыкновение заканчиваться в самый неподходящий момент. Даже с rearm. Недавно Microsoft пошла на встречу разработчикам и сделала интересный сервис, позволяющий очень быстро и бесплатно получить доступ к нужной версии windows.
Подробности - под катом
Всего голосов 61: ↑43 и ↓18 +25
Просмотры47K
Комментарии 26

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

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

Задача 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 всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1 +71
Просмотры126K
Комментарии 55

Графы для самых маленьких: BFS

Алгоритмы
В предыдущем посте рассказывалось об обходе графа в глубину. Сегодня я бы хотел рассказать о не менее важном алгоритме теории графов — об обходе в ширину.
В прошлый раз мы уже научились искать какой-нибудь путь сквозь лабиринт. Всех желающих найти кратчайший путь прошу под кат.
Читать дальше →
Всего голосов 35: ↑26 и ↓9 +17
Просмотры86K
Комментарии 2

Горячие клавиши в шелле

Настройка Linux
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Всего голосов 150: ↑145 и ↓5 +140
Просмотры105K
Комментарии 59

Таблицы сопряженности и факторизация неотрицательных матриц

Data MiningRОткрытые данныеВизуализация данных
Факторизация неотрицательных матриц (NMF) — это представление матрицы V в виде произведения матриц W и H, в котором все элементы трех матриц неотрицательны. Это разложение используется в различных областях знаний, например, в биологии, компьютерном зрении, рекомендательных системах. В этой публикации пойдет речь о таблицах сопряженности социологических и маркетинговых данных, факторизация которых помогает понять структуру данных этих таблиц.


Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры11.5K
Комментарии 5

Информация

В рейтинге
5,885-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность