
Обучать детей техническому мастерству, либо программированию можно по-разному. Я нашёл наиболее эффективный способ, при котором вовлеченность детей в процесс максимальна и вы остаётесь не с пустыми карманами.
Искусство создания компьютерных программ
Обучать детей техническому мастерству, либо программированию можно по-разному. Я нашёл наиболее эффективный способ, при котором вовлеченность детей в процесс максимальна и вы остаётесь не с пустыми карманами.
Добрый день, уважаемые читатели. Совсем недавно мне пришлось осваивать новую для себя область CI/CD, настраивая с нуля доставку скриптов миграции базы данных в одном из проектов. При этом было тяжело преодолеть самый первый этап "глаза боятся", когда задача вроде бы ясна, а с чего начать, не знаешь. Однако вопрос оказался на поверку значительно проще, чем казалось изначально, давая при этом неоспоримые преимущества ценой нескольких часов работы и не требуя никаких дополнительных средств, кроме обозначенных в заголовке.
Полученным опытом я решил поделиться в данной статье, чтобы помочь тем, кто хочет автоматизировать свои рабочие процессы, но не знает, с чего начать.
Всем привет! На связи Антон Клочков, студент первого курса корпоративной магистратуры JetBrains «Разработка программного обеспечения» на базе Университета ИТМО. Я хочу рассказать, как выбирал программу, и главное — оправдались ли мои ожидания.
Эта статья является конспектом книги «Designing Data-Intensive Applications».
В суровой реальности информационных систем очень многое может пойти не так - программное или аппаратное обеспечение базы данных может отказать в любой момент; в любой момент может произойти фатальный сбой приложения; разрывы сети могут неожиданно отрезать приложение от базы данных или один узел базы от другого; состояния гонки между клиентами могут привести к неожиданным ошибкам.
Транзакции в течение десятилетий считались предпочтительным механизмом решения этих проблем. Транзакция — способ группировки приложением нескольких операций записи и чтения в одну логическую единицу. По сути, все операции записи и чтения в ней выполняются как одна: вся транзакция или целиком выполняется успешно (с фиксацией изменений), или целиком завершается неудачно (с прерыванием и откатом). Транзакции значительно упрощают для приложения обработку ошибок, поскольку нет нужды заботиться о частичных отказах.
В этом конспекте рассмотрим примеры возможных проблем и изучим алгоритмы, которые используют БД для их предотвращения. Рассмотрим вопрос управления конкурентным доступом, обсудим различные виды возникающих состояний гонки, а также реализацию в базах различных уровней изоляции.
* В данной статье примеры будут на TypeScript
Что такое DDD (Domain Driven Design) вопрос обширный, но если в кратце (как Я это понимаю) — это про перенос бизнес логики, как она есть, в код, без углубления в технические детали. То есть в идеале, человек, который знает за бизнес процессы, может открыть код и понять, что там происходит (так кстати часто бывает в 1С).
Всё это сопровождается кучей разных рекомендаций по технической реализации вопроса.
Для лучшего понимания статьи советую прочитать материалы, касающиеся DDD.
Эта статья основана на данных конкурса, который компания Driven Data опубликовала для решения проблем с источниками воды в Танзании. Краткий анализ данных, подготовка данных и бэйзлайн модель с использованием CatBoost. Целевая аудитория - те, кто хотят начать свой путь в ML-соревнованиях.
Уже 4 года я занимаюсь техническим развитием детей в России. Начиналось всё с открытия небольшого кружка роботехники и со временем переросло в комплексный детский технический центр. Сегодня я подготовил для вас инструкцию к запуску собственного детского центра.
Мы рады объявить третью редакцию языка Rust — Rust 2021, которая выйдет в октябре. Rust 2021 содержит несколько небольших изменений, которые, тем не менее, значительно улучшат удобство использования Rust.
Релиз Rust 1.0 установил "стабильность без застоя" как основное правило Rust. Начиная с релиза 1.0, это правило звучало так: выпустив функцию в стабильной версии, мы обязуемся поддерживать её во всех будущих выпусках.
Однако есть случаи, когда возможность вносить небольшие изменения в язык бывает полезной — даже если у них нет обратной совместимости. Самый очевидный пример — введение нового ключевого слова, которое делает недействительными переменные с тем же именем. Например, в первой версии Rust не было ключевых слов async
и await
. Внезапное изменение этих слов на ключевые слова в более поздних версиях привело бы к тому, что, например код let async = 1;
перестал работать.
Редакции — механизм, который мы используем для решения этой проблемы. Когда мы хотим выпустить функцию без обратной совместимости, мы делаем её частью новой редакции Rust. Редакции опциональны и должны прописываться явно, поэтому существующие пакеты не видят эти изменения, пока явно не перейдут на новую версию. Это означает, что даже последняя версия Rust по-прежнему не будет рассматривать async
как ключевое слово, если не будет выбрана версия 2018 или более поздняя. Этот выбор делается для каждого пакета как части Cargo.toml
. Новые пакеты, созданные cargo new
, всегда настроены на использование последней стабильной редакции.
Идеальный способ отлаживать и отслеживать приложения — хорошо определённые, информативные и удобно структурированные логи. Они являются необходимым компонентом любого — малого, среднего или крупного — проекта на любом языке программирования, не только на Python. Не используйте print() или корневой логгер по умолчанию, вместо этого настройте логирование на уровне проекта. К старту нового потока курса по Data Science, мы перевели статью, автор которой решил поделиться своим шаблоном для логирования. Не лишним будет сказать, что этот шаблон пришёлся по душе многим специалистам — от дата-сайентистов профессионалов и до разработчиков ПО разного уровня.
Эта статья является продолжением двух предыдущих: Ударим биспектром по бездорожью, или как найти золото в Сибири, в которой мы рассмотрели геологическую модель месторождения золота на территории Новосибирской области и Ищем рудное золото на острове Сумбава, Индонезия, в которых мы построили геологически обусловленную модель машинного обучения для поиска золота или других рудных минералов по всему Тихоокеанскому рудному поясу, используя для геологического моделирования открытые данные на платформе Google Earth Engine (GEE).
Убедившись в сходстве геологических моделей Сибири и Индонезии, применим классификатор для рудного золота Западной Сумбавы, Индонезия для Сибири. Так мы получим геологически корректный детальный прогноз золоторудности для Сибири, не используя вообще никаких геологических данных для этого региона.
Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим нравится 3Blue1Brown за прекрасные объяснения Гранта и великолепные анимации.
21 мая стартует новый поток курса о математике для Data Science. Специально к его запуску мы делимся переводом, в котором автор решил рассказать, как делать анимации, подобные анимациям на канале 3Blue1Brown, чтобы вы могли иллюстрировать свои идеи и рассуждения о математике и не только.
.py
в файлы .exe
. Благодаря этому ваш проект на Python будет работать как десктопное приложение и вы сможете запускать приложение на других машинах без необходимости установки Python..py
в приложении. Стоит учесть, что Auto PY to EXE работает только с Python 3.5 или выше.