Как стать автором
Обновить
0
0

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

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

GET запросы на практике: правила, принципы и примеры

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

Я думаю, что вы не раз уже гуглили, заглядывали в статьи, манифесты IT-гигантов о лучших практиках проектирования API. Я тоже.

Но в большинстве из них всё ограничивается описанием URL ресурса, мотивацией использовать пагинацию, сложными словами про кэширование и SSL. Это, безусловно, необходимо для общего понимания технологий, но практически не помогает, когда ты сидишь перед пустой страницей и надо начать “проектировать контракт”.

Я работаю тимлидом направления системного анализа в X5Tech и за все время развития карьеры сталкивалась с большим количеством кейсов проектирования Web систем. IT продукты в большинстве очень динамичны: постоянно изменяются требования, появляются новые, итеративно улучшается пользовательский опыт (по принципу 20% усилий на 80% результата, а остальное доделаем потом).

Часто при проектировании мне помогала следующая идея: было бы здорово проектировать контракт так, чтобы при малейшем изменении/добавлении бизнес-правил его не приходилось сильно трансформировать, так как API является стыковочным звеном между разными слоями приложения. По ходу повествования я приведу пару примеров, чтобы проиллюстрировать такие изменения.

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

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Комментарии 11

CSS для печати на бумаге

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

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

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

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 17

Создание своего UEFI приложения

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

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее
Всего голосов 86: ↑85 и ↓1 +84
Комментарии 80

Разбираемся в АА-деревьях (Python)

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

АА-дерево - это модификация красно-черного дерева с целью упрощения реализации

Как его реализовать и как оно работает на конкретных примерах - вот о чем эта статья

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 10

Переезд на Астра Линукс

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

Бывает ситуация, когда вот стоит нормальный, не ветхий дом с жильцами, с работающими коммуникациями. И простоял бы он так еще много лет. Но принято решение проложить новую магистраль и дом ей мешает. Можно снести дом, недалеко построить новый и жильцов туда переселить. А можно переместить в нужное место сам этот дом прямо вместе с жильцами и тараканами.

Такая аналогия приходит на ум после принятия решения о переходе с платформы Windows на пока единственную сертифицированную альтернативу – ОС Астра Линукс. Как жильцы гипотетического дома не могли отменить решение о магистрали, так и мы не можем отменить это решение. Придется переходить. Однако легко сказать «перейти». Когда я познакомился с IBM-PC/XT, какой-нибудь Торвальдс еще школу не кончил. За эти годы (чего уж там годы - десятилетия) появилось много привычек, приемов, навыков. Жалко все это оставлять ради принудительного перехода в другую среду. И приходит мысль – попытаться переехать, так сказать, всем домом, а не строить новый.

Читать далее
Всего голосов 48: ↑42 и ↓6 +36
Комментарии 153

Нерезидент на удалёнке

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

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

Согласно ст.312.1 ТК РФ, «дистанционной (удаленной) работой (далее - дистанционная работа, выполнение трудовой функции дистанционно) является выполнение определенной трудовым договором трудовой функции вне места нахождения работодателя, его филиала, представительства, иного обособленного структурного подразделения (включая расположенные в другой местности), вне стационарного рабочего места, территории или объекта, прямо или косвенно находящихся под контролем работодателя, при условии использования для выполнения данной трудовой функции и для осуществления взаимодействия между работодателем и работником по вопросам, связанным с ее выполнением, информационно-телекоммуникационных сетей, в том числе сети "Интернет", и сетей связи общего пользования.»

Статья 27 Конституции РФ гарантируем каждому свободу передвижения. И будет излишним говорить о праве работодателя ограничивать свободу передвижения работника, коль скоро трудовые отношения осуществляются в рамках дистанционной работы. Ст.81 ТК РФ также не предусматривает возможности уволить работника по инициативе работодателя за нахождение за пределами РФ или изменение налогового резидентства. Также закон не содержит общих правил, обязывающих граждан РФ сообщать работодателю о выездах за границу или изменение статуса налогового резидента.

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

Методы удаленного доступа к Linux GUI

Время на прочтение 11 мин
Количество просмотров 340K
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.


Читать дальше →
Всего голосов 39: ↑34 и ↓5 +29
Комментарии 42

Переменные CSS — курс молодого бойца

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

Переменные CSS (также известные как настраиваемые свойства) поддерживаются браузерами почти 4 года. Мне нравится применять их в зависимости от проекта или ситуации. Они очень полезны и просты в использовании, но зачастую фронтенд разработчик неправильно использует или неправильно понимает их.

Основная цель статьи: я хочу иметь место, где собрано все, что я знаю о переменных CSS, чтобы узнать и понять больше. Здесь вы прочитаете обо всем, что должны знать о переменных CSS, включая примеры применения в коде. Вы готовы? Тогда погружаемся.
Приятного чтения!
Всего голосов 35: ↑33 и ↓2 +31
Комментарии 9

DNS записи для почтовых серверов

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


Представьте, что вы в реальной жизни получили конверт, где в поле “Отправитель” написано имя вашего старого друга. Можете ли вы, не открыв и не прочитав письма, точно сказать – это конверт от вашего старого друга или какого-то злоумышленника?

Именно эта задача стоит перед почтовыми серверами — просто взглянув на конверт определить, не врёт ли поле отправитель. Для этого почтовый сервер обращается к тому механизму, который в интернете служит для подтверждения владения доменом – DNS серверу.
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 19

Вечный сервер — как избавиться от ежемесячных платежей за хостинг

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


— На вашем счету недостаточно средств для продления услуги. Вся ваша работа за 10 лет будет уничтожена в течение 2 рабочих дней.


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

В статье мы расскажем как избавиться от регулярных платежей на содержание хостинга, доменных имен, SSL-сертификатов. И как сделать максимально автономный сервер, который переживет зомби-апокалипсис.
Читать дальше →
Всего голосов 61: ↑50 и ↓11 +39
Комментарии 161

CSS Grid: Верстаем адаптивный журнальный макет в 20 строк

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

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

Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
Читать дальше →
Всего голосов 49: ↑48 и ↓1 +47
Комментарии 10

Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm

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

Язык программирования Python считается достаточно простым. На нем легче и быстрее пишутся программы, по сравнению с компилируемыми языками программирования. Для Python существует множество библиотек, позволяющих решать практически любые задачи. Есть, конечно, и минусы и другие нюансы, но это отдельная тема.


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


Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.


После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.

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

Генерируем тексты песен цепями Маркова

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

Сегодня я хочу рассказать про свой опыт генерации текста песен с помощью python и библиотеки Markovify


Дисклеймер: автор хотел повеселить себя вечером и не придумал ничего лучше, как:


В качестве корпуса для "обучения" цепи я буду использовать текст песен группы Кис Кис.


image


Пикча выше иллюстрирует то как работает цепь Маркова. А вот неплохая статья.

Читать дальше →
Всего голосов 33: ↑25 и ↓8 +17
Комментарии 17

Строим маршрутизатор в SOCKS на ноутбуке с Debian 10

Время на прочтение 10 мин
Количество просмотров 16K
Целый год (или два) я откладывал публикацию данной статьи по главной причине — мной уже были опубликованы две статьи, в которых я описал процесс создания маршрутизатора в SOCKS из самого обычного ноутбука с Debian.

Однако, с тех пор стабильная версия Debian обновилась до Buster, мне в личку обратилось достаточное количество людей с просьбой помочь в настройке, а значит, мои предыдущие статьи не являются исчерпывающими. Что ж, я и сам догадывался, что методы, изложеннные в них, не до конца раскрывают все тонкости настройки Linux для маршрутизации в SOСKS. К тому же они написаны для Debian Stretch, а после обновления до Buster, в системе инициализации systemd, я заметил небольшие изменения во взаимодействии служб. Да и в самих статьях я не использовал systemd-networkd, хотя она лучше всего подходит для сложных сетевых конфигураций.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 24

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Время на прочтение 5 мин
Количество просмотров 170K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

Читать дальше →
Всего голосов 385: ↑339 и ↓46 +293
Комментарии 185

Стилизация старого доброго элемента button

Время на прочтение 17 мин
Количество просмотров 203K
Кнопка — это один из тех элементов, которые чаще всего используются на веб-страницах. Тег <button></button> может быть применён для запуска некоего процесса вроде вывода данных, открытия модального окна, отправки формы и так далее. В материале, перевод которого мы публикуем, речь пойдёт о тонкостях стилизации элемента button и о том, как оформлять кнопки с учётом того, чтобы они хорошо работали бы в любых браузерах. Кроме того, тут будет рассмотрено большинство часто используемых стилей кнопок. Поговорим мы здесь и о некоторых сложностях, которые возникают при работе с кнопками.


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

Понимание CSS Grid (1 часть): Grid-контейнер

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

Приветствую! Представляю вашему вниманию перевод статьи «Understanding CSS Grid: Creating A Grid Container» автора Rachel Andrew


Понимание CSS Grid: Создание Grid-контейнера


Хотя технология CSS Grid стала поддерживаться некоторыми браузерами еще в 2017 году, у многих разработчиков пока не было возможности использовать её в своих проектах. Технология CSS Grid привносит множество новых свойств и значений. Из-за этого может казаться сложной. Однако, многие используемые в ней инструменты являются взаимозаменяемыми, а это значит, что вам не нужно изучать всю спецификацию, чтобы начать. Цель серии статей "Понимание CSS Grid" – провести читателей по пути от новичка до эксперта.


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


В этой статье мы рассмотрим:


  • Создание grid-контейнера с помощью display: grid или display: inline-grid
  • Создание колонок и строк с помощью grid-template-columns и grid-template-rows
  • Управление размерами неявных треков (полос / дорожек) с помощью grid-auto-columns и grid-auto-rows
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Исчерпывающий путеводитель по тегу iframe

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

Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer.


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


Чтобы помочь вам сформировать собственное мнение и отточить свои навыки разработчика, мы расскажем обо всем, что вам нужно знать об этом противоречивом теге.


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


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

Охотимся на техники и тактики атакующих с использованием Prefetch-файлов

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


Файлы трассировки, или Prefetch-файлы, появились в Windows еще со времен XP. С тех пор они помогали специалистам по цифровой криминалистике и реагированию на компьютерные инциденты находить следы запуска программ, в том числе вредоносных. Ведущий специалист по компьютерной криминалистике Group-IB Олег Скулкин рассказывает, что можно найти с помощью Prefetch-файлов и как это сделать.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

10 хитростей Python, о которых полезно знать

Время на прочтение 6 мин
Количество просмотров 33K
По данным StackOverflow Python — это самый быстрорастущий язык программирования. Например, в одном из отчётов Forbes речь идёт о том, что использование Python выросло на 456%. Python применяется в Netflix, в IBM, и ещё в тысячах компаний по всему миру. Давайте не забывать и о Dropbox. Сервисы этой компании тоже написаны на Python. В соответствии с исследованием Dice, знания в области Python весьма востребованы в наши дни, а индекс популярности языков программирования говорит о том, что Python — это сегодня самый популярный язык в мире. Если сравнить Python с другими языками, то окажется, что у него есть следующие сильные стороны:

  1. Совместимость с подавляющим большинством платформ и операционных систем.
  2. Наличие множества опенсорсных фреймворков и инструментов.
  3. Код, который легко читать и поддерживать.
  4. Надёжная стандартная библиотека.
  5. Стандартный механизм разработки через тестирование.


Читать дальше →
Всего голосов 58: ↑37 и ↓21 +16
Комментарии 22

Информация

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