C, PHP, VB, .NET

Дневникът на Филип Петров


Архив за ноември, 2013

* Мария Илиева и Zafayah – Условие №1

Публикувано на 30 ноември 2013 в раздел Музика.

Не съм фен на регето, но тази песен много ми хареса. Чух я в X-Factor по телевизията. За първи път песен на Мария Илиева ми харесва от първия път – обикновено ги оценявам като добри чак след като са спрели да са модни и спрат да ги пускат по радиото. Прочети още…

.

 


* Consumer-Producer – двустранна синхронизация с много консуматори и много производители

Публикувано на 29 ноември 2013 в раздел ПИК3 Java.

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

В този пример има споделен ресурс – чиния с храна. За нея има ограничение какво количество храна ще поеме – максимум 10 единици (по този начин усложняваме задачата, защото хората трябва да се изчакват!). Кучетата ще нападат чинията в произволен ред. Ако в нея няма храна, кучето се отдръпва, за да даде възможност на човек да добави храна (има continue в цикъла на run метода). Същото вършат и хората – те сготвят храната и гледат купичката. Ако тя е пълна, те се отдръпват и чакат. Поддържат се броячи за броя на активните кучета и активните готвачи. Ако готвачите станат повече от кучетата, някой от готвачите ще спира работата си. Прочети още…

.

 


* Consumer-Producer – едностранна синхронизация с много консуматори и един производител

Публикувано на 29 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс – чиния с храна. За нея няма ограничение какво количество храна ще поеме, затова producer (в случая Human) ще я пълни още и още независимо дали е пълна или празна. Кучетата ще се редят едно след друго и ще чакат да се напълни чинията. Използва се централен mutex, с който кучето заявява пред човека, че търси „събуждане“ (notify). Това се прави, за да се предотврати race condition, в който две кучета са събудени последователно и второто изяжда съдържанието на празна чиния (първото е изяло всичко, а човекът все още не е успял да сготви ново ястие). Освен това чинията вече е направена като обект, за да може да се синхронизира по него. По този начин се избягва race condition, при който човекът сготвя ястия в периода между пълненето на стомаха на кучето и нулирането на съдържанието на чинията. Прочети още…

.

 


* Consumer-Producer – двустранна синхронизация с един консуматор и един производител

Публикувано на 28 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс – чиния с храна. За нея има ограничение какво количество храна ще поеме, затова producer (в случая Human) ще гледа дали в чинията има храна или няма. Ако има, той трябва да изчака кучето да се наяде. Ако няма, той ще сложи сготвеното в купичката. Кучето, което яде от чинията, от своя страна също ще гледа дали в купата има храна или не. Ако има храна, то ще я изяде. Ако няма, то ще изчака човека да го повика. Прочети още…

.

 


* Consumer-Producer – едностранна синхронизация с един консуматор и един производител

Публикувано на 28 ноември 2013 в раздел ПИК3 Java.

В този пример има споделен ресурс – чиния с храна. За нея няма ограничение какво количество храна ще поеме, затова producer (в случая Human) ще я пълни независимо дали е пълна или празна. Кучето, което яде от чинията, от своя страна ще гледа дали в купата има храна или не. Ако има храна, то ще я изяде. Ако няма, то ще изчака човека да го повика. Прочети още…

.

 


* Честит първи сняг!

Публикувано на 27 ноември 2013 в раздел Семейни.

В паркът вече всичко е покрито с педя сняг. Пепи за първи път се разходи сам в снежните „преспи“.

DSC01655 Прочети още…

.

 


* Контролна работа 23.11.2013

Публикувано на 23 ноември 2013 в раздел ПИК3 Java.

В електронна игра има три вида герои – войни (warriors), стрелци (archers) и варвари (barbarians). Всеки от тях разполага с две основни сили: атака (attack) и защита (defence) – и двете цели числа (тип byte) – както и определено количество живот (health), отново цяло число (тип byte), което първоначално винаги заема максималната си стойност 127. Прочети още…

.

 


* Оптимизиране на Windows 7 за AMD FX

Публикувано на 21 ноември 2013 в раздел Общи работи.

Откакто имам новия компютър ми направи впечатление, че четири от ядрата на процесора стоят постоянно в idle режим. Включваха се да работят чак, когато има наистина голям товар – обработка на снимки, видео, пускане на по-тежка игра и т.н. Иначе при нормална работа си беше „нормално“ да виждам четири от ядрата да се товарят, докато другите четири да са на 0%. Първоначално отдадох това на някакъв хипотетичен power-saving. После обаче забелязах, че при Windows 8.1 (нещо, което набързо премахнах от своя компютър) този „проблем“ го няма. И естествено се зачетох за статии по въпроса – защо процесора се товари различно при Windows 7 и 8.1? Прочети още…

.

 


* И ръкавичките обичам :)

Публикувано на 16 ноември 2013 в раздел Семейни.

Играчките са толкова безинтересни, а предметите на възрастните са много магнетични. Сега най-интересни са дрешките. За последно намерихме ръкавички… Прочети още…

.

 


* Обувките на тати аз обичам…

Публикувано на 13 ноември 2013 в раздел Семейни.

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

.