Posts Tagged ‘размисли’

Беше добра година

Saturday, January 3rd, 2015

Голяма година беше, наситена с приятни емоции и покорени върхове във всяка област на живота. Толкова много вълнения имаше, че чак ме е срам да направя списък. Един списък предполага че мога да ги степенувам по по-по-най, а действителността е че всичките спомени и постижения са ми скъпи.

Все пак самохвалството трябва да почне от някъде, та ето – пробягах 2 километра! Преди години в средното училище покривахме нормативи по физическо и бягането на 600 метра го завършвах пълзейки и повръщайки. А ето, тази година си поставих за цел да излизам поне 2 пъти седмично и малко по малко всеки днешен абсолютен лимит се превръщаше в утрешния норматив.

Започнах да си готвя супички. До скоро за мен кухнята беше *тера инкогнита*, а вече кълцам зеленчуци и слагам тенджерата на котлона. Не се получава нещо кой знае какво, но удовлетворението от това да хвърлиш малко труд в храната си е голямо.

Позавъртях се покрай климатика в квартирата и му направих онлайн дистанционно с жив видео поток и дистанционно за андроид с Bluetooth. Видео с демонстрация и глупости – тук.

През цялата година направихме няколко пътувания с приятели, всяко от които лесно може да се опише с “беше уникално – закриваме годината!” 🙂

Оженихме половината фирма – Диди и Митко, Гери и Павел. След това Невена я напънаха пророчески сънища и за моята сватба, но за целта първо трябва да се появят кандидатки 🙂

Юни месец с Димо направихме 5-дневна екскурзия до Рим. За първи път летях и останах очарован. Много впечатления ми останаха и сега като гледам дори съм изписал 6 поста в блога 🙂

Най-после си взех нормална раница. Онзи ден скъсах и първите си нормални обувки, но съм им навъртял над 200 км, така че – доволен съм. Взех си също и още доста благи неща, но няма да правя инвентарен списък сега 🙂

Август и септември се направиха доста къмпинги, къде с нощни разходки, къде с други интересни благини. Дръпнахме една разходка до Мальовица и една покъртителна 30-километрова обиколка на Балкана.

След това се бях приготвил да закривам годината, но съвсем скоро се откриха планове за разходка около Широка Поляна. Имаше фото-оргазми, а разходката с уазка до Орлово Око си беше приключение!

Последните седмици от годината бяха мъгливи и дъждовни и това ми развали плановете за наблюдение на големите метеорни потоци есента. За сметка на това Геминидите ме изненадаха с идеални условия за наблюдение и снимки и резултатите надминаха очакванията ми.

Измежду 10-те хиляди изщракани кадъра ми е трудно да избера десетина снимки които са били голяма емоция за мен, но да пробвам.

IMG_4466

Това не са катакомбите в Рим или някой музей на Холокоста. Това е част от българската история и близко минало. Никой не трябва да забравя клането в Батак.

IMG_4855_6_7_tonemapped

Трявна и къщите-музеи

IMG_5093

Балканът смръщва вежди над Аневското кале

IMG_5655_6_7_tonemapped

Тук имаше няколко дни надхитряне с дъжда и игра на гоненица, която завърши с красиви гледки към Пловдив

IMG_6384_5_6_tonemapped

Толкова търсех макове, а те всичките се били скрили до Червената църква в Перущица

IMG_7419

Тази година доста пъти ходихме до Сливодолското падало, всеки път имаше нови емоции.

IMG_7735

Памучни облачета над язовир Пясъчник

IMG_8616

Селфи на Колизеума, където ни чука гръмотевична буря със светкавици, сипещи се на броени метри от нас

IMG_9340

Още селфита на Копринка, докато гръмотевиците се изсипват зад гърба ни

IMG_0527

Част от двудневния пешеходен мазохизъм в Балкана

IMG_0725

Първия допир с Рила, който ме очарова с много неща: циркусните долини, лазенето по морените, напомпаните от налягането кроасани 🙂

IMG_1152

Безценното чувство да се събудиш с тази гледка! Язовир Широка Поляна.

IMG_2220

Първия сняг за сезона се случи отново до Мальовица, където го комбинирахме с отровно-горещи минерални извори 🙂

IMG_2928_29_30_tonemapped

Леко инцидентна разходка над язовир Въча ме хвана с перфектното време на Бековите скали.

cropped-1

Една лятна буря напълни с електричество Стара Загора

Secure. Contain. Protect.

Tuesday, December 24th, 2013

SCP е уики с кратки научнофантастични произведения завъртяни около свръхестествени събития. Пишат се във формата на псевдо-реалистични доклади, лабораторни изследвания и протоколи. Стила и съдържанието напомнят на някаква кръстоска между Twilight Zone, X-Files и Outer Limits.

Всяко произведение се върти около определен паранормален предмет, който е представен с номер SCP-XXXX. Обикновено присъстват следните секции: класификация за степента на опасност, протокол за съхранение на обекта и описание. Евентуално могат да присъстват интервюта, извадки от научни експерименти, аудио и видео логове и т.н.

Фондацията е общ елемент в канона на SCP. Това е организация от изследователи, агенти и военни звена, целящи да каталогизират свръхестественото във вселената и да предпазят човечеството от възможните ефекти. Въпреки че на пръв поглед Фондацията е филантропска, методите ѝ въобще не са такива. За опасни опити които често завършват летално се използват осъдени престъпници (Class-D personel). Ръководството не се бои да използва смъртоносна сила, дори и върху собствения си персонал, в случай на компроментиране или зараза. Мотото е нещо като “всички са заменими”. Ако цивилни попаднат под влиянието на SCP елемент, амнезиачни наркотици се раздават с голямата кофа. SCP обектите се съхраняват в неизвестен брой архиви-лаборатории (Sites), всяка от които е снабдена с атомно устройство за саморазрушение в случай на “най-лошото”. Някои от обектите имат потенциал да предизвикат края на света.

Макар и в написани общ стил, статиите пробуждат различни чувства. Някои са типичните лъвкрафтски истории за пипални чудовища и светеща слуз, които ти влизат под кожата и те отказват да спиш. Някои ти захващат въображението и се усещаш че мислено си разиграваш алтернативни сценарии. Някои здраво те разсмиват и те връщат на земята. Част от статиите имат суфикс -J за “jokes” и са точно това.

Някои от SCP обектите които ми направиха впечатление (ще ги описвам съвсем накратко, без spoilers):

SCP-087 – безкрайното стълбище

SCP-093 – портал към алтернативна реалност, дълго е, историята е добре развита

SCP-426 – една потенциална -J история, но работата е сериозна

SCP-914 – предметен трансфигуратор

SCP-231 – момиче, което всеки ден бива подложено на толкова ужасни неща, че се налага персонала сам да взима амнезиачни наркотици

SCP-1171 – Каспър, расисткия призрак

SCP-294 – вендинг машина, която продава всякакви течности

SCP-682 – интелигентно, много агресивно влечуго, което мрази всички хора

SCP-5308-J – колекция от няколко предмета, които тормозят и най-добрите умове във Фондацията

SCP-993 – телевизионно предаване с Боби Клоуна, който подсъзнателно подтиква зрителя към криминални прояви

SCP-006-J – колекция от насекомоидни организми, заради които се събира отряд “Съпрузи” и се въоръжават с Четирикратни Екстравагантни Хипер Лимбатични Икстерминатори (още известни като ЧЕХЛИ)

SCP-1370 – безвреден робот, който има душата на Минг Безпощадния и иска да пороби целия свят. Самоосакатява се при опит да нападне цвете в саксия. Историята плаче за -JJJJJ

SCP-1867 – разумен и телепатичен морски охлюв, който се представя за британски естествоизпитател

SCP-085 – двуизмерно момиче, живеещо като рисунка на лист хартия

SCP-1048 – разумно плюшено мече, с патологични наклонности и способност да се самовъзпроизвежда

SCP-1437 – бездънна дупка в земята, портал към алтернативни вселени

SCP-1322 – малка пространствено-времева аномалия, която свързва нашата с друга вселена. Обмян на знания, мирно сътрудничество, чума.

SCP-354 – кърваво езеро, което създава разнообразни чудовища

SCP-028 – изоставен двор, който дарява човек който влезе в него с ултимативното знание по случайна тема

SCP-504 – салатни домати които убиват при проява на тъпо чувство за хумор

SCP-342 – билет за обществен транспорт, който отвлича човека, който го ползва извън нашата реалност

SCP-871 – самовъзпроизвеждащ се кекс, който ако не бъде изяждан, може да напълни цялата планета с кексове

SCP-1440 – възрастен мъж, който въздейства неагивно на човешкото население около себе си до степен, в която всички умират.

SCP-1470 – разумен паяк скачач, способен на телепатия

SCP-1342 – копие на Вояджър 1, изпратен към Земята от извънземна цивилизация

SCP-1958 – VW бус, изстрелян в космоса преди 60 години

SCP-348 – порцеланова купа, която се пълни сама със супа

SCP-1193 – сондажна дупка с неизвестна дълбочина, в която живее огромна ръка. На повърхността на земята има телефонна будка, която свързва човек с неизвестното същество

SCP-439 – паразитно насекомо, което живее в човешки гостоприемник, като вкаменява мускулната му маса, изяжда вътрешните му органи и го използва като структура за кошер

SCP-015 – маса от тръби, клапи, бойлери и друга водопроводна апаратура, която се саморазраства и възпроизвежда

SCP-1545 – карнавален костюм на лама, който влияе на съзнанието на облеклите го и те почват да се възприемат като лама

SCP-1006 – група интелигентни паяци, възприели политическа система и самоизлъчили марксистко правителство

SCP-1845 – разнородна група разумни животни, възприели феодални порядки, водени от лисица, която се възприема за средновековен среден владетел от католическа Франция

SCP-453 – нощно заведение, което подчинява посетителите да участват в един от няколко известни сценарии като театрални постановки, но на живо

SCP-4357-J – адски демон, който се присмива на хората и без да иска ги учи как да го затворят

SCP-882 – конструкция от зъбни колела, кабели, ремъци и други механизми, събрани на случаен принцип. Движи се от неизвестна сила и има способността да подчинява съзнанията на близките хора. Те го възприемат като железния бог и му носят метал, който механизма абсорбира и използва за да нараства.

SCP-804 – устройство, което ако е активирано влияе на всякакви изработени от човешка дейност предмети като ускорява процеса на стареене. Подобен ефект има и върху човешки същества.

SCP-789-J – кенефния призрак

SCP-423 – обектът няма физическа форма. Представлява фиктивен персонаж (Фред), който се самодобавя в дадено литературно произведение. Може да се движи от книга в книга, ако се намират на разстояние до 1 метър. Разумен и е и може да бъде осъществена комуникация с него.

SCP-1529 – хуманоидно същество, живеещо на склона на Хималаите. Хипнотизира и убива планинари.

Ненулеви дни и самодисциплина

Thursday, November 14th, 2013

В reddit се появи един пост, който взриви общността. Става дума за подфорума /r/getdisciplined където потребителя maxstolife разказва как е изпаднал в дупка, закъснява с есетата за училище, няма нищо което да го движи и с две думи – закъсва с живота. Потребителят ryans01 му дава съвет, който си позволявам да преведа и постна тук. Линк към: оригиналната тема

—————————-

Ауч. Звучи все едно не ти е лесно, Макс. Това смуче. Бил съм на това дередже, така че горе-долу знам за какво говориш. Бил съм в безкрайния водовъртеж от самосъжаление, неудовлетвореност и отвращение. Не е добре. Знам. Ако нямаш нищо напротив, позволи ми да ти кажа няколко неща. Може да ги прочетеш сега ако искаш, ако искаш – и по-късно. Но честно човек, ако похабя всичкото това време да ти напиша това и ти не му позволиш да бъде искрата, която да те запали, е, ще разочароваш и двама ни. И ти ТРЯБВА да го направиш. Няма НУЖДА да правиш нищо. Но трябва да избереш.

(Кой съм аз? Името ми е Раян и живея в Канада. Точно се преместих в нов град за работата-мечта която получих благодарение на правилата по-долу. Дължа голяма част от успеха си на хора много по-готини, по-добри, по-любящи и по-велики от мен. Когато получа шанс да помогна на някого, това е начина да им благодаря)

Правило номер едно – Стига толкова нулеви дни. Какво е нулев ден? Нулев ден е когато не сториш нито едно шибано нещо по отношение на каквато и мечта или цел имаш. Стига толкова нули. Не казвам че всеки ден трябва да пишеш есе, не е това смисъла. Това което искам да кажа е че трябва да се накараш, да си обещаеш, че новата СИСТЕМА в която живееш е АНТИ НУЛЕВА система. Нищо не си направил цял шибан ден и вече е 11:58 вечерта? Напиши едно изречение. Една лицева опора. Прочети една страница от тази глава. Една. Понеже едно не е нула. С мен ли си? Когато си в супер водовъртежа на скитничеството, твоят шаблон на поведение подхранва водовъртежа, така си свикнал. Превръщането ти в абсолютен господар на продуктивността не може да се случи от този водовъртеж. Получава се от огромна серия от ПРОДЪЛЖИТЕЛНИ НЕ НУЛИ. Това е правило номер едно. Не забравяй.

Правило номер две – БЪДИ БЛАГОДАРЕН НА ТРИТЕ ТИ “АЗ”-а. Ъ, какво? Три аз-а? Това ми звучи като бабини деветини. Има миналото ‘аз’, сегашното ‘аз’ и бъдещото ‘аз’. Ако искаш да обичаш някой и той да те обича обратно, първо трябва да научиш да се обичаш сам себе си, и трите аз-а са ключа. Бъди БЛАГОДАРЕН на миналото аз за позитивните неща, които си сторил. И прави услуги на бъдещия си аз, каквито би сторил на най-добрия си приятел. Днес се чувстваш като лайно? Спри за секунда, помисли за добрите решения които взе вчера. Салата и риба вместо Биг Мак? БЛАГОДАРЯ ТИ, ПО–МЛАД АЗ. Беше ли вчера ненулев ден, защото написа 200 думи (хей, само толкова можеше)? БЛАГОДАРЯ ТИ, ПО–МЛАД АЗ. Спести ли малко пари, за да си купиш това което искаше? БЛАГОДАРЯ ТИ. Втората част от 3-те аз-а е че трябва да правиш услуги на бъдещия си аз, точно както би сторил за шибания си най-добър приятел (нямаш най-добър приятел? Вече имаш. Вече имаш два – бъдещия си аз и миналия си аз). Адски си изчерпан и не можеш да се откъснеш от reddit/игрички/интернет? Майната ти, сегашен аз, това е за бъдещото аз, ще се изкъртя с p90x Ab Ripper X за 17 минути. Правя това за бъдещия си аз. Часовника звъни сутринта и леглото е прекалено удобно? Майната ти сегашен аз, това е за моя най-добър приятел – бъдещия аз. Ставам и отивам да избягам 5 километра (или 25 метра, трябва да бъде повече от нула). НЕ ЗАБРАВЯЙ ДА БЛАГОДАРИШ НА СТАРИЯ СИ АЗ за изкъртването от всяко.едно.нещо. Това прави живота ти по-добър. Цикъла от това да сториш нещо за някой друг (бъдещия аз) и благодарността че някой ти е сторил добро (миналия аз) е ключа за построяването на благодарност и продуктивност. В последствие трябва да разпространиш благодарността към другите които ти помагат по твоя път.

Правило номер три – не се притеснявай, ще сложа това лошо момче в TL;DR на дъното (вземи химикал и хартия и си го запиши. Сериозно. Трябва физически да си водиш записки) – ПРОЩАВАЙ СИ. Наистина го имам предвид. Може би имаш всичкото ноу-хау, пари, способности, сила и талант да правиш каквото правиш. Но нека кажем че все още не е точно така. Сега си сипваш сол за това че не правиш това което трябва да правиш, че не си този който искаш да си. Горе главата, шампионе, да бъдеш разочарован от себе си те прави да си по-малко продуктивен. Вчера даде всичко от себе си да бъде ненулев ден и все пак се провали? Какво от това. Прощавам ти, минал аз. Проащвам ти. Но днес? Днес е ненулев шедьовър от дъното на душата ми за бъдещия ми аз. Това е за теб, приятел. Прошка, човече – използвай я. Прощавам ти. Кажи го високо и ясно.

Последно правило. Правило номер четири е най-лесното и е три думи: упражнения и книги. Това е. Доста стандартен съвет, но когато се упражняваш всеки ден, всъщност ставаш по-умен. Когато се упражняваш се надрусваш от ендорфин (благодаря ти, тяло). Когато се упражняваш, прочистваш съзнанието си. Когато се упражняваш, правиш голяма услуга на бъдещия си аз. Упражнението е като крак в трикрако столче. С мен ли си? А за книгите – почти всяко шибано нещо, което всички ние някога сме измислили, или почувствали, или преминали през, или искали, или искали да знаем как да постигнем, или каквото и да е, е било измислено от някой друг. На всяка цена си намери няколко книги. Постваш в reddit че не те е грижа за себе си? Добра първа стъпка! (ненулев ден, благодаря ти по-млад аз за това че го написа) Знаеш ли какво друго можеш да сториш? Прочети “7-те навика на най-успешните хора”. Прочети “Емоционален интелект”. Прочети “От добър до велик”. Прочети “Мислене бързо и мислене бавно”. Чети книги които ще ти помогнат да разбереш. Прочети reddit-а за фитнес и го интегрирай в тренировките си. (Как вървят набиранията?) Четенето е като телепорта в Super Mario 3. Качва те на следващото ниво много по-бързо.

Това е, човече. Има още много по темата как да превърнеш ненулеви дни в страшни ненулеви дни, но това не е твоята мисия точно сега. Твоята мисия е ненулеви постижения и прошка и услуги. Имаш 36 есета за след 24 минути и е невъзможно да сториш нещо? Миналия ти аз ти изиграл кофти номер, но хей… прощавам ти. Направи каквото можеш за тези 24 минути и продължавай напред.

Надявам се че съм ти помогнал. Мога да пиша за тези неща безкрайно, но си обещах че ще направя 15-минутно бягане докато слушам A. Skillz Beats Working Vol. 3. Трябва да изчезвам. Само още един съвет. Без значение дали четенето на това направи деня ти за първи път по-добър, ако се събудиш утре и не можеш да си спомниш 4-те правила, които изложих – моля, моля, прочети това отново.

Пожелавам ти прекрасен ден 🙂

tldr:
1. Ненулеви дни колкото можеш.
2. Трите ти аз-а, благодарност и услуги.
3. Прошка
4. Упражнения и книги

Entity–attribute–value data model in MySQL

Tuesday, June 19th, 2012

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

Entity–attribute–value (EAV) е един интересен модел за представяне на данни, който се различава от традиционалния релационен модел. При него данните се представят чрез тройки “запис”-“свойство”-“стойност”. EAV модела още може да се нарече “вертикален модел за представяне”, докато табличния е “хоризонтален”. Примерно записът “Ситроен С5” може да се представи с: “тип” = “хечбек”, “гориво” – “дизел”, “обем двигател” = “2200”, “скоростна кутия” = “автоматична” и т.н. В една релационна таблица това би изглеждало така:

+------------+--------+---------------+-----------------+
|    Име     | Гориво | Обем двигател | Скоростна кутия |
+------------+--------+---------------+-----------------+
| Ситроен С5 | Дизел  |          2200 | Автоматична     |
| VW Golf    | Бензин |          1600 | Ръчна           |
+------------+--------+---------------+-----------------+

Докато в един EAV модел представен таблично би изглеждало така (вижда се и защо се казва “вертикално представяне”):

+-------+-----------------+-------------+
| Запис |    Свойство     |  Стойност   |
+-------+-----------------+-------------+
|     1 | Име             | Ситроен С5  |
|     1 | Гориво          | Дизел       |
|     1 | Обем двигател   | 2200        |
|     1 | Скоростна кутия | Автоматична |
|     2 | Име             | Vw Golf     |
|     2 | Гориво          | Бензин      |
|     2 | Обем двигател   | 1600        |
|     2 | Скоростна кутия | Ръчна       |
+-------+-----------------+-------------+

Колоната “Запис” трябва да групира логически двойките в отделни записи.

Защо би се приискало на някой да използва EAV? Лесно се добавят нови полета, схемата на данните е отворена. Ако на късен етап от живота на нашия проект се окаже че за колите трябва да се пазят броя на гумите, просто въвеждаме ново свойство: “брой гуми” = “4”. Всичко е там – можем да разграничим отделните записи, можем да добавяме абсолютно произволни данни, можем да взимаме кой да е запис с всичките му полета. Ако ни потрябват всичките коли с обем на двигателя над 2000 съвсем лесно можем да вземем този списък. Звучи като песни и рози, особено ако трябва да пазите много различни типове документи и не ви се занимава с MySQL таблици от по 30-40-50 полета. Ако мислите така, значи сте с двата крака в капана.

Ако все още четете това и имате чувството че това четиво е насочено за вас – никога, ама никога не правете EAV в MySQL. Ако ви трябва за нещо елементарно (примерно – user preferences) – става, но ако имате голяма система, която има тенденция да се развива – не използвайте EAV.

MySQL е система за релационни бази данни. EAV не е релационен модел. Данните представени в EAV не са нормализирани.
Някои от важните features които липсват в EAV:
1. Метаданни. Не знаете кое поле какъв тип е. Нямате допустими стойности за полетата. Нямате валидиране на данните. DB енджина ще допусне да въведете “джинджипляктор” в стойността на “Обем двигател”. Не можете да използвате MySQL-ските типове данни по колоните.
2. Свързаност между записите. Няма foreign keys. Ако искате да намерите шофьора на дадена кола, ще трябва да правите self join на таблицата, вложени SELECT-и или две последователни заявки. Ако искате да намерите жената на шофьора на дадена кола, може да си направите харакири.
3. Индексиране. Данните в колоната “Стойност” са разнородни не могат да бъдат индексирани по смисъл.
4. Подреденост – няма колона по която могат да се подредят данните.
5. Странициране – по какъв критерий ще страницирате?
6. Агрегатни функции – не могат да се използват директно.

Как да филтрираме записа който ни трябва? Ако ни трябват всички коли с обем на двигателя над 2000 в релационна таблица това би било така:

SELECT id FROM cars 
WHERE engine_volume > 2000

В EAV таблица е почти същото:

SELECT id FROM fields 
WHERE attribute = 'engine_volume' AND value > 2000

Ако искаме да вземем само дизеловите автомобили с марка ситроен? В релационна таблица е елементарно:

SELECT id FROM cars 
WHERE fuel = 'diesel' AND brand = 'citroen'

В EAV може би ще го направим така:

SELECT id FROM fields 
WHERE (attribute = 'brand' AND value = 'citroen') 
    AND (attribute = 'fuel' AND value = 'diesel')

Да, ама не. Така написана заявката няма да върне нищо. Никога няма ЕДИН ред в който едновременно да има атрибут ‘brand’ и атрибут ‘fuel’. Може да пробваме така:

SELECT id FROM fields a
    INNER JOIN fields b
    ON a.id = b.id
WHERE 
    (a.attribute = 'brand' AND a.value = 'citroen')
AND
    (b.attribute = 'fuel' AND b.value = 'diesel')

Таблицата fields обикновено е огромна (все пак всяко поле е отделен ред) и си представете какво става при JOIN на огромна таблица със самата себе си… А ако търсим по три критерия? Три JOIN-a.
Алтернатива:

SELECT id FROM fields
WHERE value IN ('citroen', 'diesel') 
GROUP BY id
HAVING COUNT(*) = 2

Това може да работи ако търсените стойности са определени, но не и ако се търси нещо от вида “по-голямо”, “по-малко”, “съдържа низа”.

EAV е пример как “данните са там, ама не ни вършат работа”. Оказва се че основните MySQL функционалности трябва да се имплементират програмно и докато се усетим вече си пишем собствен DB енджин… Има ситуации в които наистина е необходим отворен дизайн на базата – в такъв случай съществуват NoSQL решения, които са създадени точно за това.

Празници

Monday, December 28th, 2009

Чудех се какво да блогна този месец. Темата с празниците никога не остарява, та видях този пост от преди една година и продължавам да си държа на своето – тъпи празници 🙂
Цялата истерия покрай шопинга и преместването на гигантски маси хора от точка А до точка Б докарва повече негативни емоции отколкото празниците правят позитивни.
Реших да си направя новогидшното ходене на кино, а то се оказа че за “Аватар” в IMAX за дни напред всички места са запазени. Нищо – за сега гледам на ново Firefly и продължавам да му се кефя 🙂