Pull to refresh
3
0
Dmitri Sinitsa @unabl4

веб-разработчик

Send message

Как сделать поиск в интернет-магазине

Level of difficultyMedium
Reading time17 min
Views3.5K

Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.

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

Рассказывать буду на примере проекта Vprok.ru — это мой текущий, самый крупный проект. Он входит в Х5 Digital и занимает на российском рынке третье место: 10 регионов присутствия, более 72 тысяч товаров, примерно 300 RPS на товарные запросы и около 700 тысяч комбинаций товар+склад.

Найдется все
Total votes 13: ↑11 and ↓2+9
Comments8

Перевод книги Windows APT Warfare

Level of difficultyMedium
Reading time12 min
Views4.8K
image

Всем привет. Решил поделиться новостью, может кому-то будет интересно. Я закончил перевод книги Windows APT Warfare. В своем роде очень интересное чтиво, для тех кто занимается ассемблером, малварью и информационной безопасностью. Первую часть оставлю здесь. Всю остальную книгу можно забрать на дамаге, ныне — xss.is. Может кто-то сможет сверстать в PDF, буду очень благодарен. Всем спасибо.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments6

Signal Integrity of DDR4

Level of difficultyHard
Reading time15 min
Views15K

Доброго времени суток! Наверное, вы все знакомы с компьютерной оперативной памятью DDRx (где x - поколение). Я бы хотел вам рассказать о ней с точки зрения SI (Signal Integrity - целостность сигналов) и принципов трассировки этого интерфейса.

Читая документацию на различные микросхемы CPU, FPGAs, DSPs, ASICs можно увидеть много различных рекомендаций, так называемых «Rules of Thumb», по трассировке DDR3/4 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Но в ней редко можно встретить информацию почему именно так это необходимо делать. В этой статье я попытаюсь вам объяснить различные способы улучшения SI с точки зрения схемотехники и топологии.

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

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficultyHard
Reading time48 min
Views133K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


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


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


Более удобный формат статьи.

Читать дальше →
Total votes 152: ↑152 and ↓0+152
Comments36

Таков путь или как я познавал Ruby

Reading time10 min
Views7.1K

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

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments6

Что должен знать Java Software Engineer

Reading time7 min
Views13K

Есть много разных понятий для человека, который занимается программированием: кодер, разработчик, программист и т.д. Мне же больше по душе такое понятие, как инженер-программист или software engineer, т.к. данное понятие охватывает наибольшее количество тем и направлений, необходимых для разработки. Это лично моё виденье.

Так чем же принципиально software engineer отличается от остальных регалий? Ответ достаточно прост и очевиден - набором знаний о технологиях и большим кругозором в сфере, которой он себя посветил. Кроме того, сталкиваясь с какой-либо проблемой или задачей, он уже понимает какой подход нужен для её решения, или знает, что надо "подтянуть", чтобы быть компетентным в данном вопросе.

Т.к. на данный момент мой основной язык программирования Java, то и рассматривать данный вопрос я буду со стороны Java. Однако общая концепция хорошо ложится на другие языки с небольшой корректировкой "под себя".

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

Читать далее
Total votes 13: ↑6 and ↓7-1
Comments21

Как выполнить аппаратную реализацию энкодера h264, не написав ни строчки кода на VHDL/Verilog?

Reading time7 min
Views6.1K

Вступление

Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)

Модельно-ориентированное проектирование - это что?

При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.

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

Выгорание — норма? Часть 3. Моя история выгораний и обучения в процессе

Reading time11 min
Views17K

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

Ссылки на предыдущие статьи: 

Выгорание — норма? Часть 1. (Вводная)

Выгорание — норма? Часть 2. Подробно про фазы и «Что делать?»

Напоминаю, что выгорание — это часть реакции на стресс; состояние, в которое приводит продолжительный стресс средней и даже малой интенсивности. Стресс либо незаметный, вытесненный за пределы внимания, либо мы его терпим по какой-то причине, но результат в итоге один: в мозге ломается реакция на раздражители, и система мотивации / поощрения. 

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

Но обо всём по порядку.

Читать далее
Total votes 28: ↑21 and ↓7+14
Comments27

Создание аналога посмертного сore dump для микроконтроллера

Reading time8 min
Views4.6K


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

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

В продолжение серии статей про различные полезности для STM32 (1 и 2), предлагаю вашему вниманию решение для сохранения посмертной информации микроконтроллера при возникновении различных критических ситуаций с целью последующего анализа ошибки.

Ну и в соответствии с собственным наблюдением Хабр — ума палата, буду рад любым комментариям и предложениям, которые помогут протестировать или улучшить предлагаемое решение.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments11

Интеллектуальный термометр

Reading time7 min
Views7.9K
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать об устройстве AI Fever Screening Thermometer, разработкой которого он занимался около двух месяцев. Оно, с использованием термальной (инфракрасной) и обычной (цветной) камер, позволяет решать следующие задачи:

  • Обнаружение людей, попадающих в кадр.
  • Бесконтактное измерение температуры их кожи с использованием данных термальной камеры.


Обнаружение лица и измерение температуры


Термометр, смонтированный у входа в дом
Total votes 54: ↑53 and ↓1+52
Comments23

Улучшаем производительность Java-микросервиса парой простых приемов

Reading time5 min
Views9.1K

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

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

Spring Boot — это быстрый способ создания микросервисов на Java. В этой статье мы рассмотрим, как улучшить производительность Spring Boot-микросервиса.

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

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

Reading time6 min
Views120K


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


Заинтриговал. Пожалуй, почитаю
Total votes 66: ↑60 and ↓6+54
Comments65

PMP сертификация для project managers. Изменения в экзамене v.2021 (Личный опыт сдачи)

Reading time13 min
Views15K

Данная статья выражает мое личное мнение, основанное на опыте подготовки и сдаче экзамена на сертификат PMP (Project Management Professional) от Project Management Instittute.

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

Получить всю официальную информацию, вы можете на сайте www.pmi.org

О чем это мы

Сертификат PMP от Project Management Institute (pmi.org) является на сегодняшний день самым признаваемым по всему миру сертификатом подтверждающим квалификацию специалистов в сфере управления проектами. Наличие данного сертификата будет несомненным плюсом при рассмотрении вашего резюме потенциальным работодателем.

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

Хидео Кодзима. Одинокий человек, избранный Богом

Reading time5 min
Views7.4K
imageПривет, Хаброжители! Мы сдали в типографию очередную новинку "Хидео Кодзима. Гены гения". «Я на 70 процентов состою из фильмов» — так говорит про себя Хидео Кодзима, чье имя в индустрии игр знает каждый. Так что же подтолкнуло знаменитого разработчика на создание произведений, каждое из которых вызывает больше вопросов и обсуждений, чем дает ответов? «Гены гения» — это сборник эссе Кодзимы, посвященных мемам — единицам культурной информации, которые формируют личность точно так же, как биологические гены. Эти эссе проливают свет на все книги и фильмы, которые сформировали Хидео Кодзиму как личность и дали ему творческую энергию для создания шедевров геймдизайна. Единственная книга Кодзимы о Кодзиме теперь доступна на русском!

Вашему вниманию представлен отрывок одной главы из книги «Одинокий человек, избранный Богом».
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments1

ДНК-детективы используют новые инструменты для раскрытия очень старых дел

Reading time13 min
Views7K

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




В августе 1979 года во время розысков наконечников стрел в пещерах гражданской обороны в Айдахо, одной семье не повезло наткнуться на останки человеческого туловища в мешке, спрятанном под слоем осадочных пород толщиной в 20 см. Эти пещеры – это лавовые трубки, идущие от Йеллоустонского национального парка, которые во время Холодной войны частично превращали в бомбоубежища.

Личность погибшего, остальные части тела которого не нашлись, и то, как он попал в пещеру к востоку от Дюбуа, с самого начала стали предметом споров. Шериф округа Кларк, Ёрл Холден, считал, что одежде погибшего – полосатая рубашка, белая майка, вязаный коричневый свитер, чёрные шерстяные брюки на подтяжках – примерно лет 60. В своём отчёте он указал, что в ту эпоху подобную одежду мог носить азартный игрок. Коронер Эрни Сил, лучший друг Холдена, не согласился с ним, и посчитал, что человек погиб не ранее, чем за 10 лет до обнаружения. Даг Убелакер, антрополог из Смитсоновского института, помогавший ФБР в расследовании, посчитал, что останки пролежали в земле от 6 месяцев до 5 лет.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments6

Простые правила IT-гигиены

Reading time4 min
Views25K
Доброго времени суток.

Просторы интернета давно не являются безопасным пространством (если его вообще можно было когда-либо считать как таковым) для пользователя. Тем более необычным является то, что многие не считают нужным (или не знают как) соблюдать относительно простые правила, так называемой, IT-гигиены.

image

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

Давайте приступим.

Нюансы проблематики


Наверняка каждый так или иначе сталкивался с моментом, когда с аккаунта знакомого вдруг начинает поступить какой-то левый спам, просьбы занять денежку и что-то еще такое-этакое.
Читать дальше →
Total votes 37: ↑23 and ↓14+9
Comments89

Ламповые часы Nixie clock своими руками

Reading time6 min
Views68K

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



Картинка кликабельна


Приятного чтения.

Под катом будет много фото...
Total votes 45: ↑44 and ↓1+43
Comments37

Вышел релиз языка программирования Ruby 3.0.0, который готовили с 2015 года

Reading time3 min
Views14K

Источник изображения

Хорошие новости для разработчиков — вышел Ruby 3.0.0, новый релиз динамического объектно-ориентированного языка программирования. По словам его поклонников, в новую версию вошло лучшее от Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp.

Новая версия Ruby — восьмой значительный выпуск, который получил множество обновлений и улучшений. К слову, над третьей версией разработчики трудились около пяти лет. Ее особенности — высокая производительность, параллелизм и типизация.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments5

Как создаются S-блоки

Reading time9 min
Views7.5K

Шифрование с симметричным ключом используется повсеместно в современном мире - хранение и передача информации, электронная почта, даже просмотр видео на YouTube. Сильные симметричные шифры включают в себя правильно построенные S-блоки. В своей статье я разберу различные способы создания S-блоков и сравню их.

Читать далее
Total votes 31: ↑30 and ↓1+29
Comments1

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity