My personal views, thoughts and opinions.

Sunday, July 03, 2016

Abacus: Enabling contribution

In the late 2015, together with my colleague Georgi Sabev, I started investigating how to generate application usage for Cloud Foundry applications. We needed metering and aggregation of that usage across the Cloud Foundry entities (application, space, organization).

We found the newly created CF-Abacus project to be a perfect fit to what we were looking for:
  • open source
  • part of the Cloud Foundry Foundation
  • running as a set of applications/micro-service
  • supported arbitrary usage 

Cloud Foundry applications

We soon found that although Abacus could handle a wide variety of measures, metrics and formulas, there was nothing in place that can get the applications state from Cloud Foundry and somehow translate it into usage. We had to create our own stuff to do the job.

We went on and started creating the cf-bridge - a component that should do 3 simple things:

Well the idea sounded simple enough. However for both me and Georgi this was the first clash with Node.js. And we both hated JavaScript. I always connected it with the endless struggle to get some code working equally well (or equally bad) on all browsers. And even on Internet Explorer 6.

We started poking around and copy-pasting stuff to get something working.

To our surprise the code in Abacus looked and read well (with the exception of variable names). So we quickly borrowed some code snippets and bundled them to form the scaffold of the the cf-bridge.

Now what? We needed to try it out. After some reading on how to do it, we finally managed to craft a set of commands. Started the app and got a lot of errors. First clash with jslint: "The JavaScript Code Quality Tool"Since there was no easy way around it we simply fixed our code to comply with the project settings.

Finally we had our app ... well not really working, but at least started. We previously worked on extending Diego. And Diego was a TDD project. So the idea of having a test before we continue further was not too far and did come quite easy. The Mocha test framework was also pretty familiar to us. Looked and behaved like Ginkgo or RSpec.

Time-based metrics

Since this is not the end of the blog you might expect we had some more troubles. Next obstacle we faced was the lack of good way to measure usage for Cloud Foundry applications. We could sample the usage, but we did not like this idea much.

Next thing we know if how we write to the Abacus team on Slack. After several long threads in which Jean-Sebastien Delfino tried to explain us how things work, he decided to rid us of our misery and proposed a special kind of metrics that could handle our use case - the "time-based metrics".

The Abacus team even created a sample plan to help us go forward and implement our bridge.

Contribution enablers

We managed to create a working resource provider for metering CF application memory - the cf-bridge. But that wouldn't be that easy (or even possible) without a few things that enabled us to contribute to Abacus:
  • clean project code   
Abacus is an open-source project. Having a clean code is pretty important for contributors. They have to be able to understand what's the intention of a snippet without additional documentation. Or at least without a detailed doc on the subject.
  • code quality tools
What kills your app, teaches you a thing or two. We didn't have much experience with JS and wrote code that looked like machine-translated from Java or Go. JSLint helped us get up to speed on JS syntax. Plus it puts the code conventions on a higher level (almost where golang is). Code quality tools are a must for a project that wants to enable as many contributors as possible.
  • ECMA 6
Abacus used some ECMA 6 features long before the official support in Node.js was available. Most of them are just a "syntax-sugar". But some made our life easier and our code cleaner. All these new and shiny features made us think that we might be wrong about JavaScript.
  • test tooling
Mocha is a great framework, but Abacus added lots more. We found out that the chai and sinon modules were automatically prepared for us. What's more we liked the code coverage reports generated on every test run to help us see what's left to be tested.
  • dev turnaround 
The dev process with Abacus is one of the easiest I've experienced. Partially because we used a dynamic language, partially because of Node.js and npm, but mostly because of the tooling around the project.
  • welcoming community
You may have the perfect tooling, but in the end you are working with people. And if these people are not welcoming, willing to help and encouraging your contribution, you cannot do much. No matter that it was obvious that we are not experienced in the matter, Abacus commiters provided tremendous help. Without them we would not be able to create the code and donate it to the project.
Bottom line
Both the tooling and the community helped us to do our job. Without them it would be pretty hard to contribute. Not really a surprise I guess.

But if you don't have one of them you'll need to somehow balance and stake a lot more on the other. For example bad or missing tooling can be compensated by a good community. But what about vice-versa?

Well sometimes you need to change your way of thinking as well. Then only a good community can help. As is the case with Cloud Foundry Dojo program.

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.

Google+ Followers