Pull to refresh
21
0
Алексей Широков @snowmage

Demiurge Ash

Send message

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time45 min
Views136K

Поскольку блокировки интернета в РФ в последние недели и месяцы многократно активизировались, а маразм все крепчает и крепчает, стоит еще раз поднять тему обхода этих самых блокировок (и делаем ставки, через сколько дней на эту статью доброжелатели напишут донос в РКН чтобы ограничить к ней доступ на территории страны).

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Total votes 506: ↑498 and ↓8+490
Comments351

Механизмы безопасности в Laravel

Level of difficultyHard
Reading time15 min
Views7.9K

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

Мы рассмотрим следующие механизмы безопасности:

Предотвращение N+1
Защита от частично гидрированных моделей
Опечатки атрибутов и переименованные столбцы
Защита от массового присвоения
Строгость модели
Принудительное выполнение полиморфного сопоставления
Мониторинг долгосрочных событий

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments5

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Level of difficultyMedium
Reading time54 min
Views77K

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

Публикую шпаргалку по SQL, которая долгое время помогала мне, да и сейчас я периодически в неё заглядываю.

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Total votes 125: ↑122 and ↓3+119
Comments7

Проверка работодателя: как минимизировать риски при трудоустройстве

Level of difficultyEasy
Reading time8 min
Views19K

Вы IT-специалист и решили сменить место работы. Что обычно делают в таких случаях айтишники? Ходят по собеседованиям, работают над ошибками в случае отказов — и всё по новой до тех пор, пока не будет получен подходящий оффер. Многие ли из айтишников оценивают надёжность будущего работодателя во время поисков? При планировании профсоюзных кампаний мы проводим исследование работодателей с использованием множества источников и методик. Эта статья была написана с целью помочь специалистам любого уровня, от интернов до архитекторов, ведь никто не застрахован от проблем на работе. Мы поделимся опытом и надеемся, что он поможет вам не нарваться на недобросовестного работодателя.

Читать далее
Total votes 70: ↑69 and ↓1+68
Comments10

Не Unity единым…

Level of difficultyEasy
Reading time15 min
Views36K

Игры бывают разные, большие и маленькие, триA и супер инди, в компаниях с сотнями разработчиков и что создаются самородками-одиночками. Редко их делают с нуля и пишут код только игры, чаще пишут игровые тулы, редактор и параллельно пишут саму игру. За всей этой многомиллиардной индустрией стоит код, много кода, очень много кода. Игровые движки и фреймворки – мощные инструменты, которые помогают разработчику творить его идеи и создавать увлекательные игровые миры. Это каркас, на котором строятся все игровые вселенные, они включают в себя сотни инструментов, библиотек и ресурсов, позволяя разработчикам превратить строчки кода в театр для одного зрителя.

Существует более сотни игровых движков, каждый из них содержит как минимум одну фичу которой нет ни в каком другом. Всех возможностей вместе нет ни в одном, и это прекрасно - иначе бы такой движок монополизировал рынок. Хм, Unreal5 ты ли это? Иногда полезно пробежать по release notes движка, чтобы оставаться в курсе последних новостей. Возможно вы разрабатываете свое решение и эта статья натолкнет вас на новые идеи. Готовы узнать что ваша любимая игры была сделана не на Unity, а на православном SDL?

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

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

Reading time4 min
Views145K


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Total votes 115: ↑113 and ↓2+111
Comments123

Потерянное искусство: художники золотого века игровых обложек

Level of difficultyEasy
Reading time11 min
Views13K
image

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

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

Подробно рассказываем о феномене и вспоминаем значимых художников, которые подарили свои рисунки хорошим играм.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments12

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views183K

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 191: ↑184 and ↓7+177
Comments177

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Level of difficultyEasy
Reading time6 min
Views190K

--- Обновление статьи 9 Августа 2023 ---

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

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее
Total votes 144: ↑143 and ↓1+142
Comments180

Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых

Level of difficultyMedium
Reading time8 min
Views5.9K

В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.

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

Минималистичный YouTube. Расширения для браузера и альтернативные клиенты

Level of difficultyEasy
Reading time7 min
Views55K

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

Один из главных «нарушителей» — YouTube. Стоило один раз посмотреть пляжный волейбол на Олимпийских играх — и он уже несколько лет показывает женщин в купальниках на главной странице (пример). Даже неудобно открывать YouTube в присутствии сына…

Непрошеные и неуместные рекомендации видео — общая проблема, на которую часто жалуются. К счастью, их легко заблокировать, как и весь остальной мусор. Можно ходить на серверы YouTube через кастомный фронтенд, через сторонние клиенты или вообще из консоли. Некоторые альтернативные способы просмотра особенно актуальны в свете потенциальной блокировки YouTube на территории РФ.
Читать дальше →
Total votes 133: ↑130 and ↓3+127
Comments80

Укрепление Nginx с помощью Fail2ban: тестируем и оцениваем «профит»

Reading time10 min
Views20K

«Только запустил Nginx-приложение, а в access.log уже десятки записей с непонятными запросами, переборами паролей и другого» — типичная ситуация для незащищенного сервера. Это следствие работы «ботов» для сканирования белых сетей, поиска открытых портов, сбора информации о версиях запущенных служб и подбора паролей к сервисам.

В статье расскажу, как с помощью open source-инструмента Fail2ban укрепить Nginx и защитить сервисы от взлома. А также продемонстрирую способы блокирования DDoS-атак. Подробности под катом.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments47

Законы мира информационных технологий

Reading time5 min
Views26K

Всем известный закон Мёрфи гласит: «Если что-то плохое может случиться, то оно обязательно произойдет». Согласитесь, не самая позитивная установка, особенно когда это касается работы. И тут мне стало любопытно, а есть ли такие законы, которые мне, как ИТ-специалисту, максимально помогут избежать «чего-то плохого». К своему удивлению, я их нашел, и даже не один. Потому делюсь с вами сегодня своими сакральными знаниями в блоге ЛАНИТ. 

Читать далее
Total votes 148: ↑147 and ↓1+146
Comments18

Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

Reading time8 min
Views41K

Как мы обсуждали в прошлый раз, удручающее ожирение сайтов и софта вернуло моду на простые, маленькие проекты. И сейчас происходит своеобразный ренессанс веба 90-х, вплоть до стиля Geocities (такой был бесплатный хостинг) и веб-страниц в виде PDF. Таковы примеры самореализации. У каждого человека — уникальный сайт, который отличается от остальных и отражает его личность.

Статический сайт можно выполнить в одном файле HTML, а динамический — в одном бинарнике (под катом). Тенденция видна везде. Современные фреймворки даже хвалятся «0кБ JavaScript» по дефолту, а браузеры внедрили технические усовершенствования, которые во многом аннулируют преимущества использования SPA.
Читать дальше →
Total votes 107: ↑101 and ↓6+95
Comments72

11 хитростей Chrome DevTools, которые помогут Вам стать Senior FrontEnd-разработчиком

Reading time4 min
Views57K

Я полагаю, вы знакомы с инструментами разработчика браузера Chrome. Мы можем использовать его для просмотра сетевых запросов, анализа производительности веб-страницы и отладки последних функций JavaScript.

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

Давайте посмотрим
Total votes 62: ↑56 and ↓6+50
Comments23

Как спарсить любой сайт?

Reading time6 min
Views184K

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

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

Узнать как
Total votes 78: ↑69 and ↓9+60
Comments89

Обход блокировки РКН с помощью магии Service Worker'ов

Reading time6 min
Views24K


Приветствую, Хабр!

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

TL;DR


Суть способа в обыгрывании возможности Service Worker'ов проверять контент на подконтрольных ему страницам. Если воркер не находит определённого текста на странице — происходит редирект. Таким образом вместо заглушки провайдера о том, что сайт заблокирован пользователь переходит на незаблокированный домен.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments33

Полное руководство по Flexbox

Reading time11 min
Views577K
Полное руководство по CSS flexbox. Это полное руководство объясняет все о flexbox, сосредотачиваясь на всех возможных свойствах для родительского элемента (контейнер flex) и дочерних элементов (элементы flex). Оно также включает в себя историю, демонстрации, шаблоны и таблицу поддержки браузеров.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments5

CSS: о выводе коротких и длинных текстов

Reading time8 min
Views40K
Когда, пользуясь возможностями CSS, создают макет страницы, важно учитывать то, что в различных элементах этой страницы могут выводиться короткие и длинные текстовые материалы. Страницы, кроме того, нужно тестировать на предмет того, как они отображают тексты разной длины. Если разработчик чётко понимает то, как обрабатывать различные тексты, выводимые на странице, если он соответствующим образом спроектировал макет, это способно избавить его от множества неприятных неожиданностей.



Есть много ситуаций, в которых изменение некоего текстового фрагмента путём добавления или удаления всего одного слова способно заметно изменить внешний вид страницы, или, что ещё хуже «поломать» макет и сделать невозможной нормальной работу с сайтом. Когда я только начинал изучать CSS, я недооценивал последствия, к которым может привести добавление единственного слова в некий элемент или удаление из него всего одного слова. Здесь я хочу поделиться различными способами обработки текстов разной длины средствами CSS.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments6

Как найти иллюстратора, если вы ничего не понимаете в иллюстрации

Reading time12 min
Views14K
Меня зовут Полина, я работаю веб-дизайнером и иллюстратором. Работы много, поэтому со временем возник вопрос о поиске «запасного игрока», который в случае моего большого загруза мог бы подхватить задачу по созданию иллюстраций для статей на Хабр и Яндекс Дзен.

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



Эта статья для тех, кто ищет иллюстраторов на фриланс, при этом «не умеет рисовать», мало взаимодействует с «творческими людьми» и имеет слабое представление об иллюстрации в целом. Слово «иллюстрация» можно заменить на «логотип», «лендинг», «сайт», «анимированное видео».
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments9

Information

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

Specialization

Backend Developer
Lead
PHP
MySQL
Laravel
Git