Forwarded from Node JS
Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации
Интро: почему я написал эту статью
Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого.
✍️ @nodejs_lib
Интро: почему я написал эту статью
Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого.
✍️ @nodejs_lib
👍10💩1
Forwarded from Библиотека C/C++ разработчика
В этой статье рассказывается, как настроить проводную последовательную связь между двумя платами Arduino.
https://dev.to/yongchanghe/set-up-a-wired-serial-communication-between-arduino-boards-h9e
#cpp #programming #arduino
👉 @cpp_lib
https://dev.to/yongchanghe/set-up-a-wired-serial-communication-between-arduino-boards-h9e
#cpp #programming #arduino
👉 @cpp_lib
DEV Community
Set up a wired serial communication between Arduino boards
This blog explains how to set up wired serial communication between two Arduino...
👍6👎3
Forwarded from React
React Hooks: useState
Хук useState() предназначен для управления состоянием компонента. Данная функция возвращает пару геттер/сеттер - значение начального состояния и функцию для обновления этого значения. Функцию имеет следующую сигнатуру: const [value, setValue] = useState(defaultValue).
Обновление одного состояния
Обновление нескольких состояний
Обновление объекта состояния
Счетчик
Более сложный пример
✍️ @React_lib
Хук useState() предназначен для управления состоянием компонента. Данная функция возвращает пару геттер/сеттер - значение начального состояния и функцию для обновления этого значения. Функцию имеет следующую сигнатуру: const [value, setValue] = useState(defaultValue).
Обновление одного состояния
const UpdateState = () => {
const [age, setAge] = useState(19)
const handleClick = () => setAge(age + 1)
return (
<>
<p>Мне {age} лет.</p>
<button onClick={handleClick}>Стать старше!</button>
</>
)
}Обновление нескольких состояний
const MultipleStates = () => {
const [age, setAge] = useState(19)
const [num, setNum] = useState(1)
const handleAge = () => setAge(age + 1)
const handleNum = () => setNum(num + 1)
return (
<>
<p>Мне {age} лет.</p>
<p>У меня {num} братьев и сестер.</p>
<button onClick={handleAge}>Стать старше!</button>
<button onClick={handleNum}>Больше братьев и сестер!</button>
</>
)
}Обновление объекта состояния
const StateObject = () => {
const [state, setState] = useState({ age: 19, num: 1 })
const handleClick = (val) =>
setState({
...state,
[val]: state[val] + 1
})
const { age, num } = state
return (
<>
<p>Мне {age} лет.</p>
<p>У меня {num} братьев и сестер.</p>
<button onClick={() => handleClick('age')}>Стать старше!</button>
<button onClick={() => handleClick('num')}>
Больше братьев и сестер!
</button>
</>
)
}Счетчик
const CounterState = () => {
const [count, setCount] = useState(0)
return (
<>
<p>Значение счетчика: {count}.</p>
<button onClick={() => setCount(0)}>Сбросить</button>
<button onClick={() => setCount((prevVal) => prevVal + 1)}>
Увеличить (+)
</button>
<button onClick={() => setCount((prevVal) => prevVal - 1)}>
Уменьшить (-)
</button>
</>
)
}Более сложный пример
const Profile = () => {
const [profile, setProfile] = useState({
firstName: 'Иван',
lastName: 'Петров'
})
const handleChange = ({ target: { value, name } }) => {
setProfile({ ...profile, [name]: value })
}
const { firstName, lastName } = profile
return (
<>
<h1>Профиль</h1>
<form>
<input
type='text'
value={firstName}
onChange={handleChange}
name='firstName'
/> <br />
<input
type='text'
value={lastName}
onChange={handleChange}
name='lastName'
/>
</form>
<p>
Имя: {firstName} <br />
Фамилия: {lastName}
</p>
</>
)
}
✍️ @React_lib
👍14👎1🤯1
Forwarded from Библиотека C/C++ разработчика
Как в С++ обрабатывать ошибки в конструкторах без исключений?
Преимущества использования исключений сомнительны, но мои претензии к ним не в этом. Исключения — экстраординарный инструмент, которые делает код более непонятным и запутанным. А прямую локальную обработку — слишком пространной. Исключения стали для меня худшим средством обработки ошибок. Печально, что создание объектов в С++ основано на их применении. Далее
#cpp #programming
👉 @cpp_lib
Преимущества использования исключений сомнительны, но мои претензии к ним не в этом. Исключения — экстраординарный инструмент, которые делает код более непонятным и запутанным. А прямую локальную обработку — слишком пространной. Исключения стали для меня худшим средством обработки ошибок. Печально, что создание объектов в С++ основано на их применении. Далее
#cpp #programming
👉 @cpp_lib
👎11👍8
Forwarded from Библиотека Go (Golang) разработчика
Веб-приложение на Golang для чтения и записи данных в JSON файл
Golang предлагает мощные инструменты для создания веб-серверов.В Golang вы можете создавать веб-серверы, с разными адресами, разными типами запросов и разными типами контента. Для веб-разработки основными пакетами стандартной библиотеки являются net/http и html/template. Используя эти два пакета, вы можете создавать полнофункциональные веб-приложения.
👉 @golang_lib
Golang предлагает мощные инструменты для создания веб-серверов.В Golang вы можете создавать веб-серверы, с разными адресами, разными типами запросов и разными типами контента. Для веб-разработки основными пакетами стандартной библиотеки являются net/http и html/template. Используя эти два пакета, вы можете создавать полнофункциональные веб-приложения.
👉 @golang_lib
Telegraph
Веб-приложение на Golang для чтения и записи данных в JSON файл
Golang предлагает мощные инструменты для создания веб-серверов.В Golang вы можете создавать веб-серверы, с разными адресами, разными типами запросов и разными типами контента. Для веб-разработки основными пакетами стандартной библиотеки являются net/http…
👍5
Web Security for Developers
Автор: Malcolm McDonald (2020)
Начинающего разработчика легко обескуражить трудностями, связанными с должной защитой веб-сайта. К счастью, инструменты, необходимые для защиты сайта, находятся в свободном доступе и, как правило, просты в использовании. Данная книга покажет вам, как ваши веб-сайты уязвимы для атак и как их защитить. В каждой главе описывается основная уязвимость системы безопасности и исследуется реальная атака, а также большое количество кода, показывающего и уязвимость, и исправление.
Во время чтения книги вы:
✔️Изучите защиту от атак с использованием SQL-инъекций, вредоносного кода JavaScript и подделки межсайтовых запросов;
✔️Добавите аутентификацию и контроль доступа к форме для защиты учетных записей;
✔️Сможете блокировать учетные записи пользователей, чтобы предотвратить атаки, основанные на угадывании паролей, краже сеансов и т.д.;
✔️Внедрите шифрование;
✔️Научитесь управлению уязвимостями в устаревшем коде.
Скачать книгу
Автор: Malcolm McDonald (2020)
Начинающего разработчика легко обескуражить трудностями, связанными с должной защитой веб-сайта. К счастью, инструменты, необходимые для защиты сайта, находятся в свободном доступе и, как правило, просты в использовании. Данная книга покажет вам, как ваши веб-сайты уязвимы для атак и как их защитить. В каждой главе описывается основная уязвимость системы безопасности и исследуется реальная атака, а также большое количество кода, показывающего и уязвимость, и исправление.
Во время чтения книги вы:
✔️Изучите защиту от атак с использованием SQL-инъекций, вредоносного кода JavaScript и подделки межсайтовых запросов;
✔️Добавите аутентификацию и контроль доступа к форме для защиты учетных записей;
✔️Сможете блокировать учетные записи пользователей, чтобы предотвратить атаки, основанные на угадывании паролей, краже сеансов и т.д.;
✔️Внедрите шифрование;
✔️Научитесь управлению уязвимостями в устаревшем коде.
Скачать книгу
👍11
Forwarded from React
Пример использования useDeferredValue
Дэн Абрамов поделился примером использования хука useDeferredValue из React 18:
Используйте
✍️ @React_lib
Дэн Абрамов поделился примером использования хука useDeferredValue из React 18:
function Form() {
const [state, setState] = useState({ value: "hello" })
const deferredState = useDeferredValue(state)
// ...
Используйте
deferredState в компонентах, рендер которых не срочный: например, вычисление сложной логики. Это поведение напоминает debounce. Использовать state напрямую можно в элементах пользовательского ввода, например, input. ✍️ @React_lib
GitHub
Patterns for startTransition · reactwg/react-18 · Discussion #100
One major use case for startTransition is to update an input instantaneously while things that depend on that input's value are possibly delayed: function TransInput({ value, onChange }) { cons...
👍7💩3🔥1
Deep Learning Interviews
Автор: Shlomo Kashani, Amir Ivry (2020)
Данное руководство содержит сотни полностью решенных задач по широкому кругу ключевых тем в области ИИ. Она предназначена как для репетиций собеседований или экзаменов по конкретным темам, так и для получения степени магистра по машинному обучению. Задачи в книге достаточно сложны, чтобы хорошо поработать и значительно улучшить свои навыки, и они сформулированы в виде наводящих на размышления вопросов и увлекательных историй.
✔️Сотни полностью решенных задач;
✔️Проблемы из многих областей глубокого обучения;
✔️Понятные схемы и иллюстрации;
✔️Исчерпывающий указатель;
✔️Пошаговые решения задач;
✔️Не только ответы, но и показанные работы и доказательства, если необходимо.
Скачать книгу
Автор: Shlomo Kashani, Amir Ivry (2020)
Данное руководство содержит сотни полностью решенных задач по широкому кругу ключевых тем в области ИИ. Она предназначена как для репетиций собеседований или экзаменов по конкретным темам, так и для получения степени магистра по машинному обучению. Задачи в книге достаточно сложны, чтобы хорошо поработать и значительно улучшить свои навыки, и они сформулированы в виде наводящих на размышления вопросов и увлекательных историй.
✔️Сотни полностью решенных задач;
✔️Проблемы из многих областей глубокого обучения;
✔️Понятные схемы и иллюстрации;
✔️Исчерпывающий указатель;
✔️Пошаговые решения задач;
✔️Не только ответы, но и показанные работы и доказательства, если необходимо.
Скачать книгу
👍6❤1
Forwarded from BigData
This media is not supported in your browser
VIEW IN TELEGRAM
EigenGAN
TensorFlow implementation of EigenGAN: Layer-Wise Eigen-Learning for GANs
Github: https://github.com/LynnHo/EigenGAN-Tensorflow
Paper: https://arxiv.org/abs/2104.12476v1
👉 @bigdata_1
TensorFlow implementation of EigenGAN: Layer-Wise Eigen-Learning for GANs
Github: https://github.com/LynnHo/EigenGAN-Tensorflow
Paper: https://arxiv.org/abs/2104.12476v1
👉 @bigdata_1
👍7👎2
Forwarded from Node JS
Как мы преобразовали нашу библиотеку Node.js в Deno (с помощью Deno)
https://www.edgedb.com/blog/how-we-converted-our-node-js-library-to-deno-using-deno
✍️ @nodejs_lib
https://www.edgedb.com/blog/how-we-converted-our-node-js-library-to-deno-using-deno
✍️ @nodejs_lib
💩3👎2👍1
Forwarded from Node JS
Создание многопользовательской игры с использованием Socket. io при помощи NodeJS и React
Это руководство детально объясняет, как ПРАВИЛЬНО создать пошаговую многопользовательскую игру при помощи Socket. io и React. Здесь будет рассмотрено как создание серверной части проекта при помощи ExpressJS, так и клиентской с помощью ReactJS.
✍️ @nodejs_lib
Это руководство детально объясняет, как ПРАВИЛЬНО создать пошаговую многопользовательскую игру при помощи Socket. io и React. Здесь будет рассмотрено как создание серверной части проекта при помощи ExpressJS, так и клиентской с помощью ReactJS.
✍️ @nodejs_lib
👍6
Forwarded from Библиотека Go (Golang) разработчика
Структурированное логирование JSON в приложениях на Golang
Что такое «структурированное логирование»?
Ведение журнала, или логирование — очень важная часть программного обеспечения. Логи нужны для отслеживания того, что происходит в системах, и по мере роста последних важность логов только увеличивается.
Есть много отличных инструментов для парсинга логов. Мне, например, очень нравится ElasticSearch. Но большинство из них рассчитано на структурированные логи, а не на двоичные большие объекты с обычным текстом (и не факт, что эти объекты записаны в нужном формате). Далее
👉 @golang_lib
Что такое «структурированное логирование»?
Ведение журнала, или логирование — очень важная часть программного обеспечения. Логи нужны для отслеживания того, что происходит в системах, и по мере роста последних важность логов только увеличивается.
Есть много отличных инструментов для парсинга логов. Мне, например, очень нравится ElasticSearch. Но большинство из них рассчитано на структурированные логи, а не на двоичные большие объекты с обычным текстом (и не факт, что эти объекты записаны в нужном формате). Далее
👉 @golang_lib
👍9
Forwarded from GitHub Сообщество
This media is not supported in your browser
VIEW IN TELEGRAM
Pyxel - это игровой движок для Python в стиле ретро.
Благодаря своей простоте, вдохновленной старыми игровыми консолями (например, палитра состоит всего из 16 цветов, и только 4 звука могут быть проиграны одновременно), вы можете легко создавать игры в стиле пиксель-арт.
#GitHub | #Cpp #engine
👉 @Githublib
Благодаря своей простоте, вдохновленной старыми игровыми консолями (например, палитра состоит всего из 16 цветов, и только 4 звука могут быть проиграны одновременно), вы можете легко создавать игры в стиле пиксель-арт.
#GitHub | #Cpp #engine
👉 @Githublib
👍24👎2🔥2
Forwarded from Node JS
События в Node.js
Подавляющее большинство функционала Node.js применяет асинхронную событийную архитектуру, которая использует специальные объекты - эмиттеры для генерации различных событий, которые обрабатываются специальными функциями - обработчиками или слушателями событий. Все объекты, которые генерируют события, представляют экземпляры класса EventEmitter. Далее
✍️ @nodejs_lib
Подавляющее большинство функционала Node.js применяет асинхронную событийную архитектуру, которая использует специальные объекты - эмиттеры для генерации различных событий, которые обрабатываются специальными функциями - обработчиками или слушателями событий. Все объекты, которые генерируют события, представляют экземпляры класса EventEmitter. Далее
✍️ @nodejs_lib
👍8
Introduction to Algorithms
Авторы: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2016)
Данный труд удачно совмещает в себе описание разнообразных алгоритмов и отличное качество изложения, делающее книгу доступной для читателей разного уровня подготовки. Все алгоритмы описаны простым языком и сопровождены примерами псевдокода.
В книге рассматриваются такие темы, как:
✔️Деревья ванн Эмде Боаса;
✔️Многопоточные алгоритмы;
✔️Динамическое программирование;
✔️Жадные алгоритмы.
Также в последнем издании было добавлено множество новых упражнений и задач.
Скачать книгу
Авторы: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2016)
Данный труд удачно совмещает в себе описание разнообразных алгоритмов и отличное качество изложения, делающее книгу доступной для читателей разного уровня подготовки. Все алгоритмы описаны простым языком и сопровождены примерами псевдокода.
В книге рассматриваются такие темы, как:
✔️Деревья ванн Эмде Боаса;
✔️Многопоточные алгоритмы;
✔️Динамическое программирование;
✔️Жадные алгоритмы.
Также в последнем издании было добавлено множество новых упражнений и задач.
Скачать книгу
👍13🤯2
Forwarded from Kotlin
Things every Kotlin Developer should know about Coroutines.
Part 1: CoroutineContext
Part 2: CoroutineScope
Part 3: Structured Concurrency
Part 4: Exception Handling
Part 5: Cancellation
✍️ @kotlin_lib
Part 1: CoroutineContext
Part 2: CoroutineScope
Part 3: Structured Concurrency
Part 4: Exception Handling
Part 5: Cancellation
✍️ @kotlin_lib
👍4👎2
How Computers Really Work: A Hands-On Guide to the Inner Workings of the Machine
Автор: Matthew Justice (2020)
Данная книга является практическим руководством по устройству компьютера: в ней рассматривается все от схем до памяти, машинного кода, языков программирования, операционных систем и интернета.
Во время чтения книги вы:
✔️Создадите полусумматор, чтобы увидеть, как логические операции могут быть объединены для выполнения полезных функций;
✔️Напишете программу на языке ассемблера, затем проверите полученный машинный код;
✔️Научитесь использовать отладчик, дизассемблировать код и взламывать программу, чтобы изменить ее поведение без изменения исходного кода;
✔️Используете сканер портов, чтобы узнать, какие интернет-порты открыты на вашем компьютере;
✔️Запустите свой собственный сервер и пройдете интенсивный курс о том, как работает интернет.
Скачать книгу
Автор: Matthew Justice (2020)
Данная книга является практическим руководством по устройству компьютера: в ней рассматривается все от схем до памяти, машинного кода, языков программирования, операционных систем и интернета.
Во время чтения книги вы:
✔️Создадите полусумматор, чтобы увидеть, как логические операции могут быть объединены для выполнения полезных функций;
✔️Напишете программу на языке ассемблера, затем проверите полученный машинный код;
✔️Научитесь использовать отладчик, дизассемблировать код и взламывать программу, чтобы изменить ее поведение без изменения исходного кода;
✔️Используете сканер портов, чтобы узнать, какие интернет-порты открыты на вашем компьютере;
✔️Запустите свой собственный сервер и пройдете интенсивный курс о том, как работает интернет.
Скачать книгу
👍16❤2
Forwarded from GitHub Сообщество
This media is not supported in your browser
VIEW IN TELEGRAM
Eurorack-cpu – Процессор, реализованный в модульном синтезаторе.
Сам процессор работает в симуляторе VCV Rack eurorack - это виртуальная модульная синтезаторная платформа для Windows/Mac/Linux, которая имитирует модули Eurorack в дополнение к оригинальным модулям, выходящим за рамки аппаратного обеспечения
#GitHub | #Interesting #Processor
👉 @Githublib
Сам процессор работает в симуляторе VCV Rack eurorack - это виртуальная модульная синтезаторная платформа для Windows/Mac/Linux, которая имитирует модули Eurorack в дополнение к оригинальным модулям, выходящим за рамки аппаратного обеспечения
#GitHub | #Interesting #Processor
👉 @Githublib
🔥7👍4
Python for Marketing Research and Analytics
Авторы: Jason S. Schwarz, Chris Chapman, Elea McDonnell Feit (2020)
В книге представлен практический подход к использованию Python для решения реальных маркетинговых задач, структурированный по ключевым тематическим областям. Авторы предоставили все аналитические материалы в записных книжках Colab, которые включают код, рисунки, таблицы и аннотации в одном файле. Блокноты с кодами для каждой главы можно копировать, адаптировать и повторно использовать в собственном анализе. В книге также рассказывается о работе с моделями машинного обучения с использованием пакета sklearn в контексте маркетинговых исследований.
Скачать книгу
Авторы: Jason S. Schwarz, Chris Chapman, Elea McDonnell Feit (2020)
В книге представлен практический подход к использованию Python для решения реальных маркетинговых задач, структурированный по ключевым тематическим областям. Авторы предоставили все аналитические материалы в записных книжках Colab, которые включают код, рисунки, таблицы и аннотации в одном файле. Блокноты с кодами для каждой главы можно копировать, адаптировать и повторно использовать в собственном анализе. В книге также рассказывается о работе с моделями машинного обучения с использованием пакета sklearn в контексте маркетинговых исследований.
Скачать книгу
👍9👎3🤩2
Forwarded from Библиотека Ruby программиста
This media is not supported in your browser
VIEW IN TELEGRAM
Как заставить интерпретатор Ruby выполнить программу, написанную на естественном языке
Многие языки программирования позиционируют себя как почти естественные. Ruby не отстает и позиционирует себя как "natural to read and easy to write". Однако, первый же гайд по Rails (да, Ruby это всё еще Rails) предложит вам что–то такое:
Подробнее
@ruby_lib
Многие языки программирования позиционируют себя как почти естественные. Ruby не отстает и позиционирует себя как "natural to read and easy to write". Однако, первый же гайд по Rails (да, Ruby это всё еще Rails) предложит вам что–то такое:
class UserController < ApplicationController
endПодробнее
@ruby_lib
👍3👎3
A Common-Sense Guide to Data Structures and Algorithms
Автор: Jay Wengrow (2020)
Алгоритмы и структуры данных - это гораздо больше, чем абстрактные концепции. Их освоение позволяет писать код, который работает быстрее и эффективнее, что особенно важно для современных веб-приложений и мобильных приложений. Данное новое и исправленное издание включает в себя новые главы о рекурсии, динамическом программировании и использовании Big O нотации в повседневной работе.
Используйте Big O, чтобы измерить и сформулировать эффективность вашего кода, и измените свои алгоритмы, чтобы сделать их быстрее. Узнайте, как ваш выбор массивов, связанных списков и хэш-таблиц может существенно повлиять на код, который вы пишете. Используйте рекурсию для решения сложных задач и создавайте алгоритмы, которые работают экспоненциально быстрее, чем альтернативы. Изучите передовые структуры данных, такие как двоичные деревья и графики, чтобы помочь масштабировать специализированные приложения, такие как социальные сети и программное обеспечение для карт. Практикуйтесь с помощью упражнений в каждой главе и подробных решений.
Скачать книгу
Автор: Jay Wengrow (2020)
Алгоритмы и структуры данных - это гораздо больше, чем абстрактные концепции. Их освоение позволяет писать код, который работает быстрее и эффективнее, что особенно важно для современных веб-приложений и мобильных приложений. Данное новое и исправленное издание включает в себя новые главы о рекурсии, динамическом программировании и использовании Big O нотации в повседневной работе.
Используйте Big O, чтобы измерить и сформулировать эффективность вашего кода, и измените свои алгоритмы, чтобы сделать их быстрее. Узнайте, как ваш выбор массивов, связанных списков и хэш-таблиц может существенно повлиять на код, который вы пишете. Используйте рекурсию для решения сложных задач и создавайте алгоритмы, которые работают экспоненциально быстрее, чем альтернативы. Изучите передовые структуры данных, такие как двоичные деревья и графики, чтобы помочь масштабировать специализированные приложения, такие как социальные сети и программное обеспечение для карт. Практикуйтесь с помощью упражнений в каждой главе и подробных решений.
Скачать книгу
👍15