Всем привет! Я в веб-разработке не так давно. Сейчас я пишу свой сайт, который будет выступать в качестве моего портфолио и, возможно, даже целого проекта. При добавлении модального окна для авторизации на свой сайт, я подумал, а что будет, если публиковать подобные модульные вещи, чтобы любой человек мог их скопировать и не думать о них, а использовать в разработке. То есть создать готовый модуль для встраивания. Мне, как разработчику было бы удобно использовать готовое решение, тем более написанное мною, да и делиться опытом - дело приятное :)
Пользователь
Lazarus-AVR, №2. Как получить кросс-компилятор для микроконтроллеров AVR с помощью Fpcupdeluxe
Микроконтроллеры: AVR; Среда программирования IDE Lazarus 32х (кросс-платформенный) (ОС: Windows 64х).
В прошлой статье я описывал подключение компилятора Avr к IDE Lazarus, но у меня не работало автодополнение кода (при нажатии ctrl+пробел появляется выпадающее меню с вариантами кода). Спустя 29 дней разборок я добился корректной работы автодополнения. Что бы отделить "мух от котлет" (не все используют fpcupdeluxe) я решил вынести описание работы с fpcupdeluxe в отдельную статью.
Делаем дашборды для Grafana из того, что отдает экспортер метрик Prometheus и автоматизируем это
Столкнувшись с необходимостью сделать новый дашборд в Grafana под много новых метрик (а не добавить, так как готовый из галереи не находится), я сделал небольшое веб-приложение, которое сконвертирует "портянку" с данными метрик в простенький, но доходчивый дашборд со всеми необходимыми метриками.
В статье описание работы конвертора и рассказ о некоторых хитростях в настройке мониторинга Apache Spark и Hadoop.
Пишем драйвер ядра Linux для неизвестного USB-устройства
В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Как подсветить временные отрезки на графиках
Как отобразить временные интервалы вместе с графиком временного ряда, с разными цветами для разных групп? Иногда хочется увидеть как события влияют на метрику. Рассмотрим на примере изменений температуры и извержений российских вулканов.
О desktop-уведомлениях в Linux-системах
В операционной системе, как и в жизни, обширны способы передачи информации: иногда можно деликатно сказать что-то в стиле «не будет ли любезен многоуважаемый джинн», или сделать жест рукой, чтобы твой собеседник понял без лишних слов, или в некоторых ситуациях достаточно лишь встретиться глазами, чтобы понять, как у тебя дела. Так и в арсенале ОС имеются сообщения из системного трея, обычные десктоп-уведомления из центра уведомлений, лампочки-индикаторы на клавиатуре, собственные уведомления у приложений и проч.
В этом материале мы расскажем о системе десктоп-уведомлений, которая используется в большинстве Linux-дистрибутивов и является самой базовой системой информирования пользователя. Статья прежде всего предназначена для разработчиков десктоп-приложений, которые хотят организовать взаимодействие с пользователем, использовав базовый функционал ОС. Впрочем, и обычным юзерам данный текст, как минимум, не помешает и даже поможет сформировать корректные представления о том, как и зачем их уведомляет операционная система.
Spring Data JPA: метод save и границы его применимости
Привет! Меня зовут Семён Киреков, я Java-разработчик и тимлид в Центре Big Data @МТС Digital и Java-декан в МТС Тета — образовательном стартапе в рамках МТС. На митапе Росбанка и Jug.ru я рассказывал о том, как устроен метод Save в Spring Data JPA, почему он может вызвать лишний select, как решить эту проблему и при чем здесь доменные события Spring. Здесь я поделюсь этой информацией с вами.
Заметки о зубной эмали и зубной пасте
В этой статье я постарался разложить некоторые интересные на мой взгляд аспекты, касающиеся зубной эмали, процессов ре- и де- минерализации, а также роли зубной пасты в этих увлекательных процессах.
Материал я собрал, изучая такие сайты, как researchgate.net, sciencedirect.com, www.ncbi.nlm.nih.gov, escholarship.org и другие. Опираясь на эти данные, я занимаюсь разработкой оптимальной рецептуры гигиенической (т.е. не лечебную) зубной пасты, стараясь добиться оптимального баланса между абразивными, антибактериальными и реминерализирующими свойствами (плюс - еще желательно позаботиться об окружающих зуб тканях).
Зачем? 1. Потому что очень интересно; 2. Потому что не хватает этого баланса в современных не лечебных продуктах (лечебные должны работать в одну цель, там совсем иная история в этом плане).
Краткое введение в разработку собственных правил для ESLint
Недавно мы в команде столкнулись с тем, что нам понадобилось кастомное правило для линтера. Немного поиска в гугле, и через час-полтора правило было готово. Делимся базовыми примерами, которые помогут вам погрузиться в процесс разработки правил.
10 задач с JavaScript Promise для подготовки к собеседованиям
Promise — это отличительная особенность JavaScript как асинхронного языка программирования. Нравится вам это или нет, понять его в любом случае придется. В этой статье я привожу 10 примеров кода с Promise, начиная от базового уровня заканчивая продвинутым.
React: полное руководство по повторному рендерингу
Привет, друзья!
Представляю вашему вниманию перевод этой замечательной статьи, посвященной повторному рендерингу (re-render, далее — ререндеринг) в React.
Что такое ререндеринг?
Существует 2 основные стадии, которым следует уделять пристальное внимание, когда речь заходит о производительности в React
:
- первоначальный рендеринг (initial rendering) — происходит, когда компонент впервые появляется на экране;
- ререндеринг — второй и последующие рендеринги компонента.
Ререндеринг происходит, когда React
необходимо обновить приложение некоторыми данными. Обычно, это является результатом действий пользователя, получения ответа на асинхронный запрос или публикацию при подписке (паттерн "pub/sub" — публикация/подписка или издатель/подписчик) на определенные данные.
Как работает React: подробное руководство
Привет, друзья!
В этой статье я покажу вам, с чего начинается React
.
Что это означает? Это означает, что мы разработаем мини-версию React
, которая сможет выполнять следующий код:
import '../style.scss'
import MyReact from './my-react'
const buttonStyles = {
border: 'none',
outline: 'none',
padding: '0.3rem 0.5rem',
marginLeft: '0.5rem',
backgroundImage: 'linear-gradient(yellow, orange)',
borderRadius: '2px',
boxShadow: '0 1px 2px rgba(0, 0, 0, 0.2)',
cursor: 'pointer'
}
/** @jsx MyReact.createElement */
function Counter() {
const [value, setValue] = MyReact.useState(1)
const [count, setCount] = MyReact.useState(1)
return (
<section>
<h1 className='title'>Hello from MyReact!</h1>
<div className='box'>
<input
style='width: 80px; padding: 0.15rem 0.5rem;'
type='number'
value={value}
onInput={(e) => {
setValue(Number(e.target.value))
}}
/>
<button
style={buttonStyles}
onClick={() => {
setCount((count) => count + value)
}}
>
Increment
</button>
</div>
<h2 className='subtitle'>
Count: <span className='count-value'>{count}</span>
</h2>
<ul className='list'>
{['React', 'from', 'scratch'].map((item) => (
<li>{item}</li>
))}
</ul>
</section>
)
}
MyReact.render(<Counter />, document.getElementById('app'))
Как вы могли догадаться, наша версия будет называться MyReact
.
Скриншот:
При разработке мы будем придерживаться архитектуры исходного кода React
. Вместе с тем, следует отметить, что за последние 2 года исходный код React
претерпел значительные изменения, поэтому некоторые вещи, которые мы будем рассматривать, помечены в нем как legacy
. Несмотря на это, общие принципы и подходы остаются прежними.
Uniswap v3 Single Swaps (перевод гайда)
Документация содержит хорошие подробные туториалы,я лишь немного хочу раскрыть их для рунета.
Как работает автоматическая регулировка усиления
Привет, Хабр! Сегодня изучим автоматическую регулировку усиления, АРУ, на примере гитарного эффекта компрессора. Это прибор для сжатия не воздуха, а электрического сигнала. Из слабого сигнала он делает сильный, а из слишком сильного просто сильный.
Педаль на основе схемы культового DOD 280 я планирую не только собрать, но и немного усовершенствовать, добавив эффект тремоло (амплитудное вибрато). Дело в том, что и компрессор, и тремоло построены на основе усилителя с управляемым усилением. Для тремоло нужно добавить только генератор медленных колебаний (LFO, low frequency oscillator).
Как справиться с устареванием apt-key и add-apt-repository с помощью gpg в Ubuntu 22.04
apt-key - это утилита, используемая для управления ключами, которые APT использует для аутентификации пакетов. Это тесно связано с утилитой add-apt-repository, которая добавляет внешние репозитории с использованием серверов ключей в список надежных источников установки APT. Однако ключам, добавленным с помощью apt-key и add-apt-repository, apt доверяет глобально. Эти ключи не ограничиваются авторизацией единственного хранилища, для которого они были предназначены. Любой ключ, добавленный таким образом, может быть использован для авторизации добавления любого другого внешнего хранилища, что представляет собой важную проблему безопасности.
Начиная с Ubuntu 20.10, использование apt-key выдает предупреждение о том, что инструмент устареет в ближайшем будущем; аналогичным образом, add-apt-repository также скоро устареет. Хотя эти предупреждения об устаревании строго не запрещают использовать apt-key и add-apt-repository с Ubuntu 22.04, но игнорировать их не рекомендуется.
В настоящее время рекомендуется использовать gpg вместо apt-key и add-apt-repository, и в будущих версиях Ubuntu это будет единственным вариантом. apt-key и add-apt-repository сами по себе всегда действовали как оболочки, вызывая gpg в фоновом режиме. Использование gpg напрямую отсекает посредника. По этой причине метод gpg обратно совместим со старыми версиями Ubuntu и может использоваться в качестве замены apt-key.
В этом руководстве будут описаны две процедуры, использующие альтернативы apt-key и add-apt-repository соответственно. Сначала будет добавлено внешнее хранилище с использованием открытого ключа с помощью gpg вместо использования apt-key. Во-вторых, в качестве дополнения в этом руководстве будет рассмотрено добавление внешнего репозитория с использованием сервера ключей с gpg в качестве альтернативы использованию add-apt-repository.
Руководство по CMake для разработчиков C++ библиотек
Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.
#1 Нейронные сети для начинающих. Решение задачи классификации Ирисов Фишера
На хабре было множество публикаций по данной теме, но все они говорят о разных вещах. Решил собрать всё в одну кучку и рассказать людям.
Это первая статья серии введения в нейронные сети, «Нейронные сети для начинающих». Здесь и далее мы постараемся разобраться с таким понятием — как нейронные сети, что они вообще из себя представляют и как с ними «подружиться», на практике решая простые задачи.
12 схем архитектуры английской грамматики
Я предприняла попытку смоделировать в 12 схемах и 16 пунктах пояснительных заметок английский как систему: общую структуру его уровней, логику и принципы, по которым он, в рамках моего подхода, функционирует. Мне хотелось, насколько это возможно, в своём описании грамматики придерживаться формата технической документации.
Данная раскладка может быть полезной для предварительного ознакомления с устройством предмета освоения - английский как иностранный, для упорядочения фрагментарных грамматических знаний и выведения их на осмысленный уровень, или, возможно, для применения в NLP.
Ускорение secp256k1 с помощью эндоморфизма
В этой статье мы рассмотрим функцию ускорение secp256k1
с помощью эндоморфизма которая помогает в оптимизации проверки ECDSA
для криптовалюты Биткоин, но для начала немного истории.
12 января 2009 года
Сатоши Накамото в самых ранних транзакциях Биткоина отправил Хэлу Финни 10 BTC
.
То, что Сатоши Накамото выбрал Хэла первым получателем Биткоинов, неудивительно. Сатоши очень уважал Хэла, который зарекомендовал себя как один из самых ярких программистов и криптографов в мире, разработав систему шифрования PGP. Хэл также заложил важную основу для многоразового доказательства работы, которое Сатоши будет использовать при разработке Биткоина.
Будучи одним из лучших в мире криптографов, Хэл понял, что Биткоин стал огромным прорывом сразу же после того, как он наткнулся на него.
Еще в 2008 году
он назвал Биткоин «очень многообещающей идеей».
Этот твит, опубликованный 11 января 2009 года
, является достаточным доказательством того, что Хэл предсказал успех Биткоина еще до того, как многие узнали, что это такое.
Прошло два года и в 2011 году
Хэл Финни как разработчик и Биткоин-энтузиаст написал на форуме Bitcointalk, что функция эндоморфизма secp256k1 может быть использована для ускорения проверки подписи ECDSA
Варианты использования Java ML библиотек совместно со Spring, Docker, Spark, Rapids, CUDA
В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.
Информация
- В рейтинге
- 1 322-й
- Откуда
- США
- Дата рождения
- Зарегистрирован
- Активность