Как стать автором
Поиск
Написать публикацию
Обновить
1141.43

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Spring Data: нюансы @Transactional

Время на прочтение7 мин
Количество просмотров47K

Любите Spring? А Spring Data? Я тоже люблю. Если хотите разобраться, почему же возникает этот unexpected transaction rollback, а также быть уверенным, что транзакция отменится, а не закоммитится, добро пожаловать под кат.

Читать далее

Взлом квантовой программы

Время на прочтение5 мин
Количество просмотров5.8K
Программы для квантового компьютера тоже могут содержать уязвимости. Эти уязвимости могут позволять удалённо выполнять какие-то вычисления.

Как же написать шеллкод для программы, уязвимой к исполнению квантового кода?


Узнать

Как новый метод упаковки в BERT ускоряет обработку естественного языка в 2 раза

Время на прочтение11 мин
Количество просмотров2.8K

Используя новый алгоритм упаковки, в Graphcore ускорили обработку естественного языка более чем в 2 раза при обучении BERT-Large. Метод упаковки удаляет заполнение, что позволяет значительно повысить эффективность вычислений. В Graphcore предполагают, что это также может применяться в геномике, в моделях фолдинга белков и других моделях с перекошенным распределением длины, оказывая гораздо более широкое влияние на различные отрасли и приложения. В новой работе Graphcore представили высокоэффективный алгоритм гистограммной упаковки с неотрицательными наименьшими квадратами (или NNLSHP), а также алгоритм BERT, применяемый к упакованным последовательностям. К старту курса о машинном и глубоком обучении представляем перевод обзора соответствующей публикации на ArXiv от её авторов. Ссылку на репозиторий вы найдёте в конце статьи.

Читать далее

Настольная игра в Telegram с разоблачением

Время на прочтение8 мин
Количество просмотров11K

В этой статье я покажу некоторые аспекты создания игры для Telegram, не ограничиваясь HTML+JS примитивом, а также, дам исходники своего рабочего игрового приложения на Crystal, Lucky, Tourmaline и Telegram Bot Gaming Platform 

Как известно(не многим), программист, хотя бы раз в жизни должен – поломать прод и выхватить за это, починить его, а на досуге построить баню и написать игру.

Читать далее

Книги о цифровой обработке сигналов и звуковом синтезе

Время на прочтение3 мин
Количество просмотров10K

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

Читать далее

OCP против YAGNI

Время на прочтение9 мин
Количество просмотров9K

Эта статья является переводом материала OCP vs YAGNI.

В этом посте хочется осветить тему OCP и YAGNI – противоречия между принципом открытости/закрытости и принципом «вам это не понадобится».

Давайте начнем с того, что вспомним, что такое OCP. Принцип открытости/закрытости гласит, что: Объекты программного обеспечения (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.

Впервые он был представлен Бертраном Мейером в его канонической книге «Конструирование объектно-ориентированного программного обеспечения». С тех пор его популяризировал Боб Мартин, когда он представил принципы SOLID.

Официальное определение довольно расплывчато и на самом деле не помогает нам понять основной смысл. Итак, давайте углубимся в этот принцип.

Читать далее

Собираем квантовый генератор случайных чисел

Время на прочтение4 мин
Количество просмотров24K

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

Spring Boot + ControllerAdvice + ResponseBodyAdvice или как обернуть ответ контроллеров

Время на прочтение10 мин
Количество просмотров32K

Всем привет, друзья! Сегодня хочу рассказать про способ использование Controller Advice для оборачивания объекта, возвращаемого контроллерами, в новый класс на уровне DispatcherServlet.

Читать далее

Оптимизация на простых типах данных. Часть №2 «Числа»

Время на прочтение8 мин
Количество просмотров6.3K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

Мы подготовили расшифровку вебинара в двух частях. Первая часть — про строки и работу с ними, вторая — про числа.

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


BeeTech 2021: обзор докладов big-data, искусcтвенный интеллект, IT-архитектура, QA, Back-End

Время на прочтение4 мин
Количество просмотров2.8K

Вчера я выложила первую часть видео с конференции BeeTech, которую мы проводили в апреле. Сегодня — доклады двух оставшихся стримов.

Здесь от построения QA-отдела с нуля и изменении IT-архитектуры до DIY-решений в системной интеграции и разработки прототипа военного робота при помощи компьютерного зрения.

Смотреть видео

Пишем плагин Parcelize для компилятора Kotlin под iOS

Время на прочтение7 мин
Количество просмотров4K

В этой статье описан мой опыт по написанию плагина для компилятора Kotlin. Моей главной целью было создание плагина под iOS (Kotlin/Native), аналогичного kotlin-parcelize под Android. Дело в том, что в iOS, как и в Android, приложения тоже могут быть убиты системой, а значит, может возникнуть необходимость сохранять стек навигации и другие данные. В результате работы над этой задачей получился kotlin-parcelize-darwin. Подробности о его создании и применении — под катом.

Читать далее

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

Время на прочтение6 мин
Количество просмотров37K

Говоря коротко, С работает везде. Этот язык — не просто большой динозавр, которому каким-то образом удалось дожить до наших дней. Он крайне практичен, поэтому невероятно успешен. Удивительно, но истоки С далеки от успехов. Он стал итогом десятилетий неудач, и, если бы не старания любящего программировать на каникулах школьного учителя, язык мог бы не появиться. Это история о невероятно медленных компьютерах, трёх Дэвидах и давнем наследии языка C. К старту курса о программировании на С++ делимся переводом статьи с краткой биографией Кристофера Стрэтчи.

Читать далее

if-then-else кто-то должен был изобрести

Время на прочтение8 мин
Количество просмотров30K
Привет, сегодня мы обсудим кажущуюся абсурдной идею: if-then-else кто-то должен был изобрести.


If-then-else — это условные конструкции в языках программирования: если (if) что-то истинно, тогда (then) выполнить одно действие, иначе (else) выполнить другое действие.

Это ведь просто английский? На самом деле нет.

В обычной речи на английском нельзя использовать «else» в качестве союза, это слово используется так только в компьютерных программах.

Откуда вообще взялось else? Это загадка. Настолько микроскопическая деталь, что она не попала в книги по истории языков программирования.
Читать дальше →

Ближайшие события

Оптимизация на простых типах данных. Часть №1 «Строки»

Время на прочтение12 мин
Количество просмотров8.1K
19 апреля автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме и разработчик в компании Joom Александра Воронцова провела открытый вебинар «Оптимизация на простых типах данных». У Аси за спиной 11 лет разработки, опыт олимпиадного программирования, а также работа в Яндексе с высоконагруженными проектами.

Мы подготовили расшифровку вебинара в двух частях. Первая часть — про строки и работу с ними, вторая — про числа.

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


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

Анонс эфира Flutter live-coding сессии

Время на прочтение1 мин
Количество просмотров1.3K

РЕГИСТРАЦИЯ

Представьте, пришёл заказчик и просит сделать приложение — язык в приложении должен быть всего один. Допустим, только английский. Приложение выходит на рынок, становится успешным, и заказчик радостно просит адаптировать апп под другой язык — скажем, китайский. Не, ну а что такого-то?

В этом месте разработчик испытывает мучительную боль и рвёт на себе волосы из-за своей непредусмотрительности.

Читать далее

Сканирование кода C++ с помощью GitHub Actions

Время на прочтение2 мин
Количество просмотров3.3K

В прошлом году GitHub выпустил фичу сканирования кода, которая позволяет разработчикам добавлять проверки безопасности в свою среду CI/CD и в целом в рабочую среду. В этом посте демонстрируются основы использования CodeQL, механизма анализа, лежащего в основе сканирования кода, в связке с GitHub Actions.

Читать далее

Что Data Scientist может подсмотреть у разработчика

Время на прочтение12 мин
Количество просмотров7.5K

Всем привет, меня зовут Дарья Пронина, я специалист по анализу данных и машинному обучению в отделе R&D в Lamoda. Я расскажу о том, что специалист по Data Science может подсмотреть у разработчиков, чтобы сделать свою работу эффективнее, production-процессы — устойчивее, а работу с разработчиками и дата инженерами — приятнее. 

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

Читать далее

Плагины для системы анализа DRAKVUF. Как с помощью exploitmon выявить попытки эксплуатации ядра ОС

Время на прочтение10 мин
Количество просмотров2.5K

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

Сегодня рассмотрим тактики, которые используют хакеры для злонамеренных действий с ядром ОС. Расскажем о новом плагине exploitmon, разработанном PT Expert Security Center для системы динамического анализа вредоносных файлов DRAKVUF, и разберем, как в PT Sandbox с его помощью обнаруживать попытки эксплуатации уязвимостей в ядре Windows.

Читать далее

«Лучше бы пошла в лес погуляла!», или как поменять профессию спустя 30 лет работы

Время на прочтение4 мин
Количество просмотров8.3K

Ирина Мозес застала появление Arpanet и победу СССР над США в баскетбольном олимпийском турнире. Уже больше 30 лет она занимается программированием, но веб-разработку начала изучать только 5 лет назад. Сегодня Ирина работает ревьюером в крупной компании, а её упорству и интересу к жизни можно только позавидовать.

Читать далее

12 тумблеров. А как вы стали программистом?

Время на прочтение10 мин
Количество просмотров8.6K

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

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

Единого алгоритма включения тумблера не существует. Любое образование – школьное, среднее специальное, высшее, платные и бесплатные курсы – не гарантирует, что лампочка загорится. По моим скромным подсчётам, второе рождение случается у 1-5% получающих подобное образование. Хотя, написать какой-то код способны большинство выпускников.

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

И мотив, и подача – индивидуальны. И их много. Это и хорошо, и плохо. Хорошо – потому что всегда найдётся другой вариант, если предыдущие не помогли. Плохо – потому что мало кому охота возиться с человеком, пытаясь подобрать мотив и подачу. Проще окрестить его идиотом и отправить работать менеджером в салон сотовой связи.

Я расскажу 12 сочетаний мотива и подачи, под действием которых случилось второе рождение, и на свет появились 12 программистов. Всё из жизни, разумеется.

Читать далее

Вклад авторов