Internet: PHP, CGI, stb.

JS dinamikusan betöltött oldal elemeinek elérése

Kedves hozzáértők!

 

Szeretném egyszerűen intelligensen megoldani azt, hogy a weboldal menüjéből választva betöltse a hozzá tartozó lapot, aminek az elemeit aztán js-ből tudjam módosítgatni.

A kérdésem az, hogy a content_statements.html oldalnak a pageMain elemén hogyan tudnám az innerHTML-be betölteni a frissen generált tartalmat?

Először frame-el próbáltam, de azt a chrome eldobja. Akkor tértem át a main/nav megoldásra, ez jobban is tetszik, de a js oldal erősen kifog rajtam.

 

 

index.html

<!DOCTYPE html>
<html lang="hu"> 
    <head>
        <script type="text/javascript" src="js/main.js" ></script>
    </head>
 
    <body>
        <main class="main_div" id="content">
            <div>Válassz a menüből!</div>            
        </main>
        
        <nav>
            <div class="navbar" id="navbar">
                <div class="navs" id="menuExpenses">Tranzakciók</div>
                <div class="navs" id="menuStatements">Kimutatások</div>
            </div>
        </nav>
    </body>
    <script>
        postInit();
    </script>
</html>

main.js

function postInit()
{
    // Kimutatások menüpont
    menuStatements = document.getElementById("menuStatements");
    menuStatements.onclick = function () 
    {
        load_page("content_statements.html");
        -----   Itt használnám az oldal elemeit -------
    };
    
}

content_statements.html

<html>

    <body>
        <div id="pageMain">TODO write content</div>
    </body>
</html>

Egy éve ✌ázott el✌ a főváros - Elektronikus riasztási rendszer (meteoalarm.org)

Ma (júl. 19-én) van az egy éves évfordulója, hogy 100mm közeli csapadék hullott le dél-Buda és Érd térségében, néhány óra alatt.
Én személyesen egy Budapest XI. kerületi, pincés beázás miatt vagyok érintett. (Talán az ország más területein is voltak hasonló károk ebben az időszakban - az ignoranciámért ezúton elnézést kérek.)

Egy kis extra az ide vonatkozó múltamról: 2018-ban átalakításokat végeztünk a lehetséges beázások megelőzése, valamint a lehetséges hatás csökkentése érdekében (másodlagos védvonalak). A tavalyi eset erős tükörképet mutatott a belefektetett munkák hatásosságáról. Azonban a frissen tanultak rámutattak, hogy az általános felkészülés nem elég. Egy újabb beázás valószínűségének időbeni realizálására van szükség, hogy további lépéseket, előkészületeket végezzünk.
Továbbá: a nagy mennyiségű csapadékon túl egy pontos fagyveszély előrejelzésre is szükségem van. ➕ Mindezt úgy, hogy senkinek/semmi berendezésnek nem kell az adott területen belül tartózkodnia/lennie - lásd a ‘További megjegyzéseket’.

Arra keresek megoldást, hogy egy fix földrajzi pontra, adott típusú és szintű előrejelzésről riasztást kapjak elektronikus, elsősorban e-mail formájában.

A nagy Németországi áradások miatt az Európai Unió keretein belül megvalósult az összefogás, hogy Európa szintű riasztási rendszert alakítsanak ki.
A korábbi meteoalarm.eu (EUMETNET) weboldalt és keretrendszert ez év tavaszára sikeresen átszervezték egy új cím alá: meteoalarm.org
Én az OMSZ-t ez ügyben, még tavaly, a beázás után, e-mailben zaklattam, de végül elvesztem a bürokráciájukban. Azonban idén örömmel tapasztaltam, hogy még ha kezdetlegesen is, de teljes együttműködésbe kezdtek a meteoalarm.org rendszerének beintegrálódásába (a korábbi riasztási rendszerüket -tapasztalataim szerint- folyamatosan, mindmáig aktívan integrálják).

Két ok miatt is indítom ezt a topikot:

  • Én elkezdtem egy Google Apps Script-re épülő (Google fiók szükséges) megoldást megvalósítani
    Mivel nem vagyok programozó örömmel venném tudomásul, hogy már más megvalósította ezt és így megúszhatom, hogy az általam tákolt kódot tanulmányozzák mások. (Kijavítva a hibáimat, amiből tanulni tudnék - csakhogy már előre nyilvánosságra hozhatom, hogy nincs kapacitásom a tanulásra).
  • Az én megvalósításomban jogilag szürke területekre mentem, amikre várom, hogy az illetékesek írásban reflektáljanak. (Azonban lehet, hogy a forráskód láttán hiába várom a válaszukat, tudatosodott bennük, hogy halott esetről van szó :).

További megjegyzéseim:
 - Az eddigi kutatásaim alapján egyes mobilalkalmazások nyújtanak testre szabható riasztásokat, azonban csak az eszköz pillanatnyi tartózkodási helyére kapok értesítést. Más szolgáltatásoknál pedig területileg beállíthatok e-mail figyelmeztetéseket, azonban
 - Angliában már évek óta minden lakos számára elérhető egy mindenre kiterjedően paraméterezhető e-mailes riasztás: UK MetOffice - Weather Warning: e-mail alert service (ez alapján készítettem a magam változatát).
 - A meteoalarm.org CAP rendszernének felhasználásához útmutatók
 - Egy PHP-n alapuló megoldás - a fejlesztési naplóban jól látható a meteoalarm.eu→.org átalakulás

További linkek a tavalyi esetről:
 - Időkép - 100 milliméter csapadék zúdult le Budatétényre
 - OMSZ - Ciklon Európa felett: a 2021. július 11-20. közötti villámárvizes időszak időjárási háttere - Tanulmányok
 - 1, 2, 4, 5, 10, 100 éves csapadékátlagok - Budapest - Lágymányos

Előre is köszönöm az megnyilvánulásokat:
Gyuri

Kis webáruház 2022-ben

Sziasztok.

Joomla alapú weboldalamra könyvet értékesítő webáruház-modult szeretnék rádrótozni.

A termékek: néhány könyv, esetleg egy-két karbonkompozit termék.

Szállítás futárral, vagy személyes átvétellel, fizetés paypal és a többi szokásos...

Kérdésem: mit javasoltok? Telepítsek egy joomlára fejlesztett brutális webáruházat, amivel ágyúval lőnék verébre? Alternatívaként egy külső webáruházat is oda lehetne rakni, amiért havonta kellene fizetnem. Vagy megcsinálom a kódot magamnak, és követem állandóan a szükséges biztonsági frissítéseket...

Lehet még buktatója a dolognak?

(A honlap fizikailag amerikai szerveren van.)

[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.