
Пишу про полезные материалы про IT, и собираю свой ламповый нетворкинг тут - https://t.me/+434aQiGpZtAyNTU6. Присоединяйтесь!
Оглавление.
Прототипно-ориентированный язык программирования
Пишу про полезные материалы про IT, и собираю свой ламповый нетворкинг тут - https://t.me/+434aQiGpZtAyNTU6. Присоединяйтесь!
Оглавление.
JetBrains зарелизил новую версию своего AI-ассистента и вместе с ним Junie - автономного нейросетевого агента-программиста, которому можно поручать небольшие рабочие задачи.
Буквально вчера я получил к нему доступ и не смог не воспользоваться возможностью. Я даже не представлял...
"JavaScript отстой, потому что '0' == 0
!"
Да, эта часть JavaScript действительно ужасна, но сегодня в любом проекте есть линтер, который тут же заворчит на вас за такой код.
Вместо этого я хочу поговорить о более странных особенностях JavaScript — о таких, которые гораздо более коварные, чем эта ☝️ - о вещах, которые вы не найдете ни на r/ProgrammerHumor, ни в обычном учебнике по JavaScript.
Все эти странности могут возникнуть в любом окружении JavaScript/ECMAScript (будь то браузер, Node.js и т.д.), с режимом use strict
или без него. (А если вы работаете над легаси-проектами без строгого режима, вам следует срочно подумать о смене работодателя).
Если вы уже освоили основы написания Composable в Vue, то следующий шаг — собрать коллекцию лучших и самых полезных паттернов, расширив свой инструментарий для решения задач. В этой статье мы рассмотрим семь различных паттернов для написания более эффективных Composable.
В этой статье мы проведём подробный анализ современных практик frontend-разработки, сравним состояние React и Vue 5 лет назад и на текущий момент, а также попробуем спрогнозировать их перспективность в обозримом будущем с учётом развития LLM моделей и AI агентов. Посмотрим их экосистемы (Next.js и Nuxt, Redux и Pinia), использование в бэкенде, популярность решений в энтерпрайзе, а так же понимание разработчиками и LLM моделями.
В данной заметке рассмотрю неочевидные приемы организации циклов при написании типов. И применю предложенный подход для утилиты типа, создающей шаблон строкового литерала заданной длины.
Старался сделать доступным для широкой аудитории.
Эта статья расскажет о моём эксперименте по оптимизации моего рабочего пространства в macOS.
Примерно 10 лет назад я придумал одну идею — канбан-рабочий стол. Я понял, что иконки на рабочем столе были крутыми… в 1984 году. и втом числе поэтому 1984 не был как 1984) Но камон, за 40 лет кроме виджетов почти ничего не изменилось. Марк…
10 лет назад, узнав о системе канбан, я начал пользоваться Illustrator’ом и рисовал себе 4 колонки прямо на рабочем столе. Поверх них размещал стандартные стикеры, полностью отключив иконки рабочего стола.
Прошло много лет. Я немного выучил веб, и теперь у нас есть опенсорсный софт, который помог мне сделать то же самое, но уже более серьёзно.
Во-первых, Plash — программулька, которая ставит Chrome вместо бэкграунда.
Я также сделал на Python с FastAPI и Jinja и запустил себе уже настроенный канбан-рабочий стол.
Но как вы понимаете, на этом дело не кончилось.
Гуляя по интернету, я нашёл несколько исходников с открытыми лицензиями, которые я использовал в своём проекте.
Когда-то я занимался спортивными парными танцами. Часто на тренировках была необходимость узнать темп (или скорость, если немного подушнить насчёт терминов) играющего трека, который измеряется в «ударах в минуту» (beats per minute
, bpm
)
Спортсмены используют для этого разные сайты/приложения, где нужно пальцем «протапать» ритм. Я и сам таким пользовался, но однажды я задался вопросом — смогу ли я сделать браузерный сервис, который сможет определять bpm
из записанного через микрофон аудио
Эта статья как раз о том, как я его сделал
Я не буду вдаваться в тонкости реализации непосредственно UI: у меня уже был на момент начала разработки пет-проект на React, и сервис я решил делать на базе него.
Я пишу о том, как создала fake exploit за 7k $ - фейковая уязвимость, которая не наносит вреда, но выглядит как реальный эксплойт. Это не просто пранк, а образовательный инструмент, позволяющий понять структуру эксплойтов, изучить уязвимости и их демонстрацию. Рассматриваются out-of-bounds write, JIT spray, а также показывается, как можно создавать видимость опасных действий, не причиняя реального ущерба.
Привет.
Представьте: вы запилили нейросеть, которая определяет котиков на фото с точностью 99.9% (оставшиеся 0.1% — это когда хомяк притворяется котом). Воодушевлённый результатом, бежите к руководству — а там оказывается, что:
Всем привет! Меня зовут Паша и возможно вы уже пользуетесь моим расширением Ave blacklist для блокировки продавцов спамеров на авито. Но сегодня не об этом.
Больше года назад Кабинет министров не поддержал законопроект с ценой за килограмм или литр, новость была на Пикабу в том числе
Что ж, Кабинет министров не поддержал, а я поддерживаю двумя руками!
И написал расширение для браузеров для расчета цена за единицу измерения на сайтах доставок еды - заКило (chrome, firefox)
Мог бы научить и в офлайн магазинах цену за единицу измерения считать, но кто бы меня спрашивал :D
Всем привет! Меня зовут Виген Мовсисян, я Frontend-разработчик в QIC digital hub. В этой статье я расскажу, как мы внедрили технологию Canvas, какие задачи он помогает решать, что уже успели сделать и какие у нас планы на будущее.
Материал основан на моём докладе с QIC Tech Meetup, полную запись вы можете найти на YouTube.
Если говорить коротко, Canvas — это «холст», который позволяет рисовать и добавлять интерактивность, давая пользователям возможность напрямую взаимодействовать с графическими элементами. В статье я буду ссылаться на этот проект, чтобы проиллюстрировать все описанные ниже возможности Canvas.
*В текущей версии отсутствует кнопка «Назад» — для возврата в предыдущий раздел воспользуйтесь стандартной кнопкой браузера.
Итак, начнём погружение в удивительный мир возможностей Canvas.
Как превратить скучные слайды в интерактивную демонстрацию, где код можно запускать прямо на месте? В этой статье попробуем перенести презентацию в браузер, а затем — в «блокнот». Интерактивные среды, такие как Jupyter Notebook, Observable, Mathematica, WLJS Notebook, позволяют создавать живые презентации, лекции и наглядные материалы для коллег или студентов. Они незаменимы и для визуализации моделей, симуляций и любых данных.
Под катом — примеры, пошаговый разбор и демо вживую.
Всем доброго времени суток. Сегодня с вами я хотел бы обсудить, как можно расширить возможности JavaScript. Первый вопрос, с чего вдруг такие мысли. Я давно работаю front-end разработчиком и последнее время все чаще и чаще я стал сталкиваться с нетривиальными задачами. Пример, получить электронную подпись для документа в браузере или рендеринг 3д моделей для презентации функциональности станков.
Так как я человек любопытный для меня это звучит как вызов - а действительно такое нельзя провернуть в браузере? Как все мы знаем данный функционал просто так не реализуем в браузере, вот и первый спойлер .
Давайте начнем разбираться, если способов с рендерингом много, то вот с подписью их совсем мало. Поэтому сегодня будем говорить про универсальный способ - WASM.
WebAssembly (WASM) — это современная низкоуровневая технология, позволяющая выполнять код с высокой производительностью в веб-браузерах. Она не заменяет JavaScript, а дополняет его, предоставляя возможности для запуска предварительно скомпилированных программ на различных языках (C, C++, Rust и др.) прямо в браузере.
Увлекались ли вы когда-нибудь задачей так сильно, что полностью выпадали из жизни? Я — да. Писал код, разбирался с нюансами, тестировал, переделывал, снова тестировал… В какой-то момент мой друг, давно не слышавший обо мне, решил узнать, куда я пропал. Мы созвонились, и я рассказал, чем занимаюсь. Он послушал, усмехнулся: «Как же хорошо, что я выбрал бэкенд-разработку».
На самом деле ничего сверхъестественного в этой задаче не было. Но и простой её тоже не назовёшь — архитектура сложилась под влиянием множества ограничений: браузер не может напрямую запускать exe-файл, бэкенд не имеет доступа к локальному оборудованию, а взаимодействие между всеми этими частями нужно было выстроить чётко и последовательно.
Всё это заставляет внимательнее смотреть на возможности, которые предоставляет среда браузера. Chrome-расширения работают в строго изолированном контексте, JavaScript не имеет доступа к файловой системе или системным вызовам, и для связи с нативным приложением приходится учитывать ряд особенностей: протокол обмена, формат сообщений, правила безопасности и другие детали, которые легко упустить, если не сталкивался с этим раньше.
В этой статье я расскажу, как построить такую связку с помощью механизма Native Messaging: от интерфейса в браузере до запуска локального exe. Разберём архитектуру, покажу, какие задачи решает этот подход, и напишем рабочий пример — расширение, которое сможет общаться с программой на C.
Так что устраивайтесь поудобнее и давайте разбираться.
На входе — обычный push. На выходе — коммит, улучшенный с помощью LLM, сохранённый в векторной базе, доступный для поиска и семантического анализа. Пишем простой MCP-сервер для трекинга изменений ваших проектов.
Пытаясь подражать слогу классика, можно сказать, что "все чаты в целом одинаковы, но каждый реализует что-то свое".
так ли это? посмотрим.
TL, DR: далее рассказываю, что мы делаем свой UI набор компонентов для чата, даю ссылки и приглашаю присоединяться к проекту.
В моих предыдущих статьях (1, 2) я подробно рассматривал, как работает React.memo
, а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation).
Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.
В предыдущей статье мы за 2 шага создали с помощью LLM игру для браузера «Шарики», Lenes (Color Lines).
В результате получился вполне рабочий вариант, который можно взять за основу и дальше усовершенствовать в деталях или вручную, или тоже с помощью LLM.
Но это была довольно простая, на мой взгляд, задача для демонстрации возможности технологии.
Реальные задачи, конечно, будут сложнее, и кода придется писать еще больше.
Поэтому я хочу перейти на более высокий уровень сложности и создать там же способом с нуля известную игру Super Mario, точнее её демо-аналог.
В результате визуальное оформление, качество кода, его логичность и структура — всё на высоком уровне.
Онлайн-тестирование стало важной частью современного образования и процесса найма сотрудников. Многие платформы и компании пытаются бороться с мошенничеством, внедряя технические ограничения — например, запрет на переключение вкладок в браузере. Но насколько это эффективно на практике? И что делать, если такие меры вызывают больше проблем, чем решают?