13
Июль
2022
На Ubuntu при сборке фронта gulp при минимизации изображений ругается
gulp-imagemin: Couldn’t load default plugin «gifsicle»
TypeError in plugin «gulp-imagemin»
Message:
fn is not a function
Details:
Ошибка: gulp-imagemin couldn’t load default plugin gifsicle
Решение: поочередный запуск команд в терминале ubuntu (внутри корневой директории проекта)
sudo apt-get install dh-autoreconf
sudo npm install -g gifsicle
npm install —force
Источник
https://zencod.ru/gists/error-gulp-imagemin-couldnt-load-default-plugin-gifsicle/
рубрики: Полезности, Программирование |
2
Апрель
2021
Стать закладка, чтобы не забыть. Тут полное описание с картинками.
При запуске Far manager в WIN 10 меняется цветовая схема и шрифт, на более неприятные для глаза (сильно контрастные, яркие).
Связано это с тем, что в Windows 10 Fall Creators Update (FCU) переработали дефолтовую цветовую схему консоли.
С помощью утилиты Color Tool можно вернуть для Far нужные цвета (запускать прямо в Far):
|
colortool.exe -b cmd-legacy.ini |
рубрики: windows, Полезности |
10
Июль
2020
Пост из разряда «закладка»
Сразу сама функция по отдаче файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
function file_force_download($file) { if (file_exists($file)) { // сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт // если этого не сделать файл будет читаться в память полностью! if (ob_get_level()) { ob_end_clean(); } // заставляем браузер показать окно сохранения файла header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); // читаем файл и отправляем его пользователю readfile($file); exit; } } |
Взято отсюда https://habr.com/ru/post/151795/
рубрики: PHP, Полезности |
9
Июль
2020
С многомерными массивами в javascript беда, а уж с передачей многомерного массива AJAX запросом — тем более.
Не буду долго рассказывать о своих страданиях 🙂 сразу готовое, красивое решение
|
data = new Object(); for (i = 0; i < games.length; i++) { data['games[' + i + '][name]'] = $(games[i]).find('.game-name').val(); data['games[' + i + '][img]'] = $(games[i]).find('.game-img').val(); data['games[' + i + '][url]'] = $(games[i]).find('.game-url').val(); } $.ajax({ url: 'games.php', type: "POST", data: data }); Всё - ловим в games.php правильный массив $_POST |
рубрики: Javascript, Javascript - JQuery, Лайфхак, Полезности |
3
Март
2020
Столкнувшись с проблемой чистки ящика Яндекс.Почты нашел интересную статью, в которой предлагалось автоматизировать работу с ящиком открыв консоль и вызвав там самописную стороннюю фукнцию, выполнявшуюся в бесконечном цикле!
Идея работы с реальным контентом сайта самописным кодом, да ещё в бесконечном цикле мне очень понравилась, пока не знаю где применю — но однозначно в закладки!!!
(function(){
Console.log(‘тут мутим с селекторами — чекаем удаляем и т.д. и т.п.’);
setTimeout(arguments.callee,5000);
})();
Код автора, для удаления писем. Уже не актуальный — Яша видимо вёрстку сменил, но смысл ясен — пометили письма, нажали удалить и так в цикле!
(function(){
$('.block-messages-list-box.b-layout__first-pane input[type=checkbox]:not(:first)').trigger('click').trigger('click');
$('a.b-toolbar__item.b-toolbar__item_delete.daria-action').click();
setTimeout(arguments.callee,5000);
})();
рубрики: Javascript, Javascript - JQuery, Лайфхак, Полезности |
2
Март
2020
Не претендую на авторство, вырвал из видеоурока по вёрстке
Очень простая реализация табов — буквально несколько строчек.
$(".tabs li").click(function() {
var tabName = $(this).attr("data-tab-name");
$(this)
.addClass("active")
.siblings()
.removeClass("active");
$(".tab-content." + tabName)
.addClass("active")
.siblings()
.removeClass("active");
});
У лишек должен быть атрибут data-tab-name одноимённый с классом содержащим контент.
Рабочий код с минимальной стилизацией — ссылка.
рубрики: Javascript - JQuery, Полезности |
27
Февраль
2020
Продолжаю ковыряться в методиках современной вёрстки, сегодня нашел отличный ролик на тему работы с SVG иконками.
Собственно ролик https://www.youtube.com/watch?v=R2YC3SrTYHk
Если в 2х словах о технологии — необходимые иконки загружаются в онлайн сервис https://icomoon.io/
(жмякаем в правом верхнем углу по ссылке IcoMoonApp)
(кстати там тоже есть хорошая библиотека, например я именно там и взял бесплатные иконки)
Всё — загрузили, или выбрали необходимые иконки — жмём загрузить шрифт и вуаля — скачиваем архив с необходимым веб-фонтом и html файликом с демонстрацией подключения и использования.
Если окошко IcoMoonApp сразу не закрывать — можно удобно копировать код нужных элементом для вставки в проект.
Очень круто и очень быстро и просто!
рубрики: Вёрстка, Лайфхак, Полезности |
24
Январь
2020
Скорость загрузки сайта была улучшена с 7.9 секунд до 1.45 секунды!
Кому интересно — читаем 🙂
Преамбула — обратился ко мне клиент с просьбой ускорить загрузку сайта, т.к. ну уж очень медленно всё — более 7 секунд!!! на загрузку главной страницы
изначальная версия главной (для тестирования обновляем страницу со сбросом кэша браузера)
Реклама крутится — бабки ввалены, а с такой скоростью врят ли стоит чего то ловить…
Сайт — очень красивая лендинг простыня, с кучей красивой графики и всяких не менее красивых эффектов появления другой графики — в общем полный треш в плане веса страницы, со всеми вытекающими …
Причём именно для этого сайта тормознутость загрузки очень явно видна т.к. пока не прогрузится вся страничка на видимой части не всплывёт непосредственно главное содержание странички — заголовки и футболист! До этого страничка будет выглядеть пустой.
Все обычные советы — сжать и обрезать картинки, объединить и сжать css и js, поместить в конец страницы и прочие — всё это как слону дробина при таких объёмах графики на странице.
Начал изучать и нашел на хабре среди обычных один довольно интересный совет
Читать полностью »
рубрики: Bitrix, Javascript - JQuery, PHP, Лайфхак, Полезности, Программирование |
2
Июль
2019
Задача — подключить и настроить новый шаблон на сайт с движком 1С-Битрикс.
Собственно, в Битриксе можно дать понять движку, что мы хотим подключить другой шаблон в настройке сайтов.
Тут доступны удобные варианты — это «параметр в УРЛ» и «выражение PHP»
Ранее для тестирования одной конкретной странички я добавлял параметр в урл — например ?gt=1
Но когда тестируется сайт целиком, такой способ неудобен — нужно вручную добавлять этот параметр в адрес страницы.
Сначала я решил вопрос автоматическим добавлением этого параметра на все ссылки на странице (скриптиком), но тут возникли разного рода коллизии, править костыли для которых я уже устал, поэтому подумал и нашел, как мне кажется, более элегантное решение 🙂
Это «выражение PHP» проверяющее определённую переменную сессии, например ту же gt=1
Для включения и выключения которой сделал отдельный скриптик.
Проверяем $_SESSION[gt]==1
Включаем
session_start();
$_SESSION[gt]=1;
Выключаем
session_start();
$_SESSION[gt]=0;
Никаких коллизий, всё предельно просто и понятно 🙂
рубрики: Bitrix, Полезности |
7
Май
2019
Настраивал сегодня vsFTPd на виртуалке — вроде всё как обычно делал, но лезет ошибка «refusing to run with writable root inside chroot» и всё тут 🙁
Информации, на счастье, довольно много — тут наверное лучшее изложение.
Суть проблемы — запрет записи в домашней директории (что само по себе имхо полный бред).
Если кратко, то мне помогло добавление в конфиг опции
allow_writeable_chroot=YES
(помогло т.к. версия демона была > 3.0.0)
рубрики: NIX, Администрирование, Полезности |