#статьи
🤓 Как 9.3 уязвимость ждала открытия 3 года
Я расскажу, как мы нашли в Next.js уязвимость с оценкой 9.3, которая спокойно пряталась в middleware аж три года, пока её никто не трогал.
Читать статью
👉 Новости 👉 База вопросов
Я расскажу, как мы нашли в Next.js уязвимость с оценкой 9.3, которая спокойно пряталась в middleware аж три года, пока её никто не трогал.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как 9.3 уязвимость ждала открытия 3 года
На днях мы с Ясером Алламом (Yasser Allam), он же _inzo , объединились, чтобы провести совместное исследование. Обсудив список потенциальных жертв целей, выбор пал на уже хорошо мне знакомый Next.js ....
❤1
#статьи
😴 Что бы я хотел знать о Postgres, когда начал его изучать
Я профессионально работаю над веб-приложениями уже более десяти лет, и за это время пришлось научиться использовать множество различных систем и инструментов. В процессе обучения я обнаружил, что официальная документация, как правило, оказывается наиболее полезной.
Читать статью
👉 Новости 👉 База вопросов
Я профессионально работаю над веб-приложениями уже более десяти лет, и за это время пришлось научиться использовать множество различных систем и инструментов. В процессе обучения я обнаружил, что официальная документация, как правило, оказывается наиболее полезной.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Заметки разработчика
Что бы я хотел знать о Postgres, когда начал его изучать
Занимаясь разработкой веб-приложений более десяти лет, и освоив множество систем и инструментов. Я заметил, что официальная документация наиболее ценный источник информации.
❤1
#видео
🛞 Что такое Nuxt.js?
Nuxt.js — это фреймворк для разработки сайтов и веб-приложений на основе Vue.js. Если Vue.js — это просто инструмент для создания интерфейсов, то Nuxt.js добавляет удобные «фишки» и делает работу с Vue быстрее и проще. В данном видео автор рассказывает об особенностях Nuxt.js.
📱 Смотреть видео
👉 Новости 👉 База вопросов
Nuxt.js — это фреймворк для разработки сайтов и веб-приложений на основе Vue.js. Если Vue.js — это просто инструмент для создания интерфейсов, то Nuxt.js добавляет удобные «фишки» и делает работу с Vue быстрее и проще. В данном видео автор рассказывает об особенностях Nuxt.js.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#собес
🤔 Как использовать декораторы в контроллере NestJS?
Декораторы в NestJS используются для назначения методов контроллера, которые обрабатывают определенные НТТР-запросы. Примером является
👉 Новости 👉 База вопросов
Декораторы в NestJS используются для назначения методов контроллера, которые обрабатывают определенные НТТР-запросы. Примером является
@Get
() , который указывает, что метод будет обрабатывать GET-запрос. Декораторы также могут использоваться для извлечения данных из запроса, например, @Param()
, @Query()
и @Body()
-Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
📞 Novu — это открытая платформа для управления уведомлениями, предназначенная для разработчиков!
✅ Она предоставляет единый API для отправки уведомлений через различные каналы, включая встроенные уведомления в приложении (In-App), push-уведомления, электронную почту, SMS и чаты. С помощью Novu можно создавать настраиваемые рабочие процессы и определять условия для каждого канала, обеспечивая эффективную доставку уведомлений пользователям.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😊 localeCompare
localeCompare() — это метод строк, который сравнивает две строки с учётом языка и алфавита. Благодаря данной статье ты узнаешь, как можно с помощью этого метода правильно и удобно сортировать строки с учетом языка.
Читать статью
👉 Новости 👉 База вопросов
localeCompare() — это метод строк, который сравнивает две строки с учётом языка и алфавита. Благодаря данной статье ты узнаешь, как можно с помощью этого метода правильно и удобно сортировать строки с учетом языка.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
LocaleCompare в JavaScript: правильная и удобная сортировка строк с учетом языка
Привет, меня зовут Дмитрий, я React-разработчик, и сегодня хочу рассказать о методе localeCompare в JavaScript. Мне кажется, что этот метод не так часто используется при сортировке строк, хотя он...
❤1👍1
#ЛитКод
Задача: 656. Coin Path
Вам дан целочисленный массив монет (1-индексированный) длины n и целое число maxJump. Вы можете перейти на любой индекс i массива coins, если coins[i] != -1 и вы должны заплатить coins[i] при посещении индекса i. Кроме того, если вы в данный момент находитесь на индексе i, вы можете перейти только на любой индекс i + k, где i + k <= n и k - значение в диапазоне [1, maxJump]. Изначально вы находитесь на индексе 1 (coins[1] не -1). Вы хотите найти путь, который достигнет индекса n с минимальной стоимостью. Верните целочисленный массив индексов, которые вы посетите в таком порядке, чтобы достичь индекса n с минимальной стоимостью. Если существует несколько путей с одинаковой стоимостью, верните лексикографически наименьший такой путь. Если невозможно достичь индекса n, возвращается пустой массив. Путь p1 = [Pa1, Pa2, ..., Pax] длины x лексикографически меньше, чем p2 = [Pb1, Pb2, ..., Pbx] длины y, если и только если при первом j, где Paj и Pbj отличаются, Paj < Pbj; если такого j нет, то x < y.
Пример:
👨💻 Алгоритм:
1⃣ Используйте динамическое программирование для нахождения минимальной стоимости до каждого индекса, начиная с первого.
2⃣ Храните путь до каждого индекса для отслеживания наименьшего лексикографического пути.
3⃣ Используя полученную информацию, восстановите путь с минимальной стоимостью до последнего индекса.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 656. Coin Path
Вам дан целочисленный массив монет (1-индексированный) длины n и целое число maxJump. Вы можете перейти на любой индекс i массива coins, если coins[i] != -1 и вы должны заплатить coins[i] при посещении индекса i. Кроме того, если вы в данный момент находитесь на индексе i, вы можете перейти только на любой индекс i + k, где i + k <= n и k - значение в диапазоне [1, maxJump]. Изначально вы находитесь на индексе 1 (coins[1] не -1). Вы хотите найти путь, который достигнет индекса n с минимальной стоимостью. Верните целочисленный массив индексов, которые вы посетите в таком порядке, чтобы достичь индекса n с минимальной стоимостью. Если существует несколько путей с одинаковой стоимостью, верните лексикографически наименьший такой путь. Если невозможно достичь индекса n, возвращается пустой массив. Путь p1 = [Pa1, Pa2, ..., Pax] длины x лексикографически меньше, чем p2 = [Pb1, Pb2, ..., Pbx] длины y, если и только если при первом j, где Paj и Pbj отличаются, Paj < Pbj; если такого j нет, то x < y.
Пример:
Input: coins = [1,2,4,-1,2], maxJump = 2
Output: [1,3,5]
var minCostPath = function(coins, maxJump) {
const n = coins.length;
if (coins[0] === -1) return [];
const dp = new Array(n).fill(Infinity);
dp[0] = coins[0];
const path = Array.from({ length: n }, () => []);
path[0] = [1];
const heap = [[coins[0], 0]];
while (heap.length) {
heap.sort((a, b) => a[0] - b[0]);
const [current_cost, i] = heap.shift();
if (current_cost > dp[i]) continue;
for (let k = 1; k <= maxJump; k++) {
if (i + k < n && coins[i + k] !== -1) {
const new_cost = current_cost + coins[i + k];
if (new_cost < dp[i + k] || (new_cost === dp[i + k] && path[i].concat(i + k + 1) < path[i + k])) {
dp[i + k] = new_cost;
path[i + k] = path[i].concat(i + k + 1);
heap.push([new_cost, i + k]);
}
}
}
}
return dp[n - 1] === Infinity ? [] : path[n - 1];
};
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что содержит объект ошибки?
Объект ошибки в JavaScript содержит информацию, которая помогает диагностировать проблемы. Ключевые свойства объекта ошибки - это
👉 Новости 👉 База вопросов
Объект ошибки в JavaScript содержит информацию, которая помогает диагностировать проблемы. Ключевые свойства объекта ошибки - это
name
(тип ошибки), message
(текст ошибки) и stack
(трассировка вызовов, ведущих к ошибке). Эти данные полезны для выявления причины ошибки и её устранения.Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😊 Jest+Enzyme: Тестирование утилит
Продолжаем делиться циклом видео, где автор рассказывает про тестирование с помощью Jest и Enzyme. В этот раз речь идет про тестирование утилит.
Смотреть видео
👉 Новости 👉 База вопросов
Продолжаем делиться циклом видео, где автор рассказывает про тестирование с помощью Jest и Enzyme. В этот раз речь идет про тестирование утилит.
Смотреть видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Jest + Enzyme #11 Тестирование утилит (Utils Testing)
#YauhenK #webDev #Jest #Enzyme #testing
Всех приветствую в курсе «Jest + Enzyme».
В данном видеокурсе мы с вами рассмотрим тестирование React-приложения и React-компонентов с помощью Jest и Enzyme. Разберём мы данную тему на примере написания Unit тестов.…
Всех приветствую в курсе «Jest + Enzyme».
В данном видеокурсе мы с вами рассмотрим тестирование React-приложения и React-компонентов с помощью Jest и Enzyme. Разберём мы данную тему на примере написания Unit тестов.…
#полезное
🤯 Reubah — это веб-инструмент для редактирования изображений и конвертации документов!
Он представляет собой универсальное решение, поддерживающее множество форматов изображений (JPG, PNG, WebP, GIF, BMP) и документов (PDF, DOCX, DOC, ODT, RTF, TXT). Инструмент создан с акцентом на простоту использования и доступен через веб-интерфейс.
Reubah предлагает функции, такие как пакетная обработка, оптимизация изображений, удаление фона (в разработке) и изолированная среда обработки данных. Инструмент можно быстро установить с помощью Docker, что делает его удобным для локального использования или интеграции в другие проекты.
Гитхаб
👉 Новости 👉 База вопросов
Он представляет собой универсальное решение, поддерживающее множество форматов изображений (JPG, PNG, WebP, GIF, BMP) и документов (PDF, DOCX, DOC, ODT, RTF, TXT). Инструмент создан с акцентом на простоту использования и доступен через веб-интерфейс.
Reubah предлагает функции, такие как пакетная обработка, оптимизация изображений, удаление фона (в разработке) и изолированная среда обработки данных. Инструмент можно быстро установить с помощью Docker, что делает его удобным для локального использования или интеграции в другие проекты.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨💻 PairDrop — это кроссплатформенное приложение для обмена файлами, которое было разработано на основе AirDrop от Apple!
С его помощью можно передавать файлы по локальной сети через веб-браузер или использовать временные публичные комнаты для передачи через интернет. PairDrop совместим со всеми устройствами, которые имеют современные браузеры, и не требует установки, настройки или регистрации.
Гитхаб
👉 Новости 👉 База вопросов
С его помощью можно передавать файлы по локальной сети через веб-браузер или использовать временные публичные комнаты для передачи через интернет. PairDrop совместим со всеми устройствами, которые имеют современные браузеры, и не требует установки, настройки или регистрации.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как обрабатывать ошибки в JavaScript?
B JavaScript ошибки обрабатываются с помощью блока
👉 Новости 👉 База вопросов
B JavaScript ошибки обрабатываются с помощью блока
try... catch
. В блоке try
размещается код, который может вызвать ошибку, а в блоке catch
- инструкции для обработки этой ошибки. Также можно использовать finally
, чтобы выполнить код независимо от того, возникла ошибка или нет. Обработку ошибок можно расширить с помощью кастомных ошибок.Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😬 three.js: Работа с геометрией и объектами
Продолжаем делиться циклом видео, благодаря которым ты научишься пользоваться three.js. В этот раз автор рассказывает, как создавать объекты разной формы. Ты создашь сферу, куб, пончик и плоскую поверхность.
📱 Смотреть видео
👉 Новости 👉 База вопросов
Продолжаем делиться циклом видео, благодаря которым ты научишься пользоваться three.js. В этот раз автор рассказывает, как создавать объекты разной формы. Ты создашь сферу, куб, пончик и плоскую поверхность.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
3D Дизайн на Three.JS / #3 – Работа с геометрией и объектами
Мы научимся создавать объекты разной формы при помощи библиотеки Three JS. Вы научитесь создавать сферу, куб, пончик и плоскую поверхность. Дополнительно вы добавите текстуры для отображения вместо цвета.
✅ Полезные ссылки:
– Урок на сайте itProger: ht…
✅ Полезные ссылки:
– Урок на сайте itProger: ht…
#полезное
🛞 Регулярные выражения: Обратные ссылки
Обратные ссылки в регулярках — это способ повторно использовать то, что уже найдено. Представь, что ты нашёл слово и хочешь проверить, встречается ли оно снова в строке — вот тут и выручают backreference.
Круглые скобки () создают захватывающую группу — кусок текста, который можно запомнить. Ссылки вида \1, \2, … позволяют обратиться к этому фрагменту. \1 — это «повтори то, что нашлось в первой группе (hello)».
👉 Новости 👉 База вопросов
Обратные ссылки в регулярках — это способ повторно использовать то, что уже найдено. Представь, что ты нашёл слово и хочешь проверить, встречается ли оно снова в строке — вот тут и выручают backreference.
Круглые скобки () создают захватывающую группу — кусок текста, который можно запомнить. Ссылки вида \1, \2, … позволяют обратиться к этому фрагменту. \1 — это «повтори то, что нашлось в первой группе (hello)».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#статьи
😊 Как обрабатывать сделки Bitrix24 с помощью Flask и Node.js
Автор показывает, как связать Bitrix24 с Flask и Node.js, чтобы ловить обновления по сделкам, валидировать запросы, вытаскивать ID, проверять сумму и создавать задачи — и всё это без боли и рекурсии.
Читать статью
👉 Новости 👉 База вопросов
Автор показывает, как связать Bitrix24 с Flask и Node.js, чтобы ловить обновления по сделкам, валидировать запросы, вытаскивать ID, проверять сумму и создавать задачи — и всё это без боли и рекурсии.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как обрабатывать сделки Bitrix24 с помощью Flask и Node.js
Привет, Хабр! Сегодня мы будем строить сервис для автоматической обработки сделок в Bitrix24 , используя Flask и Node.js . Этот сервис будет: Принимать вебхуки ONCRMDEALUPDATE. Валидировать...
❤1
#Собес
🤔 Для чего нужны Async/await?
👉 Новости 👉 База вопросов
async/await
- это синтаксис, который упрощает работу с промисами, делая асинхронный код более похожим на синхронный. Функция с ключевым словом async
всегда возвращает промис, а await
приостанавливает выполнение функции до получения результата промиса. Это делает код более читаемым и упрощает обработку ошибок.Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😎 Nuxt.js: Обработка данных по URL
Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться Nuxt.js. В этот раз ты узнаешь, как использовать метод useFetch для работы с данными по URL.
Смотреть видео
👉 Новости 👉 База вопросов
Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться Nuxt.js. В этот раз ты узнаешь, как использовать метод useFetch для работы с данными по URL.
Смотреть видео
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Nuxt JS с нуля / #4 – Обработка данных по URL
За урок вы научитесь получать данные по URL, обрабатывать их и выводить на экран. Вы научитесь использовать метод useFetch для работы с данными по URL.
✅ Полезные ссылки:
– Урок на сайте itProger: https://itproger.com/course/nuxt-js/4
⏰ Тайм-коды:
00:00…
✅ Полезные ссылки:
– Урок на сайте itProger: https://itproger.com/course/nuxt-js/4
⏰ Тайм-коды:
00:00…
#видео
🥺 CSS Flexbox: Обертка элементов с размерами
Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться технологией Flexbox. В этот раз речь идет про вложенность, а также обертку элементов с размерами.
📱 Смотреть видео
👉 Новости 👉 База вопросов
Продолжаем делиться циклом видео, благодаря которому ты научишься пользоваться технологией Flexbox. В этот раз речь идет про вложенность, а также обертку элементов с размерами.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
CSS Flexbox #10 Вложенность. Обёртка элементов с размерами (Nesting. Flex-basis & Flex-wrap)
#YauhenK #webDev #CSS #Flexbox
В данном видеокурсе мы с вами рассмотрим технологию Flexbox.
Flexible Box Layout Module (Flexbox) - представляет собой способ компоновки элементов, в основе лежит идея оси. Другими словами все элементы можно располагать вдоль…
В данном видеокурсе мы с вами рассмотрим технологию Flexbox.
Flexible Box Layout Module (Flexbox) - представляет собой способ компоновки элементов, в основе лежит идея оси. Другими словами все элементы можно располагать вдоль…
#ЛитКод
Задача: 652. Find Duplicate Subtrees
Если задан корень бинарного дерева, верните все дублирующие поддеревья. Для каждого вида дублирующих поддеревьев достаточно вернуть корневой узел любого из них. Два дерева являются дублирующими, если они имеют одинаковую структуру с одинаковыми значениями узлов.
Пример:
👨💻 Алгоритм:
1⃣ Выполните обход дерева и используйте сериализацию для представления каждого поддерева.
2⃣ Храните все сериализованные представления поддеревьев в хэш-таблице и отслеживайте частоту их появления.
3⃣ Найдите поддеревья, которые появляются более одного раза, и верните корневые узлы этих поддеревьев.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 652. Find Duplicate Subtrees
Если задан корень бинарного дерева, верните все дублирующие поддеревья. Для каждого вида дублирующих поддеревьев достаточно вернуть корневой узел любого из них. Два дерева являются дублирующими, если они имеют одинаковую структуру с одинаковыми значениями узлов.
Пример:
Input: root = [1,2,3,4,null,2,4,null,null,4]
Output: [[2,4],[4]]
function TreeNode(val, left, right) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ? null : right)
}
var findDuplicateSubtrees = function(root) {
const count = new Map();
const result = [];
const serialize = (node) => {
if (!node) return "#";
const serial = `${node.val},${serialize(node.left)},${serialize(node.right)}`;
count.set(serial, (count.get(serial) || 0) + 1);
if (count.get(serial) === 2) {
result.push(node);
}
return serial;
};
serialize(root);
return result;
};
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Расскажите про все методы Promise?
Основные методы промиса включают:
👉 Новости 👉 База вопросов
Основные методы промиса включают:
then()
- для обработки успешного выполнения, catch()
- для обработки ошибок, finally()
- для выполнения кода по завершению промиса, независимо от результата. Есть также методы Promise.all()
, Promise.race()
, Promise.allSettled()
И Promise.any()
, которые позволяют работать с несколькими промисами одновременно.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!