Pull to refresh
27
0.1

Mission Critical

Send message

Искусство ETL. Пишем собственный движок SQL на Spark [часть 3 из 5]

Level of difficultyHard
Reading time20 min
Views2K

04_assets_residents.tdl


В данной серии статей я подробно рассказываю о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

Краткое содержание предыдущей серии, последней, посвящённой проектированию спецификации языка:
Операторы жизненного цикла наборов данных (продолжение)
Операторы контроля потока выполнения
Операторы управления контекстом исполнения
Операторы выражений


В данном эпизоде мы наконец-то перейдём к самому интересному — имплементации. Хорошо, когда есть развёрнутая постановка задачи, можно просто брать спеку, и писать код согласно плану.


Предупреждение о рейтинге «M for Mature»

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

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

Обход блокировок на OpenWRT с помощью HomeProxy (sing-box)

Level of difficultyEasy
Reading time4 min
Views52K

HomeProxy или luci‑app‑homeproxy это часть проекта ImmortalWRT, графическая надстройка для sing‑box позволяющая настроить подключение к shadowsocks, xray, vless, vmess, trojan.

В данной статье будет рассматриваться установка luci‑app‑homeproxy на OpenWRT 23.05.0-rc3 (поддерживаются версии 23.05.0 или SNAPSHOT).

Можно использовать как чистую версию OpenWRT так и от проекта ImmortalWRT.

Потребуется роутер со свободными 30 Мб памяти и минимум 256 Мб ОЗУ (Работающий HomeProxy занимает от 70Мб ОЗУ).

Читать далее

Искусство ETL. Пишем собственный движок SQL на Spark [часть 2 из 5]

Level of difficultyHard
Reading time13 min
Views1.9K

image


В данной серии статей я подробно расскажу о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

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


Предупреждение о рейтинге «M for Mature»

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

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

Искусство ETL. Пишем собственный движок SQL на Spark [часть 1 из 5]

Level of difficultyHard
Reading time18 min
Views8.3K

image


В данной серии статей я подробно расскажу о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

— Евдокимов, ты что, совсем уже там кукухой поехал?! При живом-то Spark SQL! Опять ты ненормальным программированием маешься, нет бы что-то полезное делал…
— Ну-ну-ну, спокойно, спокойно. Я ещё настолько не уехал, чтобы потратить целый год на страдание полной ерундой. Речь на сей раз пойдёт не о развлекухе, а о диалекте языка, специализированном для решения целого класса задач, для которых любой существующий SQL был бы, в теории, хорошим решением, если бы не несколько серьёзных «но».


Короче, у нас будет немного не такой SQL, который вы все так хорошо знаете, но и этот вариант вы полюбите, я обещаю. Тут лучше другой вопрос задать:
— Разве кому-то нужен голый SQL-ный движок?


Нет, голый — не нужен. Так рассказывать я буду о разработке настоящего production ready инструмента, с интерактивным шеллом с подсветкой синтаксиса и автодополнением, который сможет работать в клиент-серверном режиме, и не только на кластере, но и локально. Да не монолитный, а расширяемый при помощи подключаемых функций. И с автогенератором документации впридачу. Короче, всё будет совсем по-взрослому, с рейтингом M for Mature.


В каком смысле «M for Mature»?

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

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

Настраиваем двухступенчатый WireGuard для выхода из страны

Level of difficultyMedium
Reading time4 min
Views70K

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

В начале августа некоторые интернет операторы и провайдеры начали блокировку протокола WireGuard в РФ по его рукопожатию.

Лично испытывал блокировку у Мегафон и Теле2, но не заметил у Ростелеком. VPN по-прежнему работал через последнего.

Очень не хотелось отказываться от Wireguard в пользу прокси-серверов в духе VLESS+TLS-Vision, в виду того, что все наши пользователи уже сильно привыкли именно к Wireguard.
Поэтому вариант с кардинальной сменой клиентского софта не рассматривался.

Поскольку трафик Wireguard блокируется только на зарубежные адреса было принято решение добавить еще один хоп в систему, а начальное подключение осуществлять к серверу в РФ.

Читать далее

Windows — причина медленного интернета

Level of difficultyEasy
Reading time4 min
Views126K

Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.

Читать далее

Xray на Keenetic / Xkeen

Level of difficultyEasy
Reading time9 min
Views204K

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen

Домашние печки и чайники постоянно пингуют заграничные хосты

Reading time3 min
Views32K


Домашние гаджеты — от холодильника до чайника — поумнели настолько, что теперь нуждаются в постоянной проверке сетевого подключения. Например, умные печки одного из производителей каждые пять минут пингуют три сервера:

  • google.com
  • baidu.cn
  • yandex.ru
Читать дальше →

Капибара, Новый Старый Пикабу

Reading time8 min
Views75K

UPD: у нас всё получилось, сайт работает kapi.bar, доработки ещё ведутся.

Пикабу долгое время было уютным уголком для обмена историями, опытом, творчеством, мнениями и эмоциями. Однако ряд нововведений, таких как отмена баянометра, изменение алгоритмов и скрытие отрицательных оценок, привели к потере духа оригинального портала. Многие из нас, пришедшие туда в молодости и теперь ставшие взрослыми, почувствовали, что наши ценности и мнения игнорируются. В ответ на это, мы, группа энтузиастов, создали "Капибару" – проект, который стремится сохранить лучшие стороны Пикабу, предоставляя пространство где пользователи сами решают какой контент "годный" и какой контент хотят видеть в своей ленте.

Читать далее

Бот-сказочник, или как генерировать истории с помощью ChatGPT и Telegram

Level of difficultyEasy
Reading time5 min
Views9.4K

Представьте, что вам нужно написать художественный роман. У вас есть ключевые идеи, продуманы основные повороты событий, но нет возможности объединить все в одну историю.

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

Такая же проблема может встретиться, например, если нужно написать пост или оформить описание рабочего проекта. Если вам это знакомо, то просто автоматизируйте процесс. Можно написать специального бота, который будет из тезисов генерировать цельную историю с помощью ChatGPT, а после — записывать в Notion. Реализовать такой проект и задеплоить его на сервер несложно — посмотрим, как это сделать.
Читать дальше →

Настраиваем клиент Outline на OpenWRT за 5 минут с помощью tun2socks

Level of difficultyEasy
Reading time6 min
Views27K

Установка клиента Outline (shadowsocks) одним скриптом.

Понадобится любая версия OpenWRT (проверялось на 19.07, 21.02, 22.03 и 23.05-rc1) и установленные пакеты kmod-tun и ip-full, а так же настроенный сервер Outline (shadowsocks).

Рекомендую роутер не меньше чем с 128 Мб ОЗУ, будут показаны варианты установки в ПЗУ и ОЗУ.

Использоваться будет пакет xjasonlyu/tun2socks.

Читать далее

Модуль Terraform для Proxmox VM

Level of difficultyMedium
Reading time14 min
Views20K

Это вторая статья по провайдеру  terraform-provider-proxmox. Здесь первая статья. В общем не буду ходить вокруг да около. Читайте документацию.

Описание ресурса VM Qemu

Этот ресурс позволяет управлять виртуальными Proxmox VM Qemu машинами.

Create a Qemu VM resource

Вы можете запускать виртуальные машину либо с помощью ISO образа, либо с загрузкой через PXE, либо клонировать существующую виртуальную машину или шаблон ВМ.

Оптимальный вариант использования это использовать базовый шаблон.

При создании ресурса VM Qemu, вы описываете блок ресурса proxmox_vm_qemu.

Для режимов клонирования или загрузки с ISO образа обязательными параметрами являются только имя name и узел на котором необходимо развернуть VM target node.

Для режима загрузки по сети  PXE, в директиве boot в очереди загрузки должно содержаться значение Network (имя интерфейса).  

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

Далее

Как я получил Remote Work ВНЖ в Дубае по гайду в интернете

Level of difficultyEasy
Reading time6 min
Views18K

Привет всем! Меня зовут Максим, я технический продакт-менеджер в американском стартапе. В мае я получил резидентскую визу и Emirates ID в ОАЭ как Digital Nomad по инструкции в интернете. Рассказываю, чем реальность отличается от гайдов в интернете, с конкретными датами и суммами.

Читать далее

Проксируем OpenVPN с помощью Cloak

Level of difficultyEasy
Reading time9 min
Views91K

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее

Своя реализация быстрых ответов в чатах Битрикс 24

Level of difficultyEasy
Reading time6 min
Views4.3K

Добавляем функционал быстрых ответов на любом тарифе Битрикс24

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

А что нужно то?

MyCompany — бесплатное и открытое решение для небольшого бизнеса

Reading time11 min
Views20K


Около года назад мы выпустили открытую и бесплатную платформу для разработки бизнес-приложений lsFusion. В первую очередь, мы ориентировались на разработчиков, которые могут на ней быстро и легко создавать различные информационные системы. Тем не менее, разработка “с нуля” системы управления, даже небольшим бизнесом, остается достаточно трудоемким процессом.

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

В качестве системы управления базой данных используется PostgreSQL. На сервере решение устанавливается и запускается как Java приложение, состоящее из сервера приложений и веб-приложения под управлением Apache Tomcat. В качестве GUI может использоваться как веб-интерфейс, так и десктоп-клиент, запускающийся через Java Web Start.
Читать дальше →

SSO (Прошивка и настройка Cisco Catalyst коммутаторов, с привязкой к RADIUS NPS)

Level of difficultyEasy
Reading time4 min
Views16K

Настройка Cisco Catalyst 2950,2960,3750 + RADIUS Windows NPS




Начну с конфига и сразу всё буду описывать. Для удобства предлагаю открыть блокнот и в него вставлять команды.

Конфигурирование будем проводить на примере модели 2960-24Т.

enable
conf t
hostname S1 #Где S1 ваше имя коммутатора
enable secret cisco #где cisco ваш привилегированный пароль
service password-encryption #обязательно шифруем пароли в конфигурации
banner motd $ WARNING: This system is for the use of authorized personnel only.Unauthorized access is a violation of state and federal,civil and criminal laws.$

int vlan 25 # настраиваем management доступ (SVI), у меня это VLAN25, у вас это может быть VLAN 1
ip address 10.25.0.10 255.255.255.0
description MGM
no shutdown
exit

ip default-gateway 10.25.0.1 # указываем шлюз

После этого можем обновить прошивку.

В связи с санкциями сайт Cisco не даёт возможности скачать прошивку, поэтому её можно будет взять тут.
Читать дальше →

Монтируем шары для юзеров

Level of difficultyMedium
Reading time9 min
Views30K

Всем привет. Монтируете ли вы шары, как их монтирую я? Вероятно, нет, т. к. очень крутой опции multiuser на просторах интернета уделено слишком мало внимания, а man mount.cifs в её отношении весьма немногословен и скуп на наглядные примеры. Именно это и сподвигло меня поделиться с вами парой «рецептов», которые могут облегчить вам и вашим пользователям движение в сторону отечественных десктопов и ИТ-инфраструктур.
Читать дальше →

Обход блокировок на OpenWRT с помощью Sing-box (vless, vmess, trojan, ss2022) и баз GeoIP, Geosite

Level of difficultyEasy
Reading time12 min
Views67K

В данном гайде будем устанавливать пакет sing-box на OpenWRT на примере стабильной 22.03.5 и 23.05.0. Рекомендуется роутер минимум с 128 МБ RAM (256 предпочтительно) и памятью более 16 Мб, так же будет описан способ установки sing-box в оперативную память (подходит для устройств с малым количеством ПЗУ <16 Мб)

Sing-Box — это бесплатная прокси-платформа с открытым исходным кодом, которая позволяет пользователям обходить интернет-цензуру и получать доступ к заблокированным веб-сайтам. Это альтернатива v2ray-core и xray-core. Его можно использовать с различными клиентами таких платформах, как Windows, macOS, Linux, Android и iOS.

Помимо поддержки протоколов Shadowsocks (в т.ч. 2022), Trojan, Vless, Vmess и Socks, он также поддерживает ShadowTLS, Hysteria и NaiveProxy.

Руководство будет включать:

1. Установку из репозитория

2. Настройку sing-box для shadowsocks, vless, vmess, trojan и обход блокировок с помощью SagerNet GeoIP, Geosite

3. Настройку обхода блокировок с помощью GeoIP, Geosite от L11R

4. Установку sing-box в оперативную память и настройку автозапуска

Читать далее

Расшифровка файлов Nextcloud

Level of difficultyMedium
Reading time6 min
Views4.5K

Очередное обновление Nextcloud до версии 27 ломает работу шифрования совместно с Collabora Office. Есть риск потери данных и почти гарантированной парализации работы с Nextcloud на часы и дни, если нет возможности откатиться.

В данной статье описывается опыт выхода из ситуации, путём расшифровки всех файлов и перехода на luks.

Так же в конце статьи добавлено пару бонусов.

Читать далее

Information

Rating
5,156-th
Registered
Activity