Posts Tagged ‘идиоти’

2022-03-07 война

Monday, March 7th, 2022

От няколко дни си мисля колко много не искам да пиша тоя post.

За всички, които са живели под камък – преди 12 дни Русия нападна Украйна. Последиците от това безумие ще ги усещаме дълго време…

Да започна с краткото описание на руската пропаганда – мисля, че обяснява повечето лъжи, разпространявани по темата. Особено много ме дразни обяснението, че Путолини (някои хора ползват “Путлер”, ама определено се справя по-зле с blitzkrieg-а) нямал избор. Винаги има избор, и можеше вместо 30 години да си крадат усилено страната, да направят нещо смислено…

А вместо това някаква част от окрадените пари отидоха за информационна война. Която, да не се лъжем, в общи линии губехме. Достатъчно е да видим огромното одобрение за Путолини в България, всякаквото плюене против LGBT и ваксините и крайния ефект от това (най-слабо ваксинираната държава, най-голяма смъртност на глава от населението от COVID-19).
Колкото до свързаността на по-горните, много добре си личи кой започна да се изказва в подкрепа на войната, след като започнаха да режат различните източници на пропаганда. Дори и в нашите медии си личи, въпреки че доста от тях сериозно се уплашиха и леко промениха линията.
(няма да коментирам “националистите” предатели в парламента като Копейкин)

… а нас ни чака още една Северна Корея, само че по-близо до нас, и в която има наши близки. В момента самата Русия се опитва да се изолира от света, като се кани да се отреже от глобалния интернет (малко информация по темата), не могат да се случват разплащания (което се спира и от двете страни) и със спирането на полетите пък самите руснаци, които искат да се махнат от там, не могат. И докато там хората ще страдат заради изперкалия си “водач”, Европа (и в това число България) ще трябва да преосмисли зависимостите си и кой ни ги насади, и да направи нещо по въпроса.
(поне има сериозен шанс да намалее много влиянието на Русия в нашата политика и като цяло тяхната пропаганда, като не могат да плащат)

Но, в крайна сметка има значение какво правим, не какво говорим. Супер се радвам как доброволците от OpenFest почти моментално се навиха/захванаха да помагат за бежанците, и как се задвижиха организациите по темата. Не настигаме Полша, и не сме толкова желана дестинация (най-вече заради високия рейтинг на Путолини и като цяло голямото руско влияние тук), но все пак до преди няколко дни са пристигнали 20000 бежанци, и ще идват още. Можем да им помогнем, можем да помогнем на организациите, можем да спрем да купуваме руски газ най-накрая, и да измъкнем и хората от Русия/Беларус, останали там под управлението на малоумници.

Можем още неща, давайте предложения.

А аз ще се опитам да не си представям всеки път като си играя с децата какво ли се случва с децата в Украйна.

(защото може да не сме в списъка на следващите за нападане, но определено сме в списъка на по-следващите)

2021-10-18 vivacom

Monday, October 18th, 2021

Има неща, дето не трябва да ме учудват, но все пак успяват.

Днес по някое време ми спря Internet-а. По принцип ползвам Comnet София, които се отделиха от Comnet, и които в последствие бяха купени от Vivacom. След известно гледане видях, че в лога на pppd-то има съобщение “Neplatena smetka”.

Звъннах по телефона, където бях пренасочен към call центъра на Vivacom. След някакво чакане (над 10 минути, не ми се беше случвало скоро) и ходене по менюта стигнах до някакви хора, които да видят какво става. Оказа се, че последното ми плащане е изтекло на 15.10, и днес, на 18ти, са ми спрели услугата. Не бях получил известие от epay, защото явно тази част вече е спряна. Питайки как мога да го платя online ми казаха – не може, нямате още клиентски номер, трябва в магазин.

Отидох до близкия техен магазин, където ме намериха по ЕГН и ми обясниха, че мога да си платя за 6 месеца или 1 година. Обясних, че този договор винаги е бил месец по месец, и за мен няма особен смисъл да плащам толкова време, при условие, че до месец ще съм се изнесъл. Гледаха, мислиха, обадих се и на техния call center пак, и след половин час изводът си беше все тоя – те такава услуга нямат, няма начин. От друга страна, води се предплатена, няма прекратяване или каквото и да е друго и не им дължа нищо.
(явно и не трябва да връщам ONT-то, дето Comnet ми дадоха).

Та, теглих им една учтива майна, и ще карам седмица-две-три на 3G, докато се пренеса.

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

2018-06-11 БДЖ

Monday, June 11th, 2018

Не мога да си обясня как БДЖ не са фалирали.

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

Самият влак беше приятен и доста удобен, но интересното беше с билетите – първото ми откритие беше, че за online продажба има сумарно 12 билета. После, на гарата казваха “за тоя влак местата свършиха”, а влакът определено не беше пълен, нито се напълни. Изводът, до който стигнах с малко гледане е, че хората нямат online сисема, а всяка гара по пътя има раздаден набор от места и тя може да си ги продаде до където реши, но не могат да се използват от някоя гара, където има по-голямо търсене, т.е. те ВСЕ ОЩЕ нямат online система за резервиране/продаване на места.
(нещата са толкова объркани, че наскоро се оказа, че от касите в София (щото online местата вече бяха свършили) човек не може да си вземе и билет за обратната посока)

Това ми е супер учуващо, понеже технологията за тия неща я има почти от времената, в които бях малък (една централна база данни и някакъв приличен хардуер). Комуникацията те си я имат по принцип – БДЖ още от едни много отдавнашни времена имаше паралелна комуникационна мрежа и не мисля, че навръзването на всички гари към централната система ще е особен проблем, просто защото те и сега имат някаква връзка, иначе нямаше да могат да си управляват влаковете.

Също ми е учудващо, че откакто има системата за online купуване на билети, в нея има още 1-2 нови маршрута (в сравнение с момента, в който я пуснаха), а не цялата им мрежа. Може би някой трябва да ги довлачи в текущия век?

2018-01-20 Сървърни социални служби

Saturday, January 20th, 2018

Разни случки от последните година-две:

– седя си аз на един хакатон, и всичко ми се отваря бавно. Поглеждам защо – раздадени са ми ipv6 мрежа и gw, пингва се, но няма ipv6 свързаност, и всичко се опитва в началото да ползва v6, отказва се и минава на v4. Издирват някакси админа, той отговаря “ами аз не съм пускал такова нещо” и т.н., поглеждам – mac адреса на default gw по v4 и тоя, от който ми идват router advertisement-ите е същия.

– “Хора, гръмна ви диск.” “Хора, гръмна ви друг диск.” “Хора, гърмят ви дискове с гигантска скорост, скоро няма да има де да си държите данните.” “Няма де да си държите данните, къде са ви replacement дисковете”…

– Предават се някакви сървъри на нови админи. Логва се стария да покаже нещо, и на конзолата се вижда “Last login преди 8 години”, машините не са update-вани (Debian 4-5).

– “Някой ви е влязъл в сървъра през ipmi-то, направил си е root account и е пуснал minerd. Моля сменете си паролите на IPMI-тата и ги филтрирайте от internet-а, даже производителя им (supermicro) казва, че тия неща не са толкова сигурни.”. Повторение на това – още два пъти в следващите 7-8 месеца, при същите хора.

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

2017-12-18 ARP в Linux

Monday, December 18th, 2017

Почнал съм да събирам списък “неща, на които разчитам и не работят”. Ето едно от тях, в което се ударих преди малко – arp-а на linux kernel-а.

(след като тоя протокол и поддръжката му ги има от години и всички го ползват, някакси очаквам да не ме ритат в кокалчетата)

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

Последваха стандартните неща – едно mtr до marla, едно до един от адресите, който не е от нашата мрежа, и нищо. Слушайки на интерфейсите, виждах да влиза трафик, но не виждах нищо да излиза.

Един ip r get каза следното:

77.246.xxx.xxx via 193.169.198.179 dev eth3.1030 src 193.169.198.230

193.169.198.179 е inetbg.bix.bg, които са доставчика на човека. Пинг до това ip нямаше, нямаше и arp entry за него и моята първа мисъл беше “тия па какво са объркали”. След което пуснах един tcpdump и видях следното:

22:06:48.470979 ARP, Request who-has 193.169.198.179 tell 185.117.82.66, length 28

Ако нещо ви се вижда да не е наред – прави сте. Не би трябвало да питам в тоя сегмент с адрес, дето съм извадил от съвсем друго място, и е доста очаквано, че някой няма да иска да ми отговори. Кратко търсене и спомняне ме доведе до /proc/sys/net/ipv4/conf/*/arp_announce, за което може да прочетете в ip-sysctl.txt в документацията на kernel-а.

За който не му се чете, параметърът по default е 0, което значи “сложи там за source ip някакъв адрес, който ти хареса”, 1 значи “гледай поне да е от същата мрежа” и 2 значи “избери внимателно”. Защо не е 2 default-а, не мога да си обясня (но преди малко беше изконфигуриран на двата router-а при нас да е така).

Допълнително на който му се забавлява, може да види какво пише за останалите arp опции и как се държи по default kernel-а, например че може да отговори на arp за един интерфейс от друг, без изобщо да му пука (и което по някакви твърдения отговаря на RFC-тата, което обаче не успях да открия). За всички, които искат смислено поведение на arp-а на linux kernel-а, препоръчвам следните sysctl-та:

net.ipv4.conf.all.arp_filter=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.all.arp_ignore=2

(тези са особено нужни ако имате сегмент, в който имате две мрежи и по два и повече физически интерфейса и искате някакъв контрол откъде и как ви върви трафика)

2016-08-17 java, unicode, emoji

Wednesday, August 17th, 2016

Чудех се дали да кръстя това “fuck you, Java”.

От някакво време гледаме проблеми с пращането на emoticon-и (ако не знаете, unicode стана пълен с всякакви лайна) – в някакви случаи се намазват, не пристигат вярно и т.н.. При нас през JNI стринговете се пращат до един C/C++ lib, от който всъщност излизат през мрежата от там, като по пътя има малко debug, който да каже какво излиза…

Седя аз и гледам как за намазващото се emoji по някаква причина получавам 6 байта от java-та, вместо 4 (което очаквам). 6-те байта ми изглеждат странно, не наподобяват UTF-8 (поне това, което аз знам), и след някакво четене откривам, че педе^Wпрекрасните хора от java под UTF-8 разбират modified UTF-8, или някакви неща като по-големите unicode символи се кодират така, че нищо друго не може да ги схване, освен друга java. Това обърква SMS центровете по пътя и всякакви други реализации и води до странни за дебъгване проблеми.

Разбира се, това се случва само с определени много много големи emoji-та, които ги има само на определени телефони в стандартните клавиатури, което па води до много фалшиви следи, като например “това са го строшили в android 5 при samsung”, “сървъра ги яде”, “космически излъчвания” и т.н..
(“клавиатурите” в android са софтуерни компоненти, дето явно всеки малоумен производител си пише сам)

Решението поне в нашия случай е в JNI-то да се превежда техния utf8 до нормалния. Ровейки се из интернета, намерих още подобни оплаквания, но явно не всички успяват да се ударят в това, понеже преди това се оказва, че например mysql-ската им база не ползва верния storage type, node.js-а им има само UCS2, който па хептен не може да ги събере и т.н..

Много хора просто казват “не ползвайте тия работи”. Сериозно ми се иска и за мен да беше опция…

“Закон за противодействие на тероризма”

Monday, June 6th, 2016

Още ми е трудно да го повярвам, ама има законопроект за закон за противодействие на тероризма.

Ще обърна внимание само на една част (засега) – чл. 16-17, при “обосновано предположение” може да се наложат следните “превантивни мерки”:
1. забрана за промяна на местоживеенето без разрешение;
2. забрана за напускане на страната без разрешение;
3. забрана за посещаване на определени места, райони и обекти;
4. забрана за напускане на определено населено място без разрешение;
5. забрана за достъп до интернет;
6. забрана за притежаване и използване на повече от един телефонен номер;
7. забрана за осъществяване на контакт с определени лица;
8. периодично явяване в районно управление на МВР и подписване пред полицейски служител;
9. отнемане на паспорти или заместващи ги документи и забрана за издаване на нови.

Има и други забавни неща, ама кой би се хванал на бас, че това няма да се използва срещу политически неудобни хора?:)

На strategy.bg (горния link) могат да се оставят коментари какво мислите по въпроса.

2015-07-30 пак online гласуване

Thursday, July 30th, 2015

Имаме референдум за електронното дистанционно гласуване. Очаквам скоро да имаме такъв и да се строят новите сгради от използвана тоалетна хартия.
(като ми прати някой нещо такова се усещам колко ми е хубаво, че не чета новини)

Като за начало, на последния CCC конгрес имаше две лекции по темата, за проблемите на internet гласуването в Норвегия и в Естония, полезни са като идея за проблемите, както и предишното нещо, което написах по темата.

Не мисля, че някой изобщо схваща колко ужасяващо е счупен целия ни технологичен стек и колко лесно се атакува, от хардуера, през firmware, през операционните системи, през протоколите до user-facing нещата (особено browser-ите). Всичко подлежи на атакуване и чупене срещу сравнително малко пари (човек може да си купи нужните exploit-и за под $500k и за още $100-200k може да си реализира цялата атака, което е в общи линии под 1/10 от парите за една нормална кампания).

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

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

2015-07-01 калпави технологии

Wednesday, July 1st, 2015

Мечта за една по-добра България – PHP компаниите да изхвърлят PHP-то и да почнат да пишат на Ruby on Rails .. :D (радорадо)

Аман бе.

В превод, “яжте моето лайно, по-вкусно е от чуждите”, което не променя факта, че си е лайно. Идея си нямам откъде е това желание на двете общности да се сравняват, и особено рубистите да се чувстват много велики в сравнение с PHP, при условие, че и двата езика са играчки, на които заблудени деца се опитват да пишат големи неща и после дълго време страдат. Единствената причина все още да няма толкова много некадърен код на ruby е, че просто не са мигрирали достатъчно от маймуните, дето пишат на php натам, после резултатът ще е същия.

А защо не изхвърлим mindset-а, че “технологията, дето беше модерна докато бях млад е най-хубавата”, не разучим какво има и не ползваме подходящото нещо за подходящата цел? Хора, дето трябва да учат другите на програмиране трябва да дават някакъв хубав общ поглед, не да забиват в конкретни технологии.

Колкото до това, че и двете са играчки – за php няма нужда да го обяснявам, за ruby – в наши дни да направиш нещо толкова гигантско, тромаво, single-thread-нато (да, знам за мижавите опити да се направи нещо я с fiber-и, я с thread-ове и колко много не работят) и като цяло с инфраструктура и технологии от преди 15 години си е жалко. Може да се види като цяла система go, което е изчистено, паралелизирано както трябва, не особено голямо и доста бързо, или lua, като чист и ясен език, който може да се интегрира някъде.

Та, накратко, може би е добра идея програмистите да мислят за програмиране (и свършване на работа), не за мерене на пиш^Wтехнологии.

2014-02-27 DKIM

Thursday, February 27th, 2014

Това чак не е интересно.

Ровейки един spam, който един приятел е получил, се загледах в DKIM подписите. Оказва се, че DKIM-а се лови от тривиално replay-ване, т.е.:

Правите си account на някое уважавано място (например gmail, в конкретния случай обаче е abv.bg). Пращате си mail до себе си, който ви генерира едни валидни подписи. Взимате цялото съобщение като source, един ваш smtp сървър, и го пращате на който си искате. От гледна точка на хората, уважавания доставчик е минал през вашия сървър и е пратил съвсем валидно писмо…

DKIM-а не знам кой го е мислил, но ето header-ите му:

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=abv.bg; s=smtp-out;
	t=1393422571; bh=4dLtPPWnymIO/8L0CLbvGZYxlQ5bZYMBimz0R/Li/JY=;
	h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type:DKIM;
	b=RQhl7IakYWwDQb70tpH3nG6V7CFcisAs/AyIO9/g0OpaIFD0jJpm8KbGOZ+UvVpK5
	oeSzu2HLUUFOd6/o+8NHJWHTEwPKf80RZXtnkN4Jp2S/OKKBC5TImFupHy+s1uUgjhD
	9yDf3LZES95JquPBNdYbotBZhc6wd9x1dNTJKCM=

Превод в ефир: Ето мой подпис на ето тези полета, които съм си харесал, които са тривиални за фалшификация.

Това е толкова тривиално, че чак българските spamer-и го ползват. Чак се чудя дали това с валидния DKIM подпис е нарочно или просто така е станало…

Интересна работа. Имаме SPF (описване на валидни източници) и DKIM (подписване на header-и от валидните източници), и нямаме свястна комбинация от двата протокола, която ДА ВЪРШИ НЯКАКВА РАБОТА.
(и разбира се, ако сте с валиден DKIM подпис, gmail и разни други мърлячи ще показват в получения ви mail картинки от външни линкове. Ето как тривиално спамерите ще видят дали ви е верен/работещ/четен mail-а)

2013-12-24 коледен sql injection

Tuesday, December 24th, 2013

И прилично коледно:

http://offnews.bg/news/%D0%9D%D0%BE%D0%B2%D0%B8%D0%BD%D0%B8_2/%D0%A5%D0%B0%D1%80%D0%B5%D1%81%D0%B2%D0%B0-%D0%BB%D0%B8-%D0%B2%D0%B8-%D0%BD%D0%BE%D0%B2%D0%B8%D1%8F%D1%82-%D0%BD%D0%B8-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD_280497.html?sql_which=%2710

(или как изглежда резултата на screenshot, ако случайно го оправят)

Познато още като “тривиален sql injection”. Ще ми се да помоля учтиво човека, който го е написал, да си смени професията и да спре да замърсява net-а с лайната си.
(и преди някой да е обвинил php-то, неспособността да си валидираш входните данни е проблем на (некадърния) програмист, не на езика)

(предупредихме хората, даже пуснах коментар там с това url, и те просто са го пуснали през модерацията и всички могат да го виждат, та за това спокойно пускам и това)

2013-06-20 филтриране и други глупости

Thursday, June 20th, 2013

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

Трябва да вдигнем един лозунг “не на цензурата в internet”…

Няколко сайта са си вдигнали други domain-и/адреси (има информация в коментарите по предния post), което си се очакваше, елементарно е да се постигне (thepiratebay го правят въпреки, че ги гонят много по-жестоко) и вероятно адски евтино (един domain е под $10, още някакви адреси/тунели/reverse proxy-та лесно се намират, пак за малко пари, особено при малкото трафик), т.е. ще им е далеч по-лесно на тия сайтове просто да пускат някакви отделни url-та за България, така и така не е ясно как ще се махне филтъра, ако се лицензират.

А за хората, дето не им се занимава да търсят url-тата – да си свалят и подкарат TOR browser bundle, хем ще ги анонимизира, хем ще могат да заобикалят всякакви подобни глупости (може само да се наложи да пипнете noScript да пуска javascript за определени сайтове). Просто е, работещо е и съвсем законно, откъдето и да се погледне.

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

Update: Не знам да се смея ли на тоя, или просто да ми е тъжно за него.

2013-06-18 филтрирането на българския internet

Tuesday, June 18th, 2013

Имаше някъде едно такова писание “като дойдоха за X, аз не се обадих, щото не бях X”… Чорбаджийски е писал по темата, а аз получих преди малко следния mail от един от colocation-ите си:

Уважаеми клиенти,

Във връзка с разпореждане на Председателя на Софийския Районен Съд относно
беттинг компании, които нямат лиценз, издаден от българската Комисия по
хазарта, се налага съгласно изискванията на Закона за хазарта да бъде
филтриран достъпът от територията на страната до следните интернет страници:

1. www.bet365.com
2. http://www.bet365.net/
3. https://www.goldbet.com/
4. https://www.goldbetsports.com
5. www.betin.com
6. www.sportingbet.com
7. http://www.morganbet.eu
8. http://betuniq.eu/
9. http://www.planetwin365.com/
10. www.unibet.com
11. http://www.bet-at-home.com/
12. https://www.doxxbet.com/
13. http://www.efbet.com/
14. http://globetcasino12.com/
15. http://www.ladbrokes.com/
16. http://betfair.com/
17. http://offsidebet.com/
18. https://www.tempobet.com/
19. http://www.888.com/
20. http://www.betfred.com/
21. http://www.jetbull.com/

Срокът за изпълняване на решението на Председателя на Софийския Районен Съд
е днес, 18.06.2013, 18:00ч.
Ние следва да изпълним тези разпореждания в указания срок.
Информацията е публикувана тук на страницата на Комисията по хазарта:
http://www.dkh.minfin.bg/bg/pubs/4/546

2013-06-14 протест

Friday, June 14th, 2013

Избраха Делян Пеевски за шеф на ДАНС.

Имам чувството, че ще идем на протеста и това ще се окаже един голям майтап, щото няма начин нещо чак толкова малоумно да е вярно.

2013-03-25 университетски глупости

Monday, March 25th, 2013

По принцип съм спрял да обръщам внимание на новините около ФМИ, понеже всичките са депресиращи, а аз съм решил да нямам общо (и продължавам да се чудя на оптимистите, които водят някакви курсове), но ето това няма как да не го спомена

Накратко (и да не навлизам в подробности), след като няколко човека от УИЦ (университетския изчислителен център) на СУ написали статия в network world за ipv6 deployment-а в университета, били привикани да ги питат как може така, да не съгласуват статията с “ръководството” (например лицето Биров).

(А статията никак не е лоша)

2013-02-07 crash в intel-ски мрежови карти

Thursday, February 7th, 2013

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

Kristofer Kielhofner е намерил гаден проблем в Intel 82574L мрежовите карти, който с пакет, в който на специфична позиция пише 0x32 просто crash-ва картата (бъгове в power management-а вероятно), в internet storm center-а има по-съкратена информация.

(това е мрежовата карта по доста от сървърните дъна от последните години)

Решението, което аз виждам (и което вече пуснах) изглежда така:

for i in `cat list-of-ips`; do  do ping -i .001 -c 128 -p 34 -s 1110  $i ; done

(броя пакети съм си го харесал да е толкова, може и да няма нужда от толкова много)
(съответно, смяната на 34 с 32 го прави tool за трепане на машини)

Проблемът не се задейства винаги, вероятно има и разлики при различни firmware-и на разните мрежови карти (ще ми е интересно някой дали е успял да го reproduce-не и в какви условия), но вероятно е добра идея човек да е подготвен.

Update: до тук аз поне не съм успял да го reproduce-на (както и при някои други хора), та може да е сравнително изолиран проблем.
Update 2: Press release от intel по въпроса.

2012-06-12 android vs ios

Tuesday, June 12th, 2012

Като бях малък, някой ми беше задал въпроса “Какво предпочиташ, да ти извадят едното око или да ти го вкара кон?” (“правилният” отговор беше да ти извадят окото, щото като ти го набие коя ще ти изскочат и двете).

Съществува фалшивата дилема дали човек трябва да си вземе Android или iOS базиран телефон. Моето мнение е като избора между две различни лайна и реално един от най-правилните избори е “нито един от двата”. Ето малко причини, които съм открил около занимаването с development, четенето на разни статии и гледането на лекции от CCC Kongress и подобни събития:

Практически погледнато, от хардуерна гледна точка и от гледната точка на ниското ниво всичките smartphone-и (донякъде с изключение на openmoko) са затворени и осакатени системи без нормална спецификация. Baseband процесора е неясен и не може да се пипа (съответно никой не може да вкара в тия телефони елементарната функционалност за проверка дали ви правят man-in-the-middle атака), свързан е директно към микрофона и говорителите (пробвайте се да намерите елементарното приложение “телефонен секретар”). Това има хиляди полезни приложения (и доколкото знам, под symbian е възможно, не че и тях ги хваля), най-малкото свестен запис на разговорите, което доста хора искат.
Реално обаче повечето хардуер по телефона е затворен и неясен, както и неща по операционната система (това, че google ползват linux ядро не помага особено), което води до това всякакви тривиални и елементарни неща да се водят нещо велико – защото да се постигне каквото и да е на тия телефони е магия. Дори за win3.11 нямаше нужда от толкова безсмислен приложен софтуер. Разбира се, apple не помагат с техните тотално побъркани правила кое може и кое не може да влезе в appstore (и третират всички jailbreak-нати телефони и потребителите им като престъпници)…
Андроидите специално заслужават допълнително споменаване, как има милиони производители и почти никаква консистентност и яснота кое как да работи и как да се казва. Човек би си помислил, че apple плащат LSD-то на HTC и компания да измислят нови и нови простотии. Хубав пример беше как се казваше камерата на няколко различни устройства.

Платформите за разработка и на двете платформи са трагични. От една страна имаме xcode и objective c на apple (не вярвах, че може вариант на C да стане по-грозен от C++, но objective C определено го настига), от друга java и всичкия ужас, свързан с нея. Честно казано, да бяха избрали erlang за платформа щеше да е по-добре и в двата случая. Или prolog. Или pascal/delphi.

Синдромът “not invented here” и в двата случая е довел до ужасяващи api-та, но тук наистина не знам откъде да почна. Елементарни неща се оказват почти невероятни за правене (“stream”-ване на данни от файл от телефона, т.е. четене на части и изпращане на части, например, трябваше да го направим с google protobuf-а и май така и не се получи и трябваше да сменим аpi-то).

При подобно осакатяване човек би очаквал сигурността на телефона да е добра и т.н., но в крайна сметка се оказва, че не е нещо особено. Продължават да се правят същите грешки и да се получават същите глупости, а приложенията дори с ограниченията, които са им поставени пак могат да събират какви ли не данни от телефона и да ги пращат където си искат. Аз вече чакам следващата вълна exploit-и, които да са за произволни приложения (понеже авторите ще са направили същите грешки).

За съжаление, мога още твърде много да разказвам, но не искам да си го причинявам, а да дам възможност на мозъка ми да потрие травмиращите спомени.

Накрая имаме калпави устройства с калпави операционни системи и калпави приложения, вършещи калпава работа, купуващи се от калпави хора. Надявам се до 3-4 години да се появят достатъчно добри батерии, да си пусна debian на телефона и да не ми се налага да се занимавам с глупости и да страдам от малоумието, некадърността и болните идеи на всичките хора, забъркани в тоя бизнес.
(от друга страна, да живее тоя бизнес, калпавите хора изглеждат склонни да дават пари за тотални глупости, а както е казал един римски император едно време, парите не миришат…)

(един ден openmoko ще изкарат нов телефон, това вероятно бих го ползвал)

2011-10-11 скъпи програмисти

Tuesday, October 11th, 2011

Скъпи програмисти,

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

В общи линии са две неща.

Едното е болестното ползване на framework-ове и други подобни нива на абстракция без реален смисъл. Примерни такива бози има на много места, на мен едно от най-омразните ми е cakephp (вероятно понеже с него съм се борил най-много). В повечето случаи нещо, което спестява 10% от вашето писане за сметка на едно огромно мазно средно-рядко лайно, което 1) стои във version control-а, 2) прави проследяването на действието на кода един порядък по-трудно и 3) е нещо, което не може да се update-не лесно (което ще обясня след малко) не си струва. Нито за вас (щото ще ви е по-трудно да намерите проблемите, които сами сте си създали), нито за мен, докато се опитвам да го подкарам или мигрирам, нито за който плаща. Just say no, и пишете кода колкото се може по-близо до естествената му среда – системни библиотеки, стандартни драйвери и т.н..
(друг пример е начинът, по който request-tracker ползва база данни и заявките от типа на “SELECT main.* FROM table1 main, table2 b …” и невероятната плетеница от callbacks, които са направили).

Второто нещо е, че външните библиотеки не са ваш проблем, ваша работа, ваша отговорност и по НИКАКЪВ начин не са от нещата, които трябва да се набият във version контрола, освен ако не поемете пълна отговорност да ги поддържате. В противен случай оставете работата на хората, които разбират от upgrade-и, миграции, системата на която работи софтуера ви и т.н. и не им създавайте допълнителни главоболия. Не ви е възможно да следите всички security update-и, всичките несъвместимости на стария lib с новите среди, а авторите на тия неща се справят доста добре с правенето на нещо, което да е backwards compatible (т.е. да работи с ужасът, който сте накодили) и същевременно със средата, в която оперирате.

Благодаря за вниманието.

(за тези, които ще ми обясняват колко са прекрасни тия framework-ове – аз мигрирах един магазин от cake на чисто php (дето не ставам за програмист) и излезе доста по-кратко и по-изчистено)

2011-06-15 всенародна неадекватност

Friday, July 15th, 2011

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

Всичко започна с новината за убитата млада жена в Борисовата градина (на 28 години не може да се каже, че е момиче). Първата ми мисъл беше, че ще ми е проблем да се разхождам там по нощите вече, щото ще се вдигне шум и т.н..

Първите неадекватни реакции бяха на различните медии, които започнаха да си измислят какво ли не – била клошарка, била изнасилена (последното после СДВР го отрекоха). Част от измислиците плъзнаха и по други места, та се наложи в различни сайтове да се обясняват подробности за жертвата.
От полицията и т.н. органи последва втората неадекватна реакция. Не се чу абсолютно нищо, а на журналистите, които са се опитвали да разберат някаква информация, не са казали каквото и да е (пример с Капитал (които явно са имали проблем да намерят кого да попитат)). При условие, че това е убийство, в центъра на София (град с над милион човека, в който са около 20% от населението на България), на място, където голяма част от града води децата си (или те ходят сами), по време на концерт, когато там има много хора и би трябвало да има засилени мерки за сигурност, мълчанието не е злато, а малоумие.

След като се вдигна вой във facebook и т.н., се появи следващата неадекватна реакция – народната, част от която гледах из форумите на Дневник. Призиви от типа “да сложат камери”, “да се освети цялата градина”, “да се затваря след 23:00”, които освен, че са практически неизпълними и гонят идеята на полицейска държава, пак няма да помогнат (има кило изследвания за това колко НЕ помагат камерите, например в Лондон, където са навсякъде, осветяването на цялата гора е практически неизпълнимо, а затварянето е мярка, по-подходяща за щрауси). Предотвратяването на такива престъпления е ужасно сложна задача (и практически неизпълнима даже в изцяло полицейска държава) и подобни мерки ще бъдат ненужни разходи (и тормоз) на наш гръб.

СДВР довършиха списъка с неадекватности, като дадоха пресконференция днес и обясниха как ще са двойно повече патрулиращите екипи – преди са били по един дневен и един нощен от по двама полицаи, сега ще са по два. В държава с едно от най-големите количества полицаи на глава от населението, ще се отделят още 8 човека (смени и т.н.), за да се патрулира цялата Борисова градина. Както казаха доста хора, вероятно ще патрулират кебапчийниците – аз лично от многото си разходки из градината съм виждал полицаи само няколко пъти…

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

Ето една от причините, поради които пия.
(май има и още примери за неадекватни реакции, но на мен тези ми идват твърде много и ще се спра)

2010-10-12 дървената ваканция на СУ

Tuesday, October 12th, 2010

Тия дни се появи “новината”, че в проекто-мерките, които се канели да предложат на следващото заседание на ректорския съвет на СУ имало университета да излезе в дървена ваканция за месец-два, за да могат да си закърпят бюджета.
Вече има план по въпроса, говорих с Жоро Чорбаджийски и няма да има проблем да излъчим на живо малко лекции (нужния хардуер го имаме). На живо, за да могат да се задават въпроси, тъкмо хората ще могат да си го гледат на спокойствие и на топло.
(
Всъщност, много се изкушавах да предложа само така да си правим лекциите. Представих си как си стоя на стола на топло и сравнително тъмно, говоря на хората и си пия от уискито. Или как правим изпитването в някоя близка кръчма.
Ехххх, размечтах се.
)

Цялата работа изглежда като нагласена, за да се вдигне шум и да дадат още малко бюджет на СУ без те да променят нещо кой-знае какво. Почти очаквах в мерките да има дарителска кампания със SMS-и, да могат бедните студенти да не умрат от студ в каменните зали.
(което е идея за НАП. Вероятно ако събират данъците със SMS-и, спокойно ще закърпят бюджета – “помогнете на бедната държава”…)

А СУ има огромна нужда да се реформира. Пример мога да давам основно с ФМИ, но те са достатъчни – например тия дни си правехме експерименти със някакво озвучаване на залата, в която водим лекции (аудитория 200), като на уводната лекция използвахме моето кубе от баса и микрофона, с който по принцип записвах пияното. След това открихме, че има два кабела при катедрата с моно-жакове на тях, които водят до колоните на стените, и с digger-а проведохме един ден тестове. Освен, че единия кабел беше добре забутан в един куп жици, че усилвателят, който трябва да е там е забутан някъде по последни данни из ректората, колоните от лявата страна на залата не бяха закачени – около смяната на дограмата са им свалили кабелите и са ги зарязали. С помощта на една стълба и известно време reverse-engineering на точния принцип, на който са свързани (последователно с прекъсване на едната жица през колоните) успяхме да подкараме нещата да работят и следващата лекция ще си имаме съвсем изчистен звук, понеже дори с викане не се чува добре на последните редове.
Чрез разни други източници разбрах, че имало и безжичен микрофон (такъв, който се закача по дрехите) и нужния останал хардуер за да се ползва както трябва залата.

… което води до въпроса, ЗАЩО не се използва това? Не съм единственият, който е имал преподаватели, които няма как да чуе, понеже говорят на дъската или основно на себе си, или такива, които преди 30 години са имали достатъчно силен глас, но сега просто няма смисъл да ги караме толкова да се насилват. Нищо сложно няма в цялата работа, щом отне на двама идиоти около час да оправят останалите проблеми и още около половин за началното тестване на setup-а. Не че имам против да свърша малко обществено-полезна работа, но не върви факултета сам да се дърпа назад към 80те години.

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

Anyway, я да си гледам двата сървъра с по два изгорели диска (в raid5 масив), те са по-малко вбесяващи.

(всъщност, кратка добавка. И някои студенти са не-малки идиоти, има предложение от студентския съвет да се ползват студенти за да правят промени в базата данни със студентите – като мярката да няма възползване от положението щяла да е – студенти от един факултет работят само по студенти от друг. Не мога да си представя, че някой би си повярвал и направил такова предложение без да се захили на идиотизма му.)

Update: Оказва се, че в една от залите (325) техническия проблем с тия неща е решен и по принцип си има всичко нужно да се чуват добре нещата (май има само микрофони, които трябва да се държат, но пак е нещо).