Санитайзинг по-русски

«Санитайзинг» по-русски

На совместном ужине со спикерами WordCamp Moscow 2016 мы, кажется, обсуждали о том, как называть некоторые вещи по-русски: валидация, верификация… Самым сложным англицизмом оказался санитайзинг. Озвучивались разные варианты, но все как-то не очень подходили и вызывали дополнительные вопросы, потому что не полностью отражали изначальной сути.

Сегодня я случайно полез на php.net за очередной порцией документацией — сайт случайно открылся на русском языке и я увидел санитазийнг! Вернее не «санитайзинг», а «нормализацию значений». Вот оно!

Sanitizing = Нормализация значения

Advertisements

Софт Apple

Я понимаю, что Apple единственная компания, которая делает нормальный софт. Больше никто в мире не может сделать ни одно нормальное приложение. Это факт. Для сомневающихся в этом рекомендую открыть какой-нибудь Logic на Маке и поискать альтернативу под «Окна» — все сразу станет ясно с первого запуска.

Тем не менее — операционки и приложения Apple мягко говоря не очень и неидеальны. Хотя, если взглянуть на Windows и Android, то сразу понимаешь, что могло быть намного хуже.

Почему после обновления на iOS 9 c моего iPad пропала вся музыка, загруженная из iTunes? Теперь нужно заново тыкать кнопочку скачать (чтобы альбом стал доступен оффлайн) на 200 альбомах.

Почему я не могу на Маке через iTunes выбрать какую музыку нужно скачать на iPad?

А большая беда Mac OS, которую видимо никогда не решат — запустив «тормознутое» приложение, например, Фотошоп, переключаемся в Сафари и когда Фотошоп загрузится он перекроет своим окошком Сафари. Почему? Почему система в 2015 году плевать хотела на то, что я уже в другом окошке сижу?

Логика и смекалка

Разбираясь с очередным API от сервиса онлайн-чатиков для веб-сайтов, я столкнулся с проблемой, когда на компьютере все работало хорошо, а на Айпадушке — нет. У меня был вот такой код:

$(...).on('click', function(e) {
	e.preventDefault();
	$zopim.livechat.window.toggle();
});

Другими словами, при клике на кнопочку я хотел, чтобы чат разворачивался или скрывался, если уже развернут. Но на мобильных устройствах чат открывается не внутри страницы с помощью <iframe>, а в качестве отдельной вкладки в браузере, поэтому toogle() не работал. Что же делать?

Пообщавшись с поддержкой и взглянув на пару страниц, что мне посоветовали посмотреть, стало понятно, что надо использовать show() вместо toogle(), но тогда наша кнопочка будет всегда лишь открывать чат. Покопавшись в ужатом исходном коде файла, который заставляет чат работать… Ничего интересного. Можно заметить, что на мобильных устройствах рядом с <iframe> появляется еще какая-то ссылка <a>. Ну и что? Искать на странице есть ли вот этот <a>? Слишком некрасиво. Найти строчку, которая определяет тип устройства? Ой, все.

Тут я вспомнил, что в API была функция, которая могла определить открыт чат или нет — getDisplay(). Эврика!

$(...).on('click', function(e) {
	e.preventDefault();
	if ($zopim.livechat.window.getDisplay()) {
		$zopim.livechat.window.hide();
	} else {
		$zopim.livechat.window.show();
	}
});

С таким кодом все работает и на трогательных устройствах, и на компьютерах.