<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 негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


Консултации по енджина - JS - нотификации.

  

0 1 2


  johnfound  Създадено на 24.07.2020, видяно: 2865 пъти. #514
stewie

Пиша в момента от мобилната тема. Като начало може би ще е добре флаг за юзъра, който да възпира тези нотификации, а после да се работи по униклността им. Можеш ли да ми пратиш линк къде се пази кода за UI?В мобилната тема линка за нови непрочетени не работи и човек трябва да отваря, после пейджъра, после скролване. Понеже повечето пишат от мобилни устройства тези 2 неща ще им улеснят живота.

Целият код за нотификациите е тука: realtime.js

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



  stewie  Последно редактирано на 24.07.2020 от stewie, видяно: 2505 пъти. #524

Ами с прост XmlHttpRequest или каквото ползваш там за достигане на апито на асемблер, може да се дръпне един бул за да няма event listener на load на джама. Или пък ако искаш да е по-гъзарско в connect всеки път да се проверява, за да не рефрешва стрницата юзъра като смени стойността на була.



  stewie  Последно редактирано на 24.07.2020 от stewie, видяно: 2505 пъти. #525

Относно var magset и пропърти msgs. Какъв е моделът тук? Има ли си всяко съобщение уникално ид в модела? Ако да слагаш един масив с рендарните до момента и го проверяваш преди рендарването на ново съобщение. Ако няма ид май само контента те оправя.



  johnfound  Последно редактирано на 24.07.2020 от johnfound, видяно: 2848 пъти. #527
stewie

Ами с прост XmlHttpRequest или каквото ползваш там за достигане на апито на асемблер, може да се дръпне един бул за да няма event listener на load на джама. Или пък ако искаш да е по-гъзарско в connect всеки път да се проверява, за да не рефрешва стрницата юзъра като смени стойността на була.

Използва се EventSource. Той е добре да стои кънектнат, но може да се променя маската на заявените евенти, които фронтенда иска да получава. XmlHttpRequest е само за обратния канал.

Маската е в променливата WantEvents и има следните стойности: sse_service.asm

Реално нас ни интересува evmUserActivity = 8, другите са за чата.

Ще трябва и някакъв чекбокс за UI, който малко не виждам къде ще го втъкнем в страницата...



  stewie  Последно редактирано на 24.07.2020 от stewie, видяно: 2505 пъти. #534

т. е. искаш evmUserActivity да пази стойността на този чекбокс за позволяване на съобщенията? Защо пазиш маските отделно в базата, каква е идеята? Като маскирам много стойности в една ги пазя в едно поле.

Кода за достъп до сикюел лайт ме насра. Почувствах се тъп.нетаджия :( Ама е яко как си държиш като стрингове завките.



  johnfound  Създадено на 24.07.2020, видяно: 2831 пъти. #536
stewie

т. е. искаш evmUserActivity да пази стойността на този чекбокс за позволяване на съобщенията? Защо пазиш маските отделно в базата, каква е идеята? Като маскирам много стойности в една ги пазя в едно поле.

Значи това всичко работи така - на бакенда работи сървис, който отговаря за SSE връзките. Когато от фронтенда се направи заявка за получаване на евенти, тази конекция се обявява за постоянна и се прехвърля към sse сървиса. Съответно, фронтенда казва какви евенти иска да получава, като изпраща маската със стойности. На бакенда, тя се прикача към сокета и когато се получат такива събития, то те се препращат само към сокетите, които са заявили, че ги искат.

А всички флагове са в едно поле, защото лично на мене така ми е по-привично, пък и се обработва по-лесно в бакенда.



  stewie  Създадено на 24.07.2020, видяно: 2505 пъти. #541

Добре, как ще се контрибютва оттук насетне? С уиндоус ще стане ли работата? FreshIde, имам nginx работещ локално, някакъв mysql lite?



  johnfound  Последно редактирано на 24.07.2020 от johnfound, видяно: 2822 пъти. #546
stewie

Добре, как ще се контрибютва оттук насетне? С уиндоус ще стане ли работата? FreshIde, имам nginx работещ локално, някакъв mysql lite?

За тестване ще ти трябва Linux, може на виртуална машина, иначе за работата, където искаш там работи.

За да си направиш работещ сетинг ти трябва да си клонираш репозиторито и да си направиш чекаут и т.н. както го описвам тук: https://board.asm32.info/asmbb/bazaar-model-with-fossil-scm.269/ или поне да събереш директориите ./www/images/ и ./www/templates/ на едно място.

После си сваляш 3-те файла от този пост: https://bgdev-free.asm32.info/kak-se-slaga-podpis-fuutar-w-postowete.3/#456 и ги слагаш във ./www/ директорията. Това са прекомпилирани енджина и библиотеките.

nginx го настройваш както е конфига в директорията ./.nginx/nginx.conf, можеш да погледнеш и скрипта nserver който аз използвам за пускане на nginx в локалната директория.

После стартираш nginx и engine. При първото стартиране ще се създаде базата данни и можеш да се конектнеш с браузъра.

П.П. А да, ще ти трябва и компилатор за LESS. Аз използвам clessc и си нямам на идея колко е стандартизиран езика. Скрипта build_styles.sh по идея компилира CSS файловете. Това се прави първо, а после когато се редактира някой LESS файл.



  stewie  Създадено на 24.07.2020, видяно: 2505 пъти. #547

Не разбирам следното. Може ли да компилирам под уиндоус? Може ли nginx да използва уеб сървър, който ще дигне компилираното асембли или каквото и да се нарича там да сервира хттп?



  johnfound  Последно редактирано на 24.07.2020 от johnfound, видяно: 2810 пъти. #549
stewie

Не разбирам следното. Може ли да компилирам под уиндоус? Може ли nginx да използва уеб сървър, който ще дигне компилираното асембли или каквото и да се нарича там да сервира хттп?

Да, можеш да компилираш AsmBB под Windows със Fresh IDE. Има особености, но не е кой знае колко трудно. Искаш ли да го обясня подробно?

Но ще получиш изпълним файл за Linux. Който ще трябва да пускаш някак си под Linux. Под WSL например се опасявам, че няма да работи. Може и да греша.

Обаче, освен това ще ти трябват и две библиотеки: MUSL и SQLite, които за съжаление ще можеш да компилираш само под Linux. Това е лесно - в директорията ./musl_sqlite/ стартираш скрипта ./build - той ще изтегли сорсовете и ще ги компилира. Но все пак трябва Linux.

Аз затова постнах прекомпилираните бинарита, за да ти е по-лесно.

Nginx е един от уеб сървърите, който може да работи със AsmBB. Всеки друг също става, стига да поддържа FastCGI (Apache, или lighttpd са ОК). Но отново – трябва да работи под Linux на същата машина, на която работи AsmBB.

П.П. Между другото от тази връзка: asmbb.tar.gz можеш да си изтеглиш и официалния бинарен пакет. Той също съдържа прекомпилираните файлове.



  stewie  Създадено на 24.07.2020, видяно: 2505 пъти. #556

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



  johnfound  Създадено на 24.07.2020, видяно: 2791 пъти. #560
stewie

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

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

А иначе уеб сървърите са нативни Unix/Linux приложения. По-скоро в Windows има проблеми да се пуснат, отколкото в Линукс.

Между другото, самият AsmBB като код е реално портируем. Тоест теоретически може да се компилира и за Windows, обаче самата операционна система не поддържа някои неща, които AsmBB ползва и трябва да мисля с какво да ги замествам. Unix сокети например и фютекси. Затова и няма версия за Windows.



  stewie  Създадено на 24.07.2020, видяно: 2505 пъти. #562

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



  stewie  Създадено на 25.07.2020, видяно: 2505 пъти. #668

Моля, обясни ми някои неща като на тъпак : https://asm32.info/fossil/repo/asmbb/artifact/8351a9fc7b0ca9ea Къде е реално таблицата с настройки на юзъра ? Трябва да се прочете ред за юзъра от нея с ново поле както правиш на ред 1045. Предполагам не искаш това да бъде вмъкнато в EventSessions. Целият sse_service.asm ли отговаря за !events ендпойнта ? Къде WantedEvents се получава в асемблерският код ?



  johnfound  Създадено на 25.07.2020, видяно: 2756 пъти. #674
stewie

Моля, обясни ми някои неща като на тъпак : https://asm32.info/fossil/repo/asmbb/artifact/8351a9fc7b0ca9ea Къде е реално таблицата с настройки на юзъра ? Трябва да се прочете ред за юзъра от нея с ново поле както правиш на ред 1045. Предполагам не искаш това да бъде вмъкнато в EventSessions. Целият sse_service.asm ли отговаря за !events ендпойнта ? Къде WantedEvents се получава в асемблерският код ?

Сега, малко по-сложно е. По принцип, !events ендпоинта се обработва на друго място. (Въобще, кое къде се обработва се вижда във файла commands.asm).

Koнкретно процедурата за обработка на !eventsEventsRealTime се намира във realtime.asm

Тази процедура обаче само инициализира реал-тайм сесията и включва сокета, който отговаря за конекцията към списъка за обработка на SSE сървиса. След това приключва обработката, но докато всички други команди приключват и комуникацията по FastCGI, в този случай комуникацията остава отворена и за нея се грижи SSE сървиса. Съответно той я затваря и изчиства, когато сокета се прекъсне от браузъра.

Обработката на events= параметъра, който се изпраща при заявката /!events?events=NNN се обработва именно в процедурата EventsRealTime, на първите редове.

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



  stewie  Създадено на 25.07.2020, видяно: 2505 пъти. #681

Джони, виждам зора с тоя асемблер. Искаш ли за мене джабаскрипта, а за тебе бекенда. Още не мога да си обясня shl, но трябва да е побитов AND. Верно шапка ти свалям, тук няма кой да напише това, което си написал. Поне видях де са темите, ще видя що на мобилната тема не бачкат непрочетени линка.



  Delegate  Последно редактирано на 25.07.2020 от Delegate, видяно: 2741 пъти. #684

shl не е ли шифт наляво ?



  code2  Създадено на 25.07.2020, видяно: 2739 пъти. #685
stewie

Джони, виждам зора с тоя асемблер. Искаш ли за мене джабаскрипта, а за тебе бекенда. Още не мога да си обясня shl, но трябва да е побитов AND. Верно шапка ти свалям, тук няма кой да напише това, което си написал. Поне видях де са темите, ще видя що на мобилната тема не бачкат непрочетени линка.

Разкрий ми логиката как стигна до този извод за shl? Разбирам да е нещо по завъртяно като ror, но точно дума от вида sh+l? Имам чувството, че си правиш майтап, ама не всеки го схваща, защото не всеки джара на asm.



  stewie  Последно редактирано на 25.07.2020 от stewie, видяно: 2505 пъти. #686

Глупости пиша, << имах впредвид.

Бахти майтапа да зяпам асемжлррски код в събота, а?



  johnfound  Последно редактирано на 25.07.2020 от johnfound, видяно: 2733 пъти. #687
stewie

Джони, виждам зора с тоя асемблер. Искаш ли за мене джабаскрипта, а за тебе бекенда. Още не мога да си обясня shl, но трябва да е побитов AND. Верно шапка ти свалям, тук няма кой да напише това, което си написал. Поне видях де са темите, ще видя що на мобилната тема не бачкат непрочетени линка.

SHL е преместване наляво - подобно на "<<" от езиците от високо ниво. Но това не е много важно. То реално за това, с което си се захванал да правиш (включване/изключване на нотификациите) изобщо не трябва да се пипа бакенда.

Просто от JS включваш и изключваш нужните битове във WantedEvents, убиваш старият EventSource и викаш connect().

За нотификациите ти трябва третият бит evUserActivity = 3 маската му е 8.

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


0 1 2


Консултации по енджина - JS - нотификации.

  



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