Професионални  

Excel формули за ЕГН и период от време

Преди няколко дни колеги от административен отдел ме помолиха да им помогна – имат Excel-ска таблица с имена на хора и ЕГН, искат да изчислят датата на раждане по ЕГН-то и съответно точната възраст на човека с точност до дни.

Първо потърсих формули за извличане на датата на раждане от ЕГН (които разбира се, да работят с родени преди 1900 г. и след 2000 г. Потърсих ги от мързел, за да не ги пиша from scratch. След като намерих десетина формули в Интернет, коя от коя по-бъгави и глупаво написани, реших, че трябва дам да си я напиша. За разлика от останалите формули, които бяха базирани предимно на логически проверки, моята формула е базирана предимно на модулно делене (делене с остатък), което я прави в пъти по-къса. За логическата операция – да се определи, дали датата е преди 1900 г. или след 2000 г. се използва LOOKUP, което също сериозно съкращава формулата. И така, ето го резултата от творчеството:

=DATE(
INT(MID(A3;1;2)) +
LOOKUP(
ROUNDDOWN(MID(A3;3;2)/20;0);
{0;1;2};
{1900;1800;2000}
);
MOD(MID(A3;3;2);20);
MID(A3;5;2)
)

В случая ЕГН-то е в клетката A3. За съжаление не намерих начин да се посочи само веднъж във формулата адреса на клетката, така че трябва да се посочи четири пъти – веднъж за датата, веднъж за месеца, веднъж за годината и веднъж за века.

Втората формула също е интересна – намерих няколко вършещи работа, но нито една не правеше баш това, което ми трябваше. Чрез подходящо комбиниране се получи следната красота:

=DATEDIF(B1;A1;”y”) & ” г, ” &
DATEDIF(B1;A1;”ym”) & ” м, ” &
DATEDIF(B1;A1;”md”) & ” д”

Съответно A1 е клетката, която съдържа късната дата (например днешна дата), а B1 е клетката, която съдържа дата в миналото (например датата на раждане). Резултатът от формулата е интервалът от време в години, месеци и дни.

Естествено, ако искате да си мултиплицирате формулата, можете да използвате адресиране на клетки със символа за долар, за да не се мести при мултиплицирането някоя от кретките… например текущата дата всемсто с A1, може да се дефинира с $A$1… но надявам се, че това е достатъчно известен факт.

Успех с формулите и Excel…

Електрическото гласуване

Това, което ще последва е инспирирано от два фактора. Първият е публикацията на Боян Юруков – Електронно гласуване и доверието в изборите, а второто е една моя дискусия в Twiter с Владимир Каролев, където му обещах, че някой ден ще напиша, защо в България електронно правителство няма да има в обозримо бъдеще. И въпреки, че електронното правителство е силно различно от електронното гласуване – факторите, които обуславят провала и на двете са силно свързани.

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

Първо да ви запитам – как по-точно ще стане проверката – дали гласът ми е отчетен правилно, без да се наруши тайната на вота? И как ще се предпази системата (независимо дали е електронна или хартина) от това да се продават по този начин гласовете?!

Както е написал и Спас Колев (коментар под публикацията в блога на Юруков) – основнен проблем на купувача на гласове е, да провери дали продавача “си е свършил работата” – ако има система, чрез която се проверява правилно ли ти е отчетен гласа – това АВТОМАТИЧНО решава основния проблем на купувача, което искаме да избегнем.

По темата с online гласуването – много хора отказват да приемат, че гласуването на национални избори не е като гласуването във Facebook или online анкета и се регулира от някаква нормативна уредба. Колко места по света можете да посочите, където на национални избори се гласува online? Подчертавам – не на избори за телевизионни водещи, мис-красота или снимката с най-красиво бебе, а на НАЦИОНАЛНИ ИЗБОРИ?! В комбинация с българския контекст на явна масова търговия с гласове, изборен туризъм, купуване на цели комисии, подмяна на бюлетини, протоколи и т.н. – въвеждането на online гласуване е на практика вредно. И да – твърдя, че е вредно точно както Боян твърди, че ще е полезно защото повече хора ще гласуват (за повечето хора по-късно). А дории да не е масова практика, дори само съмнения за измами да има – online гласуването само ще ги подсили.

И точно както Боян твърди, че купуването на гласове и подмяната на бюлетини не са проблем, защото “ефектът върху крайния резултат е статистически незначим“, аз пък смея да твърдя, че няма нужда да стимулираме гласуването в чужбина, защото “ефектът върху крайния резултат е статистически незначим“… в момента гласоподавателите в чужбина са около 3% от общия брой. От 250 секции в чужбина гласуват горе долу толкова хора, колкото от 50 секции в България и ако успееш да “купиш” 50% от хората в секцията – 100 секции (от общо почти 12000) могат напълно да игнорират резултата от чужбина.

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

Също така съм абсолютно категоричен, че причината за ниската избирателна активност (и най-вече при младите) не е свързана с липсата на възможност за електронно или online гласуване. Основната причина е политическата пасивност на масата хора и тази политическа пасивност трудно ще се излекува с online гласуването. По-скоро протестите или други форми на активност на гражданското общество са факторите, които ще събудят повече пасивни, отколкото технологиите.

Не на последно място – когато голяма част от населението е доведена до такова социално положение в което са готови срещу 20 – 50 лв. да си продадат бъдещето за следващите 4 (че и повече) години, трудно можем да повлияем чрез технологии, защото проблемът не е технологичен. И за съжаление (лично мнение) – това е едно от нещата, които въпросните хора извън България не могат да приемат – може би защото живеят в друг контекст и друга среда, но явно не разбират колко лесно е, да манипулираш, управляваш и купуваш хора живеещи с години в условия на постоянен недостатък. И количеството на тези хора е в пъти по-голямо от количеството на политически активните, на българите в Чужбина и на всички онези, които се твърди, че ако ги активизираме на избори, ще се промени резултатът.

Твърдението, че въвеждането на електронно гласуване (било то машинно или online) ще доведе до спестяване на пари също не мога да го подкрепя. Боян си пада по събирането на данни и ще го замоля, ако за него представлява интерес и разполага с необходимата информация, да изготви една инфографика, която да представя разпределение на разходите за провеждането на едни избори по различни пера. Без да съм виждал данните и да съм ги анализирал съм готов да се обзаложа, че едно от основните пера по избори всъщност е за МВР – за охрана на изборите, което няма да се спести чрез електронното гласуване. Перото за обработката също няма да намалее, защото хартиеният процес при всички положения ще остане, а при него цената зависи от броя на секциите, а не от брой на гласувалите – и нито един глас да няма, пак се обработват резултати (нули) от 12 хил. секции. От печатане на бюлетини също няма да има особена икономия, защото там перото е относително малко, а няма да отпадне изцяло. Хонорарите на 12000 секционни комисии средно по 7 човека + други комисии – почти 6 милиона лева също няма да се спестят. Единственото, което евентуално може да бъде сериозно перо на икономия са изборите извън България, тъй като там организацията за една секция е доста по-скъпа от организацията в България. Но ако съпоставим всичко това със стойността на една евентуална такава система – икономия може да се постигне само в някакъв много дългосрочен период.

Докато пишех, набързо спретнах една такава графика базирана на данните обявени в медиите за последните парламентарни избори през май 2013 г. Разпределението е на база 21 милиона лв. разходи.

Разпределение на разходите на парламентарните избори през май 2013 г.

Дори и да става дума за online гласуване при което няма закупуване на хардуер – разходите по внедряването и поддържането на такава система ще бъдат перо. А ако говорим за машинно гласуване – дори и най-евтиното решение, когато включва купуване на хардуер, трябва да се мултиплицира по 12 хил секции и веднага става сериозно перо, което в краткосрочен план е финансово неизгодно. А при такива технологии трудно може да се говори за дългосрочен план, защото рядко такава технология може да намира приложение повече от 4 години – просто технологията ще остарее. А колко избори ще се проведат за 4 години? В най-добрия сценарии 4 пъти, а може и само 2.

Единственото, с което мога да се съглася е, че електронното гласуване под каквато и да е форма може да намали грешките и да облекчи процеса като цяло.

И накрая – електронния подпис. Стига с тоя електронен подпис на избори. Предназначението на електронния подпис е да доказва самоличността на автора – да свързва физическото лице с волеизявлението. Естествено, че online гласуването има нужда от еднозначна идентификация на гласоподавателя, но също така се нуждае и от гарантиране на тайната на вота. Освен това електронният подпис не може да спре купуването на гласовете (да не повдигаме наново спора, дали може да го улесни). А електронните подписи на управителите на фирмите не винаги стават за използване за гласуване, защото зависи какъв е типът на сертификата им и ограничението идва най-вече от ЗЕДЕП, но и Изборният кодекс поставя ограничения, като например §113 (14) т.5, от преходните и заключителни разпоредби, където се казва, че “гарантира, че гласуващите избиратели няма да имат допълнителни разходи извън обичайните разходи за комуникация по интернет“, което автоматично изключва електронния подпис от техническото решение.

Lapni.bg – лапни го ти

Човек и добре да живее, все някой ден се сблъсква с on-line търговията.

Горното може да обобщи най-кратко и ясно тъжната картинка на българската on-line търговия, ако изобщо може да се нарече on-line и ако изобщо може да се нарече търговия. Историята започва с това, че решавам, да си закупя ваучер за нещо (тук се абстрахираме за какво точно, защото няма връзка с историята) от някой сайт… например от Lapni.bg. Всичко е прекрасно, избрал съм офертата и съм готов да пазарувам:

1. Проверявам как може да се плати. Разбира се – информация на сайта няма, той се състои от купчина оферти. А може и да има, ама е скрита някъде на тайно място. Обаче виждам на началната страница, че има големи лога на различни платежни инструменти. И сред тях се мъдри логото на PayPal – явно приемат плащания и с PayPal. Супер – продължаваме.

Явно приемат PayPal

2. Откривам с изненада, че имам регистрация в сайта, естествено не си помня паролата… кликвам, че е забравена и след известна стандартна процедура получавам нова парола. Дотук всичко ОК. Решавам да си сменя новогенерираната парола с нещо, което се надявам, че ще запомня по-лесно и започва едно търсене… Оказва се, 10 минути по-късно, че паролата се сменя от менюто “Моите ваучери”. Супер, как не се сетих по-рано, а? Добре, в “Моите ваучери” има подменю “Настройки”… А там – има смяна на парола… и паролата се въвежда в? Не познахте – не в поле за парола, а в обикновено текстово поле. Признавам – много е удобно – виждаш си паролата!

3. Дотук – бели кахъри. Смених си паролата и се отправих към тайната страница за поръчване на оферта. И какво имам там – голям бутон “Направи подарък”… ОК, няма да се правя на ударен, сетих се, че се поръчва с големия червен плюс, ама не беше чак толкова очевидно.

Червения плюс

Кликваш на червения плюс и след няколко екрана за приключване на поръчката се озоваваш при един бутон “Плати сега”. Кликваш го и се зарежда следната форма:

Формата за плащане

Не знам, дали на вас ви прави впечатление, но на мен ми прави впечатление, че в изброените опции за плащане няма PayPal – доста разочароващо. След известен размисъл решавам, че ще избера опцията “Кредитна / Дебитна карта – Плащане директно с Вашата кредитна/дебитна карта”. Въпреки, че по-принцип съм доста мнителен, да не кажа параноичен по отношение на всевъзможни платежни системи със съмнително качество, произход и функционалност. Продължаваме нанатък и – изненада! Попадаме на някакъв зловещ сайт на БОРИКА, който изглежда приблизително така:

БОРИКА

Да започнем с това, че логото на търговеца не се зарежда… в едни браузъри се изписва мъдрият надпис “Merchant Logo”, в други стои дупка с очертание. Първото ми подозрение беше, че логото не е по https и затова не се зарежда, при по-обстойната проверка установих, че просто не работи – сървърът просто връща празен отговор, на всичкото отгоре с header Content-Typе: text/plain. Е не че нещо ме учудва – това е БОРИКА все пак.

След това – отдолу се мъдри следната забележка: “Ако Вашата карта поддържа 3D автентификация, може да се наложи да се идентифицирате след натискане на бутона “Плащане”.” И понеже моята карта не е беше с 3D автентикация, продължих най-спокойно нататък. Излезе съобщение, че всъщност моята карта поддържа 3D сигурност и въпреки, че аз съм отказал в банката да използвам тази опция – ако желая да платя през системата на БОРИКА, ще се наложи да се съглася да използвам въпросната 3D сигурност. Но затова по-късно…

4. Попълних всички полета и кликнах заветния бутон “Плащане”. Замърдаха някакви progress bar-ове… и “Системата каза не” – изписа ми, че е възникнала грешка… някаква грешка, никой не знае каква точно, да опитам отново по-късно. Обаче не става ясно, минало ли е плащане или не? Голяма работа – опитайте пак, ако платите два пъти – здраве да е.

Тук правя неочаквано отклонение, което не беше планирано в целия процес на on-line търговията. Вадя си електрическия подпис, пускам другия лаптоп, защото там е инсталирано всичок за него… и влизам в on-line банкерането на банката, която е издала картата, за да проверя, дали имам някакви картови авторизации през последния час. Барем, ако е минало плащане – да ходя да се разправям с някого. Да де, ама не е минало, сакън.

5. Понеже на сайта на БОРИКА има голям надпис, да не се използва BACK бутон или REFRESH (това е от грамотност на програмистите, от опит го знам) – решавам, да се върна ръчно на Lapni.bg и да опитам втори път да платя. Връщам се, обаче там няма опция да направиш плащане за поръчка, която първия път не е била платена по някаква причина. Добре – ще пуснем нова поръчка… Техниката вече е отработена – цък, цък, цък… готово, вече сме на сайта на БОРИКА… попълвам пак данните, “Плащане”… progress bar… ура – няма грешка… излиза надпис, че тази карта поддържа 3D сигурност и трябва да посоча някаква парола, която аз естествено нямам, понеже нямам 3D сигурност. След четене на някакъв help, който между другото е настроен да се отваря по подразбиране, като натиснеш Enter в някое поле на формата става ясно, че въпреки, че аз не ползвам 3D сигурност, ако искам да платя през тази система, ще трябва да си регистрирам картата за 3D сигурност в банката, която я е издала…

Следва една друга част, която може да разкажа някой друг път… но да речем, че след около 20 – 30 минути вече имам 3D сигурност на картата и си знам въпросната парола… Естествено – сесията в БОРИКА вече е изтекла и всичок започва отначало.

Тук трябав да отбележим, че бройт на ваучерите в Lapni.bg е ограничен и това изрично е посочено в офертата. Прави ми впечатление, че всеки път, като поръчам ваучер и не успея да го платя – бройката на “продадените” се увеличава. И ако си мислите, че причината е, че някой друг също си купува в момента – аз не мисля така, защото действието се развива в малките часове на нощта и просто по-вероятният сценарий е, системата да е малоумна.

6. Минавам през целия сценарий, пускам нова поръчка, вече знам всички подводни камъни, стигам до плащането на БОРИКА, няма грешка и няма да трябва да опитам пак по-късно… пита ме за тайната парола за 3D сигурност… въвеждам я (буквално преди минути съм я получил от банката)… и “Системата каза не” – паролата била грешна. Въвеждам я втори път… “Системата каза не“… трети път, много внимателно, въвеждам я извън полето за парола, за да виждам точно какво се изписва (тук иронично си припомних, колко е удобна формата на Lapni.bg където за паролата не се използва поле за пароли), копирам 100% сигурно правилната парола, поставям я и “Системата каза не“… На третия опит вече ми каза, че съм лош хакер и не мога да платя и ме изхвърли… Егаси!

7. Върнах се до on-line банкерането, да проверя, да не би да съм въвел грешно паролата при регистрацията за 3D сигурност… въпреки, че имаше поле за повторно въвеждане на паролата, но уви – оказа се, че няма как да го проверя. Единствената опция е, да си сменя паролата срещу скромната сума от 10 стотинки. Теглих им една майна на всичките (за пореден път)… и реших, че преди да сменям паролата (въпросът е принципен, не в 10-те стотинки) ще се опитам още веднъж да мина по цялата пътечка отначало – докрай. Барем нещо стане най-накрая… Междувременно след всеки неуспешен опит ходя да проверя дали имам картова авторизация, щото вече на никого и на никоя система вяра нямам.

И така – започнах за пореден, не знам кой подрес път, да попълвам всички полета и поленца отначало… намерих офертата, поръчах я още веднъж, избрах метод на плащане, отидох на сайта на БОРИКА, въведох данните, попита ме за паролата за 3D сигурност… и О!Чудо – същата парола, която използвах преди малко и беше грешна, без да я сменям – сега вече не е грешна.

8. Надпис – успешно плащане, проверявам в банката – имаме успешна картова авторизация, пристига SMS за плащането, фамфари, конфети… радост, едночасова битка е на път да приключи с победа на човека над on-line търговията. Връщам се в Lapni.bg и там няма нищо… Когато използваш on-line инструменти за плащане и търговия очакваш, че нещата се случват в реално време – уви, оказва се, че се случвали до няколко минути… След няколко минути всичко се появи.

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

9.1. На сайта на Lapni.bg няма контактен телефон, на окйто да се обадиш, ако имаш проблеми като горе описаните.
9.2. На сайта на БОРИКА пише, да се свържа с администратора, но естествено също няма нито телефон, нито e-mail.
9.3. На Lapni.bg има едни тайни линкове, до които успях да се докопам чак на другия ден, защото някой титан на техническата мисъл е сложил JavaScript за infinite scroll и в момента в който скролнеш най-долу, да да видиш линковете във footer-а, динамично се зареждат още оферти и footer-а изчезва надолу… и така може да си го гониш до умопомрачаване.
9.4. Търсачката на Lapni.bg бърза да търси, докато пишеш… че пишеш разбира по това, че се натискат клавиши. Да обаче няма сложен timeout и колкото и бързо да пишеш – на всеки клавиш се опитва да презареди резултатите. В резултат на това става мазало. На всичкото отгоре – ако натискаш стрелките в полето за търсене (т.е. нищо не пишеш) – резултатите от търсенето отново се презареждат.

И така, някои биха заключили, че опитът ми за on-line търговия е бил успешен, защото всичко е добре, когато завършва добре. Аз обаче ще кажа – НЕ, ОПИТЪТ БЕШЕ НЕУСПЕШЕН, защото не вярвам, че енормално елементарна покупка от Интернет да отнеме в крайна сметка почти два астрономически часа! Това е дейност, която се очаква да бъде бърза, достъпна и лесна.

P.S. докато пишех този пост и правех screenshots в сайтовете на Lapni.bg и БОРИКА, ненадейно установих, че всъщност има опция за плащане с PayPal… просто я има в други оферти. От никъде и от нищо не става ясно, защо едни оферти могат да бъдат платени с PayPal, а други не. Може би цената е определяща, а може би нещо друго. Това обаче не се споменава в сайта… в “Често задавани въпроси” пише: “PayPal.com е международна система за електронни плащания. Поддържа всички видове кредитни карти, както и дебитни карти Visa Electron, които поддържат електронни плащания. За да платите от PayPal.com, трябва предварително да имате регистриран акаунт, както и добавена и потвърдена банкова карта. Ако нямате акаунт в PayPal.com, разгледайте останалите начини за плащане.“.

« Previous PageNext Page »