Pull to refresh
37
0
barkalov @barkalov

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

Send message

Кто круче rsync? Интересные алгоритмы для синхронизации данных

Reading time7 min
Views24K

Тридж, автор rsync

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

Если без шуток, то все знают rsync — инструмент для быстрой синхронизации файлов и каталогов с минимальным трафиком, который пришёл на замену rcp и scp. В нём используется алгоритм со скользящим хешем, разработанный австралийским учёным, программистом и хакером Эндрю Триджеллом по кличке Тридж (на фото).

Алгоритм эффективный, но не оптимальный.
Читать дальше →

Анонимный Дед Мороз 2021-2022: пост хвастовства новогодними подарками

Reading time1 min
Views10K

Какой самый частый комментарий после запуска Хабра-АДМ? Верно! "Пора делать пост Хвастовства." Что ж, пора - значит пора!

Пост Хвастовства объявляется открытым!

С НАСТУПАЮЩИМ НОВЫМ 2022 ГОДОМ!

PS: А если вам кажется, что комментариев пока слишком мало, можете посмотреть, как это было в прошлых сезонах: 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020.

Хвастаться и завидовать

Для секьюрной разработки: ролик о защите сред контейнерной оркестрации

Reading time1 min
Views1.9K

Заходите под кат смотреть видео о защите сред контейнерной оркестрации. Спецы по DevSecOps упаковали в пятиминутный ролик выжимку из NIST SP 800-190, официальной документации Kubernetes, десятки страниц материалов производителей средств защиты и свой опыт на проектах.

Будет полезно и тем, кто пишет код, и тем, кто следит за его секьюрностью.

Читать далее

Совместное использование типов TypeScript между Backend и Frontend

Reading time6 min
Views9.4K

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

Если модель данных изменяется на серверной части - убедитесь, что клиентский код подхватит эти изменения. Иначе клиентский код сильно пострадает при получении несовместимых данных, либо из-за игнорирования дополнений. А это не то, чего вы хотите.

Давайте рассмотрим стратегии синхронизации клиентского и серверного кода.

Читать далее

Заметки о дельта-роботе. Часть 5. Крутящие моменты и угловые ускорения в приводных звеньях. Точность. Выбор приводов

Reading time31 min
Views5.3K

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

Читать далее

Как обмануть автопилот PX4: настоящая HITL-симуляция на шине UAVCAN

Reading time10 min
Views8.4K

Мы разработали и хотим представить новый вариант HITL-симуляции дронов, когда автопилот может даже не знать, работает ли он с реальными датчиками на шине или же в симулируемом окружении. Набор программных модулей, работающих в «боевом» режиме и в режиме симуляции (почти) идентичен, в отличие от альтернативного MAVLINK-HITL подхода. Этот проект — наш вклад в экосистему вокруг PX4 и UAVCAN. Будем рады адоптерам и контрибьюторам.

Читать далее

30 миллиардов параметров: реально ли обучить русский GPT-3 в «домашних» условиях?

Reading time17 min
Views32K

Не так давно Сбер, а затем и Яндекс объявили о создании сверхбольших русских языковых моделей, похожих на GPT-3. Они не только генерируют правдоподобный текст (статьи, песни, блоги и т. п.), но и решают много разнообразных задач, причем эти задачи зачастую можно ставить на русском языке без программирования и дополнительного обучения — нечто очень близкое к «универсальному» искусственному интеллекту. Но, как пишут авторы Сбера у себя в блоге, «подобные эксперименты доступны только компаниям, обладающим значительными вычислительными ресурсами». Обучение моделей с миллиардами параметров обходится в несколько десятков, а то сотен миллионов рублей. Получается, что индивидуальные разработчики и маленькие компании теперь исключены из процесса и могут теперь только использовать обученные кем-то модели. В статье я попробую оспорить этот тезис, рассказав о результатах попытки обучить модель с 30 миллиардами параметров на двух картах RTX 2080Ti.

Читать далее

[Личный опыт] Куала-Лумпур, Малайзия: как русскому программисту живётся в азиатском киберпанке

Reading time11 min
Views73K


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


В итоге из Кипра он с женой переехал в Малайзию, где, спойлер, ему понравилось намно-оого больше. Про эту, во многом неизвестную в России, страну на этот раз и пойдет речь.


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

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

Как удалить «неудаляемые» приложения со смартфона

Reading time5 min
Views265K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →

DSP-процессоры: назначение и особенности

Reading time13 min
Views30K

Большинство из нас в повседневной жизни постоянно сталкивается с различными компьютерными системами: процессорами общего назначения (general-purpose, в основном x86) в ноутбуках и рабочих станциях, их мощными многоядерными версиями в датацентрах, мобильными процессорами в телефонах, многочисленными контроллерами в бытовой технике и на транспорте. Но помимо всех упомянутых вариантов есть ещё одно важное, хотя и редко упоминаемое семейство: цифровые сигнальные процессоры, чаще именуемые Digital Signal Processors или просто DSP.

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

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

Читать далее

Решаем систему линейных алгебраических уравнений с Python-пакетом scipy.linalg (не путать с numpy.linalg)

Reading time9 min
Views39K


Аппарат линейной алгебры применяют в самых разных областях — в линейном программировании, эконометрике, в естественных науках. Отдельно отмечу, что этот раздел математики востребован в машинном обучении. Если, например, вам нужно поработать с матрицами и векторами, то, вполне возможно, на каком-то шаге вам придётся решать систему линейных алгебраических уравнений (СЛАУ). 

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

Я расскажу про один из таких инструментов — Python-пакет scipy.linalg из библиотеки SciPy, который позволяет быстро и эффективно решать многие задачи с использованием аппарата линейной алгебры.

В этом туториале вы узнаете:

  • как установить scipy.linalg и подготовить среду выполнения кода;
  • как работать с векторами и матрицами с помощью NumPy;
  • почему scipy.linalg лучше, чем numpy.linalg;
  • как формализовать задачи с использованием систем линейных алгебраических уравнений;
  • как решать СЛАУ с помощью scipy.linalg (на реальном примере).

Если можно — сделай тут habraCUT! Важно, чтобы этот ^^ список люди прочитали и заинтересовались

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

Если готовы к этому — приглашаю под кат. Хотя, честно говоря, некоторые разделы можно пропускать — например, основы работы с векторами и матрицами в NumPy (если вы хорошо знакомы с ним).
Читать дальше →

Где рассказать о своем ИТ-проекте на английском без усилий и затрат: гайд по листингу на Product Hunt

Reading time7 min
Views4.3K

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

Читать далее

KODI: собираем удобный и функциональный медиацентр для дома. Часть 3. Ретро-игры

Reading time4 min
Views37K

Продолжаем строить домашний медиа-комбайн на Kubuntu с KODI на борту. Сегодня научим его запускать ретро-игры и позволим себе немного поностальгировать по Darkwing Duck на SEGA и Grand Theft Auto или Gran Turismo на Playstation 1.

О том, как разворачивался сам медиацентр, как его настраивали и какими дополнительными возможностями он оброс читайте в предыдущих публикациях - часть 1, часть 2.

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

Стики и работа с Event System в Unity 3D

Reading time4 min
Views6.1K

Этот материал состоит из двух частей:

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

Познакомимся с использованием Event System в разрезе работы с UI и реализации пользовательской обработки реакции на указатель мыши/тачпада.

Далее, перейдем ко второй, где создадим скрипт, реализующий доступ к другим объектам посредством Event System.

По ходу дела, попробуем свои силы в работе со static-переменными для реализации удобной имплементации модулей в проект, и узнаем о глобальных и локальных координатах RectTransform.

Обе части занятия являют собой продолжение работы над проектом "Жидкий персонаж".

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

Читать далее

Docker Compose: от разработки до продакшена

Reading time5 min
Views22K

Перевод транскрипции подкаста подготовлен в преддверии старта курса «Администратор Linux»





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

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

Linux tuning to improve PostgreSQL performance. Илья Космодемьянский

Reading time19 min
Views18K

Расшифровка доклада 2015 года Ильи Космодемьянского "Linux tuning to improve PostgreSQL performance"


Disclaimer: Замечу что доклад этот датирован ноябрем 2015 года — прошло больше 4 лет и прошло много времени. Рассматриваемая в докладе версия 9.4 уже не поддерживается. За прошедшие 4 года вышло 5 новых релизов PostgreSQL вышло и 15 версий ядра Linux. Если переписывать эти места, то получится в итоге другой доклад. Но здесь рассмотрен фундаментальный тюнинг Linux для PostgreSQL, который актуален и сейчас.


Безопасная работа с секретами при сборке в Docker Compose

Reading time5 min
Views13K
Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python».




Когда вы собираете Docker-образ вам могут понадобиться секреты, например, пароль к приватному репозиторию пакетов. Вы не хотите, чтобы этот секрет в конечном итоге оказался в образе, потому что тогда любой, кто получит доступ к образу, получит доступ и к вашу приватному репозиторию.
Примечание: Если вы думаете «Почему бы просто не использовать переменные среды?», которые используются для секретов в рантайме при создании образа. Эта статья посвящена секретам сборки, которые используются при создании образа с помощью Docker-файла.
Более новые версии Docker поддерживают секреты с помощью экспериментального сервиса BuildKit, а в Docker Compose 1.25 и более поздних версиях уже можно создавать образы с помощью BuildKit. К сожалению, по состоянию на март 2020 года, возможность безопасной работы с секретами из Compose все еще находится в процессе разработки.
Читать дальше →

Вывод типов в TypeScript с использованием конструкции as const и ключевого слова infer

Reading time5 min
Views57K
TypeScript позволяет автоматизировать множество задач, которые, без использования этого языка, разработчикам приходится решать самостоятельно. Но, работая с TypeScript, нет необходимости постоянно использовать аннотации типов. Дело в том, что компилятор выполняет большую работу по выводу типов, основываясь на контексте выполнения кода. Статья, перевод которой мы сегодня публикуем, посвящена достаточно сложным случаям вывода типов, в которых используется ключевое слово infer и конструкция as const.


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

Открытие портов 4321 и 9898 на шлюзе Xiaomi Gateway 2

Reading time3 min
Views32K

Введение


Отдыхая на новогодних праздниках, я загорелся идеей создания «Умного дома». Среди «народных» экосистем наиболее популярным в силу дешевизны и обилия всевозможных подключаемых устройств мне сразу показалось решение от Xiaomi. Сразу отказавшись от управления своим домом через китайские сервера (возможные задержки, безопасность и привязка к устройствам одного производителя), я принялся изучать всевозможные системы управления умным домом и подбирать для них совместимое оборудование.

После часов поисков я решил, что мне подходит Home Assistant. Строить всё на начальном этапе я решил с использованием Raspberry Pi 4 Model B (2GB) и датчиков от Xiaomi. Купив шлюз (нужна версия с артикулом DGNWG02LM) и включив протокол связи локальной сети, я столкнулся с тем, что порты 4321 и 9898, необходимые для интеграции в Home Assistant, по-прежнему остались закрытыми.
Читать дальше →

15 лучших и крупнейших библиотек иконок

Reading time3 min
Views37K


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

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity