В этой статье будет две части: техническая, про приложение на Java, написанное для AWS, и демагогически разглагольствующая про похудение, мотивацию и как это связанно с программированием. Если вам интересна только техническая часть, то можете прыгнуть к парраграфу "Техническая часть", а если нет, то приглашаю к части рассужденческой:
Frontend Developer
Самостоятельно добавляем динамическую подсветку Ambilight на свой телевизор или монитор
Фоновая подсветка пространства за телевизором была придумана очень давно, но сделать ее динамической первыми додумались в компании Philips. Подсветка считывала информацию с потока данных и в режиме реального времени подбирала нужные цвета в нужных участках делая небольшую магию. Это дает сразу 2 положительных эффекта: разгружает зрение, обеспечивая мягкое фоновое освещение и сильнее погружает в происходящее на экране, добавляя изображению глубины. Покупать только из-за этого телевизор от Philips станут не многие, но функция действительно очень интересная. А что если я скажу, что аналогичную подсветку можно установить на любой телевизор или монитор? Причем стоить это будет совсем недорого, а установка и настройка займет от силы пол часа. В общем я на себе проверил насколько это рабочий вариант и теперь хочу поделиться с вами своим мнением.
Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o
MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.
Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.
Докеризация сборки проекта на всех уровнях
Всем привет, на связи Вадим Макеров, бэкенд‑разработчик iSpring. Успешная воспроизводимая сборка проекта является критическим фактором в поддержке и развитии проекта. При большом количестве проектов и технологических стеков гарантировать воспроизводимость сборки — «собралось однажды, соберется всегда» — сложнее.
О том, как реализовать идемпотентность сборки, я рассказывал в рамках митапа в офисе iSpring в 2023 году. Эта статья — текстовая версия моего доклада.
Насколько быстр Javascript? Симулируем 20 миллионов частиц
Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.
Поехали.
Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.
Локальные LLM в разработке: а почему бы и да?
Меня зовут Антон Гращенков, и я занимаюсь развитием Java в Альфа-Банке. Программированием увлекаюсь ещё со школы: писал на множестве разных языков — от Pascal до TypeScript, мне это просто нравится. В статье я на примерах покажу, для каких задач я использую локальные модели. Да, существует много инструментов доступных в облаке, — тот же ChatGPT, Copilot или YandexGPT. Однако можно запустить такую модель и локально, и сделать это крайне просто.
Ведь если хочется, то почему бы и да?
Плагины для VS Code, которые стоит использовать в 2024 году
Привет, Хабр! Сегодня расскажем о нескольких полезных плагинах для VS Code, которые облегчают и упрощают работу специалиста. Конечно, в подборке далеко не все плагины, полезные для разработчика. Так что если у вас есть свои фавориты, рассказывайте о них в комментариях. А пока начинаем!
Чем новый ChatGPT-4o отличается от GPT-4, что умеет и почему это супер-важно
В середине мая компания OpenAI представила новую версию самой популярной и хайповой нейросети в мире. Продукт получил название ChatGPT-4o, сохранив порядковый номер своего предшественника. Несмотря на это, чат-бот не только стал быстрее обрабатывать информацию, но и получил поддержку мультимодальности, и это буквально все изменило.
Xray на Keenetic / Xkeen
Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.
Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.
Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.
Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации
Интро: почему я написал эту статью
Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:
На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.
Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.
- Категории проблем с памятью
- Ограничения по памяти для разных типов данных
Heap
Buffer, TypedArray
String
Map, Set
Call stack
Типичные задачи, в которых можно наткнуться на ограничения по памяти - Soft-утечки
Пример из продакшена
Как получаются soft-утечки
Как их обнаружить
Как найти причину
1. Memory Allocation Timeline
2. Техника трёх снапшотов
3. queryObjects
Тренируемся находить утечки - Hard-утечки
Пример из продакшена
Как бороться - Нестандартные оптимизации памяти в Node.js
Исходный код
Module._pathCache
Несколько версий пакета в node_modules
require('./data.json') - Заключение
Блеск и нищета модели предметной области
Мартин Фаулер в книге «Patterns of Enterprise Application Architecture» описывает «Модель предметной области (Domain Model)» как сложный подход к организации бизнес-логики. Метод заключается в создании классов, соответствующих объектам предметной области из реального мира как с точки зрения структуры данных, так и поведения. При этом технические аспекты, такие как хранение данных, аутентификация и авторизация, управление транзакциями, выносится за пределы слоя бизнес-логики. Паттерн реализуется одним из двух способов:
- Богатая (насыщенная) модель — данные и поведение инкапсулируются внутри объектов предметной области.
- Анемичная модель — в объектах предметной области инкапсулируются только данные, поведение (методы) выносится в отдельный слой сервисов.
Фаулер и Эванс считают анемичную модель анти-паттерном. Однако многие кодовые базы, с которыми мне доводилось работать, реализованы именно в стиле «анемичной» модели. Под катом расшифровка и видео моего доклада с DotNext 2019 Moscow, посвященного сравнению сильных и слабых сторон обоих подходов и не очевидным деталям реализации модели предметной области в парадигме ООП и в функциональном стиле.
Обзор телевизора Sber QLED 4K UHD 55″
Продолжаем тему умных телевизоров — я уже обозревал «Яндекс ТВ Станцию». Теперь на очереди «Лучший российский бренд телевизоров» (по версии читателей портала Hi‑Tech Mail.ru), а именно — телевизор от компании «Сбер» с виртуальным ассистентом Салют. Пользовался я им три месяца. За это время успел поиграть на нём в игры на приставке, на ноутбуке, на самом телевизоре (да, на нём есть) и запускал даже облачный гейминг от VK, смотрел эфирные каналы, видео со стриминговых сервисов внутри телевизора и сторонних сервисов, установленных отдельно. Последнее, кстати, не самая тривиальная задача. Начнём по порядку, приятного чтения!
Мемоизация в React: я почитал документацию вместо вас
В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.
Так как мы будем рассматривать не самые базовые вещи, касающиеся React, то я не буду останавливаться на таких основах как хуки, состояние, свойства, чистые функции и чистые компоненты, ожидая, что вы ознакомитесь с ними за пределами статьи. А также все рассмотренное ниже относится в первую очередь к React 18.
Как работать с помощью разных ИИ прямо в VSCode: AIConfig Editor
AIConfig Editor превращает VS Code в генеративную среду разработки, позволяющую в единой универсальной песочнице запускать модели любого провайдера (OpenAI, Google, Hugging Face, с вашего локального компьютера...) или в любой модальности (текст, изображение, аудио).
Подсказки и настройки модели сохраняются в файле .aiconfig.yaml
или в .aiconfig.json
, исходный код которых можно контролировать и использовать в вашем приложении через AIConfig SDK.
Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя
Слой Application - это не только про оркестрацию, но еще немного про бизнес-логику. Следует это простить и принять внутри себя. А иначе попытки продвинуться дальше в написании кода съедят программиста-перфекциониста живьем.
Можно долго искать решения, читать различные комментарии и книги про разделение бизнес-логики от приложения. И все равно ваша конкретная ситуация будет казаться вам уникальной, как будто ничего нельзя сделать либо надо снова переписывать Domain слой, дабы ни одно зернышко бизнес-логики не выпало за его пределы. А можно просто закрыть глаза на некоторые моменты, забыть об идеале и спать спокойно, рассчитывая, что все чудесным образом само разрулится.
Исследование безопасности десктопных приложений на основе Electron
Electron — фреймворк с открытым исходном кодом для создания кросс-платформенных десктопных приложений с помощью JavaScript, HTML и CSS. Это крутая технология, но с ней связаны многие ИБ-риски.
В статье я разберу основы безопасной работы с этим фреймворком и расскажу:
- как анализировать структуру десктоп-приложений на Electron и находить в них уязвимости;
- какие распространенные ошибки допускают при работе с фреймворком и насколько он защищен.
Начнем с инструментов и методов, с помощью которых я провожу анализ кода приложений. Затем продемонстрирую конкретные примеры эксплуатации уязвимостей на примере специальных приложений-мишеней: DVEA, Electro-xxs и Notable.
Итак, вы думаете, что знаете Git? Часть вторая: новое в Git
Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.
Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?
Мы взглянем на:
JavaScript однопоточный или многопоточный? Ставим точку
Поводом для ревизии данного вопроса стало то, что я по сей день слышу от специалистов (в том числе позиционирующих себя как senior), что современный JavaScript является однопоточным. При этом они охотно задают этот вопрос на техническом интервью, вводя неуверенных кандидатов в заблуждение.
Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp
> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.
На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.
В этой статье я описал универсальное решение, которое обеспечивает прозрачный доступ к международному интернету в обход цензуры, использует передовые технологии маскировки трафика, не зависит от воли одной корпорации и главное — имеет избыточный «запас прочности» от воздействия цензоров.
Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).
Если у вас ещё нет личного прокси для обхода цензуры — это знак.
Сборка мусора в JavaScript
Каждый из нас, хотя бы раз, слышал о сборке мусора. Мы знаем, что где-то там работает сборщик мусора, убирая за нами ненужные объекты и массивы. Но сколько из нас знают, как он устроен под капотом?
В этой статье мы заглянем под капот этого процесса, поймем, как работает память, и изучим алгоритм сборки мусора.
Погнали собирать мусор!
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity