Решението се оказва по-лесно отколкото мислите… разбира се, зависи от грешката. Текущият проблем при мен, беше policy, което забранява на imagemagic да работи с PDF файлове, поради потенциални “задни вратички” в структурата на PDF, които може да се използват за компроментиране на сигурността на imagemagick и съответно машината, на която работи.
/etc/ImageMagick-6/policy.xml
Променяме:
<policy domain="coder" rights="none" pattern="PDF" />
Трябва да стане:
<policy domain="coder" rights="read|write" pattern="PDF,PS" />
По-подробно описание може да се прочете тук -> https://cromwell-intl.com/open-source/pdf-not-authorized.html
Можем да използваме homebrew със следните 3 команди:
brew update
brew install php@7.3
brew link php@7.3
Играейки си с една мъничка SQL заявка (само 38 реда) и тествайки скоростта й на MySQL 5.7 намерих нещо интересно 🙂
За да направят версия 5.7 SQL99 compliant, разработчиците на MySQL са променили начина на работа на GROUP BY.
Подробно описание от човек, гледащ в бъдещето, което всъщност вече е тук -> http://rpbouman.blogspot.co.uk/2014/09/mysql-575-group-by-respects-functional.html
Що е то SQL99? -> https://en.wikipedia.org/wiki/SQL:1999
От време не време се налага да се занимавам с изчисляване на разстояния от точка А до точка В. Останах приятно изненадан от поддържката на GIS (https://en.wikipedia.org/wiki/Geographic_information_system) в MySQL 5.7.
Тъй като все още не съм намерил време да го тествам, ето линк към една доста добре написана статия с достатъчно информация и тестове за добър старт на деня -> https://www.percona.com/blog/2016/02/03/new-gis-features-in-mysql-5-7/
Бързи бележки за 1-2 команди и прансочване на портове 🙂
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 |
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat --line-numbers -n -L |
iptables -t nat --line-numbers -n -L
iptables -t nat -D PREROUTING 2 |
iptables -t nat -D PREROUTING 2
Малък скрипт, за който не мога да си препиша заслугите, но ми върши перфектна работа.
Всяка сутрин се стартира в 10:10 и сваля “National Geographic Picture of the Day” в определена папка. И тъй като wallpaper-чето ми се set-ва на всеки 5 мин взимайки random снимка от въпросната папка, всеки ден получавам нова картинка, която чакам да видя с нетърпение 🙂
#!/bin/sh
DATE=`date +%Y-%m-%d`
curl http://photography.nationalgeographic.com/photography/photo-of-the-day/ -o pod
# look for wallpaper version
if (curl `cat pod | tr '"' '\n' |grep -B 1 'Download wallpaper' | head -1` -o pod2) then
cat pod2 | tr '"' '\n' |grep -oh 'http://.*exposure.*.jpg' |head -1 | sed 's/0_360x270/0_2560x1600/'
a=`cat pod2 | tr '"' '\n' |grep -B 4 -A 4 'Desktop Wallpaper' | grep '.jpg' | sed 's/0_1600x1200/0_2560x1600/'`
curl 'http://photography.nationalgeographic.com/'$a -o $DATE.jpg;
else
# download the image from here --- in case it is not a wallpaper
echo "oops... no wallpaper. Get it anyway..."
a=`cat pod|tr '"' '\n' |grep -A 20 "primary_photo"|grep nationalgeographic.com`
curl 'http:'$a -o $DATE.jpg
fi
rm pod
rm pod2 |
#!/bin/sh
DATE=`date +%Y-%m-%d`
curl http://photography.nationalgeographic.com/photography/photo-of-the-day/ -o pod
# look for wallpaper version
if (curl `cat pod | tr '"' '\n' |grep -B 1 'Download wallpaper' | head -1` -o pod2) then
cat pod2 | tr '"' '\n' |grep -oh 'http://.*exposure.*.jpg' |head -1 | sed 's/0_360x270/0_2560x1600/'
a=`cat pod2 | tr '"' '\n' |grep -B 4 -A 4 'Desktop Wallpaper' | grep '.jpg' | sed 's/0_1600x1200/0_2560x1600/'`
curl 'http://photography.nationalgeographic.com/'$a -o $DATE.jpg;
else
# download the image from here --- in case it is not a wallpaper
echo "oops... no wallpaper. Get it anyway..."
a=`cat pod|tr '"' '\n' |grep -A 20 "primary_photo"|grep nationalgeographic.com`
curl 'http:'$a -o $DATE.jpg
fi
rm pod
rm pod2