Tag Archives: General

In a blatant attempt to attract more Institutional supporters…

Post Syndicated from Eric Raymond original http://esr.ibiblio.org/?p=8379

Anybody who has visited my Patreon page should know that I have two special support tiers.

At Bronze ($20 per month) level, you get included in the credits of the project pages for all my solo stuff. Here’s a recent example.

Today I’m announcing two new perks for Institutional ($100 permonth) supporters. This tier is intended for people with corporate budgets behind them.

When you sign up, you get to chose a name (possibly your corporation’s) and at your option a URL to back the name; this will be included in the credits pages. You will also get an individual shout-out in the “Acknowledgements” section of my forthcoming book “The Programmer’s Way: A Guide to Right Mindset”

By joining my feed at Institutional level, your company can demonstrate good Internet citizenship through supporting the often thankless and obscure work needed to keep the infrastructure humming.

Thanks in advance for your support.

While I was making other plans, pars tres

Post Syndicated from Eric Raymond original http://esr.ibiblio.org/?p=8367

A day or so after the not-so-thrilling last installment of my medical troubles (previous post), I get my hands on a knee scooter. Rented from a local pharmacy.

This is a big improvement over the wheelchair. I’m more mobile on it, and can pee standing up. If you think that last bit doesn’t matter, pray you never find out what an epic getting on and off a toilet seat is when you don’t have the use of your dominant leg.

Unfortunately, life is tradeoffs. You can fall off a knee scooter; I have, twice. No serious harm done, but that kind of thing is another increment of pain and exhaustion in a process with quite a sufficiency of those, thank you.

The ankle started hurting yesterday, seriously enough that I briefly considered actually taking a Percocet, but only when it was horizontal in bed. I think my sensory feed from that extremity must still be a bit disturbed by the aftermath of the nerve block, because it took me almost a day to figure out that the pain was due to external pressure from some of the support scaffolding in the ankle dressing.

I think those rigid parts have shifted around in an unhelpful way due to my crawling around and/or mounting the knee scooter. We’re going to try to get an appointment at the orthopedist’s office today to have someone there inspect and rewrap the thing.

Which means I’m going to have to deal with getting down (and later up) the steps in front of my house. Yeek! Neither scooter nor wheelchair is well adapted to this; I’ll probably have to bust out the kneepads and crawl again.

It hasn’t been all bad. Saturday a couple of my friends from our Friday night game group came over to boardgame with me; Xia: Legends of a Drift System. A good time was had by all.

My far friends on the net have come through as well. My Patreon feed is $356 per month thicker than it was a week ago. And there have been a bunch of one-off donations. John Carmack (yes, the John Carmack) sent $1000, for which I am humbly grateful.

SELF is definitely a scrub, but we’re making plans for me to video in my keynote. Topic change: I’m going to talk about infrastructure sustainability considered as a problem of load-bearing people, and the fact that the hacker culture doesn’t have any customs about how to support our old maintainer/warhorses or arrange an orderly succession when they die in harness.

I’ve actually been worrying about this problem for years, but mostly because of load-bearing people near me who weren’t me. Now my attention is seriously focused. 🙂

I am able to work, and a good thing too or I’d be going bonkers. NTPsec is in a bit of a quiet period right now; we’ve delivered NTS, and the next big push I have in mind will have to wait until Go has a TLS 3.0 binding. So I’ve been making progress on the Go port of reposurgeon.

The Patreon is up to $1709 now. At $2000 it would cover monthly mortgage and bills; that’s starting to look attainable, which is a damn good thing given that I still have no clearer idea what the medical stuff will end up costing than “a lot”.

I increasingly think that software users and engineers who care about the infrastructure commons they rely on not collapsing out from under them are going to have to adopt something like the old custom of tithing, in self-defense.

In simpler times, before state-welfare schemes or insurance companies, community citizens in good standing were often religiously required or strongly encouraged to “tithe” – give a small fraction of their income to a church expressly for relief of the poor.

Nowadays we can cut out the middlemen and attendant risk of corruption. We have Patreon and SubscribeStar. Can we grow a social norm that hackers with regular jobs in the profit-making sector should use services like these to split (say) $30 a month among three infrastructure developers of their choice?

Yes, I am asking this for me, now. But I noticed the problem before it was personal. The problem is bigger than me, and the solution should be too.

The point of suggesting a fan-out of three is to avoid a situation where all that goodwill gets captured by a handful of hackers with high visibility (like, er, myself), and people who want to help have a reason to seek out developers who are doing important work in more obscurity.

While I was making other plans, part deux

Post Syndicated from Eric Raymond original http://esr.ibiblio.org/?p=8358

Thanks to everyone who joined my Patreon feed or upped their contributions. I’m still worried, but a little less so now.

Some good news. The post-op pain has stabilized at a level where the occasional Tylenol will handle it nicely. If Dr. Wilson the anesthesiologist is listening, damn! You are good at your job. The timing of the fadeout on the nerve block spared me agony without overdoing intrusive chemicals. This means I will not have to touch the opiates, an outcome for which I am deeply thankful.

The kneepads I ordered yesterday arrived this morning. Big win – crawling doesn’t hurt now, which improves my options. Also helps with dismounting to the floor off a toilet, which is one of those things you will never realize is a big deal until you have to do it.

But the biggest when is the real wheelchair. My mother is connected to a neighborhood non-profit in West Chester that loans out this kind of equipment. When she first went there the only visible option was a service chair, a wheeled chair designed to be moved by a nure or assistant rather than to enable the user to self-propel, so that’s what she brought back.

It was awful. A service chair doesn’t cope well with rugs or doorsills. The caster-like wheels on the front are perverse; any kind of turning or backing motion inevitably leaved them in a twisted state that make maneuvering nigh-impossible unless the person moving the chair can brute-muscle it around, which Cathy can’t do.

She went back and found out about the basement where they keep the good stuff, and now I have a real wheelchair – that is, the kind designed to be driven by the user’s arms. Massive improvement! The lesser part of it is that the big wheels cope better with sills and rugs; the much greater part is that I can move myself around. Having some autonomy back is, for someone with a psychology like mine, as precious as jewels.

Reduces the burden on Cathy, too. Hoicking my 245lbs around in that service chair was barely within the limits of her strength, hard work. I feel better because I can take that load off her now.

Excuse me while I wheel myself out to the kitchen for a ribeye steak from the Outback. And if, dear reader, you fail to comprehend that this, too, is therapy, you are certainly not qualified to take are of the likes o’ me.

Still trying to get my hands on a knee scooter.

While I was was making other plans

Post Syndicated from Eric Raymond original http://esr.ibiblio.org/?p=8349

Today I had to – literally – crawl from my wife’s car to my house. Because I couldn’t walk. Life is what happens while you were making other plans.

About six months ago I sprained my right ankle in kung fu class. It gave me occasional pain, mostly in cold weather, but I thought it was healing and I could just let it heal. Until about two months ago when I was out with friends on a chilly evening and my ankle folded up under me, just lost the power to support me entirely.

I escaped serious injury from the concrete pavement because I am really good at falling down without hurting myself. This is a skill you learn in early childhood when spastic palsy compromises the motor control in a leg. But it meant I had a prompt need to find out what was going on in there.

A couple of visits to doctors and an MRI scan later we determined that I had developed one of the more unfortunate possible sequelae of a sprain, a thing called an osteochondral lesion. This is what happens when an area of bone in the load-bearing area of the joint erodes away, so the cartilage above it is no longer supported. If the unsupported cartilage is then damaged, the long-term result can be crippling arthritis of the joint.

In my case, it seemed I had gotten lucky. The cartilage seemed undamaged in the MRI images. The indicated procedure is to go in with an arthroscopic probe and squirt synthetic bone into the lesion. Once it hardens it can support the cartilage so it doesn’t take additional damage.

I waited nearly a month for the surgery. Two weeks ago, while still waiting, my ankle folded under me as I was cooking breakfast. This time I wasn’t so lucky. I tucked in the right way to avoid injury from the floor, but the back of my head hit an errant chair leg, producing a laceration that bled copiously on the kitchen linoleum.

I picked myself up, applied pressure with a towel, called my wife, and informed her that when her errand was done she’d need to take me to the ER. A short but extremely expensive visit later I returned with three staples in my head and an MRI scan reassuring everyone that I probably hadn’t taken any permanent damage.

I think the medical staff got that before the MRI, because my main coping mechanism for hospital stress is wry humor aimed to make the people attending me laugh. I do it because this helps me feel in control of my situation, but in this particular case it conveyed something else that was useful. Comic wryness is, after all, pretty much impossible to maintain when you’re concussed or shocky.

Home again home again. It’s nice that even at 61 I’m a physically tough person with a high pain threshold and a thick skull who is actually rather difficult to injure – my school name over at the kung fu kwoon is “The Mighty Oak”. And I like that I can be self-reliant and stoic under stress. But thank you, I’d prefer not to have this confirmed by repeated injuries…

I had that surgery about eighteen hours ago. And ended up crawling from my car because none of the medical people talked about or planned for my post-operative problems until after I was out of anesthesia. Pain management was as far as they got.

It was not made clear to me in advance that I wouldn’t be able to put any weight on the joint for a minimum of two weeks, at risk of compounding my troubles. A nurse handed me a pair of crutches as an afterthought, but everyone’s specialties we so siloed that it didn’t occur to anyone to ask if I knew how to use them, let alone whether the impaired motor control in my uninjured leg might disqualify me.

So now it’s oh-dark-thirty the next morning, I’m writing this because the anesthesia and the four hours or so of shut-eye after I got home have left me all slept out for the moment, and I’ve learned from experience that quietly coding or writing until I’m tired enough to sleep again is better for me than tossing and turning.

I was scheduled to give the main keynote at South East Linux Fest on the 14th (this was well before I even knew I was going to need surgery, let alone how close to the event it would be). I’d have to do it from a wheelchair, now. I don’t have a wheelchair yet; we’re hoping to get one tomorrow. It may not be practical at all depending on my medical state, and I can’t even get my post-op check until after SELF. It’s hard to predict whether I’ll be able, and in a mere ten days I don’t think the odds are very good.

Part of the reason this is a public blog post is as my subjunctive apology to everyone who was expecting to see me at SELF, in the all-too-likely event that I can’t be there. Right after I post this I’m going to put a link to it on SELF’s IRC channel and recommend to the organizers that they find someone else to keynote.

I’m not entirely sure a wheelchair will fit in the corridor and through the doors of my house. Until I can verify that, I move by knee-walking or crawling. Besides forcing one to learn how to fall well, another perverse benefit of a palsied leg (or legs) is that the body compensates by making the arms and shoulders abnormally strong; this is helping me now as I frequently have to hoist myself around by main strength. Just getting from the floor to a toilet seat isn’t entirely trivial even so.

I’ve ordered a pair of carpenter’s kneepads for next-day shipping from Amazon. Improvise, adapt, overcome!

Cooking isn’t practical; the ritual of The Breakfast is denied to me until I’m back on my feet. Fortunately I can sit at my desk and type with my right leg elevated, as I am now doing.

There’s no real pain yet; the nerve block is sill operating. That will probably change within the next 24 hours. When it does, there’s a vial of Percocet (oxycodone and acetaminophen) pills a’waitin. Which I’m going to try hard not to take, because opiates scare me shitless. Still, my stoicism has limits and they might be tested this time.

There was some damage to the cartilage. The orthopedist said that if it fails to heal well I may need an ankle joint replacement. I am guardedly optimistic about this, as I do have a history of healing quickly and well from trauma (that nasty scalp laceration cleared up inside of a week). But the downside could be dire.

Finally…if you’ve ever thought that you might join my Patreon feed, now would be a really good time. This…adventure..has blown a $6000 hole in my budget and the expenses aren’t over yet. There’s that post-op check at minimum, and probably physical therapy afterwards, and that’s if all heals well; otherwise it’ll be much, much more expensive.

Friends of Armed & Dangerous 2019

Post Syndicated from Eric Raymond original http://esr.ibiblio.org/?p=8317

Once again I will be at Penguicon and hosting a party for all friends of this blog. This coming Friday evening, room number not yet known, it will be posted at the con.

Those of you who participated in the design of the Great Beast may be interested to know that I expect to receive its successor at Penguicon – a Greater Beast built from a 64-core Threadripper chip. The machine might well be at the party.

UPDATE: room 507, 9pm, Friday

2019-04-26 две събития

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3421

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

Първо сутринта отидох до ТУЕС, където имаше ТУЕСФест – интересната част беше, че навсякъде по стаите и коридорите ученици бяха изложили проекти, които бяха направили. Имаше толкова забавни неща, че ме хвана детска радост:
– машина за организиране на drinking game;
– група осмокласници бяха изкормили и mod-нали кафе машина, така че да могат да я командват гласово;
– имаше няколко security-ориентирани дипломни работи – IDS, reverse VPN, нещо, дето атакува wireless мрежи;
– излъчвател на DCF77;
– софтуерно радио – човекът с един RTL2832U си беше направил вузиализация на ефира и възможност за слушане на FM радио;
– минималистичен компютър от breadboard-ове и интегрални схеми, който наближаваше turing-complete машина;
… и някакви други, дето не съм запомнил, ТУЕС ще направят едно добро дело като публикуват списъка.

Следобеда отидох на Uber Open Source Summit в CityStage, където ме бяха поканили да участвам в панел на тема “Contributing to Open Source”. Дискусията се надявам да е била полезна на присъстващите, ще видя като излезе записът какви глупости съм говорил. Самото събитие беше приятно и се намериха доста хора, с които да си поговорим, та с удоволствие бих отишъл пак на нещо подобно. Като цяло имах очакването, че като събитие, организирано от голяма компания няма да ми е особено интересно/приятно, но тук се бяха справили и нямаше разните дразнещи спамерски моменти, които съм виждал на други места.

2019-04-19 FizzBuzz 3

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3420

(предхождащи post-ове по темата: FizzBuzz, FizzBuzz 2)
Задачката продължава да води до интересни идеи, та ще публикувам някои от тях.

В последно време търсим java програмист, та в едно от решенията имаше следното:

try {
	errorNumber=  1/(tmpNum%15);
} catch (ArithmeticException ae) {
	return "AB";
} 

Това за мен беше съвсем неизвестен начин да се напише if() 🙂 Ползването на exception-и е страшно неефективно (поне под Linux генерира SIGFPE, т.е. ще мине за малко и през kernel-а), но е още един начин да се промени пътя на кода.

Също така, в езиците, в които няма goto цикълът може да се реализире с рекурсия, като функцията, в която се влиза се избира от масив (идеята дойде на Slackware, който написа реализация на php), и изглежда горе-долу по следния начин:

function printto99($i) {
	global $funcs;
	....
	$funcs[$i % 100]($i+1);
}
function print100($i) {
	global $funcs;
	....
	return;
}

$funcs = array(0 => printto99(), 1 => print100());

$funcs[0](1);

В …. частта се слага логиката какво да се печата, което ме мързи да разписвам пак.

В Java тази конкретна идиотщина може да се реализира, като вместо масив от функции се направи масив от обекти с общ родител, който има два наследника – printto99 и print100 и така да се направи цикъла.

2019-04-04 раждане

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3418

Ясен Василев Колев, 51cm, 3800g, роден в 01:30 тая нощ.

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

Обещавам да си чета от време на време mail-а, ако трябвам на някого.

2019-03-09

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3417

Продължавам да се връщам в цивилизацията.

Вчера отидох при фризьорката, да ми измие главата от останалите сплъстени следи от кръв и други течности и малко да ме подстриже. Косата ми беше чак притеснително сплъстена, та реших да я дам на професионалист, а и имаше нужда от малко подстригване.
(на всичкото отгоре някакви хора го сънували)

Като страничен ефект, това не доведе до никакви болки, т.е. явно операцията има ефект. От снощи съм почнал внимателно да намалявам дрогата, да видим.

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

Бавно почвам да хващам пак и останалите на заден фон проекти, само това, че свикнах да проспивам следобеда малко пречи. Предполагам, че с дозите кафе отпреди ще неутрализирам ефекта.

2019-03-02 следболнични

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3416

И следболнично (трябваше да е вчера).

В петък ме изписаха (и ми извадиха абоката, който ме подлудяваше). Вкъщи съм си и основно дремя.

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

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

Дадоха ми и болничен. Той е 5 дни за в болницата и 30 (ТРИДЕСЕТ) дни вкъщи. Предния път на 10тия ден аз обикалях като идиот, не знам защо това е стандарта, особено за човек на моята възраст.

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

Нямам бъдещи планове за следващите няколко дни, освен да дремя и да ми се намества главата, после ще видим. Искрено ми се иска да мога да се върна малко на работа, преди Елена да роди и пак да съм неадекватен 🙂

2019-02-25 (втора) болница 1

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3409

Първи ден в болницата.

Станах в 6:10, че да стигна в 7:45 пред кабинета за приемане. Вкъщи само малкия звяр беше толкова ранобуден, та можах даже да го нахраня, преди да изляза. Явно не съм се объркал кога е час пик, стигнах доста бързо.

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

Иначе, тук си е тихо и спокойно, има гледка към “Гешов”, и най-вероятно ще си изкарам времето в ровене в кода на haproxy, да можем да пуснем trafstat-а на едно интересно място.
(кодът му не е от най-радващите, и най-вече не изглежда да има на лесно място нещата, дето ми трябват…)

2019-02-19 предболнично

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3407

Та, невралгията ми се върна. След като проверих с един куп доктори дали не може да е нещо друго и взех едно второ мнение от едно светило, което оперира в момента в Пирогов, изводът е, че ще се отваря и ремонтира (и ще се види дали нещо ново не се е появило там, понеже и болката е от време на време различна). В понеделник (25.02) ме приемат в болницата, и по някое време след като ме изследват за стандартните неща, ще ме оперират. Ще намеря начин да има някакви update-и тук за заинтересуваните.

Като цяло не горя от радост, че ще бъда опериран, от друга страна, освен че ще се наспя, пак ще се реши проблемът с болката. Спокойно мога да кажа, че предната операция ми даде 5 години живот (успях да се оженя и да направя две деца, освен всичко останало), та ще съм щастлив и на още 5 🙂

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

2019-02-09 FOSDEM 2019

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3406

Та, FOSDEM 2019. В bullet point-и, че не мога да събера нещо по-кохерентно:

– Занесохме си пак прилично количество хора от тук за видео екипа;
– Тази година бяхме с повече зали – 26 (+ една смяна в последния момент);
– … горното репи да яде в сравнение с идеята догодина да са над 30. Очаквам 2050-та FOSDEM да се случва в цял Брюксел;
– Понякога е притеснителен тонажа техника, който разнасяме напред-назад, с всичките стативи, камери, кутии и какво ли не;
– Сменяхме зала м/у събота и неделя, защото в първоначалната потече вода. ОТ СТЕНАТА (местната поддръжка на сградите дойте, видя, каза “това не е нормално” и си тръгна);
– Смяната към TCP реши старите проблеми (и добави нови);
– Audio monitoring-а се оказа много удобен;
– Имаме огромно количество бележки за post-mortem, догодина може да има някои много интересни промени във видеото;
– До сряда след конференцията бяха публикувани над 600 лекции.

Едно от интересните неща беше, че Емануил беше организирал нещо като пилотна младежка програма – едно девойче, 4-5 клас, от Англия (заедно с майка си), да дойде и да види FOSDEM. Много се зарадва на целия video setup и да разбере как работят нещата, и ми припомни, че можем/трябва да направим нещо такова и при нас, най-малкото на OpenFest, на принципа на програмите за социална отговорност (няма само Rails Girls да са такива, в крайна сметка).

2019-01-28 разни

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3405

Отдавна не съм писал, та накратко новини:

– чакаме втори звяр (знае се, че е мъжки, мислим име);
– върна ми се невралгията преди една седмица, следващата седмица съм на ЯМР и после ще видим;
– ще ходя пак на FOSDEM да се занимавам с видеото (въпреки невралгията, хаповете вършат някаква работа);

Около страничните всякакви проекти:
– работя по въпроса да имаме сървър с 10gbe порт за OpenFest (вече взех модули за switch-а, остана да харесам карта и да видя дали ще сменяме желязото), така ще си улесним малко свързаността, че с тоя LACP bond ме препсуваха три пъти;
– самият OpenFest мина доста добре. Аз се правех, че не съм в организацията;
– появяват се нови ipv6 тунели, който случайно не знае, че давам, да види в wiki-то по темата – има там едни гигабити да се напълнят, та обаждайте се, ако ви трябват;
initLab би се радвал на още членове;

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

2018-11-27 StorPool-ската игра на OpenFest 2018

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3403

(английската версия е в блога на StorPool)

В последните няколко години StorPool се появяват на OpenFest. За да направим щанда по-забавен, измисляме някоя игра. Миналата година задачата изглеждаше измамно проста, но доста затрудни хората, та тази година реших да опитам с нещо по-лесно.

“Fix the problems” задачата е базирана на много някакви стандартни случки от админския живот, т.е. на нещо, което би трябвало да ви се е случвало. Представете си обаждане от приятел (което може да е в 8 сутринта), в което ви казват “live сме с тая система, ама даже не тръгва, ПОМОЩ”. Та, логвате се и откривате ужасяваща кочина, сглобена от неща, правени от различни хора на различни езици, не-тествана и пълна с малки и големи проблеми, и трябва да проработи.

(или може би само на мен се случва, знам ли…)

Може да се пробвате, като свалите задачката с примерни данни от quiz.storpool.com/of2018.tgz и се пробвате. Отговорът започва с “8”.

За приключилите и нетърпеливите, ето описание:
Задачата се състои от следните файлове: a.c, a.php, a.pl, a.py, run.sh (който си мислех да кръстя “a.sh”) и един Makefile. “run.sh” свързва всички останали заедно, да сметне някакъв резултат от данните в “data/” директорията.

Цялото нещо си има история – имало 4 различни програмиста – C файлът бил написан от човек, който говори английски, PHP-то от финландец, Perl-а от унгарец, Python-а от арабин, и shell script-а от българин. Всички са имали лошо мнение за останалите и са оставили коментари в кода по адрес на останалите.

Счупванията са сравнително тривиални, понеже time limit-а за цялата задача беше 30 минути и имаше разни заблуждаващи моменти. Започвам от свързващия файл и после по pipe-а:

run.sh навързва всичките останали. Основната грешка е, че липсва -0 параметъра на xargs (което се забелязва доста лесно, понеже find използва -print0). Друга гадост е, че файлът е с DOS-овски нови редове и не може да бъде стартиран нормално, или трябва да се подменят, или да си копирате отвътре pipe и да го пуснете на ръка.

В коментарите може да се види как авторът нарича останалите “идиоти” (което съм сигурен, че всички са виждали в някакъв вид), и списъкът му за пазаруване. Последното може да се вижда странно и невероятно, но е нещо, което съм виждал в production код – случва се, като трябва веднага да се запише нещо и човекът го мързи да отвори нов прозорец в редактора или да намери малко хартия.
(някакъв спомен ми се мотае, че случая, който бях виждал беше поръчка за KFC…)

a.php добавя 1 към всички числа, и за да дразни останалите разработчици, добавя и допълнителни интервал. Очевидната грешка е че вместо STDIN е написано STDON, което бързо се оправя.

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

a.pl просто премахва всички интервали, т.е. създава едно голямо число от всичките числа на реда. Грешката е, че се използва $__ вместо $_ – лесна за забелязване правописна грешка.

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

a.py взима всички числа и връща остатъкът им при деление на 2^63 (което е hard-code-нато като 9223372036854775808). Грешката тук е, че цикълът започва с while False:, което няма никакъв смисъл, и смяната му на while True: решава проблема. Самият код е малко по-гаден от останалите, понеже има променливи с имена на арабски, които се изписват от дясно на ляво и могат да объркат терминала, но в крайна сметка тези части не трябва да се пипат.

Оплакването на края е, че ако не си бил взел трета жена, нямало да му се налага да работи с тези хора…

И накрая, a.c прави странни изчисления и вади остатъка от деление на 2^10 на резултата в шестнайсетичен вид (за да е достатъчно кратко, че да върши работа за отговор). Грешката в кода е, че целочисленият тип в началото е грешен и трябва да се работи с long long (което се вижда в останалия код). Това е и причината в Makefile да има -Werror -Wall, за да се забележи лесно проблема.

А коментарите във файла са премахната заради “PARA-22”, което не би трябвало да има нужда от дообясняване.

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

Лекцията от OpenFest 2018, “История на OpenFest”

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3401

(Това е лекцията ми от OpenFest 2018. Разказът не се получи много добре, понеже със задачите преди това забравил половината от нея, надявам се текстът да е по-добре. Също така мисля да публикувам кода за нея, понеже в него се появиха разни интересни неща)


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

Лекцията не претендира за голяма изчерпателност, понеже ще отнеме два дни и малко ще попречи на останалите лекции 🙂

Отсега да предупредя, това е една много разхвърляна лекция, с подъл спамерски елемент.

Първият OpenFest беше 2003та. Започна като събитие за свободния софтуер, и се проведе в много градове из страната, като беше по едно (спрямо сегашните мащаби) малко събитие във всеки град.

В началото се движеше от съвсем малко хора, беше зората на free software/open source движението и ентусиастите не бяха много.

До преди това основното подобно събитие беше един малък семинар в Стара Загора всяка година, на българската Linux User група.


Това е една снимка на залата от първия openfest, издирена някъде от архивите на linux-bg.


А това е едно от първото ни споменавания във вестник, мисля, че беше Пазарджишки. Благодаря на човека, който го е снимал/сканирал:)

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

Две прости ясни думи. Тълкуването им може да се остави на въображението ви 🙂

Каквото и друго да измисля, в общи линии се включва в тези неща.


Ако някой направи tag cloud с темите, вероятно ще се стигне до горните няколко области. Разбира се, свързващото нещо беше Linux, понеже олицетворяваше всички тези неща в някакъв вид, и беше нещото, което ползвахме, да си вършим работата или да правим разни интересни неща…

Имало е всякакви интересни теми и хора на openfest през годините. Избрал съм няколко, за останалите трябва да се заровите в програмите или някой да напише подробна история 🙂

Останал ми е спомен от хората от wikipedia, които идваха да говорят на OpenFest – и за техническата и за не-толкова техническата си страна, докато още не бяха един от най-големите сайтове в internet-а.

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

Дори вче имаме резултат от това 🙂 Наскоро беше публикуван кодът на новия портал за отворени данни, който е от две части, и искам да обърна внимание на едната:

Ако нямахме този отворен код за държавния софтуер, нямаше да сме наясно и да можем да направим каквото и да е за код като по-горния. Оставил съм отдолу link, целият код е забавен, може да видите и history-то му, ще се забавлявате още повече. Може би е време за един по-организиран community audit на подобен код, след като имаме възможността.

И е интересно дали някой може да провери каква част от кода е copy-paste от stackoverflow.

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

(не се сдържах за снимката. Спокойно мога да кажа, че това изглежда по-смисленото приложение на IoT, вместо многото устройства, които в наши дни се използват основно за източник на DDoS атаки)

Имаше IoT лекции на openfest преди да съм чул термина, и хората дори се забавляваха да си запояват/подкарват такива неща в рамките на феста (и почти традиционно да успяват да убият мрежата по някакъв начин).


Около това ми се иска и да спомена workshop-ите за запояване, които са доста свързани – една година Цветан Узунов от Olimex си хареса един ъгъл в interpred, извади едни поялници и два дни хора седяха и запояваха различни неща. Искам много да му благодаря за започнатата традиция 🙂

И да, съвсем съм наясно, че запояването дори бе неше основното – основното беше подкарването на всичките тия компоненти да вършат различните интересни (и странни) задачи, които им бяха измислили.

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

Извън техническите и легални неща, преди няколко години направихме лекция за депресията и отражението и в IT обществото. Наскоро забелязах как вече хората не се притесняват да говорят по темата и да възприемат депресията като сифилиса, та ми се ще да вярвам, че и ние сме имали някакво влияние за това 🙂

Разбира се, имаше доста промени през годините – местихме се в различни зали, нямахме медийно отразяване, защото или имаше избори, или предния ден застрелваха някого (беше се случило две години подред).

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

В екипът идваха нови хора, стари решаваха да си починат, после се връщаха.

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

Обаче, без да се усетим, стана нещо интересно…

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

В момента…

В момента звучи съвсем нормално и очаквано, че най-използваните мобилни и cloud операционни системи са Linux и Linux-базирани. Базата данни, която използват всички, включително почти всички мобилни устройства (не само android) е sqlite и в общо линии не мисля, че в наши дни е откриваем компютър или телефон без нея.

Ако в наши дни някой седне да разработва софтуер, почти без изключение съдържа доста open-source компоненти. Казвам почти, понеже сигурно някой ще открие нещо древно от времената на Cobol, което да няма, но па всичко, което се използва в наши дни е така, и присъствието на git във visual studio code е доста добър индикатор….

В общи линии хората разбраха, че предимствата на свободния софтуер и на отворените стандарти надминават имагинерните проблеми от тях.

Това не ни остави без причина да съществуваме – винаги някой е против отвореността и се намира някоя кауза (например чл. 13 и няколко други на директивата за авторско право на Европейския съюз, която е поредния опит да се наложи цензура в Internet). Отбелязал съм разни проблеми, които очаквам да са ни теми в бъдеще:

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

Всичките code-of-conduct тип проблеми няма да стават по-леки, както ни показа последната случка с Linus. Искрено се надявам да ги надрастнем… Мариян имаше предложение тази година да организираме панел по темата тук, но на мен ми призля. Не съм сигурен дали бях прав да се противя, и се надявам някой с по-здрав стомах и желание да успее да го направи (и да се получи смислено).

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

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

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

Идеята на събитието не се е променила особено, въпреки промените в екипа и изминалото време. Смятам, че идеите са достатъчно силни, че да могат да мотивират достатъчно хора, които да случат всичко.

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

Преди да продължа с причните да се включите, една скоба – не е задължително да сте част от екипа, за да участвате по някакъв начин.

Почти всяка година се намира някой да се оплаче (основно без причина), че нямало добри лекции. Отговорът е винаги – като имаше CfP, къде спахте? Има много хора в нашата държава (и наблизо), които се занимават с интересни неща и могат да ги разкажат, но ги знаят само те и няколко близки приятели. Ако случайно сте от тези хора или от близките приятели, припомняйте им в началото на септември, че има такова нещо като OpenFest 🙂

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

И сега към причините:

Не е лесно да се оцени крайния ефект от OpenFest. Основното, което имам са някакви мои преживявания, от типа “чух на openfest за това и се занимавам с него”, за разни лекции и разни хора. Мисля, че всяка година има хора, идващи за първи път, които се прибират с пълни глави и се чудят кое от всичките неща, които са видели, да захванат.

На колко от вас ви харесва светът, в който живеете? Вдигнете ръка.

За всички, които вдигнаха ръка – свържете ме с дилъра си:)

В някои отношения нещата са по-добре, отколкото преди 20 години – сега например доста по-малко се стрелят по улиците.

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

Извадих няколко заглавия от новини(докато писах лекцията, на random, от един ден), за да илюстрирам. Преди месец-два съвсем бях спрял да ги чета, погледнах колкото да намеря нещо илюстративно, и никак не ми беше трудно…

Та, в светът, в който живеем:
– 62% от сайтовете използват ужасяващо строшена технология
– огромна компания, известна с повреждащото си въздействие купува друга средно вредна компания, която обаче е работодател на много сериозна част от разработчиците на ядрото и други инфраструктурни технологии
– Пак да си припомним, всеки от нас носи по едно-две проследяващи/подслушващи устройства, които м/у другото стават да правим обаждания и за browser-и. Статията конкретно е как няколко разузнавания послушват американския президент, и съм склонен да кажа, че нищо от това не е особено учудващо за който и да е, който е писал софтуер за такива устройства.
– Хората (не само в Русия) им се пробутва безплатен интернет, за да бъдат продавани.

Има начини да се борим с това. Образоването на хората, говореното по темата, привличането на нови хора в това е от възможностите на OpenFest, и е нещо, в което може да се включите.

Това като цяло произхожда от един момент, който за мен е очевиден, но по някога се притеснявам, че не е така за всички:

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

И да минем към нещо по-приятно.

Може би само на мен ми е толкова интересно това, но едно от нещата, които най-много са ме радвали са, че си правим сами каквото можем. Всякаква инфраструктура, като мрежа, wifi, видео streaming, понякога ток – имаме сериозен знаещ екип, интересна техника и всякакви забавни неща, които правим с нея.

Сайтът ни за submit-ване на лекции сами сме го писали, този за гласуване е пригаждан, сайтът на събитието (който по принцип е един wordpress) е сериозно дописван от нас и може да се види цялата му история в github.

Изобщо, техническата ни част е рай за хората, които обичат предизвикателствата 🙂


(тези неща Мариян ги спомена след лекцията, реших, че е добре да ги включа)

Разбира се, не всички екипи са толкова технически, но са също толкова важни.

Екипът “Логистика” отговаря за това всичката ни нужна техника (която никак не е малко) да стигне от различните места, на които се намира, до самата зала, и после да се изнесе. Грижи се за положението на всички физически неща, както и за събирането ни на лекторите от летището, особено като носят десетки килограми странни неща с тях.

Медийният екип се грижи за цялото медийно покритие на събитието и обявяването на нещата преди него – статии в сайта, twitter, facebook, събиране на информация от лектори и т.н.. Този екип е едно от местата, в които прохождащи журналисти/студенти могат да се занимават да пишат и отразяват нещо реално и случващо се.

При всички доброволци си имаме и екип, който се грижи за тях – да са облечени, нахранени, да има къде да си починат и всички подобни неща. Като едно тяхно действие мога да кажа как миналата година бяхме предвидили за Team room едно от помещенията до NOC-а, в мазето (със собствена тоалетна). Дойде екипът volunteer support, погледна, каза “това е твърде депресиращо” и заради тях сега екипът може да си почива в стая с прозорци 🙂
(аз не разбирам тия неща, но явно на хората им харесва)

Екипът рецепция е един от най-видимите и доста натоварен – голяма част от хилядите ни посетители минават през рецепцията по един или друг начин.

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


Това е схема на мрежата ни, докато бяхме в зала “България”. Понеже там е много красиво и няма никаква инфраструктура, трябваше да опънем около километър кабели (и 2 метра оптика, щото едни медни GBIC-и се бяха счупили), съответно мрежата е направена да издържа на прекъсване на което и да е трасе и има в себе си няколко цикъла. Също така тази мрежа е пример, че може да се подкара MSTP в мрежа с Cisco и TP-Link устройства.


Това е как ни изглежда setup-а за тази година за залата, в която се намираме в момента.


… а това е по-артистично нарисувана схема на setup от предишни години.

Това са плановете за разпределението на площите през 2016…


… а тези – на етажът, на който се намираме в момента.


За хората, които обичат да обитават мазета – това е NOC-а ни в зала България,


а това – текущия в ТехПарка. Има напредък, но пак си е мазе и е много удобно за всякакви хора, на които NOC-овете са нормалното обиталище 🙂


Това е една снимка на техниката ни за 2015, в общи линии може да видите почти цялата ни мрежа, разпъната на едно бюро, заедно с някаква част от wifi AP-тата.


А това е една хубава снимка от по-малкия ни video setup.


И скоро не ни се е налагало да си прекарваме по странен начин internet-а, но искам да покажа как нищо не ни е спирало – тук може да видите какви средства сме използвали за стабилизация на антена…

Една година в петъка преди openfest бях започнал да се разболявам. В понеделник бях съвсем здрав, и изобщо не си спомням да съм боледувал, имам спомен само от много тичане и задачи …

Мислех си да опиша екипа, но няма да ми стигнат нито думите, нито времето. Събрал съм малко снимки, колкото горе-долу да илюстрирам, но си казвам отсега, че изобщо не стигат:)


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


Тук седим и конфигурираме мрежа през 2005. Вече е минало достатъчно време да кажа спокойно, че човекът от ИЕЦ беше готин и просто каза – ето ви switch-а, настройте го както си искате.


Този сигурно някои от вас го познават…


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


Екипът от 2013 (когато започнахме традицията всички да се покажат един път на сцената).


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


Екипът от 2015 (това, което виждате най-вдясно са един малък духов квартет, който свири Имперския марш).


…а 2015 дори успяхме да усмихнем Яна, въпреки цялата лудница.


Тук има някакви хора, които мъкнат…


… и разни въоръжени такива. Ако не сте виждали хайдутин с пистолет и радиостанция, това ви е шанса.


Екипът от 2016.


Екипът от 2017.


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

И искам да завърша с една благодарност към всички, които през годините са допринасяли по някакъв начин за OpenFest. Събрах доколкото можах всички имена (надявам се не съм пропуснал никого)
Видеото, което пуснах.