сряда, 28 август 2013 г.

[Project] MindMap / Мисловни карти - що е то?

Blog of Syssboxx

Като част от обучението ми в Академията на Телерик беше участието ми в екипен проект по курса "Споделяне на знания и работа в екип". Неговата основна цел беше допълване на статиите в бълграската Уикипедия по теми, свързани с програмиране, разработка на софтуер, софтуерно инженерство и информационни технологии.

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

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

А ако желаете за разберете в подробности що е то мисловна карта и какво представлява - ето линк към завършената статия.

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

Накратко работата по проекта беше интересна и научих доста неща, ровейки се по темата. Попаднах и на мисловни карти, които могат да бъдат определени като истински шедьоври. Мисловните карти определено могат да бъдат доста полезни, особено за хора, които възприемат информацията предимно визуално.

А ето и директното приложение на наученето по темата - мисловната ми карта на тема текстови файлове :)

понеделник, 5 август 2013 г.

[Events] Game Programming Courses

Blog of Syssboxx

Обичате да играете на игри и може би се питате как точно се създават те?

Искате да създадете своя собствена игра, но не знаете от къде да започнете?

В този случай курсовете, които ще ви предложа са точно за вас. Дори и да сте начинаещи след курсовете ще знаете как да създавате прости игри с Python или с C# и Microsoft XNA и със сигурност ще сте се забавлявали докато учите :)

Повече информация за формата на курсовете и програмата им можете да получите от линковете по-долу.

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

An Introduction to Interactive Programming in Python


Програма на курса

Игрите, които ще бъдат създадени по време на курса са :

Rock-Paper-Scissors-Lizard-Spock"
"Guess the Number"
"Stopwatch"
"Pong"
images "Memory"
"Blackjack"
"RiceRocks"

Beginning Game Programming with C#

[Events]

Blog of Syssboxx

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

събота, 3 август 2013 г.

[Debugging] Полезни техники

Blog of Syssboxx

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

Полезни клавишни комбинации

F5 - влизаме в режим на дебъгване

F5 + SHIFT - изход от режим на дебъгване

F9 - поставяне на точка на прекъсване (breakpoint) за проследяване на изпълнението й

F10 Step Over - изпълнява програмата в дебъг режим ред по ред, без да влиза в кода на методите.

F11 Step Into - изпълнява методите в програмата, след приключване на метода се връща до реда на извикването на метода.

F11 + SHIFT - връща ни до реда на извъкването на метода, преди да е плиключило изпълнението на метода.

F12 - отвежда ни до дефиницията на метод или клас. Чрез F10/F11 се връщаме обратно до текущния ред.

Полезни техники за дебъгване

Проследяване на стойност

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

Прекъсване при изпълнено условие / Conditional Breakpoint

Задаване на конкретно условие, при което програмата да спре изпълнението си.Опциите се появяват при задържан десен клавиш над точката на прекъсване. Това може да бъде полезно в цикли, когато кодът ни трябва да се изпълнвява например 100 пъти, а нас ни интересува единствено случая когато променливата е със стойност 50.Други полезни опции за избор на условие са : Location, HitCount, Filter, WhenHit, EditLabel. Последното позволява именуване на точките на прекъсване, което прави навигацията между тях много по-лесна.

Друг начин за изпъление на точно определен ред е задавайки опцията Set Next Statement с десен бутон върху променливата. След това вече можем да го изпълним чрез Go to Next Statement.

Immediate Window

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

Debug>Window>Immediate Window

Добавяне в списък за наблюдение / Add Watch, QuickWatch

Чрез Add Watch добавяме избраната променлива или израз в списъка от локални променливи в прозореца Watch, чрез което можем да следим как се променят стойностите й при изпълнението на програмата. тези стойности могат да бъдат и временно променени, за да се проследни изпълнението при определената стойност - например при i=3

Проследяване на извиканите методи / Call Stack

В дебъг режим ot меню Debug>Windows>Call Stacks можем да проследяваме всеки метод колко пъти е бил извикван.

Насоки

Следните насоки могат да подпомогнат по-лесното откриване на проблемите в кода

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

Известно количество параноя при дебъгването не е излишно. Не трябва да се приема факата, че всичко работя така, както се очаква

Да се оправя само по един един проблем наведнъж.

Да се разучат възможностите на конкретния дебъгер.

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

още насоки за дебъгване