Pull to refresh
3
0
Alexander Leutsky @leutsky

Makeup for web

Send message
Привет, Хабр! Меня зовут Саша, я аналитик в крупном online-магазине, слежу за трендами рынков и изменениями спроса и предложения. От Капитана Очевидности меня отделяет тонкая грань: я не просто говорю, что и где плохо, но и почему плохо, где ещё может быть плохо, кто во всём виноват и как дальше с этим жить. Я собрал несколько трендов, с которыми столкнулся в работе и быту, и пришёл к выводу, что современное потребление усложнилось и основную ценность объектов теперь определяют эмоции, которые мы можем с ними получить. О том, как это проявляется, я расскажу под катом.
Читать дальше
Total votes 69: ↑39 and ↓30+9
Comments31

Детям о Кубернете, или приключения Фиппи в космосе

Reading time4 min
Views3.3K

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

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

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

Reading time5 min
Views21K
Перед вами перевод статьи Shafi Rizvi, опубликованной на сайте medium.com. Автор дает 7 советов, как защитить глаза от воздействия компьютерного экрана.


Фото с ресурса Unsplash. Автор: Daniil Kuželev
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments20

Привязка сессии к серверу в Nginx. Nginx-sticky-module

Reading time3 min
Views51K
Sticky session — метод балансировки нагрузки, при котором запросы клиента передаются на один и тот же сервер группы.

Самый простой способ закрепить сессии пользователя за конкретным сервером в Nginx — использовать метод ip-hash:
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments11

CSS Grid: Верстаем адаптивный журнальный макет в 20 строк

Reading time12 min
Views58K

Недавно я работал над современной реализацией блогролла (перечня внешних полезных/интересных блогов). Замысел был в том, чтобы предоставить читателям подборку из последних постов в этих блогах, упакованную в журнальную вёрстку, а не сухой список ссылок в сайдбаре.

Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments10

Получение разрешения на полет дрона (БВС, БПЛА) в Российской Федерации в 2019 году

Reading time35 min
Views133K

Получение разрешения на полет дрона (БВС, БПЛА) в Российской Федерации.
На примере Калининградской области



image
Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments135

Важные аспекты работы браузера для разработчиков. Часть 2

Reading time8 min
Views27K
image
Автор: Антон Реймер
В первой части статьи, основанной моем вебинаре, мы рассмотрели общие принципы работы браузера. Во второй — я сконцентрировал внимание на важных событиях: repaints и reflows — и на принципах работы event loop.

Repaints and reflows

При загрузке страницы, если она не пустая, всегда выполняется, как минимум, по одному reflow и repaint. Далее эти события возникают в следующих случаях:

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

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

Если вызывается reflow, после него обязательно вызовется и repaint. Но обратное неверно: repaint может вызываться независимо от reflow.

Какие действия вызывают reflow и/или repaint
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments12

Практические советы по повышению производительности HTML и JavaScript

Reading time2 min
Views31K


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

Скорость работы веб-приложений условно зависит от трех составляющих: 1) как устроена сетевая инфраструктура, через которую доставляются данные и код, 2) как работает браузер и 3) как, собственно говоря, написан ваш код, который браузер должен исполнять.

Все три компоненты постоянно улучшаются и оптимизируются. Например, в сетевом стеке определенные общие улучшения несет переход на HTTP 2.0. С точки зрения браузеров, все производители постоянно работают над улучшением своих движков. В случае Chakra в Microsoft Edge, помимо общего повышения производительности работы с JavaScript, мы добавляем поддержку специализированных средств вроде Asm.js и SIMD.js, призванных повысить эффективность кода в специфичных сценариях (в Firefox и Google Chrome — аналогично).

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

Наши коллеги Дорис Чен и Джон-Дэвид Далтон подготовили целый курс с практическими советами по улучшению производительности вашего кода на HTML и JavaScript. Вы можете посмотреть его на соответствующей странице в Microsoft Virtual Academy или под катом в виде отдельных роликов.

Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments1

PostgreSQL: Приемы на продакшене

Reading time9 min
Views89K
Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

image
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments18

АНБ выложило на GitHub утилиту для обеспечения сетевой безопасности

Reading time2 min
Views46K


Агентство национальной безопасности (АНБ) США выпустило open-source инструмент для обеспечения сетевой безопасности госорганизаций и коммерческих компаний. Система называется SIMP (Systems Integrity Management Platform), ее код размещен в репозитории АНБ на GitHub.

В официальном пресс-релизе ведомства говорится, что этот инструмент призван помочь компаниям защитить свои сети от хакерских атак.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments33

Вы опасно некомпетентны в криптографии

Reading time7 min
Views141K
От переводчика: Хоть посыл статьи Najaf Ali, переведённой ниже, и носит слегка рекламный оттенок («оставьте криптографию нам, экспертам»), но описанные в ней примеры показались мне довольно интересными и заслуживающими внимания.
Кроме того, никогда не будет лишним повторить прописную истину: не придумывайте свою крипто-защиту. И эта статья отлично иллюстрирует почему.

Читать дальше →
Total votes 181: ↑168 and ↓13+155
Comments143

7 правил создания красивых интерфейсов

Reading time8 min
Views180K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Вступление


Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
  • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
  • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

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

А пока давайте я расскажу, что вы найдёте в этой статье.

Читать дальше →
Total votes 86: ↑81 and ↓5+76
Comments34

Гроза, молния и средства защиты электросети своими силами

Reading time8 min
Views168K
По итогам майских гроз пришлось провести ревизию сгоревшего оборудования и хотя ущерб был не так велик материально, но выход из строя некоторого оборудования нарушил устоявшийся комфорт проживания в собственном доме. Так я решил обратиться к специалистам в своей области, проконсультироваться и расширить систему защиты.

Исходные данные: дом, 3 фазы (15 кВт на дом), заземление штырем в 3 м длиной, автономная электросистема на базе солнечных батарей



Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments64

Модули JavaScript

Reading time12 min
Views55K


Это третья публикация по материалам нашей внутренней конференции Sync.NET. Первая публикация была посвящена многопоточности в .NET, вторая — реактивным расширениям.

При разработке front-end части приложения на языке JavaScript, мы можем столкнуться с рядом традиционных проблем. Все они решаются при помощи модульных подходов. Ниже мы рассмотрим самые популярные подходы для описания модулей в JavaScript, которые существуют на сегодняшний день.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments19

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Reading time8 min
Views86K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Total votes 113: ↑112 and ↓1+111
Comments77

10 основных ошибок при разработке на Node.js

Reading time9 min
Views72K


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

Но, как и любая платформа, Node.js не застрахован от ошибок самих разработчиков. В одних случаях падает производительность, в других — система становится практически непригодной к использованию. И в этом посте я хотел бы рассмотреть 10 наиболее частых ошибок, которые делают разработчики с недостаточным опытом работы с Node.js.
Читать дальше →
Total votes 85: ↑74 and ↓11+63
Comments45

Приятная сборка frontend проекта

Reading time12 min
Views441K
В этой статье мы подробно разберем процесс сборки фронтенд проекта, который прижился в моей повседневной работе и очень облегчил рутину.

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

UPD (13 марта 2015): Заменил несколько плагинов на более актуальные + решил проблему с импортом CSS файлов внутрь SCSS

Читать дальше →
Total votes 61: ↑53 and ↓8+45
Comments119

Как планировать в «Альпах»

Reading time3 min
Views7.1K
image

Метод «Альпы» был разработан для составления эффективного плана на день. Название символизирует пошаговое восхождение к горным вершинам – поставленным целям.

Для его применения нужно выполнить следующие шаги.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments8

Проектный подход к изменению системы управления продажами

Reading time9 min
Views22K
Читая хабр, я вижу много отличных статей, написанных с позиции специалиста. Гораздо меньше публикуется статей, описывающих опыт управления на стыке «людей» и it. В прошлой своей статье я описывал свой опыт подготовки данных для аналитического CRM. Исходя из содержания комментариев к ней, в новогодние праздники мне пришла в голову мысль о том, что читателям хабра может быть интересна статья о том, зачем может понадобился такой инструмент, как аналитический CRM, и что он может дать конкретному руководителю.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments3
1
23 ...

Information

Rating
Does not participate
Registered
Activity