Pull to refresh
2
0.1

User

Send message

Что за Epyc такие? Cтранные OEM версии Epyc 2-го и 3-го поколения. Тест AMD Epyc 7C13

Level of difficultyEasy
Reading time11 min
Views17K


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

Но поскольку об этих процессорах известно мало, то я решил собрать все слухи о их параметрах, совместимости и производительности. А также купил один из них, 64-х ядерный Epyc 7С13 и протестировал в домашнем подстольном компьютере.

OEM-Эпики могут быть интересны как для создания бюджетных серверов, станций рендеринга, так и просто для энтузиастов и майнеров. Когда-то была волна домашних сборок на Xeon, возможно, сейчас, всё повторится на Epyc.

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

Парсинг котировок ценных бумаг в Microsoft Excel и Google Таблицы с любого сайта

Level of difficultyMedium
Reading time4 min
Views8K

Хотя возможность автоматического получения котировок в «Эксель» или «Гугл Таблицы» упрощает ведение портфелей, существует несколько технических препятствий, с которыми можно столкнуться при парсинге или скрапинге (в общем виде это автоматический сбор данных из интернета, в таблицах работает через формулы или скрипты):

📍 Динамическая загрузка контента: современные веб-сайты часто используют JavaScript для загрузки текущий цен уже после первоначальной загрузки страницы. Это создает проблему для базовых методов парсинга.
📍 Ограничения API: некоторые веб-сайты и финансовые учреждения предлагают общедоступные API (например, Московская биржа или Банк России), но и они имеют свои ограничения.
📍А бывает, что можно найти АПИ, например для investing.com, но чтобы воспользоваться им потребует поиск альтернативных методов - имитация человека для того чтобы получить данные - использование автоматизации браузера.

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

Парсим 🤖

Анонимная сеть Hidden Lake: переход на постквантовую криптографию

Level of difficultyHard
Reading time16 min
Views10K

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

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

Читать далее

Qt-шные прокси-модели и их друзья

Level of difficultyHard
Reading time4 min
Views1.8K

Разрабатывая приложения на Qt или PyQt/PySide2 вы рано или поздно столкнетесь с необходимостью создания собственной реализации QAbstractItemModel и/или QAbstractProxyModel. Я хочу рассказать про одну конкретную проблему, с которой я столкнулся, разрабатывая прокси-модель с возможностью группировки объектов дерева.

Читать далее

Атаки на веб-кэширование. Отравление кэша: теория и практика

Level of difficultyMedium
Reading time13 min
Views6.4K

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

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

Читать далее

Дизайн и реализация виртуальной машины CPython

Level of difficultyMedium
Reading time21 min
Views8K

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

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

Читать далее

Правила файрволов не так уж и безобидны

Level of difficultyEasy
Reading time7 min
Views7.8K

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

Под давлением ИТ отдела о важности задачи и горящих сроках, уверений, что вся работа стоит только из‑за запретов службы ИБ, вы выясняете, что сервер принадлежит компании разработчиков. И открываете доступ к данному серверу на брандмауэре. Чем это грозит? Рассказываем.

Читать далее

Inertia 2.0: Новые возможности для разработчиков

Level of difficultyMedium
Reading time4 min
Views6.2K

На конференции Laracon Тэйлор Отвел, создатель популярного PHP-фреймворка Laravel, представил Inertia.js версии 2.0 — самое крупное обновление с момента запуска этого пакета. Новая версия приносит множество полезных функций, которые значительно упростят разработку приложений на Laravel и Inertia.js.

Читать далее

Простая нейронная сеть на C++

Level of difficultyEasy
Reading time5 min
Views25K

Всем привет!

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

Читать далее

C++ с точки зрения Rust-разработчика: достоинства и недостатки

Reading time8 min
Views16K

Я профессионально программирую на Rust и, признаться, немного этот язык продвигаю. Поэтому можете себе представить глубину моего расстройства, когда моя младшая сестрёнка, почти не умеющая программировать, обратилась ко мне и попросила научить её C++. Я попытался её отговорить, сказав, что однажды она будет сидеть за отладкой ошибок сегментирования, вооружившись Valgrind и вспоминать этот наш разговор, размышляя, а где же она свернула не туда. Но она оказалась ещё упрямее меня и настаивала: хочу выучить язык программирования, которым действительно пользуются люди.

Я не притрагивался к C++ с тех пор, как ещё в старших классах разрабатывал игры на Cocos2D-X, но решил, что сохранившихся у меня туманных воспоминаний о «правиле трёх» (или сколько там было? Пять? Ноль?) и прочих подобных материях будет более чем достаточно, чтобы решить такую задачу. Оказалось, что и мне требуется кое-что подучить, но я с удовольствием узнал, что существует большая аудитория, с которой можно поделиться этими знаниями. Почти любую концепцию из C++ легко понять, если объяснить её в ключе «о, эта как та штука из Rust».

Притом, что C++ местами несимпатичен, этот язык по-своему красив. Я и так это знал, но, когда взялся заново учиться C++, мне стало только яснее: если Rust в какой-то степени и превосходит C++ (допустим, вы верите, что это так), то лишь потому, что сам Rust стоял на плечах такого гиганта как C++.

Так что мы потратили пару недель, проштудировав серию руководств по OpenGL от ютубера под ником TheCherno (кстати, сама серия отличная). Две недели спустя нам удалось на экране единственный статичный голубой квадратик. Я уже стал опасаться, а не начнёт ли моя сестра сомневаться, стоило ли таким образом изучать разработку игр и пытаться изобразить что-нибудь на C++. Так что тогда я решил, что следует отбросить руководства господина Черно и взяться за разработку игры всерьёз.

Читать далее

Nuclei Fu

Level of difficultyHard
Reading time9 min
Views2.1K

Привет, Хабр! Меня зовут Станислав Савченко, я ведущий эксперт базы знаний в CyberOK. За последний год в Nuclei было несколько крупных обновлений, которые принесли множество фич, таких как кодовая вставка, использование javascript в шаблонах, управление запросами через flow, внедрение подписи шаблонов и пр. Сегодня хотелось бы рассказать о возможных атаках на Nuclei, а именно о клиентских атаках, которые стали доступны благодаря этим нововведениям.

Читать далее

Ломаем простую «крякми» при помощи Ghidra — Часть 1

Reading time9 min
Views104K
О том, что это за зверь такой — Ghidra («Гидра») — и с чем его едят она ест программки, многие уже, наверняка, знают не понаслышке, хотя в открытый доступ сей инструмент попал совсем недавно — в марте этого года. Не буду докучать читателям описанием Гидры, ее функциональности и т.д. Те, кто в теме, уже, уверен, всё это сами изучили, а кто еще не в теме — могут это сделать в любое время, благо на просторах веба сейчас найти подробную информацию не составит труда. Кстати, один из аспектов Гидры (разработку плагинов к ней) уже освещался на Хабре (отличная статья!) Я же дам только основные ссылки:


Итак, Гидра — это бесплатный кроссплатформенный интерактивный дизассемблер и декомпилятор с модульной структурой, с поддержкой почти всех основных архитектур ЦПУ и гибким графическим интерфейсом для работы с дизассемблированным кодом, памятью, восстановленным (декомпилированным) кодом, отладочными символами и многое-многое другое.

Давайте попробуем уже что-нибудь сломать этой Гидрой!
Читать дальше →

Auth service без библиотек

Level of difficultyMedium
Reading time8 min
Views12K

О чем эта статья: статья посвящена схемам регистрации, аутентификации, авторизации пользователей в веб приложениях, смене паролей, отзыве токенов, и т. п. Мы также рассмотрим, как организовать хранение данных, обсудим, что такое JWT, коротко поговорим о «сервисе для отправки email»

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

Для кого эта статья: для тех, кто начинает осваивать методы аутентификации и авторизации в веб приложениях и хочет понять, как все устроено. Я намеренно избегал использования комплексных библиотек и фреймворков, чтобы на пальцах разобраться, какие методы нужны в Auth сервисе и как их использовать.

Читать далее

Многозадачность — как ничего не упустить без вреда для нервной системы

Reading time5 min
Views6.8K

• Существует ли предрасположенность к многозадачности? 
• Как многозадачность влияет на эффективность? 
• Что рекомендуют специалисты? 

Читать далее

Gitea и ее безопасность

Reading time4 min
Views8.7K

Рано или поздно, при работе с системой контроля версий Git у разработчиков появляется необходимость в использовании веб интерфейса. Существует несколько различных решений, предоставляющих подобный функционал, разной степени “платности”, однако, у многих разработчиков пользуется популярностью решение Gitea, о безопасности которого мы и поговорим сегодня.

Читать далее

Новый подход к саппорту: как мы переизобрели поддержку в 2024 и написали об этом книгу

Level of difficultyEasy
Reading time6 min
Views2.4K

Привет! На связи Паша и Даша из Timeweb Cloud. Мы руководим отделом информационной поддержки и развиваем систему чуткого саппорта 24/7/365. За последние годы мы кратно выросли и зарекомендовали себя в числе лучших на рынке. Рост спровоцировал появление новых проблем, поэтому мы решили трансформировать процессы в командах с нуля.

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

Читать далее

Интервью из мира хостинга: Сергей из ua-hosting.company

Level of difficultyEasy
Reading time20 min
Views5.5K

Всем привет! Меня зовут Леонид, я - владелец сервиса Поиск VPS. Сегодня я представляю вашему вниманию интервью с Сергеем - руководителем ua-hosting.company. В прошлом году состоялось открытие площадки компании в американском ЦОД Iron Mountain в Нью-Джерси. Недавно для меня провели экскурсию по дата-центру, а после мы обсудили нынешние особенности работы хостинга среднего размера и некоторые отличия европейской площадки от американской.

Читать далее

Реализуем эффективный тупль с помощью C++26

Level of difficultyMedium
Reading time7 min
Views11K

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

Многие пытливые умы на протяжении десятилетий задавались вопросом: как же реализован std::tuple, как мне реализовать свой тупль (кортеж)? [1]

И немало было дано ответов на такие вопросы и написано статей ([2]). Однако я берусь утверждать, что все они имеют один фатальный недостаток! Конкретнее, они все рассматривают в основном лишь один (и при этом неэффективный) способ реализации: с помощью множественного наследования или рекурсивного инстанцирования, имеющий в свой очередь множество своих недостатков, главный из которых — неэффективное использование памяти.

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

Войти в мир эффективных реализаций туплей

Разговор с быдло-кодером

Reading time18 min
Views6.2K

Вернемся к одному из проектов дистрибутива программной платформы SimInTeh,  который был рассмотрен в двух статьях(см. [1, 2]). Он же под именем "Управление водонагревательным котлом" включен в раздел "Лабораторные работы по библиотекам" справочной системы SimInTech. Последнее должно предъявлять к нему повышенные требования, как к примеру, поясняющему, рекламирующему те или иные стороны и возможности программной платформы. Одним словом, он должен быть идеальным ...

Только недавно одна из найденных в нем ошибок  была устранена. Но не это знаменательное событие было причиной вернуться к данной теме, а пришедшая примерно в это же время рассылка, рекламирующая возможности "новейшей российской инженерной платформы Engee". В числе прочих ее достоинств описывались включенные в платформу конечные автоматы  (КА)[3], а в видео по ссылке прослеживалась явная любовь к светофорам. Но  нагреватель в этом смысле ни чуть не хуже, а даже предпочтительнее.

Но "спусковым крючком" стал эмоциональный всплеск не самой положительной оценки данной конечным автоматам (подробнее см. [4]). Примечательно, что прозвучал он со стороны тех, кто ранее ввел этот инструментарий в свою платформу и, как можно предполагать, использует. Видимо, они лучше знают возможности своих автоматов? Но, если серьезно, то это, скорее всего, результат отмеченного "всплеска", который за истину воспринимать не стоит. Тем не менее, необходимо что-то уточнить,  чтобы учесть и такое мнение о КА. 

Итак, перед нами проект "Нагреватель" или "Управление водонагревательным котлом". Я не смог сразу найти проект в ВКПа к тем еще статьям, но, если честно, не сильно его и искал, т.к. решил, что проще создать новый. Хотелось проверить, что получится, если повторить в ВКПа автоматы, полностью аналогичные ранее созданным программным автоматам на внутреннем языке платформы SimInTech. А поскольку они были спроектированы согласно концепциям автоматного программирования, то препятствий не предполагалось. Но ... воистину - "не было этого никогда и вот опять".

Читать далее

Многопоточность в играх

Level of difficultyEasy
Reading time16 min
Views12K

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

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

Читать далее

Information

Rating
4,468-th
Registered
Activity

Specialization

Information security architect
Lead
From 15,000 $
Negotiation
C++
Qt
OOP
Linux
PHP
SQL
Nginx
High-loaded systems
Designing application architecture