Pull to refresh
21
0.1
Дмитрий@pharrell

User

Send message

ВКонтакте вычисляет ваше местоположение по IP

Reading time1 min
Reach and readers87K
19 ноября 2018 года социальная сеть vk.com дала пользователям возможность скачать архив со всеми данными о них, имеющихся у соцсети. Скачав свою копию такого архива, помимо данных, которые я там ожидал увидеть, я обнаружил, что вконтакте знает два моих домашних адреса с точностью до 5 метров.

Я никогда в жизни не давал доступ к местоположению ни приложению вконтакте на IOS, ни сайту vk.com в браузере.

image

Один из адресов определился как «Работа/учёба», но по факту это просто моя вторая квартира. Которая, кстати, появилась в моей жизни всего около 3-х месяцев назад.

Мне стало любопытно, где-же я так оплошал, что такие данные утекли у меня из под носа. С этим вопросом я обратился в поддержку vk.com. Оказывается, всё дело в моём IP.

Под катом скрин переписки.
Читать дальше →

MVbind — Backbone расширение для data binding между Model и View

Reading time1 min
Reach and readers8.4K
image
Недавно очень захотел себе two-way data binding между моделью и представлением в Backbone. Ничего адекватного, к сожалению, я так и не нашел. Пришлось написать своё расширение. Делюсь им с вами.
Читать дальше →

Marionette.js. Drag&Drop сортировка моделей в коллекции

Reading time3 min
Reach and readers15K


Достаточно распространенная задача — поменять местами элементы в списке. Но как правило эта задача решается жуткими костылями, особенно если это Drag&Drop.
Сейчас я расскажу вам очень простой и гибкий способ сделать это, используя Marionette.js и jQuery UI Sortable.
Читать дальше →

Введение в Marionette.js Behaviors

Reading time3 min
Reach and readers17K
image

В этом посте вы узнаете о новой фиче Marionette.js — Behaviors.

Очень часто в различных элементах интерфейса у нас встречаются похожие элементы управления (например кнопка «Удалить» может быть и у категорий, и у записей, и в списке зарегистрированных пользователей… да везде), и каждый раз приходится описывать обработчик этой кнопки в каждом View, причем везде одинаково.
Но это уже называется дублирование кода, и не приветствуется в большинстве общества. Поэтому разработчики Marionette.js предоставили нам такую замечательную фичу как Behaviors.

Behaviors предоставляет интерфейс для изолирования описаний взаимодействия DOM с пользователем в отдельные логические куски кода. Behavior может быть применено к любому View любое количество раз.

В этой статье рассмотрим самый тривиальный пример — кнопка «Удалить».
Читать дальше →

Information

Rating
4,481-st
Location
Россия
Registered
Activity

Specialization

Архитектор программного обеспечения, Архитектор баз данных
PostgreSQL
TypeScript
Node.js