Pull to refresh
-15
0
Bone @Bone

User

Send message

Как Apache Arrow поможет управиться JS с большими данными

Level of difficultyMedium
Reading time6 min
Views1.8K

Привет. Меня зовут Николай Шувалов, я занимаюсь коммерческим программированием около семи лет, владею Rust, JavaScript, PHP. Сейчас я работаю в отделе данных билайна. Наша платформа позволяет делиться с партнерами данными, не раскрывая их. Например, можно расширить данные с помощью фильтра Блума. 

Arrow в сравнении со строковыми форматами

Возьмём простую таблицу, которая состоит из трех столбцов: телефона, даты и имени. Рассмотрим, как она будет выглядеть в строковом и столбчатом форматах. Для строкового формата мы возьмем csv и json, для столбчатого формата структура будет одинаковой. Если же таблица состоит, например, из миллиона строк, а нужно получить имя на строке с номером 10 000, то придется бежать по всей строчке. В json то же самое. А в столбчатом формате ситуация иная — значения привязаны к столбцам. Когда мы хотим получить имя на строке 10 000, то сразу обращаемся к этому столбцу и получаем все его данные. 

Существуют RA (random access) файлы, в которых можно пропускать заданное количество строк, но все равно парсеру нужно читать и анализировать пройденные строчки.

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

Как поднять уровень анализа вашего Laravel-приложения с 0 до 9 в Larastan

Reading time6 min
Views1.7K

Larastan позволяет найти ошибки в вашем Laravel-приложении еще до его запуска. Он представляет собой обертку PHPStan, предназначенную специально для статического анализа с поддержки всей магии внутри Laravel.

В этой статье я намерен провести вас через все этапы от установки Larastan до достижения 9 уровня, не игнорируя абсолютно никаких правил.

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

Как продвигать бизнес в 2024 году с помощью ПромоСтраниц и Дзена. Подробное руководство

Level of difficultyMedium
Reading time9 min
Views2.2K

Каждый руководитель считает, что в его IT-компании работают гениальные программисты, которые создают волшебный код. Но вот клиенты об этом не всегда в курсе. И чтобы их просветить, нужно заниматься личным брендом и транслировать экспертность. Желательно, как можно шире и быстрее. Времени ждать пару лет, пока наши статьи наберут критическую массу и сами раскрутятся, у нас нет. Иногда проще просто заплатить и их прочитают. Тут мы входим на территорию контент маркетинга. И это моя тема, ребята :-)

Читать далее
Total votes 11: ↑5 and ↓6+1
Comments2

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

Level of difficultyMedium
Reading time17 min
Views29K

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

В этом материале будет представлена связка полноценного почтового сервера в виде Exim4+Dovecot+PostfixAdmin+RainLoop.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments27

Как сделать форму согласия на обработку персональных данных на сайте. Справится даже школьник

Level of difficultyMedium
Reading time7 min
Views994

Привет, Хабр! Меня зовут Тимур уже два года я развиваю в HFLabs продукт «Центр управления согласиями» для энтерпрайза. Тема эта интересная, болезненная и острая одновременно, ведь персональные данные собирает не только крупный бизнес, а вообще все. Любой сайт — от продажи крафтового печенья до крупного автодилера и страховой компании — имеет если не форму регистрации, то анкету для подписки на новости уж точно. 

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

Если сайт сделан N лет назад и на CMS (а такое встречается сплошь и рядом), то нередко используется стандартный инструментарий самой CMS. Плюс фантазия заказчика, умноженная на осведомленность разработчика о том, как сделать эти самые формы регистрации. Получается, как смогли, так и сделали. 

Мы подготовили инструкцию, как самостоятельно настроить формы ввода. Для примера взяли CMS «1С-Битрикс: Управление сайтом» и в основном ту самую стандартную функциональность CMS. Материал будет полезен web-студиям и отдельным web-мастерам, а также всем, кто так или иначе работает с согласиями — пусть и в других системах. Расскажем, как формы должны выглядеть и как объяснить заказчику, почему предпроставленная галочка — это не очень хорошо. 

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

Prompt engineering — путь к эффективной работе с ChatGPT

Reading time16 min
Views8K

Привет, Хабр! Меня зовут  Илья Козырёв, я — CTO и Co-Founder в Raft. Много работал в консалтинге в сфере ритейла и фармацевтики, имею экспертизу в обработке данных, специализируюсь на ML/AI. А ещё я — участник опенсорсного продукта по обработке данных Apache Beam, помогаю запускать продукт по ценообразованию.

В этой статье расскажу, как эффективно работать с ChatGPT в разных задачах и архитектуре. Многие пробовали, но не у всех получилось.

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

«Когда будет готово?». Декомпозируем задачи и оцениваем сроки без фатальных ошибок

Level of difficultyMedium
Reading time11 min
Views13K

Всем привет! Я Виктор Брыксин, руковожу разработкой Яндекс Телемоста. В статье поговорим про декомпозицию задач в проекте и как можно получить реальные сроки его выполнения.

Спойлер: вы все равно ошибетесь, прогнозируя сроки. Но что можно сделать? Минимизировать шанс на ошибки и сделать их менее фатальными. Я расскажу про рабочие инструменты, которые помогли мне в свое время, — брать их на вооружение или нет, решайте сами. Если вы не знаете, как подступиться к декомпозиции сложного проекта и с чего начать, — эта статья вам в помощь.

Читать далее
Total votes 37: ↑37 and ↓0+41
Comments6

Применение чистой архитектуры в Go

Level of difficultyHard
Reading time13 min
Views11K


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

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

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы.
Читать дальше →
Total votes 24: ↑22 and ↓2+31
Comments5

AI-тренер, нейровоспитатель, ассесор, крауд и разметчик — кто все эти люди и в чем разница?

Level of difficultyEasy
Reading time5 min
Views735

Многие компании в последнее время ввели должность «ИИ-тренера» (AI-тренера), при этом просто разметчики/ассесоры никуда не делись. Что это — просто красивая обертка нейминга над тем же самыми или что-то концептуально новое?

Давайте попробуем в этом разобраться и однозначно ответить на вопрос о различиях.

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

Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT

Reading time16 min
Views3.8K

Мы начнём с простого чат-бота, который может взаимодействовать только с одним документом; а закончим более продвинутым чат-ботом, который может взаимодействовать с несколькими различными документами и типами документов, а также сохранять историю чата — чтобы он мог отвечать на вопросы в контексте последних бесед.

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments4

Создаем изометрические уровни игры с помощью Stable Diffusion

Level of difficultyEasy
Reading time5 min
Views21K

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

Если интересно, добро пожаловать под кат.

Читать далее
Total votes 75: ↑75 and ↓0+84
Comments27

Самые полезные библиотеки JS для красивых анимаций

Reading time5 min
Views14K

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

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

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

Приятного прочтения :-)

Читать далее
Total votes 31: ↑31 and ↓0+32
Comments6

Писать тексты AI для сайтов или нет?

Level of difficultyEasy
Reading time7 min
Views1.2K

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

Читать далее
Total votes 6: ↑2 and ↓40
Comments0

Открываем Adobe Flash в Docker в 2024-м

Level of difficultyEasy
Reading time3 min
Views4.4K

Шарился я тут в по Интернету в поисках видео событий 15-летний давности и нашел что-то вроде искомого, но никак не смог посмотреть - требовался Adobe Flash. Погуглил я как мне открыть это видео, но рабочих вариантов не нашел. "Ладно" - подумал я: "Challenge accepted". А нам с читателем лишняя возможность потренироваться в создании Docker-контейнеров.

Дисклеймер: использование устаревших версий браузера и самого Flash-плагина несёт потенциальную угрозу безопасности. Используйте этот метод на свой страх и риск.

Итак, начнём с того, что поддержка Flash-плагина была выпилена в Chromium начиная с версии 89. То есть нам нужно что-то где есть более ранняя версия. Это что-то - это Ubuntu 18.04 - там 65я версия, если без апдейтов,а с апдейтами 112-я. В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен. И так, поехали - создаём Dockerfile

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments35

Анемичная модель предметной области и логика в сервисах

Level of difficultyMedium
Reading time20 min
Views5.2K

Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.

В этой статье я хочу показать, почему логика в сервисах является более правильным подходом. Мы рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.

Читать далее
Total votes 8: ↑6 and ↓2+7
Comments133

Художественные приемы и профессиональные термины для создания изображений с ИИ. Всё, что нужно знать

Reading time7 min
Views7.1K

В этой статье собраны все основные понятия для написания текстовой подсказки для генерации изображений с помощью нейросети.

Если вы хотите создавать качественные изображения, нужно понимать (или просто запомнить) некоторые профессиональные термины и приемы, используемые художниками и фотографами.

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

Читать далее
Total votes 25: ↑22 and ↓3+24
Comments10

Паттерн Aggregate Outside

Level of difficultyMedium
Reading time5 min
Views6.7K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments17

Как составить договор с помощью нейросетей

Level of difficultyEasy
Reading time8 min
Views3.2K

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

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

Поехали(:

Читать далее
Total votes 19: ↑15 and ↓4+11
Comments11

Привет, я FSD, чем могу помочь?

Level of difficultyEasy
Reading time7 min
Views6.8K

Привет, странник👋

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

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments13

Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

Level of difficultyMedium
Reading time14 min
Views23K

Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью. 

Статья написана на основе доклада с PHP Russia 2022.

Читать далее
Total votes 54: ↑54 and ↓0+54
Comments13

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity