Pull to refresh
109
75.4

Редактор

Send message

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

Level of difficultyEasy
Reading time11 min
Views4.9K

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

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

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

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

Level of difficultyEasy
Reading time7 min
Views15K

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

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

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

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

Level of difficultyEasy
Reading time4 min
Views1.8K

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

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

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

Читать далее
Total votes 18: ↑17 and ↓1+21
Comments1

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

Reading time5 min
Views1.7K

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

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

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

Level of difficultyEasy
Reading time7 min
Views5K

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

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

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

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

Котики умнее, чем кажется

Level of difficultyEasy
Reading time4 min
Views24K

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

Все привыкли считать, что собаки — те самые верные ребята, которые понимают нас с полуслова: скажешь «сидеть» — и они тут же хлопнут задом по полу. А коты? Ну, они, конечно, величественные игнорщики, которые могут разве что моргнуть вам в ответ, да и то не факт. Но стоп! Новое исследование переворачивает это представление с лап на хвост: коты не просто понимают, что мы им говорим, они учат слова и связывают их с картинками быстрее, чем можно было ожидать!

Исследователи из Японии провели эксперимент, чтобы выяснить: способны ли наши хвостатые друзьяшки так же ловко ассоциировать слова и образы, как это делают младенцы или типичный представиль собак‑умников. Спойлер: котики обошли собак и младенцев на пару шагов вперед.

Что там с котиками
Total votes 53: ↑52 and ↓1+71
Comments80

Обзор библиотеки LIBMF для Rust: факторизация матриц

Level of difficultyEasy
Reading time6 min
Views1.1K

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

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

Устанавливается она через Cargo легко и просто.

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

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

Level of difficultyEasy
Reading time4 min
Views3.2K

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

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

Читать далее
Total votes 24: ↑15 and ↓9+12
Comments7

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

Reading time6 min
Views14K

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

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

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

Apache Spark: настройка и отладка

Level of difficultyEasy
Reading time7 min
Views2.1K

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

Однако, при серьезном использовании любой системы рано или поздно возникает необходимость в гибкой настройке. А необходимость в отладке как правило возникает гораздо раньше. Apache Spark в этом плане не является исключением и в этой статье мы поговорим о механизмах настройки Spark и некоторых параметрах, которые пользователям может понадобиться отрегулировать под свои нужды. Также мы рассмотрим механизмы журналирования.

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

Bukva: алфавит русского жестового языка

Level of difficultyEasy
Reading time7 min
Views4.2K

Всем привет!

Недавно мы анонсировали словарь русского жестового языка (РЖЯ), а в этой статье поговорим про задачу распознавания алфавита РЖЯ, именуемого также дактильным алфавитом или дактилем. Предлагаем ознакомиться с нашей работой, в которой мы представим новый датасет Bukva — первый полноценный видеонабор данных для распознавания дактильной азбуки. Он содержит 3757 видеороликов с более чем 101 видео для каждой буквы дактиля, включая не только статические, но и динамические жесты. В статье расскажем, как мы собрали датасет для решения задачи и какие модели обучили в качестве бейзлайнов. Все данные и код открыты и доступны в репозитории команды.

Читать далее
Total votes 51: ↑49 and ↓2+61
Comments6

Линейный и бинарный поиск в Clojure

Reading time4 min
Views592

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

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

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

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

Level of difficultyMedium
Reading time10 min
Views703

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

Для решения этой проблемы создаются проектные зависимости.

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

Куда утекает производительность? Ищем ответ в логах Greenplum

Reading time5 min
Views925

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

Greenplum — это база данных, созданная специально для больших данных и аналитики. Ее основное преимущество — это архитектура массово параллельной обработки, сокращенно – MPP, которая позволяет масштабироваться до огромных объемов данных, не теряя производительности.

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

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

Усиление PostgreSQL с помощью PL/Python

Level of difficultyEasy
Reading time4 min
Views3.2K

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

Сегодня мы прокачаем PostgreSQL, добавив в него Python. А именно — PL/Python. Это расширение позволяет писать функции на Python прямо внутри базы данных. Лично для меня это как объединение двух лучших миров: любимого PostgreSQL и могучего Python.

PL/Python — это про то, когда стандартного SQL мало. Когда надо сделать что-то действительно интересное: сложные расчеты, массивы данных, или интеграция с аналитикой прямо в базе. А самое крутое — можно тянуть любые Python-библиотеки.

Для начала нужно просто установить расширение в PostgreSQL.

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

Повышение эффективности воронки продаж. Автоматизация реактивации клиентов. Ч.2

Reading time5 min
Views539

Привет, Хабр. В этой статье мы продолжим разбираться с автоматизацией воронки продаж. Как писал в прошлой статье, за 7 лет работы с продажами я выделил топ-3 инструмента автоматизации: реактивация отказов, реактивация клиентов и контрольные точки на этапах продаж.

С реактивацией отказов мы разбирались в прошлой статье, а сейчас перейдем ко второму пункту — реактивации клиентов.

Читать далее
Total votes 10: ↑6 and ↓4+5
Comments0

Перегрузка операторов в C++

Level of difficultyEasy
Reading time4 min
Views1.6K

Привет, Хабр! Сегодня мы рассмотрим одну из самых мощных и увлекательных возможностей C++ — перегрузку операторов. Эта фича позволяет настраивать стандартные операторы так, чтобы они работали с пользовательскими типами данных, делая код чище и понятнее.

Представьте, что вместо вызова метода add() для сложения двух объектов, можно просто написать object1 + object2. Звучит здорово, не правда ли?

Читать далее
Total votes 18: ↑9 and ↓9+4
Comments4

ЦОД: топологии и архитектуры

Reading time5 min
Views4.1K

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

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

Для начала поговорим о том, какие топологии могут использоваться в сетях ЦОД.

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

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

Reading time4 min
Views11K

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

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

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

Dorks на новый лад – ищем то, что открыто

Reading time4 min
Views742

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

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

Казалось бы, все просто, необходимо проверить доступные файловые ресурсы на предмет… Вот тут возникает отдельный вопрос, а что собственно искать? Как должна выглядеть искомая пара логин/пароль. Здесь нам на помощь приходят старые добрые дорки.

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

Читать далее
Total votes 7: ↑7 and ↓0+11
Comments0
1
23 ...

Information

Rating
85-th
Location
Россия
Works in
Registered
Activity