Tag: linux

Когато ти изтекат сертификатите на блога…

Както може би забелязахте последните 2 дни блога ми не се отваряше и причините бяха две:

  • Let’s Encrypt renewal-а не беше минал тримесечния си ъпдейт на сертификатите;
  • Понеже използвам HSTS нямаше и опция да видите блога нищо, че е с невалиден сертификат.

И това естествено по празниците, когато нямах достъп до компютър :)

Ето и какви бяха причините за това, че на nedko.info не минаха сертификатите, но на останалите 7-8 сайта, които хоствам минаха без проблеми:

  1. При опит за certificate renew  получавах следната грешка:
Failed authorization procedure. www.nedko.info (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.nedko.info/.well-known/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw: "<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial"

IMPORTANT NOTES:
 - The following errors were reported by the server:

Domain: www.nedko.info
 Type: unauthorized
 Detail: Invalid response from http://www.nedko.info/.well-known
 /acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw:
 "<!DOCTYPE html>
 <html lang="en-GB">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial"
 To fix these errors, please make sure that your domain name was
 entered correctly and the DNS A record(s) for that domain
 contain(s) the right IP address.

 

Проблема е, че при опит за достъп по http (близко до ума, но на мен ми отне време да се досетя, че Let’s Encrypt callback-а е по http, а не по https) при misconfiguration горния линк http://www.nedko.info/.well-known
/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw пренасочваше към друг от моите домейни.

 

2. Започнах да преглеждам къде ми е проблема с това пренасочване и реших да изключа напълно port 80 поддръжката (http) макар и да имам redirect 301 в случай, че имам request по http.
Решението ми беше да спра изцяло поддръжката на http през vhosts. Става съвсем лесно с коментар или изтриване на удебеления ред:

#listen 80;
listen 443 ssl;

След тази промяна и рестартиране на nginx (service nginx restart) успях да стартирам процеса по преиздаването на сертификата успешно със следните редове:

letsencrypt certonly -a webroot --webroot-path=/var/www/nedko.info/ -d nedko.info -d www.nedko.info

където пътя до сайта е в директория /var/www/nedko.info/

 

Ако имате проблеми с намирането на директорията /.well-known/acme-challenge/ можете да я създадете наново като:

  • Проверите дали директорията съществува (под Линукс точката пред директория или файл се счита за скрит файл/директория) с
ls -lah /var/www/nedko.info/

Ако не съществува можете да я създадете със следната команда и дадете съответните правомощия:

mkdir /var/www/nedko.info/.well-known/acme-challenge/ && chmod 755 /var/www/nedko.info/.well-known/acme-challenge/

И изпълянвате по-горната команда за renew на сертификатите.
Ако не стане пишете в коментарите и ще го гледаме заедно.

Архивиране на директория с tar

И понеже ВСЕКИ път като ми се наложи да  архивирам директория под линукс и търся разни тъториали та реших да си го постна тук за по-лесно намиране, пък и на някой ако му е интересно/полезно – още по-добре.

Архивиране с tar

Ако искам да архивирам директория с всичките поддиректории и файлове с tar (zip и rar не идват инсталирани в пакетите на Дебиан и Убунту и вероятно на повечето останали дистрибуции) използвам следната команда:

tar czfv nedko.info.tar.gz /var/www/html/nedko.info/.

 

Дисекция на командата:

c – create

z – де/компресирай с gzip

f – архивирай във файл

v – verbose output (ще ни покаже полезна информация по време на компресирането. Не се препоръчва ако използваме командата в cron)

nedko.info.tar.gz – името на архива

/var/www/html/nedko.info – директорията, която искаме да архивираме

 

Разархивиране на създадения архив

И да речем, че нещо се прецака и искам да разархивирам архива в определена директория:

tar xzfv nedko.info.tar.gz /var/www/html/nedko.info

 

Дисекция на командата:

x – extract

z – де/компресирай с gzip

f – file (трябва да подадем име на файла след тази директива)

v – verbose – ще ни изкара полезна информация по време на декомпресирането. Не се препоръчва ако използваме командата в cron.

01.02.2017

Освен първата си по-сериозна статия за колоезденето, която написах днес се случват и други, доста интересни неща.

Например gitlab.com днес си преебаха базата данни. И това не е толкова страшно, защото при нормални условия restore-а би отнел няколко минути, но явно и бекъпите не са били особено полезни

Но освен лошата новина има и нещо хубаво и то е, че GitLab се оказата супер прозрачни откъм този проблем и дори направиха google doc в който описват подробно какво се случва.

И две IT мъдрости:

И това, че има два типа системни администратори – такива, които правят редовни и проверени бекъпи и такива, които вече ще правят. :)

По тази тема след няколко дни ще поръчам за експеримента един VPS на Hatzner за да направя load balancing и database replication + още 1-2 услуги както писах вече в статията за marvin. Ще е интересно и ще пиша за това като го направя.

 

Нещата, които намерих днес:

  • Злати прати днес този супер полезен ресурс – tldrlegal, който показва съвсем накратко популярните лицензни условия с много приятен и прост интерфейс.
  • Не знаех, че Амазон вече са и на low-cost VPS пазара;
  • How fucked is my database е малък сайт, който ви показва по хумористичен начин колко сте преебани използвайки една от следните бази данни – PostgreSQL, MySQL, MSSQL, Oracle, SQLite, MS Access, NoSQL?
  • WordPress с едно много неприятно ново vulnerability. Този път атакуващия може да направи privilege escalation и content injection. Ъпдейт към 4.7.2 е задължителен.

marvin

Началото

Около 2001 година започна интереса ми към WEB. И с времето се ориентирах към Joomla. Тогава бизнеса вече знаеше, че няма да му се размине без WEB и с времето направих доста сайтове (някои от тях са още online). И след време теглен от желанието си за собствено местенце в интернет и място където да пиша започнах да мисля за стой блог/ресурс в който да пиша разни неща. И така се роди идеята за Nedko.info – блог с интересна информация за web, малко смешки, урочета и т.н. Взех си хостинг в sueprhosting и сложих една Joomla 1.0.x
С времето интереса ми към него замря малко, но го оставих да живее. Няколко години по-късно (и един drop, защото не внимавах с времето за подновяване на домейна) реших да го съживя. 2014 година беше времето в което започнах с блога си в този му вид. Първо поствах мои стихове и разкази, после интересни IT неща, малко простотии и днес блога е изцяло персонален + малко интересни неща, които намирам ежедневно.

nasam.be

nasam.be е втората ми идея (тогава за социална мрежа, don’t blame me – всеки тогава искаше социалка), която датира от 2009 г. С времето слагах разни неща. В момента имам един status page там, като скоро ще мигрирам Joomla базата към WordPress и ще вдигна сайта със старите ми писания.

 

Избора на хостинг

Малко след като си купих първия хостинг се чудих защо аз не направя нещо свое? Звучи напълно логично за 15-17 годишен, но реалността се оказа различна. И така с времето все повече и повече изпитвах ограниченията на cpanel, трудностите в това да не знаеш какво става отдолу, кой има достъп до твоите данни и какво би било да можеш да направиш service nginx restart.

След няколко опита (включително вдигнахме един университетски сървър, а малко по-късно имах проект с мои приятели от университета и вдигнах един ubuntu server в таванското помещение на един от приятелите. Проекта се казваше 5heads.eu) останах на superhosting още няколко години, но 2016 беше времето в което трябваше да изляза от комфортната си зона и да направя нещо, което съм мечтал прекалено много време. Намерих vultr.com – VPS (virtual private server) за умопомрачителните $5 месечно и реших да го наема за няколко месеца и да видим дали transition-а ще е лек.

Marvin

marvin е параноичния и вечно депресиран свръхинтелигентен робот от “Пътеводител на галактическия стопаджия” на Дългaс Адамс.

marvin работи с Ubuntu. Всичко тръгна. Или поне по-новите проекти. Имам 2 сайта на античната Joomla 1.5, които са невъзможни за ъпдейт към по-нов бранч (има custom решения, но не и универсални такива) и започнах да търся. Оказа се, че има решение да пусна две отделни PHP-та на nginx с fpm (ако някой има интерес ще пусна инструкциите тук). Отне ми цяла вечност да ги подкарам поради различни проблеми и най-вече това, че за пръв път пипах nginx.

След като подкарах всичко реших, че е време да сложа Let’s encrypt сертификати на всичките си сайтове и сега си светят в зелено. Доволен съм. Статия за това как го направих ще пиша скоро.

 

Хостинг в marvin

През целия си живот съм бил привърженик на споделянето на знания с другите и marvin не прави изключение. VPS, който ползвам в момента е със следната конфигурация:

  • 1 CPU;
  • 2 GB RAM memory;
  • 50 GB SSD storage;
  • 2 TB bandwidth.

В този си вид мога да споделя малко място с FTP достъп, mySQL база данни и сертификат от Let’s Encrypt безплатно за всеки, който пожелае това и ми даде достатъчно добър довод (от типа на – студент съм, ученик съм, нов съм в бранша и не искам да си взимам хостинг за сега).

Edit – към септември 2017 г. marvin беше ъпгрейднат от 768 мб рам към 1ГБ, а storage-а му – от 15 SSD към 25 GB SSD.

Към Май 2021 г. marvin се търкаля на DigitalOcean с 1vCPU (avg CPU usage за последните 14 дни – 10%), 2GB RAM (avg RAM usage за последните 14 дни – 55%) и 50GB SSD (avg Disk usage за последните 14 дни – 83%).

 

Бъдещето на marvin

Надявам се marvin да не свърши като робота в книгата. Искам да подкарам няколко услуги на него като една от тях ще е wpscan за web, ще има gitlab и най-вероятно munin и backup service (вероятно duply или прост скрипт използващ rsync).
Към marvin смятам след време да присъединя още един, който ще е на друг VPS provider, който ще играе ролята на failover и DB replication service.

 

slartibartfast

И ето, че днес (15.02.20117) вдигнах още един VPS, този път на digitalocean, който ще играе ролята на backup, replication и failover solution на marvin. Хостинга по традиция е от $5 и ще свърши много повече отколкото имам нужда.
Скоро ще пиша в отделен пост какво съм вдигнал и как на сървъра.
В момента прехвърлям и nasam.be към него за да имам асоцииран домейн с който да си играя.

Ъпдейт към 27.05.2021 – slartibartfast е мъртъв от година и повече. Доста по-изгодно е да имам един по-голям VPS с повече RAM и диск отколкото два и колкото и да не ми се искаше теглих ножа на slartibartfast и се наложи да забравя за failover и remote backup.

vortex

Вече писах за vortex, но би било редно да направя honorable mention за него и тук. Откакто съм DevOps виждайки scale-а с който работим и всичките услуги, които мога да хостна и да науча не видях смисъл да търкалям един нещастен VPS (не, че не може на DigitalOcean, но освен цената идва и отговорността за поддръжката и правилната експлоатация на сървисите) и реших да взема нещо в нас. Повече инфо за това можете да намерите в статията, която съм линкнал по-горе.

 

Changelog

И понеже много обичам да пиша changelogs реших да го сложа директно в тази статия:

  • Full SSL support преди започването на този blogpost;
  • Пълен бекъп на базите данни ежедневно;
  • swap support – on (защото на VPS-а на който съм не е пуснат по default). Как да си активирате swap-а на кой да е VPS можете да прочетете тук;
  • Вдигнах slartibartfast на 15.02.2017 използващ услугите на digitalocean.com
  • 16.03.2017 г. marvin вече работи с HTTP/2 и HSTS (HTTP Strict Transport Security). Резултата от SSLLabs можете да видите тук;
  • 18.07.2017 г. – marvin вече поддържа livepatch, което ще минимизира downtime-а му до минимум.

100% SSL поддържка на marvin

Днес най-накрая успях да подкарам 100% SSL support на всичките ми хостнати проекти с Let’s Encrypt.

Без проблеми естествено не можеше, но бяха решени с касапския метод:

[code]aptitude remove letsencrypt[/code]

[code]aptitude purge[/code]

[code]aptitude install letsencrypt[/code]

Заедно с това сложих и letsencrypt renew, защото сертификатите са валидни само три месеца. Сега ще чакам да видим след три месеца дали всичко ще стане автоматично :)

10.11.2017

Днес деня започна с поезия. Този път ред е на Мария Донева и нейния блог, който влиза в личния ми feedly моментално:

 

Тя се готви да пътува.

Тя се готви да пътува.
Вече знае накъде.
Но макар че се шегува,
тайна мисъл я яде.

И макар че тя е смела
и е купила билет,
във лъжи се е оплела.
За да продължи напред,

трябва да развърже възел,
трябва да прескочи плет,
да надвие своя мързел,
да изхвърли много смет.

И четирите саксии
на сираческа съдба
да остави. Да изтрие
спомена за веселба.

Да извика студовете.
Да си спомни за дъжда
във леглото, на ръцете –
пръстените със ръжда.

Да не мисли за доброто.
Да не мисли за вина.
Да си навлече палтото.
Без целувка на уста

да потегли, да замине –
вече знае накъде.
Да остави да изстине
окаденото кафе.

Да не мие тези чаши,
да не готви за обяд.
Да се радва, че се плаши,
Да не търси път назад.

Да не спира. Да не чака,
време е да се реши –
който пак я е разплакал,
няма да я утеши.

Тя се готви да пътува,
но да се стопи снега.
Ще избяга, ще отплува,
но не знам кога,
кога…

 

 

Нещо интересно, което намерих днес:

  • Новината на деня – след като verizon купиха огроман част от Yahoo остатъка от компанията се преименува на … “Altaba”??? Мисля, че по-тъпо име не е било възможно да бъде измислено;
  • Chrome Backdoor – Chromebackdoor is a pentest tool, this tool use a MITB technique for generate a windows executable “.exe” after launch run a malicious extension or script on most popular browsers, and send all DOM datas on command and control;
  • 3 Ways to Permanently and Securely Delete ‘Files and Directories’ in Linux;
  • И едно очарователно видео. Канят няколко badasses в стая и малко по-късно влиза малко момиченце, което без да казва нищо започва да си разтоварва нещата от раничката и кани лошите чичковци на по чаша кафе/чай/торта (пластмасови). И разтапя тия лошите татуирани и начумерени хора с една усмивка;

Сканиране за лоши сектори под Linux

Има едно нещо, което е по-лошо от счупения хардуер и то е умиращия такъв. Тия дни ми се наложи да сканирам няколко хард диска за лоши сектори под linux (в моя случай това е офисната ми машина с Ubuntu 14.04.3 LTS + Mate) и след извесно чудене кой метод да избера се спрях на badblocks. Хубавото му е, че единственото нещо, което го накарах да изведе е списък с лошите сектори, които евентуално по-късно можех да обработя с fsck. Без графични интерфейси, излишни прозорци и т.н. Автор на badblocks е Реми Кард.

Инсталацията му под Debian базирани инсталации е тривиална: Continue reading

By PacktPub

By PacktPub

Raspberry Pi Cookbook for Python Programmers

Открийте какво можете да направите с един Python качен върху Raspberry PI с офертата на Packt Publishing, която пуснаха безплатно само за днес (редовната ѝ цена е малко над $25).

Книгата се състои от 10 глави , които включват:

  1. Как да започнем с Raspberry PI:
    1. Инсталиране на Raspberry PI NOOBS;
    2. Настройка на Ethernet и wireless мрежа;
    3. Използване на прокси, връзка към VNC/SSH (през X11 forwarding);
    4. Конфигуриране на споделена директория използвайки Samba;
    5. Update към latest на Raspberry PI и Noobs/Debian;
  2. The real deal – Инсталация и първи стъпки с Python, стрингове, файлове и менюта:
    1. Въведение;
    2. Работа с текст и стрингове;
    3. Работа с файлове и error handling;
    4. Създаване на boot-up меню;
    5. Създаване на самодефинируемо (баси думата. На английски е self-defining) меню.
  3. Използване на Python за автоматизация и по-висока продуктивност;
  4. Създаване на игри и графика използвайки IDLE3 за debugging, Tkinter Canvas за чертаене с мишката и създаване на 1-2 игрички (това е интересно да се види на живо);
  5. Създаване на 3D графика – създаване и импорт на 3D модели, създаване на 3D и билдване на карти и лабиринти;
  6. Използване на Python за комуникация с хардуер. Тук ще се покажат няколко ултра интересни неща в които е силната страна на Pi-то – контролиране на LED светлина, обработване на данни през бутон (тоест какво да прави при натиснат/изключен бутон), създаване на shutdown бутон, използване на GPIO и други;
  7. Работа със сензори. Работа с i2c бъс, четене на аналогови данни и използването на analog-to-digital конвертор, логване на данни, разширяване на функционалността на Raspberry PI с GPIO с I/O expander, събиране и изпращане на данни към online services.
  8. Създаване на проекти с Raspberry Pi camera module;
  9. Да си направим робот – използвания хардуер е Rover-Pi с линеарно задвижващи се мотори, advanced motor control, създаване на шестокрак Pi-Bug робот (да стряскате с него любимата), избягване на обекти и ориентация;
  10. Интерфейси – автоматизиране на дома с remote sockets, използване на SPI за контрол на LED матрици, комуникация през серийния интерфейс, контролиране на Raspberry PI през bluetooth и USB devices.

Тегленето на книгата е напълно безплатно като се изисква елементарна регистрация (не искат данни за кредитна карта).

Вариантите в които пристига книгата са:

  • Онлайн през техния Piktlib. Там четенето е приятно, всичко е структурирано добре със съдържание на книгата в дясно и опция за търсене из страниците. Проблем е, че ресурса понякога е малко бавен. Няма опция за bookmarks на определени текстове или страница и ако не помня до къде съм стигнал рискувам да загубя немалко време докато се ориентирам кое съм чел и кое не;
  • PDF;
  • ePub;
  • Mobi;
  • Kindle с два ebook формата – PDF или Kindle format. След избор на формат въвеждаме Kindle адреса си и ще получим книгата синхронизирана на Kindle–а без да я прехвърляме от устройство на устройство;
  • Code files – Всичкия код, който е използван в книгата като примери може да бъде изтеглен също от тази секция.
  • С доплащане можете да получите и хартиения вариант на книгата.

Та така де. Книгата изглежда интересна.

 

Линк за теглене можете да намерите тук.

 

Приятно четене.

Недко разказва: Microsoft лимитира OneDrive, намаля акаунтите до 5GB

Микромеките пак са в стихията си. Аз лично не съм използвал техните услуги, но Юлиян, например,  име фен и сигурно няма да бъде особено щастлив.

Та накратко – OneDrive е облачна услуга предназначена основно за запазване на потребителски данни (cloud storage service), която (очевидно до днес) беше с неограничено пространство, което само по себе си вдигна доста голям шум по времето, когато го обявиха.

Е – не всичко продължава вечно. Както е казал народа – снимки, файлове, ала бала качвате, ама хард дисковете пари струват.

Та сега нашите са сменили малко тактиката и максималния стандартен план за свободно място на OneDrive е ограничено до 1 TB ($6.99 с включен Office 365 на месец).

Безплатното пространство, което всеки регистриран потребител получава е намалено от 15GB до 5GB.

 

А докато MicroSoft правят подобни промени в една от основните си услуги аз продължавам да използвам Google Drive (който всеки регистриран в gMail или Google има) и техните 15GB безплатно пространство за storage като плана им за 1TB е $9.99 (което е по-скъпо от това на Микромеките както писах малко по-горе).
Та всеки си решава сам за себе си. Аз моето решение го взех преди време и съвсем скоро ще опиша и моята домашна инфраструктура като част от нея ще използва OwnCloud

Излезе Ubuntu 15.10!

Най-накрая! Ново Ubuntu, нов късмет са казали хората.

Последния път, когато писах за Ubuntu беше за версия 11.04 (2012 година), а от тогава се изля много вода.

Днес ще си поговорим малко за основните разлики между Ubuntu 15.04 и 15.10 Wily Werewolf. А тук можете да видите всички релийзи на Убунту – по релийз дати и информация за всеки един.

 

Инсталацията

Ъпгрейда от Ubuntu 15.04 към 15.10 по правило става с един ред:

sudo do-release upgrade

След стартирането на скрипта малко се изненадах от следното съобщение:
4 installed packages are no longer supported by Canonical. You can
still get support from the community.
53 packages are going to be removed. 209 new packages are going to be
installed. 1472 packages are going to be upgraded.
You have to download a total of 1125 M. This download will take about
3 minutes with your connection.

 

Знаех си, че с времето съм инсталирал някакви ненужни неща ама чак пък толкова…

Тегленето на пакетите отне няколко минути, а инсталацията – към 25 (все пак имам почти 1700 пакета за инсталация/ъпдейт).

След remove, install и upgrade по пакетите, скрипта обнови grub-a и ме попита дали иска той да се погрижи да рестартира всеки сървис по отделно (заради ъпдейта на някои важни библиотеки като libpam, libc и libssl например).

След като приключи с install/update дойде ред за remove packages и съвсем на място ме попита дали не искам съвсем случайно да разкарам 112 пакета (нали преди малко бяха 209?).

Рестарта премина гладко и без проблеми (освен факта, че малко преди това кирилицата спря да работи :) ).

nedko@nedko:/var/www/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily

 

Общи впечатления

Новата версия на Ubuntu пристига без грандиозни нововъведения, но пък носи със себе си:

  • Чисто нов kernel 4.2*;
  • Сериозен bug fixing;
  • Разни подобрения в използваемостта на Unity;
  • Libre Office 5;
  • Нови скролбарове;
  • Поддръжка на Steam контролери.

Новите (Unity Overlay Scrollbar) скролбарове за които толкова се говореше всъщност са нещо за което не мисля да отделям повече от пет кратки изречения. Новото, което е при тях е, че когато не са фокусирани с курсора се свиват на 50%. Това е. Защо говорят толкова за него? Нямам идея.

Unity 7.3.3

  • Вече можете с drag and drop да завлачите (като циганин – германска туристка) разни приложения от Unity Dash към десктопа. Навигацията в Unity Dash е вече достъпна и с клавишите нагоре и надолу;
  • (нещо важно) При търсене през Unity Dash вече НЕ показва онлайн резултати. Тази опция е изключена по default и можете да си я включите от System settings – Privacy;
  • Редица много малки промени по UI и функционалност на Unity. Направо се чудя защо са тръгнали да ги изброяват при положение, че са супер малки.

Нов wallpaper!

Сега ще кажете – тоя се побърка. Как може да пиша такава простотия в ревюто? Неслучайно засягам тази леко болна тема. Преди време Убунту пуснаха предложение към потребителите да участват със свои неща и едва 40 човека са проявили интерес. Което е болезнено.

Kernel 4.2*

Новият kernel, който не е нов (релийза му беше Август месец). За него ще разпиша утре на свежа глава по-интересните неща, но ще спомена следните три:

  • Поддръжка на новите 64 битови Broxton чипове базирани на Intel Atom;
  • Нов AMD GPU драйвър;
  • Поддърка на F2FS файлова система (за която ще напиша отделна статия, че е с интересна идея).

Ubuntu Make

Полулярния command-line developer tool (баси – това не мога да го напиша на български с читав превод) има някои важни нововъведения като едно от тях е Android Development environment.

Поддръжка на Valve Steam контролери

Не знам защо толкова тръбят за това при положение, че и преди работеше (макар и с хакове) и това е логичното продължение, but anyway. Вече имаме native поддръжка на Steam контролери. Йее.

Ъпдейтнати приложения

При ъпгрейда на дистрибуцията получаваме и шепа ъпдейти по ежедневните ни GUI приложенията, например:

  • Firefox 41
  • Chromium 45
  • LibreOffice 5.0.2
  • Nautilus (aka ‘Files’) 3.14.2
  • Totem (aka ‘Videos’) 3.16
  • Rhythmbox 3.2.1
  • GNOME Terminal 3.16
  • Eye of GNOME 3.16
  • Empathy 3.12.10
  • Shotwell 0.22

 

Сега е ред да отбележа, че в офиса съм с MATE като window manager. Машината е с SSD и boot time-а ми е около 5 секунди до login screen-а. Същия си остана и след ъпдейта.

Ако имате някакви въпроси – пишете в коментарите или във Facebook. Ще отговоря с удоволствие.

 

П.С. Обещавам следващата ми статия да е малко по-човешка, че тази нещо ми се получи доста схваната.