<bgdev />free

| |  


All tags 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game gcc github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux m0 ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


край на примитивните езици!

  

0 1 2 3 4 5


  synergie  Последно редактирано на 04.11.2024 от synergie, видяно: 171 пъти. #125553
Евлампи

Питон (като почти сяка скована от чамови дъски хоби чекия) има GIL, це диез няма.

Преди питон да се превърне в комитетско усилие даже беше симпатичен език, сега е квазимодо - комитетско усилие с GIL :)

GIL е опционален в питон от около година. Дали ще пишеш с изключен GIL асинхронно в питон няма да се отрази на еднонишковия event loop, освен ако не създаваш нови ивент loops които да вървят в отделни нишки експлицитно, но то това и с GIL включен беше възможно(доколкото GIL-a позволява)



  Baj_boeb  Създадено на 04.11.2024, видяно: 169 пъти. #125554
synergie
Евлампи

Питон (като почти сяка скована от чамови дъски хоби чекия) има GIL, це диез няма.

Преди питон да се превърне в комитетско усилие даже беше симпатичен език, сега е квазимодо - комитетско усилие с GIL :)

GIL е опционален в питон от около година.

Смятаййй, имаме вече професори по нещо наречено "питон", трололоолол.



  Rabin  Създадено на 04.11.2024, видяно: 168 пъти. #125556
BIGBUGEX

Пайпа дойде и сипа с черпака.

Сички са му криви на тоз таласъм.

Освен ако не са открили стрелящи 5г часовници - ще приключи като всеки правоверен инокулиран идиократ. До тогаз ще ни радва с приказки как познавал лично Били белезниците. Може да е купил ниви до тях, изкупи половин фащ.



  synergie  Създадено на 04.11.2024, видяно: 166 пъти. #125557
Baj_boeb
synergie
Евлампи

Питон (като почти сяка скована от чамови дъски хоби чекия) има GIL, це диез няма.

Преди питон да се превърне в комитетско усилие даже беше симпатичен език, сега е квазимодо - комитетско усилие с GIL :)

GIL е опционален в питон от около година.

Смятаййй, имаме вече професори по нещо наречено "питон", трололоолол.

Аз съм КОНСУЛТАНТ. Разни като тръбата са ми клиенти.



  Baj_boeb  Създадено на 04.11.2024, видяно: 164 пъти. #125558
synergie
Baj_boeb
synergie
Евлампи

Питон (като почти сяка скована от чамови дъски хоби чекия) има GIL, це диез няма.

Преди питон да се превърне в комитетско усилие даже беше симпатичен език, сега е квазимодо - комитетско усилие с GIL :)

GIL е опционален в питон от около година.

Смятаййй, имаме вече професори по нещо наречено "питон", трололоолол.

Аз съм КОНСУЛТАНТ. Разни като тръбата са ми клиенти.

Опиши един работен ден на "консултант".



  Rabin  Създадено на 04.11.2024, видяно: 161 пъти. #125563
Baj_boeb

Опиши един работен ден на "консултант".

Тия скумуват в левитация. Като космонавти. Ганорникът има песенки за тях.

Цели дни са ми губили.



  Stilgar  Създадено на 04.11.2024, видяно: 157 пъти. #125566
synergie
|
waldorf
synergie

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

Абе кода си му беше горе долу верен. Проблема беше с обработката на грешки. И ако беше ползвал AwaitAll или там както се казваше функцията нямаше въобще да водим този разговор в момента. Кода се пише веднъж но се чете много пъти. Затова е важно да е четлив а не да е лесен за писане. Стойката предполагам, че схвана проблема. Кофти написания код мирише и предизвиква излишна полемика - дори и функционално да е ОК.

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

Тръба, пак те питам, ти как така хем не знаеш как работи async/await-a v C# хем знаеш че кода щял да се изпълнява едновременно? Причината да твърдиш това е защото си решил че има САМО един начин да работят async/await call-oве. Това автоматично означава че ти си в грешка АПРИОРИ, дори по случайност да си уцелил как работи кода на Стуйо. Сега ще си признаеш ли ГРЕШКАТА, че async/await работи различно в различните езици, и шанса ти е 50/50 дали си уцелил как работи кода на Стуйо?

Това дали ще се "изпълнява едновременно" няма никакво значение защото в тоя конкретен случай (заявка към база данни) нищо не се изпълнява (на този компютър дето await-ва). Просто се чака. В тоя смисъл е същото като в Python. C# може да ползва async/await механизма за изчакване на истинска работа на друга нишка, което Python май не може (ако може сигурно е от последната версия дето махнаха GIL), но това в тоя случай е ирелевантно.

И пак да кажа - старото онзи код щеше да ги напише с мазни await-и на всяка задача преди да се пусне следващата. Да, въпросният http request ще мине по-бавно, голям праз, но от scalability гледна точка намаляваш риска някой да трябва да чака дълго за сметка на друг, правиш откриването на проблеми по-лесно и ако случайно някой ден смениш начина по който достъпваш базата няма риск да трябва да минаваш навсякъде щото се оказало, че новият ти data access начин не поддържа паралелни заявки (да, EF баш така прави, или поне правеше, така и не разбрах дали го оправиха това специално когато ползваш един Context обект)



  Последният акаунт на Единия  Създадено на 04.11.2024, видяно: 145 пъти. #125570
synergie
Baj_boeb
synergie
Евлампи

Питон (като почти сяка скована от чамови дъски хоби чекия) има GIL, це диез няма.

Преди питон да се превърне в комитетско усилие даже беше симпатичен език, сега е квазимодо - комитетско усилие с GIL :)

GIL е опционален в питон от около година.

Смятаййй, имаме вече професори по нещо наречено "питон", трололоолол.

Аз съм КОНСУЛТАНТ. Разни като тръбата са ми клиенти.

Недей бе Синджирка - и аз бех "кон-султан" у време оно.

Обясни на плоскоземците, ко праиш...



  Дон Реба  Създадено на 04.11.2024, видяно: 142 пъти. #125571
Stilgar

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

My picture


  Stilgar  Създадено на 04.11.2024, видяно: 141 пъти. #125572

От всичките неща които джонката ги говори за GC, вярно е само това, че по-агресивно захапва памет. Май щото така може да си мете на едно място докато си пише на друго. По принцип винаги има stop the world проблем ама в съвременните GC-та той е много рядък и относително кратък, по-рядък отколкото да ти хлъцне мрежата или базата така че на практика е без значение, аз толкова години един път не съм имал проблем дето да се е оказал от GC. В същото време GC е много добър в най-важната метрика за web - throughput. Има някаква истина в това, че десктоп програмите на Java, C# и JS са по-лагави от тея на C/C++, но в наши дни това не се дължи на технологията, а на факта, че C++ програмистите са свикнали да се борят за всяко парче производителност, а сървърните програмисти дето бичим GC езиците не, поне не по този начин и съответно като си докараме практиките които не пречат на сървърите с много гигабайти рам в десктоп програмите те стават по-лагави. Разбира се има и контрапримери ей така да се докаже, че не е от езика.



  waldorf  Създадено на 04.11.2024, видяно: 129 пъти. #125581

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

Тъй като sql не е добър за аритметика която зависи от сметката на предния ред - например баланс на счетоводна или банкова сметка - дата, взел, дал, налично - реших да направя бизнес логиката на .нет вместо да я чупя на две между сторед процедури и остро си. И сега сметни един супермаркет който в час пик продава хиляди стоки. След това го репликирай между всички обекти за голяма верига магазини. И покажи справка коя стока каква наличност има в момента по отделни обекти или колко е печалбата по часове/райони/ група стоки. Като всичкото това го смяташ на остро си с орм на практика се генерират милярди обекти с много кратък живот и съответно фрагментацията и консумацията на памет са мудовищни. Метенето на боклука блокира всичко понякога за 2-3 минути - и през това време имаш няколко опашки с бързащи рабиняци дето псуват тея компютри и системи.

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



  synergie  Последно редактирано на 04.11.2024 от synergie, видяно: 121 пъти. #125585
Stilgar

Това дали ще се "изпълнява едновременно" няма никакво значение защото в тоя конкретен случай (*заявка към база данни*) нищо не се изпълнява (на този компютър дето await-ва). Просто се чака. В тоя смисъл е същото като в Python. C# може да ползва async/await механизма за изчакване на истинска работа на друга нишка, което Python май не може (ако може сигурно е от последната версия дето махнаха GIL), но това в тоя случай е ирелевантно.

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


async def fetch_count():
    ...
    return 10

async def fetch_records():
    ...
    return records_list


async def run():
    t1 = fetch_count()
    t2 = fetch_records()

    await t1
    await t2

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

async def fetch_count():
    ...
    return 10

async def fetch_records():
    ...
    return records_list`


async def run():
    t1 = fetch_count()
    t2 = fetch_records()

    await asyncio.gather(t1, t2)
   

My picture
Attached files:
FileSizeUploadedDownloadsMD5 hash
image.png35504 bytes04.11.20243766e7d304693a90045877b409945817c6


  Stilgar  Създадено на 04.11.2024, видяно: 97 пъти. #125601
waldorf

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

Тъй като sql не е добър за аритметика която зависи от сметката на предния ред - например баланс на счетоводна или банкова сметка - дата, взел, дал, налично - реших да направя бизнес логиката на .нет вместо да я чупя на две между сторед процедури и остро си. И сега сметни един супермаркет който в час пик продава хиляди стоки. След това го репликирай между всички обекти за голяма верига магазини. И покажи справка коя стока каква наличност има в момента по отделни обекти или колко е печалбата по часове/райони/ група стоки. Като всичкото това го смяташ на остро си с орм на практика се генерират милярди обекти с много кратък живот и съответно фрагментацията и консумацията на памет са мудовищни. Метенето на боклука блокира всичко понякога за 2-3 минути - и през това време имаш няколко опашки с бързащи рабиняци дето псуват тея компютри и системи.

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

Според мен или си писал с краката си или информацията ти е от 2003. Точно пък обектите с кратък живот не са проблем на практика. Виждал съм проблем с дебели масиви и огромни стрингове дето отиват на large object heap ама дори за това дадоха вече контрол (вярно, ръчен). Да не говорим освен всичко това колко инструменти има за да избягаш от алокациите, които даже не ми се е налагало да ползвам (разбира се фреймуъркът ги ползва за мен вътрешно), то array pool, то span (това признавам съм го ползвал ама не щото ми е трябвало ми така, да се чувствам готин като C програмист), то memory<t>...



  Rabin  Създадено на 04.11.2024, видяно: 95 пъти. #125605
Stilgar

Според мен или си писал с краката си или информацията ти е от 2003.

Урсулопитешкия лумпен не е виждал нещо повече от С. Инак традиционнното самочувствие на мисионера, живее в най-оригиналното гето, режат им ушите със Солинген rofl



  waldorf  Създадено на 04.11.2024, видяно: 94 пъти. #125606
Stilgar

Според мен или си писал с краката си или информацията ти е от 2003. Точно пък обектите с кратък живот не са проблем на практика. Виждал съм проблем с дебели масиви и огромни стрингове дето отиват на large object heap ама дори за това дадоха вече контрол (вярно, ръчен). Да не говорим освен всичко това колко инструменти има за да избягаш от алокациите, които даже не ми се е налагало да ползвам (разбира се фреймуъркът ги ползва за мен вътрешно), то array pool, то span (това признавам съм го ползвал ама не щото ми е трябвало ми така, да се чувствам готин като C програмист), то memory<t>...

Не беше писано с краката. Просто беше развитие на предния ми продукт на ц/ц++ към дот нет. Говоря за периода 2003-2008. Както казах имах достатъчно време да анализирам къде съм сбъркал - много грешки направих но това не прави дот нетя добър метач него време.



  Rabin  Създадено на 04.11.2024, видяно: 92 пъти. #125607
waldorf

Не беше писано с краката. Просто беше развитие на предния ми продукт на ц/ц++ към дот нет. Говоря за периода 2003-2008. Както казах имах достатъчно време да анализирам къде съм сбъркал - много грешки направих но това не прави дот нетя добър метач него време.

Транзакции на каса не са драстично натоварване, неко Гана е правила обратно наддаване при наемането, и затуй така.

Губили сме грамадни клиенти, зарад подобни неща. Жуняци творили тотално мазало, и айде наемат senior на 1/5 ставка чистачка, и да оправя.



  Stilgar  Последно редактирано на 04.11.2024 от Stilgar, видяно: 91 пъти. #125609
synergie
Stilgar

Това дали ще се "изпълнява едновременно" няма никакво значение защото в тоя конкретен случай (*заявка към база данни*) нищо не се изпълнява (на този компютър дето await-ва). Просто се чака. В тоя смисъл е същото като в Python. C# може да ползва async/await механизма за изчакване на истинска работа на друга нишка, което Python май не може (ако може сигурно е от последната версия дето махнаха GIL), но това в тоя случай е ирелевантно.

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


async def fetch_count():
    ...
    return 10

async def fetch_records():
    ...
    return records_list


async def run():
    t1 = fetch_count()
    t2 = fetch_records()

    await t1
    await t2

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

async def fetch_count():
    ...
    return 10

async def fetch_records():
    ...
    return records_list`


async def run():
    t1 = fetch_count()
    t2 = fetch_records()

    await asyncio.gather(t1, t2)
   

My picture

хммм това какво ще даде

ако имаш


async def test()
    print('hello')
    await asyncio.sleep(5)
    print('world')

и го викнеш какво ще стане?

Иначе документацията говори за някакво create_task дето трябва да се ползва та май си прав и поведението на C# ще се получи ако се ползва това create_task



  roncho  Създадено на 04.11.2024, видяно: 78 пъти. #125623

Доста енергия изхабихте за няма нищо. Програмните методики са широко множество и няма особен смисъл да се спори кой е крив и кой е прав. Писал съм управител на паметта, който работи по най-простия възможен начин - всеки програмен процес преди смъртта си изтрива заетата от него памет. И това ми върши отлична работа, макар, че някой теоретик може да намери кусур на такъв начин. Аз го харесвам, защото е лесен за наблюдение и прост за реализация. Но забраната на свободен достъп до паметта, струва ми се, е малко по-различна задача, свързана с едновременната работа на процеси. Лично на мен ми изглежда като "забрана за свободно програмиране", което е в тон с глобалната полицейщина в IT сектора.



  |  Последно редактирано на 04.11.2024 от |, видяно: 74 пъти. #125624

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

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

За GC дори няма смисъл да се говори с хора, които не знаят колко добри са съвременните GC. Разни думички като multi-generational, asynchronous и т.н. не им говорят нищо.



  synergie  Последно редактирано на 04.11.2024 от synergie, видяно: 65 пъти. #125627
Stilgar

хммм това какво ще даде

ако имаш


async def test()
    print('hello')
    await asyncio.sleep(5)
    print('world')

и го викнеш какво ще стане?

Нищо няма да стане, докато не го awaitnesh или не го вкараш в event loop-a.

Stilgar

Иначе документацията говори за някакво create_task дето трябва да се ползва та май си прав и поведението на C# ще се получи ако се ползва това create_task

Ще се получи подобно, но не същото. В C# асинхронния таск ще тръгне паралелно на кода който го е стартирал, в питон трябва event loop-a да се освободи, потенциално от последващ await в кода(не задължително върхъ таска) след този който го е стартирал, и това не е заради GIL-a сам по себе си, а заради имплементацията в питон, която естествено е повлияна от наличието на GIL.

import asyncio
import time

async def some_task():
    print("Task started")
    await asyncio.sleep(2)
    print("Task completed")

async def main():
    task = asyncio.create_task(some_task())  # Task is created but won't start immediately
    print("Main function continues immediately without yielding")
    while True:
        sleep(1) # This prevents the task from running indefinitely

    await asyncio.sleep(2) # Now the task gets a chance to run OR
    await task  # Now the task gets a chance to run


asyncio.run(main())


0 1 2 3 4 5


край на примитивните езици!

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE