Использование async/await в цикле forEach
Один из пользователей платформы Stack Overflow задал вопрос, правильно ли использовать асинхронные вызовы для чтения файлов в Node.js вместе с циклом forEach.
Приводим самый популярный ответ:
forEach вместе с async/await не работает так, как ожидает разработчик. Цикл запускает множество асинхронных вызовов, но функция, внутри которой он работает, сразу возвращается.
Для исследованного чтения файлов лучше использовать более современный цикл for… of, в котором await будет работать должным образом (реализация решения на картинке, предполагается что getFilePaths() работает как надо).
Для параллельного чтения файлов лучше использовать функцию map для асинхронных вызовов внутри функции Promise.all, которая дождется возвращения всех промисов.
Ссылка на решение: https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop
#javascript #nodejs #promise #asyncawait #ecmascript2017
Один из пользователей платформы Stack Overflow задал вопрос, правильно ли использовать асинхронные вызовы для чтения файлов в Node.js вместе с циклом forEach.
Приводим самый популярный ответ:
forEach вместе с async/await не работает так, как ожидает разработчик. Цикл запускает множество асинхронных вызовов, но функция, внутри которой он работает, сразу возвращается.
Для исследованного чтения файлов лучше использовать более современный цикл for… of, в котором await будет работать должным образом (реализация решения на картинке, предполагается что getFilePaths() работает как надо).
Для параллельного чтения файлов лучше использовать функцию map для асинхронных вызовов внутри функции Promise.all, которая дождется возвращения всех промисов.
Ссылка на решение: https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop
#javascript #nodejs #promise #asyncawait #ecmascript2017
Ученые разработали «канареечную ловушку» для киберпреступников
Эксперты по кибербезопасности департамента компьютерных наук Дартмутского колледжа разработали новую систему защиты интеллектуальной собственности на основе искусственного интеллекта под названием We-forge. Система работает по технике шпионажа, известной как «канареечная ловушка», которая для сокрытия информации использует несколько версий фальшивых документов. Так можно, например, обнаружить утечку данных или отвлечь внимание мошенников от ценной информации.
По словам одного из создателей системы, We-forge обрабатывает естественный язык для автоматического создания множества документов, которые одновременно похожи и не похожи на оригинал. Когда злоумышленник взламывает систему, он сталкивается с непростой задачей — выяснить, какой из документов настоящий. Но даже если преступник найдет оригинал, он не может быть уверен в его подлинности. Это заставляет преступника тратить на взлом еще больше времени, сил и денег.
В отличие от других похожих инструментов, We-forge специализируется на фальсификации технической информации, а не сокрытии простой информации, такой как пароли. В рамках исследования команда фальсифицировала серию патентов по информатике и химии и попросила группу лиц определить, какие из документов были настоящими. Результаты показали, что We-forge смогла последовательно генерировать очень правдоподобные поддельные документы для каждой задачи.
Полный текст статьи можно прочитать по ссылке:
https://techxplore.com/news/2021-03-cybersecurity-canary.html
#кибербезопасность
Эксперты по кибербезопасности департамента компьютерных наук Дартмутского колледжа разработали новую систему защиты интеллектуальной собственности на основе искусственного интеллекта под названием We-forge. Система работает по технике шпионажа, известной как «канареечная ловушка», которая для сокрытия информации использует несколько версий фальшивых документов. Так можно, например, обнаружить утечку данных или отвлечь внимание мошенников от ценной информации.
По словам одного из создателей системы, We-forge обрабатывает естественный язык для автоматического создания множества документов, которые одновременно похожи и не похожи на оригинал. Когда злоумышленник взламывает систему, он сталкивается с непростой задачей — выяснить, какой из документов настоящий. Но даже если преступник найдет оригинал, он не может быть уверен в его подлинности. Это заставляет преступника тратить на взлом еще больше времени, сил и денег.
В отличие от других похожих инструментов, We-forge специализируется на фальсификации технической информации, а не сокрытии простой информации, такой как пароли. В рамках исследования команда фальсифицировала серию патентов по информатике и химии и попросила группу лиц определить, какие из документов были настоящими. Результаты показали, что We-forge смогла последовательно генерировать очень правдоподобные поддельные документы для каждой задачи.
Полный текст статьи можно прочитать по ссылке:
https://techxplore.com/news/2021-03-cybersecurity-canary.html
#кибербезопасность
Пока продолжается сбор заявок на наш конкурс pet-проектов, мы решили познакомить вас с членами жюри
Дмитрий Грищенко — Full-Stack Software Engineer (JavaScript) в компании Innovecs. Дмитрий будет оценивать проекты по Frontend JavaScript и TypeScript. Его коммерческий опыт с JavaScript — около пяти лет. Начинал как фронтенд-девелопер, со временем освоил Node.js и таким образом перешел на Full-Stack.
Дмитрий будет ориентироваться на свежесть и пользу идеи, удобство и понятность использования программы, качество продукта и баланс в коде между масштабируемостью и отсутствием чрезмерной сложности. Дополнительное преимущество он отдаст проектам со строгой типизацией
«Просмотр чужого кода — это очень ответственно, надеюсь поставить себя на место нового члена команды, который должен поддерживать продукт в будущем. Буду обращать внимание на паттерны, которые помогли бы достаточно быстро и надежно расширить функционал, и на места, которые могут быть неправильно интерпретированы новым участником команды и несут потенциальную угрозу стабильности продукта», — рассказывает Дмитрий.
Заявки на участие в конкурсе все еще можно подать на лендинге
https://specials.highload.today/
#конкурс #жюри
Дмитрий Грищенко — Full-Stack Software Engineer (JavaScript) в компании Innovecs. Дмитрий будет оценивать проекты по Frontend JavaScript и TypeScript. Его коммерческий опыт с JavaScript — около пяти лет. Начинал как фронтенд-девелопер, со временем освоил Node.js и таким образом перешел на Full-Stack.
Дмитрий будет ориентироваться на свежесть и пользу идеи, удобство и понятность использования программы, качество продукта и баланс в коде между масштабируемостью и отсутствием чрезмерной сложности. Дополнительное преимущество он отдаст проектам со строгой типизацией
«Просмотр чужого кода — это очень ответственно, надеюсь поставить себя на место нового члена команды, который должен поддерживать продукт в будущем. Буду обращать внимание на паттерны, которые помогли бы достаточно быстро и надежно расширить функционал, и на места, которые могут быть неправильно интерпретированы новым участником команды и несут потенциальную угрозу стабильности продукта», — рассказывает Дмитрий.
Заявки на участие в конкурсе все еще можно подать на лендинге
https://specials.highload.today/
#конкурс #жюри
Netflix переедет в Cosmos
Онлайн-кинотеатр Netflix разработал новую платформу для приема и распространения мультимедиа и планирует потратить большую часть 2021 года на переход на нее «с большой и устаревшей системы». Как говорится в техническом блоге компании, новая платформа называется Cosmos. Netflix начал работу над Cosmos в 2018 году, частично использовал ее с 2019 года и теперь задействует примерно в 40 сервисах.
Предыдущая платформа под названием Reloaded разрабатывалась исключительно как конвейер непрерывной обработки видео/аудио, но со временем мощности компании выросли, и монолитная архитектура старой платформы замедлила рабочие процессы. Для переезда на новую платформу компания выбрала схему миграции Strangler fig (от растения фикус-душитель), поскольку она позволяет новой системе расти вокруг старой и в конечном итоге полностью заменить ее.
Один из разработчиков новой системы рассказал, что она похожа на микросервис в том плане, что это API с бизнес-логикой без сохранения состояния. Она самомаcштабируется в зависимости от загрузки, имеет строгие связи с другими системами, но отделена от них данными приложения и бинарными зависимостями.
В сервисе также есть подсистемы, одна из которых называется Stratum. Это бессерверный уровень, предназначенный для выполнения масштабных вычислений без сохранения состояния.
В 2021 году Netflix планирует выпустить рекордные 70 оригинальных фильмов, которые будут доступны более чем 200 миллионной аудитории подписчиков.
Полная версия статьи доступна по ссылке:
https://www.theregister.com/2021/03/02/netflix_cosmos_serverless_microservices/
#сервернаяархитектура #netflix
Онлайн-кинотеатр Netflix разработал новую платформу для приема и распространения мультимедиа и планирует потратить большую часть 2021 года на переход на нее «с большой и устаревшей системы». Как говорится в техническом блоге компании, новая платформа называется Cosmos. Netflix начал работу над Cosmos в 2018 году, частично использовал ее с 2019 года и теперь задействует примерно в 40 сервисах.
Предыдущая платформа под названием Reloaded разрабатывалась исключительно как конвейер непрерывной обработки видео/аудио, но со временем мощности компании выросли, и монолитная архитектура старой платформы замедлила рабочие процессы. Для переезда на новую платформу компания выбрала схему миграции Strangler fig (от растения фикус-душитель), поскольку она позволяет новой системе расти вокруг старой и в конечном итоге полностью заменить ее.
Один из разработчиков новой системы рассказал, что она похожа на микросервис в том плане, что это API с бизнес-логикой без сохранения состояния. Она самомаcштабируется в зависимости от загрузки, имеет строгие связи с другими системами, но отделена от них данными приложения и бинарными зависимостями.
В сервисе также есть подсистемы, одна из которых называется Stratum. Это бессерверный уровень, предназначенный для выполнения масштабных вычислений без сохранения состояния.
В 2021 году Netflix планирует выпустить рекордные 70 оригинальных фильмов, которые будут доступны более чем 200 миллионной аудитории подписчиков.
Полная версия статьи доступна по ссылке:
https://www.theregister.com/2021/03/02/netflix_cosmos_serverless_microservices/
#сервернаяархитектура #netflix
Новый DevTools стал меньше влиять на производительность загрузки страниц
С выходом Chrome 90 в браузере также обновился DevTools. Среди нововведений:
— Отладчик СSS flexbox.
— Появился оверлей Core Web Vitals, который позволяет лучше визуализировать и измерять производительность страницы. Это часть инициативы Google по улучшению взаимодействия с пользователями.
— В Console status bar перенесен счетчик проблем из консоли, чтобы улучшить видимость предупреждения о возникших ошибках.
— На вкладке Issues теперь сообщается о проблемах с Trusted Web Activity. Это нужно, чтобы помочь разработчикам замечать и исправлять подобные проблемы.
— Появился API Trust Token, который помогает бороться с мошенничеством и отличать ботов от реальных людей без пассивного отслеживания.
— Улучшена производительность загрузки страниц при открытом DevTools, которая, по словам авторов сборки, в некоторых случаях увеличилась в десять раз.
— Во вкладке Frames теперь отображается список разрешенных и запрещенных функций браузера, контролируемых Permission policy.
Читайте полную статью со списком всех изменений по ссылке:
https://developers.google.com/web/updates/2021/02/devtools
#devtools #chrome #google
С выходом Chrome 90 в браузере также обновился DevTools. Среди нововведений:
— Отладчик СSS flexbox.
— Появился оверлей Core Web Vitals, который позволяет лучше визуализировать и измерять производительность страницы. Это часть инициативы Google по улучшению взаимодействия с пользователями.
— В Console status bar перенесен счетчик проблем из консоли, чтобы улучшить видимость предупреждения о возникших ошибках.
— На вкладке Issues теперь сообщается о проблемах с Trusted Web Activity. Это нужно, чтобы помочь разработчикам замечать и исправлять подобные проблемы.
— Появился API Trust Token, который помогает бороться с мошенничеством и отличать ботов от реальных людей без пассивного отслеживания.
— Улучшена производительность загрузки страниц при открытом DevTools, которая, по словам авторов сборки, в некоторых случаях увеличилась в десять раз.
— Во вкладке Frames теперь отображается список разрешенных и запрещенных функций браузера, контролируемых Permission policy.
Читайте полную статью со списком всех изменений по ссылке:
https://developers.google.com/web/updates/2021/02/devtools
#devtools #chrome #google
Вышел релиз Deno 1.8
Разработчики программной платформы Deno опубликовали ее новую версию. Сборка содержит множество новых функций и стабилизаций, вот некоторые из них:
— Экспериментальная поддержка WebGPU.
— Полная поддержка ICU. Все API JavaScript, зависящие от ICU, теперь должны соответствовать API браузера.
— Маппинг импортов теперь стабилен.
— Добавлена возможность для пользователей указывать токены аутентификации для каждого домена, которые используются при загрузке модулей в первый раз.
— API безопасности стабилен. В Deno 1.8 теперь есть стабильный API для вызова query, request и revoke для изменения настроек доступа. Эти API содержатся в объекте Deno.permissions.
— Стабилизированы API Deno.link и Deno.symlink.
— deno fmt теперь может форматировать файлы .json и .jsonc.
Deno 1.8 поставляется с последней стабильной версией TypeScript.
С полным текстом изменений можно ознакомиться по ссылке:
https://deno.land/posts/v1.8#icu-support
#deno #javascript #typescript
Разработчики программной платформы Deno опубликовали ее новую версию. Сборка содержит множество новых функций и стабилизаций, вот некоторые из них:
— Экспериментальная поддержка WebGPU.
— Полная поддержка ICU. Все API JavaScript, зависящие от ICU, теперь должны соответствовать API браузера.
— Маппинг импортов теперь стабилен.
— Добавлена возможность для пользователей указывать токены аутентификации для каждого домена, которые используются при загрузке модулей в первый раз.
— API безопасности стабилен. В Deno 1.8 теперь есть стабильный API для вызова query, request и revoke для изменения настроек доступа. Эти API содержатся в объекте Deno.permissions.
— Стабилизированы API Deno.link и Deno.symlink.
— deno fmt теперь может форматировать файлы .json и .jsonc.
Deno 1.8 поставляется с последней стабильной версией TypeScript.
С полным текстом изменений можно ознакомиться по ссылке:
https://deno.land/posts/v1.8#icu-support
#deno #javascript #typescript
Microsoft выпустила low-code язык программирования Power Fx
Корпорация Microsoft разработала новый язык формул для Power Platform — платформы для создания сложных бизнес-решений и анализа данных. Он получил название Power Fx и основан на Microsoft Excel — имеет тот же синтаксис и функции. Формулы декларативны и мгновенно вызываются как и в электронных таблицах. Сама Power Platform больше ориентирована на хорошо знакомых с Excel бизнес-пользователей и аналитиков данных, чем на профессиональных разработчиков.
Power Fx имеет открытый исходный код, который позже будет доступен на GitHub. В новом языке есть возможность напрямую редактировать приложения в текстовых редакторах, например в Visual Code, и использовать систему управления версиями.
При создании Power Platform помимо Excel команда также черпала вдохновение из таких языков и систем как Pascal, Mathematica и Miranda. В течение двух лет Microsoft планирует расширить возможности Power Fx и сделать его единым согласованным языком для всей Power Platform.
Подробнее о Power Fx можно прочитать по ссылке:
https://powerapps.microsoft.com/en-us/blog/introducing-microsoft-power-fx-the-low-code-programming-language-for-everyone/
#lowcode #microsoft #powerfx #powerplatform #excel
Корпорация Microsoft разработала новый язык формул для Power Platform — платформы для создания сложных бизнес-решений и анализа данных. Он получил название Power Fx и основан на Microsoft Excel — имеет тот же синтаксис и функции. Формулы декларативны и мгновенно вызываются как и в электронных таблицах. Сама Power Platform больше ориентирована на хорошо знакомых с Excel бизнес-пользователей и аналитиков данных, чем на профессиональных разработчиков.
Power Fx имеет открытый исходный код, который позже будет доступен на GitHub. В новом языке есть возможность напрямую редактировать приложения в текстовых редакторах, например в Visual Code, и использовать систему управления версиями.
При создании Power Platform помимо Excel команда также черпала вдохновение из таких языков и систем как Pascal, Mathematica и Miranda. В течение двух лет Microsoft планирует расширить возможности Power Fx и сделать его единым согласованным языком для всей Power Platform.
Подробнее о Power Fx можно прочитать по ссылке:
https://powerapps.microsoft.com/en-us/blog/introducing-microsoft-power-fx-the-low-code-programming-language-for-everyone/
#lowcode #microsoft #powerfx #powerplatform #excel
Продолжаем знакомить вас с членами жюри нашего конкурса pet-проектов
Вячеслав Белый — Mobile Team Lead, co-founder iOS Ukraine, основатель первой в Украине онлайн-конференции по iOS-разработке, ведущий обучающего YouTube-канала, консультант и аудитор мобильных команд. Оценивает проекты на iOS.
Вячеслав Белый по его собственным словам, в свое время полюбил мобильную разработку за возможность создания полноценного продукта. Он сам ведет сразу несколько pet-проектов и понимает разработчиков, которые горят желанием поделиться им с миром. Самую трудную и ответственную задачу он видит в том, чтобы не столько “оценить”, сколько дать участникам конкурса конструктивное мнение, которое поможет посмотреть на проект со стороны и открыть в нем что-то новое.
“Большую часть времени я занимаюсь развитием всего вокруг себя. Развиваю iOS-сообщество, в компании занимаюсь развитием мобильного направления, параллельно пописывая на Swift. Стартанул проект MeowTalk с нуля и до 2,5 млн пользователей, в родном Харькове знакомлю студентов с iOS-направлением. В остальное время являюсь ментором, готовлю людей всех уровней к собеседованиям, составляю планы развития, провожу аудиты iOS-команд. Это позволяет иметь четкое понимание и представление, что происходит в отрасли и в индустрии в целом. А это, в свою очередь, мотивирует заниматься всеми этими активностями”, — рассказывает Вячеслав Белый.
Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today
#конкурс #жюри
Вячеслав Белый — Mobile Team Lead, co-founder iOS Ukraine, основатель первой в Украине онлайн-конференции по iOS-разработке, ведущий обучающего YouTube-канала, консультант и аудитор мобильных команд. Оценивает проекты на iOS.
Вячеслав Белый по его собственным словам, в свое время полюбил мобильную разработку за возможность создания полноценного продукта. Он сам ведет сразу несколько pet-проектов и понимает разработчиков, которые горят желанием поделиться им с миром. Самую трудную и ответственную задачу он видит в том, чтобы не столько “оценить”, сколько дать участникам конкурса конструктивное мнение, которое поможет посмотреть на проект со стороны и открыть в нем что-то новое.
“Большую часть времени я занимаюсь развитием всего вокруг себя. Развиваю iOS-сообщество, в компании занимаюсь развитием мобильного направления, параллельно пописывая на Swift. Стартанул проект MeowTalk с нуля и до 2,5 млн пользователей, в родном Харькове знакомлю студентов с iOS-направлением. В остальное время являюсь ментором, готовлю людей всех уровней к собеседованиям, составляю планы развития, провожу аудиты iOS-команд. Это позволяет иметь четкое понимание и представление, что происходит в отрасли и в индустрии в целом. А это, в свою очередь, мотивирует заниматься всеми этими активностями”, — рассказывает Вячеслав Белый.
Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today
#конкурс #жюри
Советы по прокачке навыков code review
Опытный фронтенд-разработчик GitLab и участник Vue.js Core Team Наталья Теплухина опубликовала в блоге на dev.to пост, в котором дала читателям шесть советов как улучшить навыки code review. Наталья признается, что когда сама только начинала проверять код, допускала немало ошибок, а приведенные приемы помогли ей улучшить навыки.
Автор предлагает тестировать изменения локально, отмечая важность улучшения архитектуры кода, призывает помечать какие комментарии блокирующие, а какие нет, дает советы по минимизации количества проверок, объясняет важность поощрения грамотного кода. Ее советы нацелены даже не столько на то, чтобы улучшить качество кода, сколько на то, чтобы повысить взаимопонимание в команде и избежать лишних конфликтов.
С полным списком советов можно ознакомиться по ссылке:
https://dev.to/n_tepluhina/six-tips-to-improve-your-code-review-skills-95a
#codereview #tips
Опытный фронтенд-разработчик GitLab и участник Vue.js Core Team Наталья Теплухина опубликовала в блоге на dev.to пост, в котором дала читателям шесть советов как улучшить навыки code review. Наталья признается, что когда сама только начинала проверять код, допускала немало ошибок, а приведенные приемы помогли ей улучшить навыки.
Автор предлагает тестировать изменения локально, отмечая важность улучшения архитектуры кода, призывает помечать какие комментарии блокирующие, а какие нет, дает советы по минимизации количества проверок, объясняет важность поощрения грамотного кода. Ее советы нацелены даже не столько на то, чтобы улучшить качество кода, сколько на то, чтобы повысить взаимопонимание в команде и избежать лишних конфликтов.
С полным списком советов можно ознакомиться по ссылке:
https://dev.to/n_tepluhina/six-tips-to-improve-your-code-review-skills-95a
#codereview #tips
В Google рассказали, чем заменят поддержку сторонних cookies
В Google заявили, что после прекращения поддержки сторонних файлов cookie в браузере Chrome (о таком намерении компания предупредила в 2020 году) не будет создавать альтернативные персональные идентификаторы для отслеживания людей, просматривающих веб-страницы.
Google при этом дает понять, что не пытается избавиться от таргетированной рекламы в целом, а хочет заменить старые, более агрессивные методы собственными разработками, которые компания называет «песочницей конфиденциальности». Часть работы Privacy Sandbox заключается в том, чтобы скрыть человека внутри группы «когорт», на которую и будет таргетироваться реклама.
Новая технология под названием Federated Learning of Cohorts (FLoC) позволяет таргетировать рекламу на большие группы пользователей на основе общих интересов. По заверению Google, она может обеспечить не только релевантность рекламы, но и конфиденциальность данных пользователей. Как сообщают в Google, тестирование FLoC с рекламодателями начнется во втором квартале 2021 года.
Полный текст заявления Google можно прочитать по ссылке:
https://blog.google/products/ads-commerce/a-more-privacy-first-web/
#google #cookies #приватность #веб #chrome
В Google заявили, что после прекращения поддержки сторонних файлов cookie в браузере Chrome (о таком намерении компания предупредила в 2020 году) не будет создавать альтернативные персональные идентификаторы для отслеживания людей, просматривающих веб-страницы.
Google при этом дает понять, что не пытается избавиться от таргетированной рекламы в целом, а хочет заменить старые, более агрессивные методы собственными разработками, которые компания называет «песочницей конфиденциальности». Часть работы Privacy Sandbox заключается в том, чтобы скрыть человека внутри группы «когорт», на которую и будет таргетироваться реклама.
Новая технология под названием Federated Learning of Cohorts (FLoC) позволяет таргетировать рекламу на большие группы пользователей на основе общих интересов. По заверению Google, она может обеспечить не только релевантность рекламы, но и конфиденциальность данных пользователей. Как сообщают в Google, тестирование FLoC с рекламодателями начнется во втором квартале 2021 года.
Полный текст заявления Google можно прочитать по ссылке:
https://blog.google/products/ads-commerce/a-more-privacy-first-web/
#google #cookies #приватность #веб #chrome
Вышел Flutter 2 с поддержкой веб-браузеров
3 марта Google выпустил Flutter 2. В новой версии добавлена поддержка для создания веб-приложений, ориентированных на такие браузеры как Chrome, Firefox, Safari или Edge — возможность, которая в течение последнего года была в состоянии бета-версии.
Вместе с Flutter вышла минорная версия Dart — Dart 2.12. По словам разработчиков Google, именно благодаря этому языку во Flutter стал возможен простой переход к поддержке веб-браузеров, десктопа и встроенных систем. В новую версию Flutter также входит стабильная реализация FFI.
Для создания веб-приложений новая версия Flutter использует три сценария:
— прогрессивные веб-приложения (PWA), сочетающие в себе возможности обычных веб-приложений и десктопных;
— одностраничные приложения (SPA), которые загружаются один раз и передают данные в интернет-сервисы и из них;
— перенос существующих мобильных приложений Flutter в веб, позволяющий использовать общий код для обоих интерфейсов.
Также в Google рассказали о выходе бета-версии Google Mobile Ads для Flutter. Это новый SDK, который работает с AdMo и AdManager и предлагает различные форматы рекламы, включая баннерную, межстраничную, нативную и видеобъявления.
По оценке Google, в магазине приложений Play Store уже доступно более 150 тыс. приложений на Flutter, включая WeChat, Grab, Sonos и Realtor, каждое из таких приложений получит бесплатное обновление до Flutter 2.
С полным списком изменений и обновлений можно ознакомиться по ссылке:
https://developers.googleblog.com/2021/03/announcing-flutter-2.html
#google #flutter #dart
3 марта Google выпустил Flutter 2. В новой версии добавлена поддержка для создания веб-приложений, ориентированных на такие браузеры как Chrome, Firefox, Safari или Edge — возможность, которая в течение последнего года была в состоянии бета-версии.
Вместе с Flutter вышла минорная версия Dart — Dart 2.12. По словам разработчиков Google, именно благодаря этому языку во Flutter стал возможен простой переход к поддержке веб-браузеров, десктопа и встроенных систем. В новую версию Flutter также входит стабильная реализация FFI.
Для создания веб-приложений новая версия Flutter использует три сценария:
— прогрессивные веб-приложения (PWA), сочетающие в себе возможности обычных веб-приложений и десктопных;
— одностраничные приложения (SPA), которые загружаются один раз и передают данные в интернет-сервисы и из них;
— перенос существующих мобильных приложений Flutter в веб, позволяющий использовать общий код для обоих интерфейсов.
Также в Google рассказали о выходе бета-версии Google Mobile Ads для Flutter. Это новый SDK, который работает с AdMo и AdManager и предлагает различные форматы рекламы, включая баннерную, межстраничную, нативную и видеобъявления.
По оценке Google, в магазине приложений Play Store уже доступно более 150 тыс. приложений на Flutter, включая WeChat, Grab, Sonos и Realtor, каждое из таких приложений получит бесплатное обновление до Flutter 2.
С полным списком изменений и обновлений можно ознакомиться по ссылке:
https://developers.googleblog.com/2021/03/announcing-flutter-2.html
#google #flutter #dart
База данных, которой не нужен сервер
Группа разработчиков во главе с Томасом Лохматтером представила неожиданную инициативу — опенсорсную базу данных CondensationDB, которая будет работать исключительно на стороне клиента.
По задумке создателей, БД читает и записывает данные сразу на устройстве пользователя в виде документа с атрибутами. При редактировании этот документ динамически разбивается на неизменяемые объекты или части документа, содержащие историю изменений. Затем зашифрованные объекты циркулируют по сети. Контент остается зашифрованным до тех пор, пока не будет получен на устройстве конечного пользователя. Все данные синхронизируется автоматически без дополнительных усилий со стороны разработчиков приложений.
Это приводит к новому типу системы, в которой пользователи могут сотрудничать, сохраняя при этом право собственности на свои данные. Архитектура Condensation вдохновлена технологией блокчейн, электронной почтой и системой контроля версий Git. Авторы обещают достойную масштабируемость и синхронизацию.
Все еще остаются вопросы, о методе шифровании и безопасности хранении ключа на стороне клиента. На эти и другие вопросы мы надеемся увидеть ответы в документации, которая все еще далека от завершения.
На данный момент создана только Android-версия на Java. В планах веб- и iOS-версии. Среди спонсоров проекта указан швейцарское инновационное агентство Innosuisse. Цель разработчиков создать сообщество, которое будет вносить свой вклад в развитие Condensation и обучать других. В частности, энтузиасты уже занимаются портированием проекта на TypeScript и JavaScript.
Ссылка на сайт проекта: https://condensationdb.com/
#opensource #db #database #condensationdb
Группа разработчиков во главе с Томасом Лохматтером представила неожиданную инициативу — опенсорсную базу данных CondensationDB, которая будет работать исключительно на стороне клиента.
По задумке создателей, БД читает и записывает данные сразу на устройстве пользователя в виде документа с атрибутами. При редактировании этот документ динамически разбивается на неизменяемые объекты или части документа, содержащие историю изменений. Затем зашифрованные объекты циркулируют по сети. Контент остается зашифрованным до тех пор, пока не будет получен на устройстве конечного пользователя. Все данные синхронизируется автоматически без дополнительных усилий со стороны разработчиков приложений.
Это приводит к новому типу системы, в которой пользователи могут сотрудничать, сохраняя при этом право собственности на свои данные. Архитектура Condensation вдохновлена технологией блокчейн, электронной почтой и системой контроля версий Git. Авторы обещают достойную масштабируемость и синхронизацию.
Все еще остаются вопросы, о методе шифровании и безопасности хранении ключа на стороне клиента. На эти и другие вопросы мы надеемся увидеть ответы в документации, которая все еще далека от завершения.
На данный момент создана только Android-версия на Java. В планах веб- и iOS-версии. Среди спонсоров проекта указан швейцарское инновационное агентство Innosuisse. Цель разработчиков создать сообщество, которое будет вносить свой вклад в развитие Condensation и обучать других. В частности, энтузиасты уже занимаются портированием проекта на TypeScript и JavaScript.
Ссылка на сайт проекта: https://condensationdb.com/
#opensource #db #database #condensationdb
Devbook: поисковая система для разработчиков
Продолжаем рассказывать об интересных, но малоизвестных проектах. Группа разработчиков из Чехии выпустила десктопное приложение, которое позволяет выполнять поиск в Stack Overflow, искать и читать документацию, а также общедоступный код на GitHub из одного места без рекламы, контент-маркетинга и SEO. Создатели назвали приложение Devbook. Оно выполнено в Electron на React.js с бэкендом на Node.js и управляется с помощью горячих клавиш.
В качестве примера авторы сравнили свое детище с приложением Spotlight на macOS. При нажатии на глобальный ярлык Devbook появляется как оверлей, что сокращает количество переключений контекста при поиске информации.
Создатели приложения работают над системой расширений и призывают аудиторию делиться идеями по этому поводу. По их словам, любой пользователь сможет написать на JavaScript расширение для поиска информации на любых других ресурсах.
Со страницей разработчиков на GitHub можно ознакомиться по ссылке:
https://github.com/DevbookHQ/
#reactjs #nodejs #github #stackoverflow #electronjs #devbook #javascript #desktop
Продолжаем рассказывать об интересных, но малоизвестных проектах. Группа разработчиков из Чехии выпустила десктопное приложение, которое позволяет выполнять поиск в Stack Overflow, искать и читать документацию, а также общедоступный код на GitHub из одного места без рекламы, контент-маркетинга и SEO. Создатели назвали приложение Devbook. Оно выполнено в Electron на React.js с бэкендом на Node.js и управляется с помощью горячих клавиш.
В качестве примера авторы сравнили свое детище с приложением Spotlight на macOS. При нажатии на глобальный ярлык Devbook появляется как оверлей, что сокращает количество переключений контекста при поиске информации.
Создатели приложения работают над системой расширений и призывают аудиторию делиться идеями по этому поводу. По их словам, любой пользователь сможет написать на JavaScript расширение для поиска информации на любых других ресурсах.
Со страницей разработчиков на GitHub можно ознакомиться по ссылке:
https://github.com/DevbookHQ/
#reactjs #nodejs #github #stackoverflow #electronjs #devbook #javascript #desktop
Новый день — новый член жюри нашего конкурса pet-проектов!
Максим Федоров — Senior PHP Developer в IT-компании Yellow Stone. Оценивает проекты по Backend PHP и веб-разработке
Cвой путь в IT Максим начинал как разработчик программного обеспечения для ПК в далеком 2008 году. Затем перешел в веб-разработку, так как считает эту отрасль интересной в техническом плане и дающей множество возможностей. Последние шесть лет работает над разными проектами в качестве backend-разработчика, имеет опыт управления командами до десяти человек.
Максим считает своей главной целью как члена жюри дать участникам качественный фидбек по таким параметрам, как функциональность, оправданность применения технических решений, очевидность программного дизайна, чистота кода. Он готов помочь выявить слабые места в технической реализации, которые могут превратиться в проблемы в случае коммерческого запуска проекта.
“Мне нравятся сложные нестандартные проекты, интересуют новые технологии, дизайн кода, архитектура программного обеспечения, highload-приложения, исследования. Я ярый фан чистоты кода, его очевидного дизайна, качественной программной архитектуры”, — рассказал о себе Максим Федоров.
Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today
#конкурс #жюри
Максим Федоров — Senior PHP Developer в IT-компании Yellow Stone. Оценивает проекты по Backend PHP и веб-разработке
Cвой путь в IT Максим начинал как разработчик программного обеспечения для ПК в далеком 2008 году. Затем перешел в веб-разработку, так как считает эту отрасль интересной в техническом плане и дающей множество возможностей. Последние шесть лет работает над разными проектами в качестве backend-разработчика, имеет опыт управления командами до десяти человек.
Максим считает своей главной целью как члена жюри дать участникам качественный фидбек по таким параметрам, как функциональность, оправданность применения технических решений, очевидность программного дизайна, чистота кода. Он готов помочь выявить слабые места в технической реализации, которые могут превратиться в проблемы в случае коммерческого запуска проекта.
“Мне нравятся сложные нестандартные проекты, интересуют новые технологии, дизайн кода, архитектура программного обеспечения, highload-приложения, исследования. Я ярый фан чистоты кода, его очевидного дизайна, качественной программной архитектуры”, — рассказал о себе Максим Федоров.
Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today
#конкурс #жюри
Разработчики ответили, как используют Python
Python Software Foundation и JetBrains опубликовали результаты четвертого ежегодного опроса разработчиков Python. В 2020 году в голосовании приняли участие более 28 тыс. разработчиков и энтузиастов этого языка из почти 200 стран.
Задаваемые вопросы касались, например, того, является ли для участника опроса Python основным языком или второстепенным и с каким языком его комбинируют. 85% опрошенных ответили, что используют Python в качестве основного языка программирования, а самым сочетаемым с ним оказался JavaScript.
Исследователи также узнали, для чего программисты используют Python и в каких типах разработки участвуют. 54% опрошенных используют Python для работы и личных целей, 26% — для личных целей, учебы и сторонних проектов, а 19% — только для работы. В вопросе о типах разработки, в которых участвуют опрашиваемые, в тройке оказались веб, анализ данных и машинное обучение.
Согласно исследованию, если в 2017 году версией Python 3 пользовались 75% опрошенных, то в 2020-м их стало уже 94%, остальные 6% до сих пор предпочитают или вынуждены работать на Python 2. Чем опытнее разработчики Python, тем выше вероятность того, что они будут использовать Linux и macOS в качестве среды разработки, и тем менее вероятно, что они выберут Windows.
Также в голосовании выбрали самые популярные фреймворки. Ими стали pytest, NumPy и Flask среди фреймворков для модульного тестирования, Data Science и веб-разработки соответственно.
Полная версия результатов голосования доступна по ссылке:
https://www.jetbrains.com/lp/python-developers-survey-2020/
#python #jetbrains #pytest #numpy #flask
Python Software Foundation и JetBrains опубликовали результаты четвертого ежегодного опроса разработчиков Python. В 2020 году в голосовании приняли участие более 28 тыс. разработчиков и энтузиастов этого языка из почти 200 стран.
Задаваемые вопросы касались, например, того, является ли для участника опроса Python основным языком или второстепенным и с каким языком его комбинируют. 85% опрошенных ответили, что используют Python в качестве основного языка программирования, а самым сочетаемым с ним оказался JavaScript.
Исследователи также узнали, для чего программисты используют Python и в каких типах разработки участвуют. 54% опрошенных используют Python для работы и личных целей, 26% — для личных целей, учебы и сторонних проектов, а 19% — только для работы. В вопросе о типах разработки, в которых участвуют опрашиваемые, в тройке оказались веб, анализ данных и машинное обучение.
Согласно исследованию, если в 2017 году версией Python 3 пользовались 75% опрошенных, то в 2020-м их стало уже 94%, остальные 6% до сих пор предпочитают или вынуждены работать на Python 2. Чем опытнее разработчики Python, тем выше вероятность того, что они будут использовать Linux и macOS в качестве среды разработки, и тем менее вероятно, что они выберут Windows.
Также в голосовании выбрали самые популярные фреймворки. Ими стали pytest, NumPy и Flask среди фреймворков для модульного тестирования, Data Science и веб-разработки соответственно.
Полная версия результатов голосования доступна по ссылке:
https://www.jetbrains.com/lp/python-developers-survey-2020/
#python #jetbrains #pytest #numpy #flask
Специалист из MIT рассказал, почему FLoC это плохо
Магистр инженерных наук MIT и автор диссертации о машинном обучении с сохранением конфиденциальности Беннет Сайферс высказался о новой технологии Google для таргетинга рекламы в интернете под названием FLoC. По его словам, это один из самых амбициозных и потенциально самых опасных проектов Google. Специалист призывает компанию отказаться от него, приводя ряд аргументов.
Браузер с включенным FLoC будет собирать данные о привычках просмотра пользователя, а затем использовать эту информацию, чтобы отнести человека к определенной «когорте» или группе. Беннет Сайферс видит проблему в планируемом сборе так называемых отпечатков браузера (browser fingerprinting) для создания его стабильного идентификатора, а также в том, что технология будет делиться новыми личными данными с трекерами, которые уже могут идентифицировать пользователя.
Эксперт считает, что FLoC, по сути, станет сводкой недавней активности пользователя в интернете, получив которую, рекламодатели смогут овладеть всей необходимой информацией. При этом технология, по его словам, представляет одно и то же поведенческое резюме пользователя всем, с кем взаимодействует.
Автор заключает, что новая технология Google основана на ложной предпосылке, что мы должны выбирать между «старым отслеживанием» и «новым отслеживанием», но не решает проблемы.
Обсудить инициативу Google можно в нашем чате:
https://t.me/joinchat/SmcgpRwg_VuoW2L3
А полный текст статьи можно прочитать по ссылке:
https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea
#google #privacy #floc
Магистр инженерных наук MIT и автор диссертации о машинном обучении с сохранением конфиденциальности Беннет Сайферс высказался о новой технологии Google для таргетинга рекламы в интернете под названием FLoC. По его словам, это один из самых амбициозных и потенциально самых опасных проектов Google. Специалист призывает компанию отказаться от него, приводя ряд аргументов.
Браузер с включенным FLoC будет собирать данные о привычках просмотра пользователя, а затем использовать эту информацию, чтобы отнести человека к определенной «когорте» или группе. Беннет Сайферс видит проблему в планируемом сборе так называемых отпечатков браузера (browser fingerprinting) для создания его стабильного идентификатора, а также в том, что технология будет делиться новыми личными данными с трекерами, которые уже могут идентифицировать пользователя.
Эксперт считает, что FLoC, по сути, станет сводкой недавней активности пользователя в интернете, получив которую, рекламодатели смогут овладеть всей необходимой информацией. При этом технология, по его словам, представляет одно и то же поведенческое резюме пользователя всем, с кем взаимодействует.
Автор заключает, что новая технология Google основана на ложной предпосылке, что мы должны выбирать между «старым отслеживанием» и «новым отслеживанием», но не решает проблемы.
Обсудить инициативу Google можно в нашем чате:
https://t.me/joinchat/SmcgpRwg_VuoW2L3
А полный текст статьи можно прочитать по ссылке:
https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea
#google #privacy #floc
Вышел VS Code 1.54
Microsoft выпустила новую версию Visual Studio Code. Главной фичей сборки 1.54 стала возможность для пользователей Mac с чипами M1 использовать VS Code без эмуляции Rosetta. Также они смогут заметить улучшенную производительность и более длительное время автономной работы при запуске VS Code. Среди других изменений в новой версии можно отметить:
— улучшенную навигацию по словам в Windows-версии, и роли для представлений и кнопок;
— локальные процессы терминала теперь восстанавливаются при перезагрузке окна;
— в Breakpoints view добавлена кнопка “Х” для упрощения удаления брейкпоинтов;
—в VS Code теперь интегрирована поддержка TypeScript 4.2.2;
— появилась возможность персонализировать изображения значков VS Code с помощью тем значков продуктов;
— записные книжки теперь автоматически перезагружаются при изменении файла на диске, и когда в них нет несохраненных изменений;
— порты стали отображаться в виде таблицы.
Также Microsoft продолжает работать над расширением GitHub Pull Request and Issues и расширением для удаленной разработки.
С полным списком изменений можно ознакомиться по ссылке:
https://code.visualstudio.com/updates/v1_54#_automatically-reload-notebooks
#vscode #microsoft #mac #typescript
Microsoft выпустила новую версию Visual Studio Code. Главной фичей сборки 1.54 стала возможность для пользователей Mac с чипами M1 использовать VS Code без эмуляции Rosetta. Также они смогут заметить улучшенную производительность и более длительное время автономной работы при запуске VS Code. Среди других изменений в новой версии можно отметить:
— улучшенную навигацию по словам в Windows-версии, и роли для представлений и кнопок;
— локальные процессы терминала теперь восстанавливаются при перезагрузке окна;
— в Breakpoints view добавлена кнопка “Х” для упрощения удаления брейкпоинтов;
—в VS Code теперь интегрирована поддержка TypeScript 4.2.2;
— появилась возможность персонализировать изображения значков VS Code с помощью тем значков продуктов;
— записные книжки теперь автоматически перезагружаются при изменении файла на диске, и когда в них нет несохраненных изменений;
— порты стали отображаться в виде таблицы.
Также Microsoft продолжает работать над расширением GitHub Pull Request and Issues и расширением для удаленной разработки.
С полным списком изменений можно ознакомиться по ссылке:
https://code.visualstudio.com/updates/v1_54#_automatically-reload-notebooks
#vscode #microsoft #mac #typescript
Обновление состояния компонента с помощью useState и useEffect
Сегодня разберем проблемы с обновлением состояния с помощью хуков на React. Иногда возникают сложности с пониманием как правильно обновлять состояние компонента с помощью хуков useState и useEffect. Если попробовать изменить состояния с помощью useState напрямую, никаких изменений не произойдет. Дело в том, что, подобно setState в классовых компонентах, обновление состояния с помощью useState также является асинхронным и не будет отражено немедленно.
Кроме того, основная проблема здесь не только в асинхронном характере, но и в том, что значения состояния используются функциями на основе их текущего значения, а обновления состояния будут отражаться в следующем повторном рендеринге, при котором существующие значения не будут затронуты, а будут созданы новые. Внутри хуков состояние все еще находится в начальном значении, и если происходит повторный рендеринг, состояния обновляются в зависимости от того, вызвана функция снова или нет.
Если вы хотите выполнить какие-либо действия для обновления состояния, вам нужно использовать хук useEffect, как и при использовании componentDidUpdate. Важно помнить, что внутри хука useEffect, состояние все еще не поменяется, а при вызове вернет прежнее значение.
Полный тред со всеми возможными решениями можно найти по ссылке: https://stackoverflow.com/questions/54069253/usestate-set-method-not-reflecting-change-immediately
#javascript #reactjs #usestate #useeffect
Сегодня разберем проблемы с обновлением состояния с помощью хуков на React. Иногда возникают сложности с пониманием как правильно обновлять состояние компонента с помощью хуков useState и useEffect. Если попробовать изменить состояния с помощью useState напрямую, никаких изменений не произойдет. Дело в том, что, подобно setState в классовых компонентах, обновление состояния с помощью useState также является асинхронным и не будет отражено немедленно.
Кроме того, основная проблема здесь не только в асинхронном характере, но и в том, что значения состояния используются функциями на основе их текущего значения, а обновления состояния будут отражаться в следующем повторном рендеринге, при котором существующие значения не будут затронуты, а будут созданы новые. Внутри хуков состояние все еще находится в начальном значении, и если происходит повторный рендеринг, состояния обновляются в зависимости от того, вызвана функция снова или нет.
Если вы хотите выполнить какие-либо действия для обновления состояния, вам нужно использовать хук useEffect, как и при использовании componentDidUpdate. Важно помнить, что внутри хука useEffect, состояние все еще не поменяется, а при вызове вернет прежнее значение.
Полный тред со всеми возможными решениями можно найти по ссылке: https://stackoverflow.com/questions/54069253/usestate-set-method-not-reflecting-change-immediately
#javascript #reactjs #usestate #useeffect
Разработчик запустил Minecraft на “зеркалке”
На YouTube вышло видео, на котором пользователь под псевдонимом Turtius запускает сервер Minecraft на цифровой зеркальной фотокамере Canon EOS SL2 (200D). Видео уже посмотрели более 16 тыс. человек. На нем Turtius показывает, что на фотоаппарате загружается сервер Minecraft, а сам клиент установлен на компьютере Linux Mint 20.1.
Автор канала рассказал, что проект начался как средство обучения реинжинирингу сетевого процессора на Canon EOS SL. После того как Turtius смог реконструировать сетевой модуль, он установил сервер Minecraft «avrcraft», оптимизированный для работы на 8-битных устройствах, с помощью разветвленной версии популярного программного дополнения Canon Magic Lantern. В комментариях один из пользователей сделал вызов автору ролика, предложив ему в следующий раз запустить Minecraft на “умном” холодильнике.
Если хотите повторить эксперимент, исходный код Turtius есть на GitHub, но для этого вам также понадобится Canon EOS SL2 и готовность расстаться с ним. По словам автора, он не несет ответственности, если камера в неумелых руках превратится в итоге в пресс-папье.
Minecraft — не единственного игровое ПО, которое можно запустить на цифровой камере. Несколько лет назад энтузиаст запустил на фотоаппарате Kodak 1998 года классическую версию Doom и смог управлять игрой через клавиши навигации меню.
Видео доступно по ссылке:
https://www.youtube.com/watch?v=lbq3LO0KYrk&feature=emb_logo
#minecraft #canon #github #youtube
На YouTube вышло видео, на котором пользователь под псевдонимом Turtius запускает сервер Minecraft на цифровой зеркальной фотокамере Canon EOS SL2 (200D). Видео уже посмотрели более 16 тыс. человек. На нем Turtius показывает, что на фотоаппарате загружается сервер Minecraft, а сам клиент установлен на компьютере Linux Mint 20.1.
Автор канала рассказал, что проект начался как средство обучения реинжинирингу сетевого процессора на Canon EOS SL. После того как Turtius смог реконструировать сетевой модуль, он установил сервер Minecraft «avrcraft», оптимизированный для работы на 8-битных устройствах, с помощью разветвленной версии популярного программного дополнения Canon Magic Lantern. В комментариях один из пользователей сделал вызов автору ролика, предложив ему в следующий раз запустить Minecraft на “умном” холодильнике.
Если хотите повторить эксперимент, исходный код Turtius есть на GitHub, но для этого вам также понадобится Canon EOS SL2 и готовность расстаться с ним. По словам автора, он не несет ответственности, если камера в неумелых руках превратится в итоге в пресс-папье.
Minecraft — не единственного игровое ПО, которое можно запустить на цифровой камере. Несколько лет назад энтузиаст запустил на фотоаппарате Kodak 1998 года классическую версию Doom и смог управлять игрой через клавиши навигации меню.
Видео доступно по ссылке:
https://www.youtube.com/watch?v=lbq3LO0KYrk&feature=emb_logo
#minecraft #canon #github #youtube
Встречайте следующего члена жюри нашего конкурса pet-проектов!
Олег Лавренко — Head of Engineering Department в компании Genesis на проекте AmoMedia, вел курс по DevOps для системных администраторов. Оценивает Backend-проекты на Python.
У Олега больше восьми лет опыта в IT: от инжиниринговых позиций до руководителя департамента, где он занимается оптимизацией процессов разработки, строит инженерную культуру, проектирует архитектуру приложений и сервисов AmoMedia.
“Для меня IT — это не просто сфера деятельности, это увлечение с детства. Я люблю не только изучать технологии, но и делиться знаниями с другими. Благодаря большой экспертизе в разработке и в бизнесе я хочу помогать талантливым специалистам реализовывать и презентовать свои идеи. Pet-проекты — это отличная возможность изучить технологии, с которыми не работаешь в компании, проверить бизнес-идею и научится смотреть на IT не только со стороны разработки. Ведь за каждым продуктом стоит не просто код и идея. Продукт — это прежде всего команда, которая его развивает”, — рассказал он.
Заявки на участие в конкурсе можно подать до 14 марта на странице:
https://specials.highload.today
#конкурс #жюри
Олег Лавренко — Head of Engineering Department в компании Genesis на проекте AmoMedia, вел курс по DevOps для системных администраторов. Оценивает Backend-проекты на Python.
У Олега больше восьми лет опыта в IT: от инжиниринговых позиций до руководителя департамента, где он занимается оптимизацией процессов разработки, строит инженерную культуру, проектирует архитектуру приложений и сервисов AmoMedia.
“Для меня IT — это не просто сфера деятельности, это увлечение с детства. Я люблю не только изучать технологии, но и делиться знаниями с другими. Благодаря большой экспертизе в разработке и в бизнесе я хочу помогать талантливым специалистам реализовывать и презентовать свои идеи. Pet-проекты — это отличная возможность изучить технологии, с которыми не работаешь в компании, проверить бизнес-идею и научится смотреть на IT не только со стороны разработки. Ведь за каждым продуктом стоит не просто код и идея. Продукт — это прежде всего команда, которая его развивает”, — рассказал он.
Заявки на участие в конкурсе можно подать до 14 марта на странице:
https://specials.highload.today
#конкурс #жюри