Чему учится .NET-разработчик с 15-летним опытом: список полезных ресурсов

Однажды в моей Facebook-ленте попался вопрос от знакомой HR: «А что хотят разработчики, у которых опыт больше 10 лет?». Я отшутился и ответил: «Спалить комп и уехать на Бали».

Согласно этому опросу, только 12,4% IT-специалистов в Украине имеют опыт работы больше 10 лет. А есть еще и стереотип о том, что после 40 лет найти работу в IT сложнее, мозговая активность проседает, и не редки случаи, когда бородатый специалист держится за свое место мертвой хваткой, потому что за пределами компании эти скиллы уже никому не нужны.

Я часто спрашиваю, у знакомых и коллег старше 40 и 50 лет, каково им там, за горизонтом. Основная мысль на которой многие сходятся: «Если ты работаешь в IT, то должен постоянно учиться и развиваться». Это аксиома. Иначе пойдешь таксоватьМой совет: больше практикуйтесь, постоянно пробуйте новое, создавайте, не стойте на месте.

Что я умею

Я разработчик на .NET и в целом приверженец стека от Microsoft. Мой опыт коммерческой разработки — 15 лет, а первую программу я написал и того больше — 20 лет назад.

Мой профессиональный путь начинался с С++, с которого я постепенно мигрировал на C#/.NET. На .NET я делал в основном desktop-приложения в связке с фреймворком WPF. За плечами около 70 проектов, в которых я участвовал и как фрилансер, и как менеджер, и как наемный работник. Кому интересно, мои «ачивки» можно полистать тут.

Года три-четыре назад стало ясно, что desktop-разработка — не самое перспективное направление. Да и скучно писать одно и тоже. На мое счастье, появился заказчик, который хотел портировать Windows-приложение на iOS/Android. Мой вам совет, коллеги: хватайтесь за такую возможность не раздумывая! Если вы сидите на ветхом legacy, скорее бегите в сторону чего-то нового.

Сейчас я разрабатываю два мобильных приложения на Xamarin для двух иностранных заказчиков как фрилансер. Параллельно с mobile-разработкой мне заказывают бэкенд, фронтенд, DBA, Azure Services и еще кучу дополнительных активностей, так что разнообразия хватает.

Как я учусь

Чего мало на фрилансе — так это крупных проектов. Крупных в смысле количества пользователей софта, который мы пишем, то есть пресловутого Highload. За 15 лет мне попался только один заказчик, чьим сервисом пользовалось больше 1 млн человек.

Поэтому, желая то, чего нет, я изучаю высоконагруженные системы. А именно — сервисы Azure, стремясь стать Azure Solutions Architect. Сертификат от Microsoft, по моим наблюдениям, ценится среди работодателей и клиентов.

Основной источник самообучения — видеоуроки от Pluralsight ($30 в месяц). Чтобы закрепить и провалидировать знания тестами, пользуюсь Whizlabs ($15 за набор экзаменов).

Когда еду по киевским пробкам, запускаю приложение Learn Azure, которое сам и написал. Есть еще много над чем работать и что улучшать в этом проекте, в первую очередь — эффективность обучения, качество тестов и стимулирование пользователя учиться.

Помимо этого, Microsoft выпускает новые версии C#, .NET, Xamarin и ASP.NET Core каждый год. На подходе Visual Studio 2022. Все это тоже нужно изучать, чтобы повышать свою эффективность.

Да, я знаю многих коллег, которым лень учиться. Они могут сделать «то же самое» на Visual Studio 2010 и .NET 3.5, без всякого mobile. Но это самообман. Технологии меняются, рынок меняется, а вместе с ними — и требования к разработчикам и софту, который они пишут.

Полезные ресурсы для обучения

Вот список ресурсов, которые я стараюсь изучать в совокупности хотя бы три-пять часов в неделю:

  1. С# digest. Рассылка последних новостей C#. Материал в основном уровня middle/senior.
  2. Weekly Xamarin. Моя любимая рассылка по Xamarin. Почерпнул оттуда множество рецептов и решений. В довесок к ней — очень качественные блоги XamGirl и XamBoy.
  3. Fwdays. В доковидные времена Fwdays выдавали суперкачественные ивенты и мастер-классы. Сейчас они также предлагают онлайн-воркшопы.
  4. Indie Hackers. «А это тут что делает?» — спросите вы. Это самое полезное коммьюнити, которое я видел на просторах интернета. На этом сайте собираются одиночки-энтузиасты и запускают свои инди-проекты. Хотите чему-то научится? Переходите к практике! Инди-проекты (или pet-проекты) — лучший способ научиться новому в реальных условиях. Опыт бесценен.
  5. YouTube-канал «Быть программистом». Его автор — фрилансер из провинции Молдовы. Про канал мало кто знает, но контент сделан качественно. Если вы работаете удаленно или как фрилансер — обратите внимание на его видео из жизни, там можно многое почерпнуть для себя.

The post Чему учится .NET-разработчик с 15-летним опытом: список полезных ресурсов first appeared on Highload.today.

from Highload.today https://ift.tt/3ncdQQf
via IFTTT

Инфографика дня: облачные сервисы отбирают хлеб у администраторов Linux

Будет ли востребовано администрирование Linux в ближайшем будущем? Этим вопросом задался разработчик Мариано Рентерия в блоге на dev.to. Он заметил, что в сети появляется все больше предложений о работе в DevOps и растет количество поставщиков облачных услуг, таких как AWS, Azure, Google Cloud и Digital Ocean. Они предоставляют все необходимые автоматизированные инструменты для безопасности, установки и исправлений, что раньше входило в обязанности администратора Linux. 

Свои мысли автор подкрепляет статистикой. Согласно этому графику, интерес к должности Linux Architect долгое время был аналогичен интересу к Cloud Architect, но c 2016 года интерес к последней заметно вырос. 

Динамика популярности должности облачного и Linux архитектора

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

Как считаете, есть ли будущее у администрирования Linux? Будет ли AWS создавать собственную ОС и отказываться от Linux? Или существующие облачные сервисы были, есть и будут зависимы от Linux? 

The post Инфографика дня: облачные сервисы отбирают хлеб у администраторов Linux first appeared on Highload.today.

from Highload.today https://ift.tt/3dCOnfr
via IFTTT

Обновление OpenVPN 2.5.2 и 2.4.11 с устранением уязвимости

Подготовлены корректирующие выпуски OpenVPN 2.5.2 и 2.4.11, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/3ehQjsY
via IFTTT

12 полезных расширений Chrome для повседневных задач

Главная цель этих расширений для Google Chrome — поддерживать продуктивность разработчика и экономить его время. Коллекцию собрал фронтенд-разработчик Сейф Эль Дин Халед, написавший о ней в блоге на dev.to.

1. Grepper 

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

2. Amino Live CSS Editor 

По мнению Сейф Эля, это расширение «на шаг впереди CSSViewer». Оно позволяет писать собственный CSS-код для любого веб-сайта и видеть изменения в режиме реального времени. Также можно настроить цвет, шрифт и макет. 

3. Octotree 

«Это GitHub на стероидах», — заявляет автор статьи. Расширение помогает при просмотре кода и навигации по папкам быстрым, эффективным и настраиваемым способом. 

4. Talend API Tester 

Используется для проверки связи с REST, HTTP и SOAP приложения. Автор советует это расширение вместо устаревшего Postman, если не хотите устанавливать приложение Postman Desktop. 

5. JSON Viewer 

По словам Сейфа Эля, единственная причина, по которой он использует это JSON Viewer вместо JSON Formatter, — это расширенные настройки тем, шрифтов, кегля и многого другого. Можно полностью адаптировать расширение под свои потребности. 

6. React Dev Tools 

Мастхэв для разработчиков React, уверен автор подборки. Расширение позволяет проверять иерархии компонентов библиотеки в Chrome Developer Tools. Сейф Эль особенно выделяет две функции: 

  •       Выделение обновления при рендеринге компонентов;
  •       Мониторинг производительности с помощью профилировщика.

7. Redux Dev Tools 

Расширение для тех, кто использует библиотеку Redux. Помогает отлаживать изменения состояния приложения. 

8. ColorZilla 

Позволяет прочитать цветной код с любого веб-сайта и сгенерировать быстрый градиент цвета. Помимо этого расширение ведет историю по совершенным действиям и может работать с помощью «горячих» клавиш. 

9. LastPass 

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

10. Toggl 

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

11. Hoppscotch

Конструктор запросов API для интернета. 

12. Note Box 

Расширение для добавления заметок/задач на основе URL-адреса. 

The post 12 полезных расширений Chrome для повседневных задач first appeared on Highload.today.

from Highload.today https://ift.tt/3dG2gtt
via IFTTT

Защита ключей API во Flutter

При использовании публичного репозитория git есть возможность случайно раскрыть личный ключ API. Во Flutter есть много способов скрыть ключ API, но, по мнению кроссплатформенного разработчика и графического дизайнера Аадитьясива Сабаринатана, некоторые из них не работают, а другие не работают должным образом. Он разработал собственный метод работы с ключами API, которым поделился на dev.to. 

Установка 

  • Для работы автор предлагает использовать следующий пакет.

Если вы используете его в проекте с null safety

dependencies:
  flutter_dotenv: ^4.0.0-nullsafety.0

Если вы используете его в проекте без null safety:

dependencies:
  flutter_dotenv: ^3.1.0
  •       Создайте в корневом каталоге файл с именем .env. В него можно добавить свои секретные ключи API. 
SUPER_SECRET_API_KEY=This is a super secret API key 
THIS_CAN_BE_CALLED_ANYTHING=This here can be anything like ut4ihyeFn49

Автор метода предупреждает: никогда не фиксируйте файлы .env в системе управления версиями. Если вы используете систему контроля версий git, добавьте файл .env в .gitignore.

  •       После создания файла .env добавьте его как актив в pubspec.yaml
assets:
  - .env

Запуск программы

Чтобы запустить программу, введите следующую команду: 

flutter pub get

В файле main.dart загрузите файл .env

import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv;

Future main() async {
  await DotEnv.load(fileName: ".env");
  //...runapp
}

Теперь в коде можно загружать переменные из файлы .env в любом месте следующим образом: 

import 'package:flutter_dotenv/flutter_dotenv.dart';
env['SUPER_SECRET_API_KEY'];

The post Защита ключей API во Flutter first appeared on Highload.today.

from Highload.today https://ift.tt/2PaMwVJ
via IFTTT

Microsoft начал тестирование поддержки запуска GUI-приложений Linux в Windows

Компания Microsoft объявила о начале тестирования возможности запуска Linux-приложений с графическим интерфейсом в окружениях на базе подсистемы WSL2 (Windows Subsystem for Linux), предназначенной для запуска исполняемых файлов Linux в Windows. Приложения полностью интегрируются с основным рабочим столом Windows, в том числе поддерживается размещение ярлыков в меню Start, воспроизведение звука, запись с микрофона, аппаратное ускорение OpenGL, отображение информации о программах в панели задач, переключение между программами по Alt-Tab, копирование данных между Windows- и Linux-программами через буфер обмена.

from OpenNews.opennet.ru: События https://ift.tt/3eimeJM

Разработчики из Университета Миннесоты намеренно внедряли уязвимости в ядро Linux. Их разоблачили и забанили

Авторы со всего мира и из разных областей ежедневно отправляют большое количество исправлений разработчикам ядра Linux, чтобы они были проверены перед их объединением с деревом ядра Linux. Эти патчи могут помочь исправить ошибку или незначительную проблему в ядре или ввести новую функцию. Однако недавно некоторые участники были пойманы, пытаясь скрытно отправить исправления, содержащие уязвимости безопасности ядра Linux. 

Вред во имя науки

Исследователи из университета Миннесоты готовили исследовательскую работу «О возможности негласного внедрения уязвимостей в программное обеспечение с открытым исходным кодом с помощью злонамеренных действий». Они использовали ядро Linux в качестве одного из своих основных экспериментов из-за его хорошо известной репутации и адаптации во всем мире. 

Исследователи представили патчи, которые, похоже, не полностью исправляли проблемы в ядре, но также не сразу представляли уязвимость в системе безопасности. Некоторые из этих патчей, которые они отправили в ядро, были успешно объединены с деревом ядра Linux. 

Публичное унижение

21 апреля они были пойманы разработчиками ядра Linux. В электронном письме одного из основных специалистов по сопровождению ядра Linux Грега Кроа-Хартмана был раскрыт их подход, и их так называемые «патчи для новичков» были устранены. Вероятно, Грегу и ряду других сопровождающих ядра это не понравилось, поскольку такого рода эксперименты отнимают их время и усилия и заставляют людей участвовать в разработке ядра. Вот что он написал: 

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

Также Грег объявил, что ядро Linux запретит все взносы из университета Миннесоты, и что все патчи, которые они ранее отправляли, также будут удалены из ядра, и в будущем от них не будут приниматься новые.

Коэффициент одобрения кода

Исследовательская работа разработчиков университета Миннесоты была опубликована еще в феврале 2021. В документе раскрывается подход и методы, которые команда использовала для устранения уязвимостей, внедренных в ядро Linux и другие проекты с открытым исходным кодом. 

В свою защиту исследователи из университета Миннесоты заявили, что большинство уязвимостей, которые они тайно пытались внедрить в различные проекты с открытым исходным кодом, были успешно приняты в среднем примерно на 60%. 

Коэффициент одобрения кода

Пока неясно, какие еще проекты они пытались захватить, и каково фактическое количество уязвимостей, которое им удалось внедрить в различные проекты с открытым исходным кодом. 

Что вы думаете об этом подходе? Считаете ли вы, что позиция исследователя была оправдана в пользу науки и безопасности? Или вы думаете, что разработчики ядра Linux были правы, запретив им доступ к ядру, и что такой подход не следует поощрять? Пишите свое мнение в комментарии.

The post Разработчики из Университета Миннесоты намеренно внедряли уязвимости в ядро Linux. Их разоблачили и забанили first appeared on Highload.today.

from Highload.today https://ift.tt/32BJs8f
via IFTTT

[Перевод] Машинное обучение в разработке игр

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

При разработке игрового процесса баланс обычно настраивается по следующей схеме:

Проводятся тысячи игровых партий с участием тестировщиков.

Собираются отзывы и на их основании в игру вносятся корректировки.

Шаги 1 и 2 повторяются, пока результат не устроит и тестировщиков, и гейм-дизайнеров.

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

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

Читать далее

The following blog post [Перевод] Машинное обучение в разработке игр is available on Хабр / Посты с меткой «google»

Выпуск серверной JavaScript-платформы Node.js 16.0

Состоялся релиз Node.js 16.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 16.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 16.0 будет осуществляться до апреля 2024 года. Сопровождение прошлой LTS-ветки Node.js 14.0 продлится до апреля 2023 года, а позапрошлой LTS-ветки 12.0 до апреля 2022 года. Сопровождение LTS-ветки 10.0 будет прекращено через 10 дней.

from OpenNews.opennet.ru: Основная лента https://ift.tt/3arC6Zn
via IFTTT

Выпуск серверной JavaScript-платформы Node.js 16.0

Состоялся релиз Node.js 16.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 16.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 16.0 будет осуществляться до апреля 2024 года. Сопровождение прошлой LTS-ветки Node.js 14.0 продлится до апреля 2023 года, а позапрошлой LTS-ветки 12.0 до апреля 2022 года. Сопровождение LTS-ветки 10.0 будет прекращено через 10 дней.

source https://www.opennet.ru/opennews/art.shtml?num=54998

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

Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux, принял решение запретить приём в ядро Linux любых изменений, поступающих из Университет Миннесоты, а также откатить все ранее принятые патчи. Причиной блокировки стала деятельность исследовательской группы, изучающей возможность продвижения скрытых уязвимостей в код открытых проектов. Указанная группа отправляла патчи, включающие различного рода ошибки, наблюдала за реакцией сообщества и изучала пути обмана процесса рецензирования изменений. По мнению Грега проведение подобных экспериментов по внедрению вредоносных изменений является неприемлемым и неэтичным.

from OpenNews.opennet.ru: События https://ift.tt/3eo6O6D

От студента до учителя: как разобраться в веб-разработке, если это не твой профиль

Хоть кому-то и может показаться, что веб-разработчик — это суровый технарь (айтишник же!), вход в эту профессию не сложнее, чем в Python . В неё часто переходят бывшие педагоги, юристы, бухгалтеры и другие гуманитарии. О том, с чего начать обучение, какие ошибки допускают новички, как освоиться в профессии и стоит ли самостоятельно учиться, рассказывает преподаватель веб-разработки в GeekBrains Алексей Кадочников.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/2QcotGF

Microsoft Power BI: 4 платформы, чтобы прокачать навыки

Maven Analytics

BI Elite

The post Microsoft Power BI: 4 платформы, чтобы прокачать навыки first appeared on Highload.today.

from Highload.today https://ift.tt/3sBdbZG
via IFTTT

«3 года и все — ты сеньор»: разработчики поспорили о стаже

Сколько нужно опыта, чтобы называть себя «сеньором», и какими навыками нужно обладать? Этим вопросом в блоге на LinkedIn задался разработчик из компании Bamboo Native Петр Евсиков. По его мнению, невозможно получить звание сеньора за три года, особенно, если в течение этого времени разработчик занимался максимум 2-3 проектами и умеет выполнять лишь текущую текучку компании. Мнения не сильно разделились. К активной дискуссии подключились уже около 150 человек.

По мнению пользователя Ивана Оберемока, тяжелые временена рождают сильных программистов, сильные программисты создают удобные фреймворки, удобные фреймворки рождают слабых программистов, слабые программисты рождают тяжелые времена.

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

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

Как написал один из комментирующих, на Западе до трех лет разработчик считается «джуном», до 10 лет «мидлом» и только со стажем более 10 лет становится «сеньором», но это, опять-таки, скорее всего, только условная градация.

PHP-разработчик Богдан Семеско отметил, что сеньор это тот, кто умеет быстро и эффективно решать бизнес задачи с заделом на будущее и неважно, это хайповые фреймворки и копипаста или что-то свое. Он считает, что знание хеш-таблиц, поисковиков и умение писать свой код не делают из разработчика сеньора, точно как и знание множества специфической информации. Богдан Семеско уверен, что это развивает мозг и делает человека более сильным разработчикам, но в реалиях рынка никто не будет ждать, пока ты напишешь очередную программу без копипаста, зато свою. Как он говорит, «для него сеньор это не лычка убертехнаря, а лычка толкового некосячного разраба».

Пользователи также отметили необходимость «сеньора» иметь отличные софт-скиллы. Они связывают это с тем, что разработка ПО на серьезном уровне это в первую очередь «командное дело, а потом уже хитрые алгоритмы и крутые либы, поэтому за три года вырасти до сеньора практически невозможно».

Также многие пользователи отмечают, что «сеньор» это больше о том, как ты мыслишь, а не о том, сколько технологий знаешь. Это о том, как действовать в том или ином случае без помощи Stack Overflow на чистом опыте, о том, как формировать вокруг себя очаг людей, об экспертизе и о бизнес логике. 

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

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

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

The post «3 года и все — ты сеньор»: разработчики поспорили о стаже first appeared on Highload.today.

from Highload.today https://ift.tt/3tDcFM5
via IFTTT

Новый квантовый компьютер Amazon основан на котах Шредингера: в компании разработали новый подход к созданию кубитов

Критический недостаток современных квантовых компьютеров, по словам ученых, тот факт, что их внутренняя работа подвержена ошибкам. Проблемой занялись в Amazon Web Service (AWS), где представили теоретический план по созданию отказоустойчивого квантового компьютера, который подавляет основной источник ошибок. 

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

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

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

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

Ученые подсчитали, что квантовые компьютеры могут получить преимущество перед классическими вычислениями с помощью 32 тысяч сверхпроводящих устройств квантовой интерференции с асимметричной резьбой (SQUIDs) для стабилизации кошачьих кубитов.

Если два кубита квантово-механически связаны или запутаны, они могут выполнить 2^2 или четыре вычисление одновременно, три кубита — 2^3 или восемь вычислений и так далее. Если эксперименты Amazon по устранению ошибок увенчаются успехом, то, теоретически, квантовый компьютер с 300 кубитами сможет выполнять больше вычислений за мгновение, чем атомов в видимой Вселенной. 

The post Новый квантовый компьютер Amazon основан на котах Шредингера: в компании разработали новый подход к созданию кубитов first appeared on Highload.today.

from Highload.today https://ift.tt/3n4dZVM
via IFTTT

Ответы на самые популярные вопросы на собеседовании по TypeScript: продвинутые вопросы

Технический писатель и программист Райан Телин поделился в блоге на dev.to 50 самыми популярными вопросами на собеседовании по TypeScript и ответами на них. Мы разбили подборку на четыре части. Первую часть можно посмотреть здесь, вторую здесь, третью здесь. В четвертую часть вошли четыре продвинутых вопроса с ответами и 20 вопросов для самостоятельного изучения. 

Продвинутые вопросы

 27. Как добиться перегрузки функции в TypeScript? 

Чтобы перегрузить функцию в TypeScript, нужно создать две функции с одним и тем же именем, но с разными типами аргументов/возвращаемых значений. Обе функции должны принимать одинаковое количество аргументов. Это важная часть полиморфизма в TypeScript.

Например, можно создать функцию add, которая суммирует два аргумента, если это числа, и объединяет их, если они являются строками. 

function add(a:string, b:string):string;

function add(a:number, b:number): number;

function add(a: any, b:any): any {
    return a + b;
}

add("Hello ", "Steve"); // returns "Hello Steve" 
add(10, 20); // returns 30

28. Как сделать все свойства интерфейса необязательными?

Чтобы сделать все свойства необязательными, можно воспользоваться частично сопоставленным типом partial. 

29. Когда используется ключевое слово unknown? 

unknown используется, если неизвестно, какой тип ожидать заранее, но нужно назначить его позже, и если ключевое слово any не будет работать. 

30. Что такое декораторы и к чему их можно применить? 

Декоратор — это особый вид объявления, который позволяет изменять классы и члены классов сразу, помечая их аннотацией @name. Каждый декоратор должен ссылаться на функцию, которая будет оцениваться во время выполнения. 

Например, декоратор @sealed будет соответствовать запечатанной функции. Все, что помечено  @sealed, будет использоваться для оценки запечатанной функции. 

function sealed(target) {
  // do something with 'target' ...
}

Декоратор можно прикрепить к: 

  •   Объявлению классов;
  •   Методам;
  •   Аксессорам;
  •   Характеристикам;
  •   Параметрам.

По умолчанию декораторы не включены. Чтобы их включить, нужно отредактировать поле experimentalDecorators в параметрах компилятора в файле tsconfig.json или в командной строке. 

Вопросы для самостоятельного изучения 

31. Какой модификатор доступа по умолчанию для переменных-членов и методов в TypeScript?

32. Когда используется ключевое слово declare?

33. Что такое дженерики в TypeScript? Когда они используются?

34. Как и когда используется коллекция enum?

35. Что такое пространства имен и зачем их использовать?

36. Как реализуются необязательные параметры?

37. Назовите три отличия между TypeScript и JavaScript.

38. Является ли TypeScript языком функционального программирования?

39. Какие функции TypeScript были бы полезны для full-stack-разработчика?

40. Назовите преимущества TypeScript Language Service?

41. Как создать повторно используемые компоненты?

42. В чем разница между кортежем и массивом в TypeScript?

43. Какие коллекции поддерживает TypeScript?

44. В чем разница между внутренними и внешними модулями в TypeScript?

45. Для чего используется тип Record?

46. Какие преимущества дает TypeScript стеку технологий?

47. Как сгенерировать файл определения с помощью TypeScript?

48. Поддерживает ли TypeScript абстрактные классы?

49. Как настроить файл TypeScript для компиляции при каждом изменении?

50.Что такое Ambient в TypeScript и когда их использовать? 

Райан Телин также советует:

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

The post Ответы на самые популярные вопросы на собеседовании по TypeScript: продвинутые вопросы first appeared on Highload.today.

from Highload.today https://ift.tt/3eldWAJ
via IFTTT

Google и Ростуризм запустили проект «Раскуси Россию» о русской кухне

Российское отделение Google вместе с Ростуризмом организовали проект «Раскуси Россию» на платформе Google Arts & Culture. Посетителям площадки предлагают ознакомиться с региональными кухнями страны, историей и традициям, а также современными тенденциями в ресторанной культуре.

Читать далее

The following blog post Google и Ростуризм запустили проект «Раскуси Россию» о русской кухне is available on Хабр / Посты с меткой «google»

Обновление Java SE, MySQL, VirtualBox и других продуктов Oracle с устранением уязвимостей

Компания Oracle опубликовала плановый выпуск обновлений своих продуктов (Critical Patch Update), нацеленный на устранение критических проблем и уязвимостей. В апрельском обновлении в сумме устранено 390 уязвимостей.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/3gqBzus
via IFTTT

Релиз nginx 1.20.0

После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.20.0, которая вобрала в себя изменения, накопленные в основной ветке 1.19.x. В дальнейшем все изменения в стабильной ветке 1.20 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.21, в которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

from OpenNews.opennet.ru: Основная лента https://ift.tt/3dx66VF
via IFTTT

В Firefox 88 молча удалён пункт контекстного меню “Page Info”

Компания Mozilla без упоминания в примечании к выпуску и без информирования пользователей удалила из контекстного меню Firefox 88 пункт “View Page Info”, через который удобно просматривать параметры страницы и получать ссылки на картинки и ресурсы, используемые на странице. Горячая клавиша “CTRL+I” для вызова диалога “View Page Info” пока работает. В диалог также можно перейти через главное меню “Tools/Page Info” или нажав на значок с изображением замка в адресной строке, затем кликнув на стрелку вбок и перейдя по ссылке “More Information”. Причины удаления из контекстного меню непоняты, подобные действия нарушают привычный уклад, раздражают пользователей и требуют времени чтобы привыкнуть к новому методу вызова достаточно активно используемой функции.

from OpenNews.opennet.ru: Основная лента https://ift.tt/3emRac2
via IFTTT

Back to Top