Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Ink

Stran: 1 ... 20 21 [22] 23
316
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 14:11:15 »
https://en.wikipedia.org/wiki/Demand_paging

Cele nacitanie suboru vznika len v pripade ak robis "read all" operacie. Cize bezne sa subory prechadzaju riadok za riadkom, pripadne v blokoch, len malokedy sa nacitaju cele do pamete. Je jedno o aky jazyk ide.

To mi nedává moc smysl:

1. Jestli si načtu do paměti obsah celého souboru najednou, nebo po kouskách, do toho mmapu nic není. To je věc aplikace.

2. Hledání podřetězce v souboru přece je v nejhorším případě opravdu "read all".

3. Dovedu si samozřejmě představit, že je OS "chytrý" a dokáže podle potřeby uvolňovat kusy paměti, ale přijde mi to celé proti filosofii a smyslu toho mechanismu. Jednak on nemůže vědět, kam si budu chtít sáhnout hned v další operaci (tudíž se to celé může dost prodražit) a vůbec asi pro rychlou práci nechci takto nedeterministické chování systému.

317
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 13:32:53 »
Hm, nevadí vám, že se soubor při takto jednoduchém použití mmap musí celý vejít do RAM? Nebo mi něco uniká?

318
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 10:59:53 »
Tohle je výrazně optimálnější, i bez mmap()...

#!/usr/bin/env python3

import sys


def regions(f):
    chunkLength = 50000000
    offset = 0
    c1 = f.read(chunkLength)
    while (len(c1) == chunkLength):
        c2 = f.read(chunkLength)
        yield offset, c1 + c2
        c1 = c2
        offset += chunkLength
    yield offset, c1


def findIndex(f, s):
    for offset, chunk in regions(f):
        index = chunk.find(s)
        if (index >= 0):
            return offset + index

    return -1


def write(f, index, s):
    f.seek(index)
    f.write(s)


def replace(fn, ih, oh):
    f = open(fn, "rb+")
    index = findIndex(f, bytes.fromhex(ih))
    if (index == -1):
        print("Not found")
    else:
        write(f, index, bytes.fromhex(oh))
    f.close()


if __name__ == '__main__':
    if (len(sys.argv) != 4):
        print("Usage: %s filename inhex outhex", sys.argv[0])
    else:
        replace(sys.argv[1], sys.argv[2], sys.argv[3])

319
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 10:29:16 »
to je hodne neefektivni. Pouzijte radeji mmap.

Tohle mě zajímá. Soubor se čte sekvenčně, pravděpodobně s bufferováním. Zapisuje se stejně dlouhý řetězec, tudíž se v souboru nic neposouvá. Co na tom vylepší mmap?

Asi bude rychlejší použít find(), o tom žádná. Ale pak člověk musí řešit přesahy apod. Já jsem napsal rychlořešení za dvě minuty, ani jsem netvrdil, že to je dokonalé řešení.

320
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 10:18:19 »
to je hodne neefektivni. Pouzijte radeji mmap.

Tohle mě zajímá. Soubor se čte sekvenčně, pravděpodobně s bufferováním. Zapisuje se stejně dlouhý řetězec, tudíž se v souboru nic neposouvá. Co na tom vylepší mmap?

321
Software / Re:Nahradenie hex stringu
« kdy: 09. 03. 2019, 08:45:25 »
Bez zaruky a bez krasy:

#!/usr/bin/env python3

import sys

def findIndex(f, sa):
    ri = 0
    ra = []
    sl = len(sa)
    while True:
        try:
            b = f.read(1)
            if (len(b) == 0):
                raise EOFError()
            ra.append(b[0])
        except EOFError:
            return -1
        ri += 1
        if (len(ra) > len(sa)):
            ra.pop(0)
        if (ra == sa):
            return ri - sl


def write(f, index, s):
    f.seek(index)
    f.write(s)


def replace(fn, ih, oh):
    f = open(fn, "rb+")
    index = findIndex(f, list(bytes.fromhex(ih)))
    if (index == -1):
        print("Not found")
    else:
        write(f, index, bytes.fromhex(oh))
    f.close()


if __name__ == '__main__':
    if (len(sys.argv) != 4):
        print("Usage: %s filename inhex outhex", sys.argv[0])
    else:
        replace(sys.argv[1], sys.argv[2], sys.argv[3])

322
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 06. 02. 2019, 07:25:52 »
Podle čeho usuzuješ? Třeba Rust & WASM je můj denní chléb. Používáme ho na knihovny kde chceme sdílet kód, který má ve výsledku běžet nativně, v NodeJS a v prohlížeči. Dřív bylo všechno v JS, ale to nám už na IoT zařízeních nevyhovuje, proto tahle cesta. Jeden zdroják a z něho generuju Rust crates (knihovny) a NPM balíčky pro použití v JS.

Ještě to není tak rozšířené, i když už je to lepší, protože nástroje jsou stále nedokonalé. Ve smyslu balení NPM balíčků (wasm-pack, ...), generování JS wrapperu (wasm-bindgen, ...), atd. Funguje to, ale má to své mouchy. A zároveň ještě nedávno nebylo úplně jednoduché napsat něco co běží všude - např. když jsi používal náhodné generátory, ... Teď už je to celkem pohoda.

A nechceš se pochlubit víc? Firma, nějaké technologické zajímavosti ohledně wasm targetu, jak dlouho používáte Rust, jestli jedete na stable verzi apod.? Díky předem.

323
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 03. 02. 2019, 15:27:54 »
Mě by zcela vážně zajímalo, proč se to slovo v češtině používá v této formě s “k”, když původní výslovnost je se “š” (niːʃ).

No a původní latinské slovo bylo nidus, co už. Ale že jsi to Ty, našel jsem v knihovně etymologický slovník a v něm se píše, že české nika vychází z italského nicchia.

324
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 03. 02. 2019, 14:10:34 »
To přijde, neboj se. Příští rok skončí Flash a otevře se nika pro výkonné, binární, multiplatformní grafické aplikace. Mrkni na tohle, Rust přeložený do wasm pluginů embedovaný v "normálním" Rustu, tohle je možná budoucnost výkonných, bezpečných a rozšiřitelných systémů: https://github.com/wasmerio/wasmer-rust-example
Co znamena slovo "nika" a preco ho tak casto pouzivas?

Používám ho často, protože se mi líbí. Nika (angl. niche) je nějaká oblast, kde se daří konkrétnímu druhu živočicha nebo rostliny. V přeneseném slova smyslu se poměrně často používá (aspoň v angličtině) jako označení nějaké domény, pro kterou se používá nějaký prog. jazyk, aplikace, knihovna... - zpracování textu, zvuku, generování obsahu webu, já nevím co dalšího.

325
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 18:03:55 »
některé hry jsou v Unity 3d, některé jsou v čistě webových herních enginech, většina newebových enginů podporuje kompilaci emscriptenem už minimálně 5 let. Webasm na tom moc nemění. Fungovalo to docela dobře i s asm.js. websm má stejné nevýhody, možná je načítání trochu rychlejší.

No jde o to, že asm.js i webasm jsou lepší platforma než "normální" JS. Nicméně by mě zajímalo, které čistě webové enginy se tam používají a v kterých hrách, pokud to máš v hlavě. A zajímalo by mě hlavně, jaké nevýhody máš na mysli.

326
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 16:44:17 »
Ja poznám tucet webov využívajúcich WASM, samozrejme vätšina je zahraničných, na Slovensku či v Česku je to akosi ešte nerozšírené... Ale každý deň navštivujem minimálne zo 4 weby (a to denne navštivujem len zo 15 webov celkovo), ktoré využívajú WASM,.. napríklad vo WASM beží implementácia StockFish 10+ Enginu na lichess.org (pokiaľ teda nemá k dispozícii PNACL). Takže neviem, ja bych nevravel že sa na WASM "sere"...

Kašli na něj, je to troll. Ale pokud máš další zajímavé odkazy na WASM weby, budu rád, tahle problematika mě zajímá.

327
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 14:31:41 »
po nejakom wasm ani pes neštekne
WASM je složitější na použití. BJSL (=běžný JS lepič) WASM nepochopí a JS je pro většinu uživatelů good enough.

WASM chápat nepotřebují. Ve zmiňovaném Unity byl překlad C# -> C++ -> JS, ten se nahradí, coby "pouhý assembler", vhodnějším WASM. A C# je poměrně přívětivý jazyk.

328
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 14:08:29 »
Tak mi pověz, kde jsou porty všech těch flashových her. Čistě náhodou o HTML5 problematice něco vím a náhrada 1:1, co se týče toolingu apod. to tedy není. Lepší se to, to jistě.

není poptávka. Jednoduché hry se dnes hrají na mobilu. V browseru si zahrajete i 3d hry. To flash neuměl.

Příklad?

Jo a že Flash neuměl 3D? Podle mě ano: https://www.adobe.com/devnet/flashplayer/stage3d.html

https://www.crazygames.com/t/webgl

OK, rozumím dobře, že je to psané v Unity 3D? Pak doporučuju tento odkaz: https://blogs.unity3d.com/2018/08/15/webassembly-is-here/

A přímo ve hrách na dané stránce se tahá například https://files.crazygames.com/unityloaders/UnityLoader-2018-3-3-wasmfix.js - možná to něco znamená.

329
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 14:00:19 »
Tak mi pověz, kde jsou porty všech těch flashových her. Čistě náhodou o HTML5 problematice něco vím a náhrada 1:1, co se týče toolingu apod. to tedy není. Lepší se to, to jistě.

není poptávka. Jednoduché hry se dnes hrají na mobilu. V browseru si zahrajete i 3d hry. To flash neuměl.

Příklad?

Jo a že Flash neuměl 3D? Podle mě ano: https://www.adobe.com/devnet/flashplayer/stage3d.html

https://www.crazygames.com/t/webgl

OK, rozumím dobře, že je to psané v Unity 3D? Pak doporučuju tento odkaz: https://blogs.unity3d.com/2018/08/15/webassembly-is-here/

330
Vývoj / Re:Čo sa stalo s WebAssembly?
« kdy: 02. 02. 2019, 13:34:11 »
Tak mi pověz, kde jsou porty všech těch flashových her. Čistě náhodou o HTML5 problematice něco vím a náhrada 1:1, co se týče toolingu apod. to tedy není. Lepší se to, to jistě.

není poptávka. Jednoduché hry se dnes hrají na mobilu. V browseru si zahrajete i 3d hry. To flash neuměl.

Příklad?

Jo a že Flash neuměl 3D? Podle mě ano: https://www.adobe.com/devnet/flashplayer/stage3d.html

Stran: 1 ... 20 21 [22] 23