Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Уникальная игра, объединяющая популярные механики Match3 и пошаговые бои!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

IT + Javascript

С этим тегом используют

Программирование IT юмор Программист Юмор Работа Картинка с текстом Разработка HTML Frontend CSS Все
394 поста сначала свежее
AlexeyPerfilev
AlexeyPerfilev
9 месяцев назад

Почему я считаю, что эра JavaScript-фреймворков подходит к концу⁠⁠

Привет, Пикабу! Сегодня хочу поделиться мыслями, которые наверняка вызовут бурю эмоций у фронтендеров. Готовы? Поехали!

Смелое заявление

Я считаю, что эра больших JavaScript-фреймворков (React, Angular, Vue) подходит к концу. Да-да, я сказал это.

Почему я так думаю?

  1. Сложность: С каждым обновлением фреймворки становятся всё сложнее. Новичкам всё труднее входить в разработку.

  2. Производительность: Ванильный JavaScript и небольшие специализированные библиотеки часто работают быстрее.

  3. Размер бандла: Приложения на фреймворках часто весят слишком много, что критично для мобильных устройств.

  4. Переусложнение простых задач: Для создания простой страницы приходится поднимать целую инфраструктуру.

  5. WebComponents: Нативные веб-компоненты становятся всё мощнее, уменьшая потребность в фреймворках.

Что дальше?

Я предвижу возвращение к более простым решениям:

  • Ванильный JavaScript для простых проектов

  • Микрофреймворки для конкретных задач

  • Серверный рендеринг и прогрессивное улучшение

Мой опыт

Недавно я отказался от использования React в пользу ванильного JS и WebComponents для небольшого проекта. Результат? Сайт стал быстрее, код - чище, а разработка - приятнее.

Вывод

Не поймите меня неправильно - фреймворки сыграли важную роль в развитии веба. Но, возможно, пришло время двигаться дальше?

А что думаете вы? Согласны ли вы, что эра больших фреймворков подходит к концу? Или я совершенно не прав? Давайте обсудим в комментариях!

P.S. Готов к горячим спорам. Фронтендеры, не сдерживайте эмоции! 😉

Показать полностью
[моё] Программирование Разработка IT Javascript Web Web-программирование Текст
9
user9638954
9 месяцев назад

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году?⁠⁠

Казалось бы, на дворе 2024 год, а пользователи продолжают стойко преодолевать тяготы (читай угадывать где изображены светофоры), которые им выставляет корпорация Гугл в виде капчи и хвастаться у кого больше score, чтобы преодолеть рекапчу посложнее. Тем не менее, по заявлениям некоторых оптимизаторов, капчи уже давно себя изжили и не работают так эффективно, как хотелось бы изначально их разработчикам. Какая же самая наиболее популярная капча современности? Это reCAPTCHA.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Бесспорно, reCAPTCHA V2, reCAPTCHA V3 и т.п. reCAPTCHA популярнее остальных видов капч. Создана reCAPTCHA была компанией Гугл в далеком 2007 году. Прошло уже много лет с момента появления первой reCAPTCHA, но она продолжает удерживать пальму первенства, периодически немного сдавая позиции конкурентам и отвоевывая их обратно. Но еще ни разу reCAPTCHA не заняла даже 2 место по популярности, несмотря на все ее несовершенство перед нейросетями.

По поводу несовершенства, также есть вопросики. Чего стоит нашумевший доклад компании Open AI (страница 15), в котором они признали, что нейросеть для того, чтобы обойти капчу обратилась к человеку (обманула его, кстати), чтобы это человек помог ей зарегистрироваться на сервисе распознавания капчи 2капча дляобхода капчи. Слишком много капч в одном слове, не кажется? Сути это не меняет — нейросеть не справилась с простейшей задачей, а значит у человечества все еще есть шанс!

Вернемся к статье! Было огромное количество попыток сделать «убийцу рекапчи», какие-то были менее успешными, какие-то только выглядели как угроза reCAPTCHA, а на деле оказывались пшиком, но факт остается фактом, желание конкурентов сделать что-то лучше и надежнее reCAPTCHA демонстрирует ее популярность.

Виды reCAPTCHA

  • reCAPTCHA V1

  • reCAPTCHA V2

  • reCAPTCHA V3

Каждая из них – это улучшенная версия предыдущей reCAPTCHA. Давайте разберемся подробнее почему и чем они отличаются:

Что такое и как распознать reCAPTCHA V1? Очень просто!

Самая первая версия капчи reCAPTCHA V1 представляла собой отрывки текста из отсканированных книг, ее еще называли (и до сих пор называют) простая капча или текстовая капча. Это была достаточно примитивная капча, сильно навязчивая в определенных случаях и раздражающей пользователей.

К слову, сервисы распознавания капчи решают такую reCAPTCHA по самому минимальному тарифу, и формируют маркетинговые предложения, демонстрируя нереально низкие цены на распознавания, также, именно благодаря текстовой reCAPTCHA (правда я ее очень давно уже не встречал, может где-нибудь в даркнете осталась, кто знает)

Юзеру предлагалось ввести текст в специальном окне, сейчас что-то подобное еще можно встретить на старых ресурсах, но на нормальных площадках уже никто не использует reCAPTCHA V1.

ReCAPTCHA V1 была первой версией, представленной в 2007 году. Она использовала искаженный текст из отсканированных книг, который пользователи должны были ввести, чтобы доказать, что они не боты. Эта система использовала ввод пользователей для оцифровки книг, газет и старых радиошоу и конечно же, для обучения своих моделей (не тех, которые на модных показах дефилируют, а тех, которые обучаются при помощи машинного обучения).

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Именно в период, когда Гугл внедрил первую версию reCAPTCHA начали появляться автоматические решатели капчи, которые без особого труда обходили текстовую капчу. Сперва их обучали на массиве и после чего запускали в работу, со временем такие солверы делали все меньше и меньше ошибок и экономили владельцу кучу времени и средств.

С текстовой капчей хорошо справляются всевозможные приложения для распознования капчи, например в Гугл Хроме или в Мозиле.

reCAPTCHA v2 — Как распознать картинки? Где текст?

Все меняется и развивается, и научившись практически бесплатно обходить текстовые капчи автоматизаторы, уже откровенно насмехались над компанией Гугл. То есть, то, что изначально было создано для защиты поменяла свою функцию и уже выступала в качестве внешнего раздражителя для обычных посетителей сайта.

Наконец, после осознания того, что текстовые капчи больше не работают, была создана новая версия reCAPTCHA V2, которая была призвана убрать раздражение юзеров от навязчивости первой версии, повысить безопасность при защите проектов и в целом, улучшить пользовательский опыт.

Вторая версия reCAPTCHA представляет собой пустое поле, при клике по которому появляется галочка, что капча пройдена, либо выскакивает окно со светофорами, которые требовалось найти. Светофоры, это конечно же метафора, вместо светофоров нужно было искать различные предметы. Уверен, вы все понимаете о чем идет речь.

Флажок («Я не робот»): Самый простой вид проверки, где пользователю нужно просто нажать на флажок. Система анализирует поведение пользователя, чтобы определить, человек это или бот. И если у системы не возникают вопросы — вы проходите дальше, а вот если вопросики к вам есть (например ваши куки показались системе слишком подозрительными, так как вы много раз безуспешно выполняли одно и тоже действие на сайте) вас просят потыкать картинки.

Задачи с изображениями: Если система сомневается, она предлагает пользователям выбрать определенные объекты на изображениях (например, «Выберите все изображения с светофорами»). И чем меньше к вам доверия, тем больше будет таких картинок и они будут дольше прогружаться перед тем, как покажутся вам.

Смысл в таком разделении достаточно прост — по задумке Гугл, обычный пользователь интернета, не посещает сомнительных ресурсов, не обращается к одному и тому же ресурсу много раз (как это делают неумные боты) и он просто нажмет на флажок, ну или по быстрому решит пару картинок. А вот бота то, погоняют как следует.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Что касается противоположного лагеря то с появлением reCAPTCHA V2 старые способы уже не работали, и многие авторешатели прекратили нормально функционировать, рынок начал перестраиваться и продолжает развиваться даже сейчас, так как появляются все новые и новые параметры, которые учитываются при решении reCAPTCHA.

В то время рынок реально просел, большинство парсеров перестало нормально работать, это можно сравнить если не с появлением танков в Первой Мировой войне, то, как минимум с появлением мобильных телефонов. Эта reCAPTCHA полностью поменяла правила игры. И кстати, научно доказанный факт (это не точно), после нескольких бессонных ночей первыми способ обхода второй версии рекапчи выкатила 2captcha, ну а после них уже все остальные подхватили способ и рынок снова ожил.

Несмотря на новизну, вторая версия также сильно раздражала обычных людей и негатив никуда не делся. Система была несовершенна, что побудило компанию Гугл идти вперед и создавать новые продукты. Но не сразу. Какое то время картинки осели на рынке и плотно засели в сознании людей, и пресловутые светофоры уже стали чем-то вроде Xerox в нише копировальных аппаратов (вы ведь знаете эту историю, правда?).

Что такое и как обойти Гугл reCAPTCHA v3? То что невидно распознать нельзя... Или все таки можно?

Решение не раздражать пользователя преследовало компанию Гугл на всех этапах создания reCAPTCHA, но как этого добиться? Путем скрытия reCAPTCHA, так третья версия стала невидимой. Она работает в фоновом режиме, непрерывно отслеживая действия пользователя на сайте и присваивая им оценку риска (от 0.0 до 1.0) на основе их поведения.

Вот тот самый score который я упоминал в самом начале текста. То, чем хитрые боты хвастаются в своих ботокурилках и на совместных ботокорпоративах, а может даже боты мальчики отправляют ботам девочкам в личку score пики, кто знает? В любом случае — этот показатель присваивается каждому пользователю и по различным метрикам вычисляется его значение.

Чем выше score тем быстрее пользователь проходит reCAPTCHA и тем меньше у него проблем. Чем ниже.. Ну, тут думаю понятно.

С появлением новой версии рекапчи революции не случилось, но нервов она тоже подпортила сервисам распознавания капчи. Способ обхода reCAPTCHA V3 был найден, и в для этого лучше всего работают именно сервисы с ручным распознаванием капчи, так как у живого человека score всегда будет лучше!

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Веб-сайты могут устанавливать пороги для оценок риска, определяя уровень взаимодействия или проверки в зависимости от предполагаемого риска. Если владелец хочет максимально улучшить пользовательский опыт, он выставляет менее высокий score и наоборот. Таким образом компания Гугл предоставила владельцам выбор между пользовательским опытом и защитой, найти баланс в этом случае не так и сложно.

Кто эти люди, которые практикуют обход reCAPTCHA и для чего им это нужно?

Зачем в принципе нужно обходить reCAPTCHA? Если ты рядовой пользователь и просто посещаешь веб ресурс, ты можешь решить эту проблему самостоятельно, но другой вопрос, когда тебе необходимо анализировать и тестировать системы своего ресурса на устойчивость к нагрузкам либо для улучшения пользовательского опыта, или для автоматизации рутинных задач.

Капча встречается при парсинге больших объемов данных, например Амазона или какого-нибудь Озона с Вайлдбериз.

Большой объем капчи решить вручную не получится. Для этого разработчики создают всевозможные программы, модули, библиотеки, скрипты и тп для того чтобы обойти reCAPTCHA. Выкладывают свои наработки на githab и другие площадки. Я рассмотрел три основных языка программирования, которые считаются наиболее популярными для автоматизации рутинных задач и собрал топ модулей для распознавания капчи, а также описал как решить reCAPTCHA вручную (без использования готовых модулей).

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Python и reCAPTCHA, как решать reCAPTCHA на python?

Наиболее популярный язык программирования, безусловно Python, код для этого языка программирования ищут в 5 из 10 случаев, когда гуглят «Как обойти рекапчу» в интернете (не учитывая запросов, которые содержат приставку python, типа таких – «как обойти рекапчу на питоне» и тп.

Но если копнуть чуть глубже - почему Питон такой популярный? Вероятно причина в том, что он не сильно сложный с точки зрения изучения и тут очень много джунов и тех, кто еще не дорос до джуна. А если много новичков и не профессионалов - значит много вопросов. И значит распознавания капчи может стать достаточно тривиальной задачей. Именно по этой причине я собрал несколько уже готовых модулей, которые нужно просто подключить в исполняемом файле.

Это не топ модулей, которые являются самым популярными во все времена - это просто пять модулей, которые по различным причинам находятся в поисковой выдаче на топовых позициях. Да, подобных модулей куча, но их нет в топе, а значит их нет в этой статье. Тестирование производительности, сравнение и т.п. не проводилось. Я просто попробовал их на работоспособность и на момент публикации статьи они работали.

Я выделил следующие популярные модули, с помощью которых можно распознать reCAPTCHA (кстати, с помощью всех этих модулей можно распознать и другие типы капч):

  • 2captcha-python

  • 2captcha-solver

  • captchatools

  • twocaptcha-extension-python

  • Captcha-Tools

Модуль для обхода reCAPTCHA на Python 2captcha

Официальный модуль от сервиса распознавания капчи 2капча, разработан для легкой интеграции с их АПИ, модуль обладает расширенным функционалом и поддерживает настройку прокси. Модуль поддерживается и регулярно обновляется, может быть использован при парсинге веб-ресурсов и автоматизации.

Сервис идеален для пользователей, которые делают упор в распознавании капчи на надежность, а также кому требуется официальная поддержка от сервиса 2капча.

Может это и лишнее, но я уточню, что каждый модуль, представленный в этой статье интегрирует сторонний платный сервис, учитывайте это.

Модуль поддерживает асинхронные операции.

Модуль для распознавания Google reCAPTCHA для Питон

Модуль для решения reCAPTCHA и некоторых других популярных капч (ReCaptcha (v2, v3), FunCaptcha и hCaptcha). Основное отличие его от предыдущего модуля в том, что он более узконаправленный (поддерживает меньшее количество капч) и может менее гибко реагировать на обновления со стороны reCAPTCHA, по сравнению с предыдущим официальным модулем.

2Captcha-solver поддерживает настройку прокси и особенно полезен для задач, требующих высокой производительности, благодаря поддержке асинхронных операций, что позволяет одновременно решать несколько reCAPTCHA.

Модуль написанный под Python — решатель Рекапчи

Многофункциональный модуль, основной упор которого делается на поддержку нескольких сервисов распознавания капчи. Функционал модуля примерно похож на предыдущие два, он поддерживает настройку прокси и асинхронные операции.

Исходя из того, что модуль позволяет интегрировать распознавание капчи через несколько сервисов, то у него есть уникальная функция — перебор сервисов. То есть, вы можете использовать один сервис в качестве остального, а другие в качестве резервных, и когда у вас, к примеру, закончаться средства на основном сервисе, или если основной сервис не справился с задачей, капча уйдет в резервный и будет решена. Таким образом ваш скрипт будет более автоматизированным и не будет зависить от стабильности одного конкретного сервиса.

Модуль для распознавания reCAPTCHA на Python (для Селениума)

Это узконаправленный модуль, который используется для легкой интеграции с Selenium и Playwright, и поддерживает все виды reCAPTCHA.

Модуль можно использовать без необходимости установки дополнительных расширений и для начала потребуется только ключ АПИ.

Его главное отличие от предыдущих модулей — то что twocaptcha-extension-python будет сложно использовать для вопросов автоматизации, где не используется Selenium или Playwright, так как используется исключительно для перечисленных сервисов.

Модуль для распознавания reCAPTCHA V2 и V3 на Питон

Модуль который напоминает по функционалу captchatools, и его можно назвать аналогом указанного сервиса. То есть, вы можете использовать один из них на выбор.

Все характеристики совпадают: поддержка нескольких сервисов, перебор сервисов в процессе распознавания капчи, асинхронные операции, настройка прокси. Все это есть и тут. Различается лишь разработчик.

Ну и предположение от меня, скорее всего оба эти сервиса будут чуть медленнее реагировать на изменения, которые происходят в сервисах распознавания капчи и которые делают разработчики капч, чем официальные модули.

Хочется также отметить, что все перечисленные сервисы (а не только Twocaptcha-extension-python) могут использоваться вместе с Selenium и Playwright, отличие будет лишь в подключении и синхронизации.

Как обойти reCAPTCHA используя Python (пример кода)

Если не доверяете никаким сторонним модулям, я подготовил максимально универсальный код, который можно с небольшими доработками вставить в ваш скрипт, написанный на Питоне и решать reCAPTCHA автоматически. Вероятно под конкретный проект потребуется доработать этот код, но в целом - вариант рабочий и учитывает все параметры указанные в АПИ.

Вот сам код:

Код на Питоне.

Однако, перед тем как использовать предоставленный скрипт, внимательно ознакомьтесь с рекомендациями сервиса, по распознаванию того или иного типа reCAPTCHA, чтобы иметь представление о том, как работает этот код.

Также, не забудьте подставить в коде ваш ключ АПИ и конечно же, установить необходимые модули.

JavaScript и reCAPTCHA, как распознать reCAPTCHA на javascript с помощью модулей

Второй по популярности язык, для которого пользователи ищут способы обхода reCAPTCHA – node js, примерно 3 из 10 запросов по обходу reCAPTCHA приходятся на этот язык программирования.

Тут ситуация точно такая же, как и с предыдущим языком. Не рассматривайте этот список, как список именно лучших в своем классе модулей. Только популярные у поисковых машин инструменты, не более того. Никаких завышенных ожиданий, прошу!

Как и в случае с Python проще всего распознать reCAPTCHA через специальные модули, тем более, что сервисы распознавания капчи заинтересованы в упрощении работы для своих клиентов и многие создают и поддерживают такие модули, вот список наиболее популярных из них.

  • 2captcha

  • 2captcha-javascript

  • captcha-solver

  • multi-captcha-solver-adapter

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Модуль для распознавания reCAPTCHA с использованием Javascript

Официальный модуль для node js от сервиса распознавания капчи 2капча, поддерживает большинство известных типов капчи, в том числе reCAPTCHA. Важное отличие этого модуля от остальных — поддержка TypeScript что делает его удобным для разработки различных приложений.

Все базовые настройки, включая асинхронные операции, настройка прокси и т. п в модуле присутствуют, что делают его универсальным модулем для решения большинства типов капчи. Ну и факт того, что модуль создан сервисом 2капча позволяет сделать вывод о его надежности.

Javascript модуль 2captcha для обхода reCAPTCHA

Также является официальным модулем для распознавания основных видов капчи от сервиса 2капча и поддерживает все те же настройки, что и предыдущий модуль (за исключение поддержки TypeScript), но мне показалось, что он создан больше с упором на простоту интеграции и быстрое начало работы.

Он более легкий, чем предыдущий и он как и его предшественник решает главную задачу — обходит reCAPTCHA. Так что если вам просто необходимо, чтобы ваш скрипт (программа), написанная на node js решала reCAPTCHA, используйте этот модуль, а если нужна более глубокая интеграция, присмотритесь к предыдущему модулю.

Модуль для обхода Рекапчи на Javascript

Модуль заточенный для интеграции с Puppeteer и позволяет решать reCAPTCHA и другие популярные виды капчи.

Помимо того, что этот модуль заточен под Puppeteer, он предоставляет возможность выбора провайдера, решающего капчу, что также позволяет настроить перебор сервисов (как было описано в блоке про модули для Python).

Хочется отметить, что два предыдущих модуля могут быть интегрированы в Puppeteer, но captcha-solver предоставлет решение «из коробки», то есть поставил и забыл, тогда как в случае с 2captcha и 2captcha-javascript может потребоваться ручная обработка результатов или настройка этой обработки.

Javascript модуль чтобы обойти reCAPTCHA

Модуль от сторонних разработчиков, который поддерживает решение reCAPTCHA, а также некоторых других популярных типов капчи. В модуле интегрировано несколько сервисов распознавания капчи, что позволяет настроить перебор сервисов (один сделать главным, а остальные резервными).

Сервис является альтернативой 2captcha и 2captcha-javascript, но возможны задержки в обновлении, так как модуль поддерживается не официальными сервисами, а в остальном функционал у него похож на конкурентов.

Как обойти reCAPTCHA на Node js

Как в случае с Python, для тех, кто не любит уже готовые решения, ниже приведу скрипт для решения капчи с использованием языка программирования node js. Напоминаю, не забудьте установить необходимые модули для работы кода, в том числе:

Пункт Установление модулей для работы кода на Node js 

axios

Установить его можно с помощью такой команды –

команда для установления.

Вот и сам код:

код на Node js

PHP и reCAPTCHA, как распознать reCAPTCHA на php с помощью модулей

И третий по популярности язык, для которого пользователи ищут способ обхода reCAPTCHA — php. Предлагаю начать с модулей, как и в первых двух случаях и закончить кодом. Итак, наиболее популярные модули для решения reCAPTCHA на PHP следующие:

  • 2captcha-php

  • php-captcha-solver

Модуль для обхода reCAPTCHA в Хроме

Этот модуль позволяет легко интегрировать API 2Captcha в ваш PHP-код для решения CAPTCHA. Он поддерживает такие типы CAPTCHA, как ReCaptcha, FunCaptcha, GeeTest, и другие. Модуль предназначен для быстрой настройки и использования, включая поддержку текстовых CAPTCHA и ReCaptcha v3. Он также поддерживает различные методы для работы с изображениями и аудиофайлами.

Как распознать reCAPTCHA используя PHP

Модуль, предоставляющий удобный интерфейс для интеграции с различными CAPTCHA-сервисами, включая 2Captcha. Поддерживает различные типы CAPTCHA, такие как reCAPTCHA и FunCaptcha. Этот модуль ориентирован на легкость использования и быструю настройку.

Фактически, если сравнить два этих модуля, то первый разработан сервисом 2captcha, а второй сообществом разработчиков и оба решают одни и те же задачи и примерно одинаковый набор функционала. Однако, второй модуль может быть менее оперативен в вопросах обновлений, в отличие от официального модуля.

Ну и для тех, кто не привык использовать готовые модули, вот код для интеграции напрямую. Код использует стандартные функции PHP, такие как file_get_contents и json_decode, вот сам код:

Код распознавания reCaptcha на  PHP

Также напоминаю о необходимости заменить некоторые параметры в коде, в частности.

Как распознать reCAPTCHA V2, reCAPTCHA V3 — рабочий метод в 2024 году? Recaptcha, Капча, Питон, PHP, Nodejs, Javascript, Python, Программирование, Код, IT, Длиннопост

Таким образом, используя приведенные примеры, вы можете закрыть большую часть вопросов, связанных с распознаванием reCAPTCHA. Можете задавать вопросы в комментариях, если они остались!

Показать полностью 7
Recaptcha Капча Питон PHP Nodejs Javascript Python Программирование Код IT Длиннопост
1
AlexeyPerfilev
AlexeyPerfilev
9 месяцев назад

Фронтенд-разработка: Я вам не верю!⁠⁠

Привет, Пикабу! Сегодня я хочу высказаться о наболевшем. О том, что меня бесит в современной фронтенд-разработке. Пристегните ремни, будет горячо!

1. JavaScript - язык для мазохистов

Серьезно, кто придумал этот ужас? Язык, где `null == 0`, `[] == false`, а `NaN !== NaN`. Вы что, издеваетесь? И это мы еще не говорим о "undefined is not a function". Как вообще можно на этом писать без желания выброситься из окна?

2. Фреймворки - свалка трендов

React, Vue, Angular, Svelte... Каждый год новый "супер-пупер" фреймворк. И что? Мы все равно пишем тот же самый код, только с новыми причудами. Хотите быть в тренде? Учите новый фреймворк каждые полгода, пока ваш мозг не превратится в кашу!

3. CSS - черная магия

Flexbox, Grid, и все равно ничего не работает как надо. Хочешь отцентрировать div? Готовься к часам боли и страданий. А адаптивный дизайн? Лучше сразу начинать пить.

4. Node_modules - черная дыра на вашем жестком диске

Установил пару пакетов, а на диске уже нет места. Спасибо, npm! Особенно радует, когда половина этих пакетов - просто обертки над обертками. Нам точно нужна библиотека для переворачивания строки?

5. Совместимость браузеров - кошмар наяву

"Работает в Chrome" - девиз современного фронтендера. А что делать с IE11? Safari? Opera Mini? Да гори оно все огнем! Кто вообще придумал, что сайт должен одинаково работать везде?

Заключение

Если вы все еще хотите быть фронтенд-разработчиком после этого, у меня для вас плохие новости: вы мазохист. Но не переживайте, вы не одиноки. Нас тут таких много.

А теперь я жду ваши гневные комментарии. Давайте, расскажите мне, как я неправ и что фронтенд - это лучшее, что случалось с человечеством после изобретения колеса!

Показать полностью
[моё] Программирование IT Разработка Гайд Javascript Текст
43
Proglib
Proglib
9 месяцев назад
Серия Итоги недели в мире бэкенда, обзоры новых сервисов

Итоги недели в мире бэкенда и обзоры новых сервисов: 3 эпических сбоя, вызванных регулярками⁠⁠

Итоги недели в мире бэкенда и обзоры новых сервисов: 3 эпических сбоя, вызванных регулярками Backend, Искусственный интеллект, Инновации, Микросервисы, Программирование, Разработка, Технологии, Cloudflare, Отдел кадров, IT, Javascript, Nodejs, Regex, Stack Overflow, Windows, Видео, Длиннопост, YouTube, YouTube (ссылка)

😈 Осторожно – Regex! 3 эпических сбоя, вызванных регулярками

Регулярные выражения – мощный, гибкий и многофункциональный инструмент для обработки текста и валидации данных. С их помощью можно решать сложные задачи буквально одной строкой кода. Однако неправильно составленное регулярное выражение может превратиться в настоящую бомбу замедленного действия, готовую взорваться при определенных входных данных. Последствия могут быть сложноустранимыми, а иногда катастрофическими – как в этих реальных кейсах.

Сбой Stack Overflow

В 2016 году Stack Overflow испытал 34-минутный перебой в работе. Причиной стало регулярное выражение, используемое для обработки пользовательского ввода:

^[\s\u200c]+|[\s\u200c]+$

Это выражение должно было находить пробелы в начале и конце строки. Проблема возникла, когда какой-то пользователь запостил комментарий, содержащий около 20 000 последовательных пробелов. Механизм обработки регулярных выражений начал проверять каждый пробел. Когда после 20 000-го пробела встретился другой символ, движок начал откатываться назад, пытаясь найти соответствие, начиная со второго пробела, третьего и так далее.

Это привело к катастрофическому возврату (catastrophic backtracking) – ошибке, которая возникает, когда движок регулярных выражений тратит чрезмерное количество времени на попытки найти соответствие шаблону, перебирая различные комбинации. Количество проверок начало лавинообразно увеличиваться и быстро достигло 199 990 000 – это вызвало значительную задержку и в итоге сбой системы.

Для решения проблемы потребовалось 10 минут на обнаружение причины, 14 минут на написание исправления и еще 10 минут на развертывание решения. В результате регулярное выражение было заменено на функцию подстроки.

📖#️⃣ Больше полезных книг вы найдете на нашем телеграм-канале

«Книги для шарпистов | C#, .NET, F#»

Сбой Cloudflare

2 июля 2019 года произошел крупный сбой в работе платформы Cloudflare. Один из инженеров написал регулярное выражение, которое привело к действительно катастрофическому возврату – вызвало экстремальную перегрузку всей инфраструктуры. Использование процессоров выросло до 100%, а большинство сайтов, подключенных к Cloudflare, замедлились до крайности или вовсе оказались недоступными.

Коварная регулярка выглядела так:

(?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))

Самую большую опасность в этом выражении представляет

.*(?:.*=.*)

– группа без захвата, которая может привести к чрезмерному использованию процессора при обработке определенных шаблонов. Эта конструкция вызвала серьезные проблемы с производительностью и в конечном итоге привела к массовому сбою.

Глобальный сбой Windows/CrowdStrike

19 июля 2024 года произошел самый массовый сбой в истории – из строя вышли около 8,5 млн Windows-компьютеров с ПО CrowdStrike. Причиной сбоя стало несоответствие между ожидаемым количеством входных параметров (21) и фактическим количеством параметров (20), которые были переданы в интерпретатор контента (этот компонент отвечает за обработку содержимого с использованием регулярных выражений). Когда система получила ввод с 21 параметром, интерпретатор контента попытался считать данные за пределами выделенной памяти, что и привело к сбою системы.

Привет!

Мы запустили еженедельную email-рассылку, посвященную последним новостям и тенденциям в мире бэкенда. В еженедельных письмах ты найдешь:

  • Языки программирования и фреймворки для бэкенда

  • Архитектура и проектирование серверных приложений

  • Базы данных и управление данными

  • Безопасность и защита данных

  • Облачные технологии и DevOps

  • API и интеграции

  • Тестирование и отладка

  • Инструменты и утилиты для бэкенд-разработчиков

  • Лучшие практики и паттерны проектирования

📧 Подпишись, чтобы быть в числе первых, кто получит дайджест

🤵 Как не завалить собеседование в крупной ИТ-компании

Разработчик с 10-летним коммерческим опытом поделился провальным опытом прохождения технического собеседования в одной из лидирующих компаний. Из этого провала он извлек три основных урока:

  • Перед собеседованием нужно освежить знания о структурах данных – и не только о списках, массивах и словарях. Не стоит игнорировать и те структуры, с которыми вы в последний раз сталкивались в университете и никогда не используете на практике – очереди, кучи и деревья. Автору попался как раз вопрос о деревьях, с которыми он с университетских времен не встречался и которые, скорее всего, на новой работе ему бы тоже не понадобились. Однако на собеседовании зачастую проверяются не только практические навыки, но и общая ИТ-эрудиция.

  • Для тренировки нужно использовать самый простой редактор кода и таймер. Хотя в реальной работе повсеместно используются IDE с автодополнением кода и прочей ИИ-функциональностью, крупные компании при проведении теста обычно настаивают на старомодном способе решения задач, без каких-либо подсказок со стороны IDE. Писать код надо быстро – поэтому во время подготовки к собеседованию обязательно нужно пользоваться таймером для самоконтроля.

  • Не надо решать задания по порядку. Необходимо прочитать все вопросы сразу и начинать с ответов на те, что попроще. Автор надолго застрял на первом вопросе, хотя мог быстро ответить на второй и успел бы выполнить третье задание. Два решенных задания, несомненно, лучше, чем незаконченный ответ на первый вопрос.

📖🤖 Больше полезных книг вы найдете на нашем телеграм-канале

«Книги для дата-сайентистов | Data Science»

🛠️ Инструменты

BullMQ – библиотека для Node.js, которая реализует быструю и надежную систему очередей, основанную на Redis и предназначенную для решения всех основных задач в современных микросервисных архитектурах (сглаживание пиков нагрузки, создание надежных каналов связи между сервисами, распределение ресурсоемких задач между несколькими обработчиками и тому подобное).

Основные возможности и преимущества BullMQ:

  • Точная обработка сообщений – библиотека гарантирует доставку как минимум один раз.

  • Горизонтальное масштабирование – можно добавить сколько угодно обработчиков для параллельной обработки заданий.

  • Высокая производительность – благодаря эффективным Lua-скриптам и конвейерной обработке.

  • Минимальное использование CPU.

  • Распределенное выполнение заданий на основе Redis.

  • Поддержка очередей LIFO и FIFO.

  • Приоритезация и отсроченное выполнение заданий.

  • Запланированные и повторяющиеся задачи по расписанию.

  • Настройка параллельности для каждого обработчика.

  • Многопоточные (изолированные) функции обработки.

  • Автоматическое восстановление после сбоев процесса.

  • Поддержка зависимостей между задачами (родительские и дочерние задачи).

📖🦫 Больше полезных книг вы найдете на нашем телеграм-канале

«Книги для Go-разработчиков»

SigNoz – опенсорсный инструмент для мониторинга и устранения неполадок в развернутых приложениях. Это отличная бесплатная альтернатива коммерческим решениям – DataDog и New Relic.

Основная функциональность:

  • Единый интерфейс для метрик, трассировок и логов.

  • Визуализация метрик производительности приложений (RPS, процентили задержек, частота ошибок).

  • Распределенная трассировка для выявления проблем в сервисах.

  • Управление логами с продвинутым построителем запросов.

  • Мониторинг инфраструктуры.

  • Отслеживание исключений в различных языках программирования.

  • Настраиваемые оповещения.

  • Поддержка OpenTelemetry для инструментирования приложений.

  • Возможность агрегации данных трассировки для получения бизнес-метрик.

Итоги недели в мире бэкенда и обзоры новых сервисов: 3 эпических сбоя, вызванных регулярками Backend, Искусственный интеллект, Инновации, Микросервисы, Программирование, Разработка, Технологии, Cloudflare, Отдел кадров, IT, Javascript, Nodejs, Regex, Stack Overflow, Windows, Видео, Длиннопост, YouTube, YouTube (ссылка)

Интерфейс SigNoz

📖➕➕ Больше полезных книг вы найдете на нашем телеграм-канале «Книги для C/C++-разработчиков»

Infisical – опенсорсная платформа для удобного и безопасного управления секретами и конфигурационными данными. Основные возможности:

  • Централизованное хранение секретов – позволяет безопасно хранить в одном месте все важные данные (API-ключи, пароли от баз данных и другие конфиденциальные настройки приложений).

  • Синхронизация между командой и инфраструктурой – гарантирует, что все члены команды и все части инфраструктуры будут получать доступ к актуальным секретам и ключам.

  • Предотвращение утечек – помогает предотвратить случайное раскрытие секретной информации, например, путем коммита в Git-репозиторий.

  • Управление конфигурациями – позволяет управлять общими настройками приложений для разных сред (разработка, тестирование, продакшн).

  • Безопасный доступ – предоставляет инструменты (SDK, CLI, API) для безопасного получения секретов в приложениях и инфраструктуре.

  • Контроль доступа – позволяет настраивать права доступа к секретам для разных пользователей и систем.

  • Аудит и версионирование – ведет лог всех действий с секретами и позволяет отслеживать их изменения во времени.

  • Интеграция с инфраструктурой – легко интегрируется с популярными платформами и инструментами (GitHub, AWS, Kubernetes и т. п.).

  • Управление внутренней PKI – позволяет создавать и управлять собственной инфраструктурой открытых ключей для выпуска цифровых сертификатов.

KubeAI – инструмент для развертывания и управления опенсорсными LLM-моделями в среде Kubernetes. Среди основных функций и особенностей:

  • Совместимость с OpenAI. Предоставляет API, совместимый с OpenAI, что позволяет легко заменить сервисы OpenAI в любых ИИ-приложениях на локальные.

  • Поддержка различных моделей. Может работать с различными моделями, включая языковые (LLMs), модели для преобразования речи в текст (например, Whisper) и другие.

  • Мультиплатформенность. Может работать на разных аппаратных платформах, включая системы только с CPU, системы с GPU, а в будущем планируется поддержка TPU.

  • Масштабирование. Обеспечивает автоматическое масштабирование в зависимости от нагрузки, включая возможность масштабирования до нуля (когда ресурсы не используются).

  • Простота развертывания. Не требует никаких дополнительных зависимостей типа Istio или Knative.

  • Встроенный пользовательский интерфейс. Предоставляет чат-интерфейс OpenWebUI для взаимодействия с моделями.

  • Управление серверами vLLM, Ollama и FasterWhisper.

  • Интеграция с системами обмена сообщениями. Поддерживает потоковую передачу и пакетную обработку через интеграции с Kafka и другими PubSub-системами обмена сообщениями.

Zed – опенсорсный многопользовательский редактор кода, предназначенный для совместной работы над проектом в реальном времени. Основные особенности и возможности:

  • Написан на Rust и отличается высокой скоростью и минимальными требованиями к ресурсам.

  • Предусматривает интеграцию с LLM для генерации, анализа и рефакторинга кода.

  • Имеет встроенный терминал.

  • Предоставляет несколько удобных функций для совместной работы – демонстрацию экрана, общие заметки и т. п.

  • Разработан с учетом конфиденциальности пользователей и не собирает личные данные.

📖☕ Больше полезных книг вы найдете на нашем телеграм-канале

«Книги для джавистов | Java»

Warp – современный высокопроизводительный терминал с ИИ-функциональностью. Основные особенности и возможности:

  • Производительность. Написан полностью на Rust и использует рендеринг на GPU через Metal API, что обеспечивает высокую скорость работы (60+ FPS даже на 4K- и 8K-мониторах).

  • Поддержка совместной работы в реальном времени.

  • Улучшенный ввод команд. Редактор ввода команд представляет собой полноценный текстовый редактор с поддержкой выделения текста, позиционирования курсора, привычных пользователям сочетаний клавиш и автодополнения.

  • Встроенный чат-бот. Понимает указания на естественном языке, дает рекомендации и отвечает на вопросы.

  • Блоки команд. Команды и их вывод визуально группируются в блоки, что улучшает организацию и читаемость информации в терминале.

  • Совместимость с популярными оболочками. Работает с Bash, ZSH и Fish, сохраняя существующие привязки клавиш.

  • Кроссплатформенность. Работает на macOS и Linux, вскоре будет поддерживать Windows и WASM.

  • Продвинутый UI. В отличие от традиционных терминалов, может отображать различные элементы интерфейса (всплывающие уведомления, меню и т. д.).

Автор рассылки: Наталья Кайда

📧 Подписаться на рассылку

Показать полностью 1 2
Backend Искусственный интеллект Инновации Микросервисы Программирование Разработка Технологии Cloudflare Отдел кадров IT Javascript Nodejs Regex Stack Overflow Windows Видео Длиннопост YouTube YouTube (ссылка)
0
6
Proglib
Proglib
10 месяцев назад
Серия Итоги недели в мире фронтенда и обзоры сервисов

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков⁠⁠

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

🔮 10 полезных JavaScript-трюков

Деструктуризация с переименованием (алиасингом)

Деструктуризация – это способ извлечь значения из массивов или свойства из объектов и присвоить их отдельным переменным. Алиасинг (переименование) позволяет дать новые имена этим переменным в процессе деструктуризации:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Зачем это нужно:

  • Улучшает читаемость кода.

  • Помогает избежать конфликтов имен – если у вас уже есть переменная city, можно использовать hometown.

  • Пригодится при работе с API, если он возвращает данные с неподходящими для вашего кода именами.

Каррирование

Каррирование – техника преобразования функции с несколькими аргументами в серию функций, каждая из которых принимает только один аргумент. Это делает функции более гибкими и переиспользуемыми. Например, это обычная функция расчета скидки:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Та же функция, но с использованием каррирования:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Зачем это нужно:

  • Обеспечивает переиспользуемость функций.

  • Повышает читаемость и модульность кода.

  • Позволяет создавать новые функции на лету, используя уже существующие, например:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

🤖🎓 Подтянуть свои знания по DS вы можете на нашем телеграм-канале «Библиотека DS для собеса»

debounce() и throttle()

Дебаунсинг и троттлинг – техники оптимизации, которые помогают контролировать частоту вызова функций. Они особенно полезны при работе с событиями, которые могут происходить очень часто, например, прокрутка страницы или ввод текста.

debounce() работает так:

  • Функция вызывается только после того, как прошло определенное время с момента последнего вызова.

  • Если функция вызывается снова до истечения этого времени, таймер сбрасывается.

В этом примере функция поиска будет вызвана только через 300 миллисекунд после того, как пользователь перестанет вводить текст. Это позволяет избежать лишних запросов к серверу при каждом нажатии клавиши:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

throttle() работает так:

  • Функция вызывается не чаще, чем раз в заданный интервал времени.

  • Если попытка вызвать функцию происходит до истечения интервала, вызов игнорируется.

В этом примере функция handleScroll будет вызываться не чаще, чем раз в 300 миллисекунд, независимо от того, сколько раз пользователь прокрутил страницу за это время:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Мемоизация

Мемоизация – техника оптимизации, связанная с кэшированием промежуточных результатов сложных вычислений. Вместо того чтобы каждый раз заново решать сложную задачу, мы записываем ответ и в следующий раз просто смотрим в наш кэш:

  • Когда функция вызывается с определенными аргументами, мы сначала проверяем, вычисляли ли мы уже результат для этих аргументов.

  • Если да, мы возвращаем сохраненный результат.

  • Если нет, мы выполняем вычисление, сохраняем результат и возвращаем его.

Пример мемоизации при вычислении ряда Фибоначчи:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Без мемоизации вычисление fibonacci(40) заняло бы очень много времени, потому что функция вызывала бы себя рекурсивно миллионы раз, повторяя одни и те же вычисления.

  • С мемоизацией каждое число Фибоначчи вычисляется только один раз. При повторном запросе того же числа результат берется из кэша, что значительно ускоряет работу.

Когда использовать мемоизацию:

  • Для функций с очень сложными вычислениями.

  • Когда функция часто вызывается с одними и теми же аргументами.

  • Когда функция  возвращает один и тот же результат для одних и тех же входных данных.

Важно помнить, что мемоизация требует дополнительной памяти для хранения результатов, поэтому нужно учитывать этот компромисс между скоростью и объемом используемой памяти.

🐘🧩 Интересные задачи по PHP для практики можно найти на нашем телеграм-канале «Библиотека задач по PHP»

Proxy

Proxy позволяет нам обернуть объект и контролировать взаимодействие с ним. Мы можем перехватывать и изменять основные операции – чтение свойств, их запись, вызов функций и т. д. Proxy особенно полезен, когда нужно добавить дополнительное поведение к объектам, не изменяя их напрямую: это может быть полезно для отладки, для реализации реактивных систем (как в Vue.js), для создания умных объектов и многого другого:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Для чего еще можно использовать Proxy:

  • Валидация – проверка данных перед их установкой в объект.

  • Логирование – отслеживание использования и изменений свойств объекта.

  • Создание вычисляемых на лету свойств.

  • Безопасность – можно контролировать доступ к свойствам объекта.

Генераторы

Генераторы – особый тип функций в JavaScript:

  • Могут приостанавливать свое выполнение и возобновлять его позже.

  • Сохраняют свое состояние между вызовами.

  • Используют ключевое слово yield для возврата значений.

Пример итерации по свойствам объекта:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Преимущества генераторов:

  • Ленивые вычисления – вычисляют значения, когда они действительно нужны.

  • Создание бесконечных последовательностей, не занимающих бесконечный объем памяти.

  • Упрощение асинхронного кода – можно сделать асинхронный код более похожим на синхронный.

  • Создание кастомных итераторов для сложных структур данных.

Эффективное использование консоли

Помимо console.log(), консоль предоставляет несколько более наглядных методов вывода информации.

  • Ошибки и предупреждения:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Вывод табличных данных:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Группировка логов:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Измерение времени выполнения:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Условное логирование:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Трассировка стека:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

🐍🎓 Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека Python для собеса»

Структурированное клонирование

Структурированное клонирование – метод создания полной (глубокой) копии объекта, включающей все вложенные объекты и структуры данных. Функция structuredClone позволяет выполнять такое клонирование просто и эффективно – в  отличие от JSON.parse(JSON.stringify()), structuredClone корректно обрабатывает Date, Map, Set и другие специальные типы JavaScript:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Структурированное клонирование стоит использовать, если:

  • Нужно создать полную, независимую копию сложного объекта.

  • Данные не должны изменяться (иммутабельность).

  • Необходимо избежать побочных эффектов при изменении данных.

Самовызывающиеся функции

Самовызывающиеся функции (IIFE) выполняются автоматически сразу после их создания. Они создают временную область видимости, в которой можно безопасно определять переменные и функции, не беспокоясь о том, что они будут конфликтовать с другими частями кода и загрязнять глобальную область видимости. Эта техника особенно полезна в старых средах JavaScript, где блочная область видимости (let и const) недоступна, или в сценариях, где требуется немедленное выполнение для инициализации:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Теговые шаблоны

Теговые шаблоны позволяют разбирать шаблонные литералы с помощью функции. Первый аргумент такой функции содержит массив строковых значений, а остальные содержат выражения из подстановок. Здесь, например, функция sanitize заменяет опасные символы на их безопасные HTML-сущности, предотвращая выполнение нежелательного кода:

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

Как можно использовать теговые шаблоны:

  • Автоматически обрабатывать пользовательский ввод, предотвращая XSS-атаки.

  • Форматировать числа, даты и т. д.

  • Безопасно формировать SQL-запросы, экранируя ввод.

  • Создавать теги для автоматического перевода строк с одного языка на другой.

🤖🧩 Интересные задачи по DS для практики можно найти на нашем телеграм-канале «Библиотека задач по DS»

📐 Единицы измерения высоты и ширины экрана в современном CSS

На протяжении многих лет разработчики использовали vh и vw, чтобы задавать размеры элементов в процентах от высоты и ширины экрана. Например, чтобы заполнить весь экран элементом, его размеры можно задать как 100vh на 100vw. Однако эти единицы могут работать ненадежно в некоторых случаях, например, при изменении видимой области экрана на мобильных устройствах из-за скрытия адресной строки браузера при прокрутке. Сейчас CSS предлагает новые единицы измерения, которые учитывают динамические изменения интерфейса браузера.

Large Viewport Units (lvh, lvw)

Эти единицы задаются относительно максимального размера видимой области, когда интерфейс браузера минимизирован (например, скрыты панели). По сути, они ведут себя аналогично классическим vh и vw, но с учетом возможных изменений интерфейса. Этот элемент будет занимать весь экран независимо от состояния интерфейса браузера:

.full-page-element {
height: 100lvh;
width: 100lvw;
z-index: -1
background: #f51;
}

Small Viewport Units (svh, svw)

Эти единицы рассчитываются относительно минимального размера видимой области, когда интерфейс браузера максимально расширен (например, когда панели видимы). Пример – статичный заголовок, занимающий 10% от минимальной видимой области:

.header {
height: 10svh;
background-color: #642;
}

Dynamic Viewport Units (dvh, dvw)

Эти единицы измеряются с учетом динамических изменений видимой области при взаимодействии пользователя с интерфейсом (например, при прокрутке страницы или появлении виртуальной клавиатуры). Есть нюансы: использование этих единиц иногда приводит к неожиданным изменениям размеров контента и ухудшению производительности. Пример – элемент, который адаптируется к изменениям высоты видимой области:

.adjustable-element {
height: calc(100dvh - 10svh);
}

Привет!

Мы запустили еженедельную email-рассылку, посвященную последним новостям и тенденциям в мире фронтенда. В наших еженедельных рассылках ты найдешь:

  • Современные JavaScript-фреймворки и библиотеки

  • HTML5 и CSS3: новые возможности и трюки

  • Оптимизация производительности веб-приложений

  • Тестирование и отладка кода

  • Лучшие практики UX/UI

  • Новые веб-стандарты и браузерные технологии

  • Тренды в веб-дизайне и интерфейсах

  • Прогрессивные веб-приложения (PWA)

📧 Подпишись, чтобы быть в числе первых, кто получит дайджест

✍️ 50 лучших ресурсов с бесплатными HTML/CSS/JS-шаблонами

  • HTMLrev – крупнейшая бесплатная библиотека шаблонов, созданных с использованием всех существующих технологий, включая HTML/CSS/JS, Bootstrap, Tailwind, Bulma, Angular, React, Vue, Next.js, Nuxt, Svelte, Astro, Laravel, Django, Gatsby, Hugo, Jekyll и BCMS.

  • HTML5 UP – бесплатная коллекция HTML-шаблонов с уникальным дизайном и высоким качеством кода.

  • StyleShout предлагает широкий выбор шаблонов для различных целей, включая SaaS, мобильные приложения, блоги, лендинги, портфолио и агентства.

  • One Page Lovе включает шаблоны на Bootstrap, Next.js, Tailwind, Carrd и Framer.

  • Cruip предлагает шаблоны на Tailwind, React, Vue, Next.js и Laravel.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

🐍🧩 Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»

  • Templatemo – огромная коллекция бесплатных Bootstrap-шаблонов.

  • ThemeSelection – библиотека бесплатных и платных шаблонов на Vue, Next.js, Nuxt и Laravel. Специализируется на административных панелях и UI-китах.

  • Creative Tim – шаблоны на Bootstrap, Tailwind, Angular, React, Vue, Next.js, Nuxt, Svelte, Laravel, Django и Astro.

  • Themesberg предлагает широкий выбор шаблонов для административных панелей, лендингов, дизайн-систем и UI-китов.

  • TemplateDeck – небольшая библиотека креативных Bootstrap-шаблонов высокого качества.

  • Flout UI – коллекция компонентов Tailwind и готовых шаблонов Next.js.

  • Michael Andreuzza – бесплатная подборка шаблонов Astro, созданная опытным и креативным разработчиком.

  • Just Good UI – собрание бесплатных и платных шаблонов Astro.

  • Startup Landing – подборка бесплатных шаблонов Next.js и Gatsby.

  • Web3Templates – красивые шаблоны Tailwind, Astro и Next.js, оптимизированные для конверсий.

  • Landify – красивые и современные шаблоны Gatsby.

  • Nextjs Templates – широкий выбор шаблонов для разных целей, включая SaaS, стартапы, бизнес, программное обеспечение и блоги.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • LayoutFlow – отличные шаблоны для агентств, портфолио и сайтов услуг.

  • Template Foundation – шаблоны, ориентированные на портфолио и личные сайты.

  • Templated – продуманные шаблоны на HTML/CSS и Bootstrap.

  • Freebiesbug – высококачественные шаблоны, оптимизированные для маркетинга.

  • Start Bootstrap – широкий выбор профессиональных шаблонов для стартапов, агентств, портфолио, личных сайтов и блогов.

  • MonsterOne – современные шаблоны с несколькими страницами.

  • TemplatesJungle – шаблоны для бизнеса, агентств, сервисов, портфолио, электронной коммерции и других целей.

  • 3rd Wave Media – коллекция высококачественных шаблонов, ориентированных на ИТ-сферу.

  • Tooplate – большая коллекция стильных и современных Bootstrap-шаблонов.

  • Pixel Rocket – качественные Bootstrap- и Tailwind-шаблоны.

  • HTML Codex – широкий выбор шаблонов для бизнеса, курсов, продуктов, агентств, сервисов, портфолио, резюме и других целей.

  • W3Layouts отличается широким выбором шаблонов для бизнеса.

  • Bootstrapious – шаблоны с хорошим дизайном и продвинутыми компонентами.

  • Untree – стильные шаблоны со сложными элементами.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • Tailwind Toolbox – красивые шаблоны с продуманной структурой.

  • Pixelcave – современные шаблоны для сайтов и административных интерфейсов.

  • Themefisher – коллекция шаблонов для бизнеса, SaaS, блогов и других целей.

  • Tailspark – Tailwind-шаблоны для SaaS-сайтов и лендингов.

  • Red Pixel Themes – шаблоны с  хорошим дизайном и многими полезными компонентами.

  • Ari Budin – уникальные шаблоны для портфолио, агентств, журналов и дизайн-систем.

  • Treact – бесплатная библиотека React-шаблонов.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • DesignToCodes – шаблоны для стартапов, агентств, портфолио и административных панелей.

  • UI Lib – библиотека Bootstrap-, Tailwind-, Angular-, React- и Vue-шаблонов.

  • AdminMart – профессиональные шаблоны со множеством секций и компонентов.

  • WrapPixel – специализируется на административных панелях и UI-китах, предлагает широкий выбор шаблонов с разным дизайном и структурой.

  • Tabler – бесплатная библиотека Bootstrap-шаблонов, специализируется на административных панелях.

  • KeenThemes – современные шаблоны для админ-панелей со множеством компонентов.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост

🎮 Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека разработчика игр | Gamedev, Unity, Unreal Engine»

  • EaseTemplate – подборка современных Bootstrap-шаблонов.

  • BootstrapDash – шаблоны с несколькими страницами и продвинутыми компонентами.

  • CodedThemes – профессиональные Bootstrap-, Angular-, React- и Vue-шаблоны с красивым дизайном.

  • Salvia Kit предлагает коллекцию Angular-, React-, Vue-, Nuxt- и Svelte-шаблонов. Отличается широким выбором шаблонов для административных панелей.

Итоги недели в мире фронтенда и обзоры новых сервисов: 10 полезных JavaScript-трюков Программирование, Разработка, Шаблон, Angular, Bootstrap, CSS, Frontend, Gatsby, HTML, IT, Javascript, Laravel, React, Vue, Длиннопост
  • JustBoil – Tailwind-, React-, Vue-, Next.js-, Nuxt- и Laravel-шаблоны для сайтов и админ-панелей.

  • Iqonic Design – библиотека React- и Vue-шаблонов, предлагает несколько бесплатных пакетов для создания современных интерфейсов.

Автор рассылки: Наталья Кайда

📧 Подписаться на рассылку

Показать полностью 24
Программирование Разработка Шаблон Angular Bootstrap CSS Frontend Gatsby HTML IT Javascript Laravel React Vue Длиннопост
1
3
Proglib
Proglib
10 месяцев назад
Серия Итоги недели в мире ИИ и обзоры новых сервисов

Итоги недели в мире ИИ и обзоры новых сервисов: 25 опенсорсных AI-инструментов для ваших проектов⁠⁠

Итоги недели в мире ИИ и обзоры новых сервисов: 25 опенсорсных AI-инструментов для ваших проектов ChatGPT, Dall-e, Javascript, Markdown, Microsoft, Midjourney, Openai, Python, Notion, Stable Diffusion, Искусственный интеллект, Нейронные сети, Чат-бот, Видео, Длиннопост, YouTube, YouTube (ссылка), IT, Программирование, Digital, Twitter (ссылка)

📰 Новости

В Южной Корее разработали новые ИИ-учебники для 5 млн школьников всех классов – от начального до выпускного. Контент этих учебников адаптируется под текущий уровень знаний ученика.

Исследователи Google Deep Mind провели анализ сообщений о случаях мошенничества с использованием ИИ и выяснили, для каких преступлений чаще всего используются возможности GenAI. Спойлеры:

  • Самый популярный вид кибермошенничества с применением ИИ – имперсонация, когда злоумышленники с помощью дипфейк-технологий притворяются другими людьми.

  • Один из самых впечатляющих случаев мошенничества произошел в феврале 2024 года в Гонконге, когда злоумышленникам удалось убедительно подделать видеоконференцию с участием нескольких лиц. Все участники, включая фальшивого финансового директора, выглядели настолько естественно, что ничего не подозревающий сотрудник послушно перевел $25,6 млн на подставной счет.

Еще один из отцов-основателей OpenAI, Джон Шульман, перешел в Anthropic.

Компания Groq, разработавшая уникальный супербыстрый LPU (языковой процессор), получила $640 млн инвестиций и оценку в $2,8 млрд, что свидетельствует о фундаментальном сдвиге в индустрии ИИ-инфраструктуры – Groq стал серьезным конкурентом для NVIDIA.

На опенсорсной платформе LMSYS Chatbot Arena, где ИИ-компании часто тестируют предстоящие релизы, появился некий anonymous-chatbot, который превосходит GPT-4o и остальные крупнейшие модели и, возможно, является секретным проектом Q*/Strawberry от OpenAI. На это намекнул Альтман.

Новая модель роботов-гуманоидов Figure 02 успешно прошла тестирование на заводе BMW. Робот поддерживает диалог благодаря генеративному ИИ от OpenAI, может поднимать до 25 кг, выполняет задачи автономно и работает 8 часов без подзарядки.

На платформе Mistral теперь можно создать собственных ИИ-агентов, имеющих такую же функциональность, как кастомные GPT.

Феноменальный успех ChatGPT сделал Сэма Альтмана одним из самых влиятельных людей в мире, и это должно внушать серьезное беспокойство всем нам. По наблюдениям Гэри Маркуса, которые он подробно изложил в разоблачительной статье, директору OpenAI и деятельности его компании нельзя доверять:

  • Во время слушаний по вопросам регулирования ИИ в сенате США Альтман предоставил неполную и неискреннюю информацию и солгал, отвечая на вопрос о том, получает ли он прибыль от OpenAI. Альтман буквально сказал, что получает денег «достаточно для оплаты медстраховки». При этом один автомобиль из его обширного автопарка, Koenigsegg Regera, стоит не менее $4 млн.

  • Несмотря на публичные заявления Альтмана о необходимости регулирования ИИ, на деле OpenAI активно лоббирует ослабление регулирования.

  • OpenAI не уделяет достаточного внимания вопросам безопасности ИИ, что подтверждается уходом нескольких ключевых сотрудников, занимавшихся безопасностью.

  • Деятельность OpenAI подразумевает использование огромных объемов электроэнергии, воды и других ресурсов. Такое же безответственное отношение к ресурсам переняли все конкуренты OpenAI – от Anthropic до Microsoft. Никто не пытается «озеленить» ИИ-индустрию.

  • Технологии OpenAI активно используются для создания политической дезинформации – компания признала несколько инцидентов, но не предпринимает видимых усилий для предотвращения подобных случаев.

Илон Маск снова решил судиться с OpenAI и ее основателями – Сэмом Альтманом и Грэгом Брокманом. Юридическая команда Маска утверждает, что Альтман и Брокман «усердно манипулировали Маском», убеждая его стать соучредителем их якобы благотворительной организации, обещая безопасность и прозрачность OpenAI, что отличало ее от альтернатив, ориентированных на прибыль. Иск выходит за рамки простых договорных споров, поскольку содержит серьезные юридические обвинения, включая финансовое мошенничество, нарушение договора, сетевое мошенничество и даже нарушение RICO («Закона о коррумпированных и находящихся под влиянием рэкетиров организациях»).

Привет!

Мы запустили еженедельную email-рассылку, посвященную последним новостям и тенденциям в мире искусственного интеллекта. Наша цель – держать подписчиков в курсе самых интересных открытий, исследований и приложений ИИ.

В еженедельных письмах ты найдешь:

  • Новости о прорывных исследованиях в области машинного обучения и нейросетей.

  • Материалы о применении ИИ в разных сферах – медицине, бизнесе, науке, производстве и образовании.

  • Статьи об этических аспектах развития технологий.

  • Подборки лучших онлайн-курсов и видеолекций по машинному обучению.

  • Обзоры инструментов и библиотек для разработки нейронных сетей.

  • Ссылки на репозитории с открытым исходным кодом ИИ-проектов.

  • Фильмы, сериалы и книги, которые заслуживают внимания AI-энтузиастов.

📧 Подпишись, чтобы быть в числе первых, кто получит дайджест

🛠️ Инструменты

MinusX – Chrome-расширение для анализа данных в Jupyter и Metabase.

Frontend AI – генерирует код UI-компонентов по текстовым описаниям и скриншотам, поддерживает редактирование.

Pictory – превращает любой контент в видеоклипы.

Semantic Scholar – бесплатный ИИ-поисковик по огромной базе (220,2 млн +) научных публикаций из всех отраслей науки. Имеет API для использования в собственных приложениях.

Napkin AI – визуализирует информацию в виде любой бизнес-графики – диаграмм, схем, графиков, презентаций и т. д.

🤖✍️ Все самое полезное про ИИ-помощников вроде ChatGPT, Gemini, Bing и других вы найдете на нашем телеграм-канале «Библиотека нейротекста»

AIswers – платформа, на которой можно задавать вопросы множеству ИИ-моделей одновременно.

Spreadsite – превращает данные из CSV-файлов в интерактивные дашборды и сайты.

GummySearch – находит Reddit-сообщества, попадающие под описание целевой аудитории продукта.

Rosebud – личный коуч и психолог.

✍️ Сделай сам

На Hugging Face выпустили опенсорсную модель CogVideoX-2B для генерации видео, по качеству сопaоставимую с Sora.

MiniCPM-V – опенсорсная минимодель, которая имеет всего 8 млрд параметров и работает на смартфоне, но при этом превосходит GPT-4V в понимании содержимого изображений и видео в реальном времени.

Итоги недели в мире ИИ и обзоры новых сервисов: 25 опенсорсных AI-инструментов для ваших проектов ChatGPT, Dall-e, Javascript, Markdown, Microsoft, Midjourney, Openai, Python, Notion, Stable Diffusion, Искусственный интеллект, Нейронные сети, Чат-бот, Видео, Длиннопост, YouTube, YouTube (ссылка), IT, Программирование, Digital, Twitter (ссылка)

MiniCPM-V отлично понимает смысл и контекст изображений

Flux – модель, разработанная командой, создавшей Stable Diffusion. По многочисленным отзывам, во многом превосходит Midjourney и DALL-E. И самое главное – ее можно установить на свой комп и даже на приличный игровой ноутбук. Протестировать можно на платформе NightCafe.

Итоги недели в мире ИИ и обзоры новых сервисов: 25 опенсорсных AI-инструментов для ваших проектов ChatGPT, Dall-e, Javascript, Markdown, Microsoft, Midjourney, Openai, Python, Notion, Stable Diffusion, Искусственный интеллект, Нейронные сети, Чат-бот, Видео, Длиннопост, YouTube, YouTube (ссылка), IT, Программирование, Digital, Twitter (ссылка)

Примеры генераций Flux

🤖🎨 Все самое полезное про нейросети для генерации изображений вы найдете на нашем телеграм-канале «Библиотека нейрокартинок»

25 опенсорных инструментов для использования в ИИ-проектах

Vanna – Python-библиотека, которая позволяет автоматически писать SQL-запросы и задавать базе данных вопросы на естественном языке.

Khoj – AI-помощник для поиска информации. Понимает разные форматы файлов, включая Word, PDF, Markdown и другие, а также интегрируется с платформами вроде Notion.

Flowise – визуальный конструктор для построения пользовательских потоков управления языковыми моделями и AI-агентами.

LLAMA GPT – локальный и автономный чат-бот, похожий на ChatGPT.

LocalAI – API-сервер, совместимый с API OpenAI, который позволяет запускать языковые модели, генерировать изображения и аудио локально или на своей инфраструктуре без использования GPU.

Continue – один из лучших AI-ассистентов для написания кода. Он позволяет подключать разные модели и контексты, чтобы создавать пользовательские автодополнения и чат-интерфейсы внутри VS Code и JetBrains IDE.

Chat2DB – ИИ-платформа для управления данными, разработки и анализа. Может конвертировать естественный язык в SQL (и наоборот), а также автоматически генерировать отчеты.

🤖🦾 Все самое полезное про роботов, беспилотники, автопилоты и интернет вещей вы найдете на нашем телеграм-канале

«Библиотека робототехники и беспилотников»

LibreChat – продвинутая платформа для создания собственного интерфейса для чат-ботов. Она предлагает множество настроек и поддержку разных AI-провайдеров, сервисов и интеграций, предоставляет единый интерфейс для общения с несколькими AI-ассистентами.

Lobe Chat – фреймворк для создания чат-интерфейсов с языковыми моделями. Он поддерживает речевой синтез, мультимодальность и расширяемую систему плагинов.

MindsDB – платформа для настройки AI на основе корпоративных данных. Она позволяет развертывать, обслуживать и настраивать модели в режиме реального времени, используя данные из баз данных, векторных хранилищ или сторонних приложений.

AutoGPT – полуавтономный агент, способный автоматизировать сложные процессы, выполняя последовательности действий без постоянного вмешательства человека.

🤖🔊 Все самое полезное про нейросети для звука: транскрибации, синтеза речи и музыки вы найдете на нашем телеграм-канале «Библиотека нейрозвука»

reor – ИИ-приложение для ведения заметок. Автоматически связывает заметки, отвечает на вопросы и обеспечивает семантический поиск. Все данные хранятся локально, а редактирование заметок происходит в Markdown-редакторе, похожем на Obsidian.

Leon – персональный ассистент, который может работать на вашем сервере. Выполняет разные задачи по вашему запросу и может общаться голосом или текстом. Имеет модульную структуру навыков, которую при желании можно расширить.

Instrukt – терминальная среда с интегрированным ИИ. Позволяет создавать и инструктировать модульных AI-агентов, генерировать индексы документов для ответов на вопросы и назначать инструменты для любого агента.

Quivr – RAG-фреймворк для создания специализированных AI-ассистентов с разными возможностями.

Open Interpreter – интерфейс, который позволяет отдавать компьютеру команды на естественном языке в терминале и дает возможность LLM выполнять код (Python, JavaScript, Shell и т. д.).

CopilotKit – фреймворк для создания пользовательских AI-помощников в React-приложениях.

GPT Engineer – инструмент, который позволяет вам описать нужное приложение на естественном языке, а затем наблюдать, как AI пишет, выполняет и вносит улучшения в код.

Dalai – самый простой инструмент для запуска моделей Llama* и Alpaca локально на вашем компьютере.

🤖🎥 Все самое полезное про нейросети для генерации видео и дипфейки вы найдете на нашем телеграм-канале «Библиотека нейровидео»

OpenLLM – инструмент, позволяющий с помощью одной команды запускать любые опенсорсные LLM в виде API-эндпоинтов. Поддерживает множество моделей и оптимизирован для использования в высоконагруженных приложениях.

Unsloth – ускоряет процесс тонкой настройки больших языковых моделей (Llama-3*, Mistral, Phi-3 и Gemma). Позволяет проводить файнтюнинг в два раза быстрее, используя на 70% меньше памяти, без потери точности.

E2B – предоставляет безопасную среду (песочницу) для AI-агентов и приложений. Это особенно полезно при создании ИИ-приложений с возможностями выполнения кода.

Camel AI – фреймворк, предлагающий масштабируемый подход к созданию систем с несколькими AI-агентами, которые могут эффективно взаимодействовать друг с другом.

Aider – ИИ-напарник программиста, который работает в терминале. Он может начинать новые проекты, умеет редактировать файлы и работать с существующими Git-репозиториями. Aider совместим со всеми популярными моделями (GPT-4, Sonnet 3.5, DeepSeek Coder, Llama 70b и другими).

FastEmbed – быстрая и легкая Python-библиотека для генерации эмбеддингов (векторных представлений) документов. Она использует ONNX runtime вместо PyTorch, что и делает ее быстрее традиционных решений.

Автор рассылки: Наталья Кайда

📧 Подписаться на рассылку

Показать полностью 2 10
ChatGPT Dall-e Javascript Markdown Microsoft Midjourney Openai Python Notion Stable Diffusion Искусственный интеллект Нейронные сети Чат-бот Видео Длиннопост YouTube YouTube (ссылка) IT Программирование Digital Twitter (ссылка)
0
1
Proglib
Proglib
10 месяцев назад
Серия Итоги недели в мире фронтенда и обзоры сервисов

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга⁠⁠

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

☕ 5 способов создания DOM-элементов из HTML-строк методами JavaScript

Создание DOM-элементов из строк обеспечивает:

  • Динамическое создание контента – можно добавлять новые элементы на страницу без перезагрузки.

  • Гибкость – можно легко генерировать HTML на основе данных, полученных от пользователя или с сервера.

  • Шаблонизацию – поскольку упрощает создание повторяющихся структур HTML.

  • Управление интерфейсом – помогает создавать интерактивные элементы, которые реагируют на действия пользователя.

Почти все современные JavaScript-фреймворки и библиотеки предоставляют удобные инструменты для создания DOM-элементов из HTML-строк – это одна из основных задач, которую они решают. Если же нужно обойтись возможностями ванильного JavaScript, то это можно сделать несколькими разными способами.

innerHTML

Это самый известный метод: он позволяет вставить строку HTML внутрь атрибута innerHTML контейнера и затем получить доступ к созданному узлу DOM. Однако он может обрабатывать только допустимые узлы HTML – к примеру, попытка вставить элемент <tr> в <div> приведет к тому, что узел не будет создан. Кроме того, этот метод не выполняет скрипты в HTML-строках, что делает его безопасным при работе с непроверенным содержимым.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

innerHTML + template

Использование тега <template> снимает ограничения на содержимое – он может содержать любую HTML-структуру, включая элементы, связанные с таблицами – <tr> и <td>.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

insertAdjacentHTML

Как и innerHTML, этот метод обрабатывает только допустимые HTML-узлы и не выполняет скрипты.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

DOMParser

Этот метод работает медленнее остальных, поскольку он разбирает строку, создавая полный HTML-документ, и только потом извлекает узел из документа. Он также может обрабатывать только допустимые узлы HTML и не выполняет скрипты.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

Range.createContextualFragment

Самый простой, но не безопасный метод – выполняет скрипты. Поэтому при его использовании необходимо очищать данные для защиты от XSS – например, с помощью DOMPurify.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

🎓☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

🦮 Интерактивные гайды

Гайд по SVG

SVG-графика предоставляет нам стандартизированный способ создания изображений и иконок, которые можно отображать в любом размере без потери качества изображения. Но разобраться в методах SVG не так-то просто. На помощь придет интерактивный справочник SSSVG.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

SSSVG поможет быстро понять принцип работы всех основных атрибутов

К слову, возможности SVG простираются за пределы создания векторных картинок и лого: энтузиасты умудрились сделать «Тетрис» в виде одного SVG-файла.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

Этот «Тетрис» сделан полностью на SVG

Гайд по :has() в CSS

Псевдокласс :has() открывает новые возможности для творческих экспериментов в CSS, позволяя создавать сложные и интерактивные дизайны без использования JavaScript. Это первый родительский селектор, позволяющий стилизовать элемент в зависимости от его содержимого. Все невероятные возможности :has() продемонстрированы в интерактивном гайде CSS :has() Interactive Guide.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

В гайде подробно разобраны десятки примеров использования :has()

🐘🧩 Интересные задачи по PHP для практики можно найти на нашем телеграм-канале «Библиотека задач по PHP»

🪚 Инструменты

Plasmic – опенсорсный визуальный конструктор для создания сайтов и веб-приложений на React со множеством функций:

  • Можно интегрировать с существующими React-проектами.

  • Можно использовать как CMS.

  • Позволяет подключать разные источники данных и бэкенд-сервисы.

  • Совместим с Next.js и Gatsby.

  • Поддерживает оптимизацию производительности, включая статическую генерацию сайтов и оптимизацию изображений.

article-extractor – эта библиотека Node.js извлекает текст статей, метаданные и ссылки на изображения по URL.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

Протестировать article-extractor можно на демо-сайте

Turndown – Node.js-библиотека для конвертирования HTML в Markdown. Отлично работает в связке с предыдущим инструментом.

Итоги недели в мире фронтенда и обзоры новых сервисов: Как выбрать стратегию рендеринга Программирование, Разработка, Рендер, Frontend, CSS, HTML, IT, Javascript, Markdown, Nodejs, Svg, Видео, Длиннопост, YouTube, YouTube (ссылка)

article-extractor + turndown подготовят контент для LLM

15 полезных расширений VS Code для фронтендера

  • Auto Rename Tag – при переименовании HTML-тега автоматически обновляет парный тег.

  • Code Spell Checker – находит опечатки в именах переменных и других идентификаторах.

  • DotEnv – добавляет цветовое оформление и улучшает читаемость файлов с переменными окружения.

  • Docker – добавляет вкладку для удобной работы с контейнерами, если вы используете Docker.

  • ESLint – выявляет проблемы в коде (нарушения форматирования или потенциальные ошибки) на лету.

  • Figma – позволяет встраивать и просматривать файлы дизайна Figma прямо в VS Code.

  • GitHub Copilot – предлагает AI-генерируемые подсказки во время набора кода.

  • Copilot Chat – предоставляет окно чата в стиле ChatGPT прямо в редакторе.

  • GraphQL – набор расширений, упрощающих работу с GraphQL.

  • Import Cost – показывает размер импортируемых пакетов, помогая выявить потенциальное раздувание кода.

  • Live Server – запускает локальный сервер с автоматической перезагрузкой, что удобно для предварительного просмотра изменений.

  • Live Share – позволяет программировать в команде с другими разработчиками, работая в одном редакторе в реальном времени.

  • Markdown Preview Enhanced – предоставляет живой предпросмотр Markdown-файлов во время редактирования.

  • Notes – удобный блокнот для хранения заметок по проекту, инструкций по настройке и т. д.

  • Hinty – предоставляет динамические подсказки в реальном времени. Помогает избегать повторения распространенных ошибок и соблюдать стандарты написания кода в команде.

🐍🎓 Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека Python для собеса»

⚛️ Как выбрать оптимальную стратегию рендеринга

Рендеринг – это процесс превращения кода в контент. За годы развития интернета эта технология прошла долгий путь – от формирования простейших HTML-страниц на стороне сервера до динамического обновления интерактивных приложений без перезагрузки. Сейчас в ходу несколько методов рендеринга:

  • Генерация статических сайтов (предварительно генерирует HTML-страницы во время сборки приложения).

  • Генерация на стороне сервера (генерирует полный HTML для страницы при каждом запросе).

  • Генерация на стороне клиента (использует JavaScript для рендеринга контента в браузере пользователя).

  • Инкрементальная статическая регенерация (позволяет обновлять отдельные страницы после сборки сайта).

  • Частичный пререндеринг (экспериментальный подход, который стремится автоматически оптимизировать стратегии рендеринга).

Эти методы по-разному подходят к оптимизации работы приложения, SEO и пользовательского опыта. Их можно комбинировать – это позволяет по максимуму использовать сильные стороны, нивелировать недостатки и обеспечить оптимальный баланс производительности, свежести данных и интерактивности. Разработчики Vercel (эта компания создала Next.js) написали подробную статью о преимуществах и недостатках каждого подхода и о том, как их лучше комбинировать.

Генератор статических сайтов (SSG)

Идеально подходит для страниц с редко меняющимся контентом, макетов сайтов, документации и лендингов, для которых важна максимальная скорость загрузки.

Преимущества:

  • Самая быстрая загрузка страниц.

  • Отличные показатели SEO.

  • Самая низкая нагрузка на сервер.

  • Низкие затраты на инфраструктуру.

Недостатки:

  • Увеличенное время сборки для сайтов с большим количеством страниц.

  • Обновление контента требует новой сборки и развертывания.

Рендеринг на стороне сервера (SSR)

Идеально подходит для персонализированных дашбордов, лент соцсетей и визуализации данных в реальном времени.

Преимущества:

  • Всегда отдает свежий, актуальный контент.

  • Показатели SEO и времени загрузки данных лучше, чем при рендеринге на стороне клиента.

Недостатки:

  • Загрузка происходит медленнее, чем при использовании SSG или ISR.

  • Показатель времени до первого байта (TTFB) может быть неудовлетворительным.

  • Потребляет больше серверных ресурсов.

Инкрементальная статическая регенерация (ISR)

Подходит для случаев, когда сборка с SSG занимает слишком много времени. Используется для страниц продуктов в e-commerce, новостных порталов и крупных контентных сайтов.

Преимущества:

  • Сохраняет быструю загрузку страниц, как у SSG.

  • Позволяет обновлять контент по требованию без полной пересборки.

  • Эффективно масштабируется на большое количество страниц.

  • Может быть экономичнее, чем SSR, в некоторых случаях.

Недостаток:

  • Требует тщательного управления стратегиями инвалидации кэша.

Рендеринг на стороне клиента (CSR)

Подходит для интерактивных элементов страницы, требующих немедленной обратной связи, админ-панелей с данными в реальном времени и приложений типа Notion, которые непрерывно синхронизируют вводимые пользователем данные с сервером.

Преимущества:

  • Самый интерактивный пользовательский опыт.

  • Плавные переходы между состояниями приложения.

  • Взаимодействие с внешними данными в реальном времени.

Недостатки:

  • Начальная загрузка может быть медленнее из-за необходимости загрузки JavaScript-бандла.

  • Оптимизация Core Web Vitals может быть сложной.

  • Требует тщательного управления состоянием на клиенте.

Частичный пререндеринг (PPR)

PPR призван объединить преимущества других стратегий рендеринга и потенциально может стать стандартным подходом для веб-приложений в будущем.

Преимущества:

  • Мгновенная загрузка страницы (как у SSG).

  • Плавная потоковая передача динамического контента.

  • Улучшенная производительность с меньшими затратами на разработку.

Недостатки:

  • Все еще находится в стадии исследований и разработки.

  • Может потребовать рефакторинга кода для включения в существующий проект.

Выбор стратегии рендеринга

При выборе стратегии рендеринга нужно учитывать следующие факторы.

Как часто обновляется контент?

  • Статический контент лучше всего обрабатывать генератором статических сайтов.

  • Для вывода периодически обновляемого контента отлично подходит инкрементальная статическая регенерация.

  • Обновление контента в реальном времени требует серверного или клиентского рендеринга.

Для повышения производительности нужно стремиться к максимальному использованию SSG и ISR, прибегая к SSR только в случае необходимости получения абсолютно свежих данных.

Насколько важно продвижение страницы в поисковых системах?

  • Хотя Google может рендерить JavaScript на стороне клиента, ключевые показатели Core Web Vitals все еще сильно влияют на ранжирование.

  • Высоких показателей CWV легче добиться на статических и серверных страницах, чем на страницах с клиентской загрузкой внешних данных.

Насколько активно пользователь будет взаимодействовать со страницей?

  • Если страница в основном статическая с минимальным взаимодействием, используйте SSG или ISR с небольшим количеством клиентского JavaScript.

  • В противном случае может потребоваться SSR (с гидратацией на стороне клиента).

Каковы требования к скорости загрузки?

  • Для максимально быстрой начальной загрузки используйте SSG или ISR с редкой инвалидацией.

  • Чтобы сбалансировать свежесть данных и скорость, используйте ISR или SSR (для актуальных данных).

  • CSR может обеспечить данные в реальном времени, но часто за счет начальной загрузки.

Нужно ли персонализировать контент?

  • Если вам нужен персонализированный контент, скорее всего, потребуется SSR или CSR.

  • ISR может работать в случаях, когда можно кэшировать персонализированный контент, например, настройки веб-приложения.

  • SSG не позволяет персонализировать контент.

🔤 Больше полезных материалов вы найдете на нашем телеграм-канале «Азбука айтишника»

Автор рассылки: Наталья Кайда

Показать полностью 10 1
Программирование Разработка Рендер Frontend CSS HTML IT Javascript Markdown Nodejs Svg Видео Длиннопост YouTube YouTube (ссылка)
0
AlexeyPerfilev
AlexeyPerfilev
11 месяцев назад

Проблемы разработки приложений на Next.js⁠⁠

Свой последний проект я писал на Next.js, так что решил поделиться проблемами, с котороми сталкиваются разработчики, работающие с этим фреймворком.

Next.js, фреймворк для React, получил значительную популярность в сообществе веб-разработчиков благодаря своим мощным функциям, таким как серверный рендеринг (SSR), статическая генерация сайта (SSG) и маршруты API. Однако, несмотря на свои многочисленные преимущества, разработчики часто сталкиваются с рядом проблем при создании приложений на Next.js. В этой статье мы рассмотрим некоторые из этих трудностей и предложим пути их решения.

1. Сложная конфигурация и настройка

Хотя Next.js стремится предоставить нулевую конфигурацию, сложные проекты часто требуют индивидуальных настроек. Это может включать в себя настройку Webpack, управление переменными окружения или интеграцию с другими библиотеками и инструментами. Для разработчиков, не знакомых с этими конфигурациями, начальная настройка может быть сложной задачей.

Решение:

  • Документация: Внимательно изучайте официальную документацию Next.js и ресурсы сообщества.

  • Шаблоны и заготовки: Используйте существующие шаблоны и заготовки, которые могут предоставить надежную отправную точку.

2. Обработка серверного рендеринга (SSR)

SSR является одной из ключевых особенностей Next.js, но он также добавляет сложности. Обеспечение корректного рендеринга компонентов на сервере и клиенте может быть сложной задачей, особенно при работе с сторонними библиотеками, которые не поддерживают SSR.

Решение:

  • Условный рендеринг: Используйте условный рендеринг, чтобы убедиться, что компоненты, зависящие от клиентских функций (например, объекта window), выполняются только на стороне клиента.

  • Библиотеки, совместимые с SSR: Выбирайте библиотеки, которые явно поддерживают SSR или имеют серверобезопасные альтернативы.

3. Маршрутизация и динамические маршруты

Next.js предлагает систему маршрутизации на основе файлов, которая одновременно мощна и ограниченна. Обработка динамических маршрутов и вложенной маршрутизации может стать затруднительной, особенно при работе с большим количеством маршрутов.

Решение:

  • Динамический импорт: Используйте динамический импорт для разделения кода и обработки сложных сценариев маршрутизации.

  • Организация маршрутов: Логически организуйте свои маршруты и рассматривайте возможность использования вложенных папок для управления сложностью.

4. Управление состоянием

Управление состоянием в приложении Next.js может быть сложным, особенно когда нужно делиться состоянием между серверными страницами и клиентскими компонентами. Библиотеки, такие как Redux или Context API, могут помочь, но они добавляют еще один уровень сложности.

Решение:

  • Библиотеки управления состоянием: Используйте хорошо документированные библиотеки управления состоянием, которые хорошо интегрируются с Next.js.

  • Синхронизация сервера и клиента: Убедитесь, что изменения состояния на сервере и клиенте синхронизированы, возможно, с использованием промежуточного ПО для обработки извлечения данных и обновлений состояния.

5. Стратегии извлечения данных

Next.js предоставляет несколько методов для извлечения данных, таких как getStaticProps, getServerSideProps и маршруты API. Выбор правильной стратегии для нужд вашего приложения может быть запутанным и может потребовать значительного рефакторинга при изменении требований.

Решение:

  • Понимание сценариев использования: Четко понимаете, когда использовать каждый метод извлечения данных в зависимости от требований вашего приложения.

  • Инкрементальная статическая регенерация (ISR): Используйте ISR для страниц, которым требуется актуальная информация, но которые не нужно перерендеривать при каждом запросе.

6. Оптимизация производительности

Оптимизация производительности приложения на Next.js включает в себя несколько аспектов, от уменьшения размера пакетов до обеспечения эффективного серверного рендеринга. Плохо оптимизированные приложения могут страдать от медленной загрузки и посредственного пользовательского опыта.

Решение:

  • Анализ производительности: Используйте инструменты, такие как Lighthouse и Webpack Bundle Analyzer, для выявления узких мест производительности.

  • Разделение кода: Реализуйте разделение кода и ленивую загрузку для уменьшения времени начальной загрузки.

  • Стратегии кэширования: Используйте эффективные стратегии кэширования как на сервере, так и на клиенте для улучшения производительности.

7. Развертывание и хостинг

Развертывание приложения на Next.js требует внимательного подхода к выбору среды хостинга. Хотя Vercel, создатели Next.js, предлагают простые варианты развертывания, использование других платформ может потребовать дополнительной конфигурации.

Решение:

  • Vercel: Рассмотрите использование Vercel для самого простого опыта развертывания с автоматическими оптимизациями.

  • Пользовательские развертывания: Для пользовательских настроек убедитесь, что ваша серверная среда правильно настроена для обработки SSR и маршрутов API.

Заключение

Создание приложений с использованием Next.js может быть чрезвычайно полезным, предоставляя мощный фреймворк с передовыми функциями для современной веб-разработки. Однако важно быть осведомленным о потенциальных сложностях и иметь знания и инструменты для их эффективного решения. Понимая эти трудности и применяя лучшие практики, вы сможете использовать Next.js для создания мощных, производительных и масштабируемых приложений.

Не стесняйтесь делиться своим опытом или дополнительными советами по преодолению трудностей разработки на Next.js!

Показать полностью
IT Программирование Javascript React Текст Длиннопост
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии