Pull to refresh
-12
0

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

Send message

Do IT like a Russian: чем крупный ритейл может удивить технического директора

Reading time10 min
Views24K

Привет! Меня зовут Валентин Щитов, я CIO компании «‎Магнит». 

До момента прихода в «Магнит» весной 2020 года я руководил IT-департаментом большого e-commerce проекта и за 10 лет сформировал полное представление, как работает онлайн-ритейлер. 

Однако и офлайн-ритейлер с историей в четверть века меня удивил. Приятно или нет — расскажу дальше.

Читать далее
Total votes 39: ↑34 and ↓5+29
Comments100

Делаем сервер из Android-телефона

Reading time8 min
Views117K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Total votes 130: ↑129 and ↓1+128
Comments97

Автозаказ: как сделать так, чтобы нужные продукты сами попадали на полки 17 000 магазинов по всей стране

Reading time5 min
Views9.9K

Автозаказ: как сделать так, чтобы нужные продукты сами попадали на полки 17 000 магазинов по всей стране

Существует задача: масштабной ритейл-сети по продаже товаров необходимо, чтобы огромное количество номенклатурных позиций доезжало в каждый из 17000 магазинов, расположенных на половине площади самой большой страны в мире, вовремя и в нужном количестве. Для решения такой задачи в X5 Group существует ряд реализованных решений, и одним из самых важных является процесс автозаказа товаров. 

Техническую поддержку этого направления в X5 Group обеспечивает команда 2-SAP Логистики.  Наша команда поддерживает решения, которые помогают бесперебойно обеспечивать полки магазинов свежими продуктами, а покупателям на территории всей России доступны к продаже десятки тысяч товарных позиций. 

Читать далее
Rating0
Comments10

Как я пытался придумать новый подход к изучению алгоритмов через интерактивные визуализации

Reading time4 min
Views27K

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

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

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

Карманная книга по TypeScript. Часть 2. Типы на каждый день

Reading time11 min
Views35K

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.


Примитивы: string, number и boolean


В JS часто используется 3 примитива: string, number и boolean. Каждый из них имеет соответствующий тип в TS:


  • string представляет строковые значения, например, 'Hello World'
  • number предназначен для чисел, например, 42. JS не различает целые числа и числа с плавающей точкой (или запятой), поэтому не существует таких типов, как int или float — только number
  • boolean — предназначен для двух значений: true и false

Обратите внимание: типы String, Number и Boolean (начинающиеся с большой буквы) являются легальными и ссылаются на специальные встроенные типы, которые, однако, редко используются в коде. Для типов всегда следует использовать string, number или boolean.

Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments1

Антирекламный щит рядового пользователя: Яндекс без дзена, YouTube без рекламы, Хабр без баннера

Reading time7 min
Views120K

Контроль над содержимым web должен принадлежать в т.ч. рядовому пользователю, а не только маркетологам. Юзер сам в состоянии определять, что для него является пагубной рекламой, а что полезным контентом. Если пользователь считает, что новости или дзен Яндекса - это своего рода реклама, то он может ограничить себя от „вредоносного для него контента“ совершенно законно в „касание“ и без красноглазия. Решение — под катом.

Под кат
Total votes 57: ↑43 and ↓14+29
Comments188

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

Reading time3 min
Views34K

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

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

Читать далее
Total votes 22: ↑16 and ↓6+10
Comments41

Визуализация ТЗ — диаграммы, схемы, картинки

Reading time6 min
Views34K

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

Как же сделать ТЗ понятнее? Можно улучшить текст — вместо скупого текста составить вариант использования. А можно использовать визуализацию. То есть добавить в требования картинки, диаграммы, таблицы...

Причем сделать это может не только аналитик, но и любой член команды. Тестировщикам особенно полезно визуализировать ТЗ, потому что это помогает сразу увидеть проблемные места и уточнить их ещё до реализации. Раннее тестирование и всё такое =)

А ещё техники, помогающие лучше понять требования, относятся к техникам тест-дизайна. Значит, о них стоит знать! В одну статью всё запихивать не стала и сделала отдельные:

Читать далее
Total votes 4: ↑0 and ↓4-4
Comments5

Одна Kafka хорошо, а несколько — лучше

Reading time10 min
Views15K

Всем привет! Меня зовут Александр, я – инженер команды, отвечающей за развитие централизованных IT-сервисов, которыми пользуются продуктовые команды в X5 Retail Group. 

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

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments13

Как сделать хорошую интеграцию? Часть 2. Идемпотентные операции – основа устойчивой интеграции

Reading time13 min
Views13K

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

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

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

Как сделать хорошую интеграцию? Часть 1

Reading time11 min
Views19K
Вопрос в заголовке включает в себя неочевидную часть, ведь перед тем, как рассказывать про создание хорошей интеграции стоит определить, какую интеграцию мы считаем хорошей. А ответ на этот вопрос не однозначен.

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


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

Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

Reading time13 min
Views34K

Tree of Dragons II by surrealistguitarist

Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments12

Lenovo ThinkPad X1 Fold — первый в мире ноутбук с гибким экраном

Reading time5 min
Views14K
Lenovo ThinkPad X1 Fold — первый в мире ноутбук с гибким экраном со встроенным новейшим гибридным процессором Intel; он обладает всеми достоинствами ПК и подобно хамелеону способен подстроиться под условия окружающей среды и ваши потребности. Благодаря своему ультрапортативному форм-фактору он идеально подходит для тех, кто вынужден работать в разных условиях.



Первый в своем классе гибкий OLED-дисплей с разрешением 2K позволяет раскрыть X1 Fold и работать на 13,3-дюймовом экране, используя всю его площадь.

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

Давайте рассмотрим ноутбук и его характеристики более детально?
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments50

Ценности DDD

Reading time10 min
Views33K
Основоположником DDD (Domain Driven Design, предметно-ориентированное проектирование) является Эрик Эванс, который в довольно далеком 2003 году подарил миру свою знаменитую книгу о предметно-ориентированном проектировании. Безусловно, не все, что описано в книге придумал автор с нуля. Многие идеи и практики существовали и до него, но у Эванса получилось все это систематизировать и правильно расставить акцента. Давайте попробуем разобраться, что же именно предлагает Эванс.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments19

Самые важные архитектурные шаблоны, которые нужно знать

Reading time7 min
Views72K

Рассказываем о самых распространенных шаблонах в архитектуре ПО. Разбираемся с контекстом и решаемыми задачами, обсуждаем достоинства и недостатки.

- Многоуровневая архитектура

- Каналы и фильтры

- Клиент — сервер

- Модель — представление — контроллер

- Управляемая событиями архитектура

- Архитектура на основе микросервисов

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

Jekyll на VPS за 30 рублей для состоятельных людей

Reading time3 min
Views8.9K

Статический HTML почти ушел в прошлое. Теперь сайты это связанные с базами данных приложения, которые динамически формируют ответ на пользовательские запросы. Однако, в этом есть и свои недостатки: более высокие требования к вычислительным ресурсам и многочисленные уязвимости в CMS. Сегодня мы расскажем о том, как поднять свой простенький блог на Jekyll — генераторе статических сайтов, контент которых берется прямиком из GitHub.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments45

FritzFrog — новое поколение ботнетов

Reading time8 min
Views7.5K

Краткое содержание


  • Guardicore обнаружили сложный ботнет пиринговой (P2P) сети FritzFrog, который еще с января 2020 года активно взламывал SSH серверы.
  • Вредоносное ПО на Golang: FritzFrog исполняет модульный, мультипоточный и безфайловый вредоносный код на Golang, который не оставляет следов на жестком диске зараженного устройства.
  • Активное таргетирование государственных, образовательных, финансовых и прочих ресурсов: FritzFrog пытался брутфорсить и распространяться на десятках миллионов IP адресов правительственных офисов, образовательных учреждений, медицинских центров, банков и множества телекоммуникационных компаний. Среди них успешно подвержены атаке оказались более чем 500 серверов, включая известные университеты США и Европы, и одну железнодорожную компанию.
  • Сложность: FritzFrog полностью проприетарен, его имплементация P2P написана с нуля, что говорит о высоком уровне профессионализма его создателей в области разработки ПО.
  • Перехват: Guardcore Labs разработали клиентскую программу на Golang, способную перехватывать P2P соединения FritzFrog и подключаться к сети как пир.
  • Принадлежность: мы не смогли определить конкретную группу, ответственную за создание FritzFrog, однако текущий ботнет частично похож на ранее известный ботнет Rakos.

Введение


FritzFrog это очень изощренный пиринговый ботнет, который активно взламывает SSH серверы по всему миру. Благодаря своей децентрализованной структуре он распределяет контроль по всем своим узлам. В этой сети нет единой точки отказа, и пиры постоянно общаются друг с другом, чтобы поддерживать ее в устойчивом, обновляемом и постоянно активном состоянии. P2P соединение проводится через зашифрованный канал с использованием AES для симметричного шифрования и протокола Диффи-Хеллмана для обмена ключами.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments5

Автоматизация тестирования на максималках. Доклад Яндекса

Reading time9 min
Views10K
Это снова Владимир Гриненко, тимлид в поисковом портале Яндекса. Я решил рассказать, как у нас устроено тестирование интерфейсов: о формате описания сценариев, способах их актуализации, о нашем собственном опенсорсном проекте и тестировании силами внешних тестировщиков. А ещё пофантазировал о неожиданных способах применения этой системы.


— Сергей Бережной veged уже несколько раз поднимал эту тему и рассказывал про тестирование в Поиске. Вот ссылки на доклады в 2016-м и 2017-м. Многое из того, что он тогда рассказывал, де-факто стало стандартом для большинства компаний. Но несмотря на это, все еще остаются вещи, которые пока нигде особо не применяются. Именно на них я и сосредоточусь.

Чтобы не отставать от хайпа, будем говорить об этом на примере колдунщика карты коронавируса на серпе, то есть в результатах поисковой выдачи.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time9 min
Views290K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?
Total votes 111: ↑110 and ↓1+109
Comments234

Транспорт на 27 мая

Reading time11 min
Views4.6K


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

А теперь самое главное:

  • «Победа» обрушила цены авиаперевозчикам на перелеты в июне.
  • Больше половины регионов РФ начинают снимать ограничения. В Ростуризме заявили о поэтапном выходе из карантина с 1 июня.
  • Часть поездов возвращается.
  • Аэрофлот разрешил дважды менять даты в билетах бесплатно.
  • «Шахматкой» не полетим, все кресла будут заняты.
  • В Европе продолжают сниматься ограничения. Например, схема «не больше 100 километров от дома» во Франции, вроде бы, уже работает. Всё больше стран готовы пускать туристов и делают всё, чтобы скоро восстановились потоки.

Ниже детали, ещё много довольно интересных новостей, в частности, про очередной слив данных.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments4

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Registered
Activity