C, PHP, VB, .NET

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


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

* Как да пишем системи и матрици в Word и с Latex

Публикувано на 25 октомври 2017 в раздел Линейна алгебра.

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

1. Как да въвеждаме системи от линейни уравнения в Microsoft Word: Прочети още...

.

 


* Основни принципи на оценяване в образованието

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

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

.

 


* Ентропно кодиране

Публикувано на 10 септември 2017 в раздел Информатика.

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

.

 


* Корекция на грешки с код на Хеминг

Публикувано на 04 септември 2017 в раздел Информатика.

Когато четем и записваме информация на хард диска на локалния компютър, рядко се замисляме "какво ще се случи ако стане проблем". Грешките се случват толкова рядко, че този проблем е пренебрежим. В някои езици за програмиране компилаторите ни принуждават да следим за Input/Output изключения при четенето на файлове, но това често ни се струва като досадно задължение. И все пак проблемът е фундаментален - имаме изпращане на информация от една точка в друга през комуникационен канал, но какво ще се случи ако има някаква грешка по време на преноса? Вече се досещате, че проблемът е често наличен при преноса на информация между два компютъра през мрежа, но може и да се изненадате, че същия проблем е наличен дори при комуникацията между централем процесор и рам памет! Прочети още...

.

 


* CSS Grid

Публикувано на 26 август 2017 в раздел ХHTML.

CSS Grid е техника за позициониране на елементи от уеб сайт на екрана на браузъра, които позволяват много лесно пренареждане. По този начин се постига изключително лесно т.нар. „responsive design“ - при различни екрани сайтовете изглеждат по различен начин, но кода се пише веднъж и е един и същ. CSS Grid използва позициониране на базата на редове и колони, т.е. е „двуизмерен“. Основната цел зад разработчиците при създаването му е била да изчисти „хаковете“ при досега използваните техники за позициониране - т.нар. floats например. Основното предимство, до което води, е ясно четим HTML код от една страна и много лесна реализация на responsive design чрез CSS от друга. Прочети още...

.

 


* Играта „Бикове и Крави“ с Netbeans

Публикувано на 10 август 2017 в раздел УКИ.

Играта Бикове и Крави се играе от двама играчи. Единият си намисля четирицифрено число, което не започва с 0 и се състои от четири различни цифри. Вторият играч трябва да отгатне това число. В процеса на игра вторият играч дава предположения, за които първия брои и отговаря калко "бикове" и колко "крави" има. Идеята на тези бикове и крави е да подскажат на първия играч колко близо е до познаване на числото. Те се броят по следния начин: Прочети още...

.

 


* PHP Opcache конфигурация

Публикувано на 24 юли 2017 в раздел ОСУП.

PHP е скриптов език, от което следва, че при всяко зареждане трябва да се извърши процес на компилация. Това, както може да се досетите, губи известно време, което може да се натрупа сериозно при по-натоварени сайтове. Още по-лошото е, че води и до дискови операции - файлът със сорс кода трябва да се прочете от диска, за да бъде компилиран. Тук на помощ идват кеширащите модули - OpCache, APC или Xcache. Идеята при всички е, че се заделя рам памет, в която се пазят готови компилирани скриптове. По този начин, ако някой желае да отвори даден скрипт, който вече е бил отварян и е кеширан, значително ще се ускори времето за изпълнение, защото напълно ще съкрати принципно бавния (от компютърна гледна точка) процес на компилиране. Най-популярният кеширащ механизъм за PHP е Zend Opcache и затова тук ще се спрем именно на неговата конфигурация. Прочети още...

.

 


* Clickjacking

Публикувано на 03 юни 2017 в раздел ОСУП.

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

.

 


* Играта Pong с Netbeans

Публикувано на 23 май 2017 в раздел УКИ.

Реализиран е вариант на играта Pong с Netbeans. Остава да се донаправят следните неща:

  • Малко допълнителен произволен елемент при промяна на ъгъла при отбиване на атака - така играта няма да е толкова еднотипна откъм ъгли при атаки;
  • Нива на трудност с по-умен AI.
  • Да се използва SwingUtilities.invokeLater(...) при промяна на компонентите.

Изтеглете архива от тук: IcePong

П.П. В примерното решение нишките се стартират в конструктора. Това работи, но е по-добре да ги стартирате с WindowOpened събитие на JFrame формата.

.

 


* Blind SQL Injection

Публикувано на 05 април 2017 в раздел ОСУП.

Когато се говори за blind sql injection се има предвид, че атаката се извършва без атакуваната страница да дава грешка. Вместо това хакерът вижда съвсем нормален отговор, но според него успява да определи дали заявката му е минала успешно или не.

Нека имаме база от данни със статии: Прочети още...

.