Pull to refresh
4
0.1
Send message

Как в Node.js контролировать потребление памяти при обработке сетевых запросов

Level of difficultyMedium
Reading time10 min
Views7.4K

Всем привет! Я Виктор Кугай, руководитель команды разработки спецпроектов в Тинькофф. Мы создаем геймификационные проекты, основанные на данных, чтобы познакомить пользователей с экосистемой компании и повысить узнаваемость бренда.

Расскажу, как с помощью Node.js Streams и механизма Back Pressure протокола TCP реализовать пакетную обработку сотен гигабайтов данных на машинах с жестким лимитом памяти.

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments2

Цвет волшебства: медитирующий мозг в прицеле энцефалографа

Level of difficultyEasy
Reading time9 min
Views14K

«Любая достаточно развитая технология неотличима от магии». (с). 

Привет, Хабр! Меня зовут Зенин Роман и я уже больше 20 лет занимаюсь практиками медитации. В прошлом году у меня получилось провести эксперимент: пока с моего мозга датчики энцефалографа снимали обширные данные об его работе, я пробовал разные известные мне техники дыхания и медитации. Это послужило базой для ряда интригующих выводов касательно практики медитаций и того, что они могут дать. В этой статье приводятся итоги этого исследования, и на их основе можно сделать некоторые выводы, как медитация влияет на когнитивные способности и какие плюсы это несет. 

Читать далее
Total votes 22: ↑17 and ↓5+17
Comments54

Как эффективно использовать Chrome DevTools для QA: подборка интересных возможностей

Level of difficultyMedium
Reading time7 min
Views11K

Chrome DevTools — это консоль разработчика, набор инструментов в браузере для создания и отладки сайтов и приложений. С их помощью можно в том числе тестировать уже разработанную функциональность.

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

Отмечу, что говорить мы будем именно о Chrome DevTools, хотя и в других браузерах есть аналогичные консоли разработчиков. Сам их частенько использую — это удобно. Поскольку инструменты неочевидные, рекомендую заглянуть под кат и начинающим, и опытным тестировщикам — точно почерпнёте для себя что-то новое.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments1

Современные команды и фичи Git, которыми стоит пользоваться

Level of difficultyEasy
Reading time5 min
Views36K

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

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

Читать далее
Total votes 60: ↑58 and ↓2+71
Comments40

Модульность в JavaScript: CommonJS, AMD, ES Modules

Level of difficultyEasy
Reading time6 min
Views8.4K

Привет, Хабр!

Начало истории в модульности в JavaScript положил хаос: глобальные переменные, конфликты имен и сложности с зависимостями. Со временем сообщество предложило несколько подходов для организации модулей, начиная от CommonJS, которое легло в основу Node.js, до AMD, предпочтительного для асинхронной загрузки кода в браузерах. И приближаясь к настоящему времени появился ES Modules стандартизированный и встроенный в язык механизма модулей, который стал частью ECMAScript в 2015 году.

В этой статье рассмотрим кратко про CommonJS, AMD, и наконец - как появился ES Modules.

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

История 3D-печати: от идеи к первым опытам и настоящему

Reading time19 min
Views5.1K

Каких-то 40 лет назад 3D- печать казалась уделом фантастических рассказов, несмотря на то, что тогда уже были разработки и  возможности для реализации. Но волшебная аура вроде: «А почему бы мне не напечатать себе дом или автомобиль?» больше напоминала перспективы термоядерного синтеза. Мол, вот еще 50 лет...

Однако после 1983 года, когда Чак Халл сделал первый 3D-принтер, технология в один момент стала сбывшейся мечтой. Сейчас любой может купить на Aliexpress недорогой принтер себе домой и получать детали относительно приемлемого качества. И это уже не говоря о промышленных вариантах, творящих настоящие чудеса. В этой статье разберемся, в чем суть технологии, как она появилась и развивалась, а также в каких отраслях и зачем ее используют.

Читать далее
Total votes 14: ↑12 and ↓2+13
Comments1

На стороне своих правил в ESlint

Reading time8 min
Views4.3K

Всем привет! Меня зовут Владимир Земсков, я работаю в B2C билайна, в команде билайн Про, где пишу бэк-офис для нашей системы. Мы помогаем нашей рознице продавать лучше и больше. Для соблюдения нужного уровня качества кода в билайне мы используем и ESlint, и тесты, и ревью, и особый тип — внутренние договорённости. 

Когда я пришёл в компанию, то мне захотелось найти ESlint-плагин, который бы помог автоматизировать часть работы. Я поискал, не нашёл, и в итоге решил написать свой. Из всей этой истории и родился сегодняшний рассказ. В первой части мы обсудим договорённости и их важность для разработки. А во второй — поговорим про то, как эти договорённости переносить в ESLint, как это упростит жизнь и действительно ли это это так сложно, или можно что-то упростить по пути.

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

Деплоим сайт в облако за рубль в месяц

Reading time10 min
Views14K

Как часто бывает: делаешь pet-проект, разрабатываешь фронтенд лендинга, а потом понимаешь, что это нужно протестировать. Посмотреть, как отображается страница на разных устройствах, чтобы корректно ее адаптировать. Ведь не всегда DevTools отражают «полную картину».

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

Привет, Хабр! Меня зовут Саша, в этой статье я расскажу, как задеплоить в облако статический веб-сайт с помощью объектного хранилища стоимостью около 1₽/мес. А также — настроить красивый домен. Подробности под катом.
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments37

Гайд по сплит клавиатурам

Level of difficultyEasy
Reading time31 min
Views12K

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

Мы стремимся сделать переход на сплит клавиатуру максимально плавным и безболезненным. Понимание того, как они устроены и как их можно адаптировать под свои нужды, снизит барьер входа и поможет преодолеть опасения перед переходом.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments23

Реализуем touch жесты на vanilla js. Часть 1 (rotate)

Level of difficultyEasy
Reading time4 min
Views2.8K

В рамках этой статьи я пошагово реализую жест поворота в мобильной версии сайта используя ванильный javascript. Для этого мы рассмотрим как устроены touch события мобильного браузера, а также немного вспомним тригонометрию.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments9

Оптимизация js/WebGL/Web Assembly

Level of difficultyMedium
Reading time6 min
Views3.7K

Не так давно я писал про свой 2d движок jsge. При написании рендера, делал оптимизацию кода, а также экспериментировал с web assembly. Как и обещал, написал отдельную статью про результаты.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments4

11 полезных фичей Chrome DevTools

Level of difficultyEasy
Reading time5 min
Views12K

Всем привет!

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

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

Погнали!

Погнали!
Total votes 21: ↑21 and ↓0+21
Comments2

Git Rebase: руководство по использованию

Reading time8 min
Views822K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


Читать дальше →
Total votes 122: ↑121 and ↓1+120
Comments169

Самый простой способ обхода блокировок доступа к сайтам любых стран

Level of difficultyEasy
Reading time4 min
Views126K

Я понимаю, что пока, за использования VPN, аннонимайзеров и/или tor не применяют уголовные статьи, поэтому гораздо проще скачать какое нибудь приложение из магазина приложений и бесплатно воспользоваться им. Но где гарантия, что завтра они будут работать?

Я понимаю (программисты, сисадмины, DevOps'ы и т.д.) данный способ нельзя назвать уникальным, оптимальным и вообще, так лучше не делать, но согласитесь - это достаточно простой способ туннелирования трафика, который позволяет обойти (если не все), то огромное количество разнообразных сетевых блокировок.

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

Так же, этот способ - достаточно дешевый (меньше чашки кофе в день) и очень быстрый с точки зрения реализации (буквально 5 минут).

Интересно?

Читать далее
Total votes 90: ↑61 and ↓29+49
Comments412

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

Level of difficultyMedium
Reading time18 min
Views7.9K

Существует довольно много статей на тему оптимизации размера бандла, но большинство из них говорят об узких деталях или подходах к уменьшению размера бандла. Либо наоборот — совсем широко, с общими советами.
В этой статье я постараюсь рассказать как комплексно подойти к оптимизации бандла существующего или нового приложения и как не допустить дальнейшего раздувания сборки.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments5

Анатомия игры: отражение

Level of difficultyMedium
Reading time9 min
Views5.6K


Продолжаем разбирать устройство игр с небольшими вкраплениями практики. Сегодня на повестке — отражение в зеркале. Нет, не свое собственное, а отражение в зеркальных поверхностях внутри 3D-движков, в частности — в играх. Разберем, какие бывают отражения, как они реализуются и как именно сделать отражение в редакторах движка.
Читать дальше →
Total votes 13: ↑12 and ↓1+20
Comments12

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Level of difficultyMedium
Reading time22 min
Views9.4K


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


Я старался избегать работы с Unicode до тех пор, пока не столкнулся с проблемой, требующей глубокого понимания этого стандарта, а других вариантов решения просто не было.


Приложив определенные усилия, прочитав кучу статей — я постепенно начал понимать что к чему, и это оказалось не так уж трудно. Хотя, некоторые статьи приходилось перечитывать раза по 3.


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


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


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

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

Теория игр за 15 минут

Level of difficultyEasy
Reading time15 min
Views62K

Многие из вас, я уверен, слышали о теории игр в какой-то момент своей жизни. Если вы хотите выглядеть умным и произвести впечатление на свою девушку — просто упомяните «игру с нулевой суммой» или «эволюционную стратегию», и ваши шансы отвести её домой сегодня вечером только что подскочили на 50%. Или вы можете использовать теорию игр, чтобы принимать решения в инвестировании своих денег (чтобы их полностью потерять и разориться) или, например решая, на какой девушке жениться (что также очень вероятно вас разорит). Как видите, это очень полезная теория.

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

Читать далее
Total votes 92: ↑89 and ↓3+103
Comments30

Делаем addon для Blender

Level of difficultyMedium
Reading time8 min
Views5.1K

Люблю Blender. Он мощный, а в последних версиях красивый! А ещё он бесплатный. И даже становится удобнее. Но, если посмотреть на то, сколько вопросов в интернете про то, как сделать что-то вполне тривиальное, начинаешь понимать, что до реального удобства там ещё далеко. С последними версиями эти вопросы становятся менее актуальными, потому что часть этих проблем уже кто-то решил за вас, написав аддон, который и только ждет что бы его активировали!

А что делать, если руками никак, а нужного функционала нет? Написать свой аддон!

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

Знакомство с CAD Dassault Solidworks 2022 на примере проектирования модели «рука T-800*»

Level of difficultyEasy
Reading time2 min
Views13K

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

Читать далее
Total votes 14: ↑9 and ↓5+7
Comments6

Information

Rating
3,162-nd
Registered
Activity