Pull to refresh
10
0
Александр @bIbI4k0

User

Send message

Креатин для «айтишника»: как спортивная добавка помогает при сидячем образе жизни

Reading time3 min
Views28K

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

Читать далее
Total votes 15: ↑10 and ↓5+5
Comments29

Асинхронное программирование в однопоточных средах JavaScript

Reading time52 min
Views30K

Асинхронное программирование в однопоточных средах JavaScript


Моя прошлая обучающая статья Введение в Redux & React-redux набрала больше 100к просмотров. Что же это не может не радовать меня. И поэтому я решил порадовать и вас написав очередную статью по JavaScript. Хотя если честно я не хотел больше писать статьи поскольку это довольно сложно, занимает уйму времени и сил, а еще мне не платят за всю эту научную работу. Так что следующую статью я напишу только если эта наберет 150к просмотров.

Оглавление


1. Введение в асинхронное программирование
2. Цикл событий
3. Отложенное выполнение кода с помощью setTimeout setImmediate и process.nextTick
....3.1 setTimeout
....3.2 setImmediate
....3.3 process.nextTick
4. Устаревшие паттерны асинхронного программирования
5. Promise
....5.1 Основы Promise
....5.2 Методы экземпляра Promise
........5.2.1 Promise.prototype.then
........5.2.2 Promise.prototype.catch
........5.2.3 Promise.prototype.finally
....5.3 Композиция и цепочки промисов
........5.3.1 Графы промисов
........5.3.2 Параллельная композиция промисов с Promise.all и Promise.race
........5.3.3 Серийная композиция промисов
6. Асинхронные функции
....6.1 Остановка и возобновление выполнения
....6.2 Стратегии для асинхронных функций
........6.2.1 Реализация Sleep
........6.2.2 Максимизация распараллеливания
........6.2.3 Серийное выполнение промисов
........6.2.4 Трассировка стека и управление памятью

1. Введение в асинхронное программирование

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments10

Разбираемся с параллельными и конкурентными вычислениями в Python

Reading time21 min
Views53K

Я собираюсь рассказать историю о еде, раскрывающую различные возможности конкурентного и параллельного выполнения кода в Python.

Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.

Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.

А именно, я раскрою здесь следующие вопросы:

▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio, модуль multiprocessing, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.

Читать далее
Total votes 25: ↑24 and ↓1+23
Comments6

Читаем EXPLAIN на максималках

Reading time19 min
Views62K

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

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments14

Как формируются зарплаты с точки зрения экономики и почему программисты столько получают

Reading time4 min
Views55K

Всем же интересно про зарплаты? Давайте про зарплаты

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

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

Читать далее
Total votes 70: ↑62 and ↓8+54
Comments399

+23% к защите от депрессии

Reading time4 min
Views18K
image


Прим.пер.: Несколько раз в год у меня съезжает график сна в режим «мафии»: когда мирные жители засыпают, я просыпаюсь. Пару лет назад я тестировал очки для нормализации сна, с тех пор я заинтересовался сном, что влияет на сон, и на что влияет сон. Сон — важная штука для мозга, но вот советы по сну бывают противоречивые. Мне много попадается новых исследований и лайвхаков про сон и я решил делиться ими тут на Хабре (лонгриды) и в телеграме: Sleep Hackers (что не в формате Хабра).

Новое исследование в области генетики, опубликованное в журнале JAMA Psychiatry 26 мая, показало, что пробуждение на час раньше снижает вероятность депрессии на 23%.

Исследователи из Университета Колорадо в Боулдере и Института Броуда Массачусетского технологического института и Гарварда изучили 840 000 человек и нашли одно из лучших доказательств того, что хронотип, или склонность человека спать в определенный час, влияет на риск депрессии.

Это также одно из первых исследований, в котором измеряется, насколько много или мало изменений необходимо, чтобы повлиять на психическое здоровье. Результаты могут иметь серьезные разветвления, когда люди возвращаются к работе и учебе удаленно после эпидемии — тенденция, которая заставила многих приспособиться к более позднему режиму сна.
Читать дальше →
Total votes 42: ↑28 and ↓14+14
Comments48

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

Reading time15 min
Views16K

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

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

Что будет дальше?
Total votes 45: ↑15 and ↓30-15
Comments30

TypeScript: Раскладываем tsconfig по полочкам. Часть 1

Reading time10 min
Views84K

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

Читать далее
Total votes 30: ↑29 and ↓1+28
Comments4

CSS: о выводе коротких и длинных текстов

Reading time8 min
Views40K
Когда, пользуясь возможностями CSS, создают макет страницы, важно учитывать то, что в различных элементах этой страницы могут выводиться короткие и длинные текстовые материалы. Страницы, кроме того, нужно тестировать на предмет того, как они отображают тексты разной длины. Если разработчик чётко понимает то, как обрабатывать различные тексты, выводимые на странице, если он соответствующим образом спроектировал макет, это способно избавить его от множества неприятных неожиданностей.



Есть много ситуаций, в которых изменение некоего текстового фрагмента путём добавления или удаления всего одного слова способно заметно изменить внешний вид страницы, или, что ещё хуже «поломать» макет и сделать невозможной нормальной работу с сайтом. Когда я только начинал изучать CSS, я недооценивал последствия, к которым может привести добавление единственного слова в некий элемент или удаление из него всего одного слова. Здесь я хочу поделиться различными способами обработки текстов разной длины средствами CSS.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments6

PHP коммьюнити в СНГ. Было плохо — стало хуже

Reading time5 min
Views19K

Я пишу на PHP уже 12 лет, и застал ещё даже перевод проектов с PHP 4 на PHP 5. Уже тогда, после института, я понимал насколько низок уровень большинства людей, пишущих на PHP. Тяжелое наследие PHP 4, невысокая алгоритмическая и структурная сложность проектов(даже при объёмной кодовой базе), выбор №1 для малого бизнеса, всё это делало своё дело. Сообщество было непрофессиональным, и мне это не нравилось. Но то что творится сейчас еще хуже.

Читать дальше →
Total votes 87: ↑62 and ↓25+37
Comments139

Детальный обзор Well-known Symbols

Reading time12 min
Views7.9K


Доброго времени суток, друзья!

Символ (Symbol) — это примитивный тип данных, представленный в ECMAScript2015 (ES6), позволяющий создавать уникальные идентификаторы: const uniqueKey = Symbol('SymbolName').

Вы можете использовать символы в качестве ключей для свойств объектов. Символы, которые JavaScript обрабатывает особым образом, называются хорошо известными символами (Well-known Symbols). Эти символы используются встроенными алгоритмами JavaScript. Например, Symbol.iterator используется для перебора элементов массивов, строк. Его также можно использовать для определения собственных функций-итераторов.

Данные символы играют важную роль, поскольку позволяют осуществлять тонкую настройку поведения объектов.

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

В данной статье речь пойдет о хорошо известных символах с примерами их использования.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments4

Полное визуальное руководство-шпаргалка по Flexbox и Grid + туториал

Reading time31 min
Views146K


Доброго времени суток, друзья!

Представляю вашему вниманию полное визуальное руководство-шпаргалку по всем свойствам CSS-модулей Flexbox и Grid.

Основные источники: A Complete Guide to Flexbox, A Complete Guide to Grid.

В конце статьи вас ждет небольшой туториал по созданию тренажера по Flexbox.

Без дальнейших предисловий.


Total votes 14: ↑10 and ↓4+6
Comments7

Готовим console.log() правильно

Reading time7 min
Views17K
Специально к старту нового потока курса «Frontend-разработчик» делимся с вами полезным переводом. Автор рассказывает, как использует методы логирования в производственной среде собственного проекта и в чём именно они помогают. Кроме того, нас знакомят с платформой AppSignal, созданной, чтобы напрямую уведомлять разработчика о возникающих у пользователя исключениях в приложении. Подробности под катом.

Приятного чтения!
Total votes 29: ↑24 and ↓5+19
Comments6

Вы не знаете как должны работать модальные окна

Reading time10 min
Views26K

Уверен, многие хоть раз создавали всплывающее модальное окно. Но задумывались ли вы об определении этого компонента? Как он должен работать?


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


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


Этот список сформирован на основе спецификаций WAI-ARIA, HTML Living Standard и моего личного опыта. И хотя я буду говорить про веб, большинство правил и рекомендаций применимы для модальных окон где угодно.

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

Введение в ASGI: становление асинхронной веб-экосистемы Python

Reading time8 min
Views54K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca.



"Черепахи рядом с водоемом", Ricard Baraham на unsplash.com


Python не замыкается только на Data Science, веб-разработка на Python вернулась с новым асинхронным витком в развитии языка!


Сейчас происходит много важных событий в экосистеме веб-разработки на Python. Одним из основных драйверов этих изменений является ASGI — Asynchronous Standard Gateway Interface.


Я уже несколько раз упоминал ASGI в моем блоге, в частности, когда анонсировал Bocadillo (асинхронный open-source веб-фреймворк на Python — прим.пер.) и tartiflette-starlette (библиотека для построения GraphQL API поверх HTTP через ASGI — прим.пер.), но я никогда не писал подробное введение о нем. Теперь я это сделаю.


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


Прежде чем мы начнем, я хотел бы рассказать, что недавно создал awesome-asgi — отличный список для отслеживания постоянно расширяющейся экосистемы ASGI.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

Переезд инженера на Кипр: работа и зарплаты, море и природа

Reading time7 min
Views28K

Здесь и далее автор фото: @nati_kseni


По версии компании Mercer, Лимассол входит в топ-100 городов в рейтинге качества жизни за 2019 год, находясь сразу за Куала-Лумпуром и опережая, например, Ригу и греческие Афины. В еще одном рейтинге Quality of Life Index от сайта Numbeo, Кипр обходит не только все страны Восточной Европы, но и, например, Италию:



Неудивительно, что уже несколько лет как Кипр стал центром постсоветской IT-индустрии. Находящиеся на острове компании активно нанимают инженеров из России и соседних стран. Поэтому мы решили составить небольшой гайд для инженеров, которые подумывают о переезде на Кипр.
Читать дальше →
Total votes 22: ↑13 and ↓9+4
Comments19

Продуманный front-end. Правильная архитектура для быстрых сайтов

Reading time10 min
Views16K
Привет, Хабр!

Мы давно обходили вниманием тему браузеров, CSS и accessibility и решили вернуться к ней с переводом сегодняшнего обзорного материала (оригинал — февраль 2020). Особенно интересует ваше мнение об упомянутой здесь технологии серверного рендеринга, а также о том, насколько назрела необходимость в полноценной книге по HTTP/2 — впрочем, давайте обо всем по порядку.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

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

Reading time6 min
Views66K
image

Как я себя чувствовал во время испытаний.

Исходные условия: засыпаю перед рассветом, просыпаюсь в обед.
Желаемый результат: просыпаться в 7-9 утра без будильника.
Способ: 1 месяц тестировать очки «для просыпания».

И вот что из этого вышло.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments201

Время до первого байта: что это такое и почему это важно

Reading time7 min
Views30K
Сейчас я работаю над проектом для одного клиента. Речь идёт о сайте из сферы электронной коммерции, поэтому меня очень сильно интересуют некоторые аспекты производительности. Для начала это — различные показатели, характеризующие время загрузки сайта. Дальше — это время начала рендеринга страницы, которое важно для тех посетителей, которые хотят, после захода на сайт, увидеть его содержимое как можно быстрее (в эту категорию, естественно, попадают все посетители сайта). Есть среди интересующих меня показателей производительности и такие, которые отражают специфику деятельности моего клиента. Например: «Насколько быстро загружается основное изображение товара?». Анализ всех этих показателей способен дать ценные сведения о состоянии проекта.



Однако есть один показатель, которому, как кажется, фронтенд-разработчики часто не уделяют должного внимания. Речь идёт о времени до первого байта (Time to First Byte, TTFB). Это можно понять, можно и хотя бы отчасти простить разработчикам такое отношение к TTFB, особенно учитывая то, что они видят этот показатель как нечто, зависящее только от бэкенда проектов. Но если попытаться буквально в двух словах выразить проблему, касающуюся этого показателя, то можно сказать следующее: «Хотя хорошее значение TTFB не обязательно означает того, что демонстрирующий его сайт можно счесть быстрым, плохой показатель TTFB практически гарантированно указывает на проблемы с производительностью проекта».
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments6

Information

Rating
Does not participate
Location
Южно-Сахалинск, Сахалин, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Frontend Developer
Senior
From 280,000 ₽
React
TypeScript
Webpack
Golang
Docker
Linux
Python
Git
PostgreSQL
PHP