Какими бы не были ваши политические взгляды (многих уже тошнит от слова «политик»), мало кто сейчас может оставаться равнодушным к тому, что происходит у нас в стране. Каждому из нас, независимо от того, за кого мы будем голосовать, важно, чтобы выборы были максимально честными. Понимая это, пару месяцев назад мы начали писать сайт, который поможет скоординировать наблюдателей, юристов для контроля за выборами — grakon.org.
Так получилось, что меня пригласили в общественно-экспертный совет по установке видеокамер на избирательные участки. Предложения, которые сейчас у меня созревают, крутятся в районе недорогого смартфона на открытой платформе (Андроид) с кастомной прошивкой для «тетушки-наблюдательши», адаптируемой под полосу пропускания скромной веб-трансляции и при этом полной записи на 8GB SD-карту, вертикального штатива, прикручиваемого прямо к урне, а главное, приложения «электронный дневник наблюдателя»; ориентируюсь на максимальную экономию средств, минимальный waste (андроиды сдать обратно в Связной/Евросеть, аренда wifi-точек доступа у провайдеров, там где возможно и в школе есть DSL, и тд)
Крайне приветствуются толковые предложения, реалистичные идеи, любая критика.
UP: Добавлю вводной информации: КОИБ-ы нельзя ставить более чем на 5% участков. Интернет на УИК-ах в избирательном процессе/ходе голосования применить по текущему закону невозмжно никаким образом.
Добрый день, хабрачитатели. Спешу поделиться с вами опытом, недавно мной полученным.
Почему в этом есть нужда?
Как вы, наверное, знаете — создание более менее внятных и серьезных приложений не может обойтись без грамотного проектирования. Одними из основных задач современного программирования — являются контроль над сложностью, требования создания гибких и расширяемых, изменяемых приложений. Из этого вытекают концепции ортогонального программирования, максимального уменьшения связности между классами, использования наиболее подходящих архитектурных решений (алсо грамотные подходы создания архитектуры проекта, подходы к проектированию классов). За многие человекочасы и человекодни мирового опыта всех разработчиков — были выработаны наиболее естественные и удачные подходы, названные паттернами проектирования… А подходы к проектированию классов — могут в некоторой степени изменяться, в зависимости от используемого языка программирования и требуемых свойств объекта. Описываемый сегодня мной паттерн является одним из моих самых любимых (и вообще достаточно значимый), а именно встречайте:… "Observer" (по-русски — Наблюдатель). Исходя из последних двух предложений — вытекает название этой статьи.
Наблюдатель (observer) — это объект, который следит за состоянием определенного элемента и регистрирует происходящие в нем изменения. Элемент, который находится под наблюдением (чуть не написал «за которым организована слежка»), называется целевым. Наблюдатель может следить за состоянием как одного, так и нескольких элементов, а в некоторых случаях также и за потомками целевого элемента.
В JavaScript существует три основных вида наблюдателей:
ResizeObserver
IntersectionObserver
MutationObserver
В данной статье я предлагаю сосредоточиться на практической реализации каждого наблюдателя.