Pull to refresh
1
0
Send message

Интернет-цензура и обход блокировок: не время расслабляться

Reading time10 min
Views171K

Disclaimer: практически всё описанное в статье, не является чем-то принципиально новым или инновационным - оно давно известно и придумано, используется в разных странах мира, реализовано в коде и описано в научных и технических публикациях, поэтому никакого ящика Пандоры я не открываю.

Нередко на Хабре в темах, посвященных блокировкам ресурсов встречаются забавные заявления, вида "Я настроил TLS-VPN, теперь будут смотреть что хочу и цензоры мой VPN не заблокируют", "Я использую SSH туннель, значит все ок, не забанят же они SSH целиком", и подобное. Что ж, давайте проанализируем опыт других стран и подумаем, как же оно может быть на самом деле.

Читать далее
Total votes 258: ↑253 and ↓5+318
Comments519

Ping пакеты как временное хранилище данных на python raw socket

Level of difficultyMedium
Reading time7 min
Views11K

Payload (данные) в ping пакете действительно есть, однако до реальной пользы им далеко - это английский алфавит (нет, я не испытываю ненависть к латинице, просто мне хотелось бы уметь редактировать это содержимое).

Читать далее
Total votes 48: ↑47 and ↓1+54
Comments30

Полное визуальное руководство/шпаргалка по CSS Grid

Reading time7 min
Views372K

Сегодня мы с вами рассмотрим свойства CSS Grid (далее также — Грид), позволяющие создавать адаптивные или отзывчивые макеты веб-страниц. Я постараюсь кратко, но полно объяснить, как работает каждое свойство.


Что такое CSS Grid?



Грид — это макет для сайта (его схема, проект).


Грид-модель позволяет размещать контент сайта (располагать его определенным образом, позиционировать). Она позволяет создавать структуры, необходимые для обеспечения отзывчивости сайтов на различных устройствах. Это означает, что сайт будет одинаково хорошо смотреться на компьютере, телефоне и планшете.


Вот простой пример макета сайта, созданного с помощью Грида.

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

Как заставить бэкендера писать фронтенд

Level of difficultyEasy
Reading time10 min
Views16K

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

Для начала давайте вспомним, что же это за панели. Панель администрирования (или админка) — это приложение, которое используется для управления и настройки приложения. То есть это такой продукт для продукта. Панели администрирования нужны для различных целей, например, для создания и редактирования контента, настройки параметров продукта или управления пользователями.

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

А теперь вы готовы погрузиться в эту кроличью нору.

Читать далее
Total votes 24: ↑21 and ↓3+23
Comments70

Как хранить данные в png, не привлекая внимания санитаров

Reading time13 min
Views70K

Всё началось с мема, который вы видите выше.

Сначала я посмеялся. А потом задумался: может ли быть так, что скриншот базы равноценен её снэпшоту?

Для этого у нас должно быть такое графическое представление базы, которое 1 к 1 отображает данные и структуру. Если сделать скриншот такого представления, из него можно восстановить базу.

Или... графическое представление и должно быть базой!

Это как?
Total votes 200: ↑199 and ↓1+253
Comments88

Пишем свою ОС: Выпуск 1

Reading time6 min
Views274K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Total votes 293: ↑282 and ↓11+271
Comments225

Яндекс: умный дом по-взрослому

Reading time9 min
Views190K


Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments103

Своя «Телега» (matrix.org via docker)

Level of difficultyEasy
Reading time8 min
Views18K

Запускаем свой сервер мгновенных сообщений на docker-compose. Просто ставить, легко обновлять. Сервер - открытый, клиент не хуже telegram, signal, whatsapp, а местами и лучше. Пример настройки matrix.org с Преферансом и куртизанками для типовой организации.

Надёжная от прослушки связь теперь общедоступна. Ура товарищи!

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments7

Отвечаю на вопросы после аварии

Level of difficultyEasy
Reading time10 min
Views35K
image
Мы шутили про эти телефоны, а они пригодились на прошлых выходных. Точнее, пригодилось резервирование телефонии. Не конкретно эти, но похожие)

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

Но давайте обо всём по порядку.

— Сколько клиентов пострадало?

— На три часа и более в одном ЦОДе отключилось 7–10 % из 14 наших, то есть менее 0,5 % от общего числа клиентов хостинга (точнее, хостов). Тем не менее мы очень подробно рассказываем про эту аварию, потому что она вызвала очень много вопросов.
Читать дальше →
Total votes 124: ↑123 and ↓1+160
Comments81

Про ЦОД Останкино — тот самый, который вообще без дизеля

Reading time5 min
Views42K


У нас кончилось место на московских площадках, и мы довольно долго выбирали новый ЦОД. Отсмотрели с десяток вариантов и пришли в гости в Останкино. ЦОД, конечно, удивительный.

Во-первых, у него нет и не будет уровня по Uptime Institute, несмотря на то что он фактически соответствует уровню Tier III, потому что это объект Федерального значения России.

Во-вторых, у него нет дизельного питания. Вообще! Есть 4 (четыре, Карл!) независимых ввода питания повышенной надежности. Ну как вы понимаете, поскольку там самое главное телевидение, если бы свет хотя бы моргнул за последние 55 лет, стук «летящих голов» было бы слышно на много сотен километров от Москвы.

В-третьих, охрану осуществляет отдельный батальон Росгвардии. Помните, как в 93-м штурмовали телецентр? Ну так вот, с тех пор там все несколько настороже.

В общем, я просто не могу не рассказать про это место. Но с некоторыми ограничениями, поскольку безопасники не всегда рады публичности некоторых вещей. Фотографии, например, мы делали так: вставали на точку и говорили, что нужно сфотографировать. Дальше приходил их сотрудник и фотографировал. Что-то из архива, чтобы не было видно конкретного оборудования их заказчиков. Где-то вообще нельзя было снимать.
Читать дальше →
Total votes 90: ↑89 and ↓1+119
Comments136

Самый длинный простой за нашу историю: я обещал рассказать про аварию

Level of difficultyEasy
Reading time9 min
Views54K
Коротко: 17 июня около часа ночи мы потеряли два ввода питания от города из-за аварии на подстанции, затем — один из дизелей, что вызвало «мигание» питания в подземном дата-центре. Итог инцидента — простой около 12 часов примерно 7–10 % машин одного из 14 наших ЦОДов.

Это просто дикая цепочка событий.

image
Это патрубок дизеля, перевязанный бинтом из админской аптечки. Сейчас расскажу, какую роль он тут сыграл.

Итак, мы потеряли оба городских ввода — всё как в худших домах Парижа. Как мы уже потом узнаем, вроде бы авария была на трансформаторе 110 кВт: при перераспределении мощностей с первого произошло замыкание второго. За полтора года это уже третий раз, когда пропадают оба луча, и вот тут я рассказывал, как мы почти сутки стояли на дизеле. Для клиентов это прошло незаметно (кроме той стойки, где при мигании света сгорел ИБП: там был простой на перезагрузку).

Штатно сработали ИБП, автоматически завелись дизель-генераторы, ЦОД продолжил работу. У нас общая энергосеть с соседним ЦОДом всё в том же подземном бомбоубежище. Общее потребление — 0,5 МВт, дизелей — на 1,05 МВт.

Через два часа, около 3:30 ночи, лопнул патрубок дизеля 0,5 МВт, отчего он внезапно перестал работать. Админы убежища переключили мощности на дизели 2 х 100 КВт и 2 х 200 КВт. В момент переключения нагрузка снова легла на ИБП, а за два часа они не успели восстановиться, и часть оборудования выключилась.

Это запустило целую цепочку последствий, потому что при этом выключении погорела одна из плат коммутатора, обеспечивавшего доступ в нашу сеть управления ЦОДом, то есть все удалённые доступы.

На площадке остались два админа, которым нужно было включить вручную коммутаторы и стойки, починить дизель и понять, что вообще происходит.
Читать дальше →
Total votes 159: ↑157 and ↓2+196
Comments292

Как работает Wine

Reading time10 min
Views78K


Wine — это свободное программное обеспечение для запуска Windows-приложений на нескольких POSIX-совместимых операционных системах, включая Linux, macOS и BSD.

Если вы любите Linux, то наверняка когда-то запускали Wine. Возможно, для какой-то «важной» программы Windows, у которой нет аналога под Линуксом, или поиграться. Забавный факт: даже Steam Deck от Valve запускает игры через оболочку на основе Wine (она называется Proton).

За последний год я намучился с отладчиком, который позволяет одновременно дебажить и Wine, и Windows-приложение в нём. Разобраться во кишочках Wine оказалось очень интересно! Я-то раньше много им пользовался, но никогда не понимал механику целиком. Можно взять файл Windows — и просто запустить его в Linux без каких-либо изменений. Если вы хотите знать, как это сделано, добро пожаловать под кат.
Читать дальше →
Total votes 188: ↑187 and ↓1+230
Comments48

Умный дом с голосовым ассистентом на минималках

Level of difficultyMedium
Reading time8 min
Views17K

Небольшой лонгрид с предысторией и планами, чтобы лучше понимать почему, что и как получилось.

Разработка шла с переменной скоростью в течении лет 5. Совсем не сразу взялся за летопись, поэтому прошу прощения, если что-то будет некорректно ;)

В результате имеем масштабируемое решение, которое можно использовать в любом месте (квартира, дом или еще что).

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

Восстановление криптоключей по яркости LED-индикатора питания

Reading time4 min
Views9.3K

Экспериментальная установка. Камера наблюдения (слева) снимает индикатор питания на смарт-ридере (справа) с расстояния 16 м

Известный эксперт в области криптоанализа Бен Насси (Ben Nassi) с коллегами из университета им. Бен-Гуриона опубликовали результаты уникальных экспериментов по восстановлению криптографических ключей с помощью видеозаписи светодиода питания устройства, на котором хранится/используется этот ключ.

Для извлечения секретного ключа достаточно нескольких секунд видеозаписи с камеры наблюдения (издали) или со смартфона (вблизи, с роллинг-шаттером).
Читать дальше →
Total votes 17: ↑15 and ↓2+24
Comments9

Умный планшет для умного дома

Level of difficultyEasy
Reading time3 min
Views24K

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

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments60

Эффект внутреннего JSON

Level of difficultyMedium
Reading time5 min
Views14K
Джейк с энтузиазмом приступил к своей новой работе, ожидая нового опыта и новых сложных задач. Он жаждал изучать новые стеки технологий и узнать, чему его новая компания может научить его в мире ПО.

Ему сказали, что он будет работать над веб-сайтами и иметь дело с JavaScript, Node.js, JSON и тому подобным. Звучало вполне логично для веб-разработки; странным был только комментарий нетехнического собеседователя, что всё «построено на основе Subversion»; Джейк решил, что просто чего-то недопонял.


Его поставили на проект, в котором использовался собственный «JSON-based Domain Specific Language» компании, или JDSL. Его начальник посоветовал ему изучить копию проекта, на который его назначили, и дал неделю-две на освоение. «Если возникнут вопросы, просто спрашивай, кого угодно, но, судя по твоему опыту, проблем у тебя возникнуть не должно».
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments20

Прогулы занятий: как с этим бороться, если занятия — бесплатные?

Level of difficultyEasy
Reading time8 min
Views11K

Всем привет!

Кто работает в образовании - сталкивались ли вы с тем, что дети прогуливают занятия? А с тем, что этому не только потворствуют, но и потакают родители учеников?.. Тогда, уверен, вам будет интересно.

Так как публикуюсь я редко, думаю, имеет смысл представиться: зовут меня Владимир Мозговой, я являюсь основателем и руководителем частного кружка робототехники RoboGrade в городе Новочеркасске. С 2020 года я пробовал организовать в своём кружке бесплатные занятия. Удалось это не сразу. О непредвиденных сложностях, возникших на пути к реализации задуманного, а также о найденных решениях - читайте ниже.

Читать БЕСПЛАТНО)
Total votes 86: ↑84 and ↓2+101
Comments127

Простой способ расшарить localhost

Reading time1 min
Views15K
Иногда появляются проекты, глядя на которые возникает мысль: почему я не догадался сделать это раньше? Нечто подобное вы можете подумать о сервисе Showoff.io. Для веб-разработчика это простой и удобный способ тестировать проект в вебе и показывать заказчикам, расшарив локальный сервер через SSH-туннель. Просто устанавливаете программу, запускаете команду show с номером порта…

> gem install showoff-io
> show 3000


… и получаете рабочий URL типа https:// you.showoff.io. Работает даже через NAT.
Читать дальше →
Total votes 94: ↑72 and ↓22+50
Comments46

Установка и настройка сервера Matrix Synapse + PostgreSQL + Admin UI + Element WEB. Ubuntu 20 LTS / Ubuntu 22 LTS

Level of difficultyMedium
Reading time11 min
Views56K

Всем привет. В данном гайде я постарался пошагово, подробно и доступно описать процесс установки на свой сервер Matrix Synapse + Element WEB + Admin UI на базе Ubuntu 20 LTS / Ubuntu 22 LTS.

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

Разобравшись с данным вопросом и затратив не мало усилий я решил поделиться своими результатами с сообществом habr.

Читать далее
Total votes 20: ↑19 and ↓1+26
Comments37

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

Level of difficultyMedium
Reading time9 min
Views10K
image

К сожалению, в наше время многие старые, но весьма неплохие по характеристикам гаджеты отправляются напрямую в помойку, и их владельцы не подозревают, что им можно найти применение. Сервер, мультимедийная-станция, да даже просто как TV-приставка — люди в упор не замечают сфер, где старенький планшет мог бы быть полезен. Но как быть, если посвящаешь жизнь портативным гаджетам, кодингу и копанию в железе? Правильно: сделать довольно мощную игровую консоль из старого планшета самому! Сегодня вам расскажу, как я сделал свою портативную приставку из планшета с нерабочим тачскрином, Raspberry Pi Pico и 8 кнопок! За рабочим результатом прячется несколько дней работы: поиск UART на плате, разработка контроллера геймпада на базе RPi Pico, написание приложения-сервиса, которое слушает события и отправляет их в подсистему ввода Linux в обход Android. Интересно? Тогда жду вас под катом!
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments21

Information

Rating
4,914-th
Registered
Activity