Pull to refresh
-4
Эдуард Зиганшин @e-zigread⁠-⁠only

Разработка электроники

Send message

Индуктивная статистика: доверительные интервалы, предельные ошибки, размер выборки и проверка гипотез

Level of difficultyMedium
Reading time15 min
Views17K

Одной из самых распространённых задач аналитики является формирование суждений о большой совокупности (например, о миллионах пользователей приложения), опираясь на данные лишь небольшой части этой совокупности - выборке. Можно ли сделать вывод о миллионной аудитории крупного мобильного приложения, собрав данные 100 пользователей? Или стоит собрать данные о 1000 пользователях? Какую вероятность ошибиться при анализе мы можем допустить: 5% или 1%? Относятся ли две выборки к одной совокупности, или между ними есть ощутимая значимая разница и они относятся к разным совокупностям? Точность прогноза и вероятность ошибки при ответе на эти и другие вопросы поддаются вполне конкретным расчётам и могут корректироваться в зависимости от потребностей продукта и бизнеса на этапе планирования и подготовки эксперимента. Рассмотрим подробнее, как параметры эксперимента и статистические критерии оказывают влияние на результаты анализа и выводы обо всей совокупности, а для этого смоделируем тысячу A/A, A/B и A/B/C/D тестов.

Читать далее

Мастер-класс по съемке и сшивке панорамных изображений

Reading time12 min
Views5.2K

Введение

В первую очередь статья будет касаться сферических панорам, но этими же правилами необходимо руководствоваться при съемке и склейке "обычных" широкоформатных панорам.

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

Читать далее

Числа и байты: как работает память в Linux?

Level of difficultyHard
Reading time27 min
Views26K
image

Часть первая: физическая память


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

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →

Мегагайд: культура работы с Git

Level of difficultyEasy
Reading time16 min
Views43K

Привет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

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

Читать далее

Введение в нейросети: что, зачем и как?

Level of difficultyMedium
Reading time25 min
Views55K

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?

Территория Большого Взрыва. От трёх китов к изначальной сингулярности

Level of difficultyEasy
Reading time11 min
Views7.4K

Представляю вниманию уважаемого сообщества вторую статью из серии «Территория Большого взрыва». От современного устройства Вселенной, описанного в первой части, перейдём к эволюции представлений человечества о её устройстве от древности до теории Большого взрыва. Взглянем на эту теорию в её классическом виде и обозначим её основные проблемы и противоречия

Читать далее

Территория Большого Взрыва. Как устроена Вселенная и что с ней не так?

Level of difficultyEasy
Reading time15 min
Views54K

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

Рад поделиться с уважаемым сообществом своей любовью к популярной науке, в первую очередь, к космологии. Эта статья открывает небольшую серию, основанную на моём курсе лекций, который я читаю школьникам в летней школе Химера.
И который до сих пор был кипой листов А4, исписанных от руки буквально в лесу под деревом.

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

Читать далее

Не всё так просто с луддитами, как кажется

Level of difficultyEasy
Reading time24 min
Views21K

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

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

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

Читать далее

Стандартное отклонение и стандартная ошибка: две статистики с похожими названиями, но разными смыслами

Level of difficultyMedium
Reading time9 min
Views51K

Я читаю курс статистического мышления магистрам, и одна тема вызывает у них явные затруднения — чем стандартное отклонение отличается от стандартной ошибки, и в каких случаях, применять ту или иную статистику. Думаю, будет интересно поговорить об этом в блоге ЛАНИТ.

Читать далее

В чем разница между движками и средами выполнения JavaScript?

Level of difficultyEasy
Reading time4 min
Views10K

Среду выполнения и движки часто ошибочно называют одним и тем же.

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

Читать далее

Знакомство с SSH

Level of difficultyEasy
Reading time10 min
Views49K

Как гласит википедия, «SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем». Когда в первый раз знакомишься с ним, то, скорее всего, он представляется как средство для доступа к удалённому серверу. В первую очередь, так оно и есть. Однако его возможности намного шире.

Читать далее

Linux From Scratch на Zynq UltraScale+ MPSoC

Level of difficultyHard
Reading time17 min
Views6.8K

В данной статье я постараюсь описать процесс создания кастомного образа Linux на Zynq UltraScale+ MPSoCс. Каждый необходимый компонент будет собран отдельно с использованием соответствующих утилит. Статья разбита на разделы, которые шаг за шагом знакомят вас с процессом сборки и запуска системы на данной платформе.

Читать далее

Выявление ошибок в работе с памятью в C и C++: Сравниваем Sanitizers и Valgrind

Reading time24 min
Views13K

В этой статье вашему вниманию представлено сравнение двух инструментов для поиска ошибок в работе с памятью в программах, написанных на memory-unsafe (небезопасных при работе с памятью) языках — Sanitizers и Valgrind. Эти два инструмента работают совершенно по-разному. Поэтому, хоть Sanitizers (разработанный инженерами Google) имеет ряд преимуществ перед Valgrind, у каждого из них есть свои сильные и слабые стороны. Следует сразу отметить, что проект Sanitizers имеет название во множественном числе, потому что он состоит из нескольких инструментов, которые мы рассмотрим в этой статье в совокупности.

Читать далее

Основы литья под давлением: проектирование литых деталей

Level of difficultyEasy
Reading time7 min
Views10K

Дисклеймер: это достаточно вольный перевод статьи с protolabs.com, в который мы добавили немного отсебятины. Но не просто так, а для лучшего понимания, потому что соотношение терминов «там» и «здесь» — отдельный адский котелок. Заметите что-то не то (или у вас так не говорят), без стеснения отпишитесь в комментариях, исправим вместе.

Таблица тоже будет

Tcpdump на разных уровнях

Reading time4 min
Views17K

Утилита Tcpdump знакома любому сетевому администратору, с ее помощью мы собираем трафик для последующего анализа. Типичная история – собираем траффик, приходящий на нужный интерфейс и затем уже анализируем его Wireshark. Подход практичный, ведь Wireshark Действительно очень мощный и полезный инструмент и о нем мы напишем еще не одну статью, но сегодня речь пойдет про Tcpdump. Не секрет, что утилита Tcpdump не интерпретирует протоколы прикладного уровня, ограничиваясь работой с транспортным уровнем. Однако, в этой статье мы рассмотрим различные варианты использования утилиты Tcpdump для более глубокой фильтрации трафика.

Итак, Tcpdump - утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий или приходящий через компьютер, на котором запущена данная программа.

Читать далее

Квантовая случайность против детерминизма и супердетерминизма. Изгоняем демона Лапласа

Level of difficultyMedium
Reading time33 min
Views18K

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

Разумеется, ответы следует искать в квантовой механике, ведь в основе всех физических явлений лежат законы движения и взаимодействия элементарных частиц. На сегодняшний день это самая фундаментальная и самая экспериментально подтверждённая теория из всех, которые у нас есть. У неё сложный математический аппарат, но он работает безотказно и даёт предсказания, сбывающиеся с точностью до тысячных знаков после запятой. Тем не менее, именно квантовая механика даёт понять, что будущее принципиально непредсказуемо, и никакая сила не может заранее предопределить ход событий. Как же так? Нет ли здесь противоречия? Может, учёные сами не знают, детерминированы физические процессы или случайны? Нет, на этот счёт наука даёт чёткий и недвусмысленный ответ. Всё, что вы прочитаете в данной статье – только конкретика, никакой философской неоднозначности.

Читать далее

Правило трех и пяти в C++: что это такое и зачем они нужны?

Level of difficultyEasy
Reading time5 min
Views29K

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

Сегодня я хочу поговорить о двух правилах С++: правиле трех и правиле пяти.

Правильное понимание этих правил способно уберечь код от утечек и неопределенных поведений.

Читать далее

Подробное введение в rvalue-ссылки для тех, кому не хватило краткого

Reading time17 min
Views81K

Вместо КДПВ — короткая драма для привлечения внимания, основанная на реальных событиях. Ее можно смело пропустить и перейти к статье, которая поможет вам разобраться в rvalue-ссылках, конструкторах перемещения, универсальных ссылках, идеальной передаче (perfect forwarding) и т. д.


Драма в трех действиях


Действие первое


Компилятор. Локальный объект x типа T, проживающий на стеке, вы приговариваетесь к изъятию у вас всего имущества в связи с тем, что не будете пользоваться им до конца своей жизни.


Объект x. Что? Я не какой-то там временный объект, у меня постоянная регистрация, вы не имеете права!


Компилятор. Никто вас не выселяет. Но согласно одиннадцатой редакции стандартного кодекса, все ваши вещи будут переданы другому объекту, которому они нужны больше.


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

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

Автодокументация Doxygen и её развертывание на GitHub Pages

Level of difficultyEasy
Reading time8 min
Views11K

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

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

Читать далее

Корутины C++ для чайников: пишем асинхронный веб-клиент

Level of difficultyMedium
Reading time24 min
Views35K

Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины, что встречаются в рунете, относятся к одному из двух типов. Или обзор начинается с самых глубин и мелочей, пересказывая cppreference, а потом автор выдыхается и все сводится к "ну а дальше все понятно, возьмите и примените это в своем коде", что напоминает известную картинку с совой. Либо иногда в статьях рассматривается применение корутин на примере генераторов, и этим все и ограничивается. Но, давайте будем честны, генераторы — это замечательно, но за все время моей многолетней карьеры разработчика я, вероятно, делал что‑то подобное генераторам разве что разок, в то время как асинхронный ввод‑вывод приходится использовать почти в каждом проекте. И поэтому меня гораздо больше интересует реализация асинхронного ввода‑вывода с использованием корутин, а не генераторы. Поэтому пришлось разбираться во всем самому.

Читать далее

Information

Rating
Does not participate
Location
Мытищи, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

System Software Engineer, Hardware Engineer
Senior
From 225,000 ₽
C++
Qt
Verilog HDL
VHDL
C
Git
Linux