
Любите Spring? А Spring Data? Я тоже люблю. Если хотите разобраться, почему же возникает этот unexpected transaction rollback
, а также быть уверенным, что транзакция отменится, а не закоммитится, добро пожаловать под кат.
Искусство создания компьютерных программ
Любите Spring? А Spring Data? Я тоже люблю. Если хотите разобраться, почему же возникает этот unexpected transaction rollback
, а также быть уверенным, что транзакция отменится, а не закоммитится, добро пожаловать под кат.
Используя новый алгоритм упаковки, в Graphcore ускорили обработку естественного языка более чем в 2 раза при обучении BERT-Large. Метод упаковки удаляет заполнение, что позволяет значительно повысить эффективность вычислений. В Graphcore предполагают, что это также может применяться в геномике, в моделях фолдинга белков и других моделях с перекошенным распределением длины, оказывая гораздо более широкое влияние на различные отрасли и приложения. В новой работе Graphcore представили высокоэффективный алгоритм гистограммной упаковки с неотрицательными наименьшими квадратами (или NNLSHP), а также алгоритм BERT, применяемый к упакованным последовательностям. К старту курса о машинном и глубоком обучении представляем перевод обзора соответствующей публикации на ArXiv от её авторов. Ссылку на репозиторий вы найдёте в конце статьи.
В этой статье я покажу некоторые аспекты создания игры для Telegram, не ограничиваясь HTML+JS примитивом, а также, дам исходники своего рабочего игрового приложения на Crystal, Lucky, Tourmaline и Telegram Bot Gaming Platform
Как известно(не многим), программист, хотя бы раз в жизни должен – поломать прод и выхватить за это, починить его, а на досуге построить баню и написать игру.
На прошлой неделе мы представили подборку литературы для тех, кто желает «погрузиться» в поиск музыкальной информации (MIR). Сегодня — представим материалы о цифровой обработки сигналов и акустических плагинов.
Эта статья является переводом материала OCP vs YAGNI.
В этом посте хочется осветить тему OCP и YAGNI – противоречия между принципом открытости/закрытости и принципом «вам это не понадобится».
Давайте начнем с того, что вспомним, что такое OCP. Принцип открытости/закрытости гласит, что: Объекты программного обеспечения (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.
Впервые он был представлен Бертраном Мейером в его канонической книге «Конструирование объектно-ориентированного программного обеспечения». С тех пор его популяризировал Боб Мартин, когда он представил принципы SOLID.
Официальное определение довольно расплывчато и на самом деле не помогает нам понять основной смысл. Итак, давайте углубимся в этот принцип.
Всем привет, друзья! Сегодня хочу рассказать про способ использование Controller Advice для оборачивания объекта, возвращаемого контроллерами, в новый класс на уровне DispatcherServlet.
Вчера я выложила первую часть видео с конференции BeeTech, которую мы проводили в апреле. Сегодня — доклады двух оставшихся стримов.
Здесь от построения QA-отдела с нуля и изменении IT-архитектуры до DIY-решений в системной интеграции и разработки прототипа военного робота при помощи компьютерного зрения.
В этой статье описан мой опыт по написанию плагина для компилятора Kotlin. Моей главной целью было создание плагина под iOS (Kotlin/Native), аналогичного kotlin-parcelize под Android. Дело в том, что в iOS, как и в Android, приложения тоже могут быть убиты системой, а значит, может возникнуть необходимость сохранять стек навигации и другие данные. В результате работы над этой задачей получился kotlin-parcelize-darwin. Подробности о его создании и применении — под катом.
Говоря коротко, С работает везде. Этот язык — не просто большой динозавр, которому каким-то образом удалось дожить до наших дней. Он крайне практичен, поэтому невероятно успешен. Удивительно, но истоки С далеки от успехов. Он стал итогом десятилетий неудач, и, если бы не старания любящего программировать на каникулах школьного учителя, язык мог бы не появиться. Это история о невероятно медленных компьютерах, трёх Дэвидах и давнем наследии языка C. К старту курса о программировании на С++ делимся переводом статьи с краткой биографией Кристофера Стрэтчи.
else
? Это загадка. Настолько микроскопическая деталь, что она не попала в книги по истории языков программирования.Представьте, пришёл заказчик и просит сделать приложение — язык в приложении должен быть всего один. Допустим, только английский. Приложение выходит на рынок, становится успешным, и заказчик радостно просит адаптировать апп под другой язык — скажем, китайский. Не, ну а что такого-то?
В этом месте разработчик испытывает мучительную боль и рвёт на себе волосы из-за своей непредусмотрительности.
В прошлом году GitHub выпустил фичу сканирования кода, которая позволяет разработчикам добавлять проверки безопасности в свою среду CI/CD и в целом в рабочую среду. В этом посте демонстрируются основы использования CodeQL, механизма анализа, лежащего в основе сканирования кода, в связке с GitHub Actions.
Всем привет, меня зовут Дарья Пронина, я специалист по анализу данных и машинному обучению в отделе R&D в Lamoda. Я расскажу о том, что специалист по Data Science может подсмотреть у разработчиков, чтобы сделать свою работу эффективнее, production-процессы — устойчивее, а работу с разработчиками и дата инженерами — приятнее.
Из статьи вы узнаете, как хранить большие данные и поддерживать порядок в продакшн-процессе, а также зачем улучшать свои навыки программирования, если вы дата-сайентист.
Продолжаем цикл материалов о вредоносных техниках, применяемых злоумышленниками. Встречайте еще одну полезную статью от экспертного центра безопасности Positive Technologies. В прошлый раз мы говорили о том, как киберпреступники повышают привилегии, чтобы получить полный контроль над системой, и как их работу можно обнаружить.
Сегодня рассмотрим тактики, которые используют хакеры для злонамеренных действий с ядром ОС. Расскажем о новом плагине exploitmon, разработанном PT Expert Security Center для системы динамического анализа вредоносных файлов DRAKVUF, и разберем, как в PT Sandbox с его помощью обнаруживать попытки эксплуатации уязвимостей в ядре Windows.
Ирина Мозес застала появление Arpanet и победу СССР над США в баскетбольном олимпийском турнире. Уже больше 30 лет она занимается программированием, но веб-разработку начала изучать только 5 лет назад. Сегодня Ирина работает ревьюером в крупной компании, а её упорству и интересу к жизни можно только позавидовать.
Программист рождается дважды. Впервые – как человек, известными вам способами. Второй раз – как программист, когда он внезапно понимает, что часть реальности в его руках, и её вполне можно менять.
Вот это понимание, осознание способности создавать и изменять, и отличает программиста. Приходит оно внезапно, как озарение. Словно кто-то щёлкнул невидимым тумблером, и человек, пусть даже умеющий чисто механически писать шаблонный код, вдруг понимает, что, как и зачем делает. И видит, что может намного больше и лучше.
Единого алгоритма включения тумблера не существует. Любое образование – школьное, среднее специальное, высшее, платные и бесплатные курсы – не гарантирует, что лампочка загорится. По моим скромным подсчётам, второе рождение случается у 1-5% получающих подобное образование. Хотя, написать какой-то код способны большинство выпускников.
По моим многолетним наблюдениям, тумблер щёлкает под действием двух факторов – мотив и подача. Мотив – мощная личная причина стать программистом. Подача – способ изложения информации или постановки задачи, который помогает въехать в тему.
И мотив, и подача – индивидуальны. И их много. Это и хорошо, и плохо. Хорошо – потому что всегда найдётся другой вариант, если предыдущие не помогли. Плохо – потому что мало кому охота возиться с человеком, пытаясь подобрать мотив и подачу. Проще окрестить его идиотом и отправить работать менеджером в салон сотовой связи.
Я расскажу 12 сочетаний мотива и подачи, под действием которых случилось второе рождение, и на свет появились 12 программистов. Всё из жизни, разумеется.