Пользователь
Библиотека next-persist: преодоление разрыва между серверным рендерингом и постоянным хранением данных на клиенте
Прежде чем мы поговорим о месте next-persist в экосистеме современной веб-разработки, нам нужно коснуться Next.js — передового фреймворка, созданного Vercel, позволяющего без особых сложностей создавать и развёртывать приложения, которые, при этом, отличаются высокой скоростью загрузки.

Next.js произвёл революцию в осмыслении того, как именно веб-содержимое доставляется пользователям. Произошло это за счёт объединения всего лучшего из сфер серверного и клиентского рендеринга с технологиями генерирования статических сайтов. Кроме того, применение Next.js до крайности упрощает доведение веб-проектов до рабочего состояния. Это происходит за счёт автоматизации конфигурирования вспомогательного ПО, вроде webpack и babel, и благодаря использованию CI/CD Vercel.
Правда, это не позволяет говорить о том, разработчику, пользующемуся удобствами экосистемы Next.js, не приходится сталкиваться с какими-то сложными задачами. Одной из таких задач является организация постоянного хранения данных на клиенте.
Начинаем писать под stm8, выбираем среды разработки и стартуем

На пути в программировании stm8 есть развилка, о ней сегодня и поговорим.
Определимся что речь будет идти о средах которые могут писать под си. Для начала поговорим о подходах, я выделю 2 основных.
Первый установка ST Visual Develop и выбор в качестве компилятора COSMIC Бывший платный, а ныне бесплатный, но со своими заморочками; регистрация, получение ключа, и прочие танцы с бубном.
Второй же вариант, более простой VS Code + PlatformIO и компилятор SDCC полностью свободный. И опять же не все так просто. Sdcc не умеет исключать не используемые функции. Я решил этот вопрос хоть и успешно, но не без дополнительных действий при написании кода.
Полезные JavaScript-библиотеки

Автоматический дымоуловитель для пайки, основанный на Arduino

Для этого проекта вам понадобится Arduino UNO Wifi Rev.2, инфракрасный датчик препятствий KY-032 и одноканальное реле на 5В. Некоторые элементы надо будет напечатать на 3D-принтере. Для сборки готового устройства нужно будет воспользоваться паяльником.
О дивный новый «Мир»! Восстановление советской радиолы. Часть 1

«Автостопом по галактике» — история невероятного текстового приключения 1984 года

Жанр интерактивных текстовых игр промелькнул ярким болидом в истории цифровых развлечений. «Автостопом по галактике» стала одним из самых успешных бестселлеров Infocom, который прославился чутким юмором, странной, местами абсурдной, логикой, и, конечно же, безумными головоломками (помните Babel Fish?). Многие игроки бесились от дикой сложности загадок игры, для других же проведенное за ними время легло в память исключительно приятными воспоминаниями.
Белогривые лошадки. Как облачные технологии меняют мир

Предсказывать будущее — дело неблагодарное: говорят, в этом преуспел разве что Нострадамус да одна слепая болгарская старушка. Вместе с тем, некоторые тенденции развития IT-технологий явно намекают нам на то, что уже в ближайшей перспективе вычислительные мощности и возможности девайсов будут расти, а сами эти устройства — становиться проще и дешеветь. Как такое возможно? Ответ прост: облака.
Заметки о Unix: небольшая странность семейства вызовов exec*()
-exec
команды find
и ненароком упомянул о «семействе системных вызовов exec()
». Это — странное выражение, обычно о Unix-вызовах так не говорят, так как они, как правило, не объединяются в некие «семейства». Но в данном случае речь идёт о целом наборе схожих механизмов. Перечислим их:execv() execve() execvp() execvpe()
execl() execlp() execle()
(Этот список выглядит именно так в Linux и в OpenBSD; подобный список, составленный для FreeBSD, включал бы в себя
execvP()
, а не execvpe()
. В POSIX-версии подобного списка нет вызова execvpe()
, но есть вызов fexecve()
, который я не вполне готов включить в семейство вызовов exec()
.)
Разговор с майнером Chia, имеющим 1ПБ ёмкости
Возможно, вы уже в курсе, что сейчас в России цены на жёсткие диски большого объёма и SSD стремительно растут, а по компьютерным магазинам мечутся люди, в спешке покупающие комплектующие для новых компьютеров. Причиной этого ажиотажа стала новая криптовалюта Chia, для добычи которой нужны большие HDD и износостойкие SSD.
Chia предлагает модель экологичного майнинга, не требующего колоссальных затрат электроэнергии и уменьшающую парниковые выбросы, так как огромное количество электростанций до сих пор работает на ископаемом топливе.
Для лучшего понимания всего что связано с этой криптовалютой, вашему вниманию предлагается расшифровка моего разговора с майнером Chia, который состоялся вечером 21 апреля 2021 года. Я выступаю в роли продавца SSD, а майнер в роли повторного покупателя, который в ходе разговора делает coming-out. В ходе этого разговора я узнал много нового о Chia.

PiDP-11 — свежий взгляд во времена «Большого железа»

PiDP-11 – это современная реплика выдающегося микрокомпьютера PDP-11, разработанного Digital Equipment Corporation. В самом начале своей истории, когда они еще не стояли в каждом доме и уж тем более не умещались в карман, компьютеры были огромными, можно даже сказать пугающими устройствами, которые порой занимали целые комнаты и использовались только в университетах и корпорациях. Серия PDP в этом плане стала неким переходным звеном, сделавшим компьютеры более доступными для рядовых пользователей.
Новая концепция диабета 2 типа: опасный, но обратимый

Исторически сахарный диабет считался страшным заболеванием — в тяжёлых стадиях ему сопутствуют такие побочные эффекты, как слепота и гангрена конечностей. Большую часть истории диабета, известного ещё врачам Древней Греции как минимум 2500 лет назад, он считался неизлечимым. Терапия диабета уколами инсулина появилась только в XX веке: в следующем году исполнится 100 лет первому уколу инсулина, которым в 1922 году канадский доктор спас умиравшего от диабета 14-летнего мальчика. Однако инсулинотерапия — это лечение только для диабета 1 типа, при котором в организме человека нарушена выработка собственного инсулина. При более распространённом диабете 2 типа уколы инсулина — это не лечение, а симптоматическая терапия, которая только замедляет развитие болезни. Причины этого были открыты позже.
В XXI веке, благодаря развитию эндокринологии (науки о гормонах) представления о диабете 2 типа поменялись радикально. С одной стороны, список сопутствующих развитию диабета проблем только вырос и теперь включает сердечно-сосудистые заболевания, многие случаи рака и болезнь Альцгеймера. С другой — появившееся представление о пропущенном звене, их общем метаболическом корне — гормональном сбое, известном как инсулинорезистентность, привело к пониманию не только как диабет развивается, но и как это развитие остановить и обратить вспять, не доводя до инсулиновой иглы.
Теория цвета как основа для дизайна и иллюстрации

Цвета присутствуют во всем, выражаясь во множестве оттенков, градиентов и комбинаций. Если повнимательнее рассмотреть окружающий нас мир, то можно удивиться, насколько большим разнообразием цветов и оттенков он наполнен. В то время как некоторые из них непосредственно вызывают в нас приятные чувства, существуют также и уникальные цветовые смеси, оказывающее заметное влияние на человеческие эмоции. Для лучшего же понимания всех этих особенностей, необходимо знать теорию цвета.
Зелёная энергетика — космическая гонка XXI века
Но какая разница, на самом деле, когда космическая гонка дала разгон не только ракетам, но и фундаментальной науке, образованию и технологическим производствам и США, и СССР. Благодаря эффективному государственно-частному партнёрству, США удалось конвертировать космическую гонку в технологический прорыв, обеспечивший миру вторую крупнейшую коммуникационную революцию с изобретения письменности, создать новый рынок глобальной экономики, цифровую экономику, и дать старт мощной и динамичной IT-индустрии, которая в нём заняла лидирующие позиции.

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

Этот материал рассчитан на абсолютных новичков, на тех, кто ничего не знает о SQL-инъекциях. Начнём мы с разбора основ, в которых необходимо ориентироваться перед разговором о SQLi. А именно, сначала мы поговорим о реляционных базах данных. Потом — о SQL, и о формировании SQL-запросов. И наконец — о том, как работают SQL-инъекции, и о том, почему они так опасны для веб-приложений.
Разбираемся с развёртыванием CodeReady Containers на Linux

Тут используется система CRC версии 1.21.0, в основе которой лежит OpenShift Container Platform (OCP) версии 4.6.9. Я устанавливаю CRC на Debian 10 GNU/Linux, но нам подойдёт любой современный дистрибутив Linux — вроде Fedora или Ubuntu. CRC 1.21.0 можно установить на Linux-хосте, который удовлетворяет следующим требованиям:
- На нём установлены KVM и
libvirt
. - Его сетевые настройки выполняются с использованием
NetworkManager
. - Пользователь, устанавливающий CRC, имеет sudo-доступ к этому хосту.
Перед установкой CRC нужно будет загрузить tarball-дистрибутив CRC и так называемый «pull secret». «Pull secret» — это JSON-файл, который содержит аутентификационную информацию, необходимую для доступа к защищённым реестрам образов, поддерживаемым Red Hat. Если вы не являетесь клиентом Red Hat — вы можете присоединиться к Red Hat Developer Program, к программе Red Hat для разработчиков, и бесплатно загрузить этот файл. Участие в этой программе позволяет, кроме того, загрузить tarball-дистрибутив CRC. А отсюда дистрибутив можно скачать без лишних формальностей.
CRC отличается замечательной документацией, которая дополняется по мере выхода новых релизов системы.
Открытая платформа для своих: как и зачем использовать Yunohost

Знакомимся с дистрибутивом: рассматриваем возможности, оцениваем простоту настройки и приложения, которых на платформе более 200. А также устанавливаем Yunohost на VPS или свою ВМ.
Дорогие друзья, я обратил внимание, что на Хабре обошли стороной хороший продукт, достаточно мощный и с отличным потенциалом — это Yunohost. Проект появился на свет в 2012 году. Продукт позиционируется как операционная система, основанная на Debian и предназначенная для хостинга в первую очередь своих личных проектов, проектов друзей, семьи или связанных с ними небольших компаний. Я использую его ежедневно в своем ИТ-быту с 2018 года, и у меня накопился опыт, которым хочу поделиться.
Лайфхак: как спарсить гигабайт double-ов в секунду

Как в коде на C++ прочитать значение double из строки?
std::stringstream in(mystring);
while(in >> x) {
sum += x;
}
На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?
Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:
do {
number = strtod(s, &end);
if(end == s) break;
sum += number;
s = end;
} while (s < theend);
Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода
SDLViewer::Update
, почти при каждом его вызове, долго будет находиться в заблокированном состоянии, ожидая сигнала vsync от монитора.
Насколько быстро должен работать наш эмулятор? Точный ответ на этот вопрос дать не так уж и просто. На реальном компьютере на выполнение операций с разными кодами нужно разное время, но известны ориентировочные временные показатели выполнения различных операций. Можно выполнить инструкцию, выяснить то, сколько времени её выполнение должно занимать на реальном аппаратном обеспечении, а после этого «усыпить» программу до того момента, когда можно будет продолжать работу. Но тут есть одна проблема, которая заключается в том, что у нас, при таком подходе, нет доступа к временным параметрам работы CPU. На выполнение большинства этих инструкций должна уходить пара микросекунд, но на современных системах «усыплять» программы можно, как минимум, на одну миллисекунду.
Подключение геймпада к Raspberry Pi

Робот, основанный на Raspberry Pi, и геймпад