![](https://webcf.waybackmachine.org/web/20220317021145im_/https://habrastorage.org/webt/2c/h4/-3/2ch4-35c8o23gtcvizc6kemnteg.png)
Пришел, решил, победил. История успеха финалистов Цифрового прорыва 2021
![](https://webcf.waybackmachine.org/web/20220317021145im_/https://habrastorage.org/webt/2c/h4/-3/2ch4-35c8o23gtcvizc6kemnteg.png)
Привет, друзья!
В этой статье я хочу поделиться с вами результатами небольшого эксперимента, связанного с ускорением загрузки изображений с помощью Imgproxy, Cache API (далее — кеш) и Service Worker API (далее — СВ).
Мы с вами разработаем простое приложение на React, в котором используется несколько изображений, и добьемся того, что загружаемые изображения будут более чем в 10 раз легче (меньше по размеру) оригиналов (imgproxy
), а также практически мгновенной загрузки (доставки) изображений (СВ и кеш).
Обратите внимание: в части, касающейся imgproxy
, особых препятствий на пути использования рассматриваемого в статье подхода к загрузке изображений в продакшне нет, но в части, касающейся СВ, следует проявлять крайнюю осторожность, поскольку данная технология является экспериментальной — это означает, что поведение СВ во многом определяется конкретной реализацией (браузером), что в ряде случаев делает его довольно непредсказуемым. Возможно, для кеширования изображений лучше предпочесть старые-добрые HTTP-заголовки
Cache-Control и Etag. Но эксперимент на то и эксперимент, чтобы, в том числе, искать новые ответы на старые вопросы.
Для тех, кого интересует только результат эксперимента, вот репозиторий с исходным кодом проекта.
Остальных прошу под кат.
Основные возможности S7-коммуникации
Обмен данными LOGO! <-> LOGO!
Обмен данными LOGO! <-> SIMATIC S7 контроллерами
Возможность соединения и обмена данными с системами визуализации LOGO! <-> SIMATIC HMI.
Эти три варианта основываются на S7-коммуникациях, которые представляют из себя проприетарный протокол для связи систем автоматизации SIMATIC. По существу этот протокол вшит в операционную систему контроллеров и основное его преимущество в относительной простоте использования.
При установке и использовании Carbonio CE администраторы могут столкнуться с неожиданными проблемами, которые могут сказаться на корректной работе и удобстве использования почтового сервера, но при этом практически никак не зависят от разработчиков Carbonio. В данной статье мы собрали несколько советов о том, как решить большую часть подобных проблем. Также мы расскажем о том, как корректно установить и настроить новый сервис Carbonio Files, позволяющий пользователям хранить файлы на сервере Carbonio CE
Преобразование аудио в текст широко применяется, например для создания субтитров к видео, протоколов собраний и расшифровки интервью. С сервисом ML Kit процесс становится гораздо проще: он очень точно преобразует аудиозаписи в текст с корректной пунктуацией.
Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp.
Мы не будем использовать ни aiogram, ни любые другие библиотеки, а напишем бота с нуля, чтобы немного познакомиться с асинхронным программированием, корутинами и некоторыми примитивами синхронизации. Углубляться в устройство Телеграма не будем.
Статья предназначена для начинающих асинхронных программистов.
Аннотация
Табличные данные широко распространены в различных реальных приложениях. Хотя многие широко используемые нейронные компоненты (например, свертки) и расширяемые нейронные сети (например, ResNet) были разработаны сообществом машинного обучения, только немногие из них показали свою эффективность для табличных данных, и лишь немногие проекты были релевантно адаптированы к табличным структурам данных. В этой статье мы предлагаем новый и гибкий нейро-компонент для табличных данных, называемый абстрактным слоем (ABSTLAY), который обучаем явно группировать коррелирующие входные объекты и генерировать объекты более высокого уровня семантической абстракции (формализации). Кроме того, мы разрабатываем метод репараметризации структуры для сжатия слоя ABSTLAY, тем самым значительно снижая вычислительную сложность на контрольном слое. Специальный базовый блок строится с использованием ABSTLAY, и мы создаем семейство глубоких абстрактных сетей (DANET) для классификации табличных данных и регрессии путем группировки (таксономии) таких блоков. В DANET введен специальный кратчайший путь для извлечения информации из необработанных табличных объектов, способствующий взаимодействию объектов на разных уровнях. Всесторонние эксперименты с семью реальными табличными наборами данных показывают, что наши ABSTLAY и DANET эффективны для классификации и регрессии табличных данных, а их вычислительная сложность не превосходит сложности конкурентных методов. Кроме того, мы оцениваем прирост производительности DANET по мере его углубления, проверяя модифицируемость нашего метода. Наш код доступен по адресу https://github.com/WhatAShot/DANet .
Все привет!
Меня зовут Сергей и я практикующий психолог.
Так складывается, что ко мне обращаются и остаются в работе преимущественно клиенты интеллектуального склада и рода деятельности. Это люди, которые всю жизнь решали любые проблемы "через голову" и находили рациональные причины всего и вся, старались докопаться до истины (и окружающих людей).Такой подход неизбежно накладывает отпечаток на личность и способствует формированию особенностей, о которых и пойдет речь.
В данной статье я постараюсь обобщить опыт своей работы с такими интеллектуалами. Ключевые слова "обобщить" и "мой опыт". То есть, эти буквы не претендуют на истину в последней инстанции, а являются осмыслением моего опыта, в котором, возможно, вы увидите себя.
С ростом популярности операционных систем, растет также и необходимость в обеспечении безопасности системы. С каждым днём количество атак увеличивается, а каждое обновление несет в себе новые «дыры» в системе безопасности. Я Анастасия Худоярова, ведущий специалист по безопасной разработке в Awillix, расскажу о том, как развивалась система безопасности в Android раньше и как можно обойти некоторые ее механизмы сегодня.
В этой статье рассмотрим, как использовать Spring'овый RestTemplate
для работы с RESTful-сервисами, защищенными Basic Authentication.
Сегодня в рядах наших специалистов царит пессимизм, поэтому государство должно делать реальные, а не популистские шаги для развития экономики и ИТ-сектора в частности. К сожалению, первое, что приходит в голову чиновникам: уменьшить налоги и разбросать денег. А вокруг голоса: дайте нам денег, лучше нам дайте, и нам побольше… Опять, самые ушлые расхватают выделенные бюджеты, не додадут стране налогов, а ситуация останется на прежнем уровне.
Peace, Хабр!
Последние дни много разговоров, что криптовалюта — способ: a) сберечь свои рублевые сбережения от обесценивания, b) вывести из под риска национализации валютные сбережения.
И действительно (хорошая новость): на текущий момент ограничений по покупке и хранению криптовалют для резидентов РФ нет. Ну почти нет. По сравнению с фиатными биржами — нет.
Но (плохие новости):
Еще хорошая новость (последняя):
Хрустальный шар/магический кристалл Гарри Поттер еще не подвез, поэтому сценарий с обходом санкций через криптовалютные переводы и с противостоянием этому обходу — это потенциальное будущее.
Снова плохая новость (не последняя):
Если Вам кажется, что риски в этом потенциальном будущем для Вас, как для частного инвестора, высокие, то Вам не кажется.
И что с этим делать?
Правильно — разобраться что, где, как (и надо ли) хранить условиях санкций.
Одним из наибольших преимуществ использования Scala является его типобезопасность. Если подходить к выбору типов в нашем коде осознанно и с разумной степенью осторожности, то компилятор может помочь нам найти более правильное решение или же указать, где мы можем ошибаться.
Есть несколько подходов, посредством которых мы можем помочь системе типов и языку в целом дать нам еще больше уверенности в коде, который мы проектируем.
Проблема пакетной загрузки данных в HBase и способы решения
Статья посвящена проблеме быстрой загрузки большого объема данных в HBase, когда стандартные методы вставки в таблицу не дают должной производительности. Опытом в ее решении и возникших в процессе трудностях и хотелось бы поделиться в рамках данной статьи.
Концепция mapping
в Solidity аналогична HashMap
в Java или dict
в Python.
Нет ничего лучше, чем аналогия с реальным миром, чтобы понять, что такое mapping
в Solidity и как он себя ведет. Следующий пример был взят из поста на Reddit:
"Хеш-таблица(= mapping) похожа на гардероб. Вы сдаете свою куртку и получаете номерок. Всякий раз, когда вы возвращаете этот номерок, вы немедленно получаете свою куртку. В гардеробе может быть много курток, но вы все равно получите свою куртку обратно. В гардеробе происходит много волшебства, но вам все равно, потому что главное это то, что вы немедленно получите свою куртку обратно."
Другими словами, mapping
позволяет эффективно находить местоположение данных, соответствующее заданному ключу.
Для большинства стандартных контейнеров перебор элементов можно осуществлять просто с помощью цикла for с диапазоном прямо во время выполнения. Но что насчет кортежей (std::tuple)? В этом случае мы не можем использовать обычный цикл, так как он не «понимает» список аргументов кортежа во время компиляции. В этой статье я покажу вам несколько приемов, которые вы можете использовать для итерации по элементам кортежа.
Популярные мифы, советы по поиску работы, переезду и полезные ссылки для тех, кто сейчас ищет работу за рубежом или уже нашел и собирается переехать.
Начиная с 24 февраля российский бизнес подвергается отключению от зарубежного софта. Происходит это на фоне всем известных событий. Компании высказывают свою позицию, а бизнесу приходится быстро адаптироваться к новым реалиям.
Собрали инструкцию из конкретных шагов, как можно перейти из Slack'а в российские корп. мессенджеры.