Viktor
Вчера и сегодня самые интересные задачи из всех что я пока решал в js секции
согласен, реально достойные начались, не зря medium 😊
Stas
Ага, есть пара любимых задачек, хотел попробовать
Lea
Ааа нет, это с позавчерашней 5 строчек, пардон)
Viktor
А почему с race не работало? Там буквально в 5 строчек выходит
да вот я поэтому стал рейс вкручивать потому что в предыдущей задаче так было 😃
Viktor
но в данном случае надо следить за всеми промисами, а не только первым, который завершится
Oleg
Я просто не знаю как тот же редис работает, он периодически что-то в persistent storage записывает или никогда?
Там можно включить и отключить. Записывает вроде раз в какое-то время + может увидеть накопившееся количество изменений, если мне не изменяет память
Lynn «Кофеман»
Мне казалось я что-то такое делал именно на race. Доберусь до компа попробую вспомнить
Lynn «Кофеман»
Ну в общем моё решение с Promise.race, Promise.all и async/await (комбо 😂) ``` var promisePool = async function(functions, n) { const s = new Set(); for (const f of functions) { if (s.size >= n) { await Promise.race([...s]); } const p = f(); p.finally(() => s.delete(p)); s.add(p); } await Promise.all([...s]); }; ```
Viktor
Ну в общем моё решение с Promise.race, Promise.all и async/await (комбо 😂) ``` var promisePool = async function(functions, n) { const s = new Set(); for (const f of functions) { if (s.size >= n) { await Promise.race([...s]); } const p = f(); p.finally(() => s.delete(p)); s.add(p); } await Promise.all([...s]); }; ```
А в текущем решении не будет такого, что добавили один промис и ждём, потом добавили еще один, и т.д. Вместо того чтобы сразу пачку добавить и запустить?
TheHesoyam
https://kamranahmed.info/blog/2016/08/13/http-in-depth 🖖 Что можно еще почитать по теме и где с этим можно попрактиковаться?
Viktor
https://kamranahmed.info/blog/2016/08/13/http-in-depth 🖖 Что можно еще почитать по теме и где с этим можно попрактиковаться?
решил глянуть что с поддержкой https://caniuse.com/http2 и кажись уже все норм давно 😃
Viktor
я почему-то думал, что http2 еще не там
slisnychyi
по http еще могу порекомендовать книжку. очень неплохая https://www.manning.com/books/http2-in-action
Lynn «Кофеман»
я почему-то думал, что http2 еще не там
http2 уже не там. Слишком переусложнённый и никто его целиком не сделал. Сейчас уже модно http3
Viktor
http2 уже не там. Слишком переусложнённый и никто его целиком не сделал. Сейчас уже модно http3
а что значит целиком не сделал? в смысле браузеры не заимплементили?
Lynn «Кофеман»
Сервера. В частности тот же сервер-пуш
Lynn «Кофеман»
Ну и никто так и не сумел придумать как его правильно использовать, так что не полетело.
Viktor
Сервера. В частности тот же сервер-пуш
а, то есть разработчики приложений не захотели / не смогли
Lynn «Кофеман»
Так для чатов есть ws А пуш был именно про пропихивание ассетов. «Ты попросил index.html, но я точно знаю что тебе понадобится ещё вот этот CSS и эти три картинки и эти 10 мегабайт скриптов…» =)
Sergei
https://apps.apple.com/us/app/openai-chatgpt/id6448311069 официальное приложение подъехало
Lynn «Кофеман»
А то что у тебя уже эти 10 мегабайт закешированы меня не волнует
Lynn «Кофеман»
В общем — сложно, нужно почти никому почти никогда поэтому не полетело
Lynn «Кофеман»
В HTTP/3 эту часть вообще выкинули.
Lynn «Кофеман»
ЗЫ. Но я не настоящий сварщик =)
Viktor
Ну, что сказать, нормальный рабочий процесс. Сделали вторую версию, есть проблемки, надо делать третью версию где все починить
Sergei
К сожалению, да
TheHesoyam
А то что у тебя уже эти 10 мегабайт закешированы меня не волнует
Получается только как инишел лоадинг если надо связанные данные передать?
Lynn «Кофеман»
Да вот чёрт знает. Кажется никто так и не понял :)
TheHesoyam
В HTTP/3 эту часть вообще выкинули.
https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/ Про него тут читал) Вопрос тот же 😅 как можно попрактиковаться? Что еще можно почитать?
Lynn «Кофеман»
А что значит «попрактиковаться в http/3»?
Lynn «Кофеман»
https://calendar.perfplanet.com/2022/http-3-prioritization-demystified/ Вот ещё в начале года в подкасте проскакивало про приоритезацию в HTTP3
TheHesoyam
А что значит «попрактиковаться в http/3»?
пример с node.js и поддержка браузеров https://stackoverflow.com/questions/65531418/debugging-http3-setup
TheHesoyam
пример с node.js и поддержка браузеров https://stackoverflow.com/questions/65531418/debugging-http3-setup
Кстати, смотрет плейлист у https://youtube.com/@FrontEndEngineer, у него все на http2 остановилось
🎄Ilya
https://www.reddit.com/r/forza/comments/13lgwv3/horizon_4_map_vs_google_maps/
Евгений
Всем привет, проходил кто-то курс от литкода по алгоритмам? https://leetcode.com/explore/featured/card/leetcodes-interview-crash-course-data-structures-and-algorithms/
Viktor
я могу все объяснить! 😂
Viktor
Он объяснил?
старался как мог https://habr.com/ru/companies/kts/articles/735104/
Ilia
старался как мог https://habr.com/ru/companies/kts/articles/735104/
Интересно, но собственно почему бы и нет? Задачу решило, значит подход не стоит отбрасывать
Ilia
Пустил слезу на пайплайн в 10 минут :D
Владъ
я могу все объяснить! 😂
это же уже старое вроде года 2 назад уже эту тему кто-то поднимал и обсуждали
Владъ
вот https://www.jackfranklin.co.uk/blog/check-in-your-node-dependencies/
Владъ
вообще, если есть отдельный контейнер для тестов и деплоя, то можно хранить именно там зависимости. тем более если они редко меняются
Порридж В Ко-ливинге
Блин, chatGPT пофиксили багу, где если карточка не срабатывает, тебе не отменяют подписку и больше не списывает деньги 🤣
Порридж В Ко-ливинге
Я так хотел поиграться 1 месяц, вставил одноразовую карточку, а через 2 месяца заметил что у меня он не отменился
Null
Сел на досуге порешать рандомную задачку с литкода и подзавис на полчаса. Вот это нынче "easy" пошли! 😊 Есть две строки. Разрешается сделать ровно одну перестановку символов в первой строке. Можно ли таким образом получить вторую строку? Звучит проще некуда, но дьявол в деталях. P.S. В лоб, за квадрат, не решается -- строки 2 * 10^4 длины.
Viktor
оно так и есть, но как садишься писать то тут то там тест падает 😃
например, в "aa" можно переставить местами символы и получить "aa"
Ilia
оно так и есть, но как садишься писать то тут то там тест падает 😃
Хм, странно, вроде находишь два индекса, return s[i]===t[j]&&s[j]===t[i]
Ilia
а с тестом выше будет работать?
А вторая строка какая?
Viktor
"aa"
Viktor
А вторая строка какая?
переставил местами "a" и получил вторую строку "aa" 😃
Ilia
"aa"
Тогда 0 символов не на своем месте, ранний выход с false , потому что условие проверяем только когда ровно 2 символа не на своем месте
Ilia
"ab" и "ab" должны вернуть false — ноль символов не на своем месте
Мне с телефона идя по дороге лень писать, позже напишу )
Viktor
Мне с телефона идя по дороге лень писать, позже напишу )
кидай варианты сюда, я буду в чатджипити забивать 😂
Viktor
Мне с телефона идя по дороге лень писать, позже напишу )
спасибо, что не выключил уведомления в канале ❤️
Николай
Запоминаешь место каждого несовпадения. Оно должно быть одно в каждой строке. Проверяешь что на несовпадающих местах стоят переставленные символы. За Н все решается
Viktor
"aa" — нет никаких несовпадений
но прекрасно переставляется в "aa"
Николай
"aa" — нет никаких несовпадений
Значит еще надо понять что есть два одинаковых символа. Битового массива длиной с алфавит хватит и флага
Ilia
Зачем? Нужен массив из трех элементов. Итерируемся по строке, s[i]!==t[i] пушим в массив, в массиве стало 3 элемента, возвращаем false, после проход если массив не равен длине 2-возвращаем false, после этого перекрестно сравниваем символы и возвращаем, константа по памяти, линия по сложности
Ilia
Все, теперь понял, я неправильно условие дочитал, aa и aa должны вернуть true, а не false
Ilia
Тогда будет так
Ilia
Зачем? Нужен массив из трех элементов. Итерируемся по строке, s[i]!==t[i] пушим в массив, в массиве стало 3 элемента, возвращаем false, после проход если массив не равен длине 2-возвращаем false, после этого перекрестно сравниваем символы и возвращаем, константа по памяти, линия по сложности
Вот это, плюс если количество несовпадений не равно 0 или 2, то возвращаем false Проходим второй раз, если хотя бы одна буква повторяется дважды и количество несовпадений 0, то return true, если несовпадений 2-сравниваем перекрестно