Pull to refresh
-5
@andmerk93read⁠-⁠only

User

Send message

Как мы делаем Автограф — «русское Visio»

Reading time6 min
Views23K
image
Самая первая инженерная версия редактора, не самая удобная для конечных пользователей

В России MS Visio используется для того, чтобы нарисовать планы помещений, вентиляции, пожарной сигнализации, рисовать всякие схемы работы — и так далее. Потом в какой-то момент оно пропало, а желание делать удобные схемы осталось.

Мы начинали в 1991 году с софта для автоматизации проектирования электросхем — когда вы рисовали одну схему, а по ней синтезировались недостающие участки, вроде расчёта типа и количества реле, нужного сечения кабеля и так далее. К 2010 году дорога приключений привела нас к тому, что мы начали делать уже схемы для объектов энергетики.

Сейчас мы замещаем Visio в России и поддерживаем VSD/VSDX-форматы в обе стороны.

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

Сильно упрощая, каждая схема и в нашем движке, и в движке Visio состоит из векторных элементов. Пользователь перемещает окно с полем зрения по схеме, и для этого места идёт рендер — рисуются только те элементы, которые видно. Для каждого масштаба делается пререндер этого вектора с разной детализацией, то есть пользователь каждый момент времени работает со всего одной группой SVG-элементов. Всё остальное только кажется схемой из деталей, на самом деле — это единая отрендеренная большая картинка.
Читать дальше →

Знакомьтесь, «Незнакомое». Как мы сделали новый режим для Моей волны

Reading time8 min
Views8.5K

Привет! Меня зовут Савва Степурин, я старший разработчик в группе рекомендательных продуктов в Фантехе Яндекса. Сегодня расскажу вам про то, как мы сделали «Незнакомое» для Моей волны — специальный режим для активного поиска музыкальных открытий.

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

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

Читать далее

Ликбез по типизации в языках программирования

Reading time12 min
Views531K
image

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

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

Как сделать простые метрики для оценки полосы пропускания сети?

Level of difficultyMedium
Reading time3 min
Views4.5K

Если вам важна высокая стабильность и скорость сети на ваших серверах, тогда вам надо отвественнее подойти к выбору провайдера. В данной статье я показываю, как добавить метрики и дешборды в Grafana для оценки скорости сети с помощью speedtest-exporter.

Читать далее

Цифровые двойники и современная архитектура обучения

Reading time5 min
Views1.1K

Данная статья является обобщением ранее разбираемых мной тем по современным образовательным технологиям, применительно к реальной задаче обучения специалистов в области бурения (персонала буровых установок разведочного и эксплуатационного бурения), а также специалистов в области ТКРС (текущего и капитального ремонта скважин).....

Таким образом, у нас получилось, используя современные стандарты и современные технические средства обучения, полностью воспроизвести процесс, который реально происходит в реальных рабочих условиях в буровых и сервисных компаниях. Это, в свою очередь, резко поднимает качество и эффективность учебного процесса в колледжах (СПО), ВУЗ, учебных центрах и других учебных подразделениях, обучающих специалистов в области бурения и капитального ремонта скважин.

Читать далее

Идет расследование беспрецедентного по масштабам подлога в исследованиях нейродегенерации

Level of difficultyMedium
Reading time19 min
Views32K

Падение на дно профессиональной этики титана исследований шокировало научное сообщество. Невропатолог Элиезер Маслия, автор более чем 800 научных статей, специалист с мировым именем в изучении α -синуклеина (белка, играющего важную роль в патогенезе болезней Альцгеймера и Паркинсона), обвинен в фальсификации изображений в публикациях на протяжении 26 лет.

26 сентября 2024 Национальный институт старения (NIA) объявил о снятии Маслия с должности научного директора Отдела нейронаук после девятимесячного внутреннего расследования, заключившего: «в двух публикациях обнаружены фальсификация и/или фабрикация данных, выражающаяся в повторном использовании одних изображений для иллюстрации результатов различных экспериментов».

В тот же день журнал «Science» опубликовал расследование репортера Чарльза Пиллера и команды аналитиков изображений, которые подготовили 286-страничный отчет по 132 статьям с дублированными или подделанными изображениями. Все результаты авторы выложили для peer-review по ссылке.

Читать далее

Кратко про библиотеку mlfinlab: инструмент для финансового ML

Level of difficultyMedium
Reading time4 min
Views2.7K

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

Сегодня мы рассмотрим такую замечательную библиотеку как mlfinlab.

Если вы пытались применить методы машинного обучения к финансовым данным, то наверняка сталкивались с массой подводных камней: от шумных данных до проблем с автокорреляцией. mlfinlab — это библиотека, которая реализует передовые техники из книги Маркоса Лопеса де Прадо "Advances in Financial Machine Learning". Она позволяет не изобретать велосипед, а использовать проверенные временем методы для решения сложных задач финансового ML.

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views39K


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

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

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

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

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

Low-code инструменты для разработки ПО — сплошной обман

Level of difficultyEasy
Reading time4 min
Views17K
Я пишу ПО под заказ уже многие годы, и одна из ситуаций, которые раздражают меня больше всего – это когда клиент принимает позицию, что существует некая палочка-выручалочка, которая сократит, а то и вовсе устранит всю сложность, присущую той или иной задаче. Такое случается чаще, чем можно подумать, и знаете что? Такие клиенты почти всегда заблуждаются.

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

Насколько нам нужно визуальное программирование?

Level of difficultyMedium
Reading time10 min
Views23K

Большинство сред визуального программирования не находят достойного применения. Как вы думаете, почему? Они нацелены на замену синтаксиса кода и бизнес-логики, но разработчики никогда эти аспекты не визуализируют. Напротив, они визуализируют переходы состояний, схемы распределения памяти или сетевые запросы.

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

Разговор с быдло-кодером

Reading time18 min
Views6.2K

Вернемся к одному из проектов дистрибутива программной платформы SimInTeh,  который был рассмотрен в двух статьях(см. [1, 2]). Он же под именем "Управление водонагревательным котлом" включен в раздел "Лабораторные работы по библиотекам" справочной системы SimInTech. Последнее должно предъявлять к нему повышенные требования, как к примеру, поясняющему, рекламирующему те или иные стороны и возможности программной платформы. Одним словом, он должен быть идеальным ...

Только недавно одна из найденных в нем ошибок  была устранена. Но не это знаменательное событие было причиной вернуться к данной теме, а пришедшая примерно в это же время рассылка, рекламирующая возможности "новейшей российской инженерной платформы Engee". В числе прочих ее достоинств описывались включенные в платформу конечные автоматы  (КА)[3], а в видео по ссылке прослеживалась явная любовь к светофорам. Но  нагреватель в этом смысле ни чуть не хуже, а даже предпочтительнее.

Но "спусковым крючком" стал эмоциональный всплеск не самой положительной оценки данной конечным автоматам (подробнее см. [4]). Примечательно, что прозвучал он со стороны тех, кто ранее ввел этот инструментарий в свою платформу и, как можно предполагать, использует. Видимо, они лучше знают возможности своих автоматов? Но, если серьезно, то это, скорее всего, результат отмеченного "всплеска", который за истину воспринимать не стоит. Тем не менее, необходимо что-то уточнить,  чтобы учесть и такое мнение о КА. 

Итак, перед нами проект "Нагреватель" или "Управление водонагревательным котлом". Я не смог сразу найти проект в ВКПа к тем еще статьям, но, если честно, не сильно его и искал, т.к. решил, что проще создать новый. Хотелось проверить, что получится, если повторить в ВКПа автоматы, полностью аналогичные ранее созданным программным автоматам на внутреннем языке платформы SimInTech. А поскольку они были спроектированы согласно концепциям автоматного программирования, то препятствий не предполагалось. Но ... воистину - "не было этого никогда и вот опять".

Читать далее

Визуальное программирование — почему это плохая идея

Reading time6 min
Views92K
image

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

Язык визуального программирования — это такой язык, который позволяет программисту создавать программы, манипулируя графическими элементами, а не печатая текстовые команды. Известным примером является Scratch, язык визуального программирования родом из MIT, который используется для обучения детей. Его преимущества заключаются в том, что он делает программирование более доступным для новичков и не-программистов.

В 1990-х годах было очень популярное движение по внедрению визуального программирования в корпоративную среду с помощью так называемых CASE-инструментов, где корпоративные системы можно было бы определять с помощью UML и генерировать [их код] без необходимости в привлечении обученных разработчиков программного обеспечения. Это связано с концепцией «round tripping» («туда и обратно»), где система может быть смоделирована визуально, программный код будет генерироваться из полученных моделей, а любые изменения кода могут быть возвращены обратно в модель. Увы, подобные инструменты так и не смогли выполнить свою миссию, и большинство из экспериментов [по их внедрению] в настоящее время в значительной степени заброшены.
Читать дальше →

Почему технология Macromedia Flash не выжила?

Level of difficultyEasy
Reading time5 min
Views4.7K
В прошлом году я сделал большой пост про историю Macromedia Flash. Спасибо всем за интересные комментарии и вопросы. История и технические детали подробно в первом посте. По итогам той публикации и обсуждения, я записал часовое видео добавив мелкие детали, несколько личных историй (например, про зарплаты), мой опыт во Flash, что мы делали и как. Вот это видео, а внутри поста я сделал хронологию по годам: что и как происходило в мире Flash технологий.



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

Macromedia Flash: Взлет и закат технологии

Level of difficultyMedium
Reading time29 min
Views18K

Если никто не подведёт итог под историей Macromedia Flash, она рискует затеряться в хламе IT-подвала. Напомню, что “волшебный” плагин Flash player стоял практически на всех компьютерах мира. И в какой-то момент именно эта технология была лучшей для анимации, игр и мультимедиа. В этой статье я расскажу историю технологии и добавлю историю от лица разработчика: что мы создавали, как работали,  плюсы минусы самой платформы и ключевые события. Ну и главное, почему Flash взлетела до массового распространения, а потом потерпела поражение и осталась в прошлом. И ответить на вечный вопрос “Кто виноват?” Иная версия вопроса: Зачем Стив Джобс убил Flash? Спойлер, Джобс не виноват.

Читать далее

Как два интроверта сделали Portal на Flash

Reading time5 min
Views5.8K

В 2006 году, когда Valve анонсировала Portal, я самозабвенно болтал со своим другом Хеном Матшульски по MSN-Messenger. Valve в то время определяла нашу жизнь в смысле игр, а Portal не походил ни на что из того, что мы видели раньше. Взволнованный, нетерпеливый анонс подтолкнул нас к тому, чтобы в путешествии длиной в год сделать версию Portal на Flash ещё до того, как мы даже прикоснёмся к оригинальной игре.
Как это было

Асинхронный SQLAlchemy 2: пошаговый гайд по управлению сессиями, добавлению и извлечению данных с Pydantic

Reading time34 min
Views35K

Продолжаем цикл статей по асинхронной SQLAlchemy в стиле ORM!

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

Что нас ждёт сегодня?

- Сессии и фабрики сессий: Узнаем, как эффективно управлять сессиями для взаимодействия с базой данных.

- Добавление данных в таблицы: Освоим безопасные методы добавления новых записей с использованием ORM-методов.

- Извлечение данных из таблиц: Погрузимся в мир извлечения данных. Рассмотрим простые запросы и более сложные фильтры для работы с данными.

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

Не пропустите, будет интересно и полезно!

Читать далее

Обзор платформы Kaggle для начинающих: от состязаний до менторской программы

Level of difficultyEasy
Reading time12 min
Views10K

В IT-среде название Kaggle часто ассоциируется только с соревнованиями. Но на самом деле это полноценная социальная сеть и база данных для специалистов в сфере Data Science и ML.

Подготовили обзор, чтобы помочь новичкам разобраться в Kaggle. Разбираем, что площадка предлагает джунам и опытным специалистам, как пользоваться ее функциями и с какими задачами она может помочь.

Читать далее

Сотрудникам нужны личные кабинеты

Level of difficultyEasy
Reading time13 min
Views30K

Во времена «до» мы просто каждый день ходили в офис. Это даже не обсуждалось: «работа из дома» казалась нереализуемой на практике. Чтобы «пойти на работу», нужно было выйти из дома. А потом случилась пандемия.

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

Кто стоит за убийством Google Search?

Level of difficultyMedium
Reading time14 min
Views40K

Это история о том, как умер Google Search, и о причастных к его смерти людях.

Начинается она 5 февраля 2019 года, когда Бен Гомес, глава Google Search, столкнулся с проблемой. Джерри Дишлер, на тот момент вице-президент и главный управляющий Google Ads, вместе с Шивой Венкатараманом, тогда вице-президентом по разработке систем Google Search и Ads, объявили «код жёлтый» в отношении доходности Google Search. Причиной такого шага стало, цитирую: «Стабильно низкие ежедневные показатели», а также вероятность того, что к концу квартала доходность этого сегмента окажется в значительном упадке.
Читать дальше →

Как настроить SQLAlchemy, SQLModel и Alembic для асинхронной работы с FastAPI

Reading time9 min
Views63K

В этом руководстве предполагается, что у вас есть опыт работы с FastAPI и Postgres с помощью Docker. Вам нужна помощь, чтобы ускорить работу с FastAPI, Postgres и Docker?

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Инженер АСУТП
SQL
Python
Network administration
System administration
Server administration
PLC
PLC programming
SCADA
APCS