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

Редактор

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

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

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

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

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

Читать далее
Всего голосов 23: ↑22 и ↓1+28
Комментарии25

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

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

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

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

Читать далее
Всего голосов 34: ↑30 и ↓4+36
Комментарии9

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 16: ↑12 и ↓4+13
Комментарии3

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

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

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

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+16
Комментарии45

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

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

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

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

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

Что там с котиками
Всего голосов 53: ↑52 и ↓1+71
Комментарии80

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

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

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

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2+15
Комментарии0

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

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

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

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

Читать далее
Всего голосов 24: ↑15 и ↓9+12
Комментарии7

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

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

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

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

Читать далее
Всего голосов 27: ↑26 и ↓1+30
Комментарии11

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

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

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

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

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

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

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

Всем привет!

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

Читать далее
Всего голосов 50: ↑48 и ↓2+60
Комментарии6

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+17
Комментарии0

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

Время на прочтение5 мин
Количество просмотров902

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров529

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

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

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

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

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

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

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

Читать далее
Всего голосов 18: ↑9 и ↓9+4
Комментарии4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

В рейтинге
85-й
Откуда
Россия
Работает в
Зарегистрирован
Активность