My personal views, thoughts and opinions.

Sunday, January 10, 2016

Unreadable PDF under Linux

I receive an email with a PDF document every week. Until I was using Windows everything was ok, but now that I'm happy Linux Mint user I found out that the content is unreadable.

I started my Windows VM only to find out that the PDF is unreadable under Chrome in exactly the same manner as under Firefox on Linux.

Then I noticed the "Open with" option and decided to give Adobe Reader a try. It was showing the content correctly. I had a look at the fonts used in the doc and found there "Verdana".

Then it all come into place. Microsoft fonts are licensed, so they are not included by default with Linux distros. 

I made a search and found out that there is a special package called "MS Core Fonts Installer". A search in Mint's Software Manager revealed the exact name and after two clicks, and my promise that I won't sell the Microsoft precious fonts for billions of dollars when everyone can download them for free, I got the files on my system.

A fast check and ... 50/50 result. I could open the PDF with Document Viewer, but Chrome & Firefox failed to show any meaningful data. Well fair enough. At least I can now check the content with an additional click.

Saturday, January 09, 2016

Canon Pixma B200 error

My Canon Pixma MP550 printer went out of ink. I bought new cartridges and the first thing I did when I got home was to try to change them.

I started the printer to check which cartridge was empty. I tried to get to the ink level menu, but the printer brought the B200 error calling for a real technicians and instructing me to unplug the power cord and leave him be.

I decided the error didn't matter, since I can change all the cartridges, as they happen to run out of ink simultaneously, and opened the service cover. Well, needless to say the printer simply showed B200 again as hesitant to bother with anything.

After a short search I came upon various videos on how to fix this. And one of the videos contained a comment with a great link to Tom's Hardware blog.

Inside I found the following steps on how to workaround the issue:
  1. Turn OFF Power
  2. Open the print head bay (as though you were about to change inks)
  3. Turn ON power
  4. Wait for print carriage to start moving to the left and let it go past half way
  5. Before print carriage reaches left hand side (but after going halfway across) shut the cover.
  6. Leave the Printer turned on
  7. Good to go.

Monday, September 07, 2015 and your home dd-wrt router

I installed Cloud Foundry on my old 8-core Linux box. Everything went fine to the point where I tried to access the installation. 

Targeting the API failed with "host not found". I tried to  dig but this failed.

The DNS settings on my machine came from my home router flashed with DD-WRT. I checked the DNS servers and found out that I'm using my Internet Provider's DNS servers. Blaming them I added Google's as a third address.

I restarted the router and the computer (just in case) but the problem persisted. Searching the net provided me with a clue that DD-WRT has a problem with external DNS providers. I went for a solution that would enable only to resolve host names, so I would have a good protection against attacks.

However it turned out that adding to DD-WRT's DNSMasq config caused the DD-WRT DNS to stop functioning.

In the end it turned out that DD-WRT for my router does not seem to work correctly with custom DNSMasq config and a lot of people also suggested that.

So I ended up setting No DNS Rebind to Disable in the Services menu of DD-WRT.

Tuesday, April 28, 2015

Diego's Docker Registry in Cloud Foundry

Into Cloud Foundry

In the middle of 2014 together with Georgi Sabev I started working on a new project inside SAP. We wanted to have Private Docker Registry in SAP HANA Cloud Platform (HCP). But priorities shifted and in the end of 2014 we adopted Cloud Foundry to enable us to add some new features in HCP.

Being part of the Cloud Foundry Foundation, SAP wanted to contribute back and in the same time eat its own dog food. So it was decided that we will learn the Pivotal way by participating the Cloud Foundry Dojo


The Dojo was extremely helpful. It allowed us to meet great people in Pivotal and in particular the guys working on Diego

If you want to know more about Diego you can check Onsi's last year talk on CF Summit. And if this is not enough go see the design notes.

New Project

Being 10 hours away from where the action is (875 Howard), we started implementing a new feature in Diego, aiming to:
  • guarantee that we fetch the same layers when the user scales an application up.
  • guarantee uptime (if the docker hub goes down we shall be able to start a new instance)
  • support private docker images (access to them require credentials)
The goals also include:
  • enabling the use of private docker images
  • highly available backends
  • effective image management

We decided to simply cache the docker images in Docker Registry.

Because by caching the images we can ensure:
  • consistent and faster scale-up
  • uptime without Docker Hub
  • support for private docker images

Private Docker Images

The caching really helps for supporting private images, although this is not obvious.

Normally we need credentials to access Docker Hub and pull the image on every scale-up request. This would mean storing credentials in DB or requiring them on every user request. That is insecure and inconvenient for the users, operators and developers.

We already have the image cached, so can we simply pass the credentials to Docker Hub on staging and then throw them away? Sure -  all subsequent scale up requests will not need access to the Hub in this way.


The MVP consists of two parts:
To try it locally you need to install CF, then Diego and finally Docker Registry. You may follow the short guide we provide, which will redirect you to Diego readme for CF and Diego installation.

You can check the registry readme on how to push & cache your docker image. The MVP0 requires you to opt-in for caching of your docking image. That's because we need your feedback about the feature, before we really make it productive in Diego.

If you are lazy like me and just want to see it in action, watch this full length (1:23) video.

The Docker Registry also provides small test suite to check if the registry works correctly.

CF Summit 2015

Georgi Sabev will present the Docker Registry on the CF Summit 2015. If you want to know more, to get in touch about a bug/feature or buy him a drink, please join the session.

Friday, April 17, 2015


Едно време. Ееех едно време. Пишех кратко и ясно. Не като сегашното разпъване на локуми. Та понеже исках да запиша спомените си докато са пресни, а и си спомних за Магията на пътуването на Бистра и Наце се реших на нещо подобно. Но реших да е кратко и ясно. Преди всичко кратко. Да видим ...

Зимата на 2014-та. 
Фейса подсказа, че Девин прави мюзикъл в Лондон. Ентусиазъм. Решение. Купени билети за Royal Albert Hall. Удобен полет? И евтин? Wizz.

Пролет 2015-та
Трябва и хотел. Скъпо. Лондон. Голям град. AirBNB? Двойно по-евтино. Става.

11-ти април 2015
Пътуване. Вечеря. Баня. Вече е 10:30. Стягаме багаж. Wizz! Само по раница.

12-ти април 2015

Ставаме за полета в 6:50. Такси. Аерогара. Свалям всичко метално. Тренирано. 

Гейт. И там тълпа. Wizz!! Чакаме и се тъпчем на гейта. 

Качихме се. И места намерихме. Мъж на "business trip" гони седналите до него с магическото "16 евро".

Няма места за всички. Заклинанието вече не действа. Излитаме.

Стюардесите си подвикват с помощта на уредбата. Целта е да няма заспали. Няма.

Лутън. Зайци бягат до самолета. Три се гонят около светлинните уредби. Слизаме на летището. ПЕШ!!! И ХОДИМ до гейта!?! И до изхода. Търсим препоръчана от Ася линия 757 Green Line. С WiFi. Питаме. Намираме спирката.

Автобуса има врата от грешната страна. И се движи в насрещното. Като всички останали по магистралата.

Край пътя има коне. И крави. И дървени сковани спирки. И зелена трева.

Виктория. Гара. Ремонт. Като преди 5 години. Разлика? Повече сгради наоколо.

Вземаме закуска от Pret-a-Manger. Готина. Не е English Breakfast.

Бъкингамския. Не е много впечатляващ. Но има парк за закуската. Има патици и 3 катерици стръвници. Гледат гладно. Имаме ядки в закуската. Даваме им. Все пак са с чипове и кралска собственост. Катя заявява че тук е сниман Мисия Лондон. Има патици все пак.

баш сутринта
Смяната на караула е от следващия месец. Прецакани. Но пък има Shaun the Sheep. На поляната. Снимаме се. Още патици и парк. И фонтани.

Тълпа туристи. Смяна на караула? Лъжци. Конна стража. Нищо, става. Полицай на кон хока зри... туристите де.

към 10
Минаваме през подлез и излизаме на малко площадче. Полицаи с автомати. Мъж и жена. Мацката гледа страшно като колегата си. Нещо издрънчава на паветата. Пълнител на автомат. На мацката. Бавно го взема и бързо го тъпче в автомата. Колегата и гледа странно. Много странно.

преди обяд
Даунинг №10. Уестминстърко абатство. Jewel Tower. 3.50 тежки пари за вход. Нищо за разглеждане. Не трябва да се прецаквам. Меря памук маскиран като кафе с гумени тежести. Излизаме.

Големия Бен. Снимаме 2-3 пъти и продължаваме към Лондонското око. 21 тежки пари за кръгче. Вземаме билети. Гледаме рекламно 4D клипче.  С очила сме. На моите има нещо лепкаво. Пръска ни вода и мигат китайски коледни лампи. Бразилски баби зад нас. Кикотят се като бъдат оцикани с вода.

С раниците сме. Пречат на опашката. Проверяват моята. Вътре има бельо и четка за зъби. Охраната ме пита от къде съм. България. Псувня на румънски. Пуска ме. Возим се. Бавно. Снимаме по 20 пъти на всяка посока. За да не сме прецакани. Слизаме. Търсим метро. Близо е. Ама не работи неделя.

Кулски мост
Пеш през пешеходен мост. Към метрото. Пак. До Tower bridge. Излизаме. Кули. Ама стъклени. И високи. Най-високи в Европа. И крепост. И кранове. Стигаме на моста. Има кула. После мост. И после по-голяма кула. И пак мост. Предлагат ни промоция. Харчиш 4 тежки пари в магазина и ти харизват 2 пари за вход. Отсвирваме ги. Гладни сме.

14:00 Пристан
До моста има готини улички. И пица. Ядем пица. Пия сицилианска лимонада. Плащаме 30 тежки пари.

15:00 половинка Кулски мост
Връщаме се. Да намерим апартамента. Настаняване от 15 до 16. Ама моста го вдигат. Има и ограда. Желязна. Като на дядо. Туристи. Снимат. И ние снимаме.

В апартамента. Не е зле. Има изглед към релси. Минават влакове. През 2 минути. В час пик и през 1.

Нямаме много багаж. Wizz!!! Отиваме за козметика. В гарата има Boots. Работи. Не като сутринта в 8. Купуваме ябълки и вода. Сблъскваме се със self-checkout. Не работят ако не оставиш покупките в торбичката. Псуваме.

Връщаме се. Изморени. 


13-ти април 2015


Закуска от Pret-a-Manger. Разходка за билети за Wicked. Театъра е близо. Но пред него спят бездомници. Щото е затворено. Решавам да покажа уличката с хотела от предишно посещение. От преди години. 5. Ще търсим и градинка за закуска.

Градинките са затворени. Ядем на пластмасова пейка. На спирка на автобус. Приближава дядо и ни предупреждава че в метрото е тотален хаос. Да не пътуваме с него. Не го слушаме и отиваме. Следващия влак е след 3 минути вместо след 1. По-следващия е след 5. Тръгваме към British Museum. На топло и безплатно.

В музея сме. Гледаме. Камъни. От Розета на 3 езика. Камъни от Египет. Каменни стени по 20 метра от Иран, Ирак, Персия и квото още е имало. Крадени с кораби. Има и камъни от други държави.

Мумии. На хора. На бебета. На малки бичета. Не като нашите от Краводер. Мумии в римски стил. Мумии в гръцки стил със стърчащи ц... гърди. Аве мумии.

За разнообразие отидохме в азиатската част. Разнообразно е. Самурайски мечове. Странни японски неща. Грънци от Корея и Китай. По пътя имаше и пропаганда от времето на Наполеоновите войни.

Писна ни. Търсим храна. Обядваме по един сандвич в музейното кафе. Оставяме 30 тежки пари. Пазаруваме в магазинчето на музея. Катапулти, мечове, детски книжки с египетски йероглифи и речник накрая.

Гледаме още. Камъни от Южна Америка. Ацтеки, маи и други ограбени. Ескимоси, индианци. Нефрит от Китай. Пак ни писна. Търсим изхода.

Излизаме. Трафалгар е близо. Отиваме. На него е набит на кол адмирал Нелсън. Стои отгоре и гледа лудницата на площада пред галерията. Йода във въздуха. Още един Йода. На земята. Танцуващ йндийско-британска чалга. Беличък магесник показва как след малко ща са фърли на бодлите. И са фърля. Продължаваме към кола на Нелсън. Няма място за сядане. Отиваме да се снимаме с Шон.

Я! Ма то парка на Бъкингамския е близо?! Пеш до парка. Сядаме в St.James на пейка. Гледат ни странно щото сме с по 2-3 фланели. Бритовете са по къси гащи, а някои и без тениски. От срам се разхвърлям. Ядем бисквити с маково семе.

Продължаваме към гарата Виктория. Сещаме се за билетите. Отиваме да си купим. Вземам гъзарски места за много тежки пари. Катя ме пита "Нямаше ли по-евтини?". Поглеждам сметката от 180 пари. Пак. Питам се същото. Оправдавам се. Миналия път съм гледал "Извратения" пак за толкова.

Долните ми израстъци дават фира. Плюски. Минаваме през гарата. Тъкмо. Купувам лепенки от Boots. Стигаме до апартамента. 

Душ. Обличане. Пачване на краката. Подготовка за концерта в Кралска Зала на Албърт.

Стигаме до станцията на тръбата. Излизаме и ходим бавно. Заради мен. Куцам. Подземно пешеходно тунелче. Изходи за музеи. И за музея с динозаврите. Излизаме. Чудим се къде е залата. Не се вижда. Продължаваме напред. След нас се мъкнат тълпи. Странни залюхани индивиди. Тъмно облекло. Ясно. Уцелили сме посоката. След нас си говорят . "Да следваме тия отпред. Сигурно знаят къде е залата". А дано ама надали.

Влизаме в залата. Качваме се до стаичетата на 2-рия етаж. Ложата ни е заключена. Отключват я и влитаме. Има 4 места. Стаиче. Предупреждават  да не затваряме. Ако излизаме.  Заключвала се сама. Чакаме. Началото е обявено за 19:30

Чакаме. Началото. Празно. Публиката щъка. Някъде.

Начало. Напълни се. Скучно ми е. Песните и групата са добри. Очаквам повече обаче. Кукли на Ziltoid. Изстрелвани с пневматични оръдия. Забавно.

Х часа
Антракт 25 минути. Според Девин - 25 мин време за тоалетна. "Good luck". На екраните волна програма. Зверски забавна. Хипопотам с ако. Badger Badger и Gummy Bear. С коментар на Ziltoid.

Втора част. Волна програма. Песни гласувани във Фейса. Различно. Не съм обръщал внимание. Поне на половината. Харесаха ми всички.



14-ти април 2015


Манджа от Pret-a-Manger. Пътуваме към Кулски мост. Ядем в градинката до метрото.

Мъкнем се. Щото куцукам. Стигаме до касите на Tower of London. 25 тежки пари за вход. На Катя и се струват много. Не влизаме. Ходим до моста. Там влизаме. Снимаме се на прозрачния под. Гледаме снимки и 4 минутни филмчета. Два броя.

Излизаме. Отиваме да видим парните машини.  Част са от моста. Виждаме ги.

Запътваме се към The Monument. Бил по случай пожара 1600 и някоя. Заобикаляме поне 3 строежа. Стигаме. Дирек със стълби вътре. Не ми се качва. Бойкотирам. Катя заплашва с катедралата в Барселона.

Достигаме Св.Павел. Влизаме. Искат пари. Даваме. Вземаме аудио гайд iPod. Слушаме. Зяпаме. Малко постно. Не е като при нас. Претупали украсите щото бързали. Да не похарчат много пари. Украсено е само към олтара. Проповед на всеки час. За 5 мин. Hallowed be thy name. Чаках Bruce. Dickinson.

Запътваме се към купола. Стотици стълби. 100 и нещо всъщност. Галерията на шепота. Родители шепнат на двете си момчета. Чува се от другия край. Около 50-60 метра. Песнопение на всеки половин час. Гледаме хористчетата отгоре. Продължаваме към външния купол. След като се позачудвам.

Вие ми се свят от стълбите. Стигаме горна площадка. Снимаме. Катя пак заплашва с катедрала. В Барселона.

Качвам се по вити стълби. С площадка на всеки 20. Стигаме най-отгоре. Няма място от тълпа тийн немчуги. Навикват ги да си ходят. Тръгват. Само 3-ма обаче.

Измъкваме се и слизаме.

Подземия. Крипта. Ама не е creepy. Паметници на велики бритове. Ресторант. Магазин. Тоалетна. Влизам. Мисля си че в момента им п... на катедралата. Вярно е. Излизам. Вече съм го правил на свещена земя. В криптата дори. Сещам се. На ден поне 500 човека я вършат тая работа.

Излизаме. Снимам Катя до Шон. Продължаваме по Мильениьум моста до другия бряг. Към Шекспир театър. Заглеждаме се в музея за модерно. Изкуство. Няма време.

Свиваме към Шекспировия театър. Работи до 17:00. Отсвирваме го. Заседяваме се малко край реката.

Търсим метро на южния бряг. Намираме го. Работи.

Купуваме вода и 4 ябълки. Има оригинален британски кепаБ.

Тръгваме за мюзикъла "Извратен".

Почва. Мадамите дето щъкат по сцената са същите. Главните героини също. Магьосника и той. Само принца май е друг. Не съм сигурен. Него не го заглеждах много.


15-ти април 2015

Ставаме. Изхвърляме четки, чехли, пасти, дезодоранти. Ръчен багаж. Wizz.
Стегнахме багажа. Заговаряме се със собственичката. Product Owner & Scrum master. Родена в San Francisco. Преместила се в Париж. После Лондон. Оставихме и багажа до вечерта. Целта постигната. Питам за магазин за играчки. Издаде.

На пазар. Oxford street

Няма играчки.

На ъгъла на Хайд парк сме. Влизаме и виждаме колелета. 2 лири наем, 30 минути безплатно и по 2 лири на полвин час. Има вело алеи за разходка. Чудесно. Вземаме по едно. Нали съм disabled.

Караме. По улиците край парка. Измама. Алеята свършва в нищото и миля по-натам се появява от нищото. Голяма измама. И карат от грешната страна. Щяха да ни сгазят. Поне 4 пъти.

Слизаме и отиваме към метрото. По пътя минаваме покрай посолствата на всички арабели. Има и готини. Мацки. Почти не са забулени. Търсим споменатия от хазяйката Hamleys. Слизаме на кръгчено на Пикадили. Озъртаме се. Търсим в Гугъл. Приклещени. До парапета на подлеза.

Продължаваме да се озъртаме. Гугълската карта на телефона още твърди че е през 6 квартала в 7-ми. Не вярвам на програмисти. Професионален навик.

Намираме го. 5 етажа. Китайски играчки.

Излизаме. Има още време. Отиваме на слънце. В Green park. Разхвърляни бритове се въргалят по тревата. Вземаме сладолед. Въргаляме се и ние. Бритки се събличат. Демонстративно. По бельо. Правят лицеви. С вирнато дупе.

Прибираме се пеш. През двореца. Там като маймуни в клетка маршируват гвардейци. Други маймуни ги снимат.

Куцукам към апартамента.

Апартамент. Сбогуване с хазяйка. Не била посетила само Прага и Будапеща. Мятаме раниците и потегляме.

Търсим спирка на автобуса. Купувам си още една тениска Mind The Gap. Намалена на 9 тежки пари.

Шофьора е от нашите. Балкански субект. НЕвежлив. НЕприветлив.

Шофьора е от нашите. Плюе през прозореца. Трие се във волана. Кокори се като види поразголена британка. Зяпа като е без бельо. С отворена уста. Слуша класическа музика.

Чакаме на тайна спирка. Пристигнали сме по-рано от разписанието.

На летището сме.

Полета има 50 минути закъснение. Wizz!!!

Ядем за последно в Pret-a-Manger. Обявяват гейта. Тичаме с останалите като хрътки. Wizz!!!!

На гейта сме. Паспортна проверка от английска кака. Получавам английска отметка. В зелено-жълто. На билета.

Чакаме самолета да дойде до гейта.

Чакаме пътниците да слязат от самолета. Wizz!!!!!

Вътре сме. Чакаме да заредят с гориво. Wizz!!!!!!

Летим. Стюард. "Ако закупите две бири ...". Получаваме кебапче?

София. Такси. 120 км/ч по околовръстното.

Вкъщи сме.

Tuesday, February 24, 2015

Free static web hosting with GitHub


My old hosting provider (GoDaddy) had a cheap, intuitive and powerful Website Builder interface I used to set-up a nice looking 4 page web site for a friend.

With this interface he managed to add content without asking a single question, although he has none of the technical skills usually involved with such task.

Actually the interface is still intuitive and quite powerful, but after the first year it is no longer cheap.


So I tried to find a replacement. I first tried some local web hosting companies, but the problem was that I had to configure my web server.

Then I took a look at Google Sites. The site offered free web-based editor. I was able to build a site for half an hour. Most of this time I spent trying to tweak the ugly templates.

After I gave up I decided to change the default host name with the domain I already had with GoDaddy. This took another 30 minutes, and neither CNAME, nor TXT validation actually worked. I guess I was quite impatient.


In the end I realized that I actually need a single page with 4 things on it and I can simply use a single HTML page for that. And probably a free hosting with several MB still exists out there.

Not quite true according to my google search for "static page hosting". Seems nobody really wanted to provide such static HTML hosting any more.

Then I remembered a talk I had with my colleague. We were wondering if we can blog directly on GitHub instead of using special blog sites (like this one). I decided to give it a try and came across this blog.

It described perfectly the pain I feel from the existing hosting solutions, plus 2 methods to host static web sites in Dropbox and GitHub.


Since I'm a developer I decided to try the GitHub way and came across this nice help guide on their site.

After 2 attempts I ended with a web site consisting of a single index.html and CNAME file describing the domain mapping I want to use.

Changing the DNS record in GoDaddy was taken in effect almost instantly (as with Google Sites by the way), and after 10 minutes I had a working site.

Picture Gallery

As a bonus I found out I can use to embed a nice looking gallery, instead of the monstrous widgets in Website Builder and InstantPage (both from GoDaddy) or the unsuccessful attempts to add a widget or iframe in Google sites.

Tuesday, August 05, 2014

Cloud Foundry on VirtualBox

There are a lot of ways to build and try Cloud Foundry, but the easiest (and most cost-effective) I found so far is to use the Nise Installer.

The installation process:
  1. Install VirtualBox 
  2. Download Ubuntu Server 10.04 LTS 64 bit
  3. Create a VM with at least 10GB disk and 4GB memory
  4. Leave the first network adapter NAT-ed (for internet access)
  5. Make a second adapter that is Host-only (for host OS access)
  6. Install Ubuntu Server
  7. Install curl
  8. Launch the script (as documented on the Nise Installer page)
  9. Restart the VM to get the new kernel in place 
If you are lazy go get the already created VM image from my Google Drive. 

To start the Cloud Foundry instance:
  1. Go to cf_nise_installer directory
  2. Launch CF with ./scripts/ 
You may need to relaunch the script or stop/start again in case some of the components failed.

To access the Cloud Foundry instance:
  1. Get the IP of the VirtualBox Host-Only Ethernet Adapter with ipconfig /all or ifconfig -a
  2. Add a route from to the IP of the VirtualBox Host-Only Ethernet Adapter. 

    For example in Windows that would be:  
    route add  

    , where is the IP of the Host-Only adapter.

  3. Install CF CLI on your client machine
  4. Login to the CF instance using the login command provided at the end of the start via
    the ./scripts/ script

To create organization and space you can use:
cf create-org me
cf target -o me
cf create-space development
cf target -s development

You are ready to push an app and have fun.

Google+ Followers