Как стать автором
Обновить
-5
0

Пользователь

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

RecTools – OpenSource библиотека для рекомендательных систем

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

Если вы когда-либо работали с рекомендательными системами, то знаете, что все необходимые и самые часто используемые инструменты разбросаны по разным библиотекам. Более того, каждая из таких библиотек имеет много уникальных особенностей, к которым нужно приноровиться (например, разные форматы данных на вход).

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

К такому же выводу, видимо, пришли ребята из МТС – и выкатили в опенсурс RecTools. Это библиотека, где собраны самые часто используемые модели для рекомендательных систем. Также с её помощью можно максимально просто и быстро оценивать необходимые метрики. 

Давайте же посмотрим, что RecTools умеет, и как с этим работать.

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

От теории к практике: создаём веб-приложение для решения задачи коммивояжёра

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

В таких сферах, как исследование операций (Operations Research) и наука о данных (Data Science) чрезвычайно актуально сближение теории и её практического применения в виде программных проектов. Теоретические выкладки формируют базу программ для оптимизации чего‑либо, так как теория даёт средства для решения разнообразных задач. Но очень важно помнить и о том, что подобные программы должны быть доступны конечному пользователю, что с ними должно быть удобно работать.

Задача коммивояжёра (Traveling Salesman Problem, TSP) — это, без сомнения, та самая задача комбинаторной оптимизации, которая изучена лучше всего (Rego, C., Gamboa, D., Glover, F., & Osterman, C., 2011. Traveling salesman problem heuristics: Leading methods, implementations and latest advances. European Journal of Operational Research, 211(3), 427–441). Её легко описать (по крайней мере — на словах), её можно использовать для того чтобы продемонстрировать некоторые из возможных компонентов API современной программы по построению маршрутов. В результате я просто не мог подобрать ничего лучше этой задачи в качестве основы для примера, который разобран в этой статье.

Здесь вы узнаете о том, как использовать Python‑библиотеку Streamlit для создания веб‑приложения, которое позволяет решать задачу коммивояжёра с использованием входных данных, предоставленных пользователем. Так как нас интересует создание приложения, пригодного для решения реальных задач, мы, анализируя пути перемещения между некими географическими точками, будем интересоваться не только евклидовым расстоянием между ними, но и другими характеристиками путей. В частности, наша программа, используя координаты точек, должна уметь получать данные о том, какое расстояние по автомобильным дорогам нужно преодолеть для перемещения между ними. Эти данные должны учитываться при выполнении оптимизации. Для этого мы воспользуемся API OpenStreetMap.

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

Готовы поработать? Взгляните на то, что у нас должно в итоге получиться…

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

Разбираем TLS по байтам. Где собаки зарыты?

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


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только не все дети знают, что это значит и как работает. Кажется я это уже писал? Ах да, это же вторая часть статьи с разбором TLS.

В первой мы увидели, что такое «защищённое соединение», сколько и каких ключей для него нужно, кто кого шифрует и подписывает, и что такое «сертификат». Сейчас разберёмся, как всё это дело реализуется в протоколе TLS: как выглядит рукопожатие, как сделать ключ шифрования своими руками, в каком виде данные передаются по сети.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии1

Полупроводниковые войны — американское видение ситуации

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

Пробелы в новых ограничениях на поставку литографического оборудования в Китай — ASML, SMEE, Nikon, Canon, EUV, DUV, ArFi, ArF Dry, KrF и фоторезист.

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

Укроп на камнях

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров20K

Покупая одновременно микрозелень и коньяк можно поймать оценивающий взгляд. Не объяснять же каждому, что набор для выращивания приобретается в научных целях. За 98 рублей мы получаем пластиковый контейнер, минеральную вату, пакет семян и инструкцию. «Выдержать в темноте 2 дня… снять крышку… поставить на солнце… периодически поливать». Такие нехитрые действия помогут вырастить небольшое количество полезных растений.

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

Читать далее
Всего голосов 53: ↑52 и ↓1+51
Комментарии38

Памятка по борьбе с алкоголем или Как пережить фуршеты

Время на прочтение20 мин
Количество просмотров174K
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

Читать дальше →
Всего голосов 191: ↑155 и ↓36+119
Комментарии478

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

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

Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового.


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


Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

Читать дальше →
Всего голосов 112: ↑110 и ↓2+108
Комментарии66

Первая попытка собрать лазерный проектор из жестких дисков

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

Всем привет!

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

Если Вам интересны подробности, то смотрите видео или читайте статью под катом.
Всего голосов 58: ↑57 и ↓1+56
Комментарии42

Лазерный станок своими руками

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


Привет, Хабр! Сегодня расскажу о своем лазерном станке для резки фанеры и гравировки кожи. Цель была как всегда – максимум функционала за минимум денег).
Читать дальше →
Всего голосов 126: ↑125 и ↓1+124
Комментарии194

Отслеживаем прогресс выполнения в Python

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

Зачем нужны индикаторы прогресса?


Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.


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

Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии11

6 самых распространённых ошибок разработчиков при написании HTML и CSS

Время на прочтение3 мин
Количество просмотров20K
Привет, Хабр! Представляю вашему вниманию перевод статьи «The 6 most common mistakes developers when writing HTML and CSS» автора Stas Melnikov.

Использование атрибута placeholder вместо элемента label


Часто разработчики используют атрибут placeholder вместо элемента label. Но в этом случае пользователи скринридера (программы чтения с экрана) не могут заполнять поля, потому что скринридер не может прочитать текст из атрибута placeholder.

<input type="email" placeholder="Enter your email">

Поэтому я рекомендую использовать элемент label для поля имени и атрибут placeholder для примера данных, которые пользователь должен заполнить.

<label>
  <span>Enter your email</span>
  <input type="email" placeholder="e.g. example@gmail.com">
</label>

Использование элемента img для разметки декоративной графики


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

<a href="https://twitter.com" class="social">
  <img class="social__icon" src="twitter.svg" alt>
  <span class="social__name">Twitter</span>
</a>

Но иконка социальной сети — это декоративная иконка, которая помогает пользователям быстрее понять смысл элемента, не читая текст. Если мы удаляем значок, мы не теряем значение элемента, поэтому мы можем использовать для него свойство background-image.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии13

Точки входа в Python

Время на прочтение6 мин
Количество просмотров29K
Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



Осторожно: специфический юмор далее по тексту.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии6

Ретропоезд с паровозом

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


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



Итак, у нас ретропоезд «Рускеальский экспресс», который ходит по Карелии от города Сортавалы до горного парка Рускеала. Это 5 часов от Петербурга на важную туристическую точку.

А ещё кроме ретропоезда с нами поехали ретропассажиры. Точнее, студенты театрального колледжа, которые ставили иммерсивную постановку про коммунистов, перевозящих золото партии. Чем вынесли мозг немалому количеству пенсионеров.
Читать дальше →
Всего голосов 206: ↑198 и ↓8+190
Комментарии70

Terraform: новый подход к Infrastructure as code

Время на прочтение9 мин
Количество просмотров168K
Привет, коллеги! Пока блистательный Илон Маск вынашивает амбициозные планы терраформирования Марса, мы интересуемся новыми возможностями, связанными с парадигмой "Infrastructure as Code" и хотим предложить вам перевод статьи об одном из представителей «великолепной семерки» — Terraform. Книга Евгения Брикмана по теме неплохая, но ей скоро год, так что просим высказаться — хотите ли увидеть ее на русском языке

Слово Камалу Мархуби (Kamal Marhubi) из компании Heap.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии11

Как попасть в DevOps, как учиться и что читать

Время на прочтение10 мин
Количество просмотров41K
Про DevOps говорят много и разного. Нам же интересно мнение только тех, кто действительно внедряет и следует DevOps принципам. Так удачно сложилось, что в Программный комитет DevOpsConf Russia входят именно такие люди. Воспользовавшись служебным положением, я задал им восемь одинаковых вопросов:

  • Каково главное преимущество DevOps подхода, на твой взгляд?
  • Что больше всего может помешать компании в DevOps трансформации?
  • Как интегрировать специалистов по безопасности в процесс поставки ПО?
  • Как относишься к поднимающемуся хайпу вокруг SRE?
  • Какие инструменты сегодня непременно есть там, где говорят о DevOps?
  • Что отличает хорошего инженера от плохого с точки зрения DevOps?
  • Как логичнее всего попасть в профессию?
  • Как учиться и что читать? Где ты чаще всего сам читаешь новости отрасли?

Ответы получились очень любопытными и заодно позволяют составить некоторое впечатление о тех, кто вложил много усилий и немножко души в расписание нашей конференции. Например, ответ на первый вопрос шире, чем сокращение time-to-market. Мнения по поводу SRE разошлись, зато все практически единодушно советуют читать «The DevOps Handbook», но и еще надавали кучу рекомендаций — за ними под кат.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии17

Гайд по голосовому UX: ситуации, паттерны, инструменты (и немного моральной поддержки)

Время на прочтение12 мин
Количество просмотров9.9K
UX и UI-дизайнеры всё ещё со скепсисом смотрят в сторону голосовых интерфейсов. Одним кажется, что это маркетинговый хайп, который скоро сойдёт на нет. Другие не пользуются голосовыми ассистентами и поэтому уверены, что голос — это неудобно и неестественно. Но пока они сомневались, сложилась самостоятельная профессиональная сфера — со своими секретами, паттернами и механиками (и даже рынком труда). Вместе с UX-архитектором Just AI Екатериной Юлиной разбираемся, как подступиться к голосовым технологиям и что в своем мышлении должен изменить UX-дизайнер традиционных интерфейсов, берясь за голосовые.



Всего голосов 19: ↑18 и ↓1+17
Комментарии13

Мониторинг и проверка состояния SSD в Linux

Время на прочтение19 мин
Количество просмотров97K
И снова здравствуйте. Перевод следующей статьи подготовлен специально для студентов курса «Администратор Linux». Поехали!



Что такое S.M.A.R.T.?


S.M.A.R.T. (расшифровывается как Self-Monitoring, Analysis, and Reporting Technology) – это технология, вшитая в накопители, такие как жесткие диски или SSD. Ее основная задача – это мониторинг состояния.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии4

DisplayPort-LVDS

Время на прочтение4 мин
Количество просмотров28K
Доброго времени суток, Хабр!



И снова хочу предложить Вашему вниманию проект аппаратного конвертера, но теперь уже DisplayPort-LVDS построенный на одной (!) микросхеме NXP.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии30

Подключаем последовательные интерфейсы по IP

Время на прочтение4 мин
Количество просмотров32K
Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны в промышленности: по ним подключаются диагностические порты, датчики, сканеры штрих-кодов и RFID меток и т.д. Однако последовательные интерфейсы имеют свои ограничения. Иногда возникает необходимость получить доступ к такому интерфейсу по IP-сети, или, например, иметь доступ к одному устройству с RS-232 с нескольких удаленных компьютеров одновременно, или объединить несколько удаленных объектов в одну шину RS-485.

Сервер последовательных интерфейсов конвертирует последовательные физические протоколы в IP-пакеты, и позволяет программно управлять ими — подключать удаленный виртуальный COM-порт к компьютеру по сети так, будто он подключен физически, и прозрачно соединять несколько устройств в режиме P2P, без использования компьютеров.

В статье мы разберем сервер последовательных интерфейсов Advantech EKI-1524, имеющий четыре последовательный порта, каждый из которых поддерживает протоколы RS-232/422/485, и два LAN-порта.


Сервер последовательных интерфейсов EKI-1524 имеет четыре порта DB9 и два LAN-порта.

Ключевые функции EKI-1524:

  • Виртуальный COM-порт — позволяет программно эмулировать виртуальный COM-порт удаленного устройства на системе Linux.
  • Одновременное подключение нескольких клиентов — в режиме сервера дает возможность использовать один последовательный порт для нескольких устройств одновременно.
  • Работа в режиме P2P — одновременная работа в режиме клиента и сервера позволяет объединить несколько EKI-1524 напрямую, без использования серверов и компьютеров.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии21

Рейтинг площадок дополнительного образования в ИТ: по результатам исследования «Моего круга»

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


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

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

Надеемся, наше исследование подскажет специалистам, куда лучше идти учиться, а школам поможет понять свои текущие сильные и слабые стороны и стать лучше.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии29
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность