Fejlesztés

PHP munkamenet kezelés helyett mit?

Fórumok

Sziasztok!

A minap készítettem egy felületet ahol a kezelő egy munkalapot kap maga elé, amelyre rátettem egy tovább gombot.

Az említett tovább gomb ajax segítségével feltölti a fél képernyőt, de a feldolgozó oldalnak szüksége van arra, hogy csak akkor működjön ha a kezelő be van jelentkezve. Ezt session-nel oldottam meg. Mivel egy másodperc alatt 3-4 szer is kattinthat így annyiszor lefut a kérés. Amit látok, hogy a kicsi session file a merevlemezen minden híváskor frissít. Minél kevesebb terheltetéssel szeretném megoldani, de a kezelő validálása mellett. (Ezért voltam a session mellett mert a logint nem tárolom további adatbázis műveletekhez és böngésző becsukáskor vége mindennek)

Ez így mennyire nyerő, ha egy nap 10000 darab kattintás is lehet ? (pl lapozgat, de indul mindig a "session_start()..."

Milyen technológiával váltanád ki a munkamenet kezelést ?

Köszönöm.

Robi

gdb kezdő

Fórumok

Van egy c,c++ alkalmazás, ami segfault-ol.

A gdb backtrace ehhez hasonlót ad vissza:

#0 _pelda2 (foo=foo@entry=0x4000000002ac, bar=bar@entry=0x0) at ...
#1 _pelda1 (foo=foo@entry=0x4000000002ac, bar=0x0, bar@entry=0x7ea57e10c4a8, baz=baz@entry=0) at ...
#2 _pelda0 (foo=foo@entry=0x4000000002ac, bar=bar@entry=0x7ea57e10c4a8) at ...

A kérdésem, hogy frame 1-ben a bar=0x0, bar@entry=0x7ea57e10c4a8, mit jelent?

_pelda1 úgy indul, hogy a bar még 0x7ea57e10c4a8, de benne 0x0 lesz, tehát a hibát a _pelda1-ben kell keresni, vagy _pelda0-ban már megváltozik bar és azzal hívja _pelda1-et?

Moment.js - It is not dead, but it is indeed done.

Fórumok

Sziasztok!

Tegnap körbejárta a sajtót a hír, hogy egy nagy népszerűségnek örvendő npm lib elmegy aludni. Nem hal meg, de pihen (We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.).

Heti 14m letöltést (új telepítés, frissítés, talán npm outdated is?) produkáló, sokak számára alapnak tekintett projekt elérte a technikai kiemelkedése csúcsát és valam miatt abbahagyják. A hivatalos leírás (https://momentjs.com/docs/) szerint nem elég modern, mások szerint van jobb is (cégen belül: https://moment.github.io/luxon/), gyorsabb is, kisebb is. De hol vannak már azok az idők, amikor építhettél évekig egy projektre? Szerintem lesz ennek a folyamatnak még követője, pláne a kisebb npm package-ek...

Azért megnyugtató, hogy a c/cpp compilerek és egyéb nyelvi fordítók nem szűnnek meg csak úgy.

Git kezdő: Mit kezdjek a ponttal kezdődő fájlokkal és mappákkal?

Fórumok

Egy shell scriptet és a hozzá kapcsolódó állományokat szeretném felnyomni Githubra, de a következő problémába ütköztem:

Az állományok között van két skeleton mappa, amit a script a futása során bemásol a megfelelő helyre. Ez a mappa rejtett ("."-al kezdődő) néhány kilobyte-os fájlt és mappát tartalmaz, illetve egy üres 0 byte méretű normál fájlt. A Github ezeket nem hajlandó befogadni "This file is hidden" indokkal.

Én értem, hogy üres mappát és fájlt nincs értelme verziókövetni, ezért nem is lehet része a projektnek, de kényelmi és átláthatósági okokból mégis jó lenne, ha ott lennének... Ha más nem, legalább az az egy rejtett fájlt, ami nem 0 byte méretű (persze, ezt is lehetne workaroundolni, hogy kiveszem a nevéből a pontot és majd a script átnevezi a futása során, de ezt én nem tartom igényes megoldásnak).

A kérdésem, hogy ezt lehet forceolni valahogy vagy kénytelen leszek a scripten belül lekezelni a rejtett állományok létrehozását?

GitHub licensz, vagy file licensz az erősebb?

Fórumok

Van pár open-source project, amiket szívesen felhasználnék a saját pet-projectjeimben. A probléma abból adódik, hogy ugyan a GitHub repóban MIT licensz szerepel, de a forrás fileokban már csak az XCode által default generált "all rights reserved" található meg.

A legegyszerűbb nyilván a fejlesztő megkérdezése, de viszonylag sokszor nem reszponzívak, stb.

Vajon melyik licensz a mérvadó ilyen esetben?

Példa: https://github.com/FredrikSjoberg/ForceDirectedGraph

A project maga MIT licenszt jelöl meg, de a forrásban ennek nincs nyoma...

Már megint egy tárhelykezelőn dolgozom (MVCP II)

Fórumok

Na itt van tessék 2020 és megint előálltam a perverziómmal, hogy megcsinálom életem munkáját.
7. tárhelykezelő, de most FreeBSD -re, tudtommal jelenleg semmi értelmes nincs rá.

De amúgy is, a piac tele van förtelmekkel, nem akarom megnevezni őket, de nagyon elavultak és agyontaknyoltak, agyon scripteltek, lassú, feltörik őket, dögvész.

Nem titkoltan azért írom, hogy adjatok ötleteket, esetleg lehet tesztelni későbbeikben vagy dobáljatok meg azt is szeretem ^^
Máskülönben szemléletet és tudást is megosztok az ifjabb lelkesebb padawanok számára.

Lesz ingyenes verzió is, de nem OpenSource, valahogy nincs késztetésem arra, hogy 10 év munkáját kitegyem a világnak és ezzel lezártuk, meg egy zárt rendszer még mindig sokkal biztonságosabb.
Volt már hasonló projektem, itt, működött és elkészült, pár helyen még használják különben elég aktívan, de nem jött be a Linux, gyenge sebességet produkált, csináltam egyet azóta FreeBSD -re, sokkal jobban szerepel, de az marad az ami, most meg teljesen új.

Summa: Eléggé nukleáris fegyverrel agyonlőni egy galambot sztori, mert az összes szaromat beimplementálom:
 - Ki és bemenő Spam szűrés + "Okos" Greylist (azért okos, mert tanul nem csak mert jobban hangzik) (Ez önmagában létező projekt, több mint 1éve ezért van időm fejlesztgetni nem pedig IP -ket levakargatni a SORBSról)
 - Spam szűrés esetén + Botnet észlelés (azonnal tiltja a felhasználót, köszönjük Wordpress a teszteket)
 - Szokásos: Backend (root), Frontend (nobody) + API, AES128 titkosítással.
 - Fasza CLI installer, előre gyártott és forgatott csomikkal, verziókövetés, tehát upgradelhető.
 - mySQL auto-tuning (helyetted bekonfigolja, elég jól különben)
 - Let's Encrypt integráció, "One-Click" és automatikusan megújít és értesít ha error van
 - CRON (De nem crontab, figyeli a szerver load -ot és ha magas késlelteti)
 - DNS Szerver: PowerDNS, integráció: DNSSEC + DKIM + SPF ("One-Click")
 - AXFR Zóna transzfer, akár csoportosan UI -ból ^^
 - Váltható PHP: PHP5.6, 7.0, 7.1, 7.2, 7.3, 7.4 (Értem én, hogy EoL csak azokat nem érdekli, akik nem tudnak váltani és pénzt keresnek vele, így engem se :) )
 - Váltható Webszerver: NGINX vagy NGINX + Apache (igen jól olvastad, apache kell a .htaccess véget, igen meglehetne oldani nginx-be is, de tudok mutatni 27821 soros .htaccess -t)
 - Webmail: Roundcube (Dovecot, Postfix, Sieve, Amavisd, Spamd, stb..)
 - PMA
 - Legújabb csomikkal
 - Fizikailag szeparált tárhelyek, tehát van lehetőség ugynazzal az userrel + grouppal több site -ot futtatni, így ha egyet megtörnek viszik az összeset, illetve lehet külön is akkor nem, ez ilyen subdomain / site és site/user dolog.
 - PHP-FPM állítható erőforrás, RAM, Processzek, php funkciók, limitek, stb...
 - DOS Védelem L4
 - Nagios vagy munin féle, de saját integrált monitoring cucc, mondja a tömböket, smart -ot és gyakorlatilag mindent amit az előbbi kettő tud, csak szebben.
 - Bootstrap3 Frontend, van kézi mód ahol minden beállítható (érteni kell hozzá, mármint ezekhez: domain, átirányítás, ssl, A, AAAA, NS, MX rekordok) és van "varázsló" ami mindent megcsinál egy gombnyomásra.
 - C/C++ a keretrendszer, tehát gyors baromi gyors, könnyen fejleszthető és lófasz erőforrás igénye van, beépített webszerverrel, semmi nem kell hozzá, ugye mert mi van ha becrashel a PHP? nem jön be a webadmin se, tisztelet a kivételnek.
 - Biztonsági Mentés és Visszaállítás: Háááát ezt nem biztos, hogy beletenném.

A keretrendszerről annyit, hogy 10 éve fejlődik, 2019 -ben alaposan átlett szabva, Windows, Linux, FreeBSD, Apple -n elfut, C/C++ -ban beleírtam nagyjából az összes értelmes PHP funkciót nulláról, tehát semmi copy&paste, amit squirrel-lang -al lehet scriptelni, a squirrel-lang pedig kapott egy bytecode cache-t, meg egy-két extrát így gyakorlatilag a PHP -t megeszi sebességben és nem-permisszív nyelv lett, arról nem beszélve, hogy többszálú és tényleg thread-safe. A socket része async és egy szálon fut, de több szálon lehet parallel alkotni vele, ez így elsőre elég bonyolúlt, de a lényege, hogy 10.000 online kapcsolatot 13ms alatt kiszolgál (TLS) -en keresztül 300MB RAM és 70% -os CPU mellett egy $5 VPS -en, ami szerintem tök jó, memleak 1év után már nincs(!), igen 1 év kellett hozzá "Threads are evil", amúgy az openSSL volt a ludas, meg én.

Amit tud még a keretrendszer nagy vonalakban, scriptelhető így nem kell várni míg lefördül ezzel lényegesebben gyorsabban lehet dolgozni még is tudja a C++ elvárt sebességet általában, TLS implementálva, AES és társai szintén, websocket (HYBI) implementálva, többszálú vezérelt és debugolható működéssel, HA-kompatibilis, öndiagnosztika, bytecode-cache, natív 64bit, php_serialize és json_encode támogatott (kompatibilitás végett), a php_serialize pl. gyorsabb mint PHP -n, bár objektumokkal nem foglalkozik, minden funkció binary safe.

Na szóval egy erre épülő csodát kivánok lerakni az asztalra kizárólag FreeBSD -re, elsőnek csak közösségi support -al és ha beválik, akkor méltó ellenfele lesz a cPanelnek, ó és akkor itt mindenki fogja a fejét, úristen de elszállt az ember, és tök igazad van, de egy ilyen projekthez elszántság kell vagy megszállottság, ezekhez meg cél és most a technikai és UX részt nézzük.

Azt hozzáteszem, hogy több éve bevált dolgokat kell, Copy&Paste -zni egy helyre, + frontend.

Amit még tudni kell és kiváncsi lennék a véleményekre, az az, hogy a rendszer csinál használati statisztikát, ez annyiból áll, hogy elküldi a hosztnevet az IP nyilván adott és az operációs rendszer nevét induláskor, illetve ha hiba van a szoftverben akkor küld egy ilyet:

 

Array ((table : 0x0x802d9ee80)) {
         (string) error -> (string) the index 'cpu_nice' does not exist
         (string) count -> (integer) 2
         (string) tstamp -> (integer) 1591491927
         (string) full -> (string) the index 'cpu_nice' does not exist at application/trackit/worker/tasks/vminfo.c(48)
 ********************** VM/THREAD INTERNAL ERROR ********************** 
	[*] Stack Traceback:
		[0] application/trackit/worker/tasks/vminfo.c(48)::vminfo_stat
		[1] application/trackit/worker/realtime_worker.c(95)::thread_main
		[2] utils/thread.class.c(268)::main
 ********************************************************************** 

}

 

Különben full hivatalos, megkapta a FreeBSD logót is.

Akkor a fő kérdés: váltanátok -e FreeBSD -re linuxosok, ha lenne rá egy jó rendszer vagy még jobb ami van?
Ellenvetés a használati statnak, weboldal nevek vagy bizalmas dolgokat nem tud a rendszer küldeni?
A csomagok adottak, kézzel kell a ports-ból forgatni mert a gyári bin nem jó, hogyan oldjam meg ezt közösségi erővel, úgy, hogy ne kontárkodjanak bele, az nem annyira pálya ha minden egyes bugfix esetén nekem kell kiadni a csomikat, bár havi 1x upgrade simán bevállalható de jó lenne ezt kisourcolni. Amúgy adok a rendszerhez mindent csak egy entert kell nyomni és feltelepül magától, csak a későbbeikben.. 

Köszi, hogy elvolastad, POTATO.