Search
Write a publication
Pull to refresh
-13
0

Инженер

Send message

Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции

Reading time18 min
Views51K

В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте.

Читать далее

8 ошибок, из-за которых ты проиграешь в соревновательном Data Science

Reading time8 min
Views16K

Привет, чемпион!

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

Так вышло, что за время участия в чемпионатах по соревновательному анализу данных я достаточно часто бывал в призовых местах. Однако, бывали случаи, когда я лишался призовых по глупости или неосторожности. Рассказываю по порядку.
Читать дальше →

В Data Science не нужна математика (Почти)

Reading time6 min
Views92K

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

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

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views89K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее

Современная серверная разработка на языке Java: 1. Инструменты разработчика

Reading time7 min
Views23K

Приветствую, уважаемый читатель!

Мы живем в интересное время – практически у каждого человека в кармане лежит небольшой компьютер, имеющий доступ в Интернет. Этот факт обеспечил появление множества востребованных интернет-сервисов. Если раньше имело смысл создавать приложения, которые нужны всем, например, службу электронной почты, то в наши дни из-за массовости проникновения технологии спрос найдет и какая-нибудь экзотика вроде доставки вегетарианской пищи.

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

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

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

Вот так может выглядеть микросервисная архитектура интернет-магазина...

Читать далее

Создание HTTP-запросов на C++

Reading time7 min
Views38K

В этой статье я покажу вам, как создавать HTTP-запросы к REST-серверу с помощью библиотеки C++ Request, написанной Ху Нгуеном. При её написании мистер Нгуен во многом ориентировался на принципы проектирования из Python Requests, поэтому для тех, кто использовал или знаком с Python Requests, C++ Requests окажется вполне понятна.
Читать дальше →

Тон Шепарда и другие слуховые иллюзии

Reading time3 min
Views29K

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

Читать далее

STM32 Modular USB Composite device

Reading time27 min
Views19K

Проект является логическим продолжением другого проекта на Хабре - CDC+MSC USB Composite Device на STM32 HAL и рассказыват о том, как на STM32 создать проект с несколькими USB устройствами, с читаемой структурой и используя типовые модули. Конкретно в этом проекте рассмотрен пример комбинации HID + CDC UART + CDC, а также рассказано как этот проект возможно расширить другими интерфейсами.

Читать далее

Как сделать ИИ для поиска алмазов в Minecraft

Reading time9 min
Views25K

В случайно сгенерированном мире Minecraft найдём алмазы с помощью ИИ. Как обученный с подкреплением агент проявит себя в одной из самых сложных задач игры? Подробностями делимся к старту флагманского курса по Data Science.

Читать далее

70 вопросов по JavaScript для подготовки к собеседованию

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

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

В вопросах, которые показались мне сложнее прочих, приведены ссылки на дополнительную литературу.

Буду признателен за развернутые комментарии. Все замечания будут учтены при редактировании статьи.

Итак, поехали.
Читать дальше →

Как выжить при быстром росте аудитории, когда игра за день становится хитом

Reading time8 min
Views12K

В 2013 году, когда игры-сервисы были где-то в зачатках, мы продавали Pixel Gun 3D за доллар просто как прототип FPS-шутера. В игре была одна карта, одно оружие и два вида зомби, при этом она сильно цепляла эмоционально — игрокам приходилось выживать в ограниченном пространстве с постоянно появляющимися монстрами. Словом, адреналин зашкаливал (по этой же причине до сих пор популярны батлрояли). 

Проект выложили в стор и тут началось: огромное количество установок, оценок, отзывов. Вскоре он занял топ-1 в App Store среди платных игр. Мы совсем были не готовы к огромному потоку игроков, которые что-то советовали, писали развернутые фидбеки и всячески пытались выйти на контакт. 

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

Читать далее

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

Reading time1 min
Views46K

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее

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

Reading time6 min
Views33K

А ещё я являюсь инженером электронной техники, который вместе с несколькими другими инженерами и партнёрами сохранил и отчасти приумножил советские электровакуумные технологии.

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

Итак, в СССР на 1990 год действовали несколько крупных заводов по производству телевизионных кинескопов в городах Львов, Паневежис, Воронеж, Елец, Москва, Запрудня МО, Новосибирск, Новгород, Брянск, Нальчик. Ряд специальных ЭЛТ так же производился в нескольких НИИ. Это был достаточно мощный сравнительной высокотехнологичный индустриальный кластер, где работали более 70 тысяч человек (а со смежной цепочкой кооперации более 100 тысяч!). Ряд упомянутых заводов параллельно делали ещё другие электровакуумные приборы, в том числе осциллографические ЭЛТ и другие "приборные", ФЭУ, ЭОПы, имели свои сборочные производства телевизоров, компьютерных мониторов и разных стеклянных изделий бытового назначения.

Но всё равно, весь этот индустриальный кластер держался на массовом выпуске бытовых кинескопов, который с развалом СССР и началом реформ Гайдара-Ельцина начал резко стагнировать и уменьшаться в первую очередь из за очевидного проигрыша иностранным массовым образцам кинескопов по технико-экономическим параметрам. Наиболее длительно существовать на уменьшающемся рынке смогли заводы, которые либо выпускали только чёрно-белые бытовые кинескопы (для конкуренции с которыми западных массовых образцов приборов уже не было на рынке) и электровакуумные приборы для специальных применений, либо заводы, у которых была как большая номенклатура и цветных ( ЦЭЛТ ), и чёрно-белых кинескопов, а так же диверсификация в направлении другой бытовой и специальной техники. Массовое производство цветных кинескопов в РФ фактически остановилось в 1997-98 годах. После единственным и достаточно успешным наследником кинескопной промышленности СССР стал литовский завод "Экранас" ( г. Паневежис ). Его специалисты для увеличения мощности производства на европейские кредиты смогли фактически по цене металлолома скупить значительную часть советского оборудования последней модификации с остановившихся предприятий аналогичного профиля и провести работу модернизации такого оборудования на базе западной автоматики. Так же качество выпускаемых литовцами кинескопов резко возросло в связи с переходом предприятия на снабжение западными материалами и комплектующими. "Экранас" проработал до 2006 года и на пике в 2003-2004 годах выпускал цветных кинескопов порядка 5-6 миллионов в год, что было соизмеримо с мощностью всех советских кинескопных заводов вместе взятых.

Читать далее, как

Node.js: разрабатываем бота для Telegram

Reading time6 min
Views58K


Привет, друзья!


В данном туториале мы разработаем простого бота для Telegram. Сначала зарегистрируем и кастомизируем бота с помощью BotFather, затем напишем для него сервер на Express, развернем сервер на Heroku и подключим бота к серверу с помощью веб-хука.


Функционал бота будет следующим:


  • в ответ на сообщение joke возвращается программистская шутка, например: "Algorithm: a word used by programmers when they don't want to explain how their code works." (Алгоритм — это слово, используемое программистами, когда они не хотят объяснять, как работает их код));
  • в ответ на сообщение, представляющее собой дату в формате ДД.ММ, возвращается либо список дел, запланированных на эту дату в таблице Google (массив объектов), либо фраза "You have nothing to do on this day.", если на эту дату не запланировано никаких дел;
  • в ответ на любое другое сообщение возвращается фраза "I have nothing to say.".

При разработке бота я буду опираться в основном на официальную документацию.



Если вам это интересно, прошу под кат.

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

Неклассические контейнеры в C++

Reading time17 min
Views51K

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

В стандартную библиотеку C++ входит несколько контейнеров. Кроме этого, в Open Source есть несколько контейнеров, которые покрывают больше юзкейсов. Я опишу устройство интересных контейнеров вне STL и их отличия от классических контейнеров.

Читать далее

Строковые алгоритмы на практике. Часть 1 — Алгоритм Кнута — Морриса — Пратта

Reading time8 min
Views28K

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


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

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

Как мы потеряли 54 000 звёзд на GitHub

Reading time7 min
Views37K

К старту курса по Fullstack-разработке на Python рассказываем о том, как один из самых популярных репозиториев GitHub лишился десятков тысяч своих звёзд, а также о том, как помочь пользователям ваших решений избегать подобных ситуаций.

Читать далее

Модификации сортировки пузырьком

Reading time6 min
Views11K

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

Читать далее

Теперь наш публичный синтез в супер-высоком качестве, в 10 раз быстрее и без детских болячек

Reading time8 min
Views58K

hero_image


В нашей прошлой статье про синтез речи мы дали много обещаний: убрать детские болячки, радикально ускорить синтез еще в 10 раз, добавить новые "фишечки", радикально улучшить качество.


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


  • Снизили размер модели в 2 раза;
  • Научили наши модели делать паузы;
  • Добавили один высококачественный голос (и бесконечное число случайных);
  • Ускорили наши модели где-то примерно в 10 раз (!);
  • Упаковали всех спикеров одного языка в одну модель;
  • Наши модели теперь могут принимать на вход даже целые абзацы текста;
  • Добавили функции контроля скорости и высоты речи через SSML;
  • Наш синтез работает сразу в трех частотах дискретизации на выбор — 8, 24 и 48 килогерц;
  • Решили детские проблемы наших моделей: нестабильность и пропуск слов, и добавили флаги для контроля ударения;

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


Попробовать модель как обычно можно в нашем репозитории и в колабе.

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

Миллион одновременных соединений

Reading time8 min
Views68K

Я слышал ошибочные утверждения о том, что сервер может принять только 65 тысяч соединений или что сервер всегда использует по одному порту на каждое принятое подключение. Вот как они примерно выглядят:

Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.

Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.

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

Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:

  1. Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
  2. Теоретические возможности на основе протокола TCP/IP.
  3. Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.

Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Читать дальше →

Information

Rating
5,968-th
Location
Санкт-Петербург и область, Россия
Registered
Activity