Эффективное кеширование. От теории к практике

Автор: admin от Вчера, 19:20, посмотрело: 13

Эффективное кеширование. От теории к практике

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.

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

Спрашивая на собеседованиях какие алгоритмы кеширования вы знаете — как правило слышишь в ответ, ммм… LRU Cache… Зато если спросить про алгоритмы сортировки, вероятность услышать что-то помимо «Пузырек» — значительно выше. Человек готов потратить несколько дней на поиск оптимальной библиотеки ресайза изображений или веб фреймворка, не понимая, что реализовав эффективный кеш, он может взять в принципе любую библиотеку со схожими характеристиками, так как кеш — минимизирует обращения к ней, сгладив разницу в быстродействии.

Для Relap.io, как для хайлоад сервиса, кеширование особенно важно. Например, вчера мы показали рекомендации на различных сайтах 789301033 раз. Поэтому у нас густо обмазано кешем все: рекомендации, картинки, реклама и так далее.

Не все кеши одинаково полезны



Хороший пример LRU Cache.

На конкурсы алгоритмов его обычно не берут. Никто не хочет иметь ничего общего с неудачником. Сложно придумать более неэффективный алгоритм. Единственный алгоритм, у которого LRU Cache выигрывает по эффективности — это, наверно, просто очередь, например, FIFO. Тем не менее, LRU встроен везде и всюду как дефолтный и, к сожалению, часто единственный алгоритм, так как он прост в реализации.

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

Категория: Веб-разработка, Android

 

AppCode 2016.2: новые рефакторинги и инспекции, live templates, улучшения автодополнения кода, и все это — про Swift

Автор: admin от Вчера, 19:00, посмотрело: 11

Привет, Хабр!

Недавно вышел AppCode 2016.2, новый релиз нашей IDE для разработки под iOS/OSX. Под катом много гифок и размышлений об автоматизированных рефакторингах в Objective-C и Swift.

AppCode 2016.2: новые рефакторинги и инспекции, live templates, улучшения автодополнения кода, и все это — про Swift

Категория: Веб-разработка, iOS

 

Персональный рейтинг депутатов каждому при помощи JavaScript и браузера Chrome

Автор: admin от Вчера, 18:00, посмотрело: 11

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


Голоса депутатов находятся на vote.duma.gov.ru. Нам остаётся проголосовать за важные для нас законопроекты в соответствии со своим видением и получить рейтинг на основе которого и делать выбор на выборах.


Я выбрал наименее затратный путь и написал javascript расширение для Chrome. Работа с ним организованна через консоль браузера (Ctrl + Shift + J). Бонусом я протестировал поддержку русского языка в javascript без препроцессоров.


Под катом вас ждёт код с комментариями и комментарии к статье.
Персональный рейтинг депутатов каждому при помощи JavaScript и браузера Chrome

Категория: Программирование, Google

 

Rust: for и итераторы

Автор: admin от Вчера, 17:25, посмотрело: 13

(предыдущая статья)
Rust: for и итераторы
В данной статье мы обсудим for циклы, а так же родственные понятия итераторов и «итерируемых объектов».

В зависимости от вашего предыдущего опыта с другими языками программирования данные концепции могут показаться очень знакомыми в плане синтаксиса и семантики, или же совершенно новыми и непонятными. Наиболее близкие их аналоги можно найти в Питоне, но, думаю, программисты на Java, C# или же (современном) C++ так же увидят много пересечений с тем что есть в их языках.
Подробности

Категория: Программирование, Системное администрирование

 

Графический пароль не дает смотрящему украсть себя

Автор: admin от Вчера, 15:55, посмотрело: 17

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

Категория: Информационная безопасность » Криптография

 

Почему в Украине всё таки есть белые хакеры

Автор: admin от Вчера, 15:50, посмотрело: 16

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

Категория: Веб-разработка, Информационная безопасность

 

Вечер 31 декабря

Автор: admin от Вчера, 15:25, посмотрело: 12

Вечер 31 декабря

Админ: А давайте прошивки роутеров обновим.
CIO: Пятница 31 декабря, вечер. Конечно, давай, что может случиться?
Админ: Вот видишь, всё нормально работает. А ты пяяятница, вееечер…
CIO: Иди сюда.
Админ: Чего?
CIO: Иди-иди. Читай.
Админ: Коннекшн фаулт. Ну, отвалилось чего-то. Это чья консоль?
CIO: Это – продакшн-сервера.

Категория: Админитстрирование » Системное администрирование

 

Инструменты для создания прототипов: от макета, собранного на скорую руку, до полнофункциональных прототипов

Автор: admin от Вчера, 15:10, посмотрело: 15

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

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

Сегодня я перечислил несколько лучших инструментов, существующих в индустрии.

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

Категория: Программирование » Веб-разработка

 

Фишинг на новом уровне: Cloudflare + Protonmail + Unvalidated Redirects – набор юного фишера

Автор: admin от Вчера, 15:00, посмотрело: 18

«… ты приходишь и просишь что-то у меня, но ты просишь без уважения …»
Вито Корлеоне

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

Категория: Админитстрирование » Системное администрирование

 

Это данные, тупица, и почему администраторы баз данных важны как никогда?

Автор: admin от Вчера, 15:00, посмотрело: 15

Это данные, тупица, и почему администраторы баз данных важны как никогда?
«Специализированные базы данных, облачные технологии и DevOps не упраздняют роль администраторов, а наоборот – расширяют их функции. Возможно, дело уже не только в таблицах. Но роль администратора БД до сих пор важна, даже если у этой профессии нет названия». Син Галагер

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

Все эти функции админов старой закалки ещё кое-где встречаются, особенно на крупных предприятиях, где гигантские кластеры баз данных по-прежнему правят дата-центрами. Но виртуализация, облачные хранилища данных, микросервисы, DevOps-подход к разработке и запуску приложений и ряд других факторов существенно изменили то, как организации хранят свои данные и управляют ими. Многие традиционные роли администратора БД представляются спорными в том счастливом новом мире, который обещает нам новое поколение баз данных.

Категория: Админитстрирование » Системное администрирование

 
Назад Вперед