Pull to refresh
0
0
Литус Артём @Artymka

Пользователь,IT-Студент,

Send message

«Настоящий» Low-Code: деградация программирования, или назад в будущее?

Reading time5 min
Views20K

Невозможно ошибиться, если на вопрос о самых сложных программах - упомянуть прошивки FADEC и автопилот Бурана. Что между ними общего? Это ultra-reliable код, исполняемый в RTOS-условиях - то есть буквально апогей программирования с выверенным каждым тактом и несколькими уровнями отказоустойчивости программ. Тем удивительнее, что все программы такого уровня разрабатываются только по Low-Code методикам - и началось это задолго до текущего хайпа.

Ну-ка, ну-ка!
Total votes 21: ↑10 and ↓110
Comments36

Как фронтендеры приручили микросервисы и перестали беспокоить бэкендеров

Reading time9 min
Views11K

Привет Хабр! Меня зовут Евгений Лабутин, я фронтенд-разработчик в МТС Digital. Расскажу вам о том, как мы приручили микросервисы на нашем проекте МТС Твой бизнес, зачем они нам вообще понадобились и какую выгоду мы от этого получили. Интересно? Добро пожаловать под кат!

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

Парадокс Rimworld: захватывающая сюжетом «песочница»

Reading time9 min
Views63K

Чью сказку вы хотите послушать?

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

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

Но про то, как это работает, чуть позже. Сразу главное – влюбиться в эту игру можно за потрясающий сюжет. Который «размазан» по миру. Сюжет, которого, в принципе, нет.

Итак, начало первой игры: ваш корабль взрывается. Вы едва успеваете добежать до капсул и приземляетесь на поверхности. 30 аварийных рационов питания, стальные обломки, оружие. Рядом – руины каких-то древних зданий.
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments73

Обзор книги «Начинаем программировать на Python», лучшая книга для начинающих с нуля

Reading time5 min
Views23K

Всем доброго времени суток!

Публикую обзор книги "Начинаем программировать на Python" от автора Тони Гэддиса.

Стоит читать? Да! Почему? Максимально подробно опишу в статье.

Кто целевая аудитория книги?

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

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

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

Как настроить и запустить систему отслеживания измененных данных PostgreSQL

Reading time12 min
Views18K

PostgreSQL предлагает метод логического декодирования и делает возможным сбор данных об изменениях на основе логирования. Вы сможете настроить и запустить CDC в несколько шагов.

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

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

Статья посвящена отслеживанию изменённых данных (CDC) в PostgreSQL и способам достижения этой цели.
Отслеживание изменённых данных (CDC) — это метод интеграции данных для обнаружения, захвата и передачи изменений, внесённых в источники данных базы данных.
Как правило, интеграция данных на основе CDC состоит из следующих шагов:

  1. Захват изменённых данных в исходной базе данных.
  2. Преобразование изменённых данных в формат, который могут принять ваши потребители (консьюмеры).
  3. Публикация данных для консьюмеров или целевой базы данных.

PostgreSQL предлагает два встроенных способа сделать CDC возможным:

  • Из журналов транзакций, PostgreSQL WALs (они же Write Ahead Logs).
  • С помощью триггеров базы данных.

Давайте кратко обсудим плюсы и минусы использования журналов транзакций (WALs) и триггеров для отслеживания изменения данных.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments4

Пусть программирует Серёжа

Reading time6 min
Views94K

У каждого клиента – свои предпочтения. Не только в выборе автомобиля, блюда на обед или корпоративной информационной системы. Клиенты любят выбирать программистов.

Ну, что программисты разные – ежу понятно. Считается, что клиенты предпочитают профессионалов. Мы тоже так думали, и искренне стремились сделать каждого своего программиста этим самым профессионалом.

Однако, несколько клиентов, ставя нам задачи, упорно твердили: пусть программирует Серёжа. Хотя Серёжа – лютейший говнокодер, объект всеобщей жалости и главный поставщик материалов для конференций на тему «Как не надо программировать».

Читать далее
Total votes 161: ↑133 and ↓28+133
Comments245

Лазеры в электронике: деметаллизация покрытий

Reading time5 min
Views4.3K

Мы продолжаем рассказывать про применение лазеров в электронике.

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

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

Обзор российской Help Desk системы vsDesk

Reading time6 min
Views55K
image

Всем доброго времени суток!


Хочу поделиться с сообществом небольшим обзором HelpDesk системы, которую мы в своей компании выбрали в качестве боевой! Система выросла из Opensource-проекта, стартовавшего в конце 2012 года и доросшая до релиза в январе 2014 года. Может быть установлена, как на собственные сервера, так и на shared хостинг. Кстати, нашли мы этот проект здесь, на хабре. Итак, наш сегодняшний пациент vsDesk.
Читать дальше →
Rating0
Comments1

Важная причина поражения СССР в цивилизационной гонке с Западом

Reading time8 min
Views18K

Когда-то, я написал статью, которая, на мой взгляд, только увеличила актуальность сегодня в свете произошедших тектонических сдвигов во внешней политики и попыток ответа на эти вызовы во внутренней политике России: Ещё одна причина поражения СССР в цивилизационной гонке с Западом (часть 1 и 2). - ЭконоИнженерика — ЖЖ (livejournal.com)

Понятно, что тема поиска причин краха СССР в его соревновании с Западом неисчерпаема.Одной из популярных теорий тут является теория, основанная на сравнении размера экономик, контролируемых советским и западными блоками. Сравнивая эти экономики адепты такой теории приходят к выводу о том, что размер рынка на контролируемой СССР территории был в разы меньше, а, следовательно конкурентоспособность производства потребительских товаров была в разы ниже (так как известна зависимость себестоимости производства от его масштабов).В качестве критики такой теории можно привести несколько аргументов:Во-первых, не всегда под крылом СССР был много меньший, чем у Запада, рынок. Были годы, когда СССР был дружен с коммунистическим Китаем, и тогда общий рынок стран социалистического лагеря был соизмерим с рынком стран Западного блока.Во-вторых, не все товары имеют линейную динамику себестоимости от объемов производства. Так сложные продукты, типа автомобилей, вполне способны иметь конкурентную себестоимость при объёмах производства намного ниже, чем размеры рынка в странах бывшего советского блока. Но мы все видели, какое качество автомобилей могла предложить советская промышленность ;-) При том, что как раз стоимость советских автомобилей была очень небольшой.

Читать далее
Total votes 75: ↑30 and ↓45-11
Comments656

Core Web Vitals: с чего начать?

Reading time18 min
Views9.8K


Согласно web.dev, улучшение качества взаимодействия с пользователем — ключ к долгосрочному успеху любого сайта. Понимая, насколько важен для развития интернета качественный пользовательский опыт, компания Google в 2020 году представила инициативу Web Vitals. Это единое руководство по метрикам качества, которые необходимы для обеспечения удобного взаимодействия с пользователем. Хотя за прошедшие годы Google создала ряд инструментов для измерения эффективности взаимодействия и составления отчетов (Lighthouse, PageSpeed Insights и Measure), Web Vitals должна упростить измерение производительности и помогает разработчикам сайтов сосредоточиться на самых важных показателях — Core Web Vitals.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments0

Киев-Стокгольм-Харьков-Ивано-Франковск — моя история

Reading time11 min
Views65K

Всем привет! Знаю, что темы про обратную эмиграцию вызывают интерес. Расскажу свою историю как есть - честно и без украшений.

Меня зовут Максим и я вернулся обратно в Украину после 1.5 лет жизни в Стокгольме.

Почему и зачем, спросите вы - возвращаться из развитой страны первого мира? Затем, что только в Украине мы с женой почувствовали спокойствие в душе. Осознание, что ты дома, вокруг родные люди, язык, менталитет - дорогого стоит. Нам это стоило жизни и возможного будущего в стране из топ-5 мировых рейтингов.

Все началось в 2015 году с знакомства с моей женой. Она уже тогда была влюблена в скандинавский образ жизни. На протяжении следующих 3 лет мы объездили туристами всю Скандинавию, побывав даже в Исландии. Жена была счастлива, постоянно говорила о том, как ей хочется жить в Швеции или Дании, как она прониклась скандинавским духом и как сильно ей понравились скандинавы как люди. По ее тогдашним словам - немцы скучны, голландцы жадны, французы подозрительны а южане слишком веселые и безалаберные. Только скандинавы - образцовые люди, среди которых хочется жить. Все в нашей квартире напоминало о Скандинавии - начиная от книги "Хюгге" на ее рабочем столе и заканчивая мебелью из Икеи и надписью Välkommen на коврике. Она даже начала учить шведский и посещала разговорный клуб.

Читать далее
Total votes 150: ↑119 and ↓31+126
Comments1285

Как я стал программистом в 35 и стоит ли оно того?

Reading time8 min
Views104K
image

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


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

Для чего я решил написать этот пост? Отчасти поделиться опытом, советами, отчасти меня сподвигла на это статья «Как я не стал программистом в 35 лет», я тоже решил написать свой пост на схожую тему, но в то время у меня не были выполнены два условия: 1. Мне не было 35; 2. Я только устроился на свою первую работу разработчиком, но я считал что не могу называться программистом если не отработал в этой должности хотя бы 1 год. Сейчас все условия соблюдены, если вам интересно прошу под кат.
Читать дальше →
Total votes 84: ↑76 and ↓8+96
Comments135

Сторителлинг в играх — работа не только для сценариста

Reading time4 min
Views5.7K


Работая сценаристом игр, вы будете писать сценарии, диалоги, внутриигровой текст и, возможно даже, трейлер. Будет место за столом во время препродакшна, и много коммуникаций с геймдизайнерами. Главное — вы не будете рассказывать историю в одиночку.
Читать дальше →
Total votes 8: ↑7 and ↓1+9
Comments0

Руководство по сжатию скелетных анимаций

Reading time11 min
Views5.3K

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


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

Основы анимации и сжатия


Скелетная анимация — довольно простая тема, если забыть о скиннинге. У нас есть концепция скелета, содержащего преобразования костей персонажа. Эти преобразования костей хранятся в иерархическом формате; по сути, они хранятся как дельта между своей глобальной позицией и позицией родителя. Терминология здесь сбивает с толку, потому что в игровом движке локальным часто называют пространство модели/персонажа, а глобальным — мировое пространство. В терминологии анимации локальным называется пространство родителя кости, а глобальным — или пространство персонажа, или мировое пространство, в зависимости от того, есть ли движение корневой кости; но давайте не будем об этом особо беспокоиться. Важно то, что преобразования костей хранятся локально относительно их родителей. Это имеет множество преимуществ, и особенно при смешении (блендинге): если бы при смешении двух поз кости были глобальными, то они бы линейно интерполировались в позиции, что приводило бы к увеличению и уменьшению костей и деформации персонажа.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Валидация ассетов в Unity3D

Reading time4 min
Views6.2K


Начнём с того, что я обожаю сериализацию в Unity. Она надёжна и очень проста в использовании. Я просто расширяю MonoBehaviour, ScriptableObject и подобные классы и настраиваю сериализуемые поля экземпляров в инспекторе.

Но у неё есть и слабости. Одна из них ― человеческий фактор. Представьте себе огромный проект, который живёт несколько лет и над которым работает около сотни человек. И любой из них может совершить ошибку: оставить пустую ссылку на объект, указать число вне диапазона, ввести строку в неверном формате, заполнить массив слишком маленьким или, наоборот, слишком большим количеством объектов. Уверен, у каждого из вас найдутся такие примеры из своего опыта. Причин и оправданий тоже множество: невнимательность, неожиданные последствия слияния веток, сбои редактора… И никто от этого не застрахован.

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

Конечно, можно добавить проверок в коде, но от этого он загрязнится. Иногда эти проверки негативно влияют на производительность. А ещё не всегда однозначно понятно, как именно обработать каждую конкретную ошибку.

Универсального или даже штатного метода бороться с подобным в Unity нет. Поэтому мы в Pixonic реализовали свою систему валидации ассетов. И это очень помогает нам жить.

Сейчас я опишу, как там всё устроено.
Читать дальше →
Total votes 25: ↑24 and ↓1+26
Comments6

О работе ПК на примере Windows 10 и клавиатуры ч.2

Reading time16 min
Views44K
В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web, мобильные приложения — поэтому здесь могут быть неточности. Люди занимающиеся электроникой навряд ли найдут для себя что-то полезное. Первая часть находится здесь.


Проблема высшего программистского образования в том что студенты весьма подробно изучают отдельные аспекты вырванные из контекста не понимая как это всё увязывается вместе. Несколько семестров высшей математики, чтобы понимать физику, чтобы понимать электротехнику, электроприборы, ассемблер, ОС, алгоритмы, системное программирование и куча других предметов утрамбованных в стандартную пятилетнюю программу. Обилие деталей и никто не объясняет как это вписывается в общую картину, предполагается что через 5 лет студент сам увяжет это в голове, а потом пойдёт работать с .Net и никогда не притронется к электронике и режиму ядра. Я считаю, что не нужно так подробно знать о работе компьютера, достаточно общего понимания что происходит ниже по технологическому стеку. Если бы люди составляющие программы обучения для ВУЗов открывали автошколы, вы бы учили русский язык, каллиграфию и гидродинамику, потому как надо общаться с инспекторами, менять жидкости и писать объяснительные. В статье будут некоторые неточности, так что для сдачи экзамена по профильным предметам она не подойдёт, но после неё будет легче понять устройство ПК.

Под катом трафик.
Читать дальше →
Total votes 32: ↑20 and ↓12+17
Comments68

Функторы, аппликативные функторы и монады в картинках

Reading time5 min
Views192K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


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


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments60

Монады как паттерн переиспользования кода

Reading time24 min
Views71K


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


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


Но ведь в интернете буквально сотни статей про ФП и монады, зачем писать еще одну?


Дело в том, что все их (по крайней мере те что я читал) можно поделить условно на две категории: с одной стороны это статьи где вам объяснят что монада это моноид в категории эндофункторов, и что если монада T над неким топосом имеет правый сопряжённый, то категория T-алгебр над этой монадой — топос. На другой стороне располагаются статьи, где вам рассказывают, что монады — это коробки, в которых живут собачки, кошечки, и вот они из одних коробок перепрыгивают в другие, размножаются, исчезают… В итоге за горой аналогий понять что-то содержательное решительно невозможно.


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


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

Читать дальше →
Total votes 89: ↑85 and ↓4+100
Comments256

Так ли страшен Rust, как его малюют

Reading time10 min
Views41K

Некоторое время назад я начал понимать необходимость разнообразить мой опыт программирования исключительно на C#. После некоторого изучения различных вариантов, таких как Haskell, Scala, Rust и некоторых других, выбор пал на последний. Со временем я начал обращать внимание, что Rust всё больше и больше рекламируется исключительно как "системный язык", который нужен для вырвиглазно сложных компиляторов и супер-нагруженных систем, с особыми требованиями к безопасности и многопоточности, а для вариантов попроще есть Go/Python/Java/..., в то время как я с удовольствием и весьма успешно использовал его как замену моей рабочей лошадке C#.



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

Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments399

Как я создал более 100 приложений с открытым кодом, используя инструменты автоматизации

Reading time2 min
Views22K
Представляем вам перевод статьи Sm0ke, опубликованной на сайте dev.to. Автор рассказывает о своем опыте генерации веб-приложений и способе автоматизации процесса их создания.

Привет, кодеры!

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

Все мои приложения, как платные, так и бесплатные, находятся в открытом хранилище GitHub. О некоторых из них я расскажу в этой статье.

#1  Сгенерированные JAMstack-приложения


Всего я создал более 40 таких приложений. Дизайн для них разрабатывали известные веб-агентства.

Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments10
1

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity