Pull to refresh
2
0
Ivan Muratov @binakot

User

Send message

Выжимаем максимум из PostgreSQL

Level of difficultyMedium
Reading time14 min
Views14K

Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Читать дальше →
Total votes 48: ↑55.5 and ↓-7.5+63
Comments21

Что делает ChatGPT… и почему это работает?

Level of difficultyMedium
Reading time75 min
Views146K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

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

Заблуждения программистов о картах

Reading time12 min
Views53K


Дизайн систем быстро выявляет ошибки в восприятии закономерностей функционирования мира. Те правила, которые кажутся непреложными истинами, могут ими не оказаться.

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

Заблуждение 1. Форма Земли — это просто


Шар — множество точек в пространстве, удалённых от центра на расстояние не выше радиуса. Однако хотя бы из-за суточного вращения форма нашей планеты отличается от идеального шара. Планета сплюснута у полюсов и утолщена на экваторе, а также обладает рельефом и испытывает циклы приливов и отливов.
Читать дальше →
Total votes 314: ↑310 and ↓4+306
Comments114

Интерпретация /proc/meminfo и вывода free для Red Hat Enterprise Linux

Reading time6 min
Views7.9K

Среда 

Red Hat Enterprise Linux (RHEL) 5

Red Hat Enterprise Linux (RHEL) 6

Red Hat Enterprise Linux (RHEL) 7

Red Hat Enterprise Linux (RHEL) 8

Вопрос

Мне нужна интерпретация вывода /proc/meminfo.

Я хочу сравнить вывод free -k с cat /proc/meminfo.

Читать далее
Total votes 16: ↑12 and ↓4+8
Comments3

Затачиваем маршрут GPS: несколько способов отфильтровать данные

Reading time7 min
Views6.7K

Привет, меня зовут Сергей и я разработчик в команде мобильного бэкенда в компании ATI.SU. Не так давно в мою жизнь пришла задача. В ней нужно было принять координаты от приложения на Android и отобразить их на карте.

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

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments14

Геоаналитика с помощью Python и открытых данных: пошаговое руководство

Reading time11 min
Views42K

Геоаналитика с помощью Python: GeoPandas, folium, Uber H3, OSM + примеры как можно определять лучшие локации для поиска помещений под открытие кофейни (и не только).

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

10 ловушек, связанных с требованиями, которых следует избегать

Reading time12 min
Views15K

Небрежное отношение к разработке и управлению требованиями часто приводит к тому, что проекты по разработке программного обеспечения оказываются сложными или проваливаются. Вот десять распространенных ловушек, с которыми можно столкнуться, если не принимать требования всерьез. Я описываю симптомы, которые могут указывать на то, что вы стали жертвой одной из ловушек, а также некоторые возможные решения. Более подробную информацию обо всех этих ловушках можно найти в книге "Требования к программному обеспечению", 3-е издание, авторы Karl Wiegers и Joy Beatty.

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

Алгоритм оценки стиля вождения водителя грузового (коммерческого) автомобиля

Reading time10 min
Views13K

2021 год. IoT окружил нас с Вами со всех сторон. GPS/GLONASS трэкерами и всевозможными облачными платформами слежения нас зазывают со всех сторон. Казалось бы, с чего вдруг я решил, что данный пост имеет актуальность?! Но не все так однозначно - давайте разбираться!

Ни для кого не секрет, что основной статьей затрат при автомобильных грузоперевозках является стоимость топлива. Все участники данной игры (Автомобильные грузоперевозки) прилагают максимум усилий для минимизации данной статьи расходов.

Автопроизводители бесконечно совершенствуют свои модели автомобилей, предлагая все более производительные, безопасные и экономичные седельные тягачи. Развитые страны строят более экономичные автомагистрали. Логистические компании выстраивают более оптимальные логистические маршруты и казалось бы все движется только вверх и вперед и с каждым годом расходы транспортной компании на топливо должны уменьшаться! Но в жизни получается не так. Несомненно, если сравнивать 1990,2000 и 2010 года, то по мере обновления моделей грузовых автомобилей, расход топлива стремительно сокращался. К примеру для грузовиков 1990 года выпуска при перевозке 20 тонн груза расход топлива 45л/100км считался нормальным. Моделям 2000-х годов удавалось выйти из 40л/100км расхода топлива, а грузовики 2010 годов выпуска уже могли хвастаться расходом 30-35 л/100км пути. Но что происходит сейчас, в 2021году?

Современные модели грузовиков заявляют о паспортных расходах в 21....23...25л/100км, но в реальных условиях транспортные компании получают средний расход автомобилей в районе 30-31л/100км. Встает резонный вопрос? Получается что автопроизводители лгут и их автомобили не стали более экономичными и это всего лишь маркетинговые ходы? На самом деле нет - проблема кроется в другом. Автопроизводители, как и производители электроники, очень сильно шагнули вперед и автомобили обогнали в своем развитии людей, которые их эксплуатируют. Ситуация стала такова, что люди, управляющие современными грузовыми автомобилями, не могут раскрыть полный потенциал автомобиля с точки зрения расхода топлива.

Читать далее
Total votes 18: ↑11 and ↓7+4
Comments49

Что такое архитектурная модель зрелости компании?

Reading time7 min
Views8.5K
image
Работая с различными компаниями невозможно не обратить внимание, что процессы построены по разному в разных компаниях. В одной компании процессы идеальные или близки к идеальным, в другой же компании приходится ожидать достаточно продолжительное время реакции на запрос. В этой ситуации очень легко разделить компании на плохие и хорошие, но это очень просто, а что просто не всегда правильно. Уже обучаясь на архитектора решений и проводя исследование по метрики качества Maturity — Зрелость, я нашла описание очень простого и понятного подхода к классификации компаний в зависимости от процессов. Этим подходом я делюсь с вами в моем переводе статьи «What is Enterprise Architecture Maturity Model?» или «Что такое архитектурная модель зрелости компании?»

Характеристики уровней зрелости:


Уровень 5: Оптимизированный — фокус на улучшении процессов
Уровень 4: Управляемый — процессы измеряются и контролируются
Уровень 3: Установленный — процессы уровня организации, достаточно проактивные (проекты адаптируют свои процессы согласно стандартам организации)
Уровень 2: Повторяемый — процессы уровня проектов и реагирующие на изменения более гибко
Уровень 1: Начальный — процессы не предсказуемы, слабо контролируемы и инертны к изменениям
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Микросервисы на Java: практическое руководство

Reading time29 min
Views88K

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


Примечание: Статья ~ 7000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже.


Содержание


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

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

Reading time18 min
Views304K

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

Читать дальше →
Total votes 87: ↑82 and ↓5+77
Comments41

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Reading time43 min
Views114K

Необходимое вступление


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


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


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


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Total votes 88: ↑82 and ↓6+76
Comments79

Time series данные в реляционной СУБД. Расширения TimescaleDB и PipelineDB для PostgreSQL

Reading time21 min
Views58K
Time series данные или временные ряды — это данные, которые изменяются во времени. Котировки валют, телеметрия перемещения транспорта, статистика обращения к серверу или нагрузки на CPU — это time series данные. Чтобы их хранить требуются специфичные инструменты — темпоральные базы данных. Инструментов — десятки, например, InfluxDB или ClickHouse. Но даже у самых лучших решений для хранения временных рядов есть недостатки. Все time series хранилища низкоуровневые, подходят только для time series данных, а обкатка и внедрение в текущий стек — дорого и больно.



Но, если у вас стек PostgreSQL, то можете забыть о InfluxDB и всех остальных темпоральных БД. Ставите себе два расширения TimescaleDB и PipelineDB и храните, обрабатываете и проводите аналитику time series данных прямо в экосистеме PostgreSQL. Без внедрения сторонних решений, без недостатков темпоральных хранилищ и без проблем их обкатки. Что это за расширения, в чем их преимущества и возможности, расскажет Иван Муратов (binakot) — руководитель отдела разработки в «Первой Мониторинговой Компании».
Total votes 50: ↑48 and ↓2+46
Comments16

7 недостающих факторов в подходе 12 Factor App

Reading time8 min
Views17K


Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения, запускаемые в Kubernetes.

Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 факторов (они поддерживаются моделью оркестровки контейнеров Kubernetes).

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments11

Что должен делать тимлид: роли, обязанности и навыки

Reading time3 min
Views107K


Тимлид – это снежинка. При детальном рассмотрении в каждой компании тимлид принимает разную форму. Где-то от него ждут только передвижения задач по доске, где-то – наймов и увольнений, а где-то просят одновременно проектировать архитектуру, ставить бизнес-цели и думать о болях пользователей продукта. На самом деле все обстоит еще сложнее. Различия встречаются не только между разными компаниями, но и даже в рамках команд, находящихся в одном офисе.


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


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

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments28

Функциональное мышление. Часть 1

Reading time7 min
Views59K

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


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

Профилирование и трейсинг с perf

Reading time1 min
Views25K
Учимся дебажить с perf — целых 18 страниц про основные подкоманды, фичи и устройство инструмента. Джулия рекомендует; “Я даже использовала его несколько раз для профилирования Ruby программ!”

Уровень сложности — для суперпродвинутого администратора.

Когда нужно отыскать причину сбоя, не имея доступа к исходным кодам. Все логи уже просмотрены, все debug и verbose-ключи включены, а причина проблем так и не обнаружена — используйте perf. Потребуется навык кодинга на языках типа Си.


Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments13

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

Читать дальше →
Total votes 340: ↑333 and ↓7+326
Comments183

Торрент лекций Лекториум

Reading time1 min
Views35K
image

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

Дабы облегчить дальнейшее скачивание лекций выкладываю некоторые из ник как торренты.

Читать дальше →
Total votes 133: ↑131 and ↓2+129
Comments102

Где погрызть гранит науки

Reading time4 min
Views28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты
Total votes 223: ↑213 and ↓10+203
Comments69
1

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Registered
Activity