Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Zdravim
Extrémisty, kteří se odhodlali vyzkoušet můj měřící soft pro iGW NetCount jiste vyděsil způsob ukládání dat. Nebudu to moc pitvat, je to strašné.
Rozhodl jsem se to přestavět na client-server řešení s použitím MySQL databáze. Měření bude možné na vícero iGW a zobrazovat se to bude na centrálním serveru. Data se budou po síti posílat přímo do databáze.
Potřeboval bych ovšem trochu poradit s návrhem databázové struktury. Data jsou měřena v 5 minutových intervalech a vždy při měření se čítač resetuje. Tohle řešení lze změnit, ale nenapadá mě jak změnit k lepšímu.
V současnosti se vždy po naměření sady hodnot aktuální data přičtou k datům pro dny, týdny, měsíce a roky a ty prvotní 5 minutová data se ještě uloží do RRD souboru, kde visí prakticky navěky.
Na ukládání dnů, týdnů, měsíců a roků zvlášt netrvám. Naopak si myslím že by bylo lepší tohle zrušit a počítat to až při konečném požadavku na zobrazení dat.
Napadlo mě tedy do databáze ukládat pouze ty 5 minutové přírůstky. Tedy takhle:
ip data-in data-out timestamt igw 10.193.120.14 4564 234 10-07-2006 14:25 1
Co je ip, data-in a data-out je jasne. Timestamp je taky jasny, jen by asi bylo vhodne zvolit nejaky typ timestampu, ktery se uvnitr mysql lepe zpracovava (bude velice potreba, viz nize). No a cislo iGW uz slouzi jen pro identifikaci pri zobrazeni dat. Vpodstate tam neni potreba. Tuto informaci si podle ip muzu vytahnout z jine tabulky (v mem pripade). Tatu funkcionalita tam však bude pro jiné uživatele.
Zobrazování dat by pak probíhalo způsobem, že bych stvořil dotaz, ve kterém bych chtěl součty data-in a data-out od-do určitých timestampů. Takže program by vlastně jen generoval potřebné timestampy od-do a databáze by dodala součet dat v tomto rozmezí.
Při zobrazování dat to sice bude vcelku dost počítání pro databázi, ale zase naopak ukládání dat je absolutně primitivní a to se provádí přecijen řádově častěji.
Takže o co mi vlastně jde: Chtěl bych znát váš názor, zda je to dobrý nápad to takhle udělat a nebo jestli to mám udělat jinak (jak).
Až to bude hotové, tak to bude myslím si soft co bude vcelku užitečný, protože žádný co jsem našel nebyl stavěný pro přímé měření více iGW v jedné síti najednou.
Takže díky všem.
Zdeněk
Tiskni
Sdílej:
A teze, že se jí ujme skupina a bude tuto MySQL verzi udržovat považuji předem za nemístnou utopii.
Tak úplně nemístná utopie to není, třeba InterBase tohle štěstí měla. Ale také to nebylo úplně bez problémů a svou roli hrála i skutečnost, že se na tom podílela podstatná část klíčových vývojářů. V každém případě souhlasím, že to rozhodně nelze považovat za automatické a bezproblémové.
Na druhou stranu bych nebyl tak skeptický k životaschopnosti GPL-forku MySQL. Přeci jen je dost firem, které mají nad MySQL postavené své projekty (i když ten software je obvykle pouze pro vlastní potřebu a nikam se nešíří). Tyto firmy by asi byly ochotny udržení GPL-forku při životě podporovat. Souhlasím ale s názorem, že otázka dalšího vývoje by v takovém případě byla více než sporná.
a nebude vobec zalezat na tom, kto a kde si to chce ulozit, jedine, co bude musiet autor specifikovat, je vstup, ktory dostanu tie programceky.
<source>:<timestamp>:<name>:<value>\nkde:
tym padom vzniknu tabulky:
source id int (autoincrement/serial/ ...) name text name id int name text log id int source int references source on delete cascade, timestamp int name int references source on delete cascade, value int8/double
ip (inet) | data (bigint) | packets (bigint) | direction (BOOL/NUMERIC(1)) | timestamp (NUMERIC(11))
direction urcuje jestli jsou ty data prichozi ci odchozi. Nad tabulkou s hodinovymi soucty mam udelany pohled, ktery mi spoji prichozi a odchozi data k dane IP v danem case do jednoho radku. Nad timto pohledem mam pak vystavene generovani statistik.
Z nasbiranych 5ti minutovych souctu nacpu data do rrd databaze a z te pak pri pozadavku na informace o dane IP nageneruji graf.
typ numeric na timestamp asi nebude uplne idelani a nejspis snizuje vykon... No snad se dostanu k tomu to zmenit na neco rozumnejsiho.
DjAARA
ip (inet) | name (varchar(30))
postgresql:
create function get_user_id (cidr) returns int immutable language 'sql' 'select id from user_ip where ip = $1'; insert into log (time, uid, value) values ($1, get_user_id($2), $3)50 userov/200 ip, 3000 insertov/s na prvy milion
Zpusob groupovani/ukladani do databaze si kazdy predstavuje trochu jinak.Ano, zalezi na pozadavcich co z toho budu potrebovat, k cemu to ma slouzit atp..
Ale i to co pisete ma neco do sebe. Nicmene rozhrani z ktereho to jde z logu StarOSu nejspis nepoznam.Logy StarOSu neznam. Kazdopadne kdyz jsem se o nej zajimal meli tam hezky backdoor, ktery snad uz odstranili nebo premistili jinam :) Jako interface jsem spis myslel logicky interface, ktery mam popsany ip adresou + mac adresou (v pripade, ze ji k necemu budu chtit pouzit).
A paterni router, ktery to pak posila na 2 ruzne linky do internetu je hlidany (monitorovany) samostatne.Pod monitoringem serveru/routeru si predstavuju spis trochu jine veci nez hlidani prutoku dat od jednotlivych uzivatelu.
Ja osobne potrebuji vedet ktera IP je v ramci HFN nejaktivnejsi a na pripadne zlobily pustit shaping.Melo by stacit znat ip daneho klienta a data in/out (pripadne pocty paketu). Bylo by mozne to jeste rozdelit na traffic uvnitr site, ven a podle nejakych pravidel vypocitat zda uz prekrocil hranici na to aby se jemu zapnul shapping. Pokud chci vedet s kym komunikoval tak uz holt potrebuju o cilovou ip navic cimz neumerne narusta pocet zaznamu.
No to je 1000dotazu/5 min na _jednu_ IP z vnitrni site, kdyz budete mit v siti 1000 IP (dobre my mame kolem 55 lidi on-line za den, ve spickach kolem 80-90 IP, celkem vedeme 237 IP), tak uz jsme na milionu dotazu za 5 min. Ne ze by to bylo nejak extremne mnoho.No neni potreba delat takove mnozstvi dotazu na kazdou ip. Jelikoz uz vlastnim log tak si jej preparsuju do svych struktur jak potrebuji, vyberu si z nej vsechny ip a aplikovat filtr, ktery me rika zda je to interni ip, externi[venkovni internetove] (muze pracovat v podstate na znalosti podsiti, ktere jsou uvnitr pouzivany), necht se stanou unikatnimi, provedu jeden dotaz do db, kterym vyberu idcka jim odpovidajci, nahradim ipcka u sebe jejich idckama, jednim/nekolika dotazy to ulozim. (pomerne rychle reseni, melo by to jit resit i na urovni sql dotazu[s trochu jinym prubehem], ale sql zas na tolik neumim :)) takze ve vysledku mam 1 select + 1 nebo nekolik insertu (je rychlejsi ukladat vice hodnot najednou)
CREATE TABLE `prenosy` ( `ip` int(11) unsigned NOT NULL default '0', `upload` bigint(20) unsigned default '0', `download` bigint(20) unsigned default '0', `cas` bigint(20) unsigned NOT NULL default '0', `sonda` tinyint(4) unsigned NOT NULL default '0', KEY `ip` (`ip`), KEY `sonda` (`sonda`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;Přičemž ip adresy ukládám ve formátu, který tvoří ip2long().
Divné, když jsem dělal redakční systém, tak mi tu všichni doporučovali ať s tím skončím, že tu každý webdesigner dělá svůj vlastní radakční systém. Dnes zas asi každý dělá tenhle měřící systém.Sice je to pravda, ze si to dnes pise skoro kazdy jelikoz nic pouzitelneho a nolne dostupneho neexistuje, ale jak taky ty projekty dopadaji... Vetsinou dalsi kus toho sameho nepouzitelneho software..
Přičemž ip adresy ukládám ve formátu, který tvoří ip2long().
Jinak řečeno je konvertujete zpět do jejich skutečné podoby… :-)
libiptc
) a parsováním výstupu příkazu iptables
? Je jasné, že první varianta bude rychlejší, ale zajímalo by mne, jestli to stojí za to.