Всем привет, это Денис Вебер.
Какое-то время назад я создал в 3D один из городов из игры Герои 3. Этот проект так понравился читателям, что я решил продолжить серию и на этот раз смоделировал город Некрополис.
Новости
О мере успеха. Градусные экспедиции: завершение
Это завершение рассказа о Великих градусных экспедициях XVIII века, которые должны были определить, сплюснутая Земля или вытянутая.
Публикация работ
Уже в августе 1737 года Лапландская экспедиция возвращается в Париж. И Мопертюи тут же начинает давать концерты, то есть, популярные лекции о своем путешествии. Он спешит взять публику, пока горячо. Вольтер устраивает своему другу целую медиа-кампанию. Пишет фантастическую работу “Микромегас”, где великана измеряют геометры, подозрительно похожие на наших лапландских астрономов. Есть там, к примеру, такой пассаж:
Эволюция монолитного приложения, еще один подход
В IT индустрии есть одна достаточно часто встречающаяся не простая проблема. Это старые монолитные приложения, которые приносят их текущим владельцам много денег прямо сейчас. Обычно эти приложения экстенсивно развивались долгие годы или даже десятки лет и достигли предела экстенсивного развития, когда даже далекие от техники люди в бизнесе понимают, что дальше так жить нельзя.
Выбросить такой монолит невозможно, бизнес остановится. Переписать тоже либо нельзя, либо очень дорого, по причинам хорошо описанным еще у Фредерика Брукса в Мифическом человеко-месяце. Во первых как они там под капотом работают в точности, по прошествии 20+ лет уже никто не знает. Во вторых, пока приложение переписывается, а обычно это 1-2 года, бизнес успевает уйти вперед и новое приложение надо докатывать до актуального состояния и так без конца.
На данный момент в таких случаях обычно используются два возможных подхода. Либо сделать новый продукт, с похожим, но все же новым функционалом. Либо распилить монолит на несколько достаточно небольших сервисов, а уже их постепенно переписывать.
Несколько лет назад к нам пришел заказчик с нераспиливаемым монолитом и необходимостью реализовать ряд новых нефункциональных требований как можно скорее. В статье я хочу рассказать, как мы с такой ситуаций справлялись.
Инструкция для тех, кто решил что уже пора
Истории по эмиграции часто строят по принципу инструкции, "идешь в это окошко, отдаешь такие документы" или как истории успеха типа "я попробовал и вам советую". Я попробую отойти на шаг назад и обрисовать роадмап движения к тому, чтобы вообще задумываться о поиске работы в развитых странах.
Начнем с плохих новостей. Да, на свете есть страны, в которых обсуждается тема "Зайцы охренели до такой степени, что жрут корм, оставленный для птиц" и все ждут выступление президента по этому поводу, потому что это самая серьезная проблема в стране. Но если мысль понаехать туда у тебя появилась только на прошлой неделе — это значит ты не занимался подготовкой предыдущие два года и, сори, тебе нужно заниматься подготовкой следующие два года. Может показаться что два года — это слишком и "мне то нужно завтра, какие два года". Но тут история такая: к началу текущей спецоперации ты уже не успел. У тебя есть шанс успеть к началу следующей. Воспользуешься ты им или нет - зависит только от тебя.
Опять же, я понимаю, что кто-то закончил языковую школу и при выступлении британской королевы подмечает стилистические ошибки ее английского, а кто-то консультировал Оракл при разработке HashMap и для них переезд — это вопрос желания, а не возможности. Но я говорю о неком "среднестатистическом случае", когда инглиш не флюент, а за плечами нет 10 лет опыта в аду.
В целом, до того, как начинать читать статьи "какие документы нужны для переезда в Швейцарию" у тебя, будущий ауслэндер, должны присутствовать четыре ключевых фактора успеха
Все на дно. Смоляная яма Тьюринга
Машина Тьюринга во всей своей красе.
Какой язык программирования лучше всего выбрать? Само собой, очень часто выбор языка зависит от того, для чего пишется та или иная программа, да и просто от личных пристрастий программиста. Выбор, как правило, идёт среди более-менее известных языков, начиная от различных вариаций C и заканчиваться может где угодно. Хотя, безусловно, ту или иную вещь на том или ином языке будет гораздо сложнее написать, чем на другом. Но как насчёт таких языков, где трудно написать в принципе любую вещь, поскольку, например, синтаксис состоит из восьми команд? Такие языки называются «Эзотерическими языками программирования», или, по-простому, «Смоляной ямой Тьюринга». Предлагаю тут же и посмотреть, какие черти водятся в этом тихом омуте.
Петля обратной связи в импульсных источниках питания
Для получения требуемого напряжения в схемотехнике, как правило, используются микросхемы импульсных DC-DC преобразователей. Очень удобные микросхемы - высокий КПД, возможность как понизить, так и повысить напряжение, миниатюрные размеры… Но иногда они словно сходят с ума: выходное напряжение начинает плавать, скакать, они издают чётко слышимый ухом свист (на самом деле свист издаёт выходной дроссель), микросхемы начинают очень сильно нагреваться (вплоть до выхода из строя).. Причём, как правило, это наблюдается не на одном-двух экземплярах, а сразу на всех устройствах из партии, то есть, налицо какая-то схемотехническая ошибка. Вопросу “почему это происходит, и как с этим бороться” и посвящена эта статья.
Я разработал генератор ASCII-арта в Node JS
В этой статье вы увидите, как сделать генератор ASCII-арта из изображения.
ASCII-арт — это метод графического дизайна, который использует компьютеры для презентации и он состоит из изображений, собранных вместе из 95 печатных символов, определенных стандартом ASCII от 1963 года, и ASCII-совместимых наборов символов с проприетарными расширенными символами.
Операционные усилители. Часть 5: Частотно-зависимая обратная связь в ОУ. Активные фильтры и генераторы сигналов на ОУ
В предыдущей публикации цикла мы разобрали, как работают схемы на ОУ с нелинейными элементами в цепях обратной связи, научились производить с помощью ОУ операции умножения и деления, и узнали, как собрать на ОУ источник тока, напряжения, а также усилитель мощности.
В данной публикации цикла мы разберём работу ряда схем на ОУ с частотно-зависимой обратной связью и научимся собирать на ОУ активные фильтры и генераторы.
Все, что нужно знать про «Broken access control»
В минувшем году OWASP обновил список TOP-10 самых распространенных векторов атак на современные веб-приложения. Этот список претерпел ряд изменений по сравнению с его последней редакцией, которая была в далеком 2017 году. В связи с чем мне бы хотелось рассказать о наиболее серьезной угрозе современных веб-приложений, которая перешла с пятого на первое место, а именно про A01:2021-Broken Access Control.
Не сомневаюсь, что все прекрасно знают о том, что авторизация предоставляет пользователю права на выполнение определённых действий, а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий. Авторизация не эквивалентна аутентификации. После успешной аутентификации авторизация определяет, к каким функциям и данным может получить доступ пользователь, обеспечивая при этом надлежащее разграничение прав доступа.
Именно поэтому веб-приложению необходимы средства контроля доступа, позволяющие его пользователям использовать веб-приложение с различными привилегиями. Контроль доступа — это применение ограничений на то, кто (или что) может выполнять различные функции и получать доступ к запрошенным ресурсам. Нарушенный контроль доступа часто встречающаяся и часто критическая уязвимость в системе безопасности. Существуют несколько типов контроля доступа, равно как и уязвимостей, связанных с их нарушением.
Anomaly Detection
Зачастую на производстве или в других ситуациях задач автоматизации каких-то монотонных действий возникает необходимость проверки качества полученной продукции. С первого взгляда — учи классификатор и задача решена, но, к сожалению, реалистичные задачи очень часто имеют несбалансированные данные, которые не размечены никоим образом, но которых достаточно много. Очевидным решением кажутся алгоритмы группировки без учителя (unsupervised). Но тогда остается вопрос нахождения правильных фич, что является проблематичным в условии сложных, многомерных данных. И, что более важно, аномалии будут проявляться в абсолютно случайных местах из-за ваших фичей, что с сильно меньшей вероятностью даст вам нечто полезное.
Как обновить образы контейнеров с помощью Podman
Поддержание образов в актуальном состоянии является стандартной процедурой при эксплуатации и управлении контейнерной средой. Далее мы рассмотрим, как следует это делать.
Podman — это daemon-less движок для разработки, управления и запуска контейнеров, соответствующих Open Container Initiative (OCI). Это одна из серии статей об использовании Podman, основанная на том, что я делаю в своей реальной рабочей среде. Ранее я показывал, как отображать сетевую информацию с помощью Podman, включая контейнеры и IP-адреса подов.
В данной же статье показано, как обновлять образы контейнеров. Очень важно поддерживать запущенные контейнеры и поды в актуальном состоянии с самыми последними обновлениями образа. Прежде чем следовать этой статье, вы можете сначала запустить shell-скрипты, которые я использовал в одной из предыдущих статей, в разделе "Первичная настройка".
Огород в пустыне: солнце, конденсат и шпинат
Одной из основных проблем современного мира является нехватка продовольствия. Численность населения планеты растет, чего нельзя сказать об объемах производства пищевых продуктов. Свою негативную лепту вносят и определенные природные факторы: нестабильность климатических условий (в частности, ввиду техногенного фактора), различные заболевания сельхоз культур, истощение земельных ресурсов и т.д. Одни предлагают менять сами растения, дабы те стали еще устойчивее и давали больше урожая. Другие же считают, что необходимо просто увеличить площадь, где можно заниматься выращиванием. В случае второго варианта не все так просто, ибо подавляющее большинство территории Земли уже чем-то да занято, будь то город, завод, или та же ферма. Плодородного грунта осталось мало, но вот чего много так это пустынь, занимающих порядка 14% всей суши Земли (без учета пустынь Антарктиды и Арктики). И вот ученые из Научно-технологического университета имени короля Абдаллы (Саудовская Аравия) предложили систему, способную совместить сбор солнечной энергии и выращивание растений в условиях пустыни. Из чего состоит установка, по каким принципам она работает, и насколько большого урожая стоит ждать от пустынных ферм? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Особенности проекта Debezium для решения задачи миграции баз данных
С 2014 года в России реализуется программа импортозамещения, которая распространяется в том числе на программное обеспечение и системы управления базами данных, поднимая вопросы оптимальной миграции. В этой статье мы, специалисты департамента разработки «Консист Бизнес Групп», расскажем про особенности проекта Debezium для обеспечения миграции баз данных с разбором нагрузочного тестирования миграции.
Пишем свой плагин для IDEA для поддержки нового языка (часть 2)
Продолжение статьи о создании языкового плагина для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin. Начало
Пишем свой плагин для IDEA для поддержки нового языка (часть 1)
В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.
Наследство, передаваемое «в цифре». Что с этим делать и как правильно завещать (ч. 2, заключительная)
Вторая часть статьи, в которой расскажем о практике работы с наследием, этичности управления подобного рода активами, цифровым «кладбищам» и способам использования данных, оставленных умершими людьми. Ссылка на первую часть.
Пишем тетрис в bat-файле
В комментарии к моей предыдущей статье, «Какие задачи не решаются bat-файлами?», предположили, что на bat-файлах не получится написать Doom. Насчет Дума я пока не уверен, а вот тетрис у меня получился.
Переживёт ли демократия искусственный интеллект?
Фундаментом западных демократических ценностей признаётся общественная мысль философии эпохи просвещения, которая в прошлом обеспечила научно-техническую революцию во всём мире и прежде всего в Европе.
Главным образом Вольтер сделал «Начала» Ньютона событием цивилизации. Например, в знаменитой истории Вольтера о яблоке, упавшем в саду на Ньютона и вызвавшее открытие закона всемирного тяготения, вместо традиционной для того времени космической предопределённости присутствует прямая причинная связь. Благодаря Вольтеру механика Ньютона из внутрицеховой темы попала в салоны прогрессивного европейского человечества.
В XVIII веке осуществлялся прямой перенос рационалистического подхода из физики в область человеческих отношений. Сен-Симону и Ш. Фурье казалось, что превращение науки об обществе в физику, превратит человеческое общество в столь же упорядоченное целое, какой является механика Ньютона. Универсализация физических понятий из механики привела к искусственным идеям свободы и индивидуализма (1).
Согласно принципу фальсификации Поппера: если научные теории, вызвавшие общественную мысль, имеют свою область применения, приближения и ограничения, то философские концепции полностью лишены этих недостатков. Таким образом, философские концепции эпохи просвещения (истоки марксизма, либерализма и т.п.) стали заложниками ограничений механики Ньютона и приближения системой слабовзаимодействующих частиц (людей). При этом была значительно ослаблена религиозная взаимосвязанность людей, которая не вписывалась в эти ограничения. Работы Лейбница остались недооценёнными современниками.
Альтернативы исключениям С++ и зачем они нужны
Современные тенденции в области аппаратного обеспечения ведут к тому, что использование исключений на C++ всё труднее и труднее оправдать. В представленной работе эта проблема иллюстрируется наглядно, даётся её количественная оценка и обсуждаются потенциальные будущие направления исправления исключений. Материалом делимся к старту курса по разработке на С++.
Умный malloc для С
Экспериментировал на С и повторил операторы new и delete средствами языка. В этой статье расскажу как я к этому пришёл, зачем это нужно, и как оно работает.