Pull to refresh
-7
Александр @Aleksandr-JS-Developerread⁠-⁠only

Резвящийся ленивецъ

Send message

Нужно ли чистить строки в JavaScript?

Reading time6 min
Views79K
Что? Строки могут быть «грязными»?

Да, могут.

//.....Какой-то код
console.log(typeof str); // string
console.log(str.length); // 15
console.log(str); // "ччччччччччччччч"

Вы думаете, в этом примере строка занимает 30 байт?

А вот и нет! Она занимает 30 мегабайт!
Читать дальше →
Total votes 220: ↑219 and ↓1+218
Comments224

Основы внутреннего устройства JavaScript

Reading time6 min
Views42K
image

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

Введение


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

В этом посте мы подробно разберём эти концепции и объясним, как же работает JavaScript. Благодаря знанию этих подробностей вы сможете писать более оптимальные приложения, надлежащим образом использующие API. Если вы работаете с JavaScript относительно недавно, этот пост поможет вам понять, почему JavaScript настолько «странный» по сравнению с другими языками. А если вы опытный разработчик на JavaScript, то он позволит вам по-новому взглянуть на внутреннее устройство JavaScript Runtime, с которым вы работаете каждый день.
Читать дальше →
Total votes 26: ↑23 and ↓3+29
Comments5

Знакомимся с программированием на ассемблере x86

Reading time17 min
Views48K

Архитектура x86 лежит в сердце процессоров, на которых уже более трех десятилетий работают наши домашние компьютеры и удаленные серверы. Умение читать и писать код на низкоуровневом языке ассемблера – это очень весомый навык. Он позволяет создавать более быстрый код, использовать недоступные в Си возможности машин и выполнять реверс-инжиниринг скомпилированного кода.
Читать дальше →
Total votes 37: ↑34 and ↓3+45
Comments15

Подключение fb messenger к чату на сайте

Level of difficultyMedium
Reading time8 min
Views2.7K

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

В ходе разработки проекта надо было подключить fb api для того что бы менеджеры сайта смогли общаться с клиентами сайта не только из админки, но и из своих профилей fb messenger.

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

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

Я не буду углубляться на тему создания чата на сайте. По этому вопросу много написано в просторах интернета.

Допустим у нас есть сайт, с уже созданным чатом (node.js, socket.io).

Давайте разделим статью на 2 части.

1. Ресурсы, которые нужны.
2. Написание кода.

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

Вышел Git 2.35. Самые важные подробности

Reading time9 min
Views20K

Git и владение им — неотъемлемая часть профессионального программирования. К старту курса по Fullstack-разработке на Python делимся самыми важными деталями о новом релизе Git прямо из блога его разработчиков.

Читать далее
Total votes 12: ↑10 and ↓2+10
Comments18

Svelte, исчезающий фреймворк, который уже не исчезнет

Reading time19 min
Views28K
Когда на днях в наш уютный чатик @sveltejs в телеграм запостили ссылку на очередную «разоблачающую» статью про Svelte, я очень обрадовался, предвосхищая интересный технический батл или хотя бы увлекательное чтиво чужого практического опыта. Кроме того, что это всегда интересно и полезно, определенное стечение обстоятельств — плановый отпуск и карантин — заставляют меня скучать дома, а подобная статья могла бы несколько разнообразить мой день. Каково же было мое разочарование, вы даже представить себе не можете… но давайте по делу.


Читать дальше →
Total votes 96: ↑62 and ↓34+44
Comments241

Алгоритм Дейкстры. Разбор Задач

Reading time7 min
Views67K


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

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

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

Микрофронтенды: о чем это мы?

Reading time10 min
Views69K
Все эти годы вы, frontend-разработчик, писали монолиты, хотя и понимали, что это дурная привычка. Вы делили свой код на компоненты, использовали require или import и определяли npm-пакеты в package.json или плодили гит-репозитории в вашем проекте, но все равно писали монолит.
Пришло время изменить положение.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments18

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

Reading time11 min
Views92K

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

Читать далее
Total votes 152: ↑149 and ↓3+185
Comments177

Нормализация Unicode

Reading time2 min
Views21K
Однажды мне пришлось наблюдать, как спамеры очень интересным образом обходят спам-фильтр. Вместо традиционного URL типа «example.com», ссылка выглядела так:
http://example.com
Ссылка с подобной изощрённой точкой работает в IE7, FF3, Opera 9.5, Safari 3, Google Chrome и не работает в IE6.
Читать дальше →
Total votes 126: ↑125 and ↓1+124
Comments27

Как оптимизировать размер бандла SPA и ускорить загрузку приложения в несколько раз

Reading time11 min
Views18K

Меня зовут Михаил Сахнюк и я разрабатываю фронтенд уже более шести лет. Сейчас я фронтенд разработчик в Miro. 

В статье рассмотрим:

как оптимизировать веб-приложение и ускорить его загрузку;

почему это важно;

какие инструменты помогут в работе над оптимизацией, замерами и контролем результатов;

преимущества работы с загружаемыми модулями в приложениях.

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

Статья — конспект моего доклада на конференции Mergeconf 2021 в Иннополисе. 

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

Бесплатные ресурсы для инди-разработчиков

Reading time6 min
Views18K
image

Я изучаю гейм-дизайн и разработку игр. Когда я начала создавать свою первую игрушку (гифка оттуда) по мотивам мультсериала «We Bare Bears», то подолгу зависала, чтобы отрисовать фон, кнопочку, анимацию разрушения блока и пр. Часть артов я, по итогу, не использовала, а время на них тратила много.

За полгода я накопила список ресурсов с бесплатными ассетами, персонажами, музыкой, фонами. Эти ресурсы помогают мне экономить по 10-20 часов на создании учебных игровых проектов. Надеюсь, кому-то этот список сэкономит время и позволит создавать атмосферные прототипы быстро.

Updated: я тут немножко подумала, и создала канал в Telegram: GameDEVils, буду там делиться материалами (про геймдизайн, разработку и историю игр), которые слишком короткие, чтобы положить в статью на Хабре.
Читать дальше →
Total votes 46: ↑45 and ↓1+53
Comments14

Некоторые разработчики никогда не пройдут собеседование

Reading time6 min
Views96K

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

Миша отличный программист. Для него сложная задача — как личный вызов. Он затихает, молча бродит с отсутствующим взглядом несколько дней… Пока его не прорвёт. Тут словно огонь загорается в глазах, парень светится как маньяк, и даже влюблённая девушка не вытянет его из кода поздним вечером. Реально гений.

Но есть проблема. Мишу трудно понять. Видно, что в голове куча мыслей и абстрактных концепций. Но выразить словами толком не получается. Все предложения словно кубики из разных конструкторов, которые никак не скрепляются в единое целое.
Читать дальше →
Total votes 82: ↑76 and ↓6+91
Comments231

Дайджест свежих материалов из мира фронтенда за последнюю неделю №498 (13 — 19 декабря 2021)

Reading time3 min
Views8K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

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

Кармическое проклятье Хабра

Reading time21 min
Views101K
Вся суть


Непредвиденные последствия


«Система кармы Хабра и ее влияние на пользователей» — это тема для курсовой как минимум
Тема про карму на «Пикабу»

Я мог бы начать эту статью с того, что я давно читаю Хабр, но это будет не совсем точным высказыванием. Правильный тезис звучал бы так: «я давно читаю статьи с Хабра» — но не интересовался тем, что происходит внутри сообщества, когда этой весной решил наконец-то зарегистрироваться. Это типичная ошибка человека, который приходит на Хабр из поисковика читать полезные статьи о тонкостях программирования или интересные новости из мира технологий. Пока ты видишь портал только с этой, положительной стороны, ты не задаёшься вопросами о том, что происходит под капотом. Конечно, в комментариях или статьях время от времени проскальзывали упоминания кармы — но ведь карма есть почти на всех крупных порталах (наивно полагал я), это нормально для саморегулирующихся интернет-сообществ.

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

При этом внешне всё шло отлично: мои комментарии всё время плюсовали, мой рейтинг рос — и вдруг оказалось, что у меня отрицательная карма. Весь мой длительный опыт интернет-общения, все пользовательские привычки, да и банальный здравый смысл кричали мне, что это какая-то ошибка: показатель одобрения пользователя сайта другими пользователями сайта не может одновременно расти и падать! Но я решил не рубить сплеча, а провести небольшое исследование, как аналитическое (в виде изучения мнений пользователей о карме), так и статистическое (в виде анализа показателей аккаунтов).
Читать дальше →
Total votes 345: ↑306 and ↓39+267
Comments1311

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

Reading time8 min
Views817K
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

Увеличивает ли соседство простых чисел количество делителей числа?

Reading time12 min
Views9.4K

В последнее время я думал о числе 60.

Вавилонские счетоводы и землемеры основывали свою арифметику на шестидесятеричном счислении, возможно потому, что эта система помогает в работе с дробями. Если упорядочить объекты в группы по 60, их можно делить на половины, на трети, четверти, пятые, шестые, десятые, двенадцатые, пятнадцатые, двадцатые, тридцатые и шестидесятые части. Ни одно меньшее число не имеет такого количества делителей, и благодаря этому число 60 относится к элитному классу высокосоставных чисел (этот термин и его определение были предложены в 1915 году Сринивасой Рамануджаном.)

Но у числа 60 есть и другая особенность, которую я заметил только несколько недель назад, хотя о ней могли знать вавилоняне, а уж Рамануджан знал точно. Число 60 с его выдающимся количеством делителей тесно расположено между двумя другими числами, вовсе не имеющими делителей, за исключением 1 и самого себя: и 59, и 61 являются простыми. Такие пары простых чисел, разделённые одним промежуточным целым, называются числами-близнецами. Примерами таких чисел являются пары (5, 7), (29, 31) и (1949, 1951). На протяжении многих лет исследователи теории чисел внимательно изучали числа-близнецы. Меньшего внимания удостоилось число посередине — непрошенный гость, отделяющий близнецов друг от друга. Рискуя выглядеть немного слащавым, я назову это число посередине братом близнецов, или просто братом.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments2

Big O

Level of difficultyEasy
Reading time5 min
Views226K
бинарный поиск
Примечание. Сокращенный перевод, скорее пересказ своими словами.
UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах».


Big O нотация нужна для описания сложности алгоритмов. Для этого используется понятие времени. Тема для многих пугающая, программисты избегающие разговоров о «времени порядка N» обычное дело.

Если вы способны оценить код в терминах Big O, скорее всего вас считают «умным парнем». И скорее всего вы пройдете ваше следующее собеседование. Вас не остановит вопрос можно ли уменьшить сложность какого-нибудь куска кода до n log n против n^2.

Структуры данных


Выбор структуры данных зависит от конкретной задачи: от вида данных и алгоритма их обработки. Разнообразные структуры данных (в .NET или Java или Elixir) создавались под определенные типы алгоритмов.

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

Здесь мы будем использовать только массивы чисел (прямо как на собеседовании). Примеры на JavaScript.
Читать дальше →
Total votes 39: ↑30 and ↓9+21
Comments30

14 450 пасхалок

Reading time2 min
Views21K
image

Кто может разгадать надпись на коврике автомобиля? (ответ есть где-то внутри статьи)

Стив Джобс ненавидел пасхалки и при его жизни ни в одном продукте Apple их не было.

Мое первое знакомство с пасхалками началась с Microsoft Office 97, а до этого были игры на Денди с секретиками. Еще помню пасхалку в Mortal Kombat на SEGA, когда вылазил чувак сбоку экрана и можно было нажать комбинацию клавиш и был переход на секретный уровень.

Начал копать и узнал что есть каталог пасхалок и в нём их… 14 450 штук! Причем в программном обеспечении — 6300 (из них 4443 в играх). В железе и электронике — 201 пасхалка. В фильмах — 4725 пасхалок, в телепередачах — 1628, в книгах — 274, в музыке — 1404

Хотите в Winamp поиграть в змейку, или в µTorrent в тетрис, или а в MatLab в астероиды?

Предлагаю поностальгировать и повспоминать ваши первые (любимые) программы и прочекать их на предмет пасхалок. Кстати, а сколько пасхалок вы нашли на Хабре?
Читать дальше →
Total votes 37: ↑25 and ↓12+26
Comments17

«Hack Me на TryHackMe», или Небезопасное изучение инфобеза на известной платформе

Reading time4 min
Views26K

Привет, Хабрчане. Сегодня мы поговорим об одной проблеме, которую обнаружил мой хороший знакомый Иван Глинкин.

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

Когда мы подключаемся по VPN к платформе, мы не можем взаимодействовать с другими хостами в сети, кроме самих виртуальных машин для взлома. Верно? Верно!

Ну, а что по поводу самих виртуальных стендов? Они-то, наверное, тоже не могут взаимодействовать с кем попало? А вот и нет! Виртуальный стенд, как оказалось, видит всех и вся в сети ...

Читать далее
Total votes 12: ↑10 and ↓2+9
Comments6

Information

Rating
Does not participate
Location
Украина
Registered
Activity

Specialization

Frontend Developer
From 999,999,999,999 €
JavaScript
Vue.js