Ctrl + ↑ Позднее

Cakephp3: PDO Error for unknown reason

If it happens that Cake throws an error while saving data to a table, check if any of the columns have «reserved» names. My pitfall was use of column named «order» to save item order information, in which order it should be displayed. Turned out «order» is one of the «reserved» column names and so must be «quoted».
#solution
Cake has a special option for this kind of cases which is turned off by default. Turn it on in config/app.php, find the following line and set it to true, like so:

'quoteIdentifiers' => true,

done.

2017   cakephp

jQuery: плавная прокрутка к разделу

говорили мы учителям в школе «зачем нам физика, зачем нам математика!»

Вступление: а вот зачем
Физика: формула скорости
Математика: знание об абсолютных значениях и решение простых уровнений
:-)

Классная штука jQuery, сколько лет пользуюсь — не нарадуюсь, даже с появлением упрощений в ванилле — jQuery по простоте использования и совместимости равных нет.

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

Первый сайт по запросу «лендинг пейдж» http://marketing-time.kz — при прокрутке страницы меню остаётся висеть сверху, нажимаем на раздел «контакты» и браузер не перескакивает к разделу, а прокручивает страницу вниз.

У такой прокрутки один недостаток — скорость зависит от расстояния прокрутки. На том же сайте нажимаем «Главная» затем «Контакты», и потом «О компании» — с «Главной» до «Контактов» сайт прокручивается с большей скоростью, чем от контактов до «О компании».

Связанно это с тем, что в jQuery при создании анимации параметр регулирующий выполнение скрипта — время. Скрипту даётся команда — прокрути сайт от А до Б за 1 секунду, и скрипт прокручивает. В случае с переходом от «Главной» до «Контактов» между А и Б намного большее расстояние, чем в случае с переходом от «Контактов» до «О компании».

Регулируя время выполнения скрипта прокрутки в зависимости от расстояния можно добиться плавной и приятной глазу прокрутки. Расстояние мы можем посчитать, скорость меняться не должна, то есть константа, рассчитать нужно время. Скорость исчисляется в расстоянии на время, например километры в час или метры в секунду, то есть скорость = расстояние / время, для получения времени нужно расстояние поделить на скорость.

Вот пример того, как это реализовано на сайте http://isg-group.kz, к сожалению сайт переделали и от плавной прокрутки избавились :-( :

$('.menu .item').on('click', function(e) {
		e.preventDefault();
		var destination = $($(e.target).attr('href')).offset().top - 111,
			speed = 3;
		var distance = Math.abs(destination - window.scrollY);
		$('body, html').animate({scrollTop: destination}, distance/speed);
	});

Скрипт считает расстояние до начала блока и отнимает 111 пикселей, что бы прокрутить не точно на начало блока, немного выше его начала. На случай если мы крутим снизу вверх и расстояние может быть отрицательным из-за чего итоговое время выполнения скрипта получится отрицательным — используем

Math.abs

что бы получить абсолютное значение — без знака плюс или минус.

Автоматор: Чистка загрузок на маке

Люблю порядок и свободное место на харде
Порядок на компе, как и на столе или на кухне, или в шкафу, или в голове — доставляет мне огромное удовольствие.
Сколько себя помню папка «Загрузки» больше похожа на свалку всего, что качается по работе, скидывается друзьями в мессенджеры и то, что случайно скачивается при нажатии не на ту ссылку. Это не было особой проблемой пока не появился ссд диск и доступное место сократилось с терабайта до 120 гигов. Настало время периодической чистки «Загрузок».

Болото
Чистка ручками превращается в «болото», начинаешь разгребать и сортировать: это что-то нужное — пока не буду удалять, это что-то не помню — тоже пока оставлю, о, а это интересно, надо почитать, посмотреть, послушать. Так и застревал в болоте загрузок, вместо того, что бы освободить место для чего-то нужного — занимался разбором ненужного хлама.

Простые ухищрения
Сортировка по размеру и удаление больших файлов немного помогало, сортировка по дате создания тоже немного — старьё в топку, но ни одно, ни другое от попадания в «болото» не спасали.

Автоматор сам всё сделает
Давно знал об автоматоре — можно создать автоматические действия, которые будут выполняться при определённых условиях. Пробовал пару вариантов, и в итоге остановился на «действиях папки»

снимок экрана настроенного действия

Теперь при скачивании, копировании или создании файла в папку «Загрузки» выполняется скрипт который удаляет все файлы и папки которым более семи дней.

Что-то нужное сохраняется куда надо
Что бы не потерять что-то нужное оно сразу копируется в «Документы» или на стол, если этого не было сделано, то файлы через 7 дней удалятся за ненадобностью.

В папке пусто. Автоматически. Найс! :-)

DVNO

Один из лучших клипов, да и песня шикардос.
Лирика стилизованная под логотипы 80х, многие так близки сердцу, что каждый раз показывая кому-нибудь этот клип сижу как ребёнок «видел, видел!» ?