Оправяне на повредени ZIP файлове

Понякога се чупят ZIP архивите когато краят на файла е повреден, защото там се намира директорната му структура. И резултата е, че файла става неизползвам. Ето как можете да го оправите:
zip -F broken.zip –out fixed.zip
или ако е по-повреден:
zip -FF broken.zip –out fixed.zip

Разбира се няма гаранция, че файла ще работи след ремонта или че всички файлове ще са наред. Но все пак ще имате поне нещо възстановено.

Командата zip е налична само във пакета Info-ZIP. За тази цел напишете:
zip -h
и ако видите, че е от Info-ZIP можете да използвате -F или -FF

Оправяне на повредени ZIP файлове

Auto-Archive

Archive.org е все по-важен ресурс за съхраняване на линкове в интернет. Сега ще покажа 3 начина със които да записвате линкове СЕГА, а не да чакате на случайността.

Първия вариант е да отворите:
https://web.archive.org/save
и да допълните какво и как искате да се запише.

Втория вариант е да напишете линка така:
https://web.archive.org/save/peter.nikolow.me
което ще предизвика записване на линка (peter.nikolow.me) във Archive.org сега.

Третия начин е по мейл. Ако добавите към всеки мейл този получател също:
savepagenow@archive.org
то тогава Archive.org ще запише всички линкове от този мейл. Можете да го прибавите като bcc.

Разбира се втория и третия начин са изключително подходящи за автоматизиране.

Auto-Archive

PHP Simple HTTP Server

Ето как лесно и просто да стартирате HTTP Server под PHP:

php -S 127.0.0.1:8080

След което отваряте в браузър http://localhost:8080 и можете да видите как се изпълняват PHP скриптове от папката в която е създаден. Основната разлика в сравнение със сървъра работещ под Python е, че няма показване на папките във директорията. Директно се опитва да намери index.php и ако няма такъв сървъра тържествено обяснява, че не може да достъпи „/“ и връща 404.

PHP Simple HTTP Server

Python Simple HTTP Server

Понякога когато човек работи на Linux сървър и му трябва да си види няколко файла, но без да активира допълнителни клиенти или сървъри. Ето и решението за Python 2:

python -m SimpleHTTPServer 8080

Ако използвате Python 3:

python -m http.server 8080

След което отваряте браузър и пишете това:
http://ip.на.сървъра:8080/път/към/файла.txt

Това е всичко! Когато си свършите работа просто набивате един Ctrl-C на Python. Имайте на предвид, че Python се изпълнява под текущия потребител и наследява всички негови ограничения за достъпи до файловете. Под *nix портове под 1024 могат да се отварят само под root права и затова използваме порт 8080. Ако искате да отворите порт под 1024 ще трябва да използвате sudo, но тогава Python също ще се изпълнява под ниво на root и ще може да има достъп до всички файлове.

Python Simple HTTP Server

Отпечатване със използване на cups под macOS

Добавяне на принтер:

$ lpadmin -E \
 -p Printer \
 -v ipp://192.168.1.10/ipp/print \
 -P Vendor-Model.ppd

-E разрешава приемането на задачи за отпечатване
-p установява името на принтера
-v път към URI на устройството
-P път към PPD файла със характеристиките на устройството

Проверка на наличните принтери:

$ lpstat -a
Printer accepting requests since Thu Nov 26 18:29:28 2015

Отпечатване на документ:

$ lpadmin -x Printer

Изтриване на принтер:

$ lpadmin -x Printer
Отпечатване със използване на cups под macOS

Смяна на Chrome user agent без плъгин

Понякога се налага да се смени user agent-a без да се използва плъгин. Ето и как можете да го направите без плъгин или някаква друга приставка.

Ето оригинала:

Както виждате user agent-a ми е CrOS което си е ChromeOS. Нека сега да го сменим!

Натискаме десен бутон във файла, Инспект Елемент и от инспектора във долния панел избираме Network Conditions и го сменяме. Ако не е активен Network Conditions се клика на трите точки във ляво и оттам се избира. Ето как би трябвало да изглежда.

И как да се представим за Googlebot mobile:

След презареждане действително заявката се изпраща със този user agent. Това е полезно за тестване на сайтове когато се сервират различни страници във зависимост от браузъра. Отделно е полезно когато се тестват сайтове защото във един прозорец може да се сервира съдържание за iPhone, във друг за iPad, във трети за Android и четвърти да е за компютър със симулиране и на различната мрежа във всеки един от тях индивидуално.

Смяна на Chrome user agent без плъгин

macOS поправка на счупени приложения

Едно от най-досадните неща във новите macOS (OSX) е когато каже, че дадено приложение е повредено и няма да работи повече. Това се причинява от новия GateKeeper който вече не позволява на неподписани приложения или счупени такива да работят.

Ето и как изглежда това:
macos damaged app
И защо се появява:
gatekeeper
забележете, че липсва „Anywhere“.

Ето и как можете да го оправите:
1. Отваряте терминал
2. Пишете това:
sudo spctl –master-disable
забележете че има две тирета и така и трябва да бъде
3. Ще бъдете помолени да си оставите паролата.

Сега вече можете да пускате приложения:

Тъй като „Anywhere“ вече присъства.

Ако искате да го върнете следвайте горните стъпки, но за точка 2 напишете това:
sudo spctl –master-enable

macOS поправка на счупени приложения

PHP7 Mac

Ако сте на Мак и не ви се ползват Портовете или Самоварките (ports/homebrew) обаче PHP 7 ви липсва…

https://php-osx.liip.ch

Поддържа се всичко от PHP 5.3 до 7.3 и работи на всички macOS 10.6 до 10.13.

PHP7 Mac

Node.js and npm update

Наложи ми се да обновя на macOS някакъв остарял node.js и ето конкретните стъпки
1. Пишем npm version и виждаме това:
{ npm: ‘3.10.3’,
ares: ‘1.10.1-DEV’,
http_parser: ‘2.7.0’,
icu: ‘57.1’,
modules: ’48’,
node: ‘6.5.0’,
openssl: ‘1.0.2h’,
uv: ‘1.9.1’,
v8: ‘5.1.281.81’,
zlib: ‘1.2.8’ }
2. Пишем node -V и виждаме това:
v6.5.0

Които са инсталирани някъде 2015 или 2016та и са праисторически спрямо днешните стандарти.

Обновяванието става лесно:
1. sudo npm install -g npm
2. npm version вече връща това:
{ npm: ‘6.1.0’,
ares: ‘1.14.0’,
cldr: ‘33.0’,
http_parser: ‘2.8.0’,
icu: ‘61.1’,
modules: ’64’,
napi: ‘3’,
nghttp2: ‘1.32.0’,
node: ‘10.6.0’,
openssl: ‘1.1.0h’,
tz: ‘2018c’,
unicode: ‘10.0’,
uv: ‘1.21.0’,
v8: ‘6.7.288.46-node.13’,
zlib: ‘1.2.11’ }
3. sudo npm cache clean -f
4. sudo npm install -g n
5. И вече можем да напишем sudo n latest или sudo n stable. Изчакваме малко
6. node -v вече връща
v10.6.0

Оттук насетне обновяването към последните версии е само:
1. sudo npm install -g npm
2. sudo npm cache clean -f
3. sudo n stable (или latest)

Node.js and npm update