C, PHP, VB, .NET

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


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

* SameSite cookies

Публикувано на 12 май 2020 в раздел ОСУП.

С приемането на RFC6265 и имплементирането на технологията в модерните браузъри, се прие нов начин за справяне с Cross Site Request Forgery. Идеята е да се добави възможност за рестрикция на използването на бисквитка (cookie) от страна на браузъра при заявка, която е генерирана чрез препращане от чужд сайт (cross site request). Досега ако например siteA накара браузъра на клиента (независимо дали автоматично чрез JavaScript или по волята на самия потребител натискайки линк/бутон) да направи GET или POST заявка към siteB и потребителят има записана бисквитка в siteB, тази бисквитка се предаваше и се използваше от siteB при изпълнение на въпросната заявка. Например ако потребителят например е логнат и има отворена сесия в siteB, той ще продължи да е логнат и при cross site заявки. С нововедението за атрибут SameSite на бисквитките се предоставя възможност това да не се случва.

В PHP досега бисквитките се създава чрез функцията setcookie, на която се подаваха серия параметри. Например в пълния си вид (без пропуснат параметър) се правеше следното: Прочети още...

.

 


* Изчисляване на прецизност на диагностични тестове за заболяване

Публикувано на 05 май 2020 в раздел Вероятности.

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

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

.

 


* Свинско с праз

Публикувано на 02 април 2020 в раздел Храна.

Това е поредната супер лесна рецепта за много вкусно ястие. Взимате 800 гр. свинско и го запържвате на хапки: Прочети още...

.

 


* Използване на мобилен телефон като уебкамера с DroidCam

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

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

Стъпките за това са: Прочети още...

.

 


* Алгоритъм RSA – обяснен с пример

Публикувано на 16 февруари 2020 в раздел ОСУП.

RSA е алгоритъм за асиметрично криптиране на данни. Използват се два ключа, с които се криптира и съответно декриптира информацията. Измислен е през 1983 г. от Роналд Ривест, Ади Шамир и Леонард Адлеман. Използва се и до днес като един от основните алгоритми за пренос на криптирана информация в интернет с протокола TLS, както и при електронни подписи. Основната идея е имайки единия ключ да е математически много трудно да бъде изчислен какъв е другия. По този начин става възможно да даваме свободно единия от ключовете като "публичен" (приема се, че всички го знаят), а другия да остане "таен" (само собственика го притежава и никой друг не може в разумно време да го намери). Прочети още...

.

 


* Уникалната дата 02.02.2020 г.

Публикувано на 02 февруари 2020 в раздел Математика.

Във Фейсбук се разпространи новината, че датата 02.02.2020 г. е уникална и няма да се случи в следващите Х години (не казвам колко, защото едни споделят едно, други друго - къде вярни, къде не). Много хора видяха, че тя е палиндром - ако я прочетете обратно, се получава същото, - но със сигурност няма нужда от чакане на Х години, а само една, защото следващата такава например е 12.02.2021 г. Е какво тогава ѝ е уникалното на първата? Прочети още...

.

 


* Switch изрази

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

В Java 12, а по-късно подобрено в Java 13, се появиха тестови "Switch изрази", които се очаква да станат официална част от версия 14. Досега Switch беше само оператор. Вече може да бъде използван и като израз, който връща стойност. Например ако имаме следното решение за превръщане на число в текстовият низ за ден от седмицата: Прочети още...

.

 


* Текстови блокове

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

Един чест и досаден проблем за разработчиците на Java винаги е бил четимостта на кода. Един от няколкото основни фактора за лошо визуализиран код винаги са били многоредовите низове. Например ако искаме да подобрим четимостта на следната SQL заявка: Прочети още...

.

 


* Бягство от затвора с графи

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

Има 10 затворника, всеки от които е номериран с число от 1 до 10. Дадени са десет шкафчета, които са номерирани с числа от 1 до 10, както и десет карти, на които също са изписани числата от 1 до 10. Произволно във всяко шкафче е сложена по точно една карта.

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

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

.

 


* Квадратични форми – задачи за упражнение

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

Задача 1. а) Приведете квадратичната форма в каноничен вид чрез групиране, намерете матрицата ѝ преди и след канонизирането и намерете матрицата на преобразуванието:

f(x1,x2,x3) = (x1)2 + 3(x2)2 + 5(x3)2 + 2x1x2 - 2x1x3 + 4x2x3

б) Приведете квадратичната форма в каноничен вид чрез ортогонална трансформация. Намерете матриците на формата преди и след канонизирането и намерете матрицата на преобразуванието: Прочети още...

.