Pull to refresh
5
0

Пользователь

Send message

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

Level of difficultyMedium
Reading time23 min
Views3.2K

НЬЮ!


В предыдущих сериях (FAQ 1 2 3 4 5 ) мы весьма подробно рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL поверх Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

В данной части поговорим о том, как добавить в выражения SQL поддержку функций. Например,


SELECT
    MAX(score1, score2, score3, score4, score5) AS max_score,
    MIN(score1, score2, score3, score4, score5) AS min_score,
    MEDIAN(score1, score2, score3, score4, score5) AS median_score,
    score1 + score2 + score3 + score4 + score5 AS score_sum
FROM raw_scores INTO final_scores
WHERE ABS(score1 + score2 + score3 + score4 + score5) > $score_margin;

— тут у нас функции MAX, MIN и MEDIAN принимают любое количество аргументов типа Double и возвращают Double, а ABS только один такой аргумент.


Вообще, кроме общей математики, в любом уважающем себя диалекте SQL как минимум должны быть функции для манипуляций с датой/временем, работы со строками и массивами. Их мы тоже обязательно добавим. В classpath, чтобы движок мог их оттуда подгружать. До кучи, ещё и операторы типа >= или LIKE, которые у нас уже были реализованы, но хардкодом, сделаем такими же подключаемыми.


Предупреждение о сложности материала

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

Читать дальше →
Total votes 5: ↑5 and ↓0+6
Comments10

Собеседование у ChatGPT

Reading time1 min
Views22K

Привет! Меня зовут Роман, я системный администратор, сейчас изучаю инструменты devops. Прочитал несколько статей о chatGPT, поигрался с шутками и стихами, позадавал вопросы. И тут меня озарила мысль - а может ли он проверить на знания меня? Смогу ли я пройти собеседование у ИИ? Скоро ли ИИ заменит hr?

Читать далее
Total votes 13: ↑11 and ↓2+14
Comments41

Инструменты для GraphQL клиента на Python

Reading time9 min
Views9K

Речь в статье пойдет о специальных инструментах для работы с GraphQL на Python в качестве клиента. Если вы используете GraphQL в своих сервисах на Python, то, скорее всего, сталкивались с необходимостью писать и хранить строки, содержащие GraphQL запросы, а так же писать Python классы для хранения результатов этих запросов. Вероятнее всего, вам было неудобно: не хотелось дублировать схожие запросы, постоянно править классы при частом изменении схемы и т.п. Вот и мне тоже. Поэтому, решая описанные проблемы, появились на свет два пакета: graphql-query и graphql2python.

Читать далее
Total votes 5: ↑3 and ↓2+3
Comments2

Мама, кажется я архитектор

Reading time7 min
Views13K


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

Читать дальше →
Total votes 21: ↑20 and ↓1+24
Comments53

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time6 min
Views245K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →
Total votes 70: ↑70 and ↓0+70
Comments41

Dagger 2 для начинающих Android разработчиков. Внедрение зависимостей. Часть 2

Reading time3 min
Views27K
Данная статья является третьей частью серии статей, предназначенных, по словам автора, для тех, кто не может разобраться с внедрением зависимостей и фреймворком Dagger 2, либо только собирается это сделать. Оригинал написан 1 декабря 2017 года. Перевод вольный.

image
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation

Reading time14 min
Views95K

Python библиотека pywinauto — это open source проект по автоматизации десктопных GUI приложений на Windows. За последние два года в ней появились новые крупные фичи:


  • Поддержка технологии MS UI Automation. Интерфейс прежний, и теперь поддерживаются: WinForms, WPF, Qt5, Windows Store (UWP) и так далее — почти все, что есть на Windows.
  • Система бэкендов/плагинов (сейчас их двое под капотом: дефолтный "win32" и новый "uia"). Дальше плавно двигаемся в сторону кросс-платформенности.
  • Win32 хуки для мыши и клавиатуры (hot keys в духе pyHook).

Также сделаем небольшой обзор того, что есть в open source для десктопной автоматизации (без претензий на серьезное сравнение).


Эта статья — частично расшифровка доклада с конференции SQA Days 20 в Минске (видеозапись и слайды), частично русская версия Getting Started Guide для pywinauto.



Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments11

Как написать свою «песочницу»: пример простейшей «песочницы». Часть II

Reading time13 min
Views10K
image

В первой части статьи вы получили краткое представление о драйверах в привилегированном режиме. Настало время покопаться в нашей песочнице.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments0

Intel Software Guard Extensions, учебное руководство. Часть 3, проектирование для Intel SGX

Reading time12 min
Views2.6K
В третьей части серии учебных материалов, посвященных расширениям Intel Software Guard Extensions (Intel SGX), мы поговорим о проектировании приложений, использующих Intel SGX. Мы используем принципы, изученные в первой части, и применим их к общей концепции примера приложения Tutorial Password Manager, которая была рассмотрена во второй части. Мы обсудим общую структуру приложения и влияние Intel SGX на нее; мы создадим модель классов, которая даст нам возможность спроектировать и интегрировать анклав.


Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

Intel Software Guard Extensions, учебное руководство. Часть 2, устройство приложения

Reading time12 min
Views4.5K
Вторая часть в серии учебных материалов по Intel Software Guard Extensions (Intel SGX) представляет собой общее описание приложения, которое мы будем разрабатывать: простой диспетчер паролей. Поскольку мы создаем это приложение с нуля, то можно с самого начала предусмотреть использование Intel SGX. Это означает, что в дополнение к требованиям к приложению мы рассмотрим, каким образом требования для Intel SGX и общая архитектура приложения влияют друг на друга.

Прочтите первую часть или список всех опубликованных учебных материалов в статье Представляем серию учебных материалов, посвященных Intel Software Guard Extensions.


Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Как написать свою «песочницу»? Разбор простейшей «песочницы»

Reading time14 min
Views19K
image
Если вам случалось писать большие приложения, вы, вероятно, использовали такие виртуальные машины, как VMWare, Virtual PC или что-то иное. Но задавались ли вы вопросом: как они работают? Эти удивительные, можно сказать, магические технологии увлекали меня довольно долгое время. Чтобы развенчать «магию» и разобраться в деталях, я написал «с нуля» собственную систему виртуализации – «песочницу». Решение этой задачи было довольно сложным делом. Реализация подобного продукта ставит множество вопросов, ответы на которые вы не найдете в Google, поэтому я хочу поделиться своим опытом с сообществом.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments6

Альтернативные методы трассировки приложений

Reading time9 min
Views14K
image

Трассировка используется во многих видах ПО: в эмуляторах, динамических распаковщиках, фаззерах. Традиционные трейсеры работают по одному из четырех принципов: эмуляция набора инструкций (Bochs), бинарная трансляция (QEMU), патчинг бинарных файлы для изменения потока управления (Pin), либо работа через отладчик (PaiMei, основанный на IDA). Но сейчас речь пойдет о более интересных подходах.

Зачем отслеживать?


Задачи, которые решают с помощью трассировки можно условно разделить на три группы в зависимости от того, что именно отслеживается: выполнение программы (поток управления), поток данных или взаимодействие с ОС. Давай поговорим о каждом подробнее...
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments5

Лучшие доклады Black Hat USA 2016

Reading time6 min
Views18K
Black Hat USA 2016 — конференция, собирающая вместе лучшие умы в области безопасности (хакеров и ЦРУшников), чтобы определить, в каком будущем мы будем жить. Что было в Вегасе, то остается в Вегасе. Но все же до нас дошли видеозаписи 120 докладов.

image

Я немного подсуетился и выбрал личный список топ-18 самых интересных докладов, которые, возможно, стоит перевести на русский и опубликовать на Хабре.

Социальная инженерия, DDoS, лингвистические особенности телефонных мошенников, страхование в области ИБ, Dragons&Dungeons для кибербезопасности, атаки по сторонним каналам, много (черного) юмора, дроны.
Предлагайте свои варианты, какой доклад самый интересный, может я что-то упустил.
Total votes 17: ↑16 and ↓1+15
Comments3

Telegram боты: в помощь редактору

Reading time6 min
Views33K
— Синоним к слову «своенравный»? — раздался голос жены из соседней комнаты.

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

— Дык посмотри у этого… как его…
— Да-да, я тоже забыла. Ну так что, скажешь мне синоним?

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


Опять лонгрид
Total votes 36: ↑34 and ↓2+32
Comments49

Исследование руткита Cremes

Reading time7 min
Views5.3K
В августе этого года мы публиковали информацию о новом state-sponsored вредоносном ПО под названием Cremes (aka Remsec). Антивирусные продукты ESET обнаруживают его компоненты как Win32/Cremes и Win64/Cremes. Cremes является сложным трояном со множеством компонентов, которые используются для кибершпионажа. Информация о Cremes также была опубликована специалистами Федеральной Службы Безопасности (ФСБ), поскольку Cremes использовался для кибершпионажа за сотрудниками государственных учреждений.


Cremes включает в себя и Ring 0 компонент (руткит), который используется злоумышленниками как LPE-шлюз (kernel gate) для исполнения своего кода в режиме ядра. В отличие от уже таких хорошо известных руткитов и буткитов как ZeroAccess, TDL4, Mebroot, Gapz и др., Cremes не обременяет себя сложными процедурами компрометации MBR и ранних стадий загрузки ядра NT для исполнения своего Ring 0 кода в системе в обход DSE, вместо этого он использует для этого легитимные драйверы.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments1

Идеальный маркетинг на примере сериала «Лучше звоните Солу»

Reading time4 min
Views7.7K
image

Сейчас закончился второй сезон сериала “Лучше звоните Солу”, и я просто впечатлён, насколько интересными и правильными, с точки зрения маркетинга, оказывались действия центрального персонажа. Я отметил это еще при просмотре первого сезона, а второй только усилил мои впечатления.
Total votes 16: ↑9 and ↓7+2
Comments11

Нейромедиаторы, часть первая: дофамин, норадреналин, серотонин

Reading time7 min
Views297K
Нейромедиаторы — это праздник, который всегда с тобой. Мы постоянно слышим о том, что именно они дарят чувства радости и удовольствия, но мало знаем о том, как они работают. В первой части небольшого образовательного курса «Атлас» рассказывает о трех самых известных нейромедиаторах, без которых наша жизнь была бы просто отвратительной.



Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments79

Intel Software Guard Extensions, серия учебных материалов. Часть 1, основы Intel SGX

Reading time7 min
Views13K
Первая часть в серии учебных материалов по Intel Software Guard Extensions (Intel SGX) представляет собой краткое описание этой технологии. Дополнительные сведения см. в документации в составе Intel Software Guard Extensions SDK. Список всех учебных материалов в этой серии см. в статье Представляем серию учебных материалов, посвященных Intel Software Guard Extensions.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments3

Microsoft совершенствует механизмы безопасности ядра Windows 10

Reading time2 min
Views18K
Известный гуру внутреннего устройства Windows, Alex Ionescu, раскрыл новые особенности ядра Windows 10, которые появились в новом билде Windows 10 Insider Preview 14332. Ранее в нашем блоге мы неоднократно упоминали Insider Preview версии Windows 10, которые используются разработчиками программ и драйверов для тестирования. Появляющиеся в них обновления затем будут выпущены для всех пользователей Windows 10 в качестве одного большого обновления этой ОС.



На сей раз речь идет об ASLR в режиме ядра (Kernel ASLR), о котором известно не так много, в отличие от его аналога для Ring3 компонентов Windows. До Windows 10 14332 Windows использовала лишь частичную реализацию KASLR только для системных образов (драйверов) и начиная с Windows Vista SP1. Теперь с каждой перезагрузкой Windows будет изменять виртуальные адреса размещения не только драйверов, но и, практически, всех структур ОС и компонентов, работающих в системном виртуальном адресном пространстве.

Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments16

Исходные тексты бота Gozi утекли в сеть

Reading time2 min
Views20K
Subj, комплект исходных текстов бота Gozi ISFB (a.k.a Ursnif) опубликован в открытом доступе и доступен всем желающим. Вредоносная программа Ursnif является достаточно серьезным инструментом для работы с http и https трафиком на компьютере жертвы, она содержит в себе 32-битный и 64-битный компоненты полезной нагрузки для внедрения их в различные работающие процессы таких веб-браузеров как Google Chrome, Microsoft Internet Explorer, Mozilla Firefox, а также привилегированный процесс диспетчера сервисов Services.exe.



Ursnif начал активно использоваться киберпреступниками еще пять лет назад, а самые первые его версии вышли в свет еще в 2008 г. Злоумышленники активно использовали набор эксплойтов Blackhole exploit kit для распространения дропперов трояна. Недавно мы писали, что сам автор Blackhole получил семь лет тюрьмы. Gozi или Ursnif использовался злоумышленниками как похититель различной информации на системе жертвы, включая, учетные данные таких сервисов как FTP, Telnet, POP3, и IMAP.

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments9
1

Information

Rating
Does not participate
Works in
Registered
Activity