C, PHP, VB, .NET

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


Авторски архив

* Перманентен маркер

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

Днес в един от кабинетите в ТУ някой хитро беше написал няколко думи върху бялата дъска с перманентен маркер. Добре, че се е усетил навреме и нямаше голяма щета.

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

.

 


* Списъци, динамични масиви, стекове и опашки

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

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

.

 


* Бебетата при раждането

Публикувано на 23 октомври 2009 в раздел Кучета.

Ето това се казва "шеметен ден", т.е. ще говоря за сряда, когато се раждаха кученцата. Отначало да си кажа - не спах цяла нощ. Берра още вторник вечерта започна да диша много тежко с отворена уста. На моменти дори беше плашещо. Обикаляше целия апартамент и си търсеше място за раждане. Ние такова вече бяхме осигурили: Прочети още...

.

 


* Берри ражда

Публикувано на 22 октомври 2009 в раздел Кучета.

Тази статия ще е малко в стил Twitter, но след цяла нощ липса на сън от мен, Милена и естествено Берри - тази сутрин към 6:45 започнаха контракциите. След 7:00 почти мигновено едно след друго излезнаха три малки палета. Докато пиша виждам, че на път е четвърто. Скоро ще има и снимки на малките бебчета :)

.

 


* Изключения дефинирани от потребителя

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

Вече се запознахме подробно как се хвърлят изключения в Java. Веднага остава въпроса "можем ли ние сами да си дефинираме изключения". Отговорът е положителен.

Всичко, което трябва да направите при дефиниране на изключение е да създадете клас, който наследява клас Exception: Прочети още...

.

 


* Wait, notify и notifyAll

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

Вече се запознахме с методът sleep() за нишки в Java, както и възможността да прекъснем "спането" на нишката чрез метод interrupt().  Използването на метод sleep() всъщност прехвърля текущата нишка в "Not Runnable" статус за определен период от време и по този начин дава процесорно време на другите нишки. Важно е да се спомене, че ако методът, който е извикал sleep(), е синхронизиран (synchronized), никой не може да достъпи обектите в него по време на неговия "sleep" период! Извикването на "interrupt()" за тази нишка ще прекъсне sleep() преждевременно.

Когато имаме обект (говорим за който и да е обект създаден с оператор new), разполагаме с нестатичен метод Object.wait(). Този метод на пръв поглед предизвиква същия ефект както Thread.sleep() - прехвърля текущата нишка (тази, която е извикала метода) в "Not Runnable" статус за определено време. Такъв обект се нарича "заключващ обект" за нишката. Първата разлика е, че Object.wait() може да бъде извикан само в синхронизиран метод. Втората разлика е, че Object.wait() може да приспи нишката за неопределено време, докато Thread.sleep() е с фиксирано. Освен това sleep() е статичен метод - по-правилно е да го извикваме чрез Thread.sleep(), а не чрез инстанция на обект. Прочети още...

.

 


* Синхронизация на нишки

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

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

.

 


* Ревю – 200

Публикувано на 17 октомври 2009 в раздел Музика.

Днес бях много приятно изненадан от една нова песен на Васил Гюров (формално на Ревю). По принцип откакто Милена Славова започна все по-малко да присъства в Ревю групата започна да наподобява като стил на Нова Генерация (приемете го като мое лично мнение). В това няма нищо нелогично естествено, тъй като все пак и Ревю и Нова Генерация имаха едни и същи корени. Все пак радващото е, че Васко продължава да прави нови и все по-качествени парчета. Личи си когато някой си върши работата със сърце, а не от комерсиални подбуди.

В песента "200" Гюров е събрал доста впечатляващ състав - Кирил Маричков (Щурците), Денис Ризов (една от най-любимите ми групи - Ахат) и Иван Лечев (ФСБ)! Прекрасното акустично звучене (типично за Ревю) е запазено, което няма как да не ме зарадва. Интересното е, че песента освен всичко е и доста тежка. Може би се дължи отчасти на доста многото бас от инструментите, но според мен най-главна е цялостната атмосфера на песента. Ако някой от вас обича такъв стил леко меланхолична музика, то съм сигурен, че ще оцени много високо тази песен: Прочети още...

.

 


* Нишки

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

Понятието "нишки" можете да разгледате като "разклонение на една програма на подпрограми, които работят едновременно". Представете си например един HTTP сървър. Работата, която извършва е да прехвърля данните поискани от даден клиент. Когато обаче има повече от един клиент едновременно, то ако нямаме "многонишковост" те трябва да се изчакват един друг на "опашка". Ако имаме един клиент, който изтегля огромно количество информация, то всички останали би трябвало да го изчакват, а това определено не е уместно. Пускането на нишка за всеки един клиент означава, че ние ще обслужваме всички с равно количество процесорно време, независимо кой се е свързал с HTTP сървъра първи, кой втори и кой последен. Прочети още...

.

    Коментарите са изключени за Нишки
 


* Константи в Java

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

Константите в Java се създават чрез ключова дума "final". Както е по дефиниция - константите задължително се инициализират и след това не могат да бъдат променяни:

   final int x = 5;
   // x = 6; <<< Не е възможно

В Java обаче е възможно константата само да се декларира и да бъде инициализирана по-късно: Прочети още...

.