Search
Write a publication
Pull to refresh
17
0
Send message
Привет, Хабр! Меня зовут Александр Пономарев, я руковожу департаментом ИТ-решений и продуктов информационной безопасности ВымпелКома. Хочу рассказать, как сделали сервис обнаружения киберугроз для среднего и крупного бизнеса, вначале протестировав его на своей инфраструктуре. Подробности под катом.
Читать далее

История английского языка буквально на пальцах

Reading time10 min
Views76K

В своих статьях на Хабре про английский язык мы часто ныряем в исторические дебри. Лингвистика неотрывно связана с историей, и в большинстве материалов есть упоминание про древнеанглийский, среднеанглийский или ранненовоанглийский. 

Сегодня мы решили расставить точки над «i» и рассказать про историю английского языка. Как он появился на Британских островах, как развивался и изменялся на протяжении веков. Расскажем, почему исторические названия английского такие странные и чем они отличаются от современного языка. Поехали.

Читать далее

Научпоп: как это делали в Античности

Reading time5 min
Views5.6K


В прошлый раз я писал о новинках научно-популярной литературы. Теперь же наоборот, предлагаю обратиться к истокам. Если вы думаете, что научно-популярная литература – изобретение ХХ или XIX веков, то ошибаетесь. Все началось гораздо раньше. Еще в Древнем Риме (может, и раньше, но до нас такие тексты не дошли, я сейчас именно про труды, популяризирующие научные теории, а не собственно научные трактаты). Итак, «поехали» в первую половину I века до н.э.
Читать дальше →

Бизнес-эксперт: тест ноутбука ASUS ExpertBook B9 9400

Reading time12 min
Views17K

Привет, хабровчане! Сектор корпоративных ноутбуков напоминает рынок военной техники. На первый план выходит надёжность и автономность. Дизайн, габариты и вес порой отходят на второй план, уступая корпоративной практичности. Я хочу рассказать о продукте, который полностью перечеркнул наш прежний подход к разработке бизнес-моделей и вобрал в себе лучшие особенности как потребительских ноутбуков, так и корпоративных!

Читать далее

Что за зверь — аффинные преобразования?

Reading time4 min
Views66K

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

Вы сможете? В любом случае, давайте немного обсудим этот вопрос.

Читать далее

Что вас на самом деле ждёт на курсе про алгоритмы в Яндекс.Практикуме

Reading time10 min
Views25K
Первая версия нашего курса «Алгоритмы для разработчиков» вышла не самой удачной и вызывала у некоторых студентов большие вопросы. Обратную связь мы иногда получали довольно эмоциональную, но часто справедливую. Та версия курса, которая предлагается студентам сейчас, — это издание дополненное и исправленное, с учётом всей критики за последний квартал. Что самое важное, в создании курса нам активно помогают выпускники, прошедшие его первую версию и набившие шишек самостоятельно. Спасибо всем участникам коммьюнити и авторам, которые контрибьютили в эту тему.

В этом посте мы разберем наши ошибки при создании первой версии курса, поговорим о том, чему мы научились (вдруг вам тоже пригодится), а также расскажем, что из себя представляет новая версия, для кого вообще этот курс и кому не надо на него идти.



Итак, начнём с главного. Первую версию делали специалисты по алгоритмам для мидлов с уже какими-то знаниями. И это был основной фейл.
Читать дальше →

Будущее JavaScript: классы

Reading time15 min
Views8.6K


Доброго времени суток, друзья!

Сегодня я хочу поговорить с вами о трех предложениях, относящихся к JavaScript-классам, которые находятся на 3 стадии рассмотрения:


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

Вспомним, что такое классы в JavaScript.
Читать дальше →
Привет, Хабр! Пора подвести итоги опроса, который мы провели в рамках совместного проекта с РСХБ. Нас интересовало, что вы думаете о работе из дома и хотите ли этот опыт продолжать. А главное — готовы ли вы что-то менять и однажды расстаться с суетливым мегаполисом, раз уж работа всё равно может быть удалённой? В частности, переехать в российское село, в теории — построить там дом.

Результат не так уж и очевиден: четверть опрошенных готова перебраться в глубинку. Много это или мало? За подробностями добро пожаловать под кат.
Читать далее

Золушка от LEGO: машина на основе ИИ и Raspberry Pi рассортирует детальки за вас

Reading time3 min
Views6.9K

Конструктор LEGO нередко используют для создания корпуса какого-нибудь механизма с движком на «малинках». Чаще всего этот тандем используется в различных роботах, дронах, вездеходах. Энтузиаст Дэниел Уэст (Daniel West) пошел другим путем и создал машину с участием Raspberry Pi и LEGO для автоматической сортировки деталей этого конструктора. Естественно, на основе искусственного интеллекта. Без ИИ, наверное, и утюги скоро работать не смогут.

Под катом — описание механизма работы сортировщика, а также еще несколько любопытных проектов на базе «малинок».

Разработка тренажера английского языка в игровой форме

Reading time4 min
Views4.9K

Занимаюсь изучением английского языка и в процессе заметил, что главная моя проблема - это забывать английские слова. Знаю точно что знаю это слово, но не могу вспомнить. Думаю, что многие сталкиваются с данной проблемой. В Интернет данная проблема стоит на третьем месте при изучении иностранного языка.

Читать далее

Трассировка Python GIL

Reading time18 min
Views7.6K


Есть много статей, объясняющих, для чего нужен Python GIL (The Global Interpreter Lock) (я подразумеваю CPython). Если вкратце, то GIL не даёт многопоточному чистому коду на Python использовать несколько ядер процессора.

Однако мы в Vaex исполняем большинство задач с интенсивными вычислениями на С++ с отключением GIL. Это нормальная практика для высокопроизводительных Python—библиотек, в которых Python всего лишь выступает в роли высокоуровневого связующего звена.

GIL нужно отключать явно, и это ответственность программиста, о которой он может забыть, что приведёт к неэффективному использованию мощностей. Недавно я сам побывал в роли забывшего, и нашёл подобную проблему в Apache Arrow (это зависимость Vaex, так что когда GIL не отключается в Arrow, мы (и все остальные) сталкиваемся с падением производительности).

Кроме того, при исполнении на 64 ядрах производительность Vaex иногда далека от идеала. Возможно, он использует 4000 % процессора вместо 6400 %, что меня не устраивает. Вместо того, чтобы наугад вставлять выключатели для изучения этого эффекта, я хочу разобраться в происходящем, и если проблема в GIL, то хочу понять, почему и как он тормозит Vaex.
Читать дальше →

Дата-инжиниринг в превосходных условиях

Reading time9 min
Views4.5K

Привет, Хабр!

Меня зовут Артемий, я занимаюсь дата-инжинирингом в команде аналитики Wheely. А конкретнее — построением аналитических решений, начиная с основ и до конечного результата: подключение источников, очистка и трансформация данных, организация хранилища и детального слоя, формирование витрин и дашбордов. 

В этом посте я сделал верхнеуровневый обзор решений, подходов и фреймворков, которые мы используем для развития Wheely: оптимизации операционной деятельности, построения отчетности, планирования и проверки гипотез. И еще немного похвастаться (куда без этого), потому что инструменты, которые мы используем в Wheely, сегодня набирают большую популярность на Западе, но в России пока далеко не каждая компания готова их адаптировать.

Читать далее

Комьюнити выпускников Практикума: зачем оно нужно и что даёт

Reading time7 min
Views8.7K
Классический образовательный процесс на онлайн-курсах часто построен так: человек покупает курс, проходит обучение, выполняет задания, всё это проверяется — и на выходе он получает сертификат или диплом, подтверждающий прохождение этих курсов.

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

Комьюнити выпускников Практикума — это профессиональное IT-сообщество, где выпускники создают совместные проекты, берут друг друга на работу, участвуют в хакатонах, проводят вебинары и мастер-классы.



Сейчас у нас уже более 2000 участников, и я расскажу, как тут всё устроено.

Зачем нужно комьюнити


Наши студенты во время обучения находятся в так называемой капсуле, где знают только своих одногруппников по профессии. После выпуска они попадают в комьюнити, где 2000+ незнакомых людей: тут и все когорты твоего факультета, и другие факультеты, и команда Практикума, можно найти своих кураторов, наставников и преподавателей. Цель комьюнити — помочь выпускникам быстрее и эффективнее прогрессировать в своей профессии, находить нужную помощь и поддержку. А ещё — знакомиться, общаться и искать работу.
Читать дальше →

Бенчмарки Apple M1 в реальной разработке

Reading time4 min
Views72K


Я очень впечатлён результатами тестов Apple M1. Это действительно быстрый и мощный чип в важных повседневных задачах, таких как просмотр веб-страниц, работа с приложениями x86 и инструментами разработчика. Да, экосистема ещё не развита, и это может занять некоторое время, но эта работа стоит того, с учётом феноменальной производительности M1.

М1 действительно быстрый, и многие бенчмарки доказали его эффективность. Однако мне было любопытно посмотреть на производительность языков программирования. Поэтому я решил протестировать чип в самых популярных рабочих нагрузках в разработке.

Следует иметь в виду, что некоторые наборы тестов нагружают память, другие зависят от производительности CPU, а в некоторых задачах нет преимущества от многоядерной обработки из-за накладных расходов или сложности использования многопоточности. Это означает, что M1 может показать лучший результат, чем десктопный Ryzen даже с меньшим количеством ядер. Самое главное, что я сосредоточился на тестах реальных задач разработки, а не на синтетических тестах продакшна.
Читать дальше →

Как проходит собеседование начинающего разработчика на С++: что нужно знать и как подготовиться

Reading time6 min
Views40K

В разных компаниях собеседования проводятся по-разному в зависимости от стандартов, продуктов, позиций. Но есть базовые вещи, повторив которые, вы сможете подготовиться к любому собеседованию.

В этом посте я собрал подборку понятий, которые у вас могут спросить на собеседовании на вакансию Junior С++ разработчика, и описал, к чему в принципе вам стоит готовиться. Предупрежден — значит вооружен. Вкратце о себе: меня зовут Турмец, я работаю в Яндексе, параллельно учусь в Школе Анализа Данных и занимаюсь ревью кода на курсе «Разработчик С++» в Практикуме. 

Мы опустим, как именно попасть на собеседование и предположим, что вы уже интересны компании как потенциальный работник и у вас уже назначена дата интервью. 

Поехали.

Читать далее

Связные списки, трюки с указателями и хороший вкус

Reading time5 min
Views43K
В интервью на TED 2016 (14:10) Линус Торвальдс рассказывает о хорошем стиле программирования. В качестве примера приводит два варианта удаления элементов из односвязных списков (см. ниже). В первом варианте есть специальный случай, а в другом — нет. Линус предпочитает второй.

Его комментарий:

[...] Не надо размышлять, почему здесь нет оператора if. Важно посмотреть на задачу с другой стороны и переписать её так, чтобы особый случай исчез и стал обычным случаем, и это хороший код. — Л. Торвальдс

В качестве примера Линус показывает достаточно простой псевдокод в стиле Си. Но не даёт концептуального объяснения. Поэтому не сразу понятно, как работает косвенный указатель.
Читать дальше →

Ищем максимальную разницу между соседями. User-friendly-разбор задачи по алгоритмам

Reading time4 min
Views14K
Привет, Хабр!

Давайте поговорим про алгоритмы. Новички часто воспринимают их как что-то тяжёлое, сложное и непонятное, и отчасти это правда, но алгоритмы — это базис. А чем лучше вы знаете базис своей специальности, тем с большей вероятностью преуспеете в ней.



Сегодня мы посмотрим на одну красивую задачу по алгоритмам. Не будем отпугивать людей от работы с алгоритмами на самом старте, поэтому в нашем разборе не будет ни развесистых деревьев отрезков, ни разномастных оптимизаций задачи о рюкзаке, ни вероятностных тестов на простоту. User-friendly algos.

Вот задача: найти максимальную разницу между соседями.

Дан массив из N целых чисел. Он никак не упорядочен, а числа могут повторяться. Предположим, что мы отсортировали его и вычислили разницу между каждой парой последовательных элементов. Необходимо найти максимальную такую разницу и сделать это наиболее оптимальным способом.

Сложно? Можете попробовать сделать это до того, как нажмёте «Читать дальше», а потом проверим решение.
Читать дальше →

Большая ретроспектива участия RBK.money в The Standoff 2020

Reading time7 min
Views2K
…или как хакеры ломали наш опенсорс платежный процессинг в кибергороде.

Привет! Мы тут недавно с процессингом RBK.money приняли активное участие в киберполигоне The Standoff — это когда делают виртуальную модель целого мегаполиса со всей его инфраструктурой, энергостанциями, магазинами и прочими важными элементами. А потом пускают в этот цифровой двойник города команды blue team (6 команд в этом году) и red team (29 команд в этом году соответственно), первая защищает всю эту инфраструктуру, вторая же активно пытается что-то сломать.


из к/ф “Бегущий по лезвию 2049”

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

В этом посте я хочу рассказать, как нас ломали хакеры (спойлер: и не сломали), а также как мы сами пару раз стрельнули себе в ногу в процессе подготовки и разворачивания своего решения. И да, главное — для нас это изначально была ситуация win-win: не сломают нас, значит, не зря мы настолько уверены в своем процессинге, что выложили его в опенсорс и теперь отдаем хакерам. Сломают — вообще отлично, увидим, где были слабые места, и станем ещё более защищенными с точки зрения безопасности для наших клиентов.

Внедрялись в кибергород мы в ощутимой спешке: это один из первых наших деплойментов в Kubernetes (до этого мы все разворачивали Salt-стейтами), и нам пришлось использовать новые подходы по инсталляции. И последствия от этой спешки не заставили себя долго ждать.
Читать дальше →

Веб-тренажёр Яндекс.Практикума. Как всё устроено

Reading time7 min
Views19K
Образовательный процесс важно делать интересным и по возможности интерактивным. Особенно, когда дело касается технологий — гораздо полезнее, когда есть возможность не просто написать какой-то код, а потом получить ответ от проверяющего, мол, молодец, всё хорошо, а на лету смотреть, всё ли у тебя работает, где косяки и как ты в целом справился.

В попытках сделать что-то подобное мы в свое время запустили в Яндексе MVP веб-тренажёра, в котором пользователь мог писать код, скрипты и всё остальное на разных вкладках, а по соседству у него всё это отображалось в качестве финального результата.



MVP показал себя хорошо, и мы вывели веб-тренажёр на уровень полноценного инструмента для проверки знаний наших студентов в Яндекс.Практикуме. Меня зовут Артем, и я расскажу, как мы делали тренажёр для обучения веб-разработке, как он работает и что умеет.

Как мы унифицировали онбординг аналитиков удалённых каналов доступа

Reading time4 min
Views5.5K
Испытательный срок — это не только время, за которое компания проверяет, правильного ли сотрудника взяли на ставку, справляется ли он с обязанностями и как в целом работает. Это в том числе (об этом часто забывают) период, за который сотрудник не менее пристально оценивает компанию: соответствуют ли задачи озвученным на собеседовании, как дела с командой, адекватно ли выстроены рабочие процессы, да и вообще — нравится работать тут или нет.

И при этой оценке компании со стороны сотрудника важную роль играет то, насколько хорош ваш онбординг (а он может драматически отличаться не только в рамках всей организации, но и даже в каждом отдельно взятом департаменте). Где-то это прекрасное и пошаговое погружение нового коллеги в работу, процессы, особенности коммуникации. Где-то по принципу “А я думал, дали пистолет — и крутись как хочешь”.



Сегодня я хочу рассказать, как мы унифицировали онбординг специалистов для одного из подразделений Альфа-Банка — центра компетенций аналитики удаленных каналов доступа. Под катом — что и как мы делали (и зачем), результаты, критерии для оценки новичков, а также пара полезных схем и шаблонов для тех, кто тоже хочет наладить онбординг.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity