Habr.com

Syndicate content Хабр
Updated: 3 min 23 sec ago

[Перевод] Первое знакомство с JavaScript-библиотекой Solid

Thu, 09/16/2021 - 18:00
Solid — это реактивная JavaScript-библиотека для создания пользовательских интерфейсов без использования виртуальной DOM. Она однократно компилирует шаблоны, превращая их в узлы реальной DOM, а благодаря тщательно спланированным механизмам обновления контента при изменении состояния приложения выполняется только тот код, который необходим для визуализации этого изменения.

При таком подходе компилятор может оптимизировать процесс первого рендеринга страницы, а среда выполнения кода способна оптимизировать процессы обновления страниц. Такое внимание к производительности делает Solid одним из JavaScript-инструментов, показывающих самые высокие результаты в тестированиях производительности.


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

Тех, кому не терпится взглянуть на код готового проекта, приглашаю заглянуть сюда.
Читать дальше →

Современная архитектура Electron приложений в 2021

Thu, 09/16/2021 - 18:00

Я хочу рассказать об архитектуре приложений на Electron: из чего они состоят как работают, какие имеют ограничения и требования.

Читать далее

[Перевод] Архитектор решения / инжиниринг

Thu, 09/16/2021 - 17:56

Я не трачу свое время на рассуждения о высоких концепциях; я трачу свое время на решение инженерных и производственных проблем".

- Илон Маск, главный инженер/конструктор SpaceX

Читать далее

Рутокен VPN в opensource – для кого, зачем и почему?

Thu, 09/16/2021 - 17:39

Не так давно Компания «Актив» предоставила в открытый доступ на GitHub исходный код версии продукта Рутокен VPN Community Edition. В этой статье мы хотим рассказать зачем и для кого мы это сделали, как можно воспользоваться исходным кодом, и чего ожидаем в результате от сообщества разработчиков.

Зачем нужен еще один VPN? 

Как известно, события последних полутора лет стимулировали развитие рынка VPN, и сегодня он переживает эпоху роста. Конкуренция на этом рынке значительная, цены на услуги растут. Одновременно Россия в 2021 году остается в десятке топ-потребителей VPN сервисов, т.е. спрос на рынке присутствует.  

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

Читать далее

Масштабирование микросервисов Spring Boot

Thu, 09/16/2021 - 17:18

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

Так что же может помешать нам просто взять и запустить еще несколько инстансов?

Читать далее

Запросы в PostgreSQL: 4. Индексное сканирование

Thu, 09/16/2021 - 17:17

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

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

Читать далее

Файлы как они есть. Работа с типизированными массивами

Thu, 09/16/2021 - 17:14

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

Читать далее

Книга «Эффективный C. Профессиональное программирование»

Thu, 09/16/2021 - 15:50
Привет, Хаброжители! Мир работает на коде, написанном на C, но в большинстве учебных заведений программированию учат на Python или Java. Книга «Эффективный С для профессионалов» восполняет этот пробел и предлагает современный взгляд на C. Здесь рассмотрен C17, а также потенциальные возможности C2x. Издание неизбежно станет классикой, с его помощью вы научитесь писать профессиональные и надежные программы на C, которые лягут в основу устойчивых систем и решат реальные задачи.
Читать дальше →

Пересаживаем NXP-шный пример для Teensy 4.1 на язык C++

Thu, 09/16/2021 - 15:36
В предыдущих статьях мы освоили внедрение примеров из NXP-шной среды разработки MCUXpresso в плату Teensy 4.1. Однако у тех примеров, с которыми мне довелось повозиться (а я работал с USB-примерами), есть один существенный (с моей точки зрения, разумеется) недостаток. Все они написаны на языке Си. Ну, то есть, «на чистых Сях», если на жаргоне. А вот оригинальная библиотека от Teensy была написана на С++. И я являюсь сторонником именно этого языка. Не могу жить без честных классов, виртуальных функций и некоторых других средств, которых нет в чистых Сях.



Когда я программирую в среде разработки Keil, чтобы сменить язык, достаточно переключить его в свойствах конкретного исходного файла. В цикле статей про NIOS II я просто переключал язык, изменив расширение файла с *.c на *.cpp. (Со всеми деталями это показано тут ; не как новинка, а как рутина — тут). Увы, в нашем случае так не получится. И количество действий, которое следует совершить, тянет на небольшую статью. Вот её я сейчас и напишу. Итак, давайте разбираться, что там к чему…
Читать дальше →

Involution: Attention is not what you need, или Как скрестить Self-Attention из NLP и Convolution в задачах CV

Thu, 09/16/2021 - 15:15

Если говорить про Self-Attention в картиночных моделях, то тут есть 2 варианта. Олдскульный  “давайте просто перевзвесим фичи” в разных вариантах: поканально, пространственно, в некоторой проекции. И новомодный "давайте обучим трансформер" с представлением патчей как визуальных слов. Первый подход рабочий, но не дает значительного улучшения в плане метрик. Второй подход слишком вычислительно сложный и часто заточен на размер картинок.

Подход коллег из ByteDance AI Lab и университета Пекина сильно отличается от этих крайностей и является переосмыслением Attention-механизма трансформеров в работе свёрток.

Читать подробнее об Involution

Польза, а не маркетинг. Почему стоит потратить время на конференцию Yandex Scale 2021

Thu, 09/16/2021 - 15:05
Природа настолько очистилась, что технические конференции смогли выжить, а чисто рекламные — нет. Ведь сидеть дома в трениках и слушать маркетинговый трёп под чаёк с пряниками мало кто соберётся. Публику надо удивлять и давать ей пользу (контент is a king).

Раньше можно было снять красивый зал, вкусно всех накормить, устроить шоу, а потом ещё и вкусно всех напоить — и твоя конференция купается в лучах славы. Удалёночка потушила эту иллюминацию.

И тут на горизонте показался Yandex Scalе. Конференция посвящена одному продукту — Yandex.Cloud. Организаторы обещают, что это будет чисто техническая конференция с информацией из первых рук. Чтобы проверить это, мы пригласили представителя хабрасообщества Александра Фатина aka @Loxmatiy Mamont испытать ведущих докладчиков на прочность. Что мы узнали

[Перевод] Насколько быстрее Java 17?

Thu, 09/16/2021 - 15:03

Решение задачи по составлению расписания турнира с разъездами (TTP) — один из вычислительных тестов в нашем наборе

Позавчера вышла Java 17 с кучей новых функций и усовершенствований. Большинство из них требуют изменения кода. Кроме производительности. Просто заменяете JDK — и получаете бесплатную прибавку производительности. Но насколько большую? Стоит ли она того? Для этого мы провели бенчмарки JDK 17, JDK 16 и JDK 11.
Читать дальше →

Распознаем речь в Авроре

Thu, 09/16/2021 - 14:31

Аврора, созданная во многом с прицелом на корпоративное использование, часто используется в не совсем привычных для нормального человека условиях. Когда мобильное устройство — корпоративное, а передаваемая информация имеет не только ту ценность, которую охраняет закон о персональных данных №152-ФЗ, но и коммерческую составляющую, — на передний план выходит конфиденциальность и возможность обрабатывать данные, не отходя от кассы.

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

Читать далее

Шестой подвиг Геракла: как мы расчистили прод от багов

Thu, 09/16/2021 - 14:12

Привет, Хабр. Меня зовут Макс. Я специализируюсь на реконструкции и развитии процессов. Сегодняшняя история про баги. Не баги вообще, а про вполне конкретную их категорию.

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

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

Читать далее

Earth Baku: как работают профессионалы кибершпионажа

Thu, 09/16/2021 - 14:04

В конце 2020 года мы зафиксировали новую кибершпионскую кампанию группировки Earth Baku, более известную как APT41. Атаки были направлены против различных организаций в странах Индо-Тихоокеанского региона. Как и в других кампаниях, Earth Baku использовала высококлассный инструментарий собственной разработки. В этом посте мы расскажем об этой кампании, а также о том, как Earth Baku развивала свои вредоносные инструменты для атак.

Читать далее

Когда Россия уйдет с МКС?

Thu, 09/16/2021 - 14:00

Российский сегмент Международной космической станции недавно пополнился модулем «Наука», а на Байконуре готовится к запуску ещё Узловой модуль. Однако, официальные лица в России периодически говорят об уходе с МКС. Что же ждёт нашу пилотируемую космонавтику в ближайшие годы, и что будет с самым дорогим космическим проектом человечества?
Читать дальше →

[Перевод] Рейкастинг в игровых 2D-движках

Thu, 09/16/2021 - 12:58

Введение
На мой взгляд, рейкастинг — великолепная концепция, понять которую не так сложно, но качественных ресурсов по ней очень мало. Я расскажу о математике, лежащей в её основе, чтобы вы при желании с лёгкостью могли реализовать её в своих будущих проектах. Постараюсь сделать объяснение как можно более понятным, рассказать о всех тонкостях и проблемах, с которыми вы можете столкнуться. Также мы поговорим об оптимизации и о том, как сильно вам могут помочь пространственные хэш-карты. Ещё я напишу простые интерактивные примеры, с которыми вы сможете поэкспериментировать. Учтите, что демо написаны максимально простым образом, не ожидайте увидеть в них код уровня энтерпрайза — мы изучаем саму концепцию, а не реализацию.
Читать дальше →

Сверну свой телек в трубочку

Thu, 09/16/2021 - 12:56

Пришла пора поговорить о самой «ненужной» вещи в домашнем хозяйстве – телевизоре. Если судить по досужим разговорам, последние из Могикан перестали смотреть в его сторону лет двадцать-тридцать назад (при родах интернета). Тем любопытнее проследить эволюцию телевизоров от наскальных рисунков и ковров до наших дней с плазменными панелями размером с хрущевку.

Читать далее

Восстановление удаленных строк в SQLite

Thu, 09/16/2021 - 12:56
Хотя в SQLite и нет возможности прочитать удаленные данные после завершения транзакции, сам формат файла позволяет отчасти сделать это. Подробности — под катом.
Читать дальше →

Насколько быстры компьютеры

Thu, 09/16/2021 - 12:49

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

Читать далее

Who's online

There are currently 1 user and 1 guest online.