Pull to refresh
-6
0
Send message

11 курсов по Яндекс.Директу: от бесплатных до фундаментальных с трудоустройством

Reading time8 min
Views45K

Как появляются спецы по контекстной рекламе? Вот, например, имел человек некую другую профессию. А потом смотришь – через год уже настраивает рекламные кампании, собирает СЯ и рассылает клиентам отчеты. Что он делал для этого? Правильно – учился.

Одни учатся самостоятельно, просматривая все видео на YouTube, пробуя и ошибаясь. Другие подходят к смене профессии более системно и сразу ищут курсы по контекстной рекламе. Если вы относитесь ко вторым, то добро пожаловать.

В этом материале мы собрали 11 проверенных курсов по этой теме (в том числе и бесплатных, да-да). Здесь все важные моменты по каждому обучению: где брать, сколько длится, для какого уровня подойдет и т. д. Если хотите поучиться на досуге, сохраните себе эту подборку. Может, пригодится.

Читать далее
Total votes 2: ↑1 and ↓1+2
Comments0

Как правильно готовиться к ШАД

Reading time4 min
Views38K

Я, Александр Лыков, кандидат физико-математических наук на мехмате МГУ и уже несколько лет я готовлю своих студентов к ШАД. В этой статье я решил разобрать наиболее важные моменты при подготовке к экзамену.

Читать далее
Total votes 20: ↑11 and ↓9+5
Comments6

Кибербезопасность для самых маленьких

Reading time10 min
Views30K

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

Цель статьи - поделиться практиками, которые я применил для защиты данных при поднятии собственного VPS в публичной сети. Всегда, когда твой IP открыт всему Миру напоказ и доступен извне внутренних контуров сети - это означает, что любой прохожий может устроить тебе неприятности: похитить твои данные, завладеть твоим сервером и сломать твое замечательное приложение. Я буду приводить пример атаки, показывать, как ее можно заметить и после этого будем разбирать возможные способы защиты.

Защитить данные!
Total votes 22: ↑22 and ↓0+22
Comments32

Джентльменский набор для создания WPF-приложений

Reading time18 min
Views47K

Данная статья представляет собой набор рецептов по созданию WPF приложений. Поэтому скорее всего она будет интересна начинающим разработчикам. В материале описаны основные моменты использования таких пакетов как ReactiveUI, Material Design in XAML Toolkit, LiveChart2. Примеры кода приведены из реального приложения.

Далее
Total votes 15: ↑15 and ↓0+15
Comments30

Как работает FaceSwap. Часть 2. Разработка от Sber AI

Reading time12 min
Views8K

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


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


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

Читать дальше →
Total votes 11: ↑8 and ↓3+8
Comments5

Руководство по установке и настройке OpenVPN

Reading time34 min
Views1.5M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



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



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments97

Рецепты для хворающих SQL-запросов

Reading time7 min
Views58K
Несколько месяцев назад мы анонсировали explain.tensor.ru — публичный сервис для разбора и визуализации планов запросов к PostgreSQL.

За прошедшее время вы уже воспользовались им более 6000 раз, но одна из удобных функций могла остаться незамеченной — это структурные подсказки, которые выглядят примерно так:



Прислушивайтесь к ним, и ваши запросы «станут гладкими и шелковистыми». :)

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

В этом случае каждому отдельному разработчику не придется искать вариант оптимизации самостоятельно, опираясь исключительно на свой опыт — мы можем ему подсказать, что тут происходит, в чем может быть причина, и как можно подойти к решению. Что мы и сделали.



Давайте чуть подробнее рассмотрим эти кейсы — как они определяются и к каким рекомендациям приводят.
Total votes 23: ↑23 and ↓0+23
Comments28

Эволюция Lean Canvas и Business Model Canvas. Метод структурирования процессов в компании на 1 листе бумаги

Reading time7 min
Views8K

В октябре 2021 года меня пригласили провести стратегическую сессию для одной компании, которая занимается комплексным озеленением общественных и корпоративных пространств. Задачей мероприятия была презентация бизнес-целей на ближайшие несколько лет и синхронизация коллектива вокруг них. Всего в компании работает 120+ человек, на встрече присутствовал бек офис, 30 человек.

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

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments7

Как получить онлайн магистратуру по CS от американского университета по цене кофе

Reading time9 min
Views36K


Поговорим о: 1) том как я попал в магистратуру по Computer Science от Georgia Tech пока жил и работал в Воронеже, 2) требованиях к поступлению, 3) стоимости, 4) моих впечатлениях от курсов, которые мне читают, 5) почему я все еще продолжаю учиться после того, как начал работать в FAANG и переехал в UK.

Читать дальше →
Total votes 41: ↑40 and ↓1+50
Comments22

Как найти своё место в программировании графики для игр

Reading time6 min
Views9.7K

Введение


«Графика стала слишком сложной».

В последние годы я всё чаще слышу подобные фразы: программирование графики теперь настолько сложно изучать, что это демотивирует людей осваивать его как хобби и/или профессию, или заставляет их сдаться. Я глубоко очарован этой областью программирования, поэтому подобные комментарии всегда бьют по больному. Программирование графики для игр — это специализация, приносящая невероятное удовольствие, она постоянно эволюционирует и обновляется, к тому же имеет (по большей части) одно из лучших сообществ программистов, развивающееся благодаря активному обмену информацией. Так что же происходит?

Это сложно объяснить, но произносящие такие фразы в чём-то правы.

Когда я начал писать этот пост пару месяцев назад, он был совершенно другим, по сути, в нём аргументировалась необходимости создания высокоуровневой (как DX11, но лучше) API-обёртки для D3D12.

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

Кто-то может сказать «но и раньше его не было», и будет прав, но за последние годы разрыв увеличился. Давайте поговорим об этом.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments1

Как увеличить точность модели с 80% до 90%+ (мой опыт)

Reading time4 min
Views17K

Разберем способы поднять точность модели!

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

Наверное, уже только ленивый не слышал про Data Science и то, как модели машинного обучения помогают прогнозировать будущее, но самое крутое в анализе данных, на мой взгляд, - это хакатоны! Будь-то Kaggle или локальные соревнования, везде примерно одна задача - получить точность выше, чем у других оппонентов (в идеале еще пригодную для продакшена модель). И тут возникает проблема...

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments4

Настраиваем свой почтовый сервер в docker-compose

Reading time7 min
Views48K


Недавно мне потребовалось собрать свой почтовый сервер. В принципе, дело-то простое. Берёшь и ставишь сервер. Postfix, dovecot, letsencrypt, roundcube, spamassasin, clamav. Всё это — уже известные дела. Колея проторена. Иди и делай.

Но мне нужно было наплодить этих серверов. И я подумал, а почему бы не настроить всё на контейнерах? Такое можно сделать. Для этого надо скачать все вышеописанные контейнеры и написать .env файл века с более чем сотней разных параметров. Ну и, конечно же, сконфигурировать nginx. Там всё просто. С полдесятка хостов, и система заработает.

Я тяжело вздохнул и решил, что наверняка есть решение попроще. И оно нашлось. Mailu. Всё просто и из коробки, но всё-таки и в нём есть свои подводные мины.

Под катом — подробности того, как установить Mailu без боли и проблем, а также описание компонентов и рассказ о том, что и как можно менять и использовать.
Читать дальше →
Total votes 18: ↑17 and ↓1+24
Comments23

Разбираемся с библиотекой лексического анализа ANTLR4

Reading time9 min
Views17K

У нас в SberDevices разрабатывается платформа по управлению рекомендациями, которая взаимодействует с разными ML-движками. Со временем их станет много, и, когда пользователь умных устройств Sber будет запрашивать контент – искать фильмы, музыку, спрашивать о чём-то виртуальных ассистентов Салют, – запрос будет проходить через нашу платформу.

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

В SQL-запросе пользователь шлёт условие, по которому из существующих строк таблицы выбираются подходящие. В нашей задаче получается наоборот: входящему сообщению нужно сопоставить все условия, которые у нас есть, и вернуть те, которые прошли проверку. Правила маршрутизации – это настройки и их должны создавать не только программисты, но и менеджеры контента или дейта-сайентисты. С такими задачами справляются такие фреймворки, как, например Drools, но мы решили написать своё легковесное решение с упрощенным DSL, условия на котором может понять не только разработчик. 

Для обработки правил, написанных на кастомном DSL, лучшая библиотека – ANTLR4. Я находил много статей, в которых описываются разные аспекты работы с ANTLR4, но ни в одной из них я не увидел, то, что изучил на пути создания production-ready кода. Поэтому, разобравшись, я решил собрать туториал. Ниже опишу пример парсинга SQL SELECT-запроса в объектную модель Java. Будем двигаться постепенно, в этот раз рассмотрим простейший случай. На нём мы разберём саму идею этого парсера, сделаем минимальную реализацию.

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments11

Простой backend на C++: это возможно?

Reading time5 min
Views50K

Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно просто сделать HTTP API микросервис на C++ с помощью фреймворка Drogon.

Поехали!
Total votes 32: ↑32 and ↓0+32
Comments24

Знакомство с трансформерами. Часть 1

Reading time13 min
Views25K

Трансформеры (transformers) — это очень интересное семейство архитектур машинного обучения. Существует много хороших учебных материалов по этой теме (например — вот и вот), но в последние несколько лет трансформеры, в основном, становились всё проще. Поэтому сейчас гораздо легче, чем раньше, объяснить принципы их работы. Этот материал представляет собой попытку, что называется, «на пальцах», объяснить то, как работают современные трансформеры.

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

Для того чтобы понять примеры кода, понадобятся практические знания фреймворка PyTorch. Но эти примеры можно и пропустить без вреда для понимания остального материала.

Здесь можно найти видеолекции о трансформерах. А в этом репозитории имеется реализация простого трансформера с использованием PyTorch.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments0

Как пройти техническое собеседование на системного аналитика в любой компании (сборник вопросов)

Reading time10 min
Views197K

Я проходил технические собеседования на системного аналитика в самых разных компаниях и каждый раз записывал все вопросы. У меня накопилось 120 вопросов. Список вопросов выкладываю в этой статье. Даю гарантию, что, подготовившись по этим вопросам, вы будете успешно проходить технические собеседования в большинстве, если не во всех, it-компаниях. Почему? Потому что большинство вопросов повторяются от собеседования к собеседованию. Очень высока вероятность того, что вопросы, которые вам будут задавать, будут из этого списка.

Перейти к списку вопросов
Total votes 26: ↑26 and ↓0+26
Comments39

Пишем распределенное хранилище за полчаса

Reading time13 min
Views11K


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


Мне не нравится тратить время на настройку SQL базы данных, думать, как управлять шардированием данных, тратить много времени на изучение интерфейсов коннекторов. Хочется просто написать несколько строчек кода и запустить его, чтобы все работало из коробки. В быстрой разработке распределенных приложений мне помогает Cartridge — фреймворк для управления кластерными приложениями на основе NoSQL базы данных Tarantool.


Сегодня я хочу рассказать о том, как можно быстро написать приложение на Cartridge, покрыть его тестами и запустить. Статья будет интересна всем, кто устал тратить много времени на прототипирование приложений, а также людям, которые хотят попробовать новую NoSQL технологию.

Читать дальше →
Total votes 21: ↑20 and ↓1+29
Comments2

Автоматизируем все с Github Actions (Никита Соболев)

Reading time29 min
Views26K


Никита Соболев покажет множество функций Github Actions, поделится собственными впечатлениями и болями от первых месяцев использования, покажет, как сделать собственные инструменты.

Читать дальше →
Total votes 18: ↑14 and ↓4+13
Comments10

Внутреннее устройство Kubernetes-кластера простым языком

Reading time6 min
Views71K

Прим. перев.: как многим хорошо известно, Kubernetes — это всего лишь пять бинарников. Об их назначении и рассказывает в этой статье Vedashree Patil, консультант из Deloitte Digital. Когда ей потребовалось изучить Kubernetes, она столкнулась с большим количеством новой информации, осознать которую за короткое время было непросто. Так она пришла к идее уменьшить порог вхождения в K8s другим специалистам, создав цикл публикаций «Kubernetes 101». Все статьи сопровождаются простыми и наглядными комиксами. Представляем вниманию перевод материала под названием «Внутри кластера» из этого цикла.

Как выглядит кластер Kubernetes? Как работают узлы? Из этой статьи вы узнаете обо всех основных компонентах системы Kubernetes.

Читать далее
Total votes 57: ↑55 and ↓2+61
Comments10

NAT (Network Address Translation) для новичков

Reading time6 min
Views226K

Приветствую всех читателей статьи!

Данная статья будет полезна как новичкам в IT сфере, так и неопытным системным администраторам/ сетевым инженерам. Здесь затрагиваются понятия и принцип работы технологии NAT, ее значение в наше время, виды и создание с конфигурированием в программе-симуляторе Cisco Packet Tracer.

Читать далее
Total votes 11: ↑8 and ↓3+7
Comments43

Information

Rating
Does not participate
Registered
Activity