Pull to refresh
-13
0

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

Send message

С чего начинается Elasticsearch

Reading time14 min
Views306K

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


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

Читать дальше →

Квантовые вычисления и криптология

Reading time28 min
Views6.8K

Развитие вычислительной техники движется по различным направлениям, не ограничиваясь явлениями классической физики, электроники, оптики и теперь уже квантовой механики.
Ознакомление с проблемой квантовой криптологии и смежными, близкими к ней (не только по публикациям), показало, что имеют место определенные недостатки и пробелы в ее описании и представлении. Описывая конкретику того или иного физического явления, объекта, автор игнорирует его окружение даже ближайшее, оказывающее на объект непосредственное воздействие (часто возмущающее влияние). Это не упрек авторам, их право излагать так как они излагают. Это скорее мой мотив включиться в общий поток сознания. Материальная вещественная сторона квантовых явлений так или иначе проявляет себя и неучет ее, может сказаться существенным негативом. Что имеется ввиду? Материальная реализация квантовых компьютеров (КК), регистров, отдельных кубитов — всего того из чего КК сделаны. Обмен пользователей полученными результатами через сети связи и, наконец, защита, целостность и доступность таких результатов от нарушителя — тоже проблемы.
Читать дальше →

Введение в DPDK: архитектура и принцип работы

Reading time11 min
Views77K
DPDK

За последние несколько лет тема производительности сетевого стека Linux обрела особую актуальность. Это вполне понятно: объёмы передаваемых по сети данных и соответствующие нагрузки растут не по дням, а по часам.

И даже широкое распространение сетевых карт 10GE не решает проблемы: в самом ядре Linux имеется множество «узких мест», которые препятствуют быстрой обработке пакетов.
Читать дальше →

Дебажим баги в дебаггере x64dbg. «Шаг с выходом» в GUI

Level of difficultyMedium
Reading time8 min
Views2K

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

Сделать шаг с выходом

Qwt и Qt Creator. Быстро и просто. Часть 1: визуализатор данных

Reading time6 min
Views95K


Для понимания этой статьи читатель должен иметь начальный опыт разработки windows-приложений в среде Qt Creator.
В примерах используются Qt Creator 3.0.0 (MinGW) и Qwt-6.1.0.


Qwt – графическая библиотека, позволяющая значительно упростить процесс визуализации данных в программе. Упрощение заключается в следующем: нет необходимости вручную прописывать элементы отображения, такие как шкалы координат, сетки, кривые данных и проч. Следует лишь задавать параметры этих элементов.
Аналогия: для того, чтобы построить график в Excel Вы выбираете данные и настраиваете параметры их отображения: минимум и максимум шкал, цвет кривых, подписи данных и др. За визуализацию отвечает Excel – сами элементы Вы не программируете.
Особо отмечу, что Qwt позволяет работать с достаточно большими объемами данных (я работал с 200 000 точек) без возникновения раздражающих «тормозов».
В данной статье мы будем отображать кривую на графике, масштабировать ее, перемещаться по графику, смотреть координаты курсора. Таким образом, мы реализуем минимальный функционал, необходимый для вывода и просмотра графиков. В последующих статьях наш графический редактор будет оснащен дополнительными возможностями.

Читать дальше →

Как за 6 промтов к ChatGPT создать Python скрипт, скачивающий видео с YouTube для просмотра на телевизоре через Kodi

Level of difficultyEasy
Reading time18 min
Views22K

Последние месяцы Ютуб работает с перебоями: через сеть мобильного оператора вроде работает, но при подключении к сети проводного интернет-провайдера чаще всего ничего посмотреть нельзя, хотя в новостях что-то промелькнуло насчёт возобновления работы, но лично у меня ничего не поменялось.

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

Раньше на Kodi можно было напрямую отправить YouTube ссылку и посмотреть любое видео. С августа 2024 года этот вариант больше не работает. Короткие видео можно посмотреть с телефона, но вот длинные интервью или подкасты так смотреть или слушать неудобно. К тому же телевизором можно управлять через Алису - она подключена к Home Assistant.

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

Разбираюсь как за 6 промтов к ChatGPT создать Python скрипт, скачивающий видео с YouTube и генерирующий описание и фанарт для Kodi.

Читать далее

Неочевидные для начинающих тонкости Postgres

Level of difficultyMedium
Reading time15 min
Views47K

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

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

За исключением… Postgres.

Не потому, что официальная документация несовершенна (она прекрасна!), просто её очень много. Если распечатать её как стандартный PDF на бумаге формата Letter, то получится 3206 страниц (для текущей версии 17)1. Разработчик-джун вряд ли сможет сесть и прочитать её с начала до конца.

1. Если печатать на бумаге A4, то получится 3024 страницы; наверно, это ещё один аргумент в пользу стандарта.

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

Надеюсь, это упростит процесс освоения для читателей моей статьи.

Стоит отметить, что многое из описанного может быть применимо и к другим системам управления базами данных (СУБД) SQL и вообще к базам данных в целом, но я слабо знакома с ними, так что не буду утверждать с уверенностью.
Читать дальше →

LaTeX vs MS.Word: где проще работать с формулами?

Level of difficultyEasy
Reading time3 min
Views6.6K

Представьте, что вы работаете над научной статьей или диссертацией, в которой очень много формул. Оформление занимает много времени, и бесконечные правки превращают процесс работы в пытку. Это хорошо знакомо многим студентам и научным работникам.

Формулы можно набирать как в Word, так и в LaTeX. Microsoft Word основан на принципе «Что видишь, то и получаешь» (WYSIWYG — What you see is what you get), что означает, что пользователь сразу же видит документ на экране таким, каким он будет отображаться на печатной странице. LaTeX, напротив, воплощает принцип «То, что вы получаете, это то, что вы имеете в виду» (WYGIWYM — What you get is what you mean), который подразумевает, что при наборе текста окончательный вариант документа не отображается непосредственно на экране, видна лишь логическая структура, благодаря чему фокус — на содержании, а не форматировании.

Читать далее

Ломаем хэши CityHash64, MurmurHash2/3, wyhash и не только…

Level of difficultyEasy
Reading time20 min
Views5.4K

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

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

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

cityhash64("orlp-cityhash64-D-:K5yx*zkgaaaaa") == 1337 murmurhash2("orlp-murmurhash64-bkiaaa&JInaNcZ") == 1337 murmurhash3("orlp-murmurhash3_x86_32-haaaPa*+") == 1337 farmhash64("orlp-farmhash64-/v^CqdPvziuheaaa") == 1337

Также я покажу, как можно создавать очень специфичные пары строк, которые можно произвольно конкатенировать таким образом, что при конкатенации k строк любая из 2k комбинаций будет иметь одинаковый хэш вне зависимости от использованного для хэш-функции порождающего значения (seed):

a = "xx0rlpx!xxsXъВ" b = "xxsXъВxx0rlpx!"
murmurhash2(a + a, seed) == murmurhash2(a + b, seed)
murmurhash2(a + a, seed) == murmurhash2(b + a, seed)
murmurhash2(a + a, seed) == murmurhash2(b + b, seed)
a = "!&orlpՓ" b = "yǏglp$X"
murmurhash3(a + a, seed) == murmurhash3(a + b, seed)
murmurhash3(a + a, seed) == murmurhash3(b + a, seed)
murmurhash3(a + a, seed) == murmurhash3(b + b, seed)

Читать далее

Делаю 3 млн в год на любителях ходить в лес с ножом

Level of difficultyEasy
Reading time10 min
Views53K

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

Так продолжалось, пока однажды я не встретил Саркосому Шаровидную.

Читать далее

Космический развод: зачем России национальная орбитальная станция?

Reading time6 min
Views111K

«Сколько световых зим! Сколько световых лет!». С вами Саша Баулин из МТС Диджитал. Недавно я писал о том, как SpaceX нарушила Договор о космосе, а сегодня расскажу, зачем России собственная станция, что нового она даст по сравнению с МКС и как поможет в высадке человека на Марс.

Международная космическая станция (МКС) — самое грандиозное сооружение в космосе. Но с 2018 года то США, то Россия поднимают вопрос ее закрытия. Похоже, жребий брошен: 2 июля 2024 года гендиректор госкорпорации «Роскосмос» Юрий Борисов утвердил график реализации проекта. Согласно ему, выведение первого модуля на орбиту планируется уже в 2027 году, а с 2028 года станция сможет принимать космонавтов. Подробности — под катом.

Читать далее

Как я писал «Вирус-бякус» на Delphi (шутка родом из конца 90-х)

Level of difficultyEasy
Reading time5 min
Views2.8K

Началось всё в самом конце 90-х годов, когда мне в руки попал диск с пиратской копией Delphi какой-торанней версии и на глаза попалась статья из Delphi World про управление лотком CD‑ROM'а. «Блин, да это же идея для вируса!», — подумал я...

Читать далее

Как объединить 5 языков программирования в одном Python проекте?

Reading time7 min
Views36K

На сегодняшний день существует несколько тысяч языков программирования, каждый из которых создавался с определенной целью, пытаясь изменить и улучшить недостатки своих предшественников. Так, например, появился язык Kotlin, который был нацелен на замену Java в мобильной разработке. В 2010 году увидел свет язык Rust, разработчики которого пытались создать быстрый и безопасный язык, который закрывал бы многие недостатки C/C++.

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

Но как объединить несколько разных языков в одном приложение, чтоб это работало?

Ознакомиться

Алгоритмы поиска путей на пальцах. Часть 2: Алгоритм Дейкстры

Level of difficultyMedium
Reading time8 min
Views5.2K

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

Теперь вы, как специалист на посту разработчика 2GIS изучили местность более подробно и поняли, что BFS не подходит для решения вашей задачи, так как дороги имеют разную протяженность и маршрут от A до B не может исчисляться в условной единице.

Читать далее

Пошаговое руководство по созданию синтетических данных в Python

Level of difficultyEasy
Reading time7 min
Views7.3K

Простое руководство для новичков: как самому генерировать данные для анализа и тестирования

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

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

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

Читать далее

SophiApp, или Как мы делали опенсорс программу для настройки Windows 10 & 11

Reading time40 min
Views38K

Я от лица команды хочу показать вам SophiApp — графический наследник Sophia Script for Windows: бесплатная, портативная и полностью опенсорная программа для тонкой настройки Windows 10 и Windows 11.

В этой статье я расскажу, как оброненная мной фраза в комментарии 3 года назад под моей статьей из цикла про тонкую настройку Windows развернула мою жизнь на 180°, а чуть позже — и еще одного человека.

Все это время у меня была идея сделать графическую версию моего модуля на PowerShell, чтобы показать пользователям, каким должен быть современный твикер для Windows, какие функции может в себе нести, а главное — посыл программы: настроить (а не оптимизировать) ОС официальным образом, задокументированным Microsoft, ничего не сломав и не обещая мнимое увеличение производительности, чем грешат аналогичные программы, целенаправленно вводя пользователей в заблуждение.

Читать далее

Как Google победил Skynet или подготовка обучения модели на мобильном устройстве

Level of difficultyEasy
Reading time8 min
Views1.7K

По мере того, как я погружался в тему машинного обучения на мобильных устройствах, я все больше ощущал какой-то заговор. Как я уже писал, простые обучалки начали исчезать из интернета несколько лет назад. А простые обучалки – это те, в которых простые модели, то есть то, что делают люди, которые только начинают разбираться в теме. Вместо этого сейчас предлагается использовать готовые датасеты вполне определенным образом, и от этого остается один шаг до использования готовых моделей. А еще, примеры для мобильных устройств на главном сайте TensorFlow устарели и не работают на современных версиях библиотеки, причем уже давно! И похоже, что скоро NPU, которые есть в каждом современном телефоне, станут для нас абсолютно бесполезными.

Читать далее

Вызовы функций в Python по прежнему медленные? Анализ последних оптимизаций в CPython

Level of difficultyMedium
Reading time11 min
Views15K

Я наткнулся на пост в X/Twitter, где Pritam обнаружил, что его решение на Leetcode работало медленнее, когда он использовал встроенную функцию min, и производительность улучшилась, когда он реализовал min прямо в своем коде на Python.

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

Автор на этом скриншоте использовал Python 2, который на данный момент уже стал древностью. За последние 10 лет Python 3 получил множество релизов, и последние версии были нацелены на улучшение производительности языка. Так действительно ли вызовы функций по‑прежнему так сильно влияют на производительность в Python?

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

Читать далее

Анализ CVE-2024-38063: удаленная эксплуатация ядра Windows

Level of difficultyHard
Reading time6 min
Views4.1K

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

Читать

10 кубиков синтаксического сахара

Level of difficultyEasy
Reading time5 min
Views14K

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

Читать далее

Information

Rating
9,992-nd
Registered
Activity