Как стать автором
Обновить
4
0
Роман @ironlion

Системный администратор

Отправить сообщение

Учебный курс по React, часть 28: современные возможности React, идеи проектов, заключение

Время на прочтение5 мин
Количество просмотров14K
Сегодня, в заключительной части перевода курса по React, мы поговорим о современных возможностях React и обсудим идеи React-приложений, создавая которые, вы можете повторить то, чему научились, проходя этот курс, и узнать много нового.

image

Часть 1: обзор курса, причины популярности React, ReactDOM и JSX
Часть 2: функциональные компоненты
Часть 3: файлы компонентов, структура проектов
Часть 4: родительские и дочерние компоненты
Часть 5: начало работы над TODO-приложением, основы стилизации
Часть 6: о некоторых особенностях курса, JSX и JavaScript
Часть 7: встроенные стили
Часть 8: продолжение работы над TODO-приложением, знакомство со свойствами компонентов
Часть 9: свойства компонентов
Часть 10: практикум по работе со свойствами компонентов и стилизации
Часть 11: динамическое формирование разметки и метод массивов map
Часть 12: практикум, третий этап работы над TODO-приложением
Часть 13: компоненты, основанные на классах
Часть 14: практикум по компонентам, основанным на классах, состояние компонентов
Часть 15: практикумы по работе с состоянием компонентов
Часть 16: четвёртый этап работы над TODO-приложением, обработка событий
Часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов
Часть 18: шестой этап работы над TODO-приложением
Часть 19: методы жизненного цикла компонентов
Часть 20: первое занятие по условному рендерингу
Часть 21: второе занятие и практикум по условному рендерингу
Часть 22: седьмой этап работы над TODO-приложением, загрузка данных из внешних источников
Часть 23: первое занятие по работе с формами
Часть 24: второе занятие по работе с формами
Часть 25: практикум по работе с формами
Часть 26: архитектура приложений, паттерн Container/Component
Часть 27: курсовой проект
Часть 28: современные возможности React, идеи проектов, заключение
The end!
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии1

Mkcert: валидные HTTPS-сертификаты для localhost

Время на прочтение2 мин
Количество просмотров92K

В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.

Традиционно есть два решения.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии35

Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН»

Время на прочтение11 мин
Количество просмотров142K

Ну ладно, про «полюбил» — это преувеличение. Скорее «смог сосуществовать с».


Как вы все знаете, с 16 апреля 2018 года Роскомнадзор крайне широкими мазками блокирует доступ к ресурсам в сети, добавляя в "Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено" (по тексту — просто реестр) по /10 иногда. В результате граждане Российской Федерации и бизнес страдают, потеряв доступ к необходимым им совершенно легальным ресурсам.


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

Читать дальше →
Всего голосов 124: ↑120 и ↓4+116
Комментарии303

Настраиваем интернет шлюз с прозрачным обходом блокировок (а рекламу таки будем блокировать)

Время на прочтение9 мин
Количество просмотров106K


У вас есть старенький (или не очень) компьютер с двумя сетевыми картами? Вам надоела реклама и лишние телодвижения для обхода блокировок? Вы не хотите с этим мириться? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии97

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

Время на прочтение3 мин
Количество просмотров964K


В последние годы вопрос обхода различных блокировок сайтов стоит достаточно остро. Проще всего решить ее можно с помощью прокси-расширений для браузера. А поскольку самым популярным браузером сейчас является Chrome, то я решил собрать в одном материале все самые адекватные варианты прокси и VPN-расширений для него.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии28

GObject: основы

Время на прочтение7 мин
Количество просмотров21K
GObject — часть библиотеки GLib, реализующая объекто-ориентированнные расширения для чистого Си. Подобная концепция, помимо самой GLib, используется в таких проектах, как GStreamer, GSettings, ATK, Pango и весь проект GNOME в целом, а также в большом количестве прикладных приложений: GIMP, Inkscape, Geany, Gedit и многих других. Большое количество языков программирования, начиная от таких мейнстримовых, как Python и Java, и заканчивая изысками вроде Haskell или D, имеют привязки к GLib/GTK+, а для значительного количества языков биндинги к GTK+ вообще является единственным способом построения GUI.

В отличие от других схожих проектов, GObject отличают архитектурные особенности, целью которых является лёгкая и прозрачная реализация привязок библиотек, написанных с применением чистого Си и GObject, к другим языкам программирования, в том числе с динамической типизацией и управлением памятью при помощи сборщика мусора. Именно этим объясняется некоторое ощущение переусложнённости, которое может возникнуть у программиста, приступившего к знакомству с GObject API. Тем не менее, эта система очень продуманная и логичная, так что проблем с пониманием всего изложенного ниже у программиста, знакомого с C++ или Java, возникнуть не должно.

Данная статья иллюстрирует самые основы работы с объектной системой типов GLib.
image
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии16

Основы повышения привилегий в Windows

Время на прочтение10 мин
Количество просмотров51K
Решил для себя и для тех, кому будет полезно, собрать все что знаю, но не помню по теме, в этой статье. Делитесь советами. Основным источником этой статьи является эта.

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

В общем, тут представлены способы, которые помогут нам достигнуть цели повышения привилегий.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии13

«Прозрачный» HTTPS прокси для обхода блокировок Роскомнадзора

Время на прочтение9 мин
Количество просмотров88K
Привет, хабровчане! Я думаю, многие в последнее время столкнулись с проблемами доступа к нужным ресурсам из-за попыток Роскомпозоранадзора заблокировать Телеграм. И я думаю, комментарии тут излишни. Факт — эти ресурсы ни в чем не виноваты, но они заблокированы. Проблемы возникли с Viber, ReCaptcha, GoogleFonts, Youtube и др. (кроме самого телеграма). Это случилось и в моей организации, причем некоторые невинные сервисы нужны нам как воздух. В какое-то время решалось все использованием прокси серверов, но они были нестабильны или вовсе отключались (их также блокировал наш великий и могучий РКН).

После прочтения кучи статей, пришла идея научить Squid пускать отдельные URL через Tor. Использовать ли такой метод, решать вам. Но скажу, что после реализации пропали все проблемы, которые были до этого. Кому интересно, идем под кат.
Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии144

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Время на прочтение3 мин
Количество просмотров284K


Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Читать дальше →
Всего голосов 52: ↑41 и ↓11+30
Комментарии51

Что такое PAT? Лабораторная работа в Packet Tracer

Время на прочтение3 мин
Количество просмотров52K

Введение


PAT (Port Address Translation) — технология трансляции адресов с использованием портов. Данная технология решает проблему доставки возвратных пакетов. Так как количество белых IP ограничено нам необходимо экономить эти адреса. Помня об этом, была создана технология РАТ. Она позволяет локальным хостам использовать частные IP-адреса и установить один зарегистрированный адрес на маршрутизатор доступа. В технологии преобразования адресов РАТ используется особенность работы протокола ТСР: с точки зрения сервера абсолютно все равно, осуществляются соединения с тремя разными хостами с разными адресами или соединения устанавливаются с одним хостом на один IP-адрес, но с разными портами. Следовательно, чтобы подключить к Интернету множество хостов небольшого офиса с помощью одного только зарегистрированного публичного IP адреса, служба РАТ транслирует частные адреса локальных хостов в один имеющийся зарегистрированный. Чтобы правильно пересылать пакеты обратной коммуникации локальным хостам, маршрутизатор хранит у себя таблицу IP адресов и номеров портов для протоколов TCP и UDP. Об IP адресах и масках подсети можно почитать в другой моей статье.

Задание лабораторной работы


Создать простую сеть с использование технологии PAT (перегруженный NAT). Схема сети представлена ниже. Вся работа будет выполняться в программе Cisco Packet Tracer.


Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии19

Защита целостности кода с помощью PGP. Часть 2. Создание мастер-ключа

Время на прочтение6 мин
Количество просмотров9.4K
Перед вами перевод второй части серии материалов, посвящённых защите целостности кода с помощью PGP. В прошлый раз мы разобрали основы PGP, а сегодня поговорим о том, как создавать 4096-битные мастер-ключи RSA, и о том, как их защищать.


Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии2

Пробрасываем вызовы Steam API из Wine в GNU/Linux и обратно с помощью Nim

Время на прочтение22 мин
Количество просмотров16K

У игроков на платформе GNU/Linux множество проблем. Одна из них — необходимость устанавливать отдельный клиент Steam для каждой Windows игры из Steam. Ситуация усугубляется необходимостью установки ещё и родного клиента Steam для портированных и кроссплатформенных игр.

Но что если найти способ использовать один клиент для всех игр? За основу можно взять родной клиент, а игры для Windows пусть обращаются к нему так же как, например, к OpenGL или звуковой подсистеме GNU/Linux — средствами Wine. О реализации такого подхода и пойдёт речь далее.

Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии10

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Время на прочтение26 мин
Количество просмотров344K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Всего голосов 108: ↑107 и ↓1+106
Комментарии36

От мушкета до автомата — сумасшедшее столетие, часть 3/3

Время на прочтение55 мин
Количество просмотров53K
Итак, последняя из трех частей рассказа об эволюции стрелкового оружия от мушкета до автомата.

Использованные термины


УСМ – ударно-спусковой механизм

Метрическое обозначение патрона — состоит из двух чисел, первое из которых означает калибр, второе – длину гильзы. Например, 9х19 говорит о том, что 9мм – калибр, а длина гильзы 19мм. Но это обозначение все равно во многом номинально.

Пистолетный патрон – небольшой патрон с короткой тупоконечной пулей и с зарядом быстрогорящего пороха менее 0.5г. Напр. 9х19, 7.62х25, 9х18 и т.д.

image

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

Напр. 7.62х54R, 7.62х51, 7.92х57.

image

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

Напр. 7.92х33, 7.62х39.

image

Малоимпульсный патрон – условный тип промежуточного патрона, появившийся впервые в винтовке М16. Представляет собой промежуточный патрон, однако с дальнейшим уменьшением размеров и калибром ок. 5.5мм. Свое название получил из-за уменьшенного импульса отдачи. Масса порохового заряда ок. 1.5 г, порох обычно того же типа что и в промежуточном патроне.

Напр. 5.56х45, 5.45х39, 5.8х42.

image

В прошлый раз мы остановились на том, что армии ведущих стран мира оказались вооружены магазинными винтовками.
Всего голосов 108: ↑104 и ↓4+100
Комментарии746

Практика использования arp-spoofing

Время на прочтение4 мин
Количество просмотров66K
В данной статье я расскажу как, используя пакет утилит arp-sk в операционной системе GNU/Linux реализовать атаку man-in-the-middle на протокол arp.
image

Для чего вообще нужна такая атака:
На хабре достаточно много статей например для взлома Wi-Fi. Но что делать после того, как ключ взломан? Тут можно увидеть один из вариантов действий.
Читать дальше →
Всего голосов 59: ↑52 и ↓7+45
Комментарии29

CoffeeMiner: взлом WiFi для внедрения криптомайнера в HTML-страницы

Время на прочтение7 мин
Количество просмотров30K
Предупреждение: эта статья и проект имеют исключительно образовательные цели.

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

Цель этой статьи — объяснить, как провести атаку MITM (человек посередине) для внедрения определённого JavaScript-кода в страницы HTML, чтобы заставить все устройства, подключённые к WiFi, майнить криптовалюту для злоумышленника.

Задача состоит в создании скрипта, который проводит автономную атаку в сети WiFi. Это то, что мы назвали CoffeeMiner, поскольку атаки такого типа можно проводить в кафе.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии15

Шпоры по сертификатам X.509

Время на прочтение8 мин
Количество просмотров106K
Чудище обло, озорно, огромно, стозевно и лаяй.

Набор технологий, который мы по привычке именуем сертификатами SSL, представляет из себя здоровенный айсберг, на вершине которого зеленый замочек слева от доменного имени в адресной строке вашего браузера. Правильное название X.509 сертификат, который восходит к X.500 стандарту ITU-T DAP (Directory Access Protocol). DAP не взлетел, в IETF его посчитали неудобным для использования со всеми этими OSI нагромождениями и вместо него придумали LDAP, Lightweight DAP где первая буква обозначает «легковесный». Те, кому пришлось настраивать, или что хуже производить его отладку могут оценить иронию в полной мере. Никогда еще первая буква аббревиатуры так не лгала, не считая SNMP.


Шпоры


Кстати что общего между LDAP, SNMP и X.509 ну кроме того, что им еще не скоро предстоит собрать стадионы фанатов? Их объединяет ASN.1 — мета-язык описания объектов древности. Если бы эти технологии создавали сейчас, в ход бы пошли XML, DTD или какой-нибудь другой ML. Но в то время стандарты создавались титанами, для которых даже SNMP был простым делом.

Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии12

Кодирование аудио с потерями. Что к чему?

Время на прочтение12 мин
Количество просмотров88K
Внимание: это старая версия статьи, новая доступна на моём сайте.

Эволюция кодирования аудио



На дворе 2011-й год, с момента появления первого MP3 кодировщика прошло уже 17 лет. Но то, что большинство из нас до сих пор спокойно слушает музыку в формате MP3 — вовсе не значит, что прогресс всё это время топтался на месте. И это касается не только развития алгоритма кодирования MP3, но и эволюции кодирования аудио с потерями вообще — в виде новых, более совершенных кодеков, действительно позволяющих получить лучшее качество при меньшем размере. Такие форматы как OGG Vorbis, AAC, WMA, Musepack давно оставили позади устаревший MP3 с его многочисленными ограничениями и недостатками.
Читать дальше →
Всего голосов 92: ↑90 и ↓2+88
Комментарии117

Аудит уязвимостей Linux c Vulners.com

Время на прочтение9 мин
Количество просмотров19K
Vulners задумывался как поисковик для Security Content-а: уязвимостей, бюллетеней безопасности, эксплоитов, плагинов детекта и прочей полезной информации. Но мы подумали: если у нас уже есть разобранные бюллетени безопасности для основных Linux-дистрибутивов, почему бы нам не сделать сервис, который будет брать данные о системе, а на выходе отдавать список уязвимостей. Также, как это делают привычные сканеры уязвимостей, только быстрее и бесплатно.


Откуда мы получаем информацию об уязвимостях Linux? Для этого мы парсим бюллетени вендоров. Покажем процедуру разбора на примере бюллетеня безопасности Debian DSA-3638.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии42

Информация

В рейтинге
Не участвует
Откуда
Томск, Томская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, System Administration
Linux
C
C++
Qt