Как стать автором
Поиск
Написать публикацию
Обновить
-12
@SUNsungread⁠-⁠only

Волшебник

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

Модули CSS раскладки — что такое и как готовить

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.1K

В 20-ом веке браузеры были гораздо менее развиты, а CSS сильно ограничен. Он подходил только для оформления простых текстов что-то вроде документов Word. Для оформления сайтов приходилось обращаться к таблицам, чтобы создавать подобие типографской сетки для раскладки элементов. Пока в 2003 году не появился CSS Zen Garden, пропагандирующий оформление сайтов с помощью CSS. В оформлении использовались хаки с флоатами и другие трюки, но технология была несовершенна. Далее, с развитием браузеров, появились инлайн-блоки. Они неплохо справлялись с расположением элементов в ряд, но тоже имели недостатки. И только в начале десятых появились новые модули раскладки: Flexbox и Grid Layout. О них и поговорим.

Читать далее

STM32 — грамотно включаемся от кнопки

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров20K

Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных камней, и в этой статье я расскажу, как на них не попасть.

Читать далее

Проверка готовности приложения к работе в реальном ненадежном мире. Часть 3

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

Третья часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.

Статья состоит из 5 частей, которые выходят по очереди:

1. Надежность.

2. Масштабируемость/отказоустойчивость.

3. Resiliency/отказоустойчивость.

4. Безопасность. Процесс разработки. Процесс выкатки.

5. Наблюдаемость. Архитектура. Антипаттерны.

Читать далее

Практические варианты использования port knocking

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров9.1K

Многие компании не успевают оперативно устранять уязвимости. При этом время эксплуатации уязвимости после ее раскрытия сокращается. Существуют различные варианты попыток защиты\сокрытия сервисов от "любопытных глаз". Основные: использование нестандартного порта, fail2ban, ACL и tarpit (и их сочетание).
Есть ещё port knocking: как дополнительный фактор защиты - может снизить обнаружение сервиса, а не пытаться бороться с последствиями (брутфорс, эксплуатация), когда сервис уже обнаружен. Но, очень часто эта технология оказывается не используемой. Где-то из-за незнания технологии (хотя, статей хватает). Но, чаще из-за проблем на практике, которые мешают её внедрению:

‣ сложности использования технологией неподготовленным пользователям;
‣ фильтрация трафика (как на стороне клиента, так и сервиса);
‣ "раздувание" сгенерированных правил;
‣ несогласованность с другими отделами безопасности (трафик для port knocking может считаться зловредным).

Часто игнорирование port knocking приводит к тому, что задачи по безопасности пытаются решать другими технологиями. Что приводит к решениям, простота и эффективность которых вызывает вопросы. Усугубляется это частым отсутствием знаний в области наступательной безопасности: непониманием как атакующие могут обходить средства защиты. Я за годы работы пентестером и архитектором безопасности очень полюбил port knocking и нашёл варианты решить самые частые проблемы с его использованием. Ими и хочу поделиться.

Исходная задача: уменьшить количество несанкционированных обращений к сервису (в идеале - исключить полностью). При этом не мешая легитимным обращениям.

В статье обсудим:

‣ зачем (и как) пытаться убрать сервис из базы поисковиков (Censys, Shodan);
‣ использование нестандартного порта, fail2ban, ACL, tarpit и какие подходы используют атакующие для попытки обхода этих мер;
‣ варианты port knocking и практические проблемы их использования;
‣ "прозрачный" port knocking (не требующий от пользователей дополнительных действий, не подверженный фильтрафии трафика и согласующийся с сетевыми мерами безопасности);
‣ port knocking в docker контейнере: когда полезен и как его сделать;
‣ использование ipset для повышения эффективности port knocking;
‣ некоторые спорные практики защиты.

Читать далее

KAN: Kolmogorov–Arnold Networks

Уровень сложностиСложный
Время на прочтение75 мин
Количество просмотров20K

Предлагаю вашему вниманию полный перевод статьи об алгоритме нейронной сети на основе теоремы Колмогорова Арнольда, опубликованной исследователями из Massachusetts Institute of Technology, California Institute of Technology, Northeastern University и The NSF Institute for Artificial Intelligence and Fundamental Interactions.
В настоящее время в на просторах интернета есть лишь посты на основе данной статьи с интригующими названиями типа «Новый убийца нейросетей? Сеть Колмогорова Арнольда (KANs)» или «Исследователи разработали принципиально новую архитектуру нейросетей, которая работает лучше персептрона» и т. п. Для лучшего понимания это темы обратимся к первоисточнику, опубликованному не так давно — в апреле 2024 года.

Читать далее

Как мы внедрили CockroachDB на DBaaS в компанию классических СУБД

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров7.8K

Привет! Меня зовут Полина Кудрявцева, я инженер DBA в Авито. В этой статье я расскажу о том, как мы внедрили CockroachDB на DBaaS в компанию классических СУБД, а также опишу его плюсы, минусы и особенности работы.

Читать далее

Практики SRE: стандартизация логов

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.6K

В предыдущих статьях я рассказывал как мы перешли на vector.dev с Elastic для обработки логов и как мы теперь считаем метрики по логам с его помощью.

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

TL;DR:

Нам помогли наработки по Vector.dev, договоренность с разработчиками и обнаруженная OpenTelemetry Logs Data Model. В итоге это все скомпоновалось в решение которое существенно упростило нам жизнь.

Пройти лабиринт

Английский для продакта: как я выучил язык для срочного поиска работы

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

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

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

Читать далее

Пацанский английский. Ленивый способ наконец выучить английский язык: без курсов, без зубрежки, бесплатно

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров204K

Привет, Хабр! Я не являюсь преподавателем английского языка, но, как и многие присутствующие, долгие годы хотел постигнуть его дебри. В школе я от всего сердца завидовал ребятам, которым он даётся налегке, без видимых трудностей. Я же зубрил, пытался понять, получал двойки… и люто ненавидел английский язык как школьный предмет. Мечтал владеть, но совсем не хотел учить. После школы и университета приступал к его изучению несколько раз, однако каждый мой всплеск быстро угасал.

Наконец случилось чудо. В одну из очередных попыток я нащупал способ, который позволил продолжать развиваться, делать успехи, осознавать их и разжигать мой огонь всё сильнее и сильнее. Сегодня мне сложно представить день, проведенный без английского языка. И мне не хочется говорить без “изучения”, поскольку не сказал бы, что я именно учу. Скорее — постепенно “прошиваюсь” английским, как это обычно происходит с новорожденным детьми, которые постепенно начинают говорить, слушая и наблюдая за своими родителями. В настоящее время мой словарный запас не такой большой: 9 — 12 тысяч слов (зависит от теста). Я свободно смотрю видео на Ютубе разнообразной тематики (видеоуроки, спорт, фитнес, музыка, путешествия, кулинария, обзоры и т.д.), читаю документацию, компьютерную и популярную литературу, публицистику.

Читать далее

Кто такие Data-специалисты, чем они занимаются и как строится работа

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

Привет, Хабр! Меня зовут Азат Якупов, я работаю Data Architect в Quadcode. Сегодня хочу рассказать о Data-специалистах и познакомить вас с нашей командой Data Platform.

Читать далее

Введение в управление технологиями для ИИ-стартапа

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.2K

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

Эффективное управление стратегией требует понимания того, чем именно управляют. Рассмотрим основные объекты управления в рамках концепции Run-Change-Disrupt, предложенной компанией Gartner. Этот подход включает: RUN (поддержка повседневной деятельности компании), CHANGE (управление проектами по запуску новых продуктов и технологий) и DISRUPT (внедрение прорывных стратегических решений). Концепция позволяет создавать инновационные продукты, адаптироваться к изменениям и сохранять текущие рыночные позиции.

Читать далее

Разработка сложных процессорных систем на примере модуля SMARC. Продолжение

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров7.8K
Приветствую, Хабр!



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

  • выбор стека платы,
  • документация от производителя процессора,
  • трассировка полигонов питания,
  • расчет волнового сопротивления.

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

Подборка игр с низкоуровневым программированием

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров39K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности

12 вместо 100+, или Как быстро и удобно создать базовый интерфейс для ОС [статья-воркшоп]

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров13K
Все мы знаем, что токен — это всего лишь ключ и значение. И нет ничего проще, чем их создавать. Придумываешь ключ, который полностью описывает кейс, назначаешь значение из базовой палитры — готово. Такой способ декларативен, но когда используешь токены каждый день, появляется ряд неудобств: сложно запомнить, сложно найти в списке, больно вбивать в редактор…

Вот, например, список токенов из дизайн-системы Atlassian. Смогли бы вы запомнить и скомбинировать «всего-то» сотню-другую названий?



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

Мои эксперименты с искусственной жизнью

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров11K

Сегодня я расскажу про свои эксперименты с симуляцией эволюции.

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

За то, что бот будет делать в текущий ход, отвечает геном. При размножении есть шанс 1/4, что новый бот мутирует. При мутации его геном немного изменяется. Если мутация была положительной - бот может оставить больше потомства, таким образом полезные мутации будут приживаться, а вредные - отсеиваться.

Читать далее

Ускоряем Nginx за 5 минут

Время на прочтение5 мин
Количество просмотров299K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

Структурированный протокол обмена данных Protobuf или JSON во фронтенде?

Время на прочтение4 мин
Количество просмотров38K
image

В новом проекте в нашей команде мы выбрали frontend framework VUE для нового продукта, бэкенд написан на PHP, и уже как 17 лет успешно работает.

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

Почему иногда лучше оценить задачу в размерах майки, чем в часах

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров13K

Привет! Я Игорь, фронтенд-разработчик в Selectel. Когда-то давно я был проектным менеджером в небольшой компании, где было принято работать по модели Waterfall. Все этапы разработки были определены заранее, а на каждый этап отводилось определенное время.

Задачи были оценены строго по часам, ни о каких спринтах мы не знали. Когда что-то не учитывалось — все планы и сроки срывались из-за невозможности адаптировать разработку под изменение среды. В общем, у нас были четкие временные отрезки, немного хаоса и пузырек валерьянки на столе…

Почасовая оценка задач мне всегда казалась неэффективной. Но в то время не было опыта взаимодействия с другими методологиями. Сейчас я счастлив, ведь работаю с относительной оценкой задач в Story Points. 🙂 Добро пожаловать под кат, если тоже хотите добавить в ваш рабочий процесс немного гибкости!
Читать дальше →

Как и зачем создавать кастомные сборщики мусора в Go

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

В Golang (да в принципе во всех ЯП) управление памятью и эффективное использование ресурсов — основа создания высокопроизводительных приложений. Одним из важных инструментов, который помогает справляться с этой задачей, является сборщик мусора (на англ garbage collection). Встроенный сборщик мусора Go выполняет свою работу довольно хорошо, но иногда требуется более тонкая настройка, чтобы соответствовать специальным требованиям потребностям конкретного приложения.

Здесь нам и помогут кастомные сборщики мусора.

Читать далее

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 9

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3K

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильёй. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья — мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • какие сюрпризы есть при использовании свойства display;
  • о чём нужно помнить при вёрстке кнопки «Показать пароль»;
  • зачем нужны подсказки с помощью атрибута aria-label при разметке областей навигации;
  • как можно переборщить с заголовками и какие проблемы будут.

Давайте начнём!

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность