Tuesday, May 10, 2011

Database tables and columns naming conventions

Once again I've got to explain what I think about database tables and columns naming conventions. This time, I've decided to write down my points, to be able next time just to give a link :).

Starting with tables - main question is plural or singular form should be used. Main point in favor of plural form is something like "it is a collection of entities, so it must be named in plural form". Singular form is preferred when you want to write query like "where user.id = ", and not "where users.id = ".

When it comes to columns' names, there are much more arguing about it. Main one is about primary key - should it be ID or entity_id. In case you've used plural form for tables, it become more pleasant in queries - "where users.user_id = ". Next bone of contention is about short forms in columns' names - could you name it like userGoodsCnt, or you must name it like amount_of_goods_in_user_cart.

It's funny to notice that usually, ones that love plural form of tables' names and long version of primary key prefer long version of columns' names too. Why do they love long names so much? In most cases they say that it's because "database schema must be as much readable as it could be". It is very important to have readable and pretty much self-explanatory schema, then why others disagree? Ones that like short forms says that "it is _understandable_, and it is shorter. save a byte - save a tree". One more point - description of column or table could be kept near it, not necessarily in name - in description, in repository, in comments... 

From my point of view, it is all about when and how you work with schemes. Either you usually look on DB chart, or DB schema or some entities' relations graph... in this case you prefer long, self-describing names, since comments are hidden at this time. And, what is usually much more important, you look at this chart from time to time, either you are DBA with a lot of such schemes, or it's just not your primary job - you just refer to schema sometimes, so you do not need to remember it and want to get all information from just one look. On the other side are those who work with tables' and columns' names many times a day, those who write code and queries. They usually keep whole DB schema in mind, and since they write all those names with their own fingers - they want it to be as short as possible.
First group are architects, who do not write code, technical directors and so on. Second are developers and coders.

Summary: if you are a leader and architect, do not forget about those who will work with schema every day - do not spoil their comfort in favor of pleasure look of DB chart. Developer's comfort is very important - not lesser then yours. But they spend much more time with DB - don't forget about it. It doesn't mean that table could be named as table1 with columns A,B,C - no way.

I myself prefer to name tables in plural form, but to name columns as short as possible. It's because I use ORM, so I do not usually see ugly queries like "where users.id = ", but I use forms like "select from users where name like" - it is ok with me. But when it comes to columns' names - I try to keep it as short as possible, as long as it is understandable to those, who work in the same project. I'm pretty much sure, that if you can't spend time to read and understand DB schema with shortened forms (like usr instead of user) - then you'll not have enough time to make something good to project's technical development.

Wednesday, April 27, 2011

27 Апреля, Таиланд

С интернетом разобрались. 12Мбит тут только по Таиланду обещают. А максимум, который можно получить для иностранного траффика - это 5 обещанных Мбит, которые у всех почти падают до 3. И стоит это больше, чем мы платим - часть оплачивает домовладелец. Так что тут просто вот так все печально с интернетом.

Готовимся к очередному виза-рану... думаем, купить подушечку и пледик, или обойдемся?..

Привыкаем к жаре - уже не падаем днем, а вполне даже дееспособны, даже когда в тени 35.

Изучаем фрукты, которые начали появляться - пока только салА и рамбутан. И даже привыкаем к ним постепенно. Хотя не все - мне они нравятся, а моей семье не очень.

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

Покупали соки в очередной раз - взяли сок гуавы на попробовать, пока правда не сподобились, и заодно обнаружили разнообразие цитрусовых соков: мандариновый, танджериновый, и 5 сортов апельсинового, плюс смеси - один из апельсинов с мандарином и т.п. Так что просто "апельсинового" тут в магазине нет.

Tuesday, April 19, 2011

Обновление интернета

У нашего домовладельца произошли какие-то большие перемены в населении - куча народу уехала, маленькая пачка заехала, и, в частности, уехала родственница, жившая в домике рядом с нами.
В связи с ее отъездом, он переписал на себя ее контракт с телефонной компанией и предложил таки нам интернет в 12Mbps, только от соседнего домика по телефонному кабелю - метров 5-8.
Мы согласились, и получили интернет с незарезанным vpn, с пингом до России 50ms, и скоростью по всему миру ~3Mbps... Почему мне кажется что кого-то кинули?

По поводу пинга и vpn - судя по всему, если подключаешься к этой повсеместной кампании в 6Mbps - попадаешь в местную локалку, с кучей приколов. Стоит взять нестандартный интернет - и все хорошо.

По поводу скорости - оно конечно стабильный 3Mbps во много раз лучше хренового 1 с диким packet-loss... Но все-таки...,  все-таки.... Надо бы попробовать узнать что за тариф у нас....

Интернет у нас от 3BB теперь, модем переподключается несколько раз утром, и пару раз вечером. Но день на день не приходится.

Если коротко - работать теперь можно не матерясь ежесекундно. Но бабла жалко немного - мультик ребенку сегодня качался почти 2 часа.... а должен минут 30-40....

Saturday, April 16, 2011

Вуглускр

А еще у нас живет настоящий вуглускр!

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

Thursday, April 14, 2011

Сонгкран

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

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

До дороги дошли без приключений, а вот на самой дороге... прямо на выходе на КАД на нас накинулась толпа тайцев, один тут же вымазал щеки тальком, другие аккуратно полили на плечи и руки водой и все восклицали "Happy New Year!", "Са-ват-ди пи май!", в общем - очищали от прошлого года и желали удачи в будущем.

Пошли мы вдоль дороги, высматривая маршрутку. Пока шли, собственно разглядывали как оно тут происходит. Рядом с каждым заведением стоит компания, с бочками, тазиками, ведрами, мисками, водяными пистолетами и шлангами - кому что нравится и поливает всех проходящих и проезжающих. По дорогам ездят джипы с открытыми кузовами (которых здесь много), в кузове стоят бочки и сидит толпа, которая опять же всех поливает. Из машин и почти из каждого заведения раздается музыка и все вместе похоже на гигантскую дискотеку.

Молодежь действует активнее - встает на дороге, останавливает машину и методично поливает всех кто в ней едет, а также всех, кто встанет за машиной (КАД-то однополосный) - бедные байкеры, которых намазывают этим тальком, обливают водой и далеко не только когда они стоят - на полном ходу получить в лицо ведерко воды, приятного мало. Говорят, в дни Сонгкрана резко возрастает количество аварий на байках - в основном как раз из-за воды в лицо.

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

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

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

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

Резюме - здорово! Вернулись мокрые до нитки, перемазанные разноцветным тальком, очищенные и радостные.

Wednesday, April 13, 2011

12 Апреля, Тайланд

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

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

Наконец-то сфотографировали свой коралловый сад - в основном фотографировал Даник.

Потихоньку планируем следующий визаран - глаза разбегаются от обилия вариантов: Гонконг, Хошимин, Сингапур, Бали, Куала-Лумпур... правда почти все дорого, или очень дорого, но все хочется посмотреть. Вот уже две ночи сидим и рассматриваем дешевые варианты как добраться куда-нибудь... В общем, если не лениться, то есть масса вариантов для бездетных людей, у которых есть пара дней на дорогу... Или у кого дети готовы по 11-12 часов проводить на трех креслах автобуса... Поскольку это не наш случай - ищем дальше.

Saturday, April 9, 2011

Итоги первого месяца

Мы прожили первый месяц в Тайланде. Можно подвести некоторые итоги.

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

Всякие мелкие неурядицы - типа заползающих змей, комаров, лягушек и наводнений - легко решаемы. А слабый интернет даже к лучшему - воспитывает терпение и учит не опечатываться - ведь чтобы стереть символ в консоли придется ждать еще 3 секунды :).
Единственное с чем я пока не справился - это ритм жизни. Местные живут примерно с 5 утра до 13 и с 16 до 22. Остальное время отдыхают или спят. Для меня это нереально - я в полночь только работать обычно заканчиваю. Ужин, покурить, что-то поискать в сети, кому-то отписать и вот уже 2-3-4 ночи. А в 7-8 ребенок будит. И даже если потом поспать еще часок, пока он завтракает - все равно не хватает. В самую жару, когда местные спят, тоже хочется прилечь, но надо работать - это же пик активности в Москве - народ только в офис приходит. И сил уходит очень много на такую вот работу сквозь жару. А в добавок, надо еще успевать ходить по магазинам, что в местных условиях представляет собой забавную диллему: можно ходить на рынок и в пару маленьких магазинов, но это надо делать рано утром с 6 до 9; или можно ездить раз-два в неделю в большие магазины - но это часа на 4 развлечение.
В общем мы пока неправильно живем, из-за чего очень устаем. Надо это менять и подстраиваться под местные ритмы. А то даже поесть не дома уже проблема - когда я хочу завтракать, они уже прячутся на дневной отдых, а когда я хочу ужинать - они уже спят.
Но опять же - это все мелочи, потому что поспать и в Москве была проблема, так что в этом плане ничего не изменилось, а с едой еще проще - жена освоила местную кухню практически сразу, и готовит теперь лучше, чем во многих едальнях.

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

Несколько моментов из жизни:
- ребенок за два последних дня натаскал из моря корралов и выстроил коралловый сад во дворе, под фонариками. Очень красиво получилось - купим фотик, покажем.

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

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

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

И напоследок - если мы ничего не пишем, обычно это означает, что мы просто живем и всем довольны. :)