Сергей Соколов
@sergiks Автор вопроса, куратор тега Алгоритмы
Разумно. Теперь расширим это до среднего приложения, и получим раздутое это «где-то хранилище». Просто чую, что это как Императивное программирование, против Объектного. Работать будет (и работает, ну, почти), но в поддержке и понимании другими девелоперами сложно неоптимально.
Отсюда и вопрос: «как правильно?»
Так это частный вопрос по программированию — на чем вы пишете, что возвращает ваша пипетка. В Processing (и соотв. Java) есть такой тип данных color который возвращается в частности его «пипеткой». Это 32-битное число AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB: по 8 бит: прозрачность, красный канал, зеленый канал и синий. Битовым сдвигом можно получить напр 8 бит только зеленого канала, т.е. значение от 0 до 255.
Так что ваша пипетка возвращает?
rodionov Только мельком пока просмотрел их доки. «По ряду платежных систем возможно выставление счета через систему ДеньгиOnline без перенаправления пользователя...: QIWI Кошелек, Мобильные платежи (Билайн, мегаФон, МТС), платежная система «Рапида», оплата через кассира «Евросеть», терминальная сеть «ЭлексНет».»
Оплата по картам — через iframe. Похоже, что оному можно дать целиком свой дизайн.
Сергей Соколов
@sergiks Автор вопроса, куратор тега Алгоритмы
Это похоже на Конечный Автомат, не так ли? Держать такой объект, имеющий много свойств, отслеживающий каждую мелочь в системе, и на него завязать асинхронные действия: пришёл ответ оттуда, пришёл запрос отсюда.
Магазин — купонщики. Им два года сейчас уже. Не мой собственный, одна из работ. Я его писал с нуля, подключал сначала к Робокассе, потом часть методов оплаты (кредитки и эл. деньги) перевёл на Ассист — комиссия ниже, надёжность выше. Сейчас вот будем переводить на эти непонятные ДеньгиОнлайн. Типа, они работают уже с Выгода.ру и с WeClever. Более быстрый вывод (раз в 3 дня на р/с), более полная интеграция с магазином — у пользователя нет ощущения, что он ушёл с сайта, как в случае с Робокассой или Ассистом.
Сергей Соколов
@sergiks Автор вопроса, куратор тега Алгоритмы
Сейчас так и сделано, плюс зачатки паттерна «State Machine»: надо дождаться определённого ответа от нескольких сервисов, прежде, чем делать дальше что-то.
Callback'и не панацея например в случае, если пользователь инициировал загрузку картинки на сервис, а потом передумал, решив, что медленно, и решил исключить картинку из поста. Нажал удалить. А по коллбэку, через минуту, когда картинка, наконец, догрузилась в фоне, она таки вставляется в пост.
Можно напридумывать в Синглтоне Приложения кучу переменных для каждого из таких моментов, и в каждом коллбэке проверять, не накосячили ли другие асинхронные ответы? Но это такая каша будет!
Возьмём для примера grayscale изображение: только один канал со значениями от 0 до 255. Его «середина» 128.
Вы тыкнули серой пипеткой на картинке в точку со значением 100.
Выходная картинка пересчитается так, что ее бывшие 128 станут 100, а промежуточные значения также изменятся в соотв. с неким алгоритмом, чтобы равномерно заполнить искажённое «пространство» значений.
Это я назвал «мапится» от оператора map() в Processing.
Для Levels это линейная зависимость: две прямые, от чёрного до середины и второе плечо от середины до белого.
Для Curves это интерполяция кривой, может, Безье, по проприетарному неизвестному мне алгоритму. Придумайте свой, условий три: «средняя» точка может занимать любое положение в квадрате; ни одна точка кривой не вылезает за квадрат; в «средней» точке кривая не «ломается»: касательная входа = касательной выхода, но может, разные радиусы кривизны. Вполне может быть, что в математических терминах эта задача выглядит проще и решение проще: )
сложнонеоптимально.Отсюда и вопрос: «как правильно?»