Sunday, February 10, 2019

Russian cuisine recipes

Borsch (Борщ)

  • 3 short beef ribs
  • 3 potatoes
  • 1 head of cabbage
  • 1 big carrot
  • 1 medium beet
  • 1 can of peeled tomatoes
  • Spices: bay leaves, thyme, coriander, pepper mix, salt, garlic
  • Greens: optional - dill, cilantro, parsley
Result: 4.5 - 5 liters
  1. Beef broth. 3 short beef ribs (or some other meet with bones and fat - tails for example). Put in pan and add 2-2.5 liters of cold water. Put on maximum heat and carefully let it get to boiling point. When it starts to boil - reduce heat to medium and remove float. Keep it on the stove on low heat for 1.5-2 hours. Check meat - it should easily detach from bones and be soft. When it is almost ready - add spices: bay leaves, coriander seeds, thyme seeds, pepper mix, salt. 10 minutes later - turn off, take meat out, filter broth into bigger pan - it should be at least twice the size of filtered broth.
  2. Actual borsch. 3 potatoes - peel and cut any style, just make sure it's not too thin, pieces should be around 0.8cm thick. Make sure broth is hot, but not boiling and put potatoes in. While potatoes are cooking - prepare cabbage. You'll need half or 3/4 of cabbage head sliced. It should take you around 5 minutes to slice cabbage, and as soon as you're done - put it in. 1 big carrot and 1 medium beet - peel and grate. Put in when done. Canned peeled tomatoes (Kirkland signature brand, for example) 1 can - dice tomatoes in 0.5cm wide blocks, and pour all juice in pan. Let it cook for 3-5 minutes, check potatoes and cabbage - they should be soft, not crunchy. While waiting prepare meat - clean it from bones, skin and dice it into 0.5cm blocks. When borsch is done - add diced meat and some greens if you want - dill, cilantro and whatnot. Garlic, smashed or diced into very small pieces, is also a good idea.
  3. Now borsch is done and just needs final check - taste it for sweetness. If carrot and beet were sweet - you probably want to add lemon juice, add one tea spoon and check again. Also check for salt while at it.

Cutlets with mashed potatoes (Котлеты с картошкой)

  • Mashed  potatoes
    • 10-12 potatoes
    • 5 teaspoons of butter
    • salt
  • Cutlets
    • 1 pound ground beef
    • Medium onion
    • 1.5 Cup of milk
    • 1/3 baguette (or equivalent amount of any white bread)
    • Spices: salt, pepper mix, oregano, marjoram, ground coriander, optional dried dill and parsley
Result: 4-5 servings.

  1. 2.5 potatoes per person - peel, cut into half-an-egg sized pieces, put into empty pan. Fill pan with boiling water and put on max heat. It will try to overflow when starts to boil so keep an eye on it and better not cover. When starts boiling - remove float, add salt and just a bit of olive oil. Reduce heat to low and cover pan. Give it 15 minutes and start checking - potato should be soft, with no crunchy spots. Pour all the water from pan into some mug or small pan. Add unsalted butter - a teaspoon per person. Mash potatoes adding potato water until it reaches correct softness - it is up to you, but usually you'll need between half and 3/4 of potato water.
  2. Take milk, warm it up to room temperature and pour into deep plate. Take bread, 1/3 of baguette or any other white bread, soak it in milk until soft, then squeeze it lightly and put into mixing bowl. If you kept crust - you probably want to put them in grinder or food processor first. Take ground beef, one pound, and add it into mixing bowl. Medium onion - peel, cut and ground it - in any food processor or meat grinder. Add spices: salt, pepper mix, ground coriander, oregano, marjoram, optional dried dill and parsley. Mix everything, using hands - treat it like dough. Make small balls, a bit bigger than an egg. Put frying pan on stove, max heat, take another plate and pour flour into it. When pan is hot - pour oil on it, take meat ball, roll it in flour, flatten it and put onto the pan. When pan is filled - keep an eye on cutlets, as soon as one side becomes brown - flip them and reduce heat to medium. Then let them fry for about 5 minutes and flip them again. Reduce heat to low and cover pan. 5 minutes later they should be ready - pick cutlet that you put the last and cut it in half - there should be no pink meat inside.

Herring under fur coat (Селедка под шубой)
  • Mayo
    • 2 yolks
    • 3 teaspoons of lemon juice
    • 3 teaspoons of vinegar
    • 2 teaspoons of water
    • 2 teaspoons of mustard
    • 1 teaspoon of salt
    • pepper
    • 2 cups of oil
  • Herring salad
    • Pickled herring, 500 grams. Maties brand available in Costco
    • 1 big onion
    • 5 eggs
    • 5 medium potatoes
    • 4 medium carrots
    • 2 big beets
    • 1 apple
    • Mayo - 2 cups.
Result: 25x25x6 cm

  1. Mayo. Put only yolks - no whites in mixing bowl. Bowl should be big enough - 3 liters or something like that. put everything else, except for oil. Mix it a bit - at least make sure yolks are broken and already mixed with vinegar. Then, put mixer on medium speed, tilt bowl to the mixer blades and start pouring oil - very slowly at first and pour oil right on mixer blades. Make sure you do not leave any oil pockets. When one cup will be in it should start to thicken - increase mixer speed and increase speed of pouring. Just make sure your mayo is thoroughly mixed. If it will get too thick - pour on more teaspoon of water in and mix some more. Use it fast, its shelf live is ~3 days.
  2. Herring salad must be finished 24 hours in advance - it needs a day to properly soak in mayo and become soft and creamy. First, boil veggies - potatoes, carrots and beets. They need different time to cook, so you can either boil them separately or you'll need to take carrots earlier out of the water. It is tricky, but since you are going to grate them afterwards, you need to stop cooking them when they loose crunchiness, but are not too soft yet. In any case, after veggies are cooked - put them in cold water until they are actually cold, or at least room temperature. Boil eggs, around 7 minutes - they should be hard boiled, but without blue color on yolks. Now grate everything, except onion, into separate bowls. Including apple - peel it first, remove heart and grate as well.
  3. Now take a deep dish, deep enough to hold all 7 layers - at least 2 inches. First layer - onion. You need to peel it and dice it into very small pieces. Put it into strainer and pour hot water over. Let it cool down and put into deep dish as first layer. Next - herring, take it out of oil and let it drain. Cut it into small pieces as well and put it as a second layer. Grated apple is third layer. Fourth layer is doubled - put half of potatoes and smear it with mayo and just a bit of salt and pepper. Then repeat - including mayo, salt and pepper! Fifth layer - grated eggs. Sixth layer - grated carrots, smear it with mayo and add a bit of salt and pepper. Seventh layer - grated beet, cover it with rest of the mayo. For each layer - twice for potato, carrots and beets you repeat the same process - carefully spread ~ 1/4 of prepared mayo on top of freshly layered vegetables. And since we boiled them without salt - we add some now. Just keep in mind that herring is very salty.
  4. Now cover salad with plastic wrap and put it in the fridge for 24 hours. 

Spring salad (Весенний салат)
  • Campari tomatoes - 8-10 tomatoes
  • Persian cucumbers - 1 pack
  • Half of medium onion
  • Olive oil, salt
  • Optional fresh dill
Result: 2-3 servings
  1. Cut tomatoes into quarters, cut cucumbers into half rings, slice onion into thin half ring pieces. Put it all in one bowl, add oil, 3 table spoons, salt, 0.5-1 teaspoon. Optionally dill. Mix everything. Let it rest for few minutes.

Crepes with caviar (Блины с икрой)
  • 3 eggs
  • 0.7 liters of milk, 0.3 liter of water
  • 2 cups + 4 table spoons of flour
  • 6 teaspoons of sugar
  • 2 teaspoons of salt
  • 2 teaspoons of baking soda
  • 4 teaspoons of melted butter
  1. Take big bowl, 2-3 liters big, put in 3 eggs, 0.5 liter of milk, 0.3 liter of water, sugar, salt, soda and melted butter. Mix it all a bit. Then start adding flour, add two cups, table spoon at a time. Make sure that flour is properly mixed in before adding next spoon. If your dough becomes too thick - add remaining milk. At the end you should used all your milk and water, added 2 cups of flour and your dough is very watery. Now add few more table spoons of flour - be careful, it is the moment when crepes dough turns into pancake dough. Crepe dough is watery, just a little bit thicker than good milk or half-and-half.
  2. Next you need to fry them. Put frying pan on the stove, wait until it is burning hot, set heat to medium high (7 out of 10). Pick pan from the stove, take ladle, and pour dough on the frying pan - ideally, you should pour dough in one place on a pan and just rotating and tilting the pan make it evenly spread. If you can't do it - no problem, start with rotating and tilting pan so that dough spreads out and pour more dough using ladle only to cover holes. Try to use as little dough as possible - worst case, your crepe will be small or with holes, but if you pour too much - it will become big pancake. In few seconds after you finished pouring dough - you will need to flip your crepe. Take plastic / silicon / wooden spatula and carefully move it around the crepe not deep, just to make sure that edges are not stuck. Then flip your crepe. Give it 20 seconds to fry from other side. Carefully lift one side of it to make sure that it is ready and move it to plate. If it is too pale - leave it for another 10-15 seconds and repeat. When crepe is on the plate - you need immediately cover it with thin layer of butter - just take a butter bar and slide it over. Also, it is a good idea to cover crepes to keep'em warm and soft.
  3. Caviar - we prefer Awers Inc in Bellevue. Pick any red caviar with reasonable price.

Sunday, January 15, 2012

OAuth2 provider instruction

I've decided to implement OAuth2 support in my web-site. Since my application is written in perl (based on Catalyst framework) I came to CPAN:
  • Found CatalystX::OAuth2::Provider, but it is too straightforward for my needs. And, looking through code, it seems to me not working at all.
  • There is a OAuth2::Lite, but marked as "beta", and not recommended for production use.
  • There is a Net::OAuth2 module, but it is a client only. 

So, I've decided that it'll be better to write my own implementation - just for my needs. And gone looking for samples / instructions.

I've start with reading oauth2 site -  not much, really, except for the link to RFC. Searching internet reveals some more articles, mostly about theory and some thoughts, and some server implementations. But... nothing like simple samples of realisation, or some code stub. Of course I can read other servers' code, but it is a bit annoying to decipher unknown web-framework written in not very familiar language. And so, I've read throughout RFC and made my own TODO list of what must be implemented in OAuth2 provider server.

My list is not universal, it is aimed to solve my particular situation. Also, when RFC allows different approaches I choose one, that suits me best.

Pre-register clients. Client registration includes:
  • client_id
  • password
  • uri, where user must be redirected to after access granted
  • logo, description
  • allowed scopes to request access to

authorize endpoint (/oauth/authorize)
  • Validate request:
    • find client by 'client_id' param - if not - show error page 'unauthorized_client' to user
    • if 'redirect_uri' param is present - check that it matches registered client pattern - if not - show error page to user - no redirect!
    • 'response_type' param == 'code' - if not - error = 'unsupported_response_type'
    • check that all substrings in 'scope' param are allowed for this client - if not - error = 'invalid_scope'
    • if 'state' param is present - save it in session
  • Authenticate user. Either get authentication information if already logged in, either provide ability to log in.
  • Show grants page with full description of grant request: client name, description, logo and list scopes.
  • If access not granted - redirect back with error = 'access_denied'.
  • If granted:
    • generate unique code string
    • store code with user_id, client_id, scopes, timestamp. If redirect_uri was in request - store it too.
    • form redirect url: redirect_uri from request OR client uri from registration, if 'state' was in request - add it, add list of scopes.

token endoint (/oauth/token)
  • Authenticate client (HTTP Basic) - get client_id, if not - error = 'invalid_client'
  • Check that 'grant_type' param == 'authorization_code', if not - error = 'unsupported_grant_type'
  • Find 'code' param value in DB. Check that client_id stored with code == client_id from authentication.
  • Ensure that code is not expired - stored timestamp > current timestamp - 60.
  • If 'redirect_uri' param is present in request - ensure that it is the same as stored with the code. If any of last three wrong - error = 'invalid_grant'
  • Create unique access token string, store it in DB (with client_id, user_id, timestamp, scopes).
  • Add headers to respond: Cache-Control: no-store and Pragma: no-cache
  • Respond with json {"access_token": token string, "token_type": "Bearer"}

Protected resource
And now, when you want to check that request is authorized to get information that belongs to user with 'user_id' and falls under scope 's1' you must:
  • check that 'Authorization' header is present
  • That it contains scheme "Bearer"
  • Decode base64 string, find access token in DB
  • Ensure, that this token allow access to user_id and scopes string contains 's1'

Few more words:
I assume that site supports some kind of per-user sessions.
Scope string is space-delimited list of any substrings, that could identify your site's sections or grants or any other kind of access restrictions.
'error' means that request must be redirected to redirection uri with param 'error'.
How to generate unique code and token strings is beyond this article, I think everyone has their favourite method.

Further reading:
I really think that it is very useful to read RFC -
And also RFC for Bearer scheme -
If now you want to add support for other flows - it'll be much easier.

It is not still implemented, just work-in-progress. I hope that I didn't make too much mistakes. Comments, advices and criticism are appreciated.

Sunday, October 16, 2011

Мысль дня

"Не дай бог этому демосу дать какую-нибуть кратию!" (c) моя жена.

Sunday, August 21, 2011

Куала-Лумпур - Самуи

Обратная дорога оказалась попроще. За несколько дней до отъезда мы дошли пешком до Puduraya, взяли билеты на автобус до ХатЯй. Выбрали 22 часовой, оказалось это бизнес-класс, но мы решили что 10 рингит с человека за бизнес-класс мы можем себе позволить.
В день отъезда пришли туда же, долго искали платформу 19 от которой должен отходить наш автобус - оказалось она совмещенная с 18, и номер 18 написан с одной стороны, а 19 - с другой.
Впрочем, спустившись по эскалатору к автобусу мы выяснили, что на самом деле он отходит от 17 платформы - вот такое вот местное развлечение.
Ну это все мелочи - внутри автобуса большие кресла, у каждого свой пульт управления наклоном спинки и подъемом подставки для ног из двух частей, которые оч-чень медленно и неторопливо двигаются. Есть экранчик со своим пультом, выбор из чуть-чуть мультиков, фильмов, игр и музыки. При этом работают эти экранчики через один, а через два работают пульты.
В общем, все вроде хорошо. Колоритный водитель с напрочь сорванным голосом всех пересчитал, раздал пледы и мы поехали... до выезда с вокзала, где и заглохли на подъеме. Попыток через несколько мы конечно его преодолели, но начало не обнадежило.
Дальше все шло хорошо - едем, остановки на туалеты, граница одна, граница вторая, ХатЯй. Высадили нас у очередной маленькой конторы по перевозкам. В где-то 7 по тайскому времени. А в 8:30 был микроавтобус на Самуи.

Успели немного походить по ХатЯй - есть свои особенности... Например, повсюду торгуют орехами и сухофруктами в огромных упаковках... В какой-то мелкой едальне даже кофе нашелся...

Микроавтобус нас довез до ДонСака, хоть и с тайскими же остановками на трассе, заездами в деревени отдать посылку и т. п., но в меньших количествах, чем по пути туда. В результате мы плыли на 17 часовом пароме, и в 19 были дома.
Когда паром пришел - нас опять погрузили в микроавтобус, провезли до конца пирса - метров 200 - и высадили уже окончательно.


Отель, в котором мы остановились называется Bintang Warisang. Очень приличный отель оказался за свою цену. И расположен хорошо, и интернет есть - wi-fi в лобби и ресторане и проводной в номерах, и сантехника не только под азию - в душе есть даже бортик, чтоб вода не выливалась. В общем мы очень довольны. Единственный недостаток - очень уж скудные завтраки.
По приезде, а оказались мы в отеле без чего-то 7 утра, нам подтвердили номер, но сказали что свободен будет к полудню... "ну, может к 11 - подходите, вдруг. Но вообще-то заселение в 14". Мы оставили пакет с вещами и пошли бродить... Набродились по 4 кафешкам - после Тая был такой восторг от повсеместного запаха кофе, что удержаться было просто нереально. Получили первую дозу впечатлений и к половине 12 вернулись в отель, где успешно заселились, проверили интернет и упали спать.
Основные впечатления от города так и остались потом - эдакий вавилон. Самые разные расы и национальности ходят по улицам, общаются и незаметно, чтобы кого-то напрягало присутствие не таких как он. Видимо совсем расисты в Куалу не ездят, а на остальных сильно давит большое количество других.
Дальнейшие дни с утра были заполнены беготней по разным делам, и последующей работой до ночи для меня, или походами по местным аквариумам/музеям для семьи.
В один день у нас получилось сильно разнообразить свою меню. Позавтракали малайской кухней, пообедали японской и поужинали пакистанской. В японском ресторане попробовали суши, которые внешне скорее на пирожные похожи - с каким-то украшением, кремом, соусом, в оболочке из чего-то типа суфле... очень вкусно в общем. Пакистанская кухня тоже вполне вкусная, хотя практически вся острая. Но сам ресторан поразил больше - это ресторан, там есть "буфет" - плати 25 рингит и ешь сколько влезет, или можешь заказать, если знаешь что. Однако народ себя ведет как в столовой - помещение тесное, столики понатыканы, и народ спокойно подсаживается где свободный стул найдет. Зазывала там очень уговаривал зайти, да мы собственно и сами хотели попробовать, но таки решились, когда он начал "Я вам сейчас все расскажу. Вот тут - берете рис, а потом набираете что хотите. Вот это - курица", показывая на какие-то странные колбаски, явно ручного производства, "Вот это - креветки", тыкая в какое-то жуткого вида красное месиво и так далее. Когда уходили он тоже очень интересовался понравилось нам или нет - заверили, что понравилось. Но мы были единственными белыми, видимо все-таки редко кто рискует.
Про такси надо еще сказать - оно очень разное. От старых скрипучих драндулетов до представительского класса. При этом и стоят они по разному. Особенно отличается цена если без счетчика договариваться. А еще есть таксисты, которые ездят и подбирают - они более склонны к разумным ценам или счетчкам, а есть те, которые стоят рядом с отелями и ждут - у них в 2-3 раза дороже.
Отдельно надо рассказать про улицу китайских едален - Джалан Алор. Она идет параллельно Букит Бинтанг, т.е. от нас до начала улицы было минуты 2 пешком.  Как-то так получилось, что мы до нее добрались только в предпоследний день, хотя и знали что она есть, и что там дешево кормят и вообще. Наконец, решили попробовать поужинать там. Улица начинается переполненным китайским рестораном, вполне прилично выглядящим... Но мы посмотрели - мест практически нет, официанты загнанные - т.е. обслуживать будут долго, да и мы искали не дорогой ресторан, а дешевую едальню. Пошли дальше - одна за другой понатыканы кафешки, столики вынесены на улицу, в основном потому, что собственно помещение - это кухня, и место для столиков есть только на улице. На сто метров - 5 кафешек и 10 зазывал. Очень утомительно отмахиваться от них, и главное, пока они пристают толком не поймешь - стоит здесь садится или нет. В результате, приземлились за столик в едальне, где кто-то уже что-то ел, и по виду нормально приготовленное, и не было слишком много народу.
Когда нам принесли заказ, тут-то мы и поняли, что китайская кухня к которой мы привыкли, и китайская кухня для китайцев - две огромные разницы. Мясо, которое нам принесли - очень вкусное и интересное, какая-то слегка тушеная говядина в сладком имбирно-кунжутном соусе с зеленым луком и свежим огурцом. А вот лапша, точнее две разные лапши, оказались с трудом съедобными. А еще у них были ван-тоны, которые мы знаем как пельмени, слегка обжаренные в кипящем масле... Заказали сразу большую порцию - 16 штук. Оказалось, что "слегка" обжаривать равно как и следить, чтобы начинки было намного больше чем теста, умеют только в ресторанах, а тут это выглядит как кусок теста, в котором, скорее по запаху, угадывается наличие начинки, зажаренного в масле до состояния сухаря.
Но больше всего нас поразил чай. Ведь для нас "китайский чай" - это синоним хорошего и вкусного напитка. А тут - китайцы сами заваривают свой чай... должно же быть еще лучше, да? Правда цена у него странная - 80 копеек за стакан... Но может это за маленькую пиалу, подумали мы... В результате - принесли нам три пивные кружки с чем-то чайного цвета, на вкус больше всего напоминающее заваренный пару часов назад веник... Вот так мы выяснили, что простые китайцы пьют кошмарный чай, а то что мы знаем под названием "китайский чай" - это сплошь дорогие сорта. Но по деньгам оказалось, что есть там раза в 3-4 экономнее, чем даже в дешевых ресторанах на Букит Бинтанг.

Saturday, July 9, 2011

Самуи - Куала Лумпур

Поехали мы в Куала Лумпур делать себе визы. За визами можно было бы и поближе смотаться, конечно, но это же скучно - два дня в Пенанге, да без инета... Так что решили поехать на неделю в Куалу, спокойно сделать визы и поработать / походить по паркам - кому что.

Долго выбирали как туда добираться. Самолет отвергли за его стоимость. Почитав про автобус+поезд решили что не хотим рисковать и суетиться - автобус до Хат Яй приходит с разбросом в 2 часа, можно приехать за час до поезда, или через час после его ухода. Остановились в результате на автобусах.

Пошли в турагенство, взяли joint ticket до Куалы - нам сказали что сначала будет микроавтобус, потом большой автобус. Ну да, мы так и читали - микроавтобус до Хат Яй, потом пересадка на большой малайский автобус до Куала Лумпур. Вроде все хорошо.

С утра вышли на дорогу, где нас должны были подобрать. Нас уже ждали - мы были первые в списке пассажиров, так что даже ждать не пришлось. Сели, поехали подбирать остальных. Объехали весь остров, приехали наконец к въезду на пирс. Там нас высадили, выдали билеты на большой автобус и посадили в него. Присмотревшись, обнаружили что автобус идет до Сураттани. Через минут 20 ожидания, автобус медленно поехал к соседнему причалу, где нас опять высадили и мы перешли на паром.

Паром нам знаком по визаранам, так что ничего нового не увидели. Не считая того, что он почти полностью был занят толпой явно знакомых между собой людей, которые были явно нарядно одеты, а многие еще и ритуально раскрашены. Так мы и не поняли кто это и зачем они так выглядят, и в очередной раз почувствовали что ничего-то мы об этой стране не знаем.

Приплыли в Донсак, выгрузились с парома и сели обратно в свой автобус. Едем-едем, местами спим, местами глазеем... Внезапно автобус останавливается прямо на дороге, заходит какой-то мужик и говорит "КуалалампА. гоу" - типа, кому до Куала Лумпура - на выход. Ну мы вышли в полном недоумении - а это оказывается  ненавязчивый тайский сервис автобусных перевозок такой. Этот самый мужик повел нас через дорогу и во дворы, привел к закрытому на решетку помещению и радостно сообщил "файмину". Чего произойдет через 5 минут - непонятно, но ждем. А пока он жестами показал "пописать" и потыкал в ближайшие кусты.

Через 5 минут приехали люди на байках, открыли решетку, за которой оказалось местное автобусное агенство, вместе с кафе. Нам предложили поесть, попить, туалет - все за двойную цену, и выдали очередные ваучеры, на сей раз "Хат Яй - Куала Лумпур", плюс наклейки с буквами KL - чтобы нас не забыли выгрузить где надо.

Через еще почти час ожидания, приехал наконец микроавтобус, забрал нас и мы поехали... Ехали долго и сложно - два часа крутились по городу, подбирая людей, мешочки, пакетики и авоськи. Потом выехали из города и стали развозить эти мешочки по окрестным деревням - сначала в одну сторону по трассе, попутно еще кого-то подобрав, потом в другую, заодно заехав в университет и забрав там человека, и только потом поехали в Хат Яй... Пол-дороги еще и выслушивали местную попсу на большой громкости, а попытка попросить водителя сделать потише ни к чему бы не привела, если бы подобранная в университете женщина не перевела ему, добрая душа - вот что значит образование :). Правда потом мы подобрали пожилую даму, которая села на последний ряд - и водитель выключил задние колонки совсем. По пути остановились на заправку и встряли в очередь, ждали еще полчаса тут. На подъездах к городу опять начали кружить и развозить передачи. И как и раньше - внезапно остановились и уже привычно пошли за мужиком сказавшим "КуалалампА". Дошли до очередного автобусного агенства, обменяли выданные нам ваучеры на билеты, заполнили иммиграционные карточки, показали паспорта и стали ждать, вроде бы через полчаса должен был быть автобус...

Пока ждали немного осмотрелись. Город более цивилизованный чем даже Сураттани - дома больше, дороги более загружены, больше рекламы, в том числе мировых брендов. Приятно удивило количество людей, говорящих по телефонам с видеосвязью - все-таки в Хат Яй с мобильной связью все в порядке. А потом начали искать что бы поесть. Какая-то едальня рядом была - но сколько времени они готовят непонятно, и есть ли там неострая еда - тоже неясно. А совсем рядом с нами готовили какие-то лепешки с картошкой. В общем - взяли мы этих лепешек с собой в дорогу. Потом мы решили что это была пакистанская кафешка. И лепешки оказались вкусные, хотя там и было напихано порядком чили - но если его вынуть, то съедобно даже для детей.

Автобус, ясное дело опоздал - приехал на полчаса позже и еще полчаса грузился, менял водителей и все такое. Затем нам выдали воду на каждого, обдали ледяным воздухом из кондиционера и мы поехали. Пришлось спешно укутываться - хорошо, что мы не забыли взять с собой теплые куртки. Ночь прошла уже спокойнее - ехали, глазели в окна, каждые часа два останавливались... Часа через 3 нас разбудили - приехали на границу. Прошли без проблем - единственное, надо было все вещи из автобуса забрать чтобы их рентгеном просветили. И да - малайская граница от тайской находится в паре сотен метров, которые проезжают на автобусе.

Уселись обратно в автобус и поехали дальше. Ехали, спали, пытались читать вывески - малайская письменность основана на латинском алфавите, так что нет проблемы прочитать... Единственная неприятность - на очередной стоянке пошли в туалет, а там денег хотят - местных. Всего-то 30 копеек (примерно 3 рубля), но их нет... Ужасное ощущение - с собой деньги в 4 разных валютах + карточки, а вот заплатить за вход не могу... Спасибо, добрая женщина - наша попутчица, услышав в моем высказывании, на чистом русском между прочим, знакомое слово "рингит" - так называется малайская валюта - заплатила за нашего ребенка. Доехав до города опять начали кружить - то в одном месте дорога перекрыта, то в другом менты поток поворачивают, то еще чего... Потом оказалось что у них в этот день проходил очередной ежегодный марафон в поддержку чего-то там типа мира во всем мире...

В результате мы остановились на какой-то улочке и нам сказали выходить - на вопрос "а где вокзал-то?", сказали "КуалалампА!" и потыкали пальцем в землю. Типа довезли до города, а про вокзал речи не было... Это стало неприятной неожиданностью - мы как-то рассчитывали, что приедем на вокзал, где есть банкоматы, карты города и кафешки с wifi... Пришлось вспомнить, что мы когда-то были простыми путешественниками, и вообще умеем выбираться из незнакомых мест...

Огляделись, вспомнили, что мы знаем о городе - к счастью, мы несколько дней изучали карту Куалы, так что не совсем невежественные были... Высадили нас на окраине Чайнатауна. Так что мы поимели возможность прогуляться по настоящему чайнатауну со всеми его прелестями. В такой ранний час - 6 утра - вовсю работали палатки с едой и цветочные магазинчики. При этом они недавно открылись - о чем свидетельствовал мокрый тротуар. Перед открытием они моют свою территорию, по методу авгиевых конюшен - налить воды побольше, и пусть оно куда-нибудь стечет. Оно и стекает - и результат на улице такой же, как после тех же конюшен. Прогулка превращается в квест - найди сухое, или хотя бы не сильно грязное место, чтобы ногу поставить.

Пройдясь таким образом, заметили вывеску 7/11 - это сеть круглосуточных минимаркетов, распространена по всей Азии. В них обычно есть банкомат, ну и всякие булки, вода и прочее. Зашли, банкомат и правда есть - но не работает. Парень за стойкой утверждал, что заработает через 10 минут - вот равно в 6 и заработает. Ну что ж - подождали, заходим в 6 - "Работает?", "Нет, пока нет"... Другой парень выскочил и говорит, а вот там же банк есть и потыкал пальцем в скопление палаточек "На углу. Банк.". Ну ладно, на углу так на углу... Где он только угол этот? Разглядеть здание уже проблема - оно облеплено палаточками с едой, цветами и еще бохзнаетчем, при этом на втором этаже еще и плакаты висят с рекламой этой самой еды, цветов и прочего... Нырнули мы в это скопление, прошли его насквозь - и действительно, там оказался банк и даже, ура-ура, банкомат работал. Правда выдавал он только купюры по 50 рингит, но это мы решили вернувшись в 7/11 и купив пару булок.

Тут мы вздохнули свободнее и уже спокойно пошли к большой улице, где поймали такси, которое за вполне разумную цену в 10 рингит довезло нас до отеля.

В итоге ощущали себя какой-то челночной сумкой, которую наконец-то доставили до места, и даже не сильно помяли в дороге.

Monday, June 13, 2011

Путешествие на Тао

Выпавшие три дня выходных решили, наконец-то, провести не отсыпаясь в доме, а съездив куда-нибудь. Выбрали соседний остров Тао, говорят там замечательные умиротворяющие виды и все такое. Решили по такому поводу даже оставить дома почти всю технику, чтоб даже соблазна не было.

Поплыли на Тао на утреннем пароме, проспали почти всю дорогу. Приплыли, кого-то попросили найти нам лодку-такси и доплыли до пляжа Sai Thong, куда собирались. Пока грузились в лодку вымокли по ... , ну почти по пояс, короче.
Прошлись по пляжу, посмотрели одно жилье, прошли чуть дальше, нашли Char Bungalow, и там и поселились. Бунгало забавно размещены - остров и так гористый, а тут прямо на скале расположены домики-голубятни. Сняли домик, правда сначала пришлось объяснять что нам надо две кровати, потом выяснять какой же дом свободен, и все это как-то неторопливо, с постоянным брожением по территории - отвели в один, ах, вам надо две, отвели в другой, но он будет свободен через полчаса, а сколько стоит, а это надо с мамой обсуждать, дошли до мамы, обсудили, отвели в третий. В общем, заодно по скалам попрыгали и территорию посмотрели - пальмы, танжерины, обломки скал, цветы... И собаки, гады, абсолютно невоспитанные, лают и бросаются на все, что движется, и вообще жить мешают.

Вроде заселились, обнаружили присутствие большого геккона в ванной, зато отсутствие воды и ключа. Пошли интересоваться, это нормально или как. Воду сказали сейчас включат, а про ключ сказали что-то типа "Вы когда уходить будете, скажите нам, мы присмотрим.". Мило. Ну да ладно, все ценное переложили в маленький рюкзачок, и решили оставшиеся шмотки таки доверить им.
Пару часов поспали, воды так и не было. Пошли еще раз, спросили где вода. На этот раз сработало, и заветный вентиль таки открыли. Счастье-счастье, радость-радость.

Пообедали тут же. Цены, конечно, несколько удивили, дорого для такого места, но списали это на сложность доставки многих продуктов. Зато готовят неплохо... хотя и не все - привычный pad thai здесь, а похоже и на всем острове, готовят не так, как на Самуи, и нам не понравилось. А рис и салаты понравились.
Пока сидели - смотрели на море, на колышашиеся пальмы, на облака... в общем созерцать есть чего и действительно вполне умиротворяет и успокаивает. Так что мы остаток дня отдыхали, немного прошлись по окрестностям, ничего особенного не увидели и после ужина легли спать. Отдельное выдалось развлечение с выгонянием больших мотыльков - мы по глупости включили свет внутри, не включив света снаружи дома - ну и гоняли их потом. А, да - все окна в доме дырявые - стекол нет, а в "жалюзи" не хватает хотя бы одной секции. Ночка выдалась веселая - меня через 3 часа сна разбудили эти гадские собаки, и уснуть уже не получилось... одно хорошо - в этой продуваемой ветрами голубятне можно спокойно курить, не опасаясь помешать спящим.

На следующий день с утра мы решили позавтракать чем-нибудь вкусным, пусть и неполезным, и пойти исследовать остров, на сколько нас хватит. Пришли на завтрак, где выяснилось что хлеба для сендвичей и гамбургеров нет, тунца нет, апельсинов нет, "растительности нет, населена роботами"... в общем, завтракали омлетом. Надо заметить, вкусно.
Сначала пошли прогуляться по дороге на рынок. Горная дорога, местами без покрытия, в большинстве мест все-таки бетонная, но с дикими углами наклона. Добрались до верхней точки этой дороги и радостно посмотрели на спуск вниз, к рынку. Виды красивые обалденно - тропический остров во всей своей красе, с большой бухтой, песчаной косой омываемой волнами, лазурной водой и всеми прочими элементами дизайна Far Cry. Хороших фоток нет - вид все время что-то заслоняет типа вышки ретранслятора или большого куста, а лазить еще куда-то ради фоток сил уже не было - еще же обратно идти. До рынка не дошли - представив себе обратный подъем, решили не рисковать.

Вернувшись и отдохнув решили пройтись в порт. Прежде, чем идти, заглянули в хижину с вывеской "Бар". Держит его пара ребят, по некоторым признакам помесь кого-то с кем-то и с мексиканцами. В баре картинки в духе байкеров америки, революции мексики и пляжной эротики. И 3 портерта Че Гевары. ¡Viva la revolución. И гитара, раскрашенная под мексиканский флаг. Услышав наш заказ - 3 апельсиновых сока, парень явно огорчился - он наверное ждал что мы хоть грибочков спросим... И долго потом интересовался чистый ли я табак курю в своей трубке :)
Наконец, пошли в порт. Дорога - забавная бетонная горная тропа. Посмотрели на побережье в целом, полюбовались поселком Bamboo Hut - хижины выстроены на скалах, с балконам над морем... в общем, пожить там было бы прикольно, наверное... По пути видели большого паука, который спрятался от нас под камнем, и ящерицу, метров полутора длинной, которая тоже сныкалась когда мы подошли. Чисто крокодил, только морда совсем другая.

Дойдя до города, практически сразу пристроились в первом же прилично выглядящем месте. Надо заметить, что таких было немного - пара баров, где не было еды, пара едален, где не было людей, и Safety Stop Pub - где мы засели. Названию удивляться не приходится, учитывая, что Тао - одна из мировых точек дайвинга. Кормят там скорее по-европейски - даже тайские блюда подают порциями, чтобы накормить голодного европейца, который есть 2, максимум 3 раза в день, а не тайца, который ест 5-6 раз. А еще у них есть настоящий кофе. В общем - остались очень довольны, хотя стоил наш обед целых 800 бат. Ужасно дорого для Таиланда. Но мы же в отпуске, нэ?

Вернувшись и трезво оценив наши силы, решили что на следующий день на утренний паром в 9 утра мы никак не хотим успевать. Так что спокойно легли спать... А ночь оказалась безветренной, в результате спасались вентилятором, без которого душно так, что спать невозможно.

С утра, когда мы шли завтракать на нас опять налетели собаки, чтоб им провалиться. На сей раз хлеб был в наличии, так что свои сендвичи мы получили... Кстати, гамбургер тут действительно hamburger - с обжаренной ветчиной. Оставшееся время до отхода на паром купались, плавали с рыбками, смотрели на колонию крабов, и отдыхали. Рыбки, как и положено в тропиках, яркой раскраски, в основном желто-черной, и могут даже покусать.

С паромом выяснилась подробность - покупая билет на паром, больше чем за час до отхода - получаешь не билет, а ваучер, который надо обменять на билет с 14:00 до 14:30 (на 15:00 рейс), если будут места. Пока мы ждали, сели в том же пабе и пообедали, сбегав обменяв ваучер на билеты посреди обеда. Зато когда пришли на пирс - там стояла длинная очередь за билетами, а у нас уже все было хорошо и оставалось только подождать.

Доплыли обратно без приключений. А по пути домой обнаружили, что у нас почти рядом с домом открылась едальня с супами. Что очень здорово, потому что местные супы нам нравятся, но до сих пор за ними надо было далеко ходить. Так что еще и готовить ничего не пришлось на ужин.

Итого в сухом остатке: нам понравилось, очень все красиво, и спокойно, и вообще куча всякого нового - и рыбки, и крабы, и кораллы, и купание в волнах. Единственный недостаток - собаки. Главная гадость острова, если хоть немного отойти от отелей. Ну, а то, что внезапно может не оказаться половины меню на кухне - это мелочи, они просто не дают совсем уж расслабиться и превратиться в желе.

Избранные фотки в альбоме начиная с этой.

Несколько комментариев:
- поскольку рядом с островом огромные колонии кораллов, там весьма строго смотрят за их сохранностью - нельзя мусорить, местами нельзя вытаскивать из воды обитателей (живых или мертвых), за плавание с гарпуном - до 3 лет тюрьмы, и запрещены ласты.
- с другой стороны, на тех двух пляжах, где мы плавали, по утрам море замусорено именно антропогенным мусором - вода чистая, но пакетов и прочей дряни в ней много.
- насколько мы видели, в отличии от Самуи (да и остального Таиланда), здесь просыпаются ощутимо позже - рестораны в отелях начинают работать в 8, тогда же народ выползает на уборку территории и т.п.
- на пляжах таки рекомендуется быть поосторожнее, потому что обломков кораллов куча, и регулярно попадаются достаточно острые. В толпе отъезжающих почти у каждого 7 была перебинтована нога.

Раскладка по ценам, кому интересно:
- билет на паром в одну сторону 600 бат на взрослого, 300 бат на ребенка 4-11 лет. 3000 бат всего.
- лодка-такси до пляжа 100 бат с человека. 300 бат всего.
- аренда домика с двумя кроватями 400 бат в сутки. 800 бат всего.
- и дорогая еда: 30 бат за стаканчик чая, 80 бат за два тоста с маслом и сыром, 70 бат омлет, 70 бат жареный рис...