Pull to refresh
14
0
Михаил Шумилов @mamont80

Программист

Send message

Возможности SQLite, которые вы могли пропустить

Reading time8 min
Views40K
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Читать дальше →
Total votes 76: ↑76 and ↓0+76
Comments35

Семь способов быть заметнее в поисковой выдаче

Reading time4 min
Views7.6K

При продвижении позиций сайта – выйти в ТОП недостаточно. Чтобы увеличить число посетителей необходимо делать страницы релеватными, улучшить дизайн сайта, проработать кликабельность (CTR).В этой статье поговорим про кликабельность.


Почему так важен CTR


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


Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments4

Архитектура S3: 3 года эволюции Mail.ru Cloud Storage

Reading time12 min
Views18K


Storage Corridor by St-Pete


Всем привет! Я Mons Anderson, архитектор платформы Mail.ru Cloud Solutions, расскажу, как мы построили наше S3-хранилище, как оно работает, какие решения оказались удачными, а какие стоило изменить, если бы мы начали такой же проект с нуля сейчас.


Статья подготовлена на основе доклада на @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. В статье поговорим:


  • как было устроено хранилище Mail.ru, поверх которого мы строили S3-хранилище;
  • что мы добавили, чтобы сделать Mail.ru Cloud Storage;
  • как работает объектная модель хранения и какие сделаны шаги для выхода в продакшен;
  • про доработки боевой системы: фейловер и масштабирование;
  • как мы реализовали шардирование и решардинг;
  • а также про работу с SSL-сертификатами.

Если не хотите читать, можно посмотреть.

Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments14

Практическое руководство по борьбе с утечками памяти в Node.js

Reading time8 min
Views20K
Утечки памяти похожи на сущности, паразитирующие на приложении. Они незаметно проникают в системы, поначалу не принося никакого вреда. Но если утечка оказывается достаточно сильной — она способна довести приложение до катастрофы. Например — сильно его замедлить или попросту «убить».



Автор статьи, перевод которой мы сегодня публикуем, предлагает поговорить об утечках памяти в JavaScript. В частности, речь пойдёт об управлении памятью в JavaScript, о том, как идентифицировать утечки памяти в реальных приложениях, и о том, как с бороться с утечками памяти.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments5

15 лучших и крупнейших библиотек иконок

Reading time3 min
Views34K


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

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments12

Многопоточность в .NET: когда не хватает производительности

Reading time26 min
Views43K


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

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

Под катом — видео и расшифровка моего доклада с конференции DotNext, где я разбираю несколько примеров, когда использование средств из стандартной библиотеки .NET (Task.Delay, SemaphoreSlim, ConcurrentDictionary) привело к просадкам производительности, и предлагаю решения, заточенные под конкретные задачи и лишённые этих недостатков.
Total votes 49: ↑48 and ↓1+47
Comments87

Разбираемся с криптовалютой Libra. Подробности

Reading time3 min
Views13K
image

Libra — проект криптовалюты от Facebook. Стоимость криптомонет которой будет стабильной и привязана к корзине валют, для начала это будут доллары, евро, японские иены и фунт стерлингов. Про него написано много статей, но в деталях функционирования проекта было много неизвестного. Сейчас Facebook помаленьку начинает рассказывать подробности. Какая роль у Facebook будет в проекте? Кому достанутся деньги? А может корпорации быстро отодвинут основателей на второй план? Давайте разбираться. Спойлер на картинке.
Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments13

Windows, PowerShell и длинные пути

Reading time4 min
Views24K


Думаю, вам, как и мне, не раз приходилось видеть пути вида \!!! Важное\____Новое____\!!! Не удалять!!!\Приказ №98819-649-Б от 30 февраля 1985г. о назначении Козлова Ивана Александровича временно исполняющим обязанности руководителя направления по сопровождению корпоративных VIP-клиентов и организации деловых встреч в кулуарах.doc.

И зачастую открыть такой документ в Windows сходу не получится. Кто-то практикует workaround в виде мапирования дисков, кто-то использует файловые менеджеры, умеющие работать с длинными путями: Far Manager, Total Commander и им подобные. А еще многие с грустью наблюдали, как созданный ими PS-скрипт, в который было вложено немало труда и который в тестовом окружении работал на ура, в боевой среде беспомощно жаловался на непосильную задачу: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Как оказалось, 260 символов хватит «не только лишь всем». Если вам интересно выйти за границы дозволенного — прошу под кат.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments18

Готовимся к 2020 году: 8 трендов клиентской JavaScript-разработки, о которых нужно знать

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

Всё, что связано с JavaScript, очень быстро развивается. Это касается и того, что можно отнести к сфере веб-разработки. В наши дни те, в основе чьих проектов не лежат самые современные технологии, начинают особенно сильно ощущать разрыв между тем, чем они пользуются, и тем новым, что появляется едва ли не ежедневно. К таким технологиям можно отнести Webpack, React, Jest, Vue, Angular в их современном состоянии. В то время как «население» мира фронтенд-разработки, включающее в себя технических специалистов и программистов, постоянно растёт, этот мир стремится к стандартизации. Появление новых технологий и инструментов уже меняет ситуацию.



Можно с изрядной долей уверенности говорить о том, что общим трендом развития фронтенд-технологий будет стандартизация разработки пользовательских интерфейсов. В частности, речь идёт о композиции, основанной на компонентах, о стремлении к модульности систем. Эта тенденция воздействует практически на всё — от стилизации до тестирования и даже до управления состоянием приложений. В этот тренд можно включить технологии, построенные вокруг веб-компонентов, ES-модулей, сюда же попадают соответствующие инструменты и многое другое.
Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments25

Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах

Reading time9 min
Views19K
При запуске Node.js-приложений в контейнерах Docker традиционные настройки памяти не всегда работают так, как ожидается. Материал, перевод которого мы сегодня публикуем, посвящён поиску ответа на вопрос о том, почему это так. Здесь же будут приведены практические рекомендации по управлению памятью, доступной Node.js-приложениям, работающим в контейнерах.


Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments3

Руководство по выживанию с MongoDB

Reading time12 min
Views34K
Все хорошие стартапы либо быстро умирают, либо дорастают до необходимости масштабироваться. Мы смоделируем такой стартап, который сначала про фичи, а потом про перфоманс. Перфоманс будем улучшать с MongoDB — это популярное NoSQL-решение для хранения данных. С MongoDB легко стартовать, и многие проблемы имеют решения «из коробки». Однако, когда нагрузка растет, вылезают грабли, о которых вас заранее никто не предупреждал… до сегодняшнего дня!

image

Моделирование проводит Сергей Загурский, который отвечает за инфраструктуру бэкенда вообще, и MongoDB в частности, в Joom. Также был замечен в серверной части разработки MMORPG Skyforge. Как сам себя описывает Сергей — «профессиональный набиватель шишек собственным лбом и граблями». Под микроскопом — проект, который использует стратегию накопления для управления техническими долгом. В этой текстовой версии доклада на HighLoad++ будем двигаться в хронологическом порядке от возникновения проблемы до решения с помощью MongoDB.
Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments9

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

Reading time19 min
Views216K


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




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


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

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

Как легализовать рассылку клиентам

Reading time3 min
Views19K
image

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

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

Помимо этого рассылки пользователям могут нарушать законодательство. Отметим минимум две проблемы:

  1. Закон «О рекламе» запрещает распространение рекламы по сетям электросвязи, в том числе Интернет при отсутствии предварительного согласия абонента или адресата на получение рекламы (ч.1 ст.18 ФЗ-38).
  2. Закон «О персональных данных» требует получение согласия субъекта персональных данных на обработку его персональных данных и регистрацию в Роскомнадзоре в качестве оператора персональных данных (п.1 ч.1 ст.6 и ч.1 ст.22 ФЗ-152).

Об ответственности за рассылку информация ниже, а сейчас о простом способе выкинуть страхи из головы и заняться делом.
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments69

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity