abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 1
    dnes 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    dnes 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 1
    dnes 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

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

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 11
    včera 12:33 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).

    Fluttershy, yay! | Komentářů: 1
    včera 12:00 | Nová verze

    Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Návrh pre abclinuxu.cz

    31.10.2006 11:08 | Přečteno: 2317×

    Malý návrh pre tvorcov tohoto servera :-) (Java bŕŕ, tak aspoň takto)

    Príspevky

    Jedna tabuľka pre všetky príspevky:
    Entry
     - id, int4, autoincrement, primary key)
     - parent, reference Entry, default null
     - type, reference EntryType,
     - account, reference Uzivatel, default null
     - anonym, text, default null
     - time_insert, time,
     - time_modify, time,
     - time_deploy, time, default null,
     - status, reference EntryStatus
     - subject, text, default null
     - uvod, text, default null
     - content, text, default null
    
    parent ... nadradený príspevok, null pre root Entry

    Tabuľka stromu:

    EntryTree
     - id
     - ancestor, reference Entry
     - descendant, reference Entry
     - depth, int
    
    index (ancestor)
    index (descendant)
    
    vytvorenie nového Entry
    entry = new Entry;
    "insert into entry_tree (ancestor, descendant, depth)
       select select ancestor, entry.id, depth + 1
       from entry_tree
       where descendant = entry.parent
    "
    "insert into entry_tree (ancestor, descendant, depth)
        values (entry.id, entry.id, 0)
    "
    
    Vysvetlenie:
    EntryTree sleduje všetky cesty v strome (a ich dĺžku), ak ich budeme považovať za jednosmerné.
    Príklady:
    celý podstrom zadaného rootid:
    select A.descendant parent, B.descendant child
      from tree_node_path A, tree_node_path B
     where A.ancestor = rootid
       and A.descendant = B.ancestor
       and B.depth = 1
     order by parent, child
    
    pri predpoklade, že Entry.id je trvale rastúce, môžeme strom budovať:
    map[rootid] = new Entry (rootid);
    while ((parent, child) = fetch_row) {
      map[parent].add_child (child);
      map[child] = new Entry (child);
    }
    
    map je asociatívne pole

    výber cesty po leafid:

    select ancestor
      from entry_tree
     where descendant = leafid
     order by depth asc
    
    Entry je každý príspevok (článok, správička, blog, komentár, ako i napr "sekcia hardware" alebo "sekcia "Software/alternatívy").
    Výhody:
    užívateľ si môže nastaviť sledovanie ľubovoľného stromu (napr i časti diskusie).

    Entry::Status
    enumerácia s hodnotami NEW, ENABLED, LOCKED, DELETED

    Entry::Type
    typ príspevku, enumerácia napr: ARTICLE, NEWS, COMMENT, BLOG, CATEGORY, POLL

    Sledovanie

    AccountWatch
     - id
     - account, reference Account (uzivatel)
     - entry, reference Entry
    
    Výber prihlásených pri vložení príspevku (resp pri jeho publikovaní):
    entry = new Entry;
    
    select account
      from account_watch, entry_tree
     where account.entry = entry_tree.ancestor
       and entry_tree.descendant = entry.id
    

    Posielanie mailov

    Navrhoval by som vypĺňať hlavičku In-Reply-To a Message-ID. In-Reply-To podľa entry.parent (ak nie je null), Message-ID podľa entry.id. Postačovať by mal tvar 1234watch@abclinuxu.cz

    V prípade záujmu môžem pokračovať návrhom systému hodnotenia príspevkov.        

    Hodnocení: 67 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    31.10.2006 18:48 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Možná jsem nepochopil ten fígl, ale Abíčko data do databáze ukládá ve stromové struktuře – tj. jsou jednotlivé entity a ty mají mezi sebou vztahy rodič – potomci. Viz stránku se zdrojáky, kde je odkaz na články o datové struktuře i samotný SQL dump.
    31.10.2006 19:39 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    ak máte na mysli stĺpec data, je to niečo magické, nad ktorými sa potom nedajú robiť databázové operácie, nedá sa na ne odkazovať, ich update znamená cyklus decode-encode.
    Zdrojáky som si samozrejme prešiel, preto som tento návrh napísal. :-)
    31.10.2006 20:00 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    V odkazovaných článcích Leoš popisoval, proč se rozhodl použít zrovna tenhle způsob. Je to taková simulace skoro-XML databáze nad relační databází. Pokud by se s tím mělo hýbat, tak jsou asi jen dvě možnosti: opravdová XML databáze (a je otázka, zda dnes existuje taková, které by bylo možné svěřit data Abíčka), nebo klasická relační databáze, kde bude jedna tabulka pro články, jedna pro komentáře atd. Nevidím žádný přínos toho rozšiřovat tabulku Entry o sloupce, které se někdy použijí a jindy ne a jindy stejně nebudou stačit…

    Nechci odmítat cokoliv jiného (ostatně já jsem tu databázi nenavrhoval a databáze navrhuji jiným stylem), ale nevidím mezi vaším návrhem a současným stavem prakticky žádný rozdíl.
    31.10.2006 20:23 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    zjednotenie všetkých typov do jednej tabuľky umožňuje použiť na každý typ rovnaké operácie, napríklad hodnotenie, komentovanie, sledovanie (napr sledovanie časti diskusie, alebo časti diskusie). Pri pridaní nového typu, tento zdedí túto funkcionalitu. To by zabezpečila tabuľka
    EntryWatch
     - id
     - account
     - entry
    
    Rozšírenie tabuľky Entry o null-able stĺpce je z dôvodu spätného selectu, napr. pri funkcii "čo sa napísalo v označených/navštívených Entry, odkedy som tu nebol", tabuľky EntryMark, EntrySeen (rovnaké ako EntryWatch).

    Rozdiel je jednoznačný, súčastný stav funguje :-D

    31.10.2006 20:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Aha :-) Takže to celé by umožnilo označovat zprávičky, články, zápisy v blogu a záznamy v HW a SW od mé poslední návštěvy? To mi dělá RSS :-)
    31.10.2006 20:43 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    nielen, platí to pre ľubovoľný Entry.
    Rozdiel je v jednom: ak by malo existovať ekvivalentné RSS, muselo by existovať pre každé Entry.
    Josef Kufner avatar 31.10.2006 18:52 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Stromy je výhodnější vylepšit o sloupce left a right. Které budou obsahovat taková podivná čísílka. Pak totiž stačí na vykreslení celého stromu jeden jediný select. Také sečtení přečtených nepřečtených příspěvků na titulní stránce je pak o jednom joinu a group by. A aby nebyly ztráty výkonu při přidávání příspěvků tak velké, stačí mít ještě u každého uloženo id stromu (diskuze), takže update běží jen na relativně malém množství záznamů.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 31.10.2006 18:57 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    A pokud to chce někdo vidět hotové, tak tohle to používá.
    Hello world ! Segmentation fault (core dumped)
    31.10.2006 19:34 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    left-right má dosť vysokú réžiu na rebuild stromu pri pridaní, ktorá zároveň musí byť atomická.
    Josef Kufner avatar 1.11.2006 00:06 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Ve srovnání s rekurzivním procházením stromu při každém zobrazení to i tak vyjde výrazně lépe.
    Hello world ! Segmentation fault (core dumped)
    31.10.2006 21:35 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Proč Atlantis ?
    Quando omni flunkus moritati
    Josef Kufner avatar 1.11.2006 00:00 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Mě se neptej, tuhle část názvu jsem převzal.
    Hello world ! Segmentation fault (core dumped)
    31.10.2006 20:00 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Psal jsem tu o tom článek...
    Math, as Barbie says, is hard.
    Josef Kufner avatar 1.11.2006 00:03 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    A nechceš napsat ještě nějaký? Tohle se děsně blbě hledá... ;-)
    Hello world ! Segmentation fault (core dumped)
    1.11.2006 08:34 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Stromy v SQL

    Hint: kliknout na jméno autora komentáře a pak na "Seznam příspěvků na abclinuxu.cz" :-)
    Josef Kufner avatar 1.11.2006 17:30 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    O tom jednom vím (došel jsem k němu včera tou cestou co píšeš), právě proto říkám, že by byl fajn ještě nějaký další.

    Teda, že mi někdo z redakce bude rozmlouvat výzvu k napsání článku, jsem fakt nečekal :-D
    Hello world ! Segmentation fault (core dumped)
    1.11.2006 09:39 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Diky za snahu, ale na zasadni zmeny backendu je pozde asi tak o 6 let. ;-)

    Rekurzivni monitory mam v planu, jsou i v bugzille a pujdou udelat relativne snadno i v soucasnem modelu. Akorat mi jeste neni jasne, jak bych udelal sledovani vlaken v diskusi, nicmene sledovani na urovni celych objektu bude snadne.

    Jenze nasledne bude vhodne udelat i dalsi zpusoby informovani o novych udalostech. Ted kdyz si date sledovat nejaky flamewar, muzete za hodinu dostat desitky emailu. Pri rekurzivni sledovani muzete dostavat stovky mailu za den. Proto je treba napsat alternativy k InstantSender, napriklad BatchSender (poslat souhrnny email jednou za den) nebo InternalMessageBox (ukladani zprav do abicka, neco jako Mate 4 nove zpravy, dalo by se zobecnit i pro posilani zprav mezi uzivateli, kteri nemaji platnou emailovou adresu).
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    1.11.2006 18:22 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    hmm, abc instant message ? :-)
    Nebude jednoduchšie import/export cez jabeer, nntp ?

    čo sa týka emailov a flame ... podľa mňa stačí správne vypĺňať hlavičku, aby sa správy zgrupovali. V mailing listoch sa bežne stáva veľa mailov za den.

    1.11.2006 21:48 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Pokud vim, tak hlavicku vyplnujeme spravne a vlakna v pohode funguji. Nicmene na kazdemu se libi, kdyz mu dorazi behem kratke doby par desitek emailu a s tim podpora vlaken nema zadnou souvislost ;-) NNTP podporujeme uz davno pres gmane.org, viz stranka diskusniho fora. XMPP nekdo zadal, muze to byt dalsi alternativni implementace InstantSenderu. AbcInstant message nebude, mel jsem na mysli jen schranku se vzkazy, nekdo to po mne z adminu nedavno chtel, ze by to preferoval misto emailu.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    Josef Kufner avatar 2.11.2006 13:13 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh pre abclinuxu.cz
    Tak ať si ten někdo pořídí ke své schránce webmail ;-)
    Hello world ! Segmentation fault (core dumped)

    Založit nové vláknoNahoru

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