Pull to refresh
-5
0
Send message

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

Level of difficultyMedium
Reading time8 min
Views7.6K

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

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

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

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

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

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

Level of difficultyMedium
Reading time14 min
Views6.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.

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

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

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

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

Level of difficultyMedium
Reading time34 min
Views12K


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

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

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

Level of difficultyMedium
Reading time8 min
Views13K

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

Читать далее
Total votes 36: ↑35 and ↓1+34
Comments28

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

Level of difficultyEasy
Reading time8 min
Views20K

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

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

Читать далее
Total votes 53: ↑52 and ↓1+51
Comments38

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

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

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

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

Читать дальше →
Total votes 191: ↑155 and ↓36+119
Comments478

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

Reading time12 min
Views134K

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


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


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

Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments66

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

Reading time3 min
Views62K

Всем привет!

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

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

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

Reading time4 min
Views101K


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

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

Reading time2 min
Views145K

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


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


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

Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments11

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

Reading time3 min
Views20K
Привет, Хабр! Представляю вашему вниманию перевод статьи «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.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments13

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

Reading time6 min
Views29K
Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



Осторожно: специфический юмор далее по тексту.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments6

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

Reading time7 min
Views51K


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



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

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

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

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

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

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

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

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

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

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

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



Total votes 19: ↑18 and ↓1+17
Comments13

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

Reading time19 min
Views97K
И снова здравствуйте. Перевод следующей статьи подготовлен специально для студентов курса «Администратор Linux». Поехали!



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


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

DisplayPort-LVDS

Reading time4 min
Views28K
Доброго времени суток, Хабр!



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

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

Reading time4 min
Views32K
Последовательные интерфейсы 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 напрямую, без использования серверов и компьютеров.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments21

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

Reading time6 min
Views117K


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

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

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

Information

Rating
Does not participate
Registered
Activity