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 04:22 | Nová verze

    Knihovna FFmpeg byla vydána ve verzi 8.0 „Huffman“. Přibyla mj. podpora hardwarově akcelerovaného kódování s využitím API Vulcan, viz seznam změn.

    Fluttershy, yay! | Komentářů: 0
    včera 17:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2024 (pdf). V loňském roce NÚKIB evidoval dosud nejvíce kybernetických bezpečnostních incidentů s celkovým počtem 268. Oproti roku 2023 se však jedná pouze o drobný nárůst a závažnost dopadů evidovaných incidentů klesá již třetím rokem v řadě. V minulém roce NÚKIB evidoval pouze jeden velmi významný incident a významných incidentů bylo zaznamenáno 18, což oproti roku 2023 představuje pokles o více než polovinu.

    Ladislav Hagara | Komentářů: 1
    včera 13:55 | Komunita

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.

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

    Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.

    Ladislav Hagara | Komentářů: 24
    včera 04:22 | IT novinky

    Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.

    Ladislav Hagara | Komentářů: 1
    21.8. 22:22 | Nová verze

    Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    21.8. 21:55 | Komunita

    Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB

    Ladislav Hagara | Komentářů: 0
    21.8. 14:55 | IT novinky

    Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.

    Ladislav Hagara | Komentářů: 5
    21.8. 12:44 | Bezpečnostní upozornění

    Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze

    … více »
    Ladislav Hagara | Komentářů: 1
    20.8. 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 25
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (76%)
     (10%)
     (4%)
     (4%)
     (6%)
     (0%)
    Celkem 49 hlasů
     Komentářů: 6, poslední 21.8. 13:35
    Rozcestník

    Dotaz: Vnořené pole array

    16.6.2013 14:52 bugme | skóre: 16 | blog: bugme
    Vnořené pole array
    Přečteno: 608×

    Jak zapsat něco takového?:

    SERVERS=()

    SERVERS[ftb][name]='Name'

    SERVERS[ftb][service]='abc.jar'

    SERVERS[ftb][dir]='/var/abc'

     

    SERVERS[van][name]='Van'

    SERVERS[van][service]='van.jar'

    SERVERS[van][dir]='/var/van'


    Řešení dotazu:


    Odpovědi

    16.6.2013 15:22 ZAH | skóre: 43 | blog: ZAH
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Doba zápočtů ? Jseš si jist že potřebuješ pole. Například v javě.
    public class TestServers {
    
        private HashMap< String, Map< String, Object>> servers;
    
        protected HashMap< String, Map< String, Object>> getServers() {
            if (servers == null)
                servers = new HashMap< String, Map< String,Object>>();
            return servers;
        }
        
        public Object getValue(String server,String key){
            return getServers().get(server).get(key);
        }
        
        public void putValue(String server,String key,Object value){
            getServers().get(server).put(key, value);
        }
    }
    
    16.6.2013 15:30 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Počítám, že se jedná o bash.

    Nejlepší způsob jak pracovat s vícerozměrnými poli je nepoužívat bash a naučit se Python, Ruby, prostě libovolný normální programovací/skriptovací jazyk s podporou rozumných datových typů.

    Druhým způsobem je emulovat vícerozměrná pole klíči s oddělovači, jako třeba SERVERS['ftb#name']='Name'. Pochopitelně pak nejde jednoduše udělat nic jako SERVERS['ftb'].
    When your hammer is C++, everything begins to look like a thumb.
    17.6.2013 20:54 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Resp. ono není problém přejít na python :) Jen jak na to pole??

    17.6.2013 21:06 potato
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Python samozřejmě má normální vysokoúrovňové datové struktury jako asociativní pole:
    SERVERS = {
       'ftb': {
           'name': 'Name',
           'service': 'abc.jar',
           'dir': '/var/abc',
       },
       'van': {
            'name': 'Van',
            'service': 'van.jar',
            'dir': '/var/van',
       },
    }
    
    Můžeš to klidně plnit i postupně nebo jakkoli...
    17.6.2013 22:13 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Když jsme u toho. Půjde vůbec použít v konzoli. -> příkaz /var/script start ....? Jak zachytim to slovo start.

    18.6.2013 08:08 potato
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Co?
    18.6.2013 09:03 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    No když mám bash script, tak mohu volat /var/script start. Zachtim si slovo start a případně i nějaké argumenty. Jak toto udělat u toho pythonu?

    Tarmaq avatar 18.6.2013 09:11 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Don't panic!
    18.6.2013 09:17 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    nefunguje.

    NameError: name 'argv' is not defined

    18.6.2013 09:19 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Joo už to mám díky. :)

    17.6.2013 18:21 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Ano jedná se o bash, viz štítek.

     

    Jde o to, že mám script na spuštění serveru a tyto proměnné jsou potřeba pro server. Aktuálně mám dva.

    Proto jsem chtěl toto pole a pak to projet přes 'foreach' a spustit po nastartování serveru.

     

    Samozřejmě mám pak nějaké funkce jako restart stop, které chci pouštět pomocí restart name, tedy: restart van nebo restart ftb

    18.6.2013 11:18 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Jak v python spustit tyto příkazy:

    pgrep -u root -f $SERVICE > /dev/null

    ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVERJAR

     

    Pořád to u pomlček řve něco o mezerách :/

    18.6.2013 16:10 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Vnořené pole array
    from __subprocess__ import print_function
    
    import subprocess
    import re
    
    SERVICE="foobar"
    NULL=open("/dev/null", "wb")
    
    #pgrep -u root -f $SERVICE > /dev/null
    subprocess.call(["pgrep", "-u", "root", "-f", SERVICE], stdout=NULL)
    
    #ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVERJAR
    # ^^^ neni lepsi pgrep screen?
    SERVERJAR="hamspam"
    for line in subprocess.check_output(["ps", "ax"]):
      if re.search(SERVERJAR, line):
          print(line, end='')
    
    jinak viz dokumentace
    When your hammer is C++, everything begins to look like a thumb.
    18.6.2013 16:14 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Vnořené pole array
    První řádek má být from __future__ import print_function
    When your hammer is C++, everything begins to look like a thumb.
    18.6.2013 18:53 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Díky. Ale to zapisování v pthon je nějak divné-

    Potřebuji spustit tennto příkaz:

     

    'cd ' + getServer()['dir'] + ' && screen -dmS ' + getServer()['screen'] + ' java -Xms512M -Xmx2048M -XX:MaxPermSize=1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -jar ' + getServer()['service'] + ' nogui'

    Řešení 1× (bugme (tazatel))
    18.6.2013 19:36 potato
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Tak přesně tohle nedělej. Namísto cd můžeš prostě změnit ten adresář (os.chdir). Zbytek prostě nastrkej do pole, každý argument jeden prvek, a nekombinuj stringy.

    Pokud by to mělo být něco složitějšího, tak bych už vůbec nematlal příkazy ze stringů, ale vytvořil wrapper shell skript, který má dostat jako argumenty věci, které se mění, všechny složitosti dal do shell skriptu a ten prostě spustil z pythonu s argumenty, které budou pouze ty hodnoty, které se mění.
    18.6.2013 20:56 bugme | skóre: 16 | blog: bugme
    Rozbalit Rozbalit vše Re: Vnořené pole array

    Díky za rady :)

    Ještě jedna věc. Jak spustit příkaz s parametrem po přihlášení?

    Potřebuji spustit soubor /etc/init.d/minecraft startAll

    18.6.2013 21:50 potato
    Rozbalit Rozbalit vše Re: Vnořené pole array
    Zahodit /etc/init.d skript, najít příčetný spouštěcí mechanismus, tedy systemd unitu, protože každý normální program už ji má, tu povolit přes systemctl enable.

    Pokud neexistuje, vytvořit systemd unitu. Vyžaduje přepsat ten minecraft skript -- který zjevně ani nefunguje s normálním SysV start/stop, ale potřebuje jakési speciální příkazy -- do něčeho použitelnějšího.

    Pokud není ochota cokoli udělat pořádně, tak to fakenout (a nedivit se, že je to rozbité):
    [Unit]
    Description=Whatever
    # Put dependences here.
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/etc/init.d/minecraft startAll
    
    nebo tak něco.

    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.