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

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

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

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

Время на прочтение6 мин
Охват и читатели54K

Приветствую всех жителей хабравиля! Сегодня я подготовил для вас основы по блочной модели 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 мин
Охват и читатели68K

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


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

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

std::move vs. std::forward

Время на прочтение8 мин
Охват и читатели60K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели17K

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

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели202K
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 мин
Охват и читатели53K
Один французский «исследователь безопасности» этим летом опубликовал невиданно много найденных им уязвимостей типа 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 мин
Охват и читатели48K

Привет Хабр!

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

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

Читать далее

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

Время на прочтение14 мин
Охват и читатели39K

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

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

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 мин
Охват и читатели951K

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

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

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

Время на прочтение2 мин
Охват и читатели2.7K

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

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

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели11K

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

Читать далее

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

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

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

Время на прочтение12 мин
Охват и читатели22K

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


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

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

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

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

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

Часть 1


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

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


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

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

Время на прочтение7 мин
Охват и читатели9.2K

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

Читать далее

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

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

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



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

Информация

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