BG Development


Страници: (113) [1] 2 3 ... последна »

relax4o Публикувана на: 21-02-2025, 13:50

Мнения: 14
Преглеждания: 4995
QUOTE (thrawn @ 21-02-2025, 12:50)
В примерът ти се разчита на това, че httpClient е реактивен (предполагам) и сам ще си прихване и емитне изключенията. Защото ако не е така, то ще има проблем при липса на връзка да речем.

Иначе, в ревюто което си дал (точно линкнатите слайдове с map) наистина си ползват императивна логика. За съжаление, при представянето на обсървърът са свели примерът до println. Но като цяло почва да ми се затвърждава мнението, че генерализирането на темата е погрешно.

Имай в предвид, че това което давам като примери е гола работна постановка (набита в статичен контекст). В крайна сметка, api-то ще следва същия синтаксис като потребителя ще трябва да посочи поне един от трите манипулатора onResponseOk, onResponseError и onError (е, плюс посочване на remote интерфейс и подаване на съответните параметри). Реално от вън няма да се вижда конкретната имплементация.

В примера ми се разчита на това - да, защото практиката ми е такава в Ангулар, но винаги можеш да обърнеш отговора от non-reactive http client в observable и да го третираш така отвън, ако смяташ, че си заслужава да създаваш фасадата.

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

  Форум: Java/Kotlin  ·  Преглед: #502085

relax4o Публикувана на: 21-02-2025, 11:55

Мнения: 14
Преглеждания: 4995
Да ти кажа, работа с http клиенти се различава до някъде от реактивно програмиране на каквото и да е друго, защото като програмисти всичко от 400 нагоре го третираме като грешка и очакваме да го обработваме като такава в onError, но тука случая е друг, защото имаш и изключения за реални грешки, а всички статуси се третират като валиден response.

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

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

Също избягвам subscribe() в subscribe() или в който и да е метод по чейна, защото при промяна по observable не ти гарантира канселиране на вътрешните събове. По-добре е да ползваш switchMap/flatMap/concatMap в такива случаи.

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

CODE

// service
function Observer<...> getMeEverything(bla bla) {
   return httpClient.get(...).map(response => isSuccess(response) ? okResponse(response) : errorResponse(response));
}

// където извикваш сървиза
service.getMeEverything().subscribe(...)


Редовна практика е при нас (може би и на нас ни куца опит) да ремапнем отговора, но го правим в сървиза, за да можем в компонентите чисто да се абонираме и да използваме отговора. Вече, ако има конкретна логика, която да трябва да се изпълни в компонента, си я правим с subscription-а.

Като гледам и Нетфликс използват същата практика като мен.
https://speakerdeck.com/benjchristensen/fun...m-2013?slide=45 . Можеш да разгледаш всички слайдове отначало, ако го намериш за интересно.

  Форум: Java/Kotlin  ·  Преглед: #502081

relax4o Публикувана на: 20-02-2025, 21:45

Мнения: 14
Преглеждания: 4995
А кога хвърля изключение? Предполагам при неуспех да се свърже и подобни мрежови проблеми?

Честно казано, първия вариант, който си дал, според мен, е напълно валиден практически. Това е масов проблем(или пък не) с http client-и. Може да се замаже с един map() и фасада в сървиза, който извиква http client-а (или каквото е там).

CODE

// service
function Observer<...> getMeEverything(bla bla) {
    return httpClient.get(...).map(...);
}

// където извикваш сървиза
service.getMeEverything().subscribe(...)


Решението във втория пост е също добро според мен и го предпочитам пред третия ти пост.

Така или иначе от if/else не можеш да избягаш, освен ако не можеш да имплементираш интерсептор на всички заявки и при response на >=400 да хвърляш къстъм изключение, което не вярвам да предпочиташ като решение. Въпреки че и там ще имаш проверка поради естеството на това как работи клиента.

Не съм ползвал Java, но като гледам работи на подобен принцип като в Angular и rxjs.
  Форум: Java/Kotlin  ·  Преглед: #502079

relax4o Публикувана на: 03-08-2024, 12:59

Мнения: 286
Преглеждания: 17590
Я ни разкажи за тези решения по света.
  Форум: Разни  ·  Преглед: #500912

relax4o Публикувана на: 06-07-2024, 13:24

Мнения: 8
Преглеждания: 2883
QUOTE (Constantine @ 05-07-2024, 10:26)
ъпдейтнах до  v17.9.1

error @csstools/selector-specificity@2.2.0: The engine "node" is incompatible with this module. Expected version "^14 || ^16 || >=18". Got "17.9.1"

В кръг започвам да се въртя

Очевидно не можеш да интерпретираш какво ти казва грешката.

QUOTE

"^18.0.0 || >=20.0.0". Got "16.15.1"


Трябва ти версия на Node 18.x ИЛИ по-голяма или равна на 20.0.0.

QUOTE

"^14 || ^16 || >=18". Got "17.9.1"


Трябва ти версия 14.x.x ИЛИ 16.х.x ИЛИ по-голяма или равна от 18.0.0. ^ модификатора индикира, че изисква версия с конкретна MAJOR версия, в случая, които са 14 и 16, но няма претенции коя MINOR и PATCH версия е.

Предвид тази информация, ти се казва, че версия 17 не е една от поддържаните. В никакъв случай не си мисли, че ^16 означава, че включва и версия 17.

Формат на версиите: <MAJOR>.<MINOR>.<PATCH>.

Сложи си fnm или nvm и инсталирай, която искаш версия на Node.

https://semver.org/
  Форум: Linux  ·  Преглед: #500720

No New Posts  Plug & Play Solar Panel (Страници 1 2 3 ...5 )
relax4o Публикувана на: 26-06-2024, 10:24

Мнения: 44
Преглеждания: 13070
QUOTE (Дон Реба @ 26-06-2024, 06:19)
QUOTE (akrachev @ 29-05-2024, 20:51)
Толкова ли е скъп един микроинвертор - ума ми не го побира?

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

Да, ама 90% от въртоците вътре няма да мръднат без двигател. Без двигател, купето е една каруца... закачаш два коня и едно магаре да води и викаш имаш кола?
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500642

relax4o Публикувана на: 15-06-2024, 02:09

Мнения: 78
Преглеждания: 10203
Ако искаш лично пространство, все още има племена в Африка, които са откъснати от света. Там електронни устройства няма да ти трябват.
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500574

relax4o Публикувана на: 11-06-2024, 10:35

Мнения: 78
Преглеждания: 10203
QUOTE (ici @ 11-06-2024, 07:46)
По принцип "IT специалист" е човек с някакво знание мъничко повече от нормален човек за изчислителна техника. Те са най-долу в хранителната верига и могат да носят принтери, сървъри, компютри и понякога да ги свържат така че да работят. При наличието на подходящ "пищов", могат да дават акъл по телефона на обикновените усери. Когато не са на работа обикновено се крият в някоя кооперация в "Манастирски ливади" или карат Тойота Ярис на лизинг.

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

Той за това и автора си помисли, че тук е правилното място да пита такива въпроси.
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500548

relax4o Публикувана на: 06-06-2024, 16:30

Мнения: 78
Преглеждания: 10203
QUOTE (vallentin @ 05-06-2024, 23:03)
Как работи никога няма да разбереш, предвид това че си толкова назад в тия неща, че докато ти разбереш едно нещо, те вече ще са измислили 200 нови.

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

Ще те търсят отново, да знаеш. icon_lol.gif
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500484

relax4o Публикувана на: 05-06-2024, 18:51

Мнения: 78
Преглеждания: 10203
Не вярвам някой да ти върне отговор "Да, ние продаваме цялата ти комуникационна информация на властите".

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

  Форум: Мрежови комуникации и технологии  ·  Преглед: #500471

relax4o Публикувана на: 04-06-2024, 22:12

Мнения: 78
Преглеждания: 10203
Съветвам те да се предадеш на властите. Очевидно си криминално проявен!
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500455

relax4o Публикувана на: 04-06-2024, 13:32

Мнения: 78
Преглеждания: 10203
Да, сигурен съм, че тях ги интересува, че си написал или казал "Аз съм гей" в имейл, при криминално разследване и съм сигурен, че нямат търпение да публикуват това в интернет.

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

Да не мислиш, че имат и времето и ресурсите да следят всеки един човек. Техния фокус е върху потенциална пристъпност. Ако имат причина да те следят, ще те следят.
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500441

relax4o Публикувана на: 04-06-2024, 13:07

Мнения: 78
Преглеждания: 10203
Автора си мисли, че всички тук работят за МВР и знаят как оперират в детайли.

Гледай някой филм. Може да ти се изясни как се процедира с разследване.
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500438

relax4o Публикувана на: 03-06-2024, 21:19

Мнения: 78
Преглеждания: 10203
Имейлите имат получател. От къде знаеш дали получателя не е предоставил данни на МВР?

Фокусираш се прекалено много в една точка без да обръщаш внимание, че разследване и информация се вади от много източници с различни методи.
  Форум: Мрежови комуникации и технологии  ·  Преглед: #500422

relax4o Публикувана на: 02-06-2024, 19:03

Мнения: 1
Преглеждания: 1759
https://developer.mozilla.org/en-US/docs/We...ObjectStore/get

Всичко си пише в документацията. Кое те спъва?
  Форум: Разни  ·  Преглед: #500412

relax4o Публикувана на: 01-06-2024, 02:12

Мнения: 8
Преглеждания: 1949
Отвори един баш шел в сандбокса на Мозилата и виж до какви пътища снапа има достъп. Това може да ти даде идея за коректните пътища.
  Форум: Разни  ·  Преглед: #500394

relax4o Публикувана на: 22-05-2024, 19:08

Мнения: 52
Преглеждания: 11219
"Ние" в едно изречение не винаги включва и човека, който го пише, особено когато визира целия народ. Когато описваш нещата по този начин, човека четящ описанието може да предположи, че в твоето "ние" ти всъщност изключваш себе си предвид, че изразяваш така мнението си.

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

Според мен цялостното ти възприятие на промяната в живота по твоето време и днешно време е изкривено.

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

Аз не се засягам, просто посочвам къде се изразяваш погрешно.
  Форум: Разни  ·  Преглед: #500346

relax4o Публикувана на: 22-05-2024, 18:48

Мнения: 7
Преглеждания: 3776
QUOTE (SuN @ 22-05-2024, 18:22)
Просто твоята команда ползва grep и е възможно да хваща повече работи - включително имена на пътища, които съдържат "/php/" или "/httpd/".

Всъщност да. Трябваше да сложа grep след awk.

Благодаря и на двамата за мненията. Утре ще вдигна ulimit на Апаче (все още не знам дали това ще делегира броя към php процеса - ако не ще трябва да ровя как да го вдигна за конкретен процес). Въпреки, че системата не е с фрапантни ресурси (2 ядра, 4гб рам и nvme), вдигане до 4000-5000 не би трябвало да окаже проблем.

Реално установих, че само 1-2 таска могат да достигнат този лимит на този етап и докато оправим бъговете (единия е лесен, другия не толкова) би трябвало да е наред.

Иначе, проблема идва от там, че не преизползваме инстанция на Мандрил (curl), а за всеки един имейл отваряме нов хендъл.
  Форум: Linux  ·  Преглед: #500345

relax4o Публикувана на: 22-05-2024, 17:52

Мнения: 7
Преглеждания: 3776
QUOTE (SuN @ 22-05-2024, 17:37)
Щом ти работи дълго процеса, може да видиш броя на отворените файлове в /proc/$PID/fd. Това би трябвало да работи:
CODE
ls /proc/$PID/fd|wc -l

Да, така умря на 1023 и стартира на ново. Разликата с моята команда е около 100 бройки. Интересното е, че процеса се рестартира (същото PID) без да ми логва грешки, докато в другия случай не умираше и логваше грешки.

Така или иначе от вчера не е ставало и ще е трудно да установя къде се е сбъркала работата, но пък открих каква идиотщина е направена в кода.
  Форум: Linux  ·  Преглед: #500342

relax4o Публикувана на: 22-05-2024, 17:22

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

Единственото, което не съм тествал (и за сега не искам) е изпращането на имейл. Системата като цяло е доста старо PHP и използваме доста стара библиотека на Mandrill и имам съмнения, че библиотеката не затваря мрежови потоци на време и когато има много неща за изпълнение в рамките на същия процес, то има много висящи хендлъри.

Имаме друг таск, който проверява всички имейли, които са били наредени на опашка в Мандрил и извикваме АПИ-то, за да видим новия статус.
Този таск реално преди малко забелязах, че достига хендлъри от рода на 1135 (което е повече от 1024) и изчезва и след това отново тръгва и така няколко пъти докато приключи таска. Това число ми се струва прекалено много предвид, че имейлите, които трябва да се проверят не са дори близо до това число.

Броя го проверявам чрез тази команда, но не знам колко резултата е коректен. Може и да брои неща, които вероятно не трябва да брои и от 1024 го прави на 1135.
CODE

lsof | grep -E "httpd|php" | awk '{ print $1 " " $2; }' | sort -rn | uniq -c | sort -rn | head -25


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

Сега докато пишех съобщението забелязах, че доста потоци към на Мандрил АПИ-то стоят отворени на ESTABLISHED и след това доста време стоят на CLOSE_WAIT. Не съм сигурен дали мога да направя нещо относно това и да гарантирам по-бързо приключване на потока.
  Форум: Linux  ·  Преглед: #500340

relax4o Публикувана на: 22-05-2024, 11:21

Мнения: 7
Преглеждания: 3776
Здравейте,

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

Текущия лимит, който ulimit ми връща е 1024 (soft) и 524288 (hard).

Понеже няма как да рефакторнем скрипта толкова бързо, обмислям да увелича софт лимита на нещо от рода на 5000-10000.

Интересува ме, някой има ли идея дали това би оказало негативен ефект върху системата, ако не предвидя нещо предварително?
  Форум: Linux  ·  Преглед: #500337

relax4o Публикувана на: 22-05-2024, 11:05

Мнения: 52
Преглеждания: 11219
QUOTE (vallentin @ 19-05-2024, 22:14)
QUOTE (relax4o @ 09-05-2024, 23:55)
QUOTE (Антон Яначков @ 09-05-2024, 18:40)
QUOTE (Krasi43943 @ 09-05-2024, 15:07)
Здравейте, предстои ми ремонт, дайте идеи или сайтове за интересни решения или ми препоръчайте дизайнер, с който сте работили.

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

То за това няма и въртене на пари, защото всеки сам си върши всичко. Безсмислено мнение като цяло.

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

Парите не се въртят не ако някой си направи нещо сам, а ако въобще нищо не прави и в нищо не инвестира, само трупа пачки в дюшека icon_lol.gif

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

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

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

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

Не казвам, че е лошо да си правиш сам неща и съм съгласен, че можеш да береш ядове, ако попаднеш на грешните хора, просто изказването на Яначков е погрешно да изкарва народа дегенерати, защото автора можел да си позволи специалист, а видиш ли той е вещ във всяко нещо.
  Форум: Разни  ·  Преглед: #500336

relax4o Публикувана на: 16-05-2024, 23:57

Мнения: 52
Преглеждания: 11219
QUOTE (Антон Яначков @ 16-05-2024, 16:59)
QUOTE (rvc @ 16-05-2024, 13:24)
И какъв е извода @Антон Яначков ?
че е по-добре да сме по-благосъстоятелни но да не произвеждаме нищо или е по-добре да сме икономически силни но благосъстоянието на населението да е ниско?
аз предпочитам второто.

Според мен и първото и второто е залитане в крайности. Не може ли просто да сме нормална държава с нормален народ, който просто да предпочита средата?

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

Не се връзват нещата нещо.

  Форум: Разни  ·  Преглед: #500313

relax4o Публикувана на: 15-05-2024, 18:19

Мнения: 52
Преглеждания: 11219
Разбира се, че ще нарастне, но не е нарастнала така, както ти го представяш. От 1900г., ако направиш едно разделение по 20-30г. до днешна дата ще осъзнаеш, че измежду тях винаги промените са били огромни и сравненията с преди 20-30г. са нерелевантни.

  Форум: Разни  ·  Преглед: #500305

relax4o Публикувана на: 15-05-2024, 10:50

Мнения: 52
Преглеждания: 11219
Ти работиш само за да си купиш хляб и да изкараш така месеца ли? Май забравяш, че имаш и други разходи, които 2000г. вероятно си нямал и сега тези разходи се вдигат с всяка година.
  Форум: Разни  ·  Преглед: #500303

Страници: (113) [1] 2 3 ... последна »
New Posts  Отворена тема (има нови мнения)
No New Posts  Отворена тема (няма нови мнения)
Hot topic  Гореща тема (има нови мнения)
No new  Гореща тема (няма нови мнения)
Poll  Анкета (има нови гласували)
No new votes  Анкета (няма нови гласували)
Closed  Заключена тема
Moved  Преместена тема

Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0