void f(int i)
{
auto g = [i](auto j)
{
return i + j;
};
g = [i](auto j)
{
return i - j;
};
g(1);
}
При компиляции возникнет ошибка в строке
g = [i](auto j)
.Почему так происходит?
void f(int i)
{
auto g = [i](auto j)
{
return i + j;
};
g = [i](auto j)
{
return i - j;
};
g(1);
}
g = [i](auto j)
.Первая публичная версия bash-5.2 теперь доступна по URL-адресам ниже. Подробности к старту курса по DevOps — под катом.
Привет!
Мы решили сделать серию интервью с проектами, которые проходили или проходят акселерацию в Privacy Accelerator. Это, чтобы, как говорится, и себя показать (то есть проекты, а они у нас достойные!), и людей посмотреть - ведь на Хабре самая классная техническая аудитория, которая разбирается в нашей теме.
Сейчас в Privacy Accelerator стартует пятый набор, но мы по-прежнему на связи со всеми выпускниками прошлых лет. Некоторые из первых резидентов Privacy Accelerator опять с нами, но уже в новом формате - инкубатора. Сегодня поговорим с участником самого первого набора, осень 2020 года.
Знакомьтесь - Кирилл, основатель и CEO проекта SelfPrivacy. Два года назад его команда была отобрана в акселератор и активно в нем поработала: проверила гипотезу, провела серию пользовательских интервью, опрос, выявила ключевые боли, сделала MVP и разработала дизайн. А еще презентовала свой проект на питчинге перед экспертами и зрителями Privacy Day 2021 в Москве. Затем продолжила работу в инкубаторе. Как проект попал в Privacy Accelerator? Как проходила работа и что было особенно ценно? Чем сейчас занимается команда и какие у нее планы?
Все, что Вы прочитаете в этой статье, рассчитано на широкий круг читателей, в том числе не из IT.
Технологии развиваются, скорость развития возрастает экспоненциально (возможно осуществление гипотезы «технологической сингулярности»). Вакансии образуются, на них нужно кого-то нанимать… но талантливых ведь не много? Что теперь считать талантом? Как устроено снижение порога входа в IT и какие есть проблемы?
В рамках этой статьи рассмотрен в общем вектор развития IT, влияние рынка, и, конечно же, бизнес...
Написание тестов в современной разработке играет одну из самых важных и неотъемлемых этапов разработки современного программного обеспечения. В рамках разработки одного из последних проектов перед нами возникла подобная задача. Одним из способов тестирования стала разработка полноценных End2End тестов.
Сегодня мы попробуем разложить по полочкам концепцию Сегодня мы попробуем разложить по полочкам концепцию Confidential Cloud Computing и содержательно поговорить о конфиденциальных вычислениях в Web 3.
Термин «облако» несколько раз пересматривался в истории Интернета. Для первопроходцев на заре Интернета идея заключалась в создании распределенной системы взаимосвязанных мейнфреймов, которая сама стала бы облаком. В более позднем видении облако будет означать возможность пользователей получать доступ к своим ресурсам (в основном данным) с любого устройства, которое к нему подключено.
Облако начало приобретать современные очертания только в начале 2000 года. Что произошло? До этого Интернет был в основном в руках нескольких энтузиастов. Затем произошла удивительная вещь: сотрудники Amazon (в то время интернет-магазина) не были удовлетворены скоростью, с которой они могли разрабатывать новые продукты и услуги. Проще говоря, они внедрили новый процесс для своих команд разработчиков и построили инфраструктуру с двумя ключевыми функциями:
позволить инженерам создавать новые сервисы быстрее и не затрачивать слишком много ресурсов на обслуживание;
обеспечить масштабирование и рост успешных услуг (тех, которые удовлетворяют спрос клиентов)
Картинка: Designed by vectorjuice / Freepik
Большинство пользователей VBA прекрасно знают такую штуку как Type
, он же User Defined Type (UDT). Кто-то, как я, использует его на повседневной основе. Кто-то, возможно, о нем слышал, но не мог понять как его применить.
Лично я помню, как не так давно смотрел на этот Type
и пытался понять зачем он мне нужен, ведь он просто хранит в себе переменные, которые можно с тем же успехом объявить в функции/процедуре или на уровне модуля?
В этой статье я хотел бы показать на примере как можно использовать Type
. Мы разберем некоторые его особенности, и возможно кто-нибудь из читателей найдет для себя один из примеров крайне интересным (а может быть даже будет использовать в своих проектах). Поехали!
Всё началось с баг репорта от одного из пользователей нашего фрэймворка JDI Light - NullPointerException при WebPage.open(), а точнее WindowsManager.getWindows()
Максимально странное падение до 30% тестов разом с одной ошибкой. Причём либо падает сразу много, либо - не падает вообще.
Мы в JDI очень трепетно относимся к баг репортам пользователей, особенно такого фантастического качества - с подробным описанием и вот этим всем.
В предыдущих сериях:
Медленно, но верно Раст проникает не только в умы сотрудников больших корпораций, но и в умы школьников и студентов. В этот раз мы поговорим о статье от студента МГУ: https://rustmustdie.com/.
Её репостнул Андрей Викторович Столяров, доцент кафедры алгоритмических языков факультета ВМК МГУ им. М. В. Ломоносова и по совместительству научрук студента-автора статьи.
Я бы сказал, что тут дело даже не в том, что он "неинтуитивный". Дело скорее в том, что компилятор раста сам решает, когда владение "должно" (с его, компилятора, точки зрения) перейти от одного игрока к другому. А решать это вообще-то должен программист, а не компилятор. Ну и начинается пляска вида "как заставить тупой компайлер сделать то, чего я хочу".
Бред это всё.
— А. В. Столяров
В предыдущей статье мы рассмотрели вопросы хранения учетных данных в ОС семейства Линукс. Теперь перейдем к обсуждению вопросов правильной и не очень настройки прав доступа к различным объектам операционной системы.
Напомню основные моменты относительно учетных записей в Линукс: есть суперпользователь root (id=0), который может все и есть все остальные учетные записи (id от 500 или 1000), которые имеют ряд ограничений и по идее не могут нанести большого вреда системе.
Но на практике возможны различные ситуации, когда обычному пользователю необходимы административные права. Например, обычный пользователь не может прочитать файл с хэшами паролей /etc/shadow, но он может изменить свой собственный пароль с помощью команды passwd. Очевидно, что для внесения изменений в защищенный файл команда должна выполняться с правами суперпользователя. И таких примеров может быть довольно много.
В этой статье мы поговорим о том, как устроены различные механизмы управления доступом, а в следующей подробно рассмотрим то, как потенциальный злоумышленник может использовать ошибки, допущенные при настройке доступа.
C# 9 дал долгожданную возможность кодогенерации, интегрированную с компилятором. Тем, кто мечтал избавиться от тысяч строк шаблонного кода или попробовать метапрограммирование, стало проще это сделать.
Ранее Андрей Дятлов TessenR выступил на конференции DotNext с докладом «Source Generators в действии». А теперь, пока мы готовим следующий DotNext, сделали для Хабра текстовую расшифровку его доклада.
Что вообще такое эти Source Generators? Как их использовать? Как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах? Как разобраться, когда что-то пошло не так?
Ответы на все эти и другие вопросы — в тексте.
Привет! Меня зовут Татьяна Дерягина, я QA-инженер из команды мобильного тестирования в СберМаркете. Моя команда работает дистанционно, находясь в разных городах России. Хочу рассказать, как как мы адаптировались к процессу тестирования, без большого количества реальных девайсов и не потеряли качество продукта.
В этой статье мы продемонстрируем пример настройки Spring Security + OAuth2 для защиты конечных точек REST API на фреймворке Spring Boot. Клиенты и учетные данные пользователей будут храниться в реляционной базе данных (для баз данных H2 и PostgreSQL подготовлены примеры конфигураций).
Большинство активно играющих людей, хоть раз, но задумывались - а не пойти ли работать в игровую индустрию? Чаще всего эта мысль как приходит, так и уходит. Но иногда она признается заслуживающей рассмотрения, и человек начинает интересоваться - а что там и как. Нередко при этом сталкиваясь с огромным количеством мифов, противоречивой информацией, а иногда даже мошенничеством.
Я почти 20 лет профессионально занимаюсь геймдизайном видеоигр, и сегодня специально для вас отделю зерна от плевел. Развею основные мифы, расскажу не слишком популярную правду о некоторых аспектах, и вообще постараюсь чтобы после прочтения этой статьи у вас больше не осталось вопросов вида “что такое работа в геймдеве для новичка”
Лонгрид. Доступна видео-версия:
Stride – это мощный, бесплатный и активно развивающийся игровой движок, реализованный на C#. Он вполне может стать альтернативой Unity, но насколько качественный исходный код Stride? Узнаем это с помощью статического анализатора PVS-Studio.
Привет, Хабр! Меня зовут Евгений Янес, я ведущий руководитель IT-направления в СберТехе — компании, которая строит Platform V, цифровую платформу Сбера для разработки бизнес-приложений.
В статье расскажу, как мы создали Platform V Incident Manager — продукт для автоматизации процесса обработки ошибок, а за счёт функции обработки связанных инцидентов оптимизировали работу сразу нескольких бизнес-процессов.
В iOS-разработке выравнивание контента и интервалы — это то, на что может уйти много времени. Давайте рассмотрим, как устанавливать ограничения с помощью UIKit, обновлять их и разрешать конфликты ограничений.
Ограничение(constraint) - это правило, позволяющее операционной системе размещать ваш компонент пользовательского интерфейса. В UIKit есть 2 основных способа установки ограничений: StoryBoard и кодом. В данной статье рассмотрим только подход кодом.