Pull to refresh
0
0
Ivan Terentev @MuF_AsA

C#/Php Developer

Send message

Как я обработал один миллиард строк в PHP

Level of difficultyMedium
Reading time12 min
Views20K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

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

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

Читать далее
Total votes 66: ↑64 and ↓2+72
Comments33

Будни автоматизации или «мне нужна программка для 3D упаковки»

Reading time5 min
Views12K
Автоматизация отечественных предприятий, которой приходиться заниматься, это нужная и высокооплачиваемая, но довольно нервная работа. Выручает юмор. Например, при общении с требовательным клиентом можно вспомнить анекдот: «Держась руками за стену, на ногах еле стоит мужик. К нему пристает ребенок: „Ну, папа, пожалуйста, сделай мне кораблик!“, папа отвечает: „Ага! — Сейчас все брошу и пойду делать тебе кораблик!“. Про один такой сделанный для клиента „кораблик“ и хочется рассказать. Надеюсь, совместное погружение в теплое ламповое (то есть клиентоориентированное) программирование доставит Вам положительные эмоции, да и задача попалась интересная. Поплыли?

image
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments9

Правильный подход к модульной архитектуре

Level of difficultyMedium
Reading time8 min
Views7.8K

Эта статья строится на двух простых идеях:

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

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

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

Правило 16 байт: развенчиваем миф о производительности структур в C#

Level of difficultyMedium
Reading time4 min
Views14K

По умолчанию, при передаче в метод или при возврате из метода, экземпляры значимых типов копируются, когда как экземпляры ссылочных типов передаются по ссылке. В 2008 году была выпущена книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries»‎. В этой книге рекомендовалось не использовать структуры размером больше 16 байт, поскольку, очевидно, структуры большего размера копируются медленнее. Несмотря на то, что прошло уже 16 лет, в сообществе C# разработчиков до сих пор популярно мнение, что производительность структур размером больше 16 байт хуже. Даже Google на запрос «recommended structure size c#» говорит, что это не более 16 байт. В этой статье мы попробуем докопаться до правды.

Читать далее
Total votes 43: ↑42 and ↓1+49
Comments32

Подробный гайд: Как собрать дашборд в FineBI за 30 минут

Level of difficultyEasy
Reading time6 min
Views5.8K

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

Меня зовут Александр Ларин, я руководитель центра технической поддержки и обучения в GlowByte и лидер самого большого в России сообщества FineBI.

В данной статье я хотел бы показать новичкам основы работы в FineBI: как подключиться к источнику данных, создать на его основе датасет, провести обработку данных, собрать свой первый дашборд – и всё это сделать буквально за 30 минут.  А тех, кому этого будет недостаточно, приглашаю на наши курсы

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

SQL инъекции для продолжающих: ломаем настоящий сайт

Reading time5 min
Views22K

Про SQL-инъекции написано огромное количество статей. Все знаю про пресловутые ‘ OR 1 = 1 и аналогичные конструкции, но далеко не все реализовывали их на практике. В этой статье мы разберем на практике некоторые способы реализации SQL-инъекций на примере уязвимого сайта.

Статья предназначена для тех, кто хочет на практике разобраться с тем, что такое SQL-инъекции.

Читать далее
Total votes 20: ↑16 and ↓4+14
Comments7

Защита Home Assistant

Level of difficultyMedium
Reading time6 min
Views13K

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

И все это дельные советы, ничего плохого в них нет, но хочется чего то большего.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments21

WS, но лучше

Reading time4 min
Views13K

Привет, Хабр! В этой статье я хотел бы рассказать о методе работы с WebSocket, который я часто применяю в своих разработках. Если кратко, WebSocket — это, пожалуй, самое частое, что я использую в своих проектах. Мне очень важно, чтобы сервер мог общаться с клиентом в двустороннем режиме, но использование обычного WebSocket не всегда комфортно. Для решения этой задачи я часто пишу какой-либо обработчик, и, суммируя суть того, что именно делает этот обработчик, я решил написать небольшую и очень простую библиотеку.

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

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

Level of difficultyEasy
Reading time7 min
Views10K

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

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

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

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

Памятка РП. Микросервисная архитектура

Level of difficultyMedium
Reading time75 min
Views19K

Целью данной публикации является попытка в тезисной форме напомнить руководителям проектов об основах использования микросервисной архитектуры в проектах создания и внедрения информационных систем, преимуществах таких решений для бизнеса.

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

Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы

Level of difficultyMedium
Reading time8 min
Views4.5K

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

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

Модификация JSON респонсов в Laravel

Level of difficultyMedium
Reading time7 min
Views5.1K

Вчера я опубликовал перевод статьи на тему оптимизации использования респонсов в Laravel с "простейшими" данными. То есть когда в ответ нужно отдать какое-то число, строку, массив или объект. Но что делать если приложение построено на использовании Json Resource? Или ещё больше - нужно изменить уровень вложенности данных, возвращаемых коллекцией? Давайте разбираться!

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

Logstash, Manticore, Nginx и Symfony: сбор, агрегация и быстрый поиск логов

Reading time25 min
Views6.2K

Мысль о централизованном мониторинге логов хранилась в моей голове много лет, но реализовать ее я смог только совсем недавно. Рассказываю о настройке и подводных камнях связки Logstash + Manticore + Nginx + Symfony.

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

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

Reading time8 min
Views26K

Речь идёт о функциональных спецификациях к сайтам, приложениям и прочим информационным системам.

В начале карьеры UX-дизайнера я просто делал интерактивные прототипы, а документацию предпочитал не писать. Почему так:

Во-первых, сложно. Этому навыку никто не обучал, а написать 100 и более страниц текста по проекту — это как диссертацию накатать. Поэтому я говорил клиентам, что, мол, и так справитесь.

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

Продавать это было легко. Достаточно было рассказать о том, как я, заплатив несколько десятков тысяч за документ, экономил несколько сотен тысяч на разработке. И подкрепить рассказ конкретными цифрами и примерами. Чаще всего я рассказываю о том, как пожалел 50к на функциональную спецификацию на участок собственного проекта, и разработчики делали его два с половиной месяца вместо привычного одного. А месяц их работы обходился моей казне почти в 300к рублей. И если бы я не сэкономил на функциональной спецификации, то задача обошлась бы на 400к рублей дешевле.

Читать далее
Total votes 11: ↑8 and ↓3+8
Comments8

Управление устройствами умного дома Яндекс своими скриптами

Level of difficultyMedium
Reading time8 min
Views17K

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

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

Профайлинг Laravel приложений с XDebug и PHPStorm

Level of difficultyMedium
Reading time3 min
Views5.9K

Профайлинг приложений важный этап перед релизом ресурсоёмкой фичи. Везде трубят про удобную отладку PHP-приложений при помощи XDebug и PHPStorm, однако напрочь забывают про замеры времени операций, которые, порой, превышают те самые 3 секунды, которые пользователь будет ждать на странице. Если у Вас есть метод API, который долго работает, самое время его проверить профайлером XDebug, а PHPStorm поможет красиво визуализировать и изучить файл профиля.

Начнём профайлинг
Total votes 8: ↑8 and ↓0+8
Comments9

Синхронизация операций в .NET на примерах

Level of difficultyMedium
Reading time3 min
Views12K

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

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

Читать далее
Total votes 14: ↑10 and ↓4+7
Comments26

Прокрастинация, youtube и горящий дедлайн — что мешает нам учиться?

Level of difficultyEasy
Reading time7 min
Views9.9K

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

Читать далее
Total votes 9: ↑6 and ↓3+6
Comments3

The Hive. Разбор open source решения

Level of difficultyEasy
Reading time7 min
Views5.6K

В свете быстрого развития информационных систем и увеличения угроз кибербезопасности поиск надежных решений, позволяющих минимизировать вред от нарушения информационной безопасности (ИБ), становится важной задачей для различных организаций. Когда инфраструктура организации начинает настолько усложняться, что становится невозможно уследить за общей картиной происходящего, на помощь приходит Центр обеспечения безопасности (SOC, Security Operations Center) — это широко специализированный ситуационный центр мониторинга информационной безопасности, совокупность программно‑аппаратных средств, персонала и процессов. Данный тип систем предназначен для централизованного сбора и анализа информации о событиях и инцидентах ИБ, поступающих из различных источников ИТ‑инфраструктуры.

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

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

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

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity