abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:11 | Zajímavý článek

    Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.

    Ladislav Hagara | Komentářů: 2
    včera 21:55 | Zajímavý software

    Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 13:55 | Nová verze

    Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.

    Ladislav Hagara | Komentářů: 1
    14.2. 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 1
    14.2. 12:22 | Nová verze

    Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 0
    14.2. 05:00 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 9
    13.2. 19:44 | Zajímavý projekt

    Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    13.2. 17:44 | Nová verze

    Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    13.2. 12:11 | IT novinky

    Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.

    Ladislav Hagara | Komentářů: 19
    13.2. 11:44 | IT novinky

    Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (1%)
     (12%)
     (27%)
    Celkem 874 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet

    19.9.2010 17:11 v4it
    php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Přečteno: 391×
    Dobrý den, mám výpis uživatelů, kde spojuju informace o jedněch uživatelích ze 2 zdrojů: z ldapu(pokud má daný uživatel založen emailový účet, jinak se vrací null) a z mysql(pokud mají ftp účet, jinak se vrací null). Tyto informace spojím v jednom poli a povoluji řazení podle jména uživatele, emailové adresy, ftp kvóty apod. Je možnost řadit podle více klíčů najednou. Také omezuju výpis uživatelů třeba 15 najednou. Toto hezky funguje, ale poslední dobou, co narůstá počet uživatelů, se to stává hrozně pomalým. Není čemu se divit - musí se přečíst všichni uživatelé z obou zdrojů, v poli seřadit a pak na nich nasadit limit zobrazení. Potřeboval bych poradit s vhodnějším algoritmem na zpracování dat. Logicky se naskýtá možnost získat třeba 3 uživatele už rovnou seřazené z mysql, ale to nejde z následujícího důvodu:
    username | sql/email | ldap/kvota
    -----------------------------------------
    usr1 | e@email.com | 500
    usr2 | d@email.com | 500
    usr3 | c@email.com | 500
    usr4 | b@email.com | 500
    usr5 | a@email.com | 500
    
    Teď se rozhodnu seřadit je podle kvóty a pak podle emalu, tzn. ldap vrátí první 3, ty pak se ty tři seřadí jako c@..., d@..., e@... Správně by ale měl výpis vypadat takto:
    usr5 | a@email.com | 500
    usr4 | b@email.com | 500
    usr3 | c@email.com | 500
    
    Doufám v nějakou dobrou duši, která mi s tím pomůže :-)

    Odpovědi

    Josef Kufner avatar 19.9.2010 18:44 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Tak načti už z databáze/ldapu omezený počet, spoj to v programu a následně omez ještě jednou na požadovaný počet. Takže pokud chceš N záznamů, načteš max N z databáze, max N z ldapu a v programu seřadíš max 2N záznamů.

    Pokud potřebuješ načítat data z databáze k položkám z ldapu i pokud nemají ftp účet, načítej ldap jako první a požadovaná ID z ldapu připiš do selectu (id IN (...)).

    Pokud je situace ještě horší, zjisti si ID požadovaných záznamů z obou zdrojů v první sadě dotazů a vlastní seznam načti až napodruhé.
    Hello world ! Segmentation fault (core dumped)
    19.9.2010 19:33 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Ono je to ve skutečnosti malinko jinačí, uživatele už znám podle centrální databáze a jejich username, pak mi akorát teoreticky stačí najít odpovídající záznamy v ostatních zdrojích podle username, které se tady používá jako takový klíč, jenže tímto přístupem se odříznu od možnosti seřadit záznamy. Takové je schéma:
    
    (-------PHP APLIKACE--------)--(centrální db v mysql)
      |           |           |
    (ftp/mysql) (mail/ldap)  (*/*)...
    
    
    Josef Kufner avatar 19.9.2010 19:47 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    V tom případě přidej vrstvu.
    (-------PHP APLIKACE--------)--(centrální db v mysql)
                                            ||
                              (-------Backend manager-----)
                                |           |           |
                             (ftp/mysql) (mail/ldap)  (*/*)...
    
    A v centrální DB si kešuj všechny potřebné informace. Update centrální DB pak spouštěj buď periodicky nebo občas při dotazu či nejlépe ať si každá služba aktualizuje svá data sama (pár scriptů to obstará; = backend manager).

    Krom toho, že se ti výrazně zrychlí "PHP APLIKACE", tak si ušetříš starosti s přílišnou různorodostí služeb, resp. je vytlačíš stranou, kde nestraší.
    Hello world ! Segmentation fault (core dumped)
    19.9.2010 20:15 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    To s tou aktualizací nebude tak jednoduché. Dejme tomu že se rozhodnu z centrální aplikace změnit emailovou adresu nějakého uživatele, tzn. musím nejdříve aktualizovat cílovou databázi a při úspěchu aktualizovat i cache. Problém nastane z druhé strany kdy se třeba uživatel rozhodne že si změní heslo nebo se aktualizuje v db informace o využité kvótě - tam nemohu nijak zajistit, aby si sama ldap připojila k centrální databázi a tam informace aktualizovala. Zároveň nevím o žádném mechanismu, který by kontroloval, zda cache potřebuje aktualizaci (procházení všech zdrojů a porovnávání není dobrý mechanismus).
    Josef Kufner avatar 19.9.2010 20:43 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Tak nemusíš procházet vše, stačí jen co se změnilo od poslední aktualizace. Obvykle bývá dostupný čas poslední změny, tak to snad nebude problém.

    Jinak pokud něco změníš v nějaké službě, tak by to mělo být udělané tak, aby jsi se nemusel o aktalizaci kešovaných dat starat -- tedy ono se to postará samo při dalším zobrazení a dočasná nekonzistence nevadí.

    Ale pokud s tímhle bude víc problémů než užitku, pořád můžeš rozdělit původní jedno kolo dotazů na dvě (viz první komentář).
    Hello world ! Segmentation fault (core dumped)
    19.9.2010 20:58 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Ono je to tak půl na půl - pokud bych vyřešil ten cache, tak mi odpadne starost se řazením záznamů (to obstará sql), odpadne starost s dočasnou nedostupností některých služeb, ale zase přibude starost jak aktualizovat záznamy (ne všechny služby si ukládají modified položku u uživatelů). Taky nevím jak bych ten cache měl tvořit. Logicky to vychází tak, že co služba, to tabulka v mysql, jenže bude problém u indexů a u datových typů v sql pokud se bude jednat o konverzi třeba z ldapu. Co se týče tvého prvního příspěvku - mohl bys to rozvést? Nějak jsem to úplně nepochopil - dejme tomu že mám X služeb, N uživatelů a M uživatelů u každé služby, kde M<=N.
    Josef Kufner avatar 19.9.2010 22:34 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Starost s nedostupností služeb bych viděl jako celkem podstatný argument pro kešování. K updatům může pomoct i sledování logů (tail -f | ...). Navíc updaty budou jediný problém k řešení, zbytek je víceméně triviální. Také poznámka, že hodnoty označené hvězdičkou se aktualizují kadých 5 minut, nikoho nezarmoutí. A pokud uzavřeš aktualizaci do transakce, tak si nikdo ani nevšimne, že zrovna běží (místo skutečné transakce stačí použít nějaký příznak nový/starý).

    To první jsem myslel tak, že v prvním kole uděláš dotaz na každou službu a získáš seznam max L uživatelů, kteří by se mohli objevit ve výsledném výpisu. (Kde L je počet položek na výpisu.) V druhém kole pak z této sady výsledků vytáhneš seznam ID uživatelů a zeptáš se centrální DB na tyto uživatele (select ... where id in (1, 2, 3, ...)). Výsledek nebude mít více než X×L položek a v PHP to pak celé spojíš a seřadíš. V lepším případě to seřadíš ještě v centrální DB a v PHP pak uděláš něco jako left join.
    Hello world ! Segmentation fault (core dumped)
    19.9.2010 23:06 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Starost s nedostupností služeb bych viděl jako celkem podstatný argument pro kešování.
    I jako argument proti. Třeba služba ftp je nedostupná pro aplikaci php z důvodu částečného výpadku spojení, ale uživatelé ftp normálně používají a můžou si měnit hesla. PHP aplikace ale ftp službu nevidí a tak veškeré úpravy bude provádět lokálně. Ve chvíli kdy bude služba dostupná i pro php aplikaci nastane konflikt: aktualizovat cache podle služby nebo službu podle cache.

    Jinak to s těmi částečnými dotazy je výborný nápad, asi to udělám tak, děkuju.
    20.9.2010 00:54 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Ještě bych měl otázku: jakým způsobem řadit a vybírat uživatele, pokud bude více řazení nad stejnou službou? Např. řadit vzestupně s limitem 2 podle služeb(zde pro přehlednost uvádím přímo databáze) v tomto pořadí: mysql/email, mysql/maildir, ldap/uid, mysql/kvota. Musím použít 4 dotazy nebo mohu dotaz na mysql spojit v jeden? Bude to tak fungovat?
    Josef Kufner avatar 20.9.2010 03:13 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    PHP aplikace ale ftp službu nevidí a tak veškeré úpravy bude provádět lokálně.
    Cache bude z pohledu aplikace read-only, takže nic takového nemůže nastat. Úpravy se udělají normálaně přímo s danou službou, jakoby žádná cache nebyla. Uživatel dostane potvrzení o úspěšnosti přímo od služby. Je to takové kolečko, které se otočí s každou provedenou úpravou.
    Hello world ! Segmentation fault (core dumped)
    20.9.2010 13:28 v4it
    Rozbalit Rozbalit vše Re: php - Seřadit uživatele podle klíčů a zobrazit jich omezenýc počet
    Tato cache u mě nemá šanci. Ta php aplikace je primárně určená k editaci uživatelů a pokud jí nebude schopná nemá cenu mít ani readonly cache. Nicméně k mé předchozí otázce: jakým způsobem řadit a vybírat uživatele, pokud bude více řazení nad stejnou službou? Např. řadit vzestupně s limitem 2 podle služeb(zde pro přehlednost uvádím přímo databáze) v tomto pořadí: mysql/email, mysql/maildir, ldap/uid, mysql/kvota. Musím použít 4 dotazy nebo mohu dotaz na mysql spojit v jeden? Bude to tak fungovat?

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.