Как стать автором
Обновить
5
0
Гилев Михаил @o4ina

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

Отправить сообщение

Личный VPN: юзер ликует, VLESS смеётся, а РКН плачет

Время на прочтение6 мин
Количество просмотров111K

Эта статья — расширенный туториал как оформить сервер и поднять свой VPN на протоколе VLESS с XTLS-Reality за 10 минут, который выделяется на общем плане тем, что трафик шифруется и маскируется под подключение к популярным сайтам (доменам), тем самым станет тёмной лошадкой для ТСПУ.

Читать далее

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

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров810

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

Читать далее

Мой первый и неудачный опыт поиска торговой стратегии для Московской биржи

Уровень сложностиСложный
Время на прочтение17 мин
Количество просмотров4K

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

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

Первый и самый важный вопрос - при помощи чего проводить тесты торговой стратегии на исторических данных? В какой программе или при помощи какой библиотеки создавать стратегию и потом прогонять её на истории?

Раз мой торговый робот создан в среде исполнения JavaScript Node.js, то и тесты в идеале должны проводится на чём-то схожем. Но забегая немного вперёд скажу что получилось по другому - Python пришёл на помощь.

Разбираюсь и ищу 📈

«Кто на ком стоял?» Про страдательный залог в технической документации

Время на прочтение5 мин
Количество просмотров18K

В технической документации часто встречаются фразы с использованием страдательного залога. Параметры там «задаются», файлы «сохраняются», а программа «запускается». Ох, опасная эта форма для строгих и однозначных описаний! Почему же страдательный залог заставляет читателей страдать? Будем разбираться...

Читать далее

Uber — причины перехода с Postgres на MySQL

Время на прочтение19 мин
Количество просмотров104K


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


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

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

Погружение в интерфейсы Go

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров12K

Интерфейсы — одна из самых сложных тем для начинающих в Go. Я решил тщательно разобраться с этой темой и одновременно написать эту статью. После прочтения этой статьи вы сможете ответить на следующие вопросы:
Что такое интерфейс? Что такое значение интерфейса? Что такое пустой интерфейс? Почему nil-интерфейс не равен nil? Где разместить интерфейс? Какая структура интерфейса?

Читать далее

Руководство по Docker Compose для начинающих

Время на прочтение9 мин
Количество просмотров904K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого материала знаком с основами Docker. Если это не так — можете взглянуть на эту серию материалов, на эту публикацию, где основы Docker рассмотрены вместе с основами Kubernetes, и на эту статью для начинающих.

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

Изучаем Docker, часть 6: работа с данными

Время на прочтение5 мин
Количество просмотров250K
В сегодняшней части перевода серии материалов о Docker мы поговорим о работе с данными. В частности — о томах Docker. В этих материалах мы постоянно сравнивали программные механизмы Docker с разными съедобными аналогиями. Не будем отходить от этой традиции и здесь. Данные в Docker пусть будут специями. В мире существует множество видов специй, а в Docker — множество способов работы с данными.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными


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

Майкл Стоунбрейкер: «Всё новое — это хорошо забытое старое. Продолжение»

Время на прочтение40 мин
Количество просмотров5.7K

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

Читать далее

PostgreSQL 17: уже можно просто делать бекапы и перестать страдать?

Время на прочтение10 мин
Количество просмотров16K

Так исторически сложилось, что задача организации простого и понятного резервного копирования в мире PostgreSQL до сих пор не решена. Есть набор комьюнити утилит, у каждой из которых есть некие плюсы, но всегда в нагрузку будет прорва минусов (тут нет инкрементных копий, там нет внятного расписания, это может только весь сервер вместо конкретной базы увозить и так далее). Да, есть тяжёловесный энтерпрайзный софт за много денег, зачастую требующий странного и работающий по какой-то своей логике, но это тоже не панацея. А вот чтобы просто и понятно, без головных болей организовать прозрачный процесс банального бекапа с инкрементами, работающим расписанием и восстановления только того что надо - вот такого нет.

Но буквально на днях вышел PostgreSQL 17 и может там что-то изменилось? И да, и нет. Та самая мана небесная в виде pg_awesome_backup_tool так и не появилась, однако в релиз попал механизм walsummarizer, который обещает нативно отслеживать изменения в файлах баз данных, что позволит делать инкрементальные бекапы нативно и без лишних приседаний.

А чтобы не рассматривать новичка в вакууме, будем сравнивать его с ptrack - нашей (Postgres Professional) разработкой, которую наши любимые конкуренты уже расхватали в свои продукты и продают их как уникальнейшие решения.

Читать далее

Звездная ночь: смотрим вверх на Млечный Путь

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.4K

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

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

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

SOLID на котиках

Время на прочтение7 мин
Количество просмотров42K


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

Гайд для новичков по установке Kubernetes

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров88K

© кадр из к/ф «Пираты Карибского моря»

С чего начинается практическое освоение любой системы? Правильно, с установки. Данный гайд является компиляцией из народной мудрости, официальной документации, а также собственного опыта и призван помочь новичкам разобраться с тем, как же все таки устанавливать Kubernetes.

Мы потренируемся ставить как вырожденный кластер «все-в-одном», состоящий только из одного узла, так и настоящий высокодоступный (high available) кластер с полным резервированием. В процессе работы мы рассмотрим применение различных контейнерных движков (Container Runtimes): cri-o, containerd, связки Docker + cri-dockerd plugin. Кроме этого, потренируемся настраивать отказоустойчивый балансировщик нагрузки на базе keepalived и haproxy.

Весь процесс установки будет детальным образом прокомментирован и разложен по шагам, а в реперных точках мы будем делать снимки состояния виртуальных машин (snapshots), что позволит рассмотреть различные варианты установки без необходимости делать одну и ту же работу по несколько раз.
Читать дальше →

Kubernetes: шпаргалка для собеседования

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров44K
Всем привет! Меня зовут Олег, я работаю исполнительным директором по разработке в Газпромбанке. На разных этапах карьеры я участвовал во многих собеседованиях, а в настоящее время сам собеседую кандидатов на должность инженеров DevOps и системных администраторов в Газпромбанке, вследствие чего у меня сформировалось некоторое представление о вопросах, которые могут быть заданы соискателям. И сейчас я хочу остановиться на разделе вопросов про Kubernetes.

image

Сразу хочу сказать, что изначально планировал сделать одну статью, но в итоге получилась такая простыня, что пришлось разделить текст на две части. Ссылку на вторую опубликую здесь, как только она появится (вот она).

Вопросы по Kubernetes достаточно часты на собеседованиях на инженерные вакансии, связанные с администрированием и эксплуатацией. Они могут варьироваться от базовых, рассчитанных на механическую проверку теоретических знаний («объясните, что такое service») до более сложных и комплексных, требующих глубинного понимания внутренних принципов Kubernetes и работы (каким образом опубликовать приложение, развёрнутое в Kubernetes). Давайте пойдём от базы в направлении возрастания сложности.
Читать дальше →

Почему СУБД такие медленные

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров36K


Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» (оригинал, англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL». Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность:

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

…Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных».

Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ.

После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.
Читать дальше →

Основы Linux от основателя Gentoo. Часть 2 (1/5): Регулярные выражения

Время на прочтение7 мин
Количество просмотров69K

Предисловие


Об этом самоучителе


Добро пожаловать в «Азы администрирования», второе из четырех обучающих руководств, разработанных чтобы подготовить вас к экзамену 101 в Linux Professional Institute. В данной части мы рассмотрим как использовать регулярные выражения для поиска текста в файлах по шаблонам. Затем, вы познакомитесь со «Стандартом иерархии файловой системы» (Filesystem Hierarchy Standard или сокр. FHS), также мы покажем вам как находить нужные файлы в вашей системе. После чего, вы узнаете как получить полный контроль над процессами в Linux, запуская их в фоновом режиме, просматривая список процессов, отсоединяя их от терминала, и многое другое. Далее последует быстрое введение в конвейеры, перенаправления и команды обработки текста. И наконец, мы познакомим вас с модулями ядра Linux.



В частности эта часть самоучителя (Часть 2) идеальна для тех, кто уже имеет неплохие базовые знания bash и хочет получить качественное введение в основные задачи администрирования Linux. Если в Linux вы новичок, мы рекомендуем вам сперва закончить первую часть данной серии практических руководств. Для некоторых, большая часть данного материала будет новой, более опытные же пользователи Linux могут счесть его отличным средством подвести итог своим базовым навыкам администрирования.


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

Нейронные оптимизаторы запросов в реляционных БД (Часть 2): На пути к продуктивизации

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.4K

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

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

Читать далее

Нормально разбираемся в Нормальном распределении

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров42K

Интуитивное понимание Нормального распределения

Читать далее

Почему десна вас покидает и как вернуть её домой?

Время на прочтение11 мин
Количество просмотров16K
Десна иногда съезжает, обнажая корни зубов. Это нормально и может случиться с каждым, но штука это неприятная. Кроме повышенной чувствительности к горячей, холодной, кислой или сладкой пище, она несёт целый куст возможных последствий ― от заболеваний полости рта до изменения прикуса и нарушения жевательной функции. Да ещё и эстетически это так себе выглядит.

Вариантов, откуда рецессия берётся, сильно больше одного, иногда весьма противоречивых.

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

image
Вверху фото десны с рецессией до операции, а внизу — после операции

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

А теперь живописные подробности.

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

Отлаживаем развертывание ПО со strace

Время на прочтение14 мин
Количество просмотров12K


Моя основная работа — это, по большей части, развертывание систем ПО, то есть уйму времени я трачу, пытаясь ответить на такие вот вопросы:


  • У разработчика это ПО работает, а у меня нет. Почему?
  • Вчера это ПО у меня работало, а сегодня нет. Почему?

Это — своего рода отладка, которая немного отличается от обычной отладки ПО. Обычная отладка — это про логику кода, а вот отладка развертывания — это про взаимодействие кода и среды. Даже если корень проблемы — логическая ошибка, тот факт, что на одной машине все работает, а на другой — нет, означает, что дело неким образом в среде.


Поэтому вместо обычных инструментов для отладки вроде gdb у меня есть другой набор инструментов для отладки развертывания. И мой любимый инструмент для борьбы с проблемой типа "Почему это ПО у меня не пашет?" называется strace.

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

Информация

В рейтинге
Не участвует
Откуда
Барнаул, Алтайский край, Россия
Зарегистрирован
Активность