Pull to refresh
5
0
Send message

Автономный картографический сервер с питанием от USB

Level of difficultyEasy
Reading time11 min
Views4.9K

Представьте себе: вы только что добрались до начала тропы, за многие километры от цивилизации, а приложение с картами на вашем смартфоне решило, что самое время уйти в оффлайн-режим. Статус приложения? Отключено. Обновления? Забудьте об этом. Память? Заполнена. Добро пожаловать на дикую природу, где ваш телефон потерян больше, чем вы сами.

Здесь на помощь приходит Backcountry Beacon — устройство с открытым исходным кодом, которое не зависит от Wi-Fi. В него предустановлены детализированные топографические карты USGS, которые не требуют обновлений; он оснащён надёжным GPS, точно определяющим ваше местоположение; а ещё он работает как простой файловый сервер, где можно хранить всё, что может понадобиться в походе, — будь то руководства по узлам, справочники растений или аудиокниги.

Читать далее
Total votes 23: ↑22 and ↓1+28
Comments26

Всё, что вы хотели знать о Django Channels

Reading time10 min
Views1.8K

Приветствую, друзья!

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

В этой статье я расскажу, как работать с Django Channels.

Читать далее
Total votes 15: ↑14 and ↓1+18
Comments0

Scrum или Kanban, что выбрать для вашей команды?

Reading time5 min
Views1.8K

При выборе подхода к управлению процессами разработки многие задаются вопросом: какой метод лучше — Scrum или Kanban? Оба подхода популярны, но они различаются по своей сути и применению. Давайте разберёмся, как их правильно использовать и можно ли комбинировать.

Читать далее
Total votes 17: ↑12 and ↓5+12
Comments3

Как и зачем использовать Template Method в C#

Level of difficultyEasy
Reading time7 min
Views5.1K

Template Method (он же «Шаблонный метод») — это паттерн проектирования, который определяет скелет алгоритма в методе, оставляя определенные шаги подклассам. Проще говоря, есть базовый алгоритм, но мы можно менять детали, переопределяя части этого алгоритма в наследниках.

Классический пример — процесс заказа товара в интернет-магазине. Независимо от того, какой у вас магазин, шаги примерно одинаковые: проверка наличия товара, оплата, упаковка и доставка. Но в зависимости от специфики магазина, эти шаги могут отличаться в деталях.

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

Читать далее
Total votes 16: ↑13 and ↓3+15
Comments45

Sidecar на Go: позволь другому заниматься твоими проблемами

Level of difficultyEasy
Reading time4 min
Views2K

Привет, Хабр!

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

Сегодня мы рассмотрим реализацию Sidecar на Golang.

Читать далее
Total votes 19: ↑17 and ↓2+20
Comments1

Регулярные выражения в SQL

Reading time6 min
Views14K

Привет, Хабр!

Представьте, что вам нужно найти иголку в стоге сена, но стог — это ваша БД, а иголка — данные со сложным шаблоном. Деофлтные операторы LIKE и IN тут не помогут — слишком уж они прямолинейны. Но зато здесь отлично зайдут регулярные выражения, которые позволяют выполнять сложные поиски и преобразования строк.

Читать далее
Total votes 27: ↑26 and ↓1+30
Comments11

База, которую нужно знать про JSON Schema

Level of difficultyEasy
Reading time7 min
Views16K

Привет, Хабр!

Сегодня мы рассмотрим одну из тем, которая, как ни странно, остаётся недооценённой — JSON Schema. Если ты аналитик (или хочешь им быть) и в твоей работе часто мелькают JSON-файлы, то наверняка знаешь, как сложно порой бывает держать всё это под контролем. В этой статье мы разберём всё, что тебе нужно знать про JSON Schema.

Читать далее
Total votes 34: ↑30 and ↓4+36
Comments10

Как поднять свой WebSocket сервер на Node.js: основы

Level of difficultyEasy
Reading time4 min
Views3.4K

Привет, Хабр!

Сегодня создадим свой WebSocket сервер на Node.js. Это тот самый протокол, который позволяет отправлять и принимать данные в реальном времени без перекладывания на HTTP. Для этого мы будем использовать библиотеку ws.

Читать далее
Total votes 26: ↑15 and ↓11+10
Comments8

ConcurrentBag в C#

Level of difficultyEasy
Reading time6 min
Views2.3K

Привет, Хабр!

В многопоточном программирование постоянно нужно решать задачи, связанные с доступом к данным из нескольких потоков одновременно. И тут очень кстати ConcurrentBag — коллекция, которая была добавлена в .NET Framework 4.0 специально для таких случаев. Она подходит для ситуаций, где порядок элементов не важен. Если нужно просто кидать данные в мешок, пока куча потоков их туда же добавляет.

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

Читать далее
Total votes 15: ↑14 and ↓1+20
Comments9

Как повысить эффективность разработки ПО. 5 крупных направлений

Reading time5 min
Views3.1K

Если вы, как менеджер, ищете способы улучшить эффективность разработки, обратите внимание на эти важные пункты. Они показывает ключевые направления для оптимизации процессов и повышения продуктивности команд.

Читать далее
Total votes 28: ↑15 and ↓13+8
Comments11

Locust: проводим нагрузочное тестирование

Reading time7 min
Views1.9K

Автоматизация тестирования приложений является важным элементов в обеспечении процессов CI/CD. В этой статье мы поговорим о практическом использовании инструмента с открытым исходным кодом Locust для проведения нагрузочного тестирования приложений.

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments5

Обзор библиотеки RxPY

Level of difficultyEasy
Reading time5 min
Views3K

Привет, Хабр!

Сегодня поговорим о хорошей библиотеке для управления потоками данных в Python – RxPY — реализации Reactive Extensions для нашего любимого языка. В версии 4.0.4 эта библиотека получила ряд улучшений, и сегодня мы разберем её основной функционал.

Читать далее
Total votes 16: ↑14 and ↓2+18
Comments0

О bruteforce и его реинкарнациях

Reading time6 min
Views3K

Все мы хорошо знаем о том, что пароли можно подобрать или перехватить другими способами. В рамках данной статьи мы будем говорить именно о подборе паролей. Будем считать, что наш атакующий не имеет физического доступа к машине, с которой осуществляется аутентификация и следовательно, поставить троян или кейлоггер он не может. Также хакер не может контролировать каналы связи, весь трафик между клиентом и сервером зашифрован и у злоумышленника нет возможности реализовать Man in the Middle. Но зато, хакеру доступен интерфейс атакуемого приложения, где он может вводить свои учетные данные.

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments3

Создание эффективной команды QA: Рекомендации для лидеров

Level of difficultyEasy
Reading time5 min
Views1.4K

В эпоху стремительного развития технологий и повышенных ожиданий пользователей качество программного обеспечения становится критическим фактором успеха продукта на рынке. Ошибки и сбои могут привести не только к финансовым потерям, но и к подрыву доверия клиентов. В этих условиях команда QA (Quality Assurance) играет ключевую роль в обеспечении стабильности и надежности продуктов.

Читать далее
Total votes 13: ↑10 and ↓3+12
Comments0

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

Reading time7 min
Views1.4K

В сети можно встретить различные трактования понятия AppSec (Application Security). И в этой статье мы попробуем разобраться с тем, что же должно входить в AppSec и какие навыки требуются специалистам, работающим в данной отрасли и какие инструменты они должны применять.

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

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

Рассмотрим более подробно составные части методологии AppSec.

Читать далее
Total votes 11: ↑8 and ↓3+9
Comments4

Darts: тестируем временные ряды с нуля

Reading time5 min
Views1.4K

Привет, Хабр!

Если вы когда-либо имели дело с временными рядами, то, вероятно, слышали о Darts. А для тех, кто ещё в танке: Darts — это мощный инструмент, который поддерживает мультиварибельные временные ряды и легко интегрируется с PyTorch и TensorFlow.

Зачем же тестировать временные ряды, когда в классическом машинном обучении всё так просто с кросс-валидацией? Временные ряды обладают своей изюминкой: они подвержены временным зависимостям, сезонности, трендам и другим радостям жизни. Так что, если вы хотите, чтобы ваши модели не провалились на тестах, время разобраться с их особенностями!

Читать далее
Total votes 11: ↑9 and ↓2+11
Comments3

Машинное обучение и криптография: знакомимся с CipherGAN

Level of difficultyEasy
Reading time7 min
Views1.3K

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

Читать далее
Total votes 10: ↑10 and ↓0+14
Comments0

Ошибки в интерпретации A/B-тестов: как избежать неверных выводов

Reading time6 min
Views1.2K

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

В этой статье я рассмотрю 7 наиболее распространенных ошибок с примерами и способами их предотвращения. Чтобы выводы ваших А/В были точны и надежны.

Читать далее
Total votes 11: ↑9 and ↓2+10
Comments0

Что такое теория ограничений и как она помогает улучшать процессы разработки продуктов?

Reading time5 min
Views4.4K

Теория ограничений (ТОС) — это управленческая методология, предложенная Элияху Голдраттом в 1984 году в его книге «Цель». Она базируется на простом, но мощном принципе: любая система, будь то производство, бизнес‑процесс или команда разработки, всегда ограничена одним или несколькими узкими местами. Эти ограничения или «бутылочные горлышки» сдерживают общую эффективность системы и являются теми ключевыми элементами, которые необходимо обнаружить и устранить для значительных улучшений.

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

Читать далее
Total votes 13: ↑10 and ↓3+12
Comments8

Шаблоны проектирования для баз данных

Reading time4 min
Views11K

Существуют различные шаблоны проектирования облачных сервисов. Про тот же Sidecar или Ambassador, я думаю, слышали многие. Шаблоны предназначены для решения определенных задач и те два шаблона, о которых речь пойдет в сегодняшней статье, тоже нужны для конкретной задачи — работы с базами данных.

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

Читать далее
Total votes 20: ↑10 and ↓10+5
Comments9
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity