Pull to refresh
-9
0.1

Backend Development

Send message

Эксперимент со сном и подручные препараты, что восстанавливают воспоминания

Level of difficultyEasy
Reading time4 min
Views3.9K

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

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

Как я отрендерил миллион строк в React

Level of difficultyMedium
Reading time9 min
Views10K

Недавно я столкнулся с задачей, известной как one billion row challenge. Два аспекта этого вызова меня заинтриговали:

1. Каковы будут последствия, если я попробую решить этот вызов на фронтенде?

2. Удастся ли мне это?

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

Давайте я вас подробно ознакомлю с тем, что именно произошло, как это было сделано и по каким причинам.

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

[Хабр, help] Android-разработчица. Как сделать первые шаги?

Level of difficultyEasy
Reading time3 min
Views3.4K

Здравствуйте, я очень долго думала, стоит ли мне регистрироваться на "Хабре" и обращаться, как новичку, по этому вопросу, так как я не первая и не последняя, с подобными запросами.

Я хочу стать Android-разработчицей, с нуля.
Пожалуйста, укажите с чего начать первые шаги?


Пожалуйста, войдите в моё положение и помогите, направив меня на путь. Я не прошу меня жалеть или помогать материально — я справлюсь сама. Для меня сейчас информация — на вес золота.

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

Читать далее
Total votes 40: ↑16 and ↓24+1
Comments36

Знакомьтесь, SafeTest — новый подход к тестированию фронтенда

Reading time8 min
Views4.7K


В этой статье мы поговорим о SafeTest — революционной библиотеке, которая предлагает свежий взгляд на сквозные (E2E) тесты для веб-приложений с пользовательским интерфейсом.
Читать далее
Total votes 15: ↑14 and ↓1+17
Comments2

Вам не нужен для этого JavaScript

Level of difficultyMedium
Reading time11 min
Views29K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →
Total votes 81: ↑79 and ↓2+93
Comments38

Как работать эффективно с распределенными таблицами в ClickHouse

Reading time9 min
Views13K

Приветствуем!

На связи Глеб Кононенко и Алексей Диков, мы разработчики из Лиги Цифровой Экономики. Год назад на одном большом проекте мы с коллегами начали работать с ClickHouse и сразу столкнулись с кучей проблем и недостатком информации по их преодолению.

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

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

Мы набрались опыта, «набив шишки» на практике, и готовы им поделиться — запускаем цикл статей о том, как правильно «готовить» ClickHouse. И начнем с того, как эффективно создавать и использовать распределенные таблицы. 

Немного о проекте: 

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

Файлы полиглоты или как картинка с котиком станет угрозой для безопасности вашей информации

Level of difficultyEasy
Reading time6 min
Views7.6K

Конечно, угроза безопасности звучит очень пафосно, тем более для милого котика, смотрящего на вас с JPEG изображения, но среди его байт легко мог затеряться вредоносный скрипт. Давайте разберёмся, что к чему.

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

150 книг для тех, кто делает игры

Reading time8 min
Views53K

С Новым Годом уважаемые читатели! Как можно понять из заголовка я собрал для вас 150 книг (и несколько полезных ссылок) из областей разработки игр, геймдизайна, нарративного дизайна и прочих смежных дисциплин геймдева. Из подборки получилась целая библиотека, которую я собираюсь постоянно обновлять и добавлять в нее новые книги. Поэтому, если вы ищите что почитать, то заходите и добавляйте в закладки! 

Читать далее...
Total votes 13: ↑10 and ↓3+9
Comments5

Навигатор для трактора или эмиграция с цифрами в 2022

Reading time15 min
Views10K


Итак, ваш трактор отполирован до блеска, смазан, проведено ТО. Вы в костюмчике с иголочки стоите рядом, позвякиваете ключами и… не знаете толком куда же ехать. Внучатая племянница лучшей подруги двоюродной тети вашей мамы говорит, что лучше страны, чем Германия нет. Васек, товарищ детства, за бутылкой пива рассказал, что если куда и ехать, то в Эмираты. Там дорого-богато, а небоскребов сколько? Владимир Викторович, директор конторы, где вы в студенческие годы подрабатывали, считает, что где родился, там и пригодился, мол, страну поднимать надо. Направлений много, а жизнь одна. Давайте вместе вооружимся цифрами и попытаемся составить хотя бы отдаленно объективный список потенциальных мест дислокации на следующие N лет.

Читать дальше →
Total votes 15: ↑14 and ↓1+17
Comments0

Делаем отзывчивый и максимально возможный размер шрифта динамического текста относительно контейнера

Reading time10 min
Views8.5K

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

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

JavaScript: примеры реализации некоторых математических выражений

Reading time5 min
Views7.8K


Привет, друзья!


Представляю вашему вниманию адаптированный и дополненный перевод этой замечательной статьи.


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

Читать дальше →
Total votes 10: ↑8 and ↓2+7
Comments6

Учимся правильно писать CSS классы в JSX

Reading time5 min
Views39K

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

Где проблема актуальна? В экосистеме React, и где мы пользуемся замечательным синтаксисом под названием JSX.

В данной статье мы рассмотрим, почему стоит использовать библиотеку clsx практически в каждом React-проекте.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments25

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views168K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Total votes 336: ↑324 and ↓12+411
Comments300

JavaScript: захват медиапотока из DOM элементов

Reading time11 min
Views15K



Привет, друзья!


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


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


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

В качестве фреймворка для фронтенда я буду использовать React, однако все функции по работе с медиа будут автономными (сигнатура этих функций будет framework agnostic), так что вы можете использовать любой другой фреймворк или ограничиться чистым JavaScript.


Песочница:

Репозиторий.


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


Если вам это интересно, прошу под кат.

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

Does the latency matter?

Reading time12 min
Views9.4K

Есть исследование от Google, которое говорит, что если ваш сайт открывается больше трех секунд, то вы потеряете около 40% десктопных пользователей и более 50% — мобильных. Еще есть репорт от Amazon, который говорит, что для Amazon каждые 100 мс дополнительного latency стоит им 1% продаж. В объемах Amazon это миллионы долларов.

В зависимости от вашего бизнеса вам стоит тоже ответить на вопрос: Does the latency matter?

Я работаю как системный инженер уже более 8 лет. Хочу поделиться опытом, который получил в процессе решения задач в компании Big Data Technologies. У нас есть какой-никакой highload. В пике это 30 тысяч rps, и вопрос с latency довольно остро стоит перед бизнесом.

Читать далее
Total votes 34: ↑33 and ↓1+44
Comments3

Российские компании и финская Jolla обсуждают возможность выпуска YotaPhone на базе Sailfish OS

Reading time2 min
Views2.7K
Разработчики финской операционной системы Sailfish и представители компаний НТЦ РОСА и «Альт линукс» обсудили возможность серийного выпуска YotaPhone на базе Sailfish. Пока на устройствах YotaPhone установлена ОС на основе Google Android.

Тестовый экземпляр этого смартфона на базе Sailfish имеется у российского министра связи Николая Никифорова. Однако такая конфигурация недостаточно подготовлена к выходу на рынок. Sailfish поддерживает Android-приложения, но пока надлежащим образом не взаимодействует с YotaPhone на аппаратном уровне.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments4

PHP-Compiler, или ныряем в кроличью нору FFI

Reading time15 min
Views12K

Однажды Энтони Феррара (Anthony Ferrara) решил скомпилировать PHP в низкоуровневый код, но результат получился слабым. Главной проблемой, с которой он столкнулся, было отсутствие подходящего бэкенда. К лучшему все изменилось после того, как в дело вступил FFI.

Я советую прочитать статью «A PHP Compiler, aka The FFI Rabbit Hole», перевод который вы найдёте под катом.

Читать далее
Total votes 23: ↑22 and ↓1+31
Comments7

Нужна ли России своя операционная система и другое ПО?

Reading time2 min
Views12K

Нужно ли России делать свою особую операционку и другое ПО?
В чём основная ошибка разработчиков процессоров Эльбрус?

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

Читать далее
Total votes 68: ↑5 and ↓63-56
Comments155

Open Source синтез речи SOVA

Reading time9 min
Views22K

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



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

Total votes 24: ↑23 and ↓1+29
Comments24

Laravel Jetstream — новый скаффолдинг для фреймворка

Reading time2 min
Views16K
Релиз Laravel 8 принес с собой новый каркас, позволяющий быстро развернуть систему аутентификации пользователей, которая включает в себя логин, регистрацию, подтверждение по электронной почте, двухфакторную аутентификацию, управление сессиями и командами. Также Jetstream имеет встроенную интеграцию с Laravel Sanctum для аутентификации через API на основе токенов.
Читать дальше →
Total votes 3: ↑2 and ↓1+4
Comments4
1

Information

Rating
4,032-nd
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
From 500,000 ₽