Search
Write a publication
Pull to refresh
117
0
Сергей Дегтярев @degs

User

Send message

Неравенства Белла — физика и математика

Reading time12 min
Views32K

Эта статья - очередная попытка популярно изложить суть неравенства Белла и парадокса Эйнштейна-Подольского-Розена. Статьи, которые мне попадались ранее, либо сходу начинали с физических формул. и содержали кучу бра-кетов, тензорных произведений и прочих эрмитовых операторов. Что не способствовало пониманию среди широкой аудитории (вроде меня). Либо содержали довольно простые математические рассуждения, но непонятно как соотносящиеся с реальными физическими экспериментами. Либо были недостаточно подробными (в стиле «видите 2 линии на графике? Что и требовалось доказать»). Либо вообще неверными! Когда автор берет три независимых квантовых параметра и из-за ошибки в рассуждениях приходит к выводу, что это будет чем-то принципиально отличаться от трёх самых обычных случайных величин-«монеток».

Последнюю статью я сам считал неплохой иллюстрацией ЭПР-парадокса, пока до меня не дошло что в ней ошибка. После чего я решил наконец разобраться с «парадоксом» раз и навсегда.

Разбираться будем вместе под катом

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

Reading time5 min
Views277K


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

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

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

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

Подборка: 7 Chrome-расширений для обхода блокировок

Reading time3 min
Views966K


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

Linux в режиме реального времени

Reading time6 min
Views46K


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

При этом разные события имеют различные временные требования. Например, требование к задержке для антиблокировочной тормозной системы может составлять от 3-5 миллисекунд. То есть с момента, когда колесо впервые обнаруживает, что оно скользит, у системы, управляющей антиблокировочными тормозами, есть от 3-5 миллисекунд, чтобы отреагировать и исправить ситуацию.

Возможности ядра в реальном времени существует уже более десяти лет в экосистеме программ с открытым исходным кодом. Столько же времени доступна поддержка Red Hat Enterprise Linux (RHEL) для ядра реального времени. Тем не менее многие системные администраторы неверно истолковывают его основные концепции и фактическое рабочее поведение. В этой статье я опишу некоторые из его основных функций, отличия от стандартного ядра и шаги по установке.
Читать дальше →

Листовые материалы в корпусостроении — обзор и технологии

Reading time11 min
Views26K
В очередной раз наткнувшись на картинку прекрасного электронного поделия в адском корпусе из соплеметного клея и картона я понял что держаться нету больше сил: надо пилить статью про корпуса, доступные всем. И немедленно выпил начал. Но быстро устал, ибо нельзя объять необъятное, особенно разом в одной статье. Так мгновенный импульс преобразовался в замысел цикла статей по домашним и околодомашним корпусам, доступным если не всем, то многим. И начать я решил с листовых материалов — как с ними работать, какие они бывают, что с ними можно и чего нельзя, ну и немножко — как из полученного добра сложить корпус.


Источник

Кого заинтересовало, прошу под кат.
Читать дальше →

Open Book: проект по сборке свободного eReader с паяльником в руках

Reading time3 min
Views17K

Разработчик Джои Кастильо (Joey Castillo), автор проекта Open Book, представил набор элементов, включая железо и ПО, из которых можно собрать электронную книгу под себя. Все эти элементы, как софт, так и компоненты, разрешено модифицировать с любой целью, поскольку они распространяются под свободной лицензией.

Разработчик собрал средства, которых ему хватило на заказ 100 печатных плат. За производство этих плат взялась команда Adafruit, а продавать их после готовности начали в Digi-Key. Стоимость платы составляет около $15, к ней прилагаются инструкции по сборке электронной книги — обойтись лишь отверткой не получится, нужен паяльник и хотя бы минимальный навык пайки.

H1N1 — от испанки до наших дней: «нулевой мальчик» и пандемии

Reading time15 min
Views36K

О, испанка… эта всемогущая, всеизвестная и всеописанная эпидемия гриппа. Формально все началось с неё: каждый третий человек на планете заболел и каждый шестой из заболевших умер от инфекции, перешедшей в легкие. Полмиллиарда больных быстро напомнили нам об убожестве собственного прогресса перед лицом нескольких изменений в геноме единственного вируса. Но кто из вас, любопытные вы мои, вообще знает о том, что такое грипп? Откуда взялась испанка до того, как попала к нам? Чем мы болеем сейчас? С чего мы взяли, что она была первой? Что обозначают эти “птичьи” и “свиные” штаммы? Куда испанка исчезла (если исчезала) и что оставила после себя? Какой сопливый и кашляющий путь лежит от H1N1 до H18 и N11 - сколько миллионов жертв? Эпидемии или пандемии? Как мы болеем? И что вообще, чёрт его подери, с этими вирусами происходит?

Читать далее

Можно ли генерировать случайные числа, если мы не доверяем друг другу? Часть 1

Reading time9 min
Views6.5K

Привет, Хабр!

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

Зачем вообще нужно генерировать случайные числа участникам, не доверяющим друг другу? Одна из областей применения -- это децентрализованные приложения. Например, рассмотрим децентрализованное приложение, которое принимает ставку от участника и либо удваивает сумму с вероятностью 49%, либо забирает с 51%. Приложение будет работать только если алгоритм может непредвзято получить случайное число. Если злоумышленник сможет повлиять на результат или предсказать случайное число, и даже незначительно увеличить свой шанс получить выплату в приложении, он получит возможность опустошить его.

Когда мы разрабатываем распределенный протокол генерации случайных чисел, мы хотим, чтобы он обладал тремя свойствами:

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

Он должен быть непредсказуемым. Другими словами, ни один участник не должен иметь возможность предугадать, какое число будет сгенерировано (или вывести какие-либо его свойства) до того, как оно будет сгенерировано.

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

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

Читать далее

Кунг-фу стиля Linux: удобная работа с файлами по SSH

Reading time8 min
Views51K
Если у вас имеется больше одного Linux-компьютера, то вы, вероятно, постоянно пользуетесь ssh. Это — отличный инструмент, но мне всегда казалась в нём странной одна деталь. Несмотря на то, что ssh-соединения позволяют передавать файлы с применением scp и sftp, у нас нет возможности перемещать файлы между локальной и удалённой системой, не запуская программу на локальном хосте, или не подключаясь к локальной машине с удалённой.



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

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

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

C++20. Coroutines

Reading time33 min
Views69K

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


image

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

Gnuplot и с чем его едят

Reading time11 min
Views63K

Наверняка многие из вас листая западные научные издания видели красивые и простые графики. Возможно некоторые из вас задумывались в чём же эти учёные мужи визуализируют свою данные. И вот есть шикарный и очень простой инструмент для построения графиков, который есть практически везде: Windows, linux, android, и прочих, уверен даже есть под ДОС. Он надёжен, прост и позволяет представить в виде красивых графиков любые текстовые-табличные данные.

Ядерный шелл поверх ICMP

Reading time9 min
Views16K


TL;DR: пишу модуль ядра, который будет читать команды из пейлоада ICMP и выполнять их на сервере даже в том случае, если у вас упал SSH. Для самых нетерпеливых весь код на github.

Осторожно! Опытные программисты на C рискуют разрыдаться кровавыми слезами! Я могу ошибаться даже в терминологии, но любая критика приветствуется. Пост рассчитан на тех, кто имеет самое приблизительное представление о программировании на C и хочет заглянуть во внутренности Linux.

В комментариях к моей первой статье упомянули SoftEther VPN, который умеет мимикрировать под некоторые «обычные» протоколы, в частности, HTTPS, ICMP и даже DNS. Я представляю себе работу только первого из них, так как хорошо знаком с HTTP(S), а туннелирование поверх ICMP и DNS пришлось изучать.
Читать дальше →

С++ Concept-Based Polymorphism в продуктовом коде: PassManager в LLVM

Reading time9 min
Views8.3K
Сегодня речь пойдет про одну интересную идиому, которую ввел Шон Парент (Adobe) — известный деятель в C++-сообществе. Он часто выступает с докладами и публикует цикл статей Better Code. Одна из его идей, которую используют в Photoshop — это Concept-Based Polymorphism. Это когда мы реализуем полиморфизм не через явное наследование, а с помощью техники, включающей обобщенное программирование, и по итогам получаем некоторые дополнительные преимущества.

Статья устроена следующим образом:

  1. Что вообще такое Concept-Based Polymorphism и зачем он нужен
  2. Немного про LLVM и ее устройство
  3. Пример Concept-Based Polymorphism в LLVM PassManager
  4. Преимущества подхода



Картинка, иллюстрирующая тезис «Наследование — это зло». Источник
Читать дальше →

Systemd и контейнеры: знакомство с systemd-nspawn

Reading time8 min
Views23K
PR-1505-3

Контейнеризация сегодня — одна из самых актуальныx тем. Количество публикаций о таких популярных инструментах, как LXC или Docker, исчисляется тысячами, если не десятками тысяч.
В этой статье бы хотели мы обсудить ещё одно решение, о котором публикаций на русском языке пока что мало. Речь идёт о systemd-nspawn — инструменте для создания изолированных сред, который является одним из компонентов systemd. А закрепление systemd в качестве стандарта в мире Linux — уже свершившийся факт. В свете этого факта есть все основания полагать, что в ближайшее время сфера применения systemd-nspawn существенно расширится, и познакомиться с этим инструментом поближе стоит уже сейчас.
Читать дальше →

systemd десять лет спустя. Историческая и техническая ретроспектива

Reading time18 min
Views51K
Десять лет назад был анонсирован systemd, который устроил революцию в управлении системой дистрибутивов Linux, тем самым разделив пользователей Linux на несколько лагерей. Качество и природа дебатов не сильно улучшилась со времён пламенных войн 2012-2014 годов, и systemd всё ещё остаётся не до конца понятым и изученным инструментом и с технической, и с общественной стороны, несмотря на пристальное внимание к нему сообщества.

Это пост не совсем о том, как пользоваться systemd. Тут, скорее, будет говориться об истории его возникновения, о его компонентах в целом, и о том, как понять систему, которая начиналось как просто PID 1 и стала тем, что я бы назвал middleware современного дистрибутива Linux.

А может, это просто набор крайне вольных переводов различных материалов с блогов, каналов и статей на Arch wiki. Вам решать.

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

Но прежде чем начать речь о systemd, хочу рассказать об init.
Читать дальше →

Transparent coroutines

Reading time20 min
Views3.1K

Когда мне становится грустно, я пишу никому не нужные библиотеки…
Ссылка на исходный код:



В интернете полно статей про сопрограммы (coroutines) и хабр эта тема не обошла стороной. Вот например, замечательные статьи: Использование Boost.Asio с Coroutines TS, Основы Userver — фреймворка для написания асинхронных микросервисов, но все это становится бесполезно, когда в сопрограмме вам необходимо вызвать функцию из библиотеки, которая делает блокирующий ввод/вывод.


Встречайте еще одну никому ненужную библиотеку: yurco — библиотека, которая поможет встроить сопрограммы прозрачно для стороннего кода. Данная статья написана с расчетом на то, что читатель знает, что такое сопрограммы (coroutine) и хотя бы примерно представляет как они реализованы.

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

Маленькие задачи по физике

Reading time12 min
Views35K
Приведу несколько задач, в основном из физики. Мне они нравятся. Надеюсь они понравятся и Вам.

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

Для большинства задач я не привожу решения. Самое полезное – найти самому решение. Конечно, задачи не для профессионального физика, исключая задачу о ленте и о пушке.

Большинство задач, так или иначе, обсуждалось в Internete. Но время идет и приходят новые поколения и, может быть, для них задачи будут в новинку.
Читать дальше →

Руководство по FFmpeg libav

Reading time24 min
Views103K

Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg-подобную библиотеку, известную как libav (название расшифровывается как library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg libav точно достоин изучения.

Оглавление


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

YouTube — Ошибка. Повторите попытку позже. Идентификатор воспроизведения: <...>

Reading time3 min
Views256K


Чуть больше месяца назад стал замечать, что почти каждая попытка посмотреть видео с YouTube на десктопном компьютере начинается с сообщения об ошибке.

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

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

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

Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности

Reading time8 min
Views401K
Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась.

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


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

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity