Недавно прочитал статью рекомендующую не конкатенировать строки, вместо этого сначала создавать массив, а потом джойнить. Мол массив оказывается быстрее конкатенации.
vs
А сейчас я решил проверить, и накидать простейший бенч. Будет ли всегда быстрее, или же только в определенных кейсах.
И вижу, что только на 400К элементов появляется выигрыш от массива.
Погонять на своей железке.
Поэтому, нужно тщательно проверять все утверждения о скорости и гонять бенчи насвоих целевых устройства, прежде чем применять оптимизации.
Доброго вечера 🧡
result += `some String ${a}`vs
list.push(`some String ${a}`)
result = list.join('')А сейчас я решил проверить, и накидать простейший бенч. Будет ли всегда быстрее, или же только в определенных кейсах.
И вижу, что только на 400К элементов появляется выигрыш от массива.
Погонять на своей железке.
Поэтому, нужно тщательно проверять все утверждения о скорости и гонять бенчи на
Доброго вечера 🧡
❤18👍12🆒3
This media is not supported in your browser
VIEW IN TELEGRAM
У меня вопрос!
Как бы вы реализовали подобное поведение в своем любимом стеке?
Суть:
Эффект сработает, только когда между нажатиями кнопки значение в поле поменялось.
Если закинете в меня пример в REPL или гист буду крайне благодарен.
Как бы вы реализовали подобное поведение в своем любимом стеке?
Суть:
Эффект сработает, только когда между нажатиями кнопки значение в поле поменялось.
Если закинете в меня пример в REPL или гист буду крайне благодарен.
🤔6🗿2🤩1
Forwarded from Nikita Prot
СПб митап начинает трансляцию
https://www.youtube.com/live/ceorSpcg-q4?feature=share
https://www.youtube.com/live/ceorSpcg-q4?feature=share
YouTube
Rust Community Meetup // 11 февраля, Санкт-Петербург
Rust Lang Community и компания «Криптонит» приглашает разработчиков пообщаться в неформальной обстановке, послушать доклады и поделиться опытом в разных сферах разработки.
📅 11 февраля (суббота)
🕑 14:00
Программа:
14:30 - 16:00 | Доклады:
Илья Л.…
📅 11 февраля (суббота)
🕑 14:00
Программа:
14:30 - 16:00 | Доклады:
Илья Л.…
❤🔥11
Я продолжаю извлекать новостные рассылки из почты, чтобы их перенести на news.sova.dev
Но в какой-то момент мне надоело делать это руками, поэтому с вашей помощью я нашел нужный декодер, написал простенький преобразователь html -> markdown, но оставались еще ссылки, которыми revue подменял оригиналы.
Поэтому пришлось сделать простейший markdown ast плагин, который пройдется по ссылкам, развернет редиректы и удалит мусорные utm_ метки.
На удивление, почти никакие почтовые клиенты не предлагают опции "Скачать письмо". Пришлось пересылать самому себе как прикрепление. Это что вообще такое?!
Но в какой-то момент мне надоело делать это руками, поэтому с вашей помощью я нашел нужный декодер, написал простенький преобразователь html -> markdown, но оставались еще ссылки, которыми revue подменял оригиналы.
Поэтому пришлось сделать простейший markdown ast плагин, который пройдется по ссылкам, развернет редиректы и удалит мусорные utm_ метки.
На удивление, почти никакие почтовые клиенты не предлагают опции "Скачать письмо". Пришлось пересылать самому себе как прикрепление. Это что вообще такое?!
👍3🔥3🆒2🥴1
Forwarded from Александр Белькевич </> Frontend вдохновляет
#frontend_mylife
Многие джуны и просто новички говорят "Я не буду спрашивать на форумах и в чатах вопросы, а то сочтут меня за тупого и будут троллить".
Есть такое мнение, что IT-сообщество токсично. На самом деле тут есть доля правда. Многие забывают, какими были 5 лет назад и да, любят потроллить новичков вместо того, чтобы помочь.
Но на самом деле причина в том, что сами новички и довели до этого.
К посту я приложил картинку, которую прислал в чате по Vue один из участников этого чата с вопросом "Как это сделать?". А теперь ответьте, что можно ответить и как помочь? Что человеку нужно? Как сделать верстку? Как подключить карту? Как это разместить в компоненте фреймворка? К сожалению, телепатией люди в чате не обладают.
Еще очень многие любят спрашивать "Как мне это сделать? Я вообще не знаю, напишите мне код". И вот это триггерит сильнее всего, особенно когда не видно того, что человек пытался решить задачу самостоятельно. Хочешь помощи? Покажи, что ты уже пытался реализовать то, о чем спрашиваешь. Покажи свои примеры кода. А не жди, когда за тебя все сделают.
И на самом деле все это идет от того, что:
1. IT мир очень сильно романтизирован. Многие думают, что тут бегают розовые пони и раскидываются деньгами направо и налево.
2. Лень и ощущение того, что тебе должны. Лень решать вопросы самому. "Я попробовал 5 минут, у меня ничего не вышло" - реальный ответ подписчика у меня в инсте после того, как он мне скинул огромную простыню кода со словами "Ну у тебя опыт большой, ты сразу разберешься".
В IT выживают сильнейшие. Которые любят думать и не сваливать ответственность на других. Поэтому когда решите задать свой вопрос в чатах или другим более скиловым разработчикам:
- Убедитесь, что вы сделали все что смогли и у вас реально затык, а не лень разбираться
- Покажите примеры того, как вы пытались решить задачу
- Опишите задачу полностью и сразу, чтобы люди понимали, чем вам помочь
Согласны ли с написанным? Или готовы поспорить или может хочется что-то добавить?
Многие джуны и просто новички говорят "Я не буду спрашивать на форумах и в чатах вопросы, а то сочтут меня за тупого и будут троллить".
Есть такое мнение, что IT-сообщество токсично. На самом деле тут есть доля правда. Многие забывают, какими были 5 лет назад и да, любят потроллить новичков вместо того, чтобы помочь.
Но на самом деле причина в том, что сами новички и довели до этого.
К посту я приложил картинку, которую прислал в чате по Vue один из участников этого чата с вопросом "Как это сделать?". А теперь ответьте, что можно ответить и как помочь? Что человеку нужно? Как сделать верстку? Как подключить карту? Как это разместить в компоненте фреймворка? К сожалению, телепатией люди в чате не обладают.
Еще очень многие любят спрашивать "Как мне это сделать? Я вообще не знаю, напишите мне код". И вот это триггерит сильнее всего, особенно когда не видно того, что человек пытался решить задачу самостоятельно. Хочешь помощи? Покажи, что ты уже пытался реализовать то, о чем спрашиваешь. Покажи свои примеры кода. А не жди, когда за тебя все сделают.
И на самом деле все это идет от того, что:
1. IT мир очень сильно романтизирован. Многие думают, что тут бегают розовые пони и раскидываются деньгами направо и налево.
2. Лень и ощущение того, что тебе должны. Лень решать вопросы самому. "Я попробовал 5 минут, у меня ничего не вышло" - реальный ответ подписчика у меня в инсте после того, как он мне скинул огромную простыню кода со словами "Ну у тебя опыт большой, ты сразу разберешься".
В IT выживают сильнейшие. Которые любят думать и не сваливать ответственность на других. Поэтому когда решите задать свой вопрос в чатах или другим более скиловым разработчикам:
- Убедитесь, что вы сделали все что смогли и у вас реально затык, а не лень разбираться
- Покажите примеры того, как вы пытались решить задачу
- Опишите задачу полностью и сразу, чтобы люди понимали, чем вам помочь
Согласны ли с написанным? Или готовы поспорить или может хочется что-то добавить?
👍58👏8💯8🔥3❤1👎1
Кто пользуется Syncthing, подскажите, у вас тоже скорость передачи файлов между девайсами в одной локальной сети крайне медленная?
У меня 100мб могут передаваться минут 7-10.
У меня 100мб могут передаваться минут 7-10.
🤮4🤔1👀1
Я хотел сам написать статью об Astro.build.
Но уже есть статья, которая отлично показывают плюсы этого движка.
https://www.macarthur.me/posts/what-i-like-about-astro
Но уже есть статья, которая отлично показывают плюсы этого движка.
https://www.macarthur.me/posts/what-i-like-about-astro
Alex MacArthur
What I Like About Astro
What Stuck Out While Migrating My Blog from Next.js to Astro
🔥9😐5❤2👍2
У меня наконец-то дошли руки сделать версионированную документацию для effector.dev.
Политика выпуска версий в effector довольно лояльная к пользователям:
В мажорах удаляем только задепрекейченные в прошлом мажоре фичи. То есть у пользователей effector будет целый год, чтобы переехать на актуальные фичи.
Но также, есть пользователи, которые не обновились с предыдущих версий, и не могут так быстро обновлять свои мажоры. Обычно это связано с политиками установки зависимостей внутри компании. Но ведь потребности в документации у этих команд такие же, как и у тех, кто сидит на bleeding edge.
Теперь на главной странице можно выбрать мажорную версию effector и читать документацию. Когда выйдет effector Spacewatch 23.0.0, на основном сайте будет актуальная документация, а текущая останется на поддомене v22.
В общем-то, это довольно популярная техника версионирования документации.
Политика выпуска версий в effector довольно лояльная к пользователям:
В мажорах удаляем только задепрекейченные в прошлом мажоре фичи. То есть у пользователей effector будет целый год, чтобы переехать на актуальные фичи.
Но также, есть пользователи, которые не обновились с предыдущих версий, и не могут так быстро обновлять свои мажоры. Обычно это связано с политиками установки зависимостей внутри компании. Но ведь потребности в документации у этих команд такие же, как и у тех, кто сидит на bleeding edge.
Теперь на главной странице можно выбрать мажорную версию effector и читать документацию. Когда выйдет effector Spacewatch 23.0.0, на основном сайте будет актуальная документация, а текущая останется на поддомене v22.
В общем-то, это довольно популярная техника версионирования документации.
👍20❤🔥7🔥2
В effector скоро изменится синтаксис использования доменов на юнитах.
Было:
Станет:
Есть идеи, зачем так менять?)
Было:
domain.createStore(123)Станет:
createStore(123, { domain })Есть идеи, зачем так менять?)
🤔16🔥4👎1😢1
Как читать технические книги, какие анимации имеют смысл, почему отключение Cookies сломает ваш сайт и несколько полезных инструментов.
Это будет первая отправка рассылки через новый сервис. Поэтому заранее прошу прощения, если что-то будет отображаться криво или не так, как привыкли.
https://news.sova.dev/issues/20/
Это будет первая отправка рассылки через новый сервис. Поэтому заранее прошу прощения, если что-то будет отображаться криво или не так, как привыкли.
https://news.sova.dev/issues/20/
👍20🎉6❤1🏆1
Forwarded from Effector news (Igor Kamyşev)
Новая библиотека в экосистеме Effector ☄️
https://withease.pages.dev/i18next/
@withease/i18next позволяет использовать переводы из i18next в рамках операторов Effector.https://withease.pages.dev/i18next/
❤13🔥8👍6🗿1
Тем временем, комьюнити эффектора предлагает попробовать новую библиотеку для форм!
Поддерживает валидацию данных через yup, динамические формы и даже SSR.
Пока еще библиотека в стадии разработки, но при этом используется в продакшене, а с вашим активным фидбеком в issues станет лучше и дойдет до стабильного релиза.
Пробуйте!
https://filledout.github.io/
Поддерживает валидацию данных через yup, динамические формы и даже SSR.
Пока еще библиотека в стадии разработки, но при этом используется в продакшене, а с вашим активным фидбеком в issues станет лучше и дойдет до стабильного релиза.
Пробуйте!
https://filledout.github.io/
filledout.github.io
Filledout | Filledout
UI Framework-agnostic effector based form library
🔥7🥱4🙈1
Ребята, накидайте, пожалуйста, технологий для создания мобильных приложений.
Мне нужно сделать приложение-компаньон к трекеру финансов. Но я фронтендер знающий раст и совсем немного свифт.
Может есть что-то, что позволит фронтендеру легко создавать приложения? Как дела с react native? Можно ли затащить эффектор? А что еще есть?
А вот веб-фронтенд для этого сервиса вы напишете если будете смотреть #курс по effector.
Мне нужно сделать приложение-компаньон к трекеру финансов. Но я фронтендер знающий раст и совсем немного свифт.
Может есть что-то, что позволит фронтендеру легко создавать приложения? Как дела с react native? Можно ли затащить эффектор? А что еще есть?
А вот веб-фронтенд для этого сервиса вы напишете если будете смотреть #курс по effector.
👍2
Пару дней назад я спросил сообщество, почему синтаксис доменов будет изменен.
Сразу хочу отметить, что старый синтаксис не будет задепрекейчен мгновенно. Он будет работать как минимум еще год.
Оказалось, что мои подписчики очень хорошо понимают устройство effector и мотивацию core team. Но все же я расскажу зачем так, хоть во многом повторю комментарии к оригинальному посту.
Обычно мы прицепляем любой юнит к домену через вызов метода на домене:
Но в этом случае, метод нужно не забыть вызвать на домене, а значит сначала его импортировать. Эта проблема не стоит так остро, если в проекте нет тестов моделей или же серверного рендеринга с универсальным кодом. Ведь тогда, необходимо использовать babel или swc плагин, для простановки sid’ов юнитам.
А все существующие плагины работают в пределах одного файла. И вот плагин видит
Другая проблема, это фабрики и любой библиотечный код. Вот мы создаем некую фабрику, но хотим, чтобы пользователь мог подбросить в юниты внутри свой домен, чтобы добавить кастомное поведение, но как?
Мы вынуждены создавать домен по умолчанию на каждый вызов
Изменяя синтаксис домена на аргумент, мы убиваем сразу несколько зайцев: плагины babel и swc теперь могут однозначно определять импорты, фабрики могут избежать дефолтных доменов, рефакторить становится проще, ведь добавить домен можно одним лишь аргументом. Еще и как следствие появится множество упрощений для экосистемы: eslint effector сможет избавиться от некоторых проблем со скоростью, создание юнита и вызов фабрики теперь будет выглядеть единообразно:
Ну и самое интересное, новый синтаксис уже поддерживается, так как выпущен в effector 22.4.0.
А некоторые подробности можно почитать в issue.
Сразу хочу отметить, что старый синтаксис не будет задепрекейчен мгновенно. Он будет работать как минимум еще год.
Оказалось, что мои подписчики очень хорошо понимают устройство effector и мотивацию core team. Но все же я расскажу зачем так, хоть во многом повторю комментарии к оригинальному посту.
Обычно мы прицепляем любой юнит к домену через вызов метода на домене:
domain.createStore(null);
domain.createEvent();
domain.createEffect(handler);
Но в этом случае, метод нужно не забыть вызвать на домене, а значит сначала его импортировать. Эта проблема не стоит так остро, если в проекте нет тестов моделей или же серверного рендеринга с универсальным кодом. Ведь тогда, необходимо использовать babel или swc плагин, для простановки sid’ов юнитам.
А все существующие плагины работают в пределах одного файла. И вот плагин видит
import { someName } from "./some/path", а дальше someName.createStore(0) и где гарантия, что это действительно домен, а не какая-то кастомная функция, или вообще redux?Другая проблема, это фабрики и любой библиотечный код. Вот мы создаем некую фабрику, но хотим, чтобы пользователь мог подбросить в юниты внутри свой домен, чтобы добавить кастомное поведение, но как?
function createRoute({ path, domain = createDomain() }) {
const $opened = domain.createStore(false)
}
Мы вынуждены создавать домен по умолчанию на каждый вызов
createRoute, как решение, можно создать некий дефолтный домен для всей библиотеки целиком и прокидывать этот домен внутрь. Но это все костыли, ведь они повлияют на имя стора при отладке, например через patronum/debug, при этом домен все равно будет там, где не нужен совершенно.Изменяя синтаксис домена на аргумент, мы убиваем сразу несколько зайцев: плагины babel и swc теперь могут однозначно определять импорты, фабрики могут избежать дефолтных доменов, рефакторить становится проще, ведь добавить домен можно одним лишь аргументом. Еще и как следствие появится множество упрощений для экосистемы: eslint effector сможет избавиться от некоторых проблем со скоростью, создание юнита и вызов фабрики теперь будет выглядеть единообразно:
createStore(0, { domain }); createRoute({ path, domain }).Ну и самое интересное, новый синтаксис уже поддерживается, так как выпущен в effector 22.4.0.
А некоторые подробности можно почитать в issue.
🔥12👏2
На самом деле я не понимаю, почему нельзя было избавиться от этого плавного перехода обоев рабочего стола.
Если бы при свайпе соседний рабочий стол приезжал бы сразу с другими обоями, было бы только лучше!
https://t.me/sergeysova/804
Если бы при свайпе соседний рабочий стол приезжал бы сразу с другими обоями, было бы только лучше!
https://t.me/sergeysova/804
Telegram
Сова пишет…
Сейчас узнал, что можно иметь разные обои для рабочих столов
👍7🤬3👎1