Тааак, кажется надо объяснить)
Бот из прошлого поста вот для чего:
Видите интересную новость или статью, прямо очень интересную, но если ее добавить в ридинг лист, то очередь до нее дойдет примерно никогда. Вы берете, бросаете ссылку в бот, он возвращает озвученную, вы слушаете со свободными руками и глазами. Почти как подкаст. Профит!!1)
Бросить ссылку на главную яндекса, амазона, или новостного издания можно, но что там вам читать – решительно непонятно ;)
Ссылки, которые доступны после авторизации, тоже особо ничего не покажут.
Ну вы поняли)
p.s. Спасибо Ульяне, она увидела, что википедию то я провтыкал( на выходных поправлю.
Бот из прошлого поста вот для чего:
Видите интересную новость или статью, прямо очень интересную, но если ее добавить в ридинг лист, то очередь до нее дойдет примерно никогда. Вы берете, бросаете ссылку в бот, он возвращает озвученную, вы слушаете со свободными руками и глазами. Почти как подкаст. Профит!!1)
Бросить ссылку на главную яндекса, амазона, или новостного издания можно, но что там вам читать – решительно непонятно ;)
Ссылки, которые доступны после авторизации, тоже особо ничего не покажут.
Ну вы поняли)
p.s. Спасибо Ульяне, она увидела, что википедию то я провтыкал( на выходных поправлю.
#Задачка_28
Думали здесь уже не будет задачек? А вот получите)
Нужно реализовать функцию
Напоминаю, хороший ответ, это не кусок кода, а описание хода мысли который к этому коду привел) Кусок кода мы и сами можем с лодаша достать.
Думали здесь уже не будет задачек? А вот получите)
Нужно реализовать функцию
getWithPath
, которая принимает object
и строку path
, а возвращает значение поля с object
. Пример кода:const cat = { body: { paws: [{ type: 'top right' }]}};Свои варианты решения присылайте @voloshchenkoal, он обещает почти всем ответить и до конца недели сделать разбор.
const propertyPath = 'body.paws[0].type';
getWithPath(cat, propertyPath);
// 'top right'
Напоминаю, хороший ответ, это не кусок кода, а описание хода мысли который к этому коду привел) Кусок кода мы и сами можем с лодаша достать.
А пока Саша готовит разбор прошлой задачки (хороший будет разбор, я видел)),
мы с другими коллегами записали подкаст.
В нем будет много новостей и мнений. Не только про apple, но и про apple тоже.
Планируем выйти на периодичность раз в месяц, так что подписывайтесь, не стесняйтесь)
https://www.youtube.com/watch?v=4iwh5F7FkDA
мы с другими коллегами записали подкаст.
В нем будет много новостей и мнений. Не только про apple, но и про apple тоже.
Планируем выйти на периодичность раз в месяц, так что подписывайтесь, не стесняйтесь)
https://www.youtube.com/watch?v=4iwh5F7FkDA
YouTube
It's raining cats & dogs 1. Ну Apple как Apple. 10 лет Тима Кука. Полезные тулы и немного о работе
Обсуждаем технологические новости и работу.
Сережа Бутенко – https://twitter.com/serejahh
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.co…
Сережа Бутенко – https://twitter.com/serejahh
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.co…
Саша уже дописал разбор #Задачка_28, но он получился таким объемным, что не влезет в одно сообщение, отсюда вопрос: Как нам лучше это опубликовать?
Anonymous Poll
43%
Давай ссылку на gist!
29%
Разбей на несколько постов
28%
Да как-нибудь, лишь бы точно завтра вышла
Разбор #Задачка_28 начинается с варианта для техлида, продолжается эвалом который лучше не надо, а дальше такое... А какое дальше, читайте здесь – https://gist.github.com/VoloshchenkoAl/e3bef6e66d3eef4bc81a3246dd027061
Второй выпуск подкаста, который я делаю с коллегами.
Обсуждаем новости и работу.
Контент плотнее, картинка уютнее, звук чище)
Ну и в начале меня уносит в краткую историю браузерного средневековья)
Хотя здесь об этом все и так знают.
Не забывайте подписаться на канал, чтобы не пропустить новое интересное.
А лайк надо поставить, чтобы видео посмотрели побольше людей, нам это очень важно.
https://youtu.be/3ZUx__Rvu9A
Обсуждаем новости и работу.
Контент плотнее, картинка уютнее, звук чище)
Ну и в начале меня уносит в краткую историю браузерного средневековья)
Хотя здесь об этом все и так знают.
Не забывайте подписаться на канал, чтобы не пропустить новое интересное.
А лайк надо поставить, чтобы видео посмотрели побольше людей, нам это очень важно.
https://youtu.be/3ZUx__Rvu9A
YouTube
It's raining cats & dogs 2. Упал Facebook и не только. Twitch стал opensource. И три байки про Apple
Маша Голубева – https://www.facebook.com/mk.holubieva
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857…
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857…
#Задачка_29
Нужно написать функцию
Если при вызове переданная функция бросает исключение, то она вызывается повторно, но не больше, чем заданное количество раз во втором параметре.
Пример кода:
Нужно написать функцию
retry
, которая принимает два параметра: асинхронную функцию, которую будет вызывать и число попыток. Если при вызове переданная функция бросает исключение, то она вызывается повторно, но не больше, чем заданное количество раз во втором параметре.
Пример кода:
const getUserInfo = async () => {
const response = await fetch('/api/for/user');
const userInfo = await response.json();
return userInfo;
}
retry(getUserInfo, { retries: 3 });
Свои развернутые ответы присылайте @voloshchenkoalРазбор #Задачка_29
Первый вариант
Решение через рекурсию от Артема
> Минусы решения в коде
1. Надо добавить параметр
2. Обрабатывать ошибку, которую может вернуть
3. Вероятно добавить
4. Нужны стратегии (линейная, инкрементальная и тд), через какое время делать ретрай
5. Нужны логи и стратегии их отображения: когда и куда писать, например для дебага
6. Описание, типы, тесты и валидация аргументов, конфига (все ли поля используем, или есть опечатки)
> Минусы решения в подходе
1. Переданная функция должна быть идемпотентной (если повезет - это at least once, явно не exact once)
2. В случаи АПИ запроса - ретраить нужно не все статусы ответов, чтобы не заДДОсить
Пункты про стратегию повторных ретраев очень важны. Ведь без таких стратегий можно себя задедосить. Такое, например, было в Signal.
Стратегию повторных ретраев с задержкой по времени принято называть экспоненциальной выдержкой или Exponential Backoff. Больше про нее можно прочитать здесь
Второй вариант
Из задачи #Задачка_28 мы знаем, что рекурсию можно заменить циклом. #Задачка_29 не исключение
Решение через цикл от aslanator:
Вроде больше нечего сказать, несколько раз делал подобное в реальных проектах на работе.
Третий вариант
Хитрое и очень прикольное решение от Владимира
> Проблема кроется в самом Promise.any. Из документации следует, что данный метод вызывает все промисы из массива и дожидается, когда один из них будет выполнен или выкинет ошибку в случае не исполнения никакого промиса.
В конечном итоге, если данная функция будет вызвана с большим кол-во
Первый вариант
Решение через рекурсию от Артема
const retry = async (fn, { retries }) => {
try {
return await fn();
} catch (e) {
if (retries > 0) {
return retry(fn, { retries: retries - 1 });
}
throw e;
}
};
Лаконичное решение, мне очень нравится. Но оно не совсем подходит для прода. Автор описал свои мысли почему:> Минусы решения в коде
1. Надо добавить параметр
timeoutMs
в config2. Обрабатывать ошибку, которую может вернуть
fn
, возможно, не надо ретраить3. Вероятно добавить
retryWhen
колбэк параметром4. Нужны стратегии (линейная, инкрементальная и тд), через какое время делать ретрай
5. Нужны логи и стратегии их отображения: когда и куда писать, например для дебага
6. Описание, типы, тесты и валидация аргументов, конфига (все ли поля используем, или есть опечатки)
> Минусы решения в подходе
1. Переданная функция должна быть идемпотентной (если повезет - это at least once, явно не exact once)
2. В случаи АПИ запроса - ретраить нужно не все статусы ответов, чтобы не заДДОсить
Пункты про стратегию повторных ретраев очень важны. Ведь без таких стратегий можно себя задедосить. Такое, например, было в Signal.
Стратегию повторных ретраев с задержкой по времени принято называть экспоненциальной выдержкой или Exponential Backoff. Больше про нее можно прочитать здесь
Второй вариант
Из задачи #Задачка_28 мы знаем, что рекурсию можно заменить циклом. #Задачка_29 не исключение
Решение через цикл от aslanator:
async function retry(callback, options = { retries: 0 }) {
let { retries } = options;
while (retries > 0) {
try {
return await callback();
} catch (e) {
retries--;
}
}
return await callback();
}
> Ход мысли тут достаточно прямолинейный, нам просто нужно отлавливать ошибку и заново запускать скрипт, пока не истекут попытки. Чтобы в конце вывести ошибку, я делаю повтором меньше на 1, а в конце просто отдаю callback.Вроде больше нечего сказать, несколько раз делал подобное в реальных проектах на работе.
Третий вариант
Хитрое и очень прикольное решение от Владимира
const retry = (func, { retries = 3 }) => {
const promises = Array.from({length: retries}, () => func());
return Promise.any(promises);
}
Размышление автора про минусы в своем подходе:> Проблема кроется в самом Promise.any. Из документации следует, что данный метод вызывает все промисы из массива и дожидается, когда один из них будет выполнен или выкинет ошибку в случае не исполнения никакого промиса.
В конечном итоге, если данная функция будет вызвана с большим кол-во
retries
(200 к примеру), то есть вероятность упасть в ошибку самого браузера по количеству запросов.#Задачка_30 на верстку, пятница же.
Нужно сверстать header как на скрине. Логотип расположен посередине шапки без учета кнопки меню. Но есть одно условие — нельзя использовать
Снипеты кода шлите @voloshchenkoal, самый изящный вариант выложим сюда в канал.
Нужно сверстать header как на скрине. Логотип расположен посередине шапки без учета кнопки меню. Но есть одно условие — нельзя использовать
position
Снипеты кода шлите @voloshchenkoal, самый изящный вариант выложим сюда в канал.
Третий выпуск подкаста, который я делаю с коллегами.
Обсуждаем новости и работу.
Новые макбуки обсудили прямо полностью. И договорили про Фаерфокс.
Учитывая, что сюда на канал вернулись задачки, видосу можно и лайк поставить, а на ютубе подписаться)
https://youtu.be/IfgnRoNbmFc
Обсуждаем новости и работу.
Новые макбуки обсудили прямо полностью. И договорили про Фаерфокс.
Учитывая, что сюда на канал вернулись задачки, видосу можно и лайк поставить, а на ютубе подписаться)
https://youtu.be/IfgnRoNbmFc
YouTube
It's raining cats & dogs 3 | Возвращение MagSafe в MacBook Pro. Гордость Firefox. Meta гражданство.
Алексей Соболевский – https://t.me/nertenland
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857
https:/…
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857
https:/…
В последнем регулярном выпуске ДОУ подкаста я говорил, что взрослым людям пора бы знать, сколько они денег хотят получать. Меня за это много критиковали. Но мой поинт был в том, что по большому счету, все ж все знают. Компании заказывают исследования рынка, а разработчики могут посмотреть результаты зарплатного опроса ДОУ.
Опрос ДОУ не социологический, там нет никаких коррекций и всяких социологических штучек. Все очень просто, чем больше людей заполнит анкету, тем точнее данные.
Все результаты анонимизируются и выкладываются на гитхаб.
Заполняйте, если еще не
https://dou.ua/goto/KPCy
p. s. Мой прогноз: медианная зарплата выросла на процентов 10 за год, не больше
Опрос ДОУ не социологический, там нет никаких коррекций и всяких социологических штучек. Все очень просто, чем больше людей заполнит анкету, тем точнее данные.
Все результаты анонимизируются и выкладываются на гитхаб.
Заполняйте, если еще не
https://dou.ua/goto/KPCy
p. s. Мой прогноз: медианная зарплата выросла на процентов 10 за год, не больше
Итоги года и новостей по версии меня с коллегами.
Пою оду флаттеру. Не верю в метаверс. И отказываюсь верить в документацию (ну почти).
Хотя большинство моих теперешних коллег занимаются макос-разработкой, но обсуждаем мы темы скорее общеайтишные.
По секрету еще скажу. На этом ютуб канале в следующем году будет новое шоу, а уже на следующей неделе оочень прикольный технический доклад. Все в этот канал не запостишь, потому очень надо подписываться)
https://youtu.be/-TjGHP8o5_I
Пою оду флаттеру. Не верю в метаверс. И отказываюсь верить в документацию (ну почти).
Хотя большинство моих теперешних коллег занимаются макос-разработкой, но обсуждаем мы темы скорее общеайтишные.
По секрету еще скажу. На этом ютуб канале в следующем году будет новое шоу, а уже на следующей неделе оочень прикольный технический доклад. Все в этот канал не запостишь, потому очень надо подписываться)
https://youtu.be/-TjGHP8o5_I
YouTube
It’s raining cats & dogs 4 | Итоги года. Комиссия App Store. Жизнь Metaverse. Security vs Usability
Вера Ткаченко – https://twitter.com/ivira
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857
https://pod…
Сережа Кривоблоцкий – https://twitter.com/Krivoblotsky
Юра Федоренко – https://t.me/callforward
Наш подкаст есть и на подкаст площадках:
https://podcasts.apple.com/ua/podcast/macpaw-tech/id1590627857
https://pod…
Ну и чтобы новый год был легким, держите простенькую #Задачка_31, она в стиле старой доброй parseInt :)
Что будет в консоли и почему?
Что будет в консоли и почему?
[42, 10, 1, 3].sort()
Свои развернутые объяснения присылайте @voloshchenkoalForwarded from addmeto (Grigory Bakunov 🧪)
В @zatelekom хорошая инструкция о том, что делать, если начинает отключаться интернет. Перевели на английский и украинский, чтобы смогли прочитать все
Telegram
ЗаТелеком 🌐
ИНСТРУКЦИЯ НА КАНАЛЕ
(автоповтор, потому что важно)
Презентацию по поводу шатдауна в Казахстане я уже публиковал, но, как говорится, повторенье — мать ученья.
А тут у нас очень плохая ситуация в Украине, Беларуси, Польше и странах Прибалтики, которые _может_…
(автоповтор, потому что важно)
Презентацию по поводу шатдауна в Казахстане я уже публиковал, но, как говорится, повторенье — мать ученья.
А тут у нас очень плохая ситуация в Украине, Беларуси, Польше и странах Прибалтики, которые _может_…
Не вимикайте геолокацію
Upd. Так, можуть дивитись на гугл-карти, але якщо ви їх використовуєте, то вас і так видно. І звісно у військових можуть бути свої протоколи.
Але якщо ви сидите в підвалі бомбосховища, геолокація вам загрожує менше ніж ліхтарик.
Upd 2. Гугл вимкнув для України функцію Людне місце
Upd 3. Як правильно зазначають в коментарях, сам по собі включений мобільний телефон є джерелом сигналу. Якщо можете виключити телефон… але ж цього ніхто не зробить, так?)
Upd. Так, можуть дивитись на гугл-карти, але якщо ви їх використовуєте, то вас і так видно. І звісно у військових можуть бути свої протоколи.
Але якщо ви сидите в підвалі бомбосховища, геолокація вам загрожує менше ніж ліхтарик.
Upd 2. Гугл вимкнув для України функцію Людне місце
Upd 3. Як правильно зазначають в коментарях, сам по собі включений мобільний телефон є джерелом сигналу. Якщо можете виключити телефон… але ж цього ніхто не зробить, так?)
Зараз на ДОУ йде збір грошей на літачок для нашої армії. $1млн.
Я знаю, що реалістичні прогнози редакції передбачали, що на це знадобиться тижні три.
І ось пройшло 12 годин, а вже зібрано дві третини. Люди — неймовірні.
Я вважаю, що допомагати армії — це найважливіше, що зараз можна робити, бо як сказала дружина нашого президента: Дитяче харчування буде непотрібним, якщо діти загинуть…
https://dou.ua/forums/topic/37811/
p.s. Знаю, что здесь треть аудитории из россии, если вы с чем-то несогласны, или вам кажется, что вы на этот канал не для того подписывались.. я тоже так думал, но у меня есть одно обстоятельство, страна, которой вы платите налоги, пытается нас убивать. Если у вас есть совесть, то фонд Повернись живим принимает донаты в крипте.
Я знаю, що реалістичні прогнози редакції передбачали, що на це знадобиться тижні три.
І ось пройшло 12 годин, а вже зібрано дві третини. Люди — неймовірні.
Я вважаю, що допомагати армії — це найважливіше, що зараз можна робити, бо як сказала дружина нашого президента: Дитяче харчування буде непотрібним, якщо діти загинуть…
https://dou.ua/forums/topic/37811/
p.s. Знаю, что здесь треть аудитории из россии, если вы с чем-то несогласны, или вам кажется, что вы на этот канал не для того подписывались.. я тоже так думал, но у меня есть одно обстоятельство, страна, которой вы платите налоги, пытается нас убивать. Если у вас есть совесть, то фонд Повернись живим принимает донаты в крипте.
DOU
ІТ-спільното, купимо армії «літачок»? Збираємо $ 1 000 000 на сучасний комплекс PD-2
Збираємо $ 1 000 000 (або 30 000 000 грн) для “Повернись живим”. Вони придбають комплекс PD-2 та передадуть за призначенням — дли знищення русні!
Привіт!
І це знову пост не про джаваскрипт. Бо війна триває, а ми поки що не перемогли.
Але хочу розказати вам про свого друга, звати Сергій, він теж розробник та керує розробкою для школі де я багато років викладав.
А ще Сергій воює, і багато волонтерить.
А прямо зараз збирає гроші на Мавік, а серед тих хто задонатить розіграє кейс від джавеліну.
Це саме той випадок збору, коли зрозуміло кому, зрозуміло навіщо, і відомо, що точно буде толк.
https://www.instagram.com/p/CnEdlyGIn5K/?igshid=NTdlMDg3MTY=
І це знову пост не про джаваскрипт. Бо війна триває, а ми поки що не перемогли.
Але хочу розказати вам про свого друга, звати Сергій, він теж розробник та керує розробкою для школі де я багато років викладав.
А ще Сергій воює, і багато волонтерить.
А прямо зараз збирає гроші на Мавік, а серед тих хто задонатить розіграє кейс від джавеліну.
Це саме той випадок збору, коли зрозуміло кому, зрозуміло навіщо, і відомо, що точно буде толк.
https://www.instagram.com/p/CnEdlyGIn5K/?igshid=NTdlMDg3MTY=
Сані важко рекламувати кожен випуск, а мені прямо неспокійно що хтось не побачить цю розмову, бо вона прекрасна абсолютно.
Слухаєш, і думаєш: як же добре що я не пішов в мобільну розробку)
Слухаєш, і думаєш: як же добре що я не пішов в мобільну розробку)
Forwarded from Bite the Byte
Як там у вас, продуктивна п’ятниця? Давайте це виправимо новим випуском 1-2-3 Techno! Мені важко рекламувати кожен випуск, бо ж не можеш сказати “от раніше було так собі, а тепер ого-го”, раніше теж все добре було, але… ну ви кароч зрозуміли, я прям чекав публікації цього випуску з нетерпінням. :)
YouTube
Робити кастомний браузер — складно | Про мобільну розробку та Full Stack команду | Сергій Мокієнко
🎧 У шостому випуску подкасту 1-2-3 Techno ми запросили Сергія Мокієнко, аби трохи порефлексувати про мобільну розробку. Чому створення мобільного застосунку — це дороге задоволення, як Сергію довелося стати Full Stack розробником та про унікальний досвід…