Pull to refresh
5
0
Михаил Деркач @skeevy

Frontend Developer

Send message

Даты в Javascript наконец-то пофиксят

Level of difficultyEasy
Reading time7 min
Views17K

В чём состоит проблема​

Из всех последних изменений, которые будут внедрены в ECMAScript, моим любимым с большим отрывом от остальных стало предложение Temporal. Это предложение очень прогрессивное, мы уже можем воспользоваться этим API при помощи полифила, разработанного командой FullCalendar.

Этот API настолько невероятен, что я, наверно, посвящу несколько постов описанию его основных возможностей. Однако в первом посте я расскажу об одном из его главных преимуществ: у нас наконец появился нативный объект, описывающий Zoned Date Time.

Но что же такое Zoned Date Time?

Читать далее
Total votes 27: ↑24 and ↓3+32
Comments56

Как мы приготовили Feature-Sliced Design в VK

Level of difficultyEasy
Reading time8 min
Views8K

Всем привет! Меня зовут Дмитрий, я Frontend-разработчик в VK. В этой статье расскажу немного о том, как мы знакомились с замечательной архитектурой FSD (Feature-Sliced Design), как мы рефакторили свои проекты под неё. И, самое главное, что  из этого вышло. Постараюсь заинтересовать  вас, чтобы и вы смело её внедряли в свои проекты. FSD — это, пожалуй, то, чего так не хватало в Frontend-мире.

Читать далее
Total votes 32: ↑28 and ↓4+31
Comments42

Почему похудеть возможно только с помощью программирования?

Level of difficultyMedium
Reading time7 min
Views12K

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

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments14

Самостоятельно добавляем динамическую подсветку Ambilight на свой телевизор или монитор

Reading time6 min
Views16K

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

Читать далее
Total votes 9: ↑9 and ↓0+11
Comments22

Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o

Reading time5 min
Views15K

MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.

Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.

Читать далее
Total votes 22: ↑22 and ↓0+28
Comments12

Докеризация сборки проекта на всех уровнях

Level of difficultyEasy
Reading time6 min
Views4.3K

Всем привет, на связи Вадим Макеров, бэкенд‑разработчик iSpring. Успешная воспроизводимая сборка проекта является критическим фактором в поддержке и развитии проекта. При большом количестве проектов и технологических стеков гарантировать воспроизводимость сборки — «собралось однажды, соберется всегда» — сложнее.

О том, как реализовать идемпотентность сборки, я рассказывал в рамках митапа в офисе iSpring в 2023 году. Эта статья — текстовая версия моего доклада.

Читать про контейнеризацию сборки
Total votes 8: ↑8 and ↓0+10
Comments7

Насколько быстр Javascript? Симулируем 20 миллионов частиц

Level of difficultyEasy
Reading time23 min
Views22K

Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.

Поехали.

Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.

Читать далее
Total votes 109: ↑108 and ↓1+133
Comments34

Локальные LLM в разработке: а почему бы и да?

Level of difficultyMedium
Reading time12 min
Views8.9K

Меня зовут Антон Гращенков, и я занимаюсь развитием Java в Альфа-Банке. Программированием увлекаюсь ещё со школы: писал на множестве разных языков — от Pascal до TypeScript, мне это просто нравится. В статье я на примерах покажу, для каких задач я использую локальные модели. Да, существует много инструментов доступных в облаке, — тот же ChatGPT, Copilot или YandexGPT. Однако можно запустить такую модель и локально, и сделать это крайне просто. 

Ведь если хочется, то почему бы и да?

Читать далее
Total votes 43: ↑43 and ↓0+51
Comments7

Плагины для VS Code, которые стоит использовать в 2024 году

Reading time3 min
Views24K

Привет, Хабр! Сегодня расскажем о нескольких полезных плагинах для VS Code, которые облегчают и упрощают работу специалиста. Конечно, в подборке далеко не все плагины, полезные для разработчика. Так что если у вас есть свои фавориты, рассказывайте о них в комментариях. А пока начинаем!

Читать далее
Total votes 17: ↑11 and ↓6+13
Comments23

Чем новый ChatGPT-4o отличается от GPT-4, что умеет и почему это супер-важно

Level of difficultyEasy
Reading time7 min
Views65K

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

Читать далее
Total votes 25: ↑14 and ↓11+9
Comments120

Xray на Keenetic / Xkeen

Level of difficultyEasy
Reading time9 min
Views84K

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen
Total votes 23: ↑22 and ↓1+30
Comments32

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Reading time32 min
Views43K

Интро: почему я написал эту статью


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



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


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Total votes 55: ↑55 and ↓0+55
Comments12

Блеск и нищета модели предметной области

Reading time28 min
Views52K


Мартин Фаулер в книге «Patterns of Enterprise Application Architecture» описывает «Модель предметной области (Domain Model)» как сложный подход к организации бизнес-логики. Метод заключается в создании классов, соответствующих объектам предметной области из реального мира как с точки зрения структуры данных, так и поведения. При этом технические аспекты, такие как хранение данных, аутентификация и авторизация, управление транзакциями, выносится за пределы слоя бизнес-логики. Паттерн реализуется одним из двух способов:

  1. Богатая (насыщенная) модель — данные и поведение инкапсулируются внутри объектов предметной области.
  2. Анемичная модель — в объектах предметной области инкапсулируются только данные, поведение (методы) выносится в отдельный слой сервисов.

Фаулер и Эванс считают анемичную модель анти-паттерном. Однако многие кодовые базы, с которыми мне доводилось работать, реализованы именно в стиле «анемичной» модели. Под катом расшифровка и видео моего доклада с DotNext 2019 Moscow, посвященного сравнению сильных и слабых сторон обоих подходов и не очевидным деталям реализации модели предметной области в парадигме ООП и в функциональном стиле.
Читать дальше →
Total votes 36: ↑34 and ↓2+45
Comments46

Обзор телевизора Sber QLED 4K UHD 55″

Level of difficultyEasy
Reading time8 min
Views11K

Продолжаем тему умных телевизоров — я уже обозревал «Яндекс ТВ Станцию». Теперь на очереди «Лучший российский бренд телевизоров» (по версии читателей портала Hi‑Tech Mail.ru), а именно — телевизор от компании «Сбер» с виртуальным ассистентом Салют. Пользовался я им три месяца. За это время успел поиграть на нём в игры на приставке, на ноутбуке, на самом телевизоре (да, на нём есть) и запускал даже облачный гейминг от VK, смотрел эфирные каналы, видео со стриминговых сервисов внутри телевизора и сторонних сервисов, установленных отдельно. Последнее, кстати, не самая тривиальная задача. Начнём по порядку, приятного чтения!

Читать далее
Total votes 12: ↑8 and ↓4+13
Comments14

Мемоизация в React: я почитал документацию вместо вас

Level of difficultyEasy
Reading time18 min
Views21K

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

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

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments2

Как работать с помощью разных ИИ прямо в VSCode: AIConfig Editor

Level of difficultyEasy
Reading time4 min
Views8.8K

AIConfig Editor превращает VS Code в генеративную среду разработки, позволяющую в единой универсальной песочнице запускать модели любого провайдера (OpenAI, Google, Hugging Face, с вашего локального компьютера...) или в любой модальности (текст, изображение, аудио).

Подсказки и настройки модели сохраняются в файле .aiconfig.yaml или в .aiconfig.json, исходный код которых можно контролировать и использовать в вашем приложении через AIConfig SDK.

Читать далее
Total votes 8: ↑7 and ↓1+9
Comments2

Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя

Level of difficultyMedium
Reading time10 min
Views8.9K

Слой Application - это не только про оркестрацию, но еще немного про бизнес-логику. Следует это простить и принять внутри себя. А иначе попытки продвинуться дальше в написании кода съедят программиста-перфекциониста живьем.

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

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments95

Исследование безопасности десктопных приложений на основе Electron

Level of difficultyEasy
Reading time15 min
Views3.8K


Electron — фреймворк с открытым исходном кодом для создания кросс-платформенных десктопных приложений с помощью JavaScript, HTML и CSS. Это крутая технология, но с ней связаны многие ИБ-риски.


В статье я разберу основы безопасной работы с этим фреймворком и расскажу:


  • как анализировать структуру десктоп-приложений на Electron и находить в них уязвимости;
  • какие распространенные ошибки допускают при работе с фреймворком и насколько он защищен.

Начнем с инструментов и методов, с помощью которых я провожу анализ кода приложений. Затем продемонстрирую конкретные примеры эксплуатации уязвимостей на примере специальных приложений-мишеней: DVEA, Electro-xxs и Notable.

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments0

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Level of difficultyEasy
Reading time4 min
Views28K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Total votes 35: ↑34 and ↓1+40
Comments84

JavaScript однопоточный или многопоточный? Ставим точку

Reading time10 min
Views35K

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

Читать далее
Total votes 38: ↑32 and ↓6+34
Comments193

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
From 450,000 ₽
JavaScript
React
TypeScript
Webpack
MobX