27 декември 2017 г.

Защо НЕ Е нужно да имаш перфектни отношения със семейството си

Това е едно нещо, което наистина ме смазва отвътре, особено сега покрай празниците... Просто не се чувствам много близък със семейството си!

Дълго време мислех, че нещо ми има, ако не успявам да се разбера с всички. Ако пък и със собственото ми семейство нямам наистина дълбока връзка (да си казваме всеки ден "обичам те", да обсъждаме всичките проблеми в живота свободно помежду си и т.н), то значи съм направо трагедия. Сега вижданията ми леко започват да се променят...


Източник: www.slawekgruca.com

7 ноември 2017 г.

Как да общуваш с жени ПРАВИЛНО (Част 1) - [ВЪТРЕШНА ИГРА]

Първата ви реакция сигурно e "Какво по дяволите е това!?".

Разбирам. И на мен ми се потят пръстите и се чудя дали е добра идея да се захващам с превода на това чудо.

Ще го направя. Просто защото този материал ми помогна адски много и искам да го споделя с други хора, които също се намират в задънена улица и се чудят какво да направят, за да се измъкнат. Tази информация БУКВАЛНО промени живота ми...




Това е превод на записки от два видео продукта за дейтинг/запознанства на Real Social Dynamics - PIMP & Foundations.

Ще ви е много по-лесно да усвоите написаното, ако преди това сте прочели другия ми превод "СОЦИАЛНАТА МАТРИЦА: Истината за всичко около нас"!

Това е по-скоро като практическо ръководство, а другият превод е предимно теория.

Някои термини като "стейт", "конгруентност", "силна реалност", "реагиране", "стойност" и така нататък, са обяснени в другия превод.

Приятно четене! 😎


--- СЪДЪРЖАНИЕ ---


---

1. Защо ти е необходимо да знаеш как да общуваш с жените?
  • Светът е пренаселен. Очевидно хората успяват да си намерят партньор и без съзнателно да знаят как точно се случва това.
  • Ако чакаш "съдбата" или "късмета", за да срещнеш подходящото момиче, това може да отнеме много дълго време и те оставя без никакъв контрол върху това на какъв човек ще попаднеш.

24 август 2017 г.

Защо живеем ГРЕШНО (+ решението)

Живеем в общество, което награждава опростените неща.

Кое ти звучи по-добре?

А) Можеш да имаш плочки на корема, ако се храниш правилно, спортуваш редовно и поддържаш този режим години наред.
Б) 6 ПЛОЧКИ ЗА 6 МИНУТИ! ВИЖ ТАЗИ ТАЙНА, КОЯТО ЩЕ ТЕ ВКАРА ВЪВ ФОРМА МОМЕНТАЛНО

Йеп, така и предположих.



Пристрастени сме основно към 2 типа умствена стимулация:

4 август 2017 г.

"Голямата илюзия" - как да не се храниш с лъжите на социалното кондициониране

Храним се с ЛЪЖИ.


Какво е социално кондициониране? Т.нар. "социално кондициониране" е процесът на трениране на хората от ранна възраст да се държат по начин, който е приет от обществото за допустим и "нормален".

То идва от медиите, обществото, родителите ни, работното ни място, приятелите ни, религията, филми, музика, телевизия, реклами, билбордове, радио, списания. От деня, в който се родиш, социалното кондициониране те удря от всички страни.

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

Проблемът е, че често ТОЗИ ПЪТ НЕ РАБОТИ.

24 юни 2017 г.

СОЦИАЛНАТА МАТРИЦА: Истината за всичко около нас (Част 4)

Ето и превод на последната част.

Дано научите нещо полезно. 😉

Ако се чудите за какво иде реч, погледнете предишните части:
- Част 1: http://dvt32.blogspot.bg/2017/02/1.html
- Част 2: http://dvt32.blogspot.bg/2017/03/2.html



---

Ден 4 (записки)


Бариери на успеха (продължение)

12 юни 2017 г.

Как да си "социален" ако си интроверт (без да пиеш и без магически хапченца)

Някои от вас знаят, че най-слабата страна в живота ми винаги е била общуването.

Трудно ми беше да се изразявам, да кажа как се чувствам или какво искам. Не знам дали е причина или следствие, но имах и ниска увереност.

С течение на времето разбрах, че има начин, по който можеш да си "социален" и БЕЗ да имаш увереност!

Преди да продължа, искам да кажа, че, РАЗБИРА СЕ, трябва да работите върху себе си и върху цялостната си увереност. Но фактите са си факти, можеш да бъдеш "готин", "общителен" и т.н., дори и без да си уверен или общителен по природа.

И също така НЕ ГОВОРЯ за това да се напиеш или да вземеш магическо хапченце, което да те отпуши.

Аз съм абсолютен health freak, а също така и не обичам да разчитам на външни фактори за собственото си щастие. Философията ми е, че да, хубаво е да имаме тези неща, но трябва да можем да си осигурим приятен живот и без тях.

Както и да е, нека да не губя ценното ви време с излишни приказки. Процесът е изключително прост, но не e задължително "лесен". Това, както и много други неща, го научих от RSDTyler (страшен пич).



Всичко се изразява в 3 стъпки:

4 юни 2017 г.

СОЦИАЛНАТА МАТРИЦА: Истината за всичко около нас (Част 3)

Връщам се отново към превода на тези ценни записки.

Това е за хора, които ИСКАТ ПРОМЯНА, а не просто поредната статийка, която да ги забавлява за следващите няколко минути. Ако сте от втората група, просто няма смисъл да губите времето си. 😉

Ако се чудите за какво иде реч, погледнете предишните части:
- Част 2: http://dvt32.blogspot.bg/2017/03/2.html

ЗАБЕЛЕЖКА: Този път вмъкнах някои свои допълнения към оригинала, защото ми се стори, че липсват някои съществени части.


---

Ден 3 (записки)


Стейт (продължение)
  • Ето какво трябва да направиш ако умът ти не ти дава достъп до стейт:
  • Принцип #1 - Ти не си твоя ум.
  • Ти знаеш как се държи един готин човек, защото можеш да го познаеш, когато го видиш. Имаш ръководството в главата си, но умът ти просто не ти дава достъп до него.
  • Представи си, че летиш със самолет и умът ти има ръководството за летене. Умът ти не иска да излетиш и няма да ти даде ръководството, но ти въпреки това започваш да се движиш по пистата.

18 май 2017 г.

№1 начинът да НЕ ТИ ПУКА

(Публикувано за пръв път на 12.03.2017)

Днес ще ви споделя нещо, което наистина преобърна живота ми. И макар това да е едно от най-големите clickbait заглавия, които съм се престрашавал да напиша досега, съдържанието си струва.

Общо взето всички ние жадуваме за одобрение.

Постоянно гледаме и си мислим "какво ще си помислят хората за мен ако направя това".

Филтрираме се и не казваме това, което наистина мислим.

Толкова силно жадуваме това одобрение, че сме стигнали ниво, в което се чувстваме ЕМОЦИОНАЛНО ЗАСЕГНАТИ когато нямаме достатъчно лайкове на снимките или когато някой ни е seen-нал съобщението.


За добро или за лошо - това е реалността. Хей, аз също страдам от това и до ден днешен!
Въпросът е - как да излезем от омагьосания кръг? Дори и да знаем какво се случва, на нас ни е нужно решение. Едно нещо е да знаеш, че проблемът съществува, но съвсем друго е да седнеш и да решиш този проблем.

My Bad Code #1 - Как да НЕ пишете код (една от първите ми програми)

Е, отдавна не бях писал на тема програмиране, но нека бързо променим това! Не, не съм се отказал и не, не съм загубил интерес - просто приоритетите ми малко се измениха. 😉

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

В тази поредица ще ви покажа ПРОВАЛИТЕ си, за да видите, че всъщност програмирането НЕ е нещо, което научаваш веднъж като да караш колело и след това вече всичко си стои на мястото завинаги.

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



В този пост ще ви покажа една от първите програми, които НЯКОГА съм писал.

Be gentle. 👀

7 май 2017 г.

Как да направиш живота си ВЪЛНУВАЩ (без да го съсипеш)

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

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

Плашещо е, защото след време се събуждаш и си казваш "къде отиде времето", без да имаш кой знае какво, с което да се похвалиш...

Това всъщност не е чак толкова необичайно. Ние хората обичаме комфорта и психологически сме нещо като растения - когато намерим всичко от първа необходимост (храна, благоприятна среда и т.н), предпочитаме да си останем където сме.




22 март 2017 г.

СОЦИАЛНАТА МАТРИЦА: Истината за всичко около нас (Част 2)

Време е да се захвана отново с превода на това чудо.

Няма да обяснявам за какво става дума, просто вижте предишния пост.




Информацията тук беше много полезна за мен и наистина промени живота ми в положителна насока.

Надявам се и вие да получите нещо от нея!

---

Ден 2 (записки)


Идентичност
  • Понятие, което едновременно те свързва и те отделя от социалната ти среда. Това е представата ти за това кой си и по какво се различаваш от другите. -> "Ако се държа по този начин, хората ме одобряват", "Хората ме мислят за готин човек, следователно имам позволение да се държа като готин човек".
  • Непрекъснато обработваме света около нас през своята идентичност

21 февруари 2017 г.

СОЦИАЛНАТА МАТРИЦА: Истината за всичко около нас (Част 1)

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

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

Както и да е, днес ще ви споделя може би най-ценното нещо, което съм чел през... целия си живот? Този документ представлява компилация от записки от един DVD семинар от 2008 година, който има цел да помогне на мъже да общуват с жени, но всъщност е много повече от това.



Това за мен е наръчник за живота. Моята Библия... добре де, спирам. 😅

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

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

30 януари 2017 г.

AlgorithmO #19 - Търсене на символни низове (наивен подход)

Днес ще ви покажа един прост алгоритъм за намиране на символен низ (последователност от символи) в друг символен низ.

Сигурно ви е минавало през ума, че има някаква магия, която се случва когато използвате методи като contains() или indexOf() в Java при работа със String обекти (примерно).

Нека да видим как става! 😀


---



ОПИСАНИЕ:

Този алгоритъм спада към "brute force" категорията, защото при него последователно преглеждаме всеки един символ от символен низ, докато не намерим съвпадение с търсения от нас "подниз" (substring).

29 януари 2017 г.

AlgorithmO #18 - Обхождане на двоични дървета

Днес ще се позанимаваме с нещо малко по-различно - обхождане на двоични дървета.

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

Тъй като последните няколко поста бяха за алгоритми от категорията "разделяй и владей", може да се учудите, но и този спада към тях. Причината е, че двоичното дървото като структура включва корен, ляво поддърво и дясно поддърво (т.е. частта "разделяй" е в самата й дефиниция). Това подсказва, че обработката на такива дървета ще използва именно подхода "разделяй и владей".

Нека да видим за какво иде реч. 😀

---

Трудно беше да избера картинка за този пост, но тази е непобедима... :)


ОПИСАНИЕ:

"Обхождане" означава да преминем през всеки един елемент на дадена структура. В структури като стек, опашка. свързан списък и т.н. има само един логически път, по който можем да направим това обхождане.

23 януари 2017 г.

AlgorithmO #17 - Сортиране чрез сливане (Merge sort)

Днес ще ви покажа още един интересен алгоритъм за сортиране, който се нарича "Merge sort". Подобно на Quicksort, и този алгоритъм спада към категорията алгоритми "разделяй и владей" и е един от най-популярните и широко използваните.

Отново алгоритъм, който на пръв поглед изглежда страшен, но всъщност само трябва да го приложите няколко пъти, за да видите, че това е просто заблуда. 😉 По-трудната част тук е имплементацията на алгоритъма.

---


ОПИСАНИЕ:

Както казахме, това е един от най-популярните алгоритми за сортиране, със сложност (в най-лошия случай) O(n log n), правейки го подходящ за списъци с голям брой елементи (и неподходящ за списъци с малък брой елементи).

Идеята зад Mergesort лесно ще ни даде обяснението защо алгоритъмът е в категорията "разделяй и владей".

20 януари 2017 г.

AlgorithmO #16 - Бързо сортиране (Quicksort)

Днешният алгоритъм е доста интересен и всъщност доста ме плашеше преди време. 😀 Това е един от най-популярните алгоритми за сортиране и е широко използван в практиката, тъй като е подходящ за големи списъци от данни.

Това е Quicksort!

Погледнете обяснението за QuickSort в AlgoList - голяма част от информацията в този пост е взета от там (страхотен сайт с много добри обяснения за редица популярни алгоритми).

---



ОПИСАНИЕ:

Quicksort е алгоритъм за сортиране от тип "разделяй и владей" (разделяме задачата за сортиране на по-малки и накрая обединяваме малките решения в едно голямо).

Както казахме, Quicksort е най-подходящ когато искаме да сортираме големи списъци от данни.

Средната му сложност е O(n log n), а в най-лошия случай е O(n^2), макар че в повечето случаи се представя по-добре от други подобни алгоритми.

АЛГОРИТЪМ:

1. Избираме "осов" елемент (нека го означим с P от "pivot")
- елементът с индекс (L+R) / 2 (където L е първият валиден индекс от масива, а R последният) *

2. Подреждаме и разделяме масива по следния начин **:
-  всички елементи по-малки от P отиват в лявата част на масива (преди P)
-  всички елементи по-големи от P отиват в дясната част на масива (след P)
-  всички елементи равни на P могат да останат или в лявата, или в дясната част на масива

3. Сортираме двете разделени части
- прилагаме стъпка 1 и 2 за лявата част
- прилагаме стъпка 1 и 2 за дясната част

* Елементът може да бъде и всеки друг от масива, но по-удобно е да е някъде по средата.
** Не е задължително частите на разделения масив да са с еднакъв брой елементи.

Как става подреждането и разделянето?

1. Имаме 2 брояча - i и j.
   В началото i сочи към първия елемент на масива (или подмасива),
   a j към последния елемент.

2. Започваме да увеличаваме стойността на i с 1
  докато не намерим елемент със стойност по-голяма или равна на P (arr[i] >= P)

3. След като намерим този елемент, започваме да намаляваме стойността на с 1
  докато не намерим елемент със стойност по-малка или равна на P (arr[j] <= P)

4. Ако i <= j:
- разменяме стойностите на arr[i] и arr[j]
- увеличаваме стойността на i с 1
- намаляваме стойността на j с 1

5. Ако i > j, алгоритъмът за подреждане приключва,
- иначе повтаряме стъпки 2, 3 и 4

След подреждането на масива:
- всички елементи преди arr[i] ще са със стойност по-малка или равна на P
- всички елементи след arr[j] ще са със стойност по-голяма или равна на P.

ПРИМЕР:

Нека сортираме следния масив (примерът ще е дългичък 😅):

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
12
5
26
7
14
3
7
2


Първата ни работа е да определим осов елемент! Тъй като казахме, че това ще е елемент с индекс (L+R) / 2, а в случая L = 0 и R = 8, това ще е елементът с индекс 4 (и стойност 7), т.е. P = 7.

Сега идва интересната част - подреждането и разделянето на масива.

Нека означим елементите с цветове, за да е по-прегледно:
- със син цвят ще бъде оцветен осовият елемент P
- с червен цвят ще бъде оцветен елементът, който стои на позиция i
- със зелен цвят ще бъде оцветен елементът, който стои на позиция j

В началото i = 0 (индекс на първия елемент), a j = 8 (индекс на последния елемент)

Масивът ще изглежда така:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
12
5
26
7
14
3
7
2


Сега ще увеличваме i докато не намерим елемент, за който е вярно, че arr[i] >= 7. Тъй като 1 < 7, увеличаваме стойността на i с единица:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
12
5
26
7
14
3
7
2


Този път arr[i] = 12 и е вярно, че arr[i] >= 7. Спираме да увеличаваме i.

Сега, обаче, започваме да намаляваме стойността на j, докато не намерим елемент, за който е вярно, че arr[j] <= 7.

Преди самото намаляване на стойността, проверяваме дали текущият елемент не отговаря на това условие. Оказва се, че елементът отговаря на условието (j = 8, а arr[j] = 2 и е вярно, че arr[j] <= 7).

Сега:
- разменяме стойностите на arr[i] и arr[j] (ще отбележим разменените стойности с удебелен шрифт)
- увеличаваме i с 1
- намаляваме j с 1

След всичко това, масивът ще изглежда така:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
5
26
7
14
3
7
12


Тък като сега i = 2, j = 7 и все още е вярно, че i <= j, повтаряме алгоритъма за размяна на елементи.

Може да ви се струва доста работа за толкова проста цел, но всъщност става все по-лесно колкото повече пъти приложите алгоритъма. 😉

Така, продължаваме напред! Започваме увеличаването на i докато не намерим елемент, за който е вярно, че arr[i] >= 7. Първо проверяваме дали arr[i] в момента (i = 2, arr[i] = 5) не отговаря на условието и, за жалост, не отговаря. Увеличаваме i с единица:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
5
26
7
14
3
7
12


Този път имаме късмет, защото arr[i] >= 7 (i = 3, arr[i] = 26). Започваме намаляването на стойността на j, но първо проверяваме дали arr[j] <= 7. 

Оказва се, че условието е изпълнено (j = 7, arr[j] = 7, arr[j] <= 7), затова:
- разменяме елементите arr[i] и arr[j]
- i++ (намаляваме стойността на i с 1)
- j-- (намаляваме стойността на j с 1)

Масивът ще изглежда така:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
5
7
7
14
3
26
12


i = 4 и j = 6. Следва, че i <= j, затова повтаряме познатата до болка процедура.

Преди да започнем с увеличаването на i, виждаме, че стойността на arr[i] е равна на осовия елемент, следователно направо преминаваме към намаляването на j. 

Още една добра новина - няма да се налага да намаляваме и j, защото j = 6, arr[j] = 3 и arr[j] <= 7.

Направо:
- разменяме arr[i] и arr[j]
- i++
- j--

Масивът ще изглежда така:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
5
7
3
14
7
26
12


Стигнахме до интересна ситуация. Сега i = j. Какво правим сега? Абсолютно същото като преди. 

По алгоритъм търсим елемент, за който arr[i] >= P (P = 7) и ако е нужно, увеличаваме стойността на i. Виждаме, че в момента arr[i] отговаря на това условие и затова няма да увеличаваме i.

След това проверяваме дали arr[j] <= P и ако не, намаляваме стойността на j с 1 докато не намерим отговарящ на условието елемент. В момента arr[j] > 7, следователно намаляваме j с 1:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
5
7
3
14
7
26
12


Най-накрая! i > j! Това означава, че приключихме... с 2-рата стъпка от QuickSort алгоритъма! 😅

Сега трябва да повторим всичко това, но за 2-та подмасива, които се образуват:
- [1, 2, 5, 7, 3]
- [14, 7, 26, 12]

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

---

Ляв подмасив
1) 1, 2, 5, 7, 3
P = 5
1, 2, 5, 7 3
1, 2, 5, 7, 3
1, 2, 3, 7, 5
1, 2, 37, 5
---
1.1) 1, 2, 3 -> сортирана част
---
1.2) 7, 5
P = 7
7, 5
5, 7
---
1.2.1) 5 -> сортирана част
1.2.2) 7 -> сортирана част


Десен подмасив
2) 14, 7, 26, 12
P = 7
14, 7, 26, 12
14, 7, 26, 12
7, 14, 26, 12
---
2.1) 7 -> сортирана част
---
2.2) 14, 26, 12
P = 26
14, 26, 12
14, 26, 12
14, 12, 26
---
2.1) 14, 12
P = 14
14, 12
12, 14
---
2.2.1) 12 -> сортирана част
2.2.2) 14 -> сортирана част
---
2.2) 26 -> сортирана част


* Забележка: Quicksort в някои случаи ще навлезе дори още по-дълбоко в рекурсията. Тук спестявам тези допълнителни извиквания, които се правят след като даденият подмасив (или подподмасив 😁) вече е сортиран.

Накрая просто обединяваме сортираните части (започвайки от левия подмасив) и получаваме сортирания масив:

Индекс
0
1
2
3
4
5
6
7
8
Стойност
1
2
3
5
7
7
12
14
26


ИМПЛЕМЕНТАЦИЯ (Java):

---

Това е за днес! Този пост ме поизмъчи повечко, но ако видите някоя неточност - свиркайте! 😀