Internet: PHP, CGI, stb.

Többszörös HTMl POST üzenet feldolgozása (kész)

Sziasztok!

Ismét szeretném borzolni az idegeitek.

Elméleti kérdésem, mely úton vagy több eszköz bevetésével oldanátok meg a problémát:

Vannak bizonyos oldalak ahol a kliens többször ki tudja adni a post üzenetet. Pl webshopok tétel rögzítésének duplázására gondolok

Hogyan fognátok ezt meg?

Pl: JavaScriptben néznétek, hogy van e kérés aktívan beküldve? (de mi van ha pl a parasztnak megszakad a nete, majd az os újraküldi azt)

vagy szerver oldalon folyton egy ellenőrző queryt futtatnál minden meghíváskor, hogy nem e az éppen most küldött adat az előzővel egyezik? (ez viszont a kiszolgáló erőforrását eszi)

Köszi

Mikroszerviz orchestration: dapr tapasztalatok?

Kezdő cloudosként egy céges projektben erősen a dapr toolkit felé hajlok, mint orchestration réteg, ha valakinek van tapasztalata vele, vagy jobb jelöltje, ne fogja vissza magát.

Amire szükségünk van:

- Maximális számolási teljesítmény a lényeg (hibatűrés, georedundancia stb csak másodlagos, de esetleg később opció kell hogy legyen)

- Input request stream - output request stream a követelmény, semmit nem kell tárolni, legfeljebb statisztikákat, logokat

- Jelenleg több százas datacenter géppark szolgál ki minket, erről állunk át valamilyen cloudos technológiára

- 100% on-prem futtatási lehetőség, lehetőleg csak ingyenes open source eszközökkel, de burst terheléseket Azure-ba lehessen küldeni (muszáj Azure-t használni)

- Elég rugalmasan átkonfigurálható mikroszerviz hálózat kell nekünk (pl kiderülhet hogy egy gépen belülre kell költöztetni eddig különélő szerviz komponenseket stb)

- A mikroszervizek c++ ban lesznek írva, Grpc-n kommunikálnak (ez jól egybevág a dapr megoldásaival)

Ahogy elképzeljük:

- Grpc-n beérkező kéréseket fogunk szétosztani (1 MB - max 10 GB, tipikusan 50 MB)

- ehhez Grpc toolkit-tel generált c++ szervizeket haszálunk

- Ezekhez csak dapr sidecar-ok fognak direktben kapcsolódni, azok egymással is Grpcvel beszélnek (ahogy az dapr-ban standard)

- vegyesen Redis alapú pub/sub megoldást használunk, és direkt (aszinkron) szerviz-szerviz hívásokat

- a feladatok nagy részét pub-sub queue-re rácsatlakoztatott c++ feldolgozók végzik, amik egy eredmény queue-be teszik a kész resultokat

Ami nem világos:

- dapr elég jó-e erre

- a vázolt megoldás elég jó-e erre

Előre is köszi a hozzászólásokat.

PHP pdf generálás oldalanként

PHP-vel kellene pdf-et generálnom, változó adattartalommal. Már a generálás során tudnom kellene, épp hányadik oldalnál tartok, ugyanis változó az oldalszerkezet. Jelenleg csak utólagos ellenőrzésekkel és újragenerálásokkal tudok dolgozni, ami elég időigényes lehet.

Dompdf-et használok a helyes ékezetek miatt, de ha más eszközzel egyszerűen oldható meg a probléma, az is érdekel.

Valami olyan műveletre lenne szükségem, ami egy-egy rész html kódot képes renderelni előre, és így meg tudja saccolni, mi a függőleges mérete.

De ha valakinek van működő másféle megoldása, azt is örömmel venném. (Gondolom, vannak páran még, akik jelenleg hasonlóakkal foglalkoznak.)

Javascript: gyorsbb billentyűolvasás

Sziasztok,

szeretnék egy új, egyszerű, ezúttal billentyű-vezérelt játékot írni webre lehetőleg js-ben, valami egyszerű gyűjtögetőset a lehető legegyszerűbb kóddal, amit hozzá szeretnék, ha lehet, az gyorsabb billentyűolvasás (kisebb késleltetés, gyorsabb ismétlés), most így néz ki a kód:

<svg width="1900" height="800" style="border: solid red">
<circle id="c" cx="30" cy="30" r="10" fill="blue" />
</svg>
<script>
 function checkKey(e) {
   e = e || window.event;
 if (e.keyCode == '38') { c.setAttribute('cy',parseInt(c.getAttribute('cy'))-15); }
    else if (e.keyCode == '37') { c.setAttribute('cx',parseInt(c.getAttribute('cx'))-15); }
    else if (e.keyCode == '39') { c.setAttribute('cx',parseInt(c.getAttribute('cx'))+15); }
    else if (e.keyCode == '40') { c.setAttribute('cy',parseInt(c.getAttribute('cy'))+15); }
}
document.onkeydown = checkKey;
</script>

lehetséges js-ben lerövidíteni a billentyűolvasást egységesem úgy 10-20 millisecre?  Ha igen, mi lenne ehhez a legegyszerűbb kód?

php 8.0 kompatibilitás

sziasztok,

kinek milyen tapasztalata van php 8 kompatibilitással kapcsolatban a népszerű lib-ek esetén? mit mivel lehet kiváltani, amíg nem érkezik hozzá php 8 támogatás?

a témaindító gondolatot nálam a TCPDF indította el, ami egyelőre nem barátja a 8-as php-nak, és nem is találtam hirtelen 8-cal kompatibilis PDF lib-et (FPDF, mPDF, DOMPDF stb.), vagyis a konkrét kérdés, tud-e erre valaki jó megoldást.

PHP jpg-ből webp-be hibássan konvertál

Egyik tárhely szerveren valamiért hibásan konvertálja a jpg-t webp-be. Valaki tálalakozott már hasonló hibával?

Próbáltam hasonló környezetet kialakítani másik virtuális szerveren is de nem ott nem jött elő ez a hiba.

Amit eddig megállapítottam:

  • a problémás szerveren generált webp-t a chrome rosszul jeleníti meg, viszont az FF jól
  • webp kép valószínűleg hibás, mivel a gimp sem volt képes betölteni
  • A php-gd-libwebp hármas generálja  képet, valahol itt lehet a probléma
  • A teszteket php7.x -a paranccsal csináltam, hogy ne avatkozzon bele más folyamat.
  • A probléma független attól, hogy  7.0-ás vagy 7.4-es phpt használok
  • GD verzió mindenhol 2.3

Minta kód:

user@server:~/www/dev/uploads/webp/temp$ php7.0 -a
Interactive mode enabled

php > $img = imagecreatefromjpeg('test.jpg');
php > imagewebp($img,'test.webp',80)

 

Teszt környezetek:

Problémás szerver

ubuntu 16.04.7 LTS,
php 7.0.33-37+ubuntu16.04.1+deb.sury.org+1
php 7.4.12-3+ubuntu16.04.1+deb.sury.org+1
libwebp6 0.6.0-4+ubuntu16.04.1+deb.sury.org+1

 

saját környezet, jól generálta le a képet

Ubuntu 18.04.4 LTS,
php Version: 7.0.33-37+ubuntu18.04.1+deb.sury.org+1,
php 7.4.12-3+ubuntu18.04.1+deb.sury.org+1
libwebp6 0.6.1-2

 

Hasonló környezet, jól generálta le a képet

ubuntu 16.04.7 LTS,
php 7.0.33-37+ubuntu16.04.1+deb.sury.org+1
php 7.4.12-3+ubuntu16.04.1+deb.sury.org+1
libwebp6 0.6.0-4+ubuntu16.04.1+deb.sury.org+1

Minta fájlok

https://drive.google.com/file/d/1hj4XbZQYkKkc4PjHFI5tQ_0mhx3H_jqq/view?usp=sharing

Regex két string között minden X karakter cseréje Y-ra preg_replace-szel

Egy adott mintában szeretném az összes @ karaktert : karakterre cserélni, de kizárólag azokon a részeken, amit %% és !% stringek határolnak. Szemléltetem:

           __      _   _    __           __       _    _    __             
zj@fcavaszt%%rfcazr@tcc@cccc!%ccbfw@fcujw%%efcubzj@agew@ujca!%gewfcc@ccccaw
zj@fcavaszt%%rfcazr:tcc:cccc!%ccbfw@fcujw%%efcubzj:agew:ujca!%gewfcc@ccccaw
           ^^      ^   ^    ^^           ^^       ^    ^    ^^             

Végigtúrtam a netet, próbálkoztam saját kútfőből is, de nem jöttem rá a megoldásra. Valaki tudja esetleg?

Firefox market share < beka ?

Minap felvetettem a lenovo ufsz-nek, hogy miert nem mukodik a checkoutjuk firefox alol. A valaszban hivatkoztak a https://en.wikipedia.org/wiki/Usage_share_of_web_browsers -ra, ami szerint a firefox reszesedese a beka alfara kozeleben van, es nem prioritas nekik, hogy mukodjon.

A grafikonon jol latszik, hogy 2018-tol *masszivan* leesett a firefox nepszerusege, mi tortent itt? Errol total lemaradtam.

[megoldva] Bash "source"-nak megfelelő környezet-követő Python futtatás interaktív parancssorból

Egy ahhoz hasonló környezetre vágyom, mint ami a Google Colab-ban is van, Python3-ra – vagy ahogy a bash is intézi a source-olást (. script).

Leginkább az kellene, hogy amikor lefuttatok két szkriptet, az elsőnek a változóit, eredményeit ne felejtse el a parancssor, amikor indítom a másikat. ( https://realpython.com/run-python-scripts/ – ebben utánanéztem, hogy az "import" effélét csinál, de mégis, mikor lefuttattam (importtal) az első részt, és indítottam volna a másodikat, NameError: name 'valami' is not defined jött. Tehát elfelejtett mindent, amit az első futamban csinált.

Ennek az egésznek az a motivációja, hogy az első rész sokáig fut, a másodikat viszont többször szükséges lehet újraindítani (és ez utóbbi nem fut sokáig, de támaszkodik az első eredményeire).