Search
Write a publication
Pull to refresh
25
0
Митя Камаев @mitya_k

SuperPuper Backend Developer

Send message

CSS и множественный фон

Reading time7 min
Views71K
CSS-свойство background — это одно из самых часто используемых свойств. Но сообщество веб-разработчиков пока не слишком хорошо осведомлено о возможностях, которые даёт использование множественного фона. Здесь я собираюсь серьёзно поговорить о том, что может дать применение множественного фона, и о том, как использовать стандартные механизмы CSS на полную мощность.

В этом материале я подробно расскажу о свойстве background-image, приведу наглядные примеры совместного использования нескольких фоновых изображений элемента, рассмотрю сильные стороны такого подхода. Здесь будет много иллюстраций.



Если вы не знакомы с CSS-свойством background — хорошо будет, если вы, перед чтением материала, заглянете на эту страницу документации MDN, посвящённую данному свойству.
Читать дальше →

Почему здравый смысл важнее паттернов, а Active Record не так уж и плох

Reading time6 min
Views26K
Так уж вышло, что разработчики, особенно молодые, любят паттерны, любят спорить о том, какой паттерн нужно применять здесь или там. Спорить до хрипоты: это фасад или прокси, а может даже синглтон. А если у вас не чистая, гексагональная архитектура, то некоторые разработчики готовы сжечь на костре Святой Инквизиции.

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

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


Читать дальше →

Удалёнка за доллары: а меня возьмут?

Reading time6 min
Views72K

Удалёнка за доллары: а меня возьмут?


Удалёнка в хорошей зарубежной компании — крутая штука. Сидя даже где-то далеко в провинции, можно зарабатывать большие деньги: от $3,000 в месяц на средненькой позиции в неизвестной компании до $186,000 в год на позиции senior programmer в Basecamp.


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


У меня получилось так же: спустя почти два года тимлидерства в американской компании, я уехал в другую страну — но по-прежнему считаю удалёнку «за доллары» очень крутым вариантом занятости, по многим пунктам даже существенно лучше переезда за границу.


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

Читать дальше →

RED-метод для анализа производительности MySQL

Reading time3 min
Views6.1K
Перевод статьи подготовлен в преддверии старта курса «DevOps практики и инструменты».





Метод RED (Rate, Errors, Duration) является одним из популярных подходов к мониторингу производительности. Он часто применяется для мониторинга микросервисов, хотя ничего не мешает использовать его для баз данных, таких как MySQL.

В Percona Monitoring and Management (PMM) v2 вся необходимая информация собирается в базу данных ClickHouse, и дальше уже дело техники с помощью встроенного источника данных ClickHouse создать дашборд для визуализации метрик.

При создании дашборда помимо панелей для RED были добавлены несколько дополнительных панелей, чтобы показать некоторые интересные вещи, которые можно сделать с Grafana + ClickHouse в качестве источника данных и информацией, которую мы храним о производительности запросов MySQL.

Давайте посмотрим на дашборд внимательнее.
Читать дальше →

Новичкам фондового рынка: честный разговор об акциях

Reading time17 min
Views139K
Телеграмму накатал:

«Шлите денег — отбатрачу,
Я их все прохохотал».

/В.Высоцкий/


Тот, кто впервые выходит на фондовый рынок как частный инвестор, сразу думает о двух активах: акциях и валюте. Эти инструменты кажутся простыми и прозрачными. Но если бы всё было так просто, эту статью писал бы долларовый миллионер для долларовых миллионеров. Акции — инструмент коварный и крайне непростой, он требует профессионального подхода и не прощает ошибок. Это уже далеко не те случаи, которые показывают в захватывающих фильмах про биржевиков XX века — это фондовый рынок 2020. Даже первый шаг должен быть очень серьёзным.


Источник
Читать дальше →

Понимаем и ищем уязвимости типа Open Redirect

Reading time5 min
Views19K
Перевод статьи подготовлен в преддверии старта курса «Безопасность веб-приложений».




Одной из наиболее распространенных и тем не менее игнорируемых веб-разработчиками уязвимостей является Open Redirect (также известная как «Непроверенные переадресации и пересылки»). Веб-сайт считается уязвимым для Open Redirect, если значения параметра (часть URL-адреса после «?») в HTTP GET-запросе позволяет перенаправить пользователя на новый сайт без проверки целевого сайта. В зависимости от архитектуры уязвимого сайта, перенаправление может произойти после определённых действий, таких как вход в систему, а иногда это может произойти мгновенно при загрузке страницы.
Читать дальше →

Ты добавил всего две строчки. Почему на это ушло два дня?

Reading time3 min
Views64K
На первый взгляд вопрос кажется разумным, но он делает некоторые ужасные предположения:

  • строки кода = усилие
  • строки кода = значение
  • все строки кода равны

Ничто из этого не является истинным.

Почему исправление, которое кажется таким простым, заняло два дня?
Читать дальше →

Wasm или не Wasm?

Reading time8 min
Views11K
Мы, в компании Linkurious, занимаемся работой над Linkurious Enterprise. Это — веб-платформа, которая, используя возможности графов и средства их визуализации, призвана помогать компаниям и органам власти, расположенным по всему миру, бороться с финансовыми преступлениями.

Одна из главных возможностей Linkurious Enterprise — это простой в освоении и использовании интерфейс визуализации графов, рассчитанный на неспециалистов.



В 2015 году, разочарованные возможностями существующих JavaScript-библиотек для визуализации графов, мы приступили к разработке собственной библиотеки — Ogma.

Ogma — это JS-библиотека, отличающаяся высоким уровнем производительности в плане рендеринга и выполнения вычислений, которая нацелена на визуализацию сетевых структур. Возможно, вы видели, как сетевые структуры визуализируются с помощью других JavaScript-инструментов, вроде D3.js или Sigma.js. Нам возможностей этих инструментов не хватало. Нам было важно, чтобы используемое нами решение обладало бы некоторыми специфическими возможностями, чтобы оно соответствовало бы определённым требованиям к производительности. Ни того, ни другого в сторонних библиотеках мы не нашли. Поэтому мы и решили разработать собственную библиотеку с нуля.
Читать дальше →

Выравнивание логотипов средствами CSS

Reading time7 min
Views26K
Если вы занимаетесь фронтенд-разработкой, то вам, возможно, приходится создавать разделы сайтов, содержащие логотипы каких-то компаний. На первый взгляд эта задача может показаться очень простой. Но, когда дело доходит до выравнивания и центровки логотипов, выясняется, что всё сложнее, чем кажется. Кроме того, тут стоит сказать о том, что изображения логотипов могут иметь разные размеры, и о том, что некоторые логотипы имеют вертикальную ориентацию, а некоторые — горизонтальную.



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

5 современных альтернатив старым инструментам командной строки Linux

Reading time6 min
Views52K
Используя более современные альтернативы наряду со старыми инструментами командной строки, можно получить больше удовольствия и даже повысить производительность труда.



В повседневной работе в Linux / Unix мы используем множество инструментов командной строки — например, du для мониторинга использования диска и системных ресурсов. Некоторые из этих инструментов существуют уже давно. Например, top появился в 1984 году, а первый релиз du датируется 1971 годом.

За прошедшие годы эти инструменты были модернизированы и портированы на разные системы, но в целом далеко не ушли от своих первых версий, их внешний вид и usability также сильно не изменились.

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

Обход капч с помощью Headless Chrome

Reading time8 min
Views63K

Использование 2Captcha and Puppeteer для автоматического прохождения капч



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


image

Amazon’s CAPTCHA fallback


КАПЧА (от CAPTCHA англ. – полностью автоматизированный и общедоступный тест Тьюринга для различения компьютеров и людей) задумана как врата, которые пропускают людей и отсеивают роботов (программ). Волнистые линии и слова сейчас уже не так распространены –их заменила вторая версия реКАПЧИ от Google. Эта капча выдает вам зеленую галочку, если ваш «коэффициент человечности» оценивается как достаточно высокий.

Скрипт выборки российских облигаций по параметрам

Reading time6 min
Views33K
Уже несколько лет я пользуюсь облигациями в качестве замены депозита, потому что процент дохода, который можно получить со вклада стабильно падает. В отличии от ситуации с депозитом, в облигациях всегда можно найти большую доходность. И в этой ситуации меня не устраивало только количество времени на механическую работу по поиску подходящих вариантов бумаг.


Работа скрипта по поиску облигаций на Московской бирже

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

Сделал это на Node.js с выводом полученных результатов в локальный html файл с интерактивной таблицей от Google Charts (а в случае, если JavaScript отключен в браузере, что например происходит при открытии этого html файла из мессенджера на iPhone, то отображается статическая версия таблицы, также сгенерированная скриптом).
Поиски замены вклада на Мосбирже

8 советов программисту, как остаться в здравом уме

Reading time3 min
Views14K

Быть веб-программистом это тяжёлая работа. Долгие часы, связанные с тем, что мы не получили ничего кроме проблем, могут сделать нашу работу невыносимой. Не говоря уже о дедлайнах и неразумных заказчиках. Ах, и том факте, что все мы будем жертвами нескончаемой войны браузеров.



Так почему же мы делаем то, что мы делаем? Мы любим программирование, мы любим создание функциональных, виртуальных миров где люди могут получать информацию, размещать картинки и встречать других людей. Мы любим принимать правила и обходить их. Мы любим публиковать коллекции кода, который в какой-либо день может стать настолько прибыльным как, например, Facebook или Digg.


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

Читать дальше →

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time12 min
Views208K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →

Программируем прямо в Nginx

Reading time13 min
Views42K


Nginx — великолепный веб-сервер. Все мы привыкли использовать его в связке с бекендами на разных языках программирования. Но оказывается можно писать простые программы прямо внутри конфигурационного файла Nginx. Это можно использовать для балансировки, написания простых API и даже отдавать динамические страницы прямо из конфига.

В статье мы разберем примеры написания простых программ в конфиге nginx.
Читать дальше →

Что такое хорошо и что такое плохо. Карьера разработчика глазами его руководителя

Reading time9 min
Views16K

В чем отличается взгляд на карьеру у разработчика и его руководителя


Жизнь полна противоречий. Даже свет не может определиться, кто он – частица или волна.
В мире разработки софта противоречий между действующими лицами вагон и маленькая тележка. Давайте рассмотрим пару – разработчик и руководитель разработки (это может быть руководитель проекта, технический менеджер, тимлид). Как выяснится, эти двое зачастую по-разному смотрят на вещи и вообще стремятся в разные стороны.



Чего хочет разработчик


Все хотят разного. Но поскольку без обобщений нам не обойтись, возьмем сферического в вакууме разработчика уровня middle. Он в меру ленив, в меру любопытен и ему в целом нравится его профессия. Ему бы только сроки помягче, процессы получше, задачи поинтереснее.

Как он хочет развиваться? А вот так:

  • Изучать новые технологии
  • Решать более интересные задачи
  • Участвовать в новых проектах
  • Поменьше заниматься деятельностью, не связанной с разработкой
  • Принимать решения самостоятельно

В то же время его руководитель хочет:


  • Чтобы разработчик хорошо знал используемые технологии
  • Чтобы разработчик хорошо справлялся с поставленными задачами: с должным качеством и в установленный срок
  • Чтобы разработчик был ответственным и всегда завершал то, за что взялся
  • Чтобы разработчик давал адекватные оценки задачам
  • Чтобы разработчик имел понимание потребностей бизнеса и продукта в целом
  • Чтобы разработчик своевременно сообщал о проблемах

Хотите знать, как добиться компромисса? Добро пожаловать под кат.
Читать дальше →

Страх и ненависть в IT

Reading time7 min
Views127K
Всем привет. Я — обычный программист, носящий лычку сеньора в одной обычной продуктовой компании. Я занимаюсь коммерческой разработкой около 10 лет, начинал с разработки прошивок для небольших железок, а сейчас изготавливаю бекенды различной степени сложности преимущественно на модных нынче Java/Kotlin. Эту профессию я выбрал по призванию — будучи ещё школьником все время что-то паял, программировал на бумажке (компьютера не было) и всё такое. Дальше шли профильное образование, работа в различных компаниях — именитых и обычных, зарубежных и отечественных. Поэтому я могу сказать, что являюсь идейным программистом. И никогда не понимал людей, которые ждут пятницу — всегда с удовольствием ходил на работу, какой бы ад там не творился. Так было по-крайней мере до недавнего времени. С какого-то момента я “сломался” и с трудом мог заставить пойти себя на некогда любимую работу. Меня и раньше что-то смущало, но теперь, когда мысли до конца оформились в голове — я могу сказать, что же не так с моим некогда уютным IT-мирком.
Читать дальше →

Скромное руководство по схемам баз данных

Reading time7 min
Views44K

Geometry of Flowers by Mookiezoolook

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

Но как оценить, какая схема лучше? И что вообще значит «лучше», когда мы говорим об архитектуре БД? Команда Mail.ru Cloud Solutions предлагает познакомиться с рекомендациями Майка Алча, консультанта по разработке программного обеспечения. Нам кажется, что он довольно лаконично резюмировал некоторые принципы грамотной архитектуры.
Читать дальше →

Цветовая схема без помощи дизайнера

Reading time5 min
Views10K

Наверняка многие из вас бывали в ситуации, когда нужно быстро подобрать цвета для оформления, а дизайнер занят более важными задачами, в плохом настроении или в отпуске. Задача несложная, но иногда ответа приходится ждать по несколько дней.
Особенно, если нужно подобрать цвета для тёмной схемы

5 JavaScript-библиотек для работы со строками

Reading time6 min
Views12K
Работа со строками может оказаться непростым делом из-за того, что она подразумевает решение множества разноплановых задач. Например, для простого приведения строки к «верблюжьему» стилю понадобится несколько строк кода:

function camelize(str) {
  return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
    if (+match === 0) re
turn ""; // или if (/\s+/.test(match)) для пробелов
    return index === 0 ? match.toLowerCase() : match.toUpperCase();
  });
}

Этот фрагмент кода, кстати, в роли ответа на вопрос о приведении строк к «верблюжьему» стилю, собрал больше всего голосов на Stack Overflow. Но даже он не в состоянии правильно обработать, например, такую строку:

---Foo---bAr---


Результат обработки строки ---Foo---bAr---

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

Поговорим о нескольких JavaScript-библиотеках, предназначенных для работы со строками.
Читать дальше →

Information

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

Specialization

Backend Developer
Lead
From 500,000 ₽
Node.js
TypeScript
MySQL
PostgreSQL
Docker
Nginx
RabbitMQ
Linux
High-loaded systems
Designing application architecture