Internet: PHP, CGI, stb.

[megoldva] digi furaság 2022 május

webböngészőben:

bix.hu OK
arukereso.hu - A kapcsolat időtúllépés miatt megszakadt
digi.hu - A kapcsolat időtúllépés miatt megszakadt
stb.

vajon milyen issue lehet a diginél h. vmelyik oldal bejön, vmelyik nem? (elsőre gondoltam volna h. külföldi vonal vs. belföldi, de nem..?)

2 másik telóról nézve is. GPON/saját OWRT már reboootolva. pár napja szórakozik.

downdetectoron délután még írt hibát digire, most már nem, pedig még mindig issue van

telón protonvpn-t bekapcsolva simán megy minden weboldal, hoppá (free netherland server).

 

privat@noti:~$ traceroute bix.hu
traceroute to bix.hu (193.41.47.210), 30 hops max, 60 byte packets
 1  valami.lan (192.168.xx.1)  1.169 ms  1.339 ms  1.618 ms
 2  192.168.1.1 (192.168.1.1)  3.364 ms  3.475 ms  3.768 ms
 3  10.0.0.1 (10.0.0.1)  5.726 ms  11.192 ms  11.404 ms
 4  * * *
 5  ae-16.cr02.budapest.digicable.hu (78.131.3.127)  13.969 ms  14.569 ms ae-16.cr01.budapest.digicable.hu (78.131.3.22)  28.408 ms
 6  78.131.3.51 (78.131.3.51)  17.283 ms  7.835 ms ae-2.xr01.budapest.digicable.hu (78.131.3.53)  10.513 ms
 7  r1.bix.iszt.hu (193.188.137.7)  10.730 ms  11.017 ms  10.652 ms
 8  www.bix.hu (193.41.47.210)  11.282 ms  11.824 ms  11.424 ms
privat@noti:~$ 
privat@noti:~$ 
privat@noti:~$ traceroute arukereso.hu
traceroute to arukereso.hu (80.249.166.51), 30 hops max, 60 byte packets
 1  valami.lan (192.168.xx.1)  2.850 ms  3.134 ms  3.109 ms
 2  192.168.1.1 (192.168.1.1)  3.086 ms  3.063 ms  3.040 ms
 3  10.0.0.1 (10.0.0.1)  9.614 ms  9.808 ms  9.785 ms
 4  * * *
 5  ae-16.cr01.budapest.digicable.hu (78.131.3.22)  12.831 ms ae-16.cr02.budapest.digicable.hu (78.131.3.127)  13.126 ms  13.723 ms
 6  ae-2.xr01.budapest.digicable.hu (78.131.3.53)  79.092 ms  74.364 ms 78.131.3.51 (78.131.3.51)  9.274 ms
 7  81.183.2.160 (81.183.2.160)  9.422 ms  9.662 ms  9.629 ms
 8  81.183.3.168 (81.183.3.168)  9.819 ms 81.183.3.42 (81.183.3.42)  11.412 ms 81.183.3.36 (81.183.3.36)  11.834 ms
 9  81.183.3.163 (81.183.3.163)  12.417 ms 81.183.3.167 (81.183.3.167)  9.504 ms 81.183.3.135 (81.183.3.135)  10.648 ms
10  81.183.2.210 (81.183.2.210)  10.570 ms 81.183.3.4 (81.183.3.4)  9.502 ms 81.183.3.24 (81.183.3.24)  8.771 ms
11  * * *
...
privat@noti:~$ traceroute digi.hu
traceroute to digi.hu (92.249.128.115), 30 hops max, 60 byte packets
 1  valami.lan (192.168.xx.1)  2.885 ms  3.066 ms  3.049 ms
 2  192.168.1.1 (192.168.1.1)  3.034 ms  3.020 ms  3.277 ms
 3  10.0.0.1 (10.0.0.1)  9.896 ms  10.200 ms  10.185 ms
 4  * * *
 5  ae-16.cr02.budapest.digicable.hu (78.131.3.127)  13.812 ms  14.354 ms ae-16.cr01.budapest.digicable.hu (78.131.3.22)  13.389 ms
 6  * * *
...
privat@noti:~$ date
2022. máj. 7., szombat, 21:52:56 CEST
privat@noti:~$ 

 

van itt diginél dolgozó ember? :D lehet gyorsabb lenne, mint az ügyfélszolgálat..

PHP exif bekapcsolása után, nem lehet feltölteni fotót, ami tartalmaz exif adatokat.

Mivel nem értek ehhez a területhez, így lehet bénán fogok fogalmazni.

Vannak fotók, amik fekvő képek alapból, de valamivel a tulajdonosuk megformázta úgy, hogy az exif adatok szerint az függőlegesen kell megjelenjen.

Amíg a szolgáltatóm nem kapcsolta be, addig megjelent az ilyen fotó a feltöltés után, viszont fektetve és nem állítva. A PHP exif bekapcsolása után, az ilyen exif-el ellátott fotók fel sem tölthetők. Az ilyen fotók újra szerkesztése után már feltölthető, ha kiszedjük az exif adatokat a fotóból.

Ilyenkor merre keressem a megoldást, hogy az exiffel ellátott fotók jól jelenjenek meg és feltölthetők legyenek php felületen.

könyvlapozgatós animáció-modul honlapra

Sziasztok.

Ismer valaki a tárgyban megadott beépülő modulról valamit?

A cél az, hogy egy szerveren tárolt (de a kliens által el nem érhető) pdf fájl oldalai könyvszerűen, 3D-jelleggel lapozhatóvá, olvashatóvá váljon. A CMS egy joomla. Fizetős modul is érdekel, bármi, ha használható és tetszetős. Ha responsive (tabletről, telefonról is nézhető), az előnyt jelent.

Multi queue, task és worker kezelés koncepció Phpban?

Helló

Ki akarok pár kombinatorika jellegű feladatot próbálni, hogy igazoljam a teóriám. Saját kihívás, önmagam ellen! :)
Van egyrészt egy saját PHP programom, aminek vannak bemeneti paraméterei (jó sok), és generál egy fájl kimenetet, mint eredmény.
Utána abból a fájlból még egy másik programmal kell pár változatot generáljak.
Majd van egy elemző programom, ami megvizsgálja az eredményt.
Arra gondoltam, hogy az első program meghívásához legenerálom az összes, akár milliós nagyságrendű paramétert (N), az összes lehetőséget, hogy akarom meghívni az első programot.

 

Ez volt az első ötlet:

Valahogy meg kellene oldani a queue kezelést, hogy 8 magból mondjuk 4 esetén ez fusson, tehát elosztom a legenerált listát 4 felé és elindítom 4 szálon, így mivel nincs queue kezelésem ez fapad megoldásként hasonló eredményt hoz. Ezzel csak az a baj, hogy lehet nincs elég helyem hozzá. Aztán a létrejött fájlokat kellene másik programmal meghívni, amiből lesz M darab változat. Így lesz N*M fájl, amihez végképp nincs elég helyem. Bár ez az én bajom. Aztán a létrejött N*M fájlt kellene elemezni, és ha valami olyan, ami oké, akkor azt meghagyni, ha nem olyan, amire 99% az esély, akkor törölni, de valahogy elrakni, hogy azt már néztem és nem volt jó.

Ez az első ötlet így nem jó számomra.

Ezek PHP nyelven írt programok és most Windowst használok, mert így kényelemes most épp, de lehetne Ubuntu linux is akár.

 

Második ötlet, ami jobbnak tűnik:

Azt lenne az ideális, hogy lenne egy olyan okos vezérlő, multi process/worker/batch futtató alkalmazás, ami az alábbiakat valósítaná meg:

Queue 1: (kombináció alapján generálás) Figyelne, hogy mindig legyen mondjuk 100 (vagy több, de nem sokkal) az első programmal már legenerált kombináció (az N elemeken menne végig), hogy lehessen a másik programmal (M elemek) kombinációkat legenerálni. Hogy ne fogyjon el a forrás a második lépéshez. Ez a program egy millió soros txt állományon menne végig, és abból venné sorban a paramétereket.

Queue 2: (kombináció előkészítés) Figyelné, hogy legyen mindig legenerált 100 (vagy több, de nem sokkal) elemezhető kombináció (N*M elem összesen). Ez a második folyamatosan dolgozná fel a már legenerált fájlokat és ebből jönnének létre további fájlok, amiket ki kell elemezni. Itt a már létrejött fájlból hozna létre M változatot, ha kész törölné is akár az adott elemet, amiből készítette, de ez végül is mindegy, mikor törlődik.

Queue 3: (kombináció feldolgozás, elemzés) Az előző 2 queue működésen kívül az összes egyéb erőforrással próbálná azt elérni, hogy a legenerált utóbbi, Queue 2 esetén létrejövő N*M elemet meghívni az utolsó, 3. elemző programmal, ami ha oké meghagyja a fájlt. Ha nem oké, törli és loggolja.

 

Elérni, hogy soha ne fogyjon ki a Queue 1 és Queue 2, és mindig legyen fájl a Queue 3 esetében is.

Ez lenne a fő cél, mert így kb ramdisken is futtathatnám, meg nem kellene sok SSD tárhely. Továbbá mindig is akartam látni egy ilyen működést, tehát ez is egy szempont, hogy valami ilyesmi megvalósuljon, mert érdekel.

Egy 8 magos gépen futtatnám, de lehet egy 4 magos gépet is bevonnék, ha megoldható, például megosztott mappán keresztül kommunikálna a processzekkel. Az külön történet, hogy hány processz fogja kihajtani a gépet teljesen, meg hogy mi lesz a szűk keresztmetszet.

 

Az (el)várt működés:

Elindul, majd elsőnek csak a Queue 1 fut, amíg nem lesz 100 legenerált kombináció.

Amint van 100, akkor a Queue 2 is elkezd működni, elkezdi az 1. legenerált fájlból az M változatot elkészíteni.

Amint van 100, vagy végülis ha már 1 is van az M változatból, akkor elkezdheti az elemző kielemezni azt. Azért írtam 100 M változatot, hogy az elemző is tudjon futni folyamatosan, de hát ezt majd látni kell, mi mennyi idő, most én sem tudom, mi fog sok időt igénybe venni.

Így leírva hülyeség ez a 100 fájl kikötés a Queue 1 és Queue 2 esetén, mert ha már 1 fájlból is tud M változatot generálni,  elindulhatna. Csak azért írtam, mert azt hittem, ezzel garantálható, hogy minden a leggyorsabban halad és semmi nem várakozik.

Ha korlátlan tárhelyen és számítási kapacitásom lenne, akkor:

Legenerálnám az N elemeket.

Majd abból az N*M kombinációt.

Majd kielemezné a program, de ezt nem tudom megoldani, mert nagyságrendekkel nagyobb helyet igényelne, mint amit megoldható.

Itt az is nagy kérdés, hogyan, mi módon tároljam, hol tartok.

Ha mindig lemezre írnám, akkor lassú lenne.

Valahogy x percenként leírt állapot elég lenne.

Mysqlt erre használni szerintem nagy lassulást okozna. Nem használnék adattáblákat erre.

 

Ha a program egy txt állományba mentett paramétereket dolgozna fel, és millió soros lenne a txt állomány, az úgy nekem jó lenne, csak tudni kellene, hol tartok.

 

Az elemző program meg mindent el tud végezni, bár ezt még be kell fejeznem. Hogy törli a fájlt ha nem jó és elrakja az adatatokat mondjuk egy txt logba, 1 sor 1 lehetőség.

Itt Nosql még szebb lehetne, ha ebbe loggolna, de nem használtam még ilyeneket, főleg nem Windows 10en. Végülis később is át tudom alakitani a txt logot, ha kell valami komolyabb elemzés, vagy eleve több adatot loggolok.

 

Mindenki máshogy készül a választásra, én inkább elterelem a figyelmem. :)

 

64 bites PHP 8.0 alapokon vagy 7.4, ezen szeretném ezt megvalósítani, ezt ami hívogatná paraméterekkel a programokat. Jó lenne, ha lenne kész ilyesmire alkalmas framework, class, vagy bármi. Tudnátok ajánlani valamilyen kész, vagy félkész megoldást erre? Biztos van ilyesmi készen, csak én nem találtam még meg.

Én nem multi threadben gondolkodom, nem kell, hogy egy Php program önmagán belül legyen multitask. Sima Phpt használnék. Thread safe maradhat, és simán exec lenne a külső program hívása, majd a visszatérő kódból lehetne tudni, hogy sikeres volt vagy sem, meg létrehött-e a paraméterben megadott file vagy sem. Ha igen, akkor oké volt a process futtatás, az adott task sikeresen lefutott.

Esetleg valamilyen kész open source alkalmazást paramétereznék be erre, ha már van ilyen, ha nem sikerülne megírni vagy találni erre valamit. Tudom, C nyelven kellene ezt írni, assembly betétekkel, de hát az nem reális számomra.

Naptár óraátállítás kizárása

Sziasztok,

Adott egy naptáram, amiben PHP-vel generálom a kezdő időpontokat.
Az időpontok éjféltől éjfélig mennek, és 2 órás lépésekben számol a rendszer.
Tehát:
00:00
02:00
04:00
06:00
stb.

A gondom az, hogy most lesz az óraátállítás március 27-én, és ott így generálódnak most az értékek:
00:00
03:00
05:00
stb

Én szeretném továbbra is a 2 órás lépcsőket megtartani.
Van erre valamilyen lehetőség szerintetek?
Jelenleg egyszerűen így generálom az időpontokat (a példa kedvéért)

<?php
$start = strtotime("2022-03-27 00:00");
$end = strtotime("2022-03-28 00:00");
$step = 2 * 60 * 60;
$range = range($start, $end, $step);
foreach($range as $hour) {
	echo date("H:i", $hour)."<br/>";
}
?>

Nagyon örülnék egy gyors megoldásnak. :)

Web CGI + Postgres user/role legjobb megoldás

Adott egy webes adat nyilvántartó/feldolgozó program.

Apache ( minden process külön szál ) cgi, fastcgi + Postgres ( tranzakció kezeléssel ). Postgres adatbázis user/role: 5 db, program felhasználó több mint 100 fő, cgi fájl: 100 db, fastcgi: 300 db ( főleg ajax kommunikáció ). Sima cgi nyitja/zárja az adatbázis kapcsolatot, fastcgi esetén folyamatosan nyitva. A felhasználók folyamatosan használják mind a 3-400 db fájlt, jogosultságuk szerint.

Kérdés: mi a legjobb megoldás az adat kiszolgálás kapacitás/gyorsaság szempontjából:

- ha az adott cgi/fastcgi mindig ugyanazt a Postgres usert/role-t használja az adat kapcsolat felépítéséhez, vagy pedig

- ha ugyanarra az adatbázis jogosultságra létrehozok több Postgres usert is, és a cgi/fastcgi váltogat az egyes Postgres userek között, és mindig másik usert használ az adatkapcsolat felépítéséhez.

Arra keresem a választ, hogy ahhoz képest: ha a cgi-k folyamatosan csak egy user nevében építik fel a kapcsolatot, és egy user/role nevében érkezik egyszerre többszáz kérés, segíti-e a gyorsaságot az, ha több userre lebontva érkeznek az adott esetben konkurens kérések.

Iotguru törlés

Sziasztok,

Próbálok törölni iotguru raw datat, de nem megy:

/measurement/delete/{epoch}/{nodeShortId}/{fieldName}/{fromTimestamp}/{toTimestamp}

Az epoch a nap epochja, utc milisecounds a timestamp. Van adata kiirja a grafon, de nem torlodik es listazni se sikerul.

Valakinek tapasztalat?

Udv

Csaba

Egyszerű webes adatbeviteli felület hol és miben?

Sziasztok! Webes fejlesztésben nem vagyok járatos, bár tudnék valamit összedobni, de kitenni már nem merném intraneten kívülre.

Most az lenne a cél, hogy internetről el kellene érni egy egyszerű bejelentkező felületet. Hitelesítés után (ne kelljen hozzá pl gmail-re regisztrálni, hanem ez is saját adatbázisból működjön de esetleg M365 hitelesítés  szóbajöhet) még egy olyan felület jönne, amin egy egy mezőbe leírható információ jelenne meg, alatta két dátummező egy számmező és egy lista, ezek alatt OK gomb. Esetleg egy visszajelzés hogy rögzíthető-e az adat, vagy volt valami, pl tartalmi gixer.

Egy SQL adatbázis lenne a forrás/cél, de nem gond, és gondolom úgy biztonságos ha köztes adatobjektumokat/adatbázist használunk.

Milyen, akár fizetős szolgáltatásban lehetne most megoldani, hogy a fejlesztés is egyszerű és gyors legyen (én szeretném elkészíteni az ürlapot), biztonságos is maradjon és a webhostinggal se kelljen bajlódni?

Sok felhasználó lenne, de napi szinten 100 alatti adatbevitel.

JS alapok, hogyan kezdjek neki (absolute beginner)

Az utolsó programozgatós etapom kb 25 éve volt turbo pascallal, de sokáig nem jutottam, előtte CPC basic :D

A problémám, amit meg szeretnék oldani:

Egy (később több) weboldal, ami egy hosszabb szövegtörzset generál a megadott radio buttonok/checkboxok/select-listek és textboxok értékei függvényében, majd a végén egy gomb, hogy copy to clipboard. Lennének olyan opciók is, amik attól függően jelennének meg, hogy korábban milyen értéket adott egy opció.

 Főleg ingyenes webes tutorial érdekelne, vagy példákkal sűrűn illusztrált könyv, ami könnyen elérhető.

-Ha nem a js a célszerszám erre, ne tartsd magadban!

OK. varban létrehozott js-kód lefuttatása HOGYAN? :)

Sziasztok, a speciálisan szükséges helyzet az, hogy:

egy js létrehoz egy másik js kódot egy globális 'js' nevű változóban; és ezt egy függvényben le kéne futtatni. kiíratni ki tudom, ha a függvényben azt mondom, hogy alert(js), akkor szépen ki is írja ezt a korábban js-ból generált js-kódot, a kérdés, hogy hogy tudnám a legegyszerűbben lefuttatni? (kb. ilyen webes, más nyelvet js-re ültető codebox-szerű doloógról van szó...)