All streams
Search
Write a publication
Pull to refresh
60
0

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

Send message

Нецелевое использование assert-функций в TypeScript

Reading time6 min
Views10K

Это ужасный (но очень полезный) хак, который я придумал для добавления типов в старый код. Вчера мой коллега, работающий над добавлением типов в одну из наших основных библиотек на LinkedIn, спросил меня, как быть со старым (и уже не рекомендуемым) паттерном. В качестве одного из вариантов решения мы попробовали применить assert-функцию. вразрез с её предназначением. В конечном итоге нам не удалось добиться конкретно желаемого 1, но мне этот паттерн показался достаточно интересным, чтобы им поделиться.
Читать дальше →

Pulsar на KubeSphere. Установка платформы распределённого обмена сообщениями и потоковой передачи данных

Reading time7 min
Views2K

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

KubeSphere — контейнерная платформа с открытым исходным кодом на базе Kubernetes, которая предоставляет пользователям ориентированный на приложениях опыт. В связи с этим она обладает полным набором инструментов для разработчиков, позволяющих управлять приложениями на протяжении всего их жизненного цикла. В этой статье в качестве примера я продемонстрирую, как установить Apache Pulsar на кластере KubeSphere. Apache Pulsar, облачный нативный инструмент распределённого обмена сообщениями и потоковой передачи данных, представляет собой передовую платформу для обеспечения нужд предприятий в потоковой передаче событий в реальном времени.
Читать дальше →

Агломерация Мехико: воды, дайте нам воды

Reading time19 min
Views34K
Что мы знаем о современной Мексике? Помимо бежавшего туда Льва Троцкого и его романа с Фридой Кало, мексиканской революции, ступенчатых пирамид, авокадо да обжигающей уличной еды с тако и буррито? Между тем, это крупнейшая страна испаноязычного мира, а её столица — агломерация Мехико с 22 млн населением, являет собой яркий пример «моста» между развитым миром северных соседей и оставшейся Латинской Америкой. Однако трудно было представить более неудачного места расположения столь крупного антропогенного образования — дно высохшего озера, постоянные наводнения и угроза землетрясений. А ещё добрая половина населения этой агломерации живёт в неформальном жилье без центрального водоснабжения, полагаясь на автоцистерны (pipas). Давайте разбираться в этом городе-парадоксе, построенном когда-то на воде, а сегодня так остро в ней нуждающемся.

Районы неформального жилья в Naucalpan de Juárez, северо-западном пригороде агломерации Мехико. Источник: Iwan Baan, National Geographic
Читать дальше →

День Нептуна. Вспоминаем загадочную Windows Neptune

Reading time8 min
Views20K

Представление о том, что в Microsoft создают операционные системы последовательно, одну за одной, как эпизоды в телесериале (да и те далеко не всегда снимают по порядку) — не совсем верно. Работа над следующей версией Windows порой стартует едва ли не одновременно с началом разработки текущей, просто занимаются этими проектами разные команды. Так произошло и в самом конце 90-х: ещё не вышла легендарная Windows 2000, а в Microsoft уже вовсю проектировали ОС, которая должна была прийти ей на смену. Так появился проект Neptune — самая загадочная версия Windows, которую всё ещё можно отыскать на торрентах, установить и протестировать на своём компьютере.
Читать дальше →

Безопасность в компании: хоть в лоб, хоть по лбу

Reading time8 min
Views10K
Когда-нибудь ты станешь немощен и слаб —
Делай бэкап, давай делай бэкап,
На случай, если укусит радиоактивный краб —
Делай бэкап, давай делай бэкап!
НТР


Только не так!

31 марта весь айтишный мир готовится к 1 апреля. Нет, в компаниях не разрисовывают красным кетчупом пол, не обводят мелом контуры тел, не перетыкают мышки и даже уже не заклеивают лазеры. Всё в прошлом — ну почти. Все готовятся к ненормальному дню атак и таким образом отмечают день бэкапа. И можно каждый год (месяц, день) писать про резервное копирование на Хабре, развешивать плакаты о необходимости бэкапов и инфобеза, но под клавиатурой коллеги всегда найдётся листочек с хитрым паролем qwerty123, в браузере — куча незащищённых платёжных средств, а пароль на вход в CRM и вовсе будет пустым (логин, конечно, admin). Всё потому что компаниям, особенно в секторе малого и среднего бизнеса, затраты на безопасность кажутся роскошью, а не средством выживания. А зря. Как показали панельные беседы на ЦИПР-2021, для современных злоумышленников практически нет преград, они в своём развитии могут основательно опережать средства защиты информации и IT-инфраструктуры: им даже воздушный зазор не помеха. Так вы хоть бэкап-то сделайте, а?
Читать дальше →

Кунг-фу стиля Linux: простые конвейеры

Reading time9 min
Views15K
В былые времена компьютеры делали по одному делу за раз. В буквальном смысле. В компьютер загружали перфокарты, или перфоленту, или что-нибудь другое, и нажимали на кнопку. Компьютер читал программу, выполнял её и выдавал результаты. Потом он «засыпал», пребывая в таком состоянии до тех пор, пока ему не дадут новых входных данных.



Проблема тут в том, что компьютеры, особенно — тогда, были дорогим удовольствием. И, в случае с обработкой типичной программы, компьютеры тратят много времени, ожидая чего-то вроде помещения в них следующей перфокарты, или момента, когда магнитная лента дойдёт до нужного места. В таких случаях компьютер, фигурально выражаясь, в нетерпении стучит ногами, ожидая следующего события.
Читать дальше →

Обработка данных криптовалютного рынка в RavenDB с использованием временных рядов

Reading time10 min
Views4.6K
Что если можно было бы хранить данные временных рядов вместе с «обычными» данными, избавившись от затрат времени, сил и ресурсов, связанных с использованием отдельной СУБД?

RavenDB — это документо-ориентированная NoSQL-база данных, оснащённая стандартной поддержкой работы с временными рядами. То есть — получается нечто вроде MongoDB со встроенной InfluxDB. Это позволяет применять RavenDB для хранения и обработки данных, получаемых с финансовых рынков. В частности — строить графики цены Bitcoin с использованием C# и TypeScript.

Вот 5-минутное видео, в котором приведено сравнение поддержки временных рядов в RavenDB с их поддержкой в других подобных системах.

В этом видео идёт речь об интересных рыночных данных и о построении ценовых графиков по образцу популярного приложения для трейдинга, разработанного компанией Robinhood. Данный материал посвящён разбору демонстрационного приложения. Когда вы его освоите, вы должны получить представление о том, как работать с временными рядами в RavenDB.
Читать дальше →

Сам себе РКН или родительский контроль с MikroTik (ч.3)

Reading time11 min
Views15K


В конце 2021 года был опубликован цикл статей, посвящённый родительскому контролю на оборудовании MikroTik. Ранее были подробно рассмотрены организация DNS, работа Firewall Filter и Ip Kid-control, возможности маркировки трафика посредством Firewall Mangle для решения указанной задачи. Представленные предложения базировались на факте неизменности MAC адресов детских беспроводных устройств. Это позволяло осуществить статическую привязку IP адресов. Однако современные мобильные операционные системы рандомизируют MAC, тем самым делая предложенные алгоритмы нежизнеспособными. Вследствие этого подготовлена третья часть из цикла статей, в которой к представленному ранее решению прикручен протокол Radius. Его применение нивелирует озвученную проблему.

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

Георадар — как способ увидеть «подземный мир»

Reading time12 min
Views42K

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

Хостинги в 2030: мечты, прогнозы и суровая реальность

Reading time6 min
Views6.9K
1 марта — день хостинга. Это день, когда мы обматываемся оптоволокном, чокаемся с серверными стойками, танцуем с бубнами, отбиваем DDoS-атаки и прочие проникновения, желаем друг другу 100% аптайм и адекватный SLA, а вечером падаем без сил: кто на ночное дежурство в дата-центрах, кто в скрипты, администрирование и прочую суету. В общем, самый обычный день хостера. Потому что в любой момент мы работаем для тех, кто нам доверяет и не имеем права выбирать один выходной из 365 дней. Почти весь февраль мы думали, какими могут быть хостинги в 2030, что там, за новым десятилетием? Получилось по-разному. 


Кстати, «зелёные» хостинги — одна из задач будущего. Все бы проблемы вот так решать! 
Читать дальше →

Скоростная съёмка процессов

Reading time8 min
Views12K

Уже с появлением первой фиксации происходящего на пленку – у людей появилось желание запечатлеть не только нечто примечательное, но и что-то, очень быстропротекающее: молнию, падающую каплю воды и т.д. С совершенствованием техники возможности увеличивались, и появилась возможность детально снимать даже весьма быстрые процессы – вроде взрыва атомной бомбы. В этой статье мы постараемся обзорно изучить съёмку быстрых процессов, и как она осуществляется.
Читать дальше →

Ученые пытаются «заглянуть» в черную дыру

Reading time5 min
Views11K

Энрико Ринальди, физик-исследователь из Мичиганского университета, использует квантовые вычисления и глубокое обучение для решения квантовых матричных моделей, которые могут описать гравитацию внутри черной дыры. Эти два метода моделирования проиллюстрированы изображением выше. Глубокое обучение представлено в виде графов из точек (нейронная сеть), а квантовая цепь в виде линий, квадратов и кругов (кубиты и вентили). Эти модели сливаются с каждой стороной искривленного пространства-времени, отражая тот факт, что из них возникают свойства гравитации. В данный момент Ринальди трудится в лаборатории теоретической квантовой физики при Институте физико-химических исследований RIKEN в Токио.
Читать дальше →

Kincony KC868-A8: старший брат из Ханчжоу. Часть 2. Программируем A8

Reading time10 min
Views8.6K


В прошлой статье мы познакомились с контроллером Kincony KC868-A8 и его схемотехникой, в этой статье мы разберём программирование его функциональных блоков (входов, реле, температурных датчиков, Ethernet интерфейса и т. д.). Примеры кода из этой статьи вы сможете использовать в своих проектах на KC868-A8.

Мне нравится и Kincony KC868-A4 и KC868-A8, но наш сегодняшний подопытный с его 8-ю цифровыми входами, 8-ю реле на борту, I2C разъёмом и Ethernet интерфейсом смотрится значительно более внушительно и так и просится в какой-нибудь проект по домашней автоматизации. Поэтому мне было интересно разобраться, что там и как устроено, и как всем этим можно управлять.

Разбор программирования KC868-A8 мы начнём с распиновки ESP32 и выяснения, что и как к нему подключено инженерами компании Kincony.
Читать дальше →

Экспериментальная разработка эксплойта для Use-After-Free

Reading time11 min
Views6.8K

Пошаговая реализация эксплойта для уязвимости CVE-2021-23134, включая описание используемых для этого инструментов. Это мой первый опыт разработки эксплойта для ядра – так что здесь вы вполне можете заметить некоторые ошибки, за которые я заранее извиняюсь.
Читать дальше →

Филипп Кан: человек, научивший телефон фотографировать

Reading time5 min
Views13K


«Я на телефон сфотографирую». Человек середины или даже конца XX века, услышав подобное, решил бы, что крыша собеседника улетела в неведомые дали. В наши дни телефон без фото- и видеокамеры — ретро или экзотика. Камерами оснащаются даже простейшие кнопочные «звонилки».

Как вообще возникла идея засунуть фотоаппарат в телефон, ещё в 80-е звучавшая откровенно фантастично и киберпанково?
Читать дальше →

Отдаю NFT за 880 миллионов долларов

Reading time12 min
Views46K
«Код — это единственный закон, которому подчиняются цифры»

Если вы читаете этот текст, но ни разу не слышали про NFT, то, наверное, вы моя мама (мама, привет). Про этот феномен уже должен был кто-то написать человеческим языком без пустых восторгов и пересказывания мифов, но, похоже, эту траншею придётся копать мне. Странная штука: чем больше народу обсуждает NFT, тем ниже процент понимающих хоть что-то. Изначально этот материал задумывался как короткий обзор в духе «А король-то голый!», но по мере изучения проблемы, становилось всё яснее, почему так сложно сформировать собственное мнение относительно происходящего безумия.

Неприятность ситуации заключается в том, что широко тиражируемое объяснение смысла NFT является наглой ложью, в противовес которой пока не сформировалось имеющее вес экспертное мнение. Человек с ра́звитым критическим мышлением чувствует в происходящем нечто, мягко говоря, подозрительное, но объективное суждение требует подробного анализа устройства этой системы, который могут осуществить «немногие лишь те», кто обладает хорошими знаниями в разных областях. Так что, как говорится, давайте раскидаем всё по фактам. Информации по теме получилось много, в этот раз будут основные моменты, а в последующих статьях копнём глубже и разберём практические аспекты.
Читать дальше →

Kincony KC868-A4: ультимативный гайд. Часть 2. Программирование компонентов

Reading time18 min
Views11K


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

Начнём мы с распиновки центрального модуля ESP32-S и разбора того, что и как подключено к нему инженерами компании Kincony.
Читать дальше →

Psion PDA — как он выглядит сегодня?

Reading time9 min
Views9.6K

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

Как создавать уникальные лабиринты

Reading time11 min
Views18K

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

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

Знакомимся с программированием на ассемблере x86

Reading time17 min
Views58K

Архитектура x86 лежит в сердце процессоров, на которых уже более трех десятилетий работают наши домашние компьютеры и удаленные серверы. Умение читать и писать код на низкоуровневом языке ассемблера – это очень весомый навык. Он позволяет создавать более быстрый код, использовать недоступные в Си возможности машин и выполнять реверс-инжиниринг скомпилированного кода.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity