Search
Write a publication
Pull to refresh
0
@AndrianPrytularead⁠-⁠only

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

Send message

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

Reading time4 min
Views4K

Здравствуйте, меня зовут Дмитрий Карловский и я… практикую терморектальную ароматерапию. Понимаю, что каждый любит своё болото, и будет защищать его до последней капли жижи. Тем не менее, высокая инженерная культура требует объективности в оценке инструментов.


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


Что ж, давайте разберём, какие бывают проблемы, как их оценить и посравниваем некоторые популярные проекты.

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

Как мы боролись с фейковыми аккаунтами на сайте знакомств

Reading time6 min
Views20K

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

Продолжение истории

14 лучших практик разработки приложений на OpenShift

Reading time4 min
Views5.6K

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

Читать дальше: 14 лучших практик OpenShift

Git для новичков (часть 2)

Reading time4 min
Views155K

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

В данной статье, вся работа с Git будет через командную строку.

Читать далее

Хватит копировать, пора сливаться. Часть 2. Конфликт слияний, который так и не произошёл (а должен был)

Reading time3 min
Views2.8K

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


Отсутствие любого конфликта.

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

OrbitDB — децентрализованная база данных на IPFS

Reading time9 min
Views8.9K


Мы уже рассказывали про InterPlanetary File System, распределённую сеть поверх одноимённого p2p-протокола с доступом к данным по HTTP. Данные в ней не поддаются изменению (не блокчейн, но часть принципов совпадает), хранятся неограниченно долго и у неё даже есть система резервируемых имён IPNS, позволяющая бесплатно размещать статические сайты и serverless приложения. Главный недостаток IPFS — низкая и непредсказуемая скорость передачи данных: каждый файл или каталог разбивается на блоки, которые случайным образом разлетаются по всей сети и собираются воедино с помощью DHT. Таким образом, если даже незначительную часть блоков занесёт на другое полушарие, затормозится вся загрузка. Это в принципе проблема всех распределённых сетей и легкого решения нет. Зато разработчики и комьюнити проекта OrbitDB смогли решить другую назойливую проблему IPFS — отсутствие полноценной базы данных, которая могла бы полноценно интегрироваться с экосистемой IPFS и быть такой же независимой и безопасной.

Новый плагин CrowdSec для защиты сайтов на WordPress

Reading time4 min
Views4.2K

Всем привет! Мы активно работаем над развитием нашей системы блокировки нежелательных IP-адресов и сегодня рады рассказать сообществу о нашей новой разработке — плагине WordPress для упрощения жизни веб-мастеров и защиты администрируемых ими сайтов.

Как и многие другие наши решения, новый баунсер для WordPress — опенсорсная разработка, выпускаемая под лицензией MIT. Распространяем мы его в виде официально размещенного WordPress-плагина. Ознакомиться со страницей нашей разработки и скачать его можно на официальном сайте WordPress.

Читать далее

Интернет-магазин. Создание, набитые шишки и полезные выводы

Reading time6 min
Views10K

Наверняка многие, желая создать интернет-магазин, сталкивались с вопросами. Выгодно ли? Насколько трудно создать? Сколько стоит? Какие подводные камни? Давайте попробуем разобраться.

Читать далее

Обязательно или нет? Как отмечать поля в формах

Reading time2 min
Views14K

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

Читать далее

SQL-инъекции' union select null,null,null --

Reading time9 min
Views40K

Согласно OWASP Top-10, SQL-инъекции считаются наиболее опасными уязвимостями. Успешная атака с их использованием может не только привести к компрометации данных, таких, как: пароли, данные кредитной карты или личная информация пользователя, но и, при определенных условиях, самого сервера. В этой статье мы рассмотрим предпосылки к появлению SQL-инъекций, ознакомимся с их видами и составим список рекомендаций для защиты веб-приложений от подобных недостатков.

Читать далее

Имя не гарантирует безопасность. Haskell и типобезопасность

Reading time12 min
Views2.4K
Разработчики на Haskell много говорят о типобезопасности (type safety). Сообщество Haskell-разработчиков отстаивает идеи «описания инвариант на уровне системы типов» и «исключения недопустимых состояний». Звучит как вдохновляющая цель! Однако не совсем понятно, как ее достичь. Почти год назад я опубликовала статью «Parse, don’t validate» — первый шаг к восполнению этого пробела.

За статьей последовали продуктивные обсуждения, но нам так и не удалось прийти к консенсусу относительно правильного использования конструкции newtype в Haskell. Идея достаточно проста: ключевое слово newtype объявляет wrapper type (тип-обертка), который отличается по имени, но репрезентативно эквивалентен типу, который он обертывает. На первый взгляд, это понятный путь к достижению типобезопасности. Например, рассмотрим, как использовать объявление newtype для определения типа адреса электронной почты:

newtype EmailAddress = EmailAddress Text

Этот прием предоставляет нам определенное значение, а в сочетании с умным конструктором и границей инкапсуляции даже может обеспечить безопасность. Но это совсем другой вид типобезопасности. Он намного слабее и отличается от того, который я выделила год назад. Сам по себе newtype — это просто псевдоним.

Names are not type safety ©
Читать дальше →

Чек-лист тестирования WEB приложений

Reading time5 min
Views235K
Привет! После публикации статьи «Чек-лист тестирования мобильных приложений», поступило большое количество сообщений про такой же чек-лист, только для WEB приложений. Чтобы ответить на этот вопрос была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого WEB приложения.


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

Основы Bash-скриптинга для непрограммистов. Часть 3

Reading time8 min
Views12K

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

Читать далее
Сижу, никого не трогаю, и тут на мой телефон начинают сыпаться уведомления от Steam с кодами авторизации. Пришло писем 18, не меньше: оказалось, кто-то пытался угнать аккаунт сына. Хорошо, что я привязал его к собственной почте (карта-то моя!), потому что пароли у сына везде одинаковые. Очевидно, он вбил свой пароль на каком-то непонятном сайте и пароль тут же угнали. Позже я задумался, сколько же ещё дырок можно найти в безопасности моих домашних девайсов. Осознав масштабы проблемы, загорелся идеей защитить своих домашних и зоопарк их устройств — а попутно узнал кое-что интересное, чем и хочу с вами поделиться. Подробнее — под катом.
Читать дальше

Боль фронтов, или что нам нужно от дизайнеров

Reading time12 min
Views21K

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

Читать далее

5 самых неприятных фич для слепого человека на сайтах

Reading time4 min
Views12K
Вот пять самых раздражающих своей недоступностью веб-элементов, с которыми я сталкиваюсь как слепая девушка-пользователь скринридера каждый день.

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

Как работают скринридеры


Скринридеры позволяют слепым и слабовидящим людям самостоятельно пользоваться компьютерами, телефонами и планшетами. В большинстве скринридеров работает движок Text To Speech (TTS), который преобразует текст с экрана в речь.
Читать дальше →

SafetyNet Attestation — описание и реализация проверки на PHP

Reading time10 min
Views9.5K

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

После многочасовых поисков и скрупулёзного изучения официальной документации Google решил поделиться полученным опытом. Потому что, кроме официальной документации, я нашел только отрывочные описания частных примеров реализации на разных ЯП. И ни намека на комплексное объяснение особенностей проверки по SafetyNet на сервере.

Статья будет полезна разработчикам, которые хотят подробнее разобраться с технологией верификации устройств по протоколу SafetyNet Attestation. Для изучения описательной части не обязательно знать какой-либо язык программирования. Я сознательно убрал примеры кода, чтобы сфокусироваться именно на алгоритмах проверки. Сам пример реализации на PHP сформулирован в виде подключаемой через composer библиотеки и будет описан ниже.

А в конце статьи — ссылка на разработанную мной библиотеку на PHP, которая обеспечивает полный цикл верификации JWS.

Читать далее

Выпускные проекты: как позаботиться о себе, завести питомца, найти пункт переработки и получить ответ на любой вопрос

Reading time5 min
Views2.2K


В наших образовательных проектах используется проектный подход. Студенты Технопарка, Техносферы, Техноатома, Технотрека и других совместных с вузами образовательных программ под конец обучения объединяются в команды, работают над проектами и представляют жюри финальные работы. 7 декабря 2020 года прошла защита таких работ в онлайн-формате, по итогам голосования лучшими признали 4 проекта.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity