Pull to refresh
0
0

Пользователь

Send message

DevConf: переход Uber с PostgreSQL на MySQL

Reading time20 min
Views55K
18 мая 2018 года в Digital October состоится DevConf 2018. И мы решили пересказать некоторые интересные доклады с прошлогодней конференции. Там был доклад с несколько холиварным заголовком: "О чём молчит политрук: к дискуссии о переходе Uber с PostgreSQL на MySQL". В нем разработчик MySQL Алексей Копытов рассмотрел различия InnoDb и PostgreSQL на самом низком уровне, включая организацию данных, памяти и репликаций. Предлагаем вашему вниманию краткий пересказ доклада.


История вопроса


Uber перешел с MySQL на Postgres в 2013 году и причины, которые они перечисляют, были во-первых: PostGIS — это геоинформационное расширение для PostgreSQL и хайп. То есть, у PostgreSQL есть некий ореол серьезный, солидная СУБД, совершенный, без недостатков. По крайней мере, если сравнивать с MySQL. Они мало что знали о PostgreSQL, но повелись на весь этот хайп и перешли, а через 3 года пришлось переезжать обратно. И основные причины, если просуммировать их доклад — это плохие эксплуатационные характеристики при эксплуатации в production.
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments124

Angular: оптимизация обработки событий

Reading time12 min
Views8.6K


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

В статье я разберу как оптимизировать обработку часто вызываемых событий: mousemove, scroll, dragover и прочих. Конкретно я столкнулся с проблемами при реализации drag-and-drop интерфейса, поэтому и разбирать буду на примере с перетаскиванием элементов.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments3

Странности CSS, о которых полезно знать

Reading time9 min
Views33K
В наших публикациях регулярно появляются статьи о CSS. Среди них — материал об истории CSS, рассказ о подборе имён для CSS-сущностей, статья о CSS-стилях для печати, о которых многие забывают. Мы писали о том, как работают CSS-селекторы, сравнивая происходящее с автосалоном, о сравнительно новой технологии CSS Grid Layout, и о том, что CSS — это не чёрная магия. Сегодня предлагаем вашему вниманию перевод материала, который посвящён странностям CSS, о которых, как полагает автор этого материала, мало кто знает.

image
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments13

ASP.NET Core: Механизмы предотвращения атак 2.0

Reading time20 min
Views24K

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


Если вы используете старый добрый ASP .NET, то для вас будет полезна информация по внутреннему устройству компонентов безопасности и лучшим практикам их использования. Здесь вы найдёте ответы на следующие вопросы: как реализованы современные анти-XSS механизмы и как их правильно использовать в ASP .NET Core? Как правильно работать с cookies и какие подводные камни там могут встретиться? Как был переписан механизм защиты от CSRF? Как правильно работать с криптографическими алгоритмами? Кроме того, рассказывается про опыт участия в Bug Bounty по поиску уязвимостей в ASP .NET Core.


Перед чтением рекомендуется освежить в памяти атаки из списка OWASP Top 10.


Прототипом статьи является доклад Михаила Щербакова на конференции DotNext 2017 Moscow. Михаил — Microsoft .NET MVP, участник .NET Core Bug Bounty Program, соорганизатор сообщества .NET программистов (Московское комьюнити называется MskDotNet, питерское — SpbDotNet). По работе последние 5 лет занимается безопасностью. Работал в Positive Technologies, в Cezurity, сейчас как консультант работает напрямую с заказчиками, по большей части в этой же сфере. Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments2

Почему не стоит использовать LocalStorage

Reading time7 min
Views92K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Please Stop Using Local Storage" автора Randall Degges.


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

Читать дальше →
Total votes 38: ↑22 and ↓16+6
Comments42

Как избежать проблем с производительностью при создании React-приложений

Reading time11 min
Views15K


О производительности react


React не зря считается очень производительным фреймворком. Он позволяет создавать быстрые динамические страницы с большим количеством элементов.


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

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

Принцип экономии мыслетоплива

Reading time15 min
Views78K


Представления, на наш взгляд, излишни. Под катом доклад гуру прокрастинатологии Максима Дорофеева, в котором он расскажет, как сделать больше, а устать меньше. Узнаем немного про обезьяну, эффективность и многое другое. Возможно даже, что после прочтения половина всего, что вы слышали ранее о мышлении, обесценится.
Total votes 40: ↑40 and ↓0+40
Comments30

Современный CSS для динозавров

Reading time20 min
Views70K

— Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
[Вставь тут гифку из «Гриффинов»] — Ха!
Иллюстрации из Dinosaur Comics Райана Норта


Как ни странно, CSS считается одновременно одним из самых простых и одним из самых сложных языков для веб-разработчика. Определённо он достаточно прост в начале — вы определяете свойства стиля, значения для конкретных элементов и… это практически всё, что нужно знать! Однако в больших проектах ситуация становится довольно запутанной и сложной, чтобы организовать CSS каким-то осмысленным образом. Изменение любой строчки CSS для стилизации элемента на одной странице часто ведёт к непредвиденным последствиям для элементов на других страницах.

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

Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments41

Исследуем сопоставление с образцом в C# 7

Reading time6 min
Views19K
В C# 7 наконец появилась долгожданная возможность под названием «сопоставление с образцом» (pattern matching). Если вы знакомы с функциональными языками, такими как F#, вы можете быть немного разочарованы этой возможностью в ее текущем виде, но даже сегодня она может упростить ваш код в самых разных сценариях.

Каждая новая возможность чревата опасностью для разработчика, работающего в критическом для производительности приложении. Новые уровни абстракций хороши, но для того, чтобы эффективно использовать их, вы должны знать, что происходит под капотом. Сегодня мы собираемся изучить внутренности сопоставления с образцом, чтобы понять, как это реализовано.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments0

Исправляем опечатки с учётом контекста

Reading time10 min
Views25K

Недавно мне понадобилась библиотека для исправления опечаток. Большинство открытых спелл-чекеров (к примеру hunspell) не учитывают контекст, а без него сложно получить хорошую точность. Я взял за основу спеллчекер Питера Норвига, прикрутил к нему языковую модель (на базе N-грамм), ускорил его (используя подход SymSpell), поборол сильное потребление памяти (через bloom filter и perfect hash) а затем оформил всё это в виде библиотеки на C++ со swig биндингами для других языков.

Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments2

Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)

Reading time19 min
Views216K


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




Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.


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

Total votes 196: ↑194 and ↓2+192
Comments100

Как быстро спроектировать сайт с помощью CSS Grid

Reading time3 min
Views59K
image

Модуль CSS Grid — это фантастический инструмент для создания макетов веб-сайтов. Он позволяет вам экспериментировать с макетами быстрее, чем любой другой инструмент, которые я пробовал.

В этой статье я научу вас, как это сделать.

Во-первых, я объясню HTML и CSS, которые нам нужны для этой задачи, которую я разбил на четыре части. Как только вы с этим разберетесь, мы перейдем к экспериментам с макетами.

Если вы совершенно не знакомы с CSS Grid, вам может понадобиться просмотреть мою предыдущую статью Учим CSS Grid за 5 минут.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments68

20 лучших книг для продакт- и проджект-менеджеров

Reading time5 min
Views56K
Мы в редакции «Нетологии» вместе с преподавателями курса «Руководитель digital-продукта» сделали подборку лучших книг для продакт-менеджеров. Возможно, какие-то книги покажутся вам знакомыми… что ж, это не баян, а классика :) А классику знать обязательно.

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

Пять книг Кати Текуновой — руководителя сервиса «Рамблер/платформа» в Rambler&Co


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

Великолепная подборка бесплатных шрифтов: лучшие из лучших

Reading time10 min
Views175K
В этой статье — великолепная подборка из 55 бесплатных шрифтов, которые были отобраны из тысяч предлагаемых на сегодняшний день в сети Интернет. Коллекции шрифтов, перечисленных ниже, можно скачать и использовать в различных проектах.



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

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments20

В режиме turbo. Как построить DevOps за 2 месяца

Reading time7 min
Views9.6K
За небольшой промежуток времени DevOps в Программе «Единая фронтальная система» (ЕФС) прошел огромный путь, охватив ежедневную практику всех команд. Но интенсивные работы по развитию DevOps продолжаются, и в недалеком будущем жизненный цикл ЕФС претерпит новые изменения, направленные на ускорение ввода в эксплуатацию программного обеспечения (continuous delivery) и улучшения его качества (сквозное автотестирование). Но об этом чуть позже, а пока немного истории.


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

11 бесплатных шрифтов с кириллицей

Reading time4 min
Views84K
image

1. Arimo

image

Дизайнер: Стив Мэттэсон – увлеченный дизайнер из штата Колорадо. Более 25 лет Мэттэсон разрабатывает шрифты, самыми крупными проектами стали дизайны для Android, Citrix, Microsoft, Nextel и Xbox.

image

Типы: Regular, Regular Italic, Bold, Bold Italic
Лицензия: Apache License, Version 2.0
Скачать шрифт


Arimo – без засечек, разработанный специально для работы с Arial. Шрифт слегка сжат по ширине. При небольшом кегле буквы тонкие и классические. Изящные черты достигаются при увеличении размера символов. Шрифт адаптирован для чтения на экране и отлично подойдет для документов на разных платформах.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments5

Нечеткий поиск по названиям

Reading time21 min
Views35K
Добрый день. Проблема с поиска, услуг или продукта, возникает на подавляющем большинстве сайтов. И в основной свой массе реализация подобной возможности ограничиваются поиском по точному слову, которое ввели в поисковой строке.

Если есть время, и заказчик хочет чуть большего, то гуглят реализацию наиболее популярного алгоритма (коим является «расстояние Левенштейна») и вписывают его.

В данной статье, я опишу сильно доработанный алгоритм, основанный, правда, на расстояния Левенштейна, и приведу примеры кода на C# нечеткого поиска по названиям, например: кафе, ресторанов или неких сервисов… В общем всё, что можно перечислить и имеет от одного до нескольких слов в своем составе:

«Яндекс», «Mail», «ProjectArmata», «world of tanks», «world of warships», «world of warplanes» и т.д.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments21

Анализ непопулярных сетевых блокнотов

Reading time5 min
Views22K
Всем знакома ситуация, когда в силу обстоятельств ты вынужден работать с одними и теми же документами на нескольких устройствах.

Для этих целей есть много сетевых решений. Для дежурной работы с текстами я решила отказаться от Evernote и опробовать блокноты Leanote, Wiznote, Turtl и Simplenote. Для сравнения задействовала ЯД, на котором можно сохранять обычные доки, а также заметки Notesforweb от голландского разработчика приложения Notes для андроид, Якоба Раса, в подвязке к Dropbox-овскому сервису. Я специально не рассматривала производные от известных «Корпораций Добра». Хотя соображения конфиденциальности не действуют ни в одном из случаев, так как всем известно, что нет никакой анонимности в сети.

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

Что мне нужно от бесплатных сетевых блокнотов?

Прежде всего, чтобы все корректно синхронизировалось между сервером и самим клиентом, а затем между сервером и остальными устройствами по цепочке, доступ к своим записям в режиме оффлайн, удобный интерфейс и отсутствие ограничений по количеству загружаемых данных.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments28

13 крупнейших провайдеров массовых платежей для международного бизнеса

Reading time7 min
Views60K
imageМы сотрудничаем как с российскими, так и с международными провайдерами массовых платежей. Переведенный материал посвящен именно второй категории. Обзор может пригодиться стартапам, планирующим осуществлять массовые выплаты на международном рынке.

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

Давайте рассмотрим деятельность некоторых поставщиков массовых платежных решений.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments0

Information

Rating
Does not participate
Location
Хмельницкий, Хмельницкая обл., Украина
Date of birth
Registered
Activity