Pull to refresh
37
0
barkalov @barkalov

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

Send message

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

Reading time7 min
Views22K

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

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

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

Алгоритм эффективный, но не оптимальный.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments10

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

Reading time1 min
Views9.9K

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

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

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

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

Хвастаться и завидовать
Total votes 72: ↑71 and ↓1+70
Comments359

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

Reading time1 min
Views1.9K

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

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

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

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

Reading time6 min
Views8.9K

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

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

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

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments8

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

Reading time31 min
Views4.8K

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

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

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

Reading time10 min
Views7.1K

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

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

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

Reading time17 min
Views30K

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

Читать далее
Total votes 42: ↑41 and ↓1+40
Comments41

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

Reading time11 min
Views70K


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


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


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

Читать дальше →
Total votes 72: ↑67 and ↓5+62
Comments64

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

Reading time5 min
Views248K


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

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

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

Всё это надо зачистить.
Читать дальше →
Total votes 190: ↑179 and ↓11+168
Comments203

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

Reading time13 min
Views25K

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

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

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

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

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

Reading time9 min
Views35K


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

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

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

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

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

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

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

Если готовы к этому — приглашаю под кат. Хотя, честно говоря, некоторые разделы можно пропускать — например, основы работы с векторами и матрицами в NumPy (если вы хорошо знакомы с ним).
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments4

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

Reading time7 min
Views4.2K

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

Читать далее
Total votes 22: ↑20 and ↓2+18
Comments4

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

Reading time4 min
Views33K

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

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

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

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

Reading time4 min
Views5.8K

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

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

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

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

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

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

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

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

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

Reading time5 min
Views20K

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





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

Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments12

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

Reading time19 min
Views17K

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


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


Total votes 17: ↑17 and ↓0+17
Comments5

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

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




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

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

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


Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments4

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

Reading time3 min
Views31K

Введение


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

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

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

Reading time3 min
Views34K


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

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments12

Information

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