Обновить
-16
@eikhnerread⁠-⁠only

Пользователь

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

Свойства блочной модели CSS. Объяснение с примерами

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

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

Погнали!

Реализация Web API OData в ASP.NET Core 3 и ASP.NET 5 (часть 1). Связи «многие-ко-многим»

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

Наша команда занимается развитием корпоративной системы электронного документооборота. В команде часть приложений разрабатывается на текущей LTS версии .NET Core 3.1, в частности, бэкэнд для SPA, а также ряд Worker Service’ов, которые с определенным интервалом взаимодействуют с СЭД.

Со временем, возникла необходимость использования этими приложениями общих мастер-данных. Для их хранения решили использовать БД PostgreSQL, так как имели свежий опыт и почти готовое окружение для его развертывания. Непосредственно для получения (а в будущем – и для записи) данных приложениями, решили реализовать Web API на .NET Core 3.1, чтобы инкапсулировать взаимодействие с БД в одном приложении и заложить возможность взаимодействия с любой системой. В качестве ORM, исходя из сложившихся практик и опыта, использовали EF Core. При этом, нужна была возможность фильтрации и получения связанных данных. Чтобы не придумывать велосипед в этой части, пришли к необходимости реализации API на основе стандартов OData.

В сети есть ряд хороших статей по реализации API OData на .NET Core, однако информация в них весьма разрозненна и зачастую авторы упускают важные нюансы, имеющиеся в реализации. В первой статье нами описана общая реализация API OData с использованием EF Core. Особое внимание при этом уделено неочевидным моментам при реализации типа связи «многие-ко-многим».

Читать далее

Использование Let's Encrypt для внутренних серверов

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

Let's Encrypt — это центр сертификации, который предоставляет бесплатные сертификаты в полностью автоматизированном процессе. Эти сертификаты выдаются по протоколу ACME. За последние два года в Интернете широко использовалась технология Let’s Encrypt — более 50% веб-сертификатов SSL / TLS теперь выдает Let’s Encrypt.


В этом посте описывается, как выдавать сертификаты Let's Encrypt для внутренних серверов.

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

std::move vs. std::forward

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

Несмотря на то, что материалов на тему move-семантики и идеальной передачи в Интернете предостаточно, вопросов типа «что я должен здесь использовать: move или forward?» не становится меньше или мне просто «везет» на них. Поэтому и решено было написать эту статью. Предполагается, что читатель хотя бы немного знаком с rvalue-ссылками, move-семантикой и идеальной передачей.

Читать далее

Анализ вредоносных программ. Интересные трюки

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

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

В качестве первой публикации решил выбрать одну из любимых находок, которая попалась мне в октябре 2016 года. Речь идет об одной из первых реализаций интересной техники закрепления с помощью WMI "Event Triggered Execution: Windows Management Instrumentation Event Subscription" (T1546.003).

Читать далее

10 no-code-платформ, на которые стоит обратить внимание в 2021 году

Время на прочтение7 мин
Количество просмотров188K
No-code-инструменты позволяют обычным пользователям ПК создавать веб-сайты и приложения без необходимости написания программного кода. До того момента, когда подобные инструменты достаточно хорошо развились и достаточно сильно распространились, разработка простого веб-приложения была нетривиальной задачей, решить которую могли лишь программисты. Но, к счастью, в наши дни это уже не так. Несмотря на то, что no-code-инструменты не способны решить абсолютно все задачи разработки программных проектов, подбор и использование адекватного стека подобных инструментов, без сомнения, упростит и ускорит решение некоторых задач, сделает доступнее то, от чего раньше, по разным причинам, отказывались.



Если задуматься об этом, то вы, возможно, уже использовали low-code- или no-code-инструменты. А если вы занимаетесь веб-разработкой, то вероятность того, что вы уже работали с такими инструментами, возрастает. Даже если вы сами не верите в то, что пользовались подобными инструментами, знайте, что вы, хотя бы в какой-то форме, их применяли.

В этом материале мы рассмотрим некоторые из наиболее широко используемых no-code-платформ. Применение этих платформ способно упростить решение различных задач, встающих перед программистами. Но, прежде чем мы перейдём к разговору об этих платформах, поговорим о том, что собой представляют no-code-инструменты, и о том, как ими пользуются.
Читать дальше →

Если сотрудник убьёт сервис, он убьёт вашу компанию. Остановите его

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

Представьте: вы долго работали сисадмином, обросли навыками DevOps и DevSecOps, стали профи и решили открыть свою аутсорсинговую компанию. В штате несколько сисадминов и эникеев, вы настоящая команда, заказчики радуются, что им не нужно нанимать админа в штат. Дело души, деньги, бонусы для сотрудников, корпоративы — вот она, внеофисная жизнь предпринимателя (на самом деле нет). И тут поступает один звонок, второй, третий… У первого заменили рабочую крутую видеокарту на самую бросовую, у второго опоздание на три часа, а к третьему сотрудник так и не дошёл. И вы не слышите, что Вася тиснул себе видюху, Маша безбожно опоздала, а Миша просто свалил на левый заказ — вы слышите «Не хочу иметь дела с вашей компанией». Просто потому что для заказчика нет конкретных людей, есть компания, которой он заплатил и на которую он рассчитывает. Сотрудники подвели компанию, она подвела его. Самое время уйти к конкурентам, оставить пару гневных отзывов и отсоветовать партнёрам иметь дело с этой «шарашкиной конторой». И вот вроде вы — профессионал и ответственный человек, но вам не верят. От вас уходят. Ваш бизнес губят простые ребята, которые ещё утром пили кофе и разбирали заказы. Ох уж этот f*cking человеческий фактор!   

Читать далее

Зачем делать копию Facebook под Internet Explorer 6 в 2021 году?

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

В августе этого года Microsoft прекращает поддержку Internet Explorer 11, тем самым заканчивает эпоху браузеров, которые несли в себе одну очень важную миссию… скачивали нормальный браузер знакомили людей с когда-то прекрасным местом как интернет.

И, в связи с этим, меня посетила мысль — «А не сделать ли мне современный сайт так, как делали их тогда?». Отличный повод вспомнить как начиналась моя дорога в разработку и поностальгировать за теми годами. Вечер свободный, каких-то сложностей с вёрсткой под Internet Explorer я уже не припомню. Так-то почти 15 лет прошло. Думаю, справлюсь за час сильно не напрягаясь…
Продолжить чтение...

Ваш сайт тоже позволяет заливать всё подряд?

Время на прочтение4 мин
Количество просмотров52K
Один французский «исследователь безопасности» этим летом опубликовал невиданно много найденных им уязвимостей типа arbitrary file upload в разных «написанных на коленке», но популярных CMS и плагинах к ним. Удивительно, как беспечны бывают создатели и администраторы небольших форумов, блогов и интернет-магазинчиков. Как правило, в каталоге, куда загружаются аватары, резюме, смайлики и прочие ресурсы, которые пользователь может загружать на сайт — разрешено выполнение кода PHP; а значит, загрузка PHP-скрипта под видом картинки позволит злоумышленнику выполнять на сервере произвольный код.

Выполнение кода с правами apache — это, конечно, не полный контроль над сервером, но не стоит недооценивать открывающиеся злоумышленнику возможности: он получает полный доступ ко всем скриптам и конфигурационным файлам сайта и через них — к используемым БД; он может рассылать от вашего имени спам, захостить у вас какой-нибудь незаконный контент, тем подставив вас под абузы; может, найдя параметры привязки к платёжной системе, отрефандить все заказы и оставить вас без дохода за весь последний месяц. Обидно, правда?

Как ему это удастся?

Lingtrain Aligner. Написал приложение для создания параллельных книг, которое вас удивит

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

title


Здравствуй, читатель. Хотелось бы ненадолго отвлечь твое внимание от новостей и историй данной технической статьей. Поэтому пусть такой "кликбейтный" затравочный заголовок не вводит тебя в заблуждение.


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


Установка


Приложение я оформил в виде docker контейнера, поэтому запустить его у себя на машине не должно составить труда. Также можно запустить приложение из исходников, инструкция есть в репозитории.


Итак, для запуска приложения у себя на компьютере нужно выполнить следующие команды:


docker pull lingtrain/aligner:v4
docker run -v C:\app\data:/app/data -v C:\app\img:/app/static/img -p 80:80 lingtrain/aligner:v4

C:\app\data и C:\app\img — это папки на вашем компьютере.


Контейнер скачается с репозитория Docker Hub и запустится на 80-м порту. Откроем приложение в вашем любимом браузере по адресу localhost.


Lingtrain app 1


Сделаем три шага: загрузка, выравнивание, генерация.

Смотреть демо

Пишем на Питоне сразу хорошо

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

Привет Хабр!

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

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

Читать далее

Что можно положить в тег <head>

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

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

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

Читать далее

Частично рассекречено методическое пособие АНБ по взлому неизвестных шифров

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

Скульптура Kryptos у штаб-квартиры ЦРУ

Агентство национальной безопасности США наконец-то рассекретило третью часть известного учебника «Военная криптоаналитика» (MILCRYP), написанного для обучения специалистов АНБ и военных криптоаналитиков во время Холодной войны. Последняя часть трёхтомника опубликована с некоторыми купюрами, но всё равно представляет огромную ценность, ведь у нас не так много практических пособий по взлому шифров. Речь идёт о неизвестных, сложных кодах, которые составлены по непонятным правилам. Как к ним подступиться? Как найти зацепки? Книга отвечает на эти вопросы.

Возможно, учебник АНБ поможет расшифровать тексты, которые в течение многих десятилетий и столетий не поддаются криптоанализу. И даже тысячелетий, как в случае с критской письменностью из III тысячелетия до нашей эры (минойская цивилизация).

22 полезных примера кода на Python

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

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

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

Предотвращение медленных маломощных атак на приложения и API

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

Может показаться, что медленные маломощные атаки (так называемые атаки «Low and Slow») остались в прошлом, но практика показывает, что они до сих пор активно используются злоумышленниками. В 2020 году от таких атак пострадали 65 % организаций, при этом 30 % сталкивались с ними ежемесячно. Поэтому давайте уделим им заслуженное внимание и расскажем, как они осуществляются.

Если злоумышленник хочет парализовать работу приложения, самый простой способ — передача избыточного объема трафика с целью отключения сервера приложения (распределенная атака типа «отказ в обслуживании», или DDoS). Однако сегодня существует немало технологий, способных обнаруживать и блокировать такие атаки на основе IP-адресов или сигнатур, управления квотами, а также с помощью специализированных решений для предотвращения DDoS-атак.

В начале 2021г. мир столкнулся с возвращением старой, но очень действенной техники атак — медленными маломощными атаками. К концу февраля количество атак этого типа, направленных против клиентов Radware, выросло на 20 % по сравнению с четвертым кварталом 2020 года.

Читать далее

Использование Windbg для обратной разработки

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

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

Читать далее

Потоки, блокировки и условные переменные в C++11 [Часть 1]

Время на прочтение8 мин
Количество просмотров461K
В первой части этой статьи основное внимание будет уделено потокам и блокировкам в С++11, условные переменные во всей своей красе будут подробно рассмотрены во второй части
Читать дальше →

Создание системы расширения на библиотеке Qt

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

Плагины(Расширения)


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

Расширения делятся на два типа:

  • Для Qt
  • Для собственных приложений

Разберём как создать свою систему расширений и сами расширения для него.

Связь с расширением осуществляется с помощью интерфейса (сигналы, слоты и методы класса). Расширение загружается приложением при помощи класса QPluginLoader. Для загрузки расширения используется метод instance(), который создаёт объект расширения и возвращает указатель на него. Для выгрузки расширения используется метод unload().

Часть 1


В первом примере создадим расширение которое будет использовать функцию(алгоритм, формулу) из расширения.

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


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

Пишем свою навигацию в Qt

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

Всем привет. Я android разработчик с небольшим стажем. И сегодня я бы хотел поделиться опытом разработки учебного проекта на C++ и Qt с простой навигацией между экранами. Буду рад услышать критику или дополнения к моему решению и надеюсь, что оно сможет кому-то помочь и упростить жизнь.

Читать далее

Гибкая печатная плата своими руками

Время на прочтение6 мин
Количество просмотров25K
Туториалов по созданию обыкновенных печатных плат на просторах интернета более чем достаточно, а вездесущие китайцы упростили этот процесс до заводского качества. Однако, когда речь заходит о создании гибких плат, тут приходится изгаляться в меру своей смекалки. Хотя, справедливости ради, надо сказать, что и такие вещи китайцы тоже делают, хоть и не дёшево. Но мы будем говорить о ситуации, когда надо вот прямо сейчас и из подручных материалов. Собственно, я непосредственно и столкнулся с такой проблемой и одним из способов ее решения хочу поделиться.

Для начала пару слов что же это такое и в каких случая используется. В этом случае Википедия справедливо утверждает, что гибкая печатная плата (далее ГПП), это такая штука, которая может свободно изгибаться. Не поспоришь. В наиболее распространенном случае ГПП используется в виде соединительных шлейфов, как например на картинке ниже:



В более продвинутом варианте, на нем же распаивают некоторые компоненты. Те, кто разбирал старые сидюки, видел, что весь обвес головки выполнен как раз-таки на такой ГПП. Вот типичнейший пример:
 

Информация

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