Pull to refresh
27
0.1

Mission Critical

Send message

Интеграция PostgreSQL и Hadoop

Reading time5 min
Views3.4K

Представим некое перепутье, где с одной стороны — мощные возможности PostgreSQL, а с другой — необъятные просторы Hadoop. Выбор кажется сложным, но зачем выбирать одно, если можно соединить их и получить лучшее из обоих?

Объединяя их можно создать мощную систему, способную обрабатывать и анализировать огромные объемы данных.

Читать далее

Безопасный интернет через Termit: 11 шагов для развертывания СТД

Level of difficultyMedium
Reading time11 min
Views3.7K

Привет, Хабр! Сегодня мы подробнее поговорим про Termit 2.1 —  систему терминального доступа. Она предназначена для организации удаленного доступа конечных пользователей к приложениям, опубликованным на терминальных серверах. В этой статье я расскажу о том, как мы делали на базе Termit «безопасный интернет» для одного из заказчиков, а параллельно с этим мы подробно рассмотрим процесс развертывания Termit 2.1 на случай, если вы захотите повторить все это своими руками. Под катом — схема внедрения подобного решения и подробная инструкция по развертыванию.

Читать далее

Выключаем компьютер через Wake-on-Lan

Level of difficultyEasy
Reading time6 min
Views46K

Wake-on-Lan (WoL) — технология, которая используется (как и следует из названия) для включения компьютера посредством отправки специального пакета на адрес требуемого хоста. Но что если при помощи WoL хочется ещё и выключать компьютер?
По сути весь дальнейший текст — это ещё один способ превратить буханку хлеба в троллейбус. Но если очень хочется, то почему нет?

Достать хлеб и инструменты

Новый прорыв приближает умножение матриц к идеалу

Level of difficultyMedium
Reading time7 min
Views42K

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

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

Возьмем, к примеру, умножение матриц или массивов чисел. В 1812 году французский математик Жак Филипп Мари Бине разработал базовый набор правил, которым мы до сих пор обучаем студентов. Это работает прекрасно, но другие математики нашли способы упростить и ускорить процесс умножения матриц.

Читать далее

Почтовый сервер с нуля. Часть вторая

Level of difficultyMedium
Reading time27 min
Views25K

Приветствую всех читателей!

Подошло время для второй части нашей серии статей по настройке почтового сервера. Напомню, что в первой части мы рассмотрели основные моменты, касающиеся настройки почтового сервера, а также конфигурировали Exim4 для корректной отправки почты.

В этой статье мы настроим полноценный почтовый сервер. Использовать будем PostfixAdmin, Dovecot и RainLoop.

Давайте настроим!

16 типов менеджеров проектов: от токсика и пингатора до бюрократа и мамы-утки

Level of difficultyEasy
Reading time10 min
Views24K

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

Нас зовут Аня Ионова и Миша Дырма, мы оба уже много лет работаем в AGIMA, оба прошли путь от линейного проджекта до руководителя проектного офиса. За эти годы мы вырастили десятки РМ-ов, а общались, наверное, с сотнями, если не с тысячами. Мы поняли, что это хороший материал для — немного субъективного — обобщения. В этой статье мы описываем те типы управления, которые видели собственными глазами. А заодно — даем рекомендации, как выявить и грамотно применить скиллы каждого PM.

Читать далее

CDC на примитивах

Level of difficultyEasy
Reading time8 min
Views5.4K

CDC вам не «Centers for Disease Control and Prevention» а «Change data capture». В статье рассказано какие есть виды CDC и как реализовать один из CDC при помощи Debezium.

Читать далее

Apache NiFi как доступный ETL инструмент: кейс применения + тестовый стенд Docker

Level of difficultyEasy
Reading time8 min
Views7.3K

В статье расскажу о практических аспектах использования Apache NiFi, опишу преимущества и проблемы, с которыми я столкнулся.

Для наглядности собрал "песочницу" в контейнере Docker, в которой представлены упрощенные примеры пайплайнов, аналогичные тем, которые были использованы в реальном проекте.

Читать далее

Llama 3.1-70b в своем Телеграм боте — бесплатно, безлимитно и всего 20 строк кода

Level of difficultyEasy
Reading time2 min
Views44K

Да, всего 20 строк кода и бот:

1) по качеству ответов будет соизмерим с ChatGPT-4o;
2) будет отвечать очень быстро т.к. подключим мы его через Groq который в среднем в 10 раз быстрее других аналогичных сервисов;
3) будет поддерживать диалог и запоминать последние сообщения.

Читать далее

Как настроить IPv6 там где его нет: Poor man solution на базе oracle cloud free tier +  wireguard + openwrt

Level of difficultyMedium
Reading time7 min
Views6.3K

Приветствую сообщество.

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

На входе у нас есть локация где есть ipv4 интернет (дача, регион, офис), oracle VM instance и роутер на базе openwrt обслуживающий сеть в нашей локации.

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

Мы будем решать 2 задачи, а именно:

1) Все устройства в нашей локальной сети должны иметь доступ к ipv6 ресурсам в интернете

2) Из интернета мы хотим иметь возможность достучаться до устройств внутри нашей локальной сети по прямому ipv6 адресу.

Это удобно когда, например, на даче у нас есть камеры/хабы/NAS/итд и мы хотим обращаться к ним напрямую по ipv6 адресу.

Читать далее

Как начать работать с IPv6 там, где его нет (часть 1)

Level of difficultyMedium
Reading time9 min
Views27K


Появлением на свет этот материал обязан переводу статьи IPv6 — это катастрофа (но поправимая) (автор Mathew Duggan) и является её логическим продолжением. Если вы живёте в небольшом городе, которого в том числе нет в этом списке, и ваш провайдер в него не входит, то велика вероятность, что просто так взять и начать по-настоящему (за пределами lan) работать с IPv6 не получится. Некоторых стран СНГ это касается в полной мере, где целые государства не имеют для этого необходимого интеллектуального и материального ресурса. Однако исследовательский интерес толкает человечество вперёд, поэтому в статье будут описаны стратегии, как получить и настроить IPv6 на различных, в том числе мобильных устройствах там, где его нет, используя возможности брокеров. В материале скомпилированы разные подходы, чтобы читатель мог реализовать подходящий вариант. Если у вас ещё имеются сомнения, нужно ли это вообще, то рекомендую почитать мотивационную статью, ссылка на которую приведена выше.
Читать дальше →

Как начать работать с IPv6 там, где его нет (часть 2)

Level of difficultyMedium
Reading time8 min
Views12K

В настоящее время основным подходом к внедрению IPv6 является dual-stack, когда устройство одновременно настроено на функционирование обоих IP-протоколов. Это и понятно, ведь основная часть интернета работает на версии IPv4. Механизм 6to4 позволяет подключить ваше устройство IPv4 к брокеру, создав туннель в IPv6.

В первой части цикла статей показана настройка облачного маршрутизатора на routeros. В текущем материале продолжим раскручивать полученное решение, а затем перенесём соединение с брокером на Linux. Но сначала отдельно поговорим о сетевой безопасности подключаемого к IPv6 оборудования. Для понимания происходящих процессов рекомендуется ознакомиться с предыдущей статьёй, так как с целью исключения болтологии вводный материал повторяться не будет.
Читать дальше →

Орбита: self-hosted блог с подписками

Level of difficultyEasy
Reading time2 min
Views4.9K

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

Хочу поделиться своим личным проектом (pet-project) для публикации контента с возможностью монетизации. Да-да, что-то вроде личного Boosty, Patreon или даже OnlyFans.

Главное отличие от всех подобных сервисов - он работает у вас на сервере, он Open Source и вы можете менять его по своему желанию.

Читать далее

Мы добрались до ядра, или новые возможности AmneziaWG

Reading time6 min
Views156K

Добрый день! 

На связи команда разработчиков Amnezia. 

Обычно наши статьи посвящены оригинальному клиенту Amnezia, но сегодня мы будем упоминать AmneziaVPN весьма косвенно, так как речь пойдет в первую очередь о протоколе AmneziaWG и о связанных с ним проектах. Мы расскажем про нативный клиент AmneziaWG. Как из конфигурации с протоколом WireGuard сделать AmneziaWG, и как развернуть свой VPN с AmneziaWG  на сервере без приложения.   

Честно говоря, мы не ожидали столь высокой заинтересованности протоколом. Нам известно, что некоторые коммерческие VPN уже продают конфигурации с готовым VPN решением, где в качестве протокола, используют AmneziaWG вместе с приложением Amnezia. AmneziaVPN - это open source проект, который могут использовать для VPN, в том числе и для коммерческих VPN решений все желающие,  мы надеемся, что эта тенденция будет продолжаться. 

Также ,нам стало известно, что некоторые очень популярные производители интернет - оборудования будут поддерживать AmneziaWG, чему мы тоже очень рады. Мы уже писали об AmneziaWG в прошлых статье, но для дальнейшего рассказа важно напомнить о принципе его работы.  

Читать далее

От кода до сертификата: Создание веб-приложения на Python Flask для автоматизации выдачи сертификатов

Reading time9 min
Views5.7K

Привет всем! Меня зовут Дмитрий. Я надеюсь, что статья будет полезной и интересной для вас(не пинайте сильно, первый опыт, мысли путаются). Тема моей статьи — создание веб-приложения на Python Flask для автоматизации выдачи сертификатов и вдохновился написанием ее после прочтения Почта без хлопот: автоматизация отправки писем с помощью Python

Читать далее

Как Яндекс создал свою шину данных, чтобы передавать сотни гигабайт в секунду

Level of difficultyEasy
Reading time7 min
Views43K

10 лет назад сотни серверов Яндекса работали на Apache Kafka®, но в этом продукте нам нравилось далеко не всё. Наши задачи требовали единой шины для передачи всех видов данных: от биллинговых до журналов приложений. Сегодня объёмы достигли уже десятков тысяч именованных наборов сообщений.

При таком количестве данных в Apache Kafka® становилось сложно управлять правами доступа, организовывать распределённую работу нескольких команд и многое другое. Проблемы роста и отсутствие подходящего решения в открытом доступе привели к тому, что мы разработали своё решение YDB Topics и выложили его в опенсорс в составе платформы данных YDB. В этом посте расскажу о предпосылках создания продукта, нашей архитектуре передачи данных, возникающих задачах и возможностях, которые появились вместе с YDB Topics.

Читать далее

Предтечи мрачного будущего или 4+1 ранних киберпанк фильмов категории «B». 1984-1988

Level of difficultyEasy
Reading time7 min
Views9K

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

Читать далее

Как запустить WebRTC на сервере, или как я пилю вебкам

Level of difficultyMedium
Reading time12 min
Views11K

Значит решил я создать сервис для одиноких мужчин, где они могут пообщаться с прекрасными дамами, aka вебкам. Соответственно встал вопрос, как организовать видеосвязь в браузере. Обычно для этого используется WebRTC, эта технология позволяет установить p2p соединение между браузерами для передачи видео, звука и прочих данных в реальном времени с минимальной задержкой. Однако была одна проблема: что делать, если приходит жалоба от пользователя, что ему показали не то (или не показали), что он хотел. Поскольку это p2p соединение напрямую между пользователями, у меня как у владельца сервиса нет возможности провалидировать жалобу. Первое, что пришло в голову это вместо WebRTC использовать MediaRecorder API для записи видео небольшими кусочками и отправки их по вебсокету через сервер, попутно сохраняя. Я набросал прототип и столкнулся с тем, что если получатель пропустил первый пакет (там где есть метаданные), то видео у него не воспроизводится. Пришлось поиском определенного набора байт в первом пакете вычленять эти самые метаданные и сохранять их отдельно для отправки первым сообщением только что подключившемуся получателю, и это даже сработало. Вторая проблема этого решения - это задержка в пару секунд, и это только в локальной сети, что приемлемо для односторонней связи, но для двусторонней уже сомнительно. И третья проблема это то что видео у получателя со временем все больше и больше отстает, и нужно регулярно проматывать видео ближе к концу. Костыльность такого решения меня не устраивала, и я решил использовать WebRTC для связи собеседников и параллельно использовать MediaRecorder для отправки записи от модели к серверу. Некоторое время оно так работало, пока я пилил другие фичи, но неэлегантность этого решения все еще не давала мне покоя, т. к. оно повышает требования к интернет соединению модели.

Читать далее

Автоматизация скачивания документов из контрактов с площадки ЕИС при помощи Python

Level of difficultyMedium
Reading time3 min
Views1.5K

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

Читать далее

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Level of difficultyMedium
Reading time4 min
Views48K

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

Читать далее

Information

Rating
5,462-nd
Registered
Activity