Archívum - Ápr 2021 - Fórum téma
április 29
PostgreSQL vs MongoDB
A Pató Pál projekt esetleges átalakítása kapcsán vetődött fel bennem a kérdés: most a text mellett postgresql-be tolom a logokat, partícionált táblába. Mivel update nincs az adatokon, az input is megfelel egy rdbms-ben tárolható struktúranak (azonosítók, időpontok, és egy szabadon kitölthető szövegmező), hátrányát eddig nem láttam a postgresql-nek, előnyét igen.
Viszont eddig csak tároltam a logokat, most esnék neki újra a webes felületnek, benne keresésekkel.
2-2.5 millió soron már nem túl gyors. (Nem vészes, de 4-5mp/lekérdezés)
Betöltve mongo-ba, látszólag sokkal gyorsabb a keresés. Legalábbis az első pár rekordig.
Gondolom, a teljes keresés azért ennyire nem lenne gyors, de ezt csak egy .count() segítségével tudtam megnézni, az meg gyanítom, valami cache-ből dobta vissza azonnal, hogy adott feltételre hány találat volt.
(Select count(*) from syslog where message like '% DPT=22 %'; vs db.syslog.find({"message": /.* DPT=22 .*/}))
Kérdés: tud valaki jó indokot az adatbázis cseréjére? Azon túl, hogy az rdbms nem erre van kitalálva.
Postgresql mellett szól, hogy sql-ben nem vagyok teljesen kezdő, ha parancssorból akarok matatni az adatokon, egy selectet egyszerűbb begépelni, mint egy mongo lekérdezést, egy join egyszerűen leírható két tábla közt, olvasható is, míg mongo-ban a $lookup a millió egymásba ágyazott json adattal... Másnak lehet, hogy könnyű olvasmány, nekem kifolyik a szemem a sok {} párostól :)
Mongot viszont egyszerűbbnek tűnik elérni pythonból.
Milyen szakmai érv lenne a mongo mellett?
Mi az, amiben a mongo jobb lehet?
■ Viszont eddig csak tároltam a logokat, most esnék neki újra a webes felületnek, benne keresésekkel.
2-2.5 millió soron már nem túl gyors. (Nem vészes, de 4-5mp/lekérdezés)
Betöltve mongo-ba, látszólag sokkal gyorsabb a keresés. Legalábbis az első pár rekordig.
Gondolom, a teljes keresés azért ennyire nem lenne gyors, de ezt csak egy .count() segítségével tudtam megnézni, az meg gyanítom, valami cache-ből dobta vissza azonnal, hogy adott feltételre hány találat volt.
(Select count(*) from syslog where message like '% DPT=22 %'; vs db.syslog.find({"message": /.* DPT=22 .*/}))
Kérdés: tud valaki jó indokot az adatbázis cseréjére? Azon túl, hogy az rdbms nem erre van kitalálva.
Postgresql mellett szól, hogy sql-ben nem vagyok teljesen kezdő, ha parancssorból akarok matatni az adatokon, egy selectet egyszerűbb begépelni, mint egy mongo lekérdezést, egy join egyszerűen leírható két tábla közt, olvasható is, míg mongo-ban a $lookup a millió egymásba ágyazott json adattal... Másnak lehet, hogy könnyű olvasmány, nekem kifolyik a szemem a sok {} párostól :)
Mongot viszont egyszerűbbnek tűnik elérni pythonból.
Milyen szakmai érv lenne a mongo mellett?
Mi az, amiben a mongo jobb lehet?
április 18
Hogyan lehet nullát visszaadni az SQL-ben
Üdv!
Egyszerű feladattal nem boldogulok. Láttam sok kódot a Neten, de nem tudtam megoldani.
Mysql adatbázisban van egy matek táblám, benne egy "mego" (varchar) oszlop melyben 'jó' vagy 'rossz' értékek vannak. Ugyanebben a táblában van még "ido" (datetime) oszlop melyben a megoldás ideje van tárolva /2020-09-01 06:59:21/ formában. Van még id int(5) azonosító.
Szeretném kilistázni adott id azonosítójú felhasználó elmúlt 7 napi megoldásainak a számát.
Nem tudom kiíratni a 0 számot.
Próbálkoztam, de nem sikerült.
SELECT
SUM(CASE WHEN mego='Jó' THEN 1 ELSE 0 END) AS jo
FROM matek
where'$id' = id
group by DATE(ido) ORDER BY ido desc Limit 7
■ Egyszerű feladattal nem boldogulok. Láttam sok kódot a Neten, de nem tudtam megoldani.
Mysql adatbázisban van egy matek táblám, benne egy "mego" (varchar) oszlop melyben 'jó' vagy 'rossz' értékek vannak. Ugyanebben a táblában van még "ido" (datetime) oszlop melyben a megoldás ideje van tárolva /2020-09-01 06:59:21/ formában. Van még id int(5) azonosító.
Szeretném kilistázni adott id azonosítójú felhasználó elmúlt 7 napi megoldásainak a számát.
Nem tudom kiíratni a 0 számot.
Próbálkoztam, de nem sikerült.
SELECT
SUM(CASE WHEN mego='Jó' THEN 1 ELSE 0 END) AS jo
FROM matek
where'$id' = id
group by DATE(ido) ORDER BY ido desc Limit 7
április 13
async vs multithreading
Pythonhoz keresgéltem web frameworköt a Flask mellé/helyett és ekkor került elő az async framework téma.
Az a baj, hogy ennek a lényegét nem értem igazán. Félek, hogy ez elég python-specifikus dolog lesz, mert a pythonban úgy tudom, a mai napig létező dolog a GIL, ami meggátolja, hogy több szálon valóban fusson a program.
A több szál csak úgy tud működni, hogy az egyes szálaknak rendszerhívást kell kezdeményezni, például I/O...
Na itt vesztettem el a fonalat.
Felhasználás szempontjából miben tér el az async működés attól, hogy külön szálon futtatok valamit?
Ami példát találtam az asyncio, aiohttp modulokhoz, az gyakorlatilag arról szól, hogy elindít async jelöléssel egy feladatot,majd valahol később egy await paranccsal bevárja.
Ez az én szempontomból ugyanaz, mint amikor külön szálat indítok egy I/O művelettel, ami akár egy http kérés is lehet, majd egyéb teendőim végeztével bevárom azt a szálat.
Csak míg az async működés viszonylag kötött, addig (ha elvonatkoztatunk a python GIL létezésétől) a multithreading segítségével gyakorlatilag bármit megtehetek párhuzamosan.
■ Az a baj, hogy ennek a lényegét nem értem igazán. Félek, hogy ez elég python-specifikus dolog lesz, mert a pythonban úgy tudom, a mai napig létező dolog a GIL, ami meggátolja, hogy több szálon valóban fusson a program.
A több szál csak úgy tud működni, hogy az egyes szálaknak rendszerhívást kell kezdeményezni, például I/O...
Na itt vesztettem el a fonalat.
Felhasználás szempontjából miben tér el az async működés attól, hogy külön szálon futtatok valamit?
Ami példát találtam az asyncio, aiohttp modulokhoz, az gyakorlatilag arról szól, hogy elindít async jelöléssel egy feladatot,majd valahol később egy await paranccsal bevárja.
Ez az én szempontomból ugyanaz, mint amikor külön szálat indítok egy I/O művelettel, ami akár egy http kérés is lehet, majd egyéb teendőim végeztével bevárom azt a szálat.
Csak míg az async működés viszonylag kötött, addig (ha elvonatkoztatunk a python GIL létezésétől) a multithreading segítségével gyakorlatilag bármit megtehetek párhuzamosan.
április 12
hónapok angol rövidített nevei
Sziasztok !
Nem tudom, felmerült-e itt már témaként a hónapok angol rövidített nevének helyes megjelenítése.
Pl. a date("M. d") használata több szempontból is hibás eredményt ad.
1. május, június és július esetében is a rövidített formátumot adja vissza, holott ezen hónapok esetén nem használnak rövid formátumot
2. ehhez kapcsolódik, hogy a fenti hónapok esetén a név után nem szerepel pont
Én megoldottam a problémát, csak érdekelne, a PHP egyáltalán kezeli-e ezt a problémát.
■ Nem tudom, felmerült-e itt már témaként a hónapok angol rövidített nevének helyes megjelenítése.
Pl. a date("M. d") használata több szempontból is hibás eredményt ad.
1. május, június és július esetében is a rövidített formátumot adja vissza, holott ezen hónapok esetén nem használnak rövid formátumot
2. ehhez kapcsolódik, hogy a fenti hónapok esetén a név után nem szerepel pont
Én megoldottam a problémát, csak érdekelne, a PHP egyáltalán kezeli-e ezt a problémát.
április 11
fájlok megjelenítésének tiltása böngészőben htaccess-ben
Sziasztok !
Azt szeretném elérni, hogy böngészőben az adott fájl elérési útját beírva ne lehessen belenézni az adott fájlba, pl. egy css-be.
Hogyan oldható ez meg htaccess-ben ?
Ami megoldásokat találtam a neten, azok egyben blokkolták a fájl a végrehajtását is.
Előre is köszönöm a segítségeteket.
■ Azt szeretném elérni, hogy böngészőben az adott fájl elérési útját beírva ne lehessen belenézni az adott fájlba, pl. egy css-be.
Hogyan oldható ez meg htaccess-ben ?
Ami megoldásokat találtam a neten, azok egyben blokkolták a fájl a végrehajtását is.
Előre is köszönöm a segítségeteket.
április 4
Szöveg (forráskód) szerkesztés mobilos böngészőben
Csak kíváncsi vagyok: más is futott olyan problémába, hogy mobilos böngészőben próbált volna belejavítani egy forráskódba és a szerkesztő megkergült?
Nekem konkrétan a pythonanywhere.com, a github és valamelyik html tutorial vagy javascript tesztelő oldal csinált egészen hülye vicceket.
Például, hiába nyomkodtam a return/új sor gombot, ugyanezzel a gombbal a pythonanywhere szerkesztő következetesen törölte az utolsó karaktert a sorból, bizonyos spec karakterek úgy működtek, mintha a ctrl gombbal együtt nyomtam volna őket stb.
Mindezt kizárólag mobilon, de onnan az összes böngészőből egyformán.
Azt tudom, hogy nem egyedi eset, mert a pythonanywhere support kapásból mondta a választ: a virtuális billentyűzet van megzakkanva és náluk be is vált: a Hacker's Keyboard segítségével tudtam szerkeszteni, de máshol az sem segített.
Ti tapasztaltatok már ilyet?
Érdekes még, hogy nálam csak a böngészőkben bolondul meg, ha ssh-n belépek az itthoni gépekre, termux-ból, ott semmi gond... Ja, ez se igaz teljesen: a termux a Samsung keyboardot nem szerette egy darabig, bármit gépeltem, nem jelent meg, csak az enter lenyomása után. A legújabb verzió már rendben van.
Ui: nem 1st world problem, ha egy héten egyszer át akarok írni webről egy sort, az már gyakori :) csak bosszantó. És az okát sem látom, mert úgy egyébként működik mindegyik billentyűzet minden egyéb oldalon.
■ Nekem konkrétan a pythonanywhere.com, a github és valamelyik html tutorial vagy javascript tesztelő oldal csinált egészen hülye vicceket.
Például, hiába nyomkodtam a return/új sor gombot, ugyanezzel a gombbal a pythonanywhere szerkesztő következetesen törölte az utolsó karaktert a sorból, bizonyos spec karakterek úgy működtek, mintha a ctrl gombbal együtt nyomtam volna őket stb.
Mindezt kizárólag mobilon, de onnan az összes böngészőből egyformán.
Azt tudom, hogy nem egyedi eset, mert a pythonanywhere support kapásból mondta a választ: a virtuális billentyűzet van megzakkanva és náluk be is vált: a Hacker's Keyboard segítségével tudtam szerkeszteni, de máshol az sem segített.
Ti tapasztaltatok már ilyet?
Érdekes még, hogy nálam csak a böngészőkben bolondul meg, ha ssh-n belépek az itthoni gépekre, termux-ból, ott semmi gond... Ja, ez se igaz teljesen: a termux a Samsung keyboardot nem szerette egy darabig, bármit gépeltem, nem jelent meg, csak az enter lenyomása után. A legújabb verzió már rendben van.
Ui: nem 1st world problem, ha egy héten egyszer át akarok írni webről egy sort, az már gyakori :) csak bosszantó. És az okát sem látom, mert úgy egyébként működik mindegyik billentyűzet minden egyéb oldalon.
április 2
.htaccess
Sziasztok
A segítségeteket kérném. A google jóbarátom és kb. 200 ezer megoldást találtam, viszont jobb lett volna 1 amit megértek és működik.
Szóval tudom sokaknak alap a kérdésem, de én most szeretném megtanulni.
A probléma: .htaccess fájl kezelése
Adott egy ilyen txt docum a gyökér könyvtárban:
RewriteEngine on
Options -Indexes
ErrorDocument 404 http://domain.hu/404.php
ErrorDocument 500 http://domain.hu/404.php
Adott egy oldal amin a tartalom változik aszerint, hogy az url-ben milyen id található.
Az url id alapján lekéri a blog címét, szövegét és egyéb adatokat. Amit szeretnék elérni, hogy az url ben ehelyett:
http://domain.hu/index.php?id=1
Ez legyen pl:
http://domain.hu/hogyan_fujjuk_ki_purhabbal_a_kocsi_aljat
Tehát az index.php?id=1 rész helyett az aktuális blog címe lenne.
Néhány esetben az url tartalmaz még egy adatot is miszerint (nem mindig):
http://domain.hu/index.php?id=1&felhasznalo=2
Összegezve: azt szeretném elérni, hogy az urlben a blog címe látszódjon, de a háttérben tudjam lekérni, kezelni a get adatokat.
Az adatokat mysql-ből kérem le, és a get adatokat urlencode-al kérem le ha ez számít ebben az esetben.
Köszönöm ha segítetek, szeretném megérteni a működését, hogy a későbbiekben ha bővítem az url-t más adatokkal, akkor is tudjam majd kezelni.
■ A segítségeteket kérném. A google jóbarátom és kb. 200 ezer megoldást találtam, viszont jobb lett volna 1 amit megértek és működik.
Szóval tudom sokaknak alap a kérdésem, de én most szeretném megtanulni.
A probléma: .htaccess fájl kezelése
Adott egy ilyen txt docum a gyökér könyvtárban:
RewriteEngine on
Options -Indexes
ErrorDocument 404 http://domain.hu/404.php
ErrorDocument 500 http://domain.hu/404.php
Adott egy oldal amin a tartalom változik aszerint, hogy az url-ben milyen id található.
Az url id alapján lekéri a blog címét, szövegét és egyéb adatokat. Amit szeretnék elérni, hogy az url ben ehelyett:
http://domain.hu/index.php?id=1
Ez legyen pl:
http://domain.hu/hogyan_fujjuk_ki_purhabbal_a_kocsi_aljat
Tehát az index.php?id=1 rész helyett az aktuális blog címe lenne.
Néhány esetben az url tartalmaz még egy adatot is miszerint (nem mindig):
http://domain.hu/index.php?id=1&felhasznalo=2
Összegezve: azt szeretném elérni, hogy az urlben a blog címe látszódjon, de a háttérben tudjam lekérni, kezelni a get adatokat.
Az adatokat mysql-ből kérem le, és a get adatokat urlencode-al kérem le ha ez számít ebben az esetben.
Köszönöm ha segítetek, szeretném megérteni a működését, hogy a későbbiekben ha bővítem az url-t más adatokkal, akkor is tudjam majd kezelni.