Monitoring slow queries in MySQL

If you are in doubt that some really slow queries are taking place on your server and they put you on too much load, then use this change in the configuration file to enable logging of slow queries:

The config files usually is /etc/mysql/my.cnf. Uncomment these:

slow-query-log = 1

slow-query-log-file = /var/log/mysql/mysql-slow.log

long_query_time = 1


The last is not mandatory, but if you got a big db, it would be good if you have a reason to consider indexes, if you got too many queries without ’em.

You can read more here:

json_no_route when querying taxonomy with WP-API

To get a taxonomy, using WP-API, you should make a request to

All is well, until you have a taxonomy with a dash(‘-‘) in its name – in my case, the taxonomy is called ‘event-categories’ – the default event taxonomy in the Events Manager plugin.

So, a request to responds with a “No route was found matching the URL and request method” message.

It’s a pretty big, apparently known issue, and will hopefully be resolved soon. In case it’s not though, here is a temporary solution, stolen from GitHub user zkingdesign on this page:


How to do animated scroll window to top or offset of particular element

Whenever you want to do animated scroll using a particular html element as a offset you can use the following jQuery code where -100 it the offset from the element in pixels.

Also if you would like to have the option for scrolling to the toп of your page use this one:

Get the visitor’s country by their IP

Basically the code is something like this:


So we are using the GeoPlugin API to retrieve the Country code. You can also get the full country name, state, city, continent and some other stuff. Here is a simple dump of the data returned from the site:

For more info and explanations and more complicated code check Chris Wiegman post on this topic.

Displaying the shortcode from Custom post type content or Metabox

Whenever you try to display a shortcode through custom field you will get the text part and the shortcode function won’t be trigger.  To avoid this you can apply the following filter in your code:


“the_custom_field” should be replaced by your own custom field name.
Basically you can apply this filter to any kind of custom content: metaboxes, custom fields and so on.



Using git via console

# Basic commands to get you started in using Git via console
# Дълъг документ, който да ви накара да оцените какво GitHub for Windows прави за вас 😉

Commands to navigate in the console

pwd     print working directory
cd        change directory. Използвайте кавички  ако в името има интервал
 cd Users
 cd “Program files”
mkdir   make (new) directory
dir        lists all files and folders in current directory
ls          try ls if dir doesn’t work

Relative addresses 

въвеждане на пътища до файлове, относително спрямо текущата директория.
./           текущата директория
../          по-горната директория
cd ..     /ни връща в по-горната папка

Using Git

 mkdir book
 cd book
git init  / инициализира Github за текущата папка
touch book.txt / създава нов текстов файл (ако той не е съществувал досега)
отваряме в любимия си текстов редактор и променяме файла book.txt 
git status /казва ни някакви червени неща. КЪДЕ ПОПАДНАХ?
 показва ни кои файлове на нашия компютър се различават от версията си в Github


скрита папка, създадена от git init.  
Какво представлява и прави Git? Кодът, който пишем – а и всякакви типове файлове всъщност – имат няколко състояния. 

working copy  -> локалното копие, по което работим. То е на нашия компютър, и е незащитено – ако нещо лошо се случи на машината ни (*чука на дърво*), този код изчезва безследно. 

history -> История на всички съществували състояния на кодът ни, които сме избрали да запазим. Те са защитени (почти) вечно и можем при желание да се върнем към всяко от тях.


stage / stage area / index -> “чистилището” – мястото, където кодът пребивава между двете си състояния. Там подготвяме версията за запазване, преди да ги бутнем към сайта Github


 Команди в Git

git add book.txt        добавя в гит файла book.txt
git add .                     добавя всички файлове и папки в текущата директория
git add images           добавя цялата папка images
git status                   показва, че сме добавили нов файл, който предстои да commit-нем
git diff                        разлики между working copy и stage area
git diff –cached        разлики между stage area и history
git log                        история на commit-ите
ако променим book.txt и дадем git status – интересни неща. git diff – също.
git commit                 отваря текстов редактор по подразбиране, в който можете да въведете своето commit message и след това да го запазите. 
commit message е кратко описание на последните промени в текущата версия. Помага ви (след 1 месец)(или на друг, който чете кода ви) да видите какво сте променили с този commit.
git commit -m “initial commit”           
това след -m е задължително в кавички и е по-бърз начин да въведете commit message без да влизате в текстовия си редактор.
git log                Виждаме, кой, кога, под какво име какво е commit-нал. 
git log -p           Виждаме, кой, кога, КАКВО, под какво име какво е commit-нал. 

Как да setup-нем хранилище в Github?

 Дотук настройвахме нещата локално. Сега ще си направим хранилище на сайта и ще го свържем с нашето локално копие, за да можем лесно да запазваме промените и на двете места. -> create a new repository
Следваме инструкциите от push an existing repository:
В конзолата:
 git remote ни изписва всички съществуващи места, на които го има нашето хранилище.
Ако искате да премахнете хранилище, става така:
  git remote remove github 
и след това пращаме stage-натите промени в хранилището в Github с
 git push -u github master 
тук ако ви е дало rejected, трябва първо да си изтеглите хранилището и след това отново да push-нете
 git pull github master
 git push -u github master
Накрая един git status ви уверява, че всичко е протекло успешно.


Prevent hotlinking on your media files

Whenever you want to ban/prevent hotlinking your media files and protect your server’s resources and bandwidth you may use the following snippet in the .htaccess file of your main directory of your site.

Just replace YOURSITE.YOURDOMAIN with your site and at the fourth row of the actual code (don’t mind the # comment line) you can put whatever file extensions in the brackets () separated by | sign – (X|Y|Z).

How it works?

Well, it just tells the server to ban all third parties from accessing your data so only your site can display that info and that’s it.

PS: If you are a WordPress user and you don’t want to mess with any code this plugin is for you : )


Before sending a quote to a client

We need to ask ourselves the following questions in order to be sure how much we can get paid for the work and are we really willing to sell our time and expertize for the project:

  • What services am I providing?
  • How many hours do I think this will take me?
  • How much is this worth to the client, from a business perspective?
  • Does the client have money? How about a business plan?
  • Should I charge hourly or by project?
  • Is this a one off thing or is there potential for a long term relationship?
  • How busy am I? Do I need this job? Do I want it?
  • Do I respect the client and their cause?