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í
×
včera 13:00 | Komunita

Do 30. října se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 4. prosince 2018 do 4. března 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 38
21.9. 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 8
21.9. 20:33 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 10.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
21.9. 20:00 | Upozornění

Příspěvek Jak přežít plánovanou údržbu DNS na blogu zaměstnanců CZ.NIC upozorňuje na historicky poprvé podepsání DNS root zóny novým klíčem dne 11. října 2018 v 18:00. Software, který nebude po tomto okamžiku obsahovat nový DNSSEC root klíč, nebude schopen resolvovat žádná data. Druhým důležitým datem je 1. února 2019, kdy významní výrobci DNS softwaru, také historicky poprvé, přestanou podporovat servery, které porušují DNS standard

… více »
Ladislav Hagara | Komentářů: 6
21.9. 15:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 156. brněnský sraz, který proběhne v pátek 21. září od 18:00 v restauraci Na Purkyňce na adrese Purkyňova 80.

Ladislav Hagara | Komentářů: 0
21.9. 13:22 | Nová verze

Alan Griffiths z Canonicalu oznámil vydání verze 1.0.0 display serveru Mir (GitHub, Wikipedie). Mir byl představen v březnu 2013 jako náhrada X serveru a alternativa k Waylandu. Dnes Mir běží nad Waylandem a cílen je na internet věcí (IoT).

Ladislav Hagara | Komentářů: 0
20.9. 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 5
20.9. 21:32 | Zajímavý projekt

Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.

Fluttershy, yay! | Komentářů: 1
20.9. 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 12
20.9. 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (20%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 391 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Cron descriptor

19.1.2016 19:13 | Přečteno: 1741× | Výběrový blog | poslední úprava: 19.1.2016 22:30

Pro jeden Pythoní projekt na kterém pracuji jsem potřeboval převést CRONový zápis (12 9 * * *) na "human readable" string, zde se chci podělit o výsledek.

Po chvilce hledání na google jsem zjistil že nic takového pro Python neexistuje (nebo je projekt ve velmi raném/nepoužitelném stádiu). Po prvních pokusech a zjištění ze to kvůli hromadě vyjímek nebude jen pár řádek kódu, mě napadlo že bych se mohl podívat zda li tohle již někdo neřešil pro jiné jazyky. Nakonec jsem narazil na celkem slušnou .NET implementaci (Rozluštění záhady proč někdo tvoří parser na UNIXový CRON v .NETu necháme pro Akta X) kterou jsem se rozhodl naportovat do Pythonu (+ pár menších vylepšení).

Co to umí ?

Instalace

cron-descriptor je dostupný skrze pip:
(pokud zde mate velke bile misto, tak pokracovani je nize pod pravym sidebarem... nevim jak tento bug z me strany opravit)

pip install cron-descriptor

Příklad použití

from cron_descriptor import Options, CasingTypeEnum, DescriptionTypeEnum, ExpressionDescriptor

# Jednoduše
print(ExpressionDescriptor("*/10 * * * *"))

# Pokročilé nastavení (viz Options.py)
descripter = ExpressionDescriptor("*/10 * * * *", throw_exception_on_parse_error = True, casing_type = CasingTypeEnum.Sentence, use_24hour_time_format = True)
# get_description uses DescriptionTypeEnum.FULL by default:
print(descripter.get_description())
# Nebo
print("{}".format(descripter))

Příklad výstupu en_US

# 24 hodinový formát
17 * * * * -> At 17 minutes past the hour
25 6 * * * -> At 06:25
47 6 * * 7 -> At 06:47, only on Saturday
52 6 1 * * -> At 06:52, on day 1 of the month
# 12 hodinový formát
17 * * * * -> At 17 minutes past the hour
25 6 * * * -> At 06:25 AM
47 6 * * 7 -> At 06:47 AM, only on Saturday
52 6 1 * * -> At 06:52 AM, on day 1 of the month

Výsledek najdete na:

https://github.com/Salamek/cron-descriptor
PR's jsou vítány

       

Hodnocení: 83 %

        špatnédobré        

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

Komentáře

Vložit další komentář

19.1.2016 19:58 luv | skóre: 18 | blog: luv
Rozbalit Rozbalit vše Re: Cron descriptor
Hezky. Pristup prepsat existujici implementaci v jinem jazyce je urcite mnohem lepsi nez zacinat od nuly.

Btw. trochu si se tim .NET nechal unest a zustal ti tam CamelCase ;).
Salamek avatar 19.1.2016 20:11 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
snake_style je vice mene doporucen pro Python (variable/method names) ale dokud na me kvuli tomu nekvici PEP8...
Navic se to da prevest konverznim scriptem tam a naspatek, nevidim v tom nejaky extremni problem... ale asi to jeste udelam... Pythonazi jsou na tohle haklivi jak kocka na vodu :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
kyknos avatar 20.1.2016 16:48 kyknos | skóre: 18 | blog: Quid novi? | Ranša Rosa
Rozbalit Rozbalit vše Re: Cron descriptor
hloupost, moje kocka miluje vodu :) jako spousta mainek
So the Nationalists and the Socialists have the same policy on Brexit. They should get together and form a...
Salamek avatar 20.1.2016 16:57 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Jo moje taky, ale uz je to takovy vseobecne uznavany FUD :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Salamek avatar 19.1.2016 22:31 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Ok, predelano tak aby prosel pep8-naming
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
19.1.2016 23:49 Divný host
Rozbalit Rozbalit vše Re: Cron descriptor
Pristup prepsat existujici implementaci v jinem jazyce je urcite mnohem lepsi nez zacinat od nuly.
Ale je to menší zábava (respekt autorovi).
20.1.2016 09:23 Halis
Rozbalit Rozbalit vše Re: Cron descriptor
Podpora Pythonu 2.7-3.4
Jak je toho dosaženo? Dle zdrojaku mám dojem, že se prostě nepoužívá žádná kolizní syntaxe. Jak se to dá řešit?
Bystroushaak avatar 20.1.2016 10:41 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Cron descriptor
Většina pythonu je nekolizní. Některé věci taky řeší from future import ..
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
Salamek avatar 20.1.2016 15:00 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Neni tam pouzita zadna kolizni syntaxe, presne tak :-)
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
20.1.2016 11:04 chrono
Rozbalit Rozbalit vše Re: Cron descriptor
Gettext je na preklad takýchto textov viac-menej nepoužiteľný. :)
pavlix avatar 20.1.2016 11:11 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Důvod?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Josef Kufner avatar 20.1.2016 12:26 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: Cron descriptor
Celá třída ExpressionDescriptor je názorná ukázka toho, jak lokalizaci nedělat. Důvod je prostý, ve všech jazycích to bude mít anglický slovosled.

Navíc pokud budeš mít stejné slovo použité v jiném kontextu jinde v aplikaci, tak to ani nebude dávat smysl. Například takové:
#: ExpressionDescriptor.py:218
#, python-brace-format
msgid "at {0}"
msgstr "v {0}"
Pokud by stejným stylem bylo udělaných vět více, může být v některých použita špatná předložka. Letmý pohled do slovníku rychle ukáže, kolik možností překladu podle kontextu se nabízí – úryvek ze slovnik.cz:
at - k
at - na (místo, čas, stav, pohyb, cíl)
at - po (cena, množství, např.o ceně k)s
at - v (místo, čas, stav)
at - z
at - u (těsně)
at - o (čas, stav)
at - při (čas, stav, činnost)
at - za (čas, stav)
at - alespoň
at - jak budete mít čas
at - jak to je
at - ke
at - těsně u (2. p.)
at - ve
Správný přístup je mít jeden řetězec s celou větou se zástupnými symboly a tu přeložit. Nikoliv slepovat krátké samostatně překládané řetězce do věty s anglickým slovosledem.

Naneštěstí v tomto případě to je tak trochu pointa celého toho programu. Dalo by se to zlepšit použitím delších fragmentů, ale ani to ideální nebude. Proto například Osmand má hlasovou navigaci implementovanou v Prologu a každý jazyk má vlastní pravidla, jak skládat věty pro různá oznámení. Pak můžeš mít správně slovosled podle daného jazyka, ale i skloňování, časování a další vymoženosti.
Hello world ! Segmentation fault (core dumped)
pavlix avatar 20.1.2016 12:38 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Na to jsem se ale neptal. Ptal jsem se na důvod, proč je Gettext pro daný účel nepoužitelný. Chápu, že skládání vět není jeho doménou, ale na první pohled z toho kódu není vidět, že by zrovna tento program potřeboval nějaké komplexnější skládání. Proto mě zajímalo nějaké vodítko, jestli je ten „výkřik do tmy“ založený na nějakých konkrétních argumentech nebo příkladech.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
20.1.2016 14:14 chrono
Rozbalit Rozbalit vše Re: Cron descriptor
Práve preto, že nie všetky jazyky využívajú anglický slovosled. Tiež nemajú len dva tvary pre jednotné a množné číslo, ale to sa dá opraviť aj s použitím gettext. Ďalší problém je s vyjadrením radových čísloviek, takže teraz to vypisuje niečo ako "on day 1, 5, and 6 of the month".

Nedávno som niečo podobné robil pre recurrence rule a podobných problémov je tam dosť veľa a časť z nich je rovnaká pre všetky projekty ktoré vyjadrujú čas/dátum v ľudsky zrozumiteľnom tvare (ak má ísť naozaj o tvar, ktorému majú bez problémov rozumieť ľudia).
pavlix avatar 20.1.2016 14:48 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Nedávno som niečo podobné robil pre recurrence rule a podobných problémov je tam dosť veľa a časť z nich je rovnaká pre všetky projekty ktoré vyjadrujú čas/dátum v ľudsky zrozumiteľnom tvare (ak má ísť naozaj o tvar, ktorému majú bez problémov rozumieť ľudia).
Vždycky když něco takového čtu, tak si říkám, že asi nejsem člověk. Nejlépe se mi používá tvar, který víceméně standardizuje ISO. Všechno vyjádřeno číselně. Všechna čísla doplněná zleva nulami do jednotného zarovnání. Všechna čísla seřazena podle váhy od největší po nejmenší. Paradoxně je takový způsob ze všech řetězcových zápisů nejvýhodnější i pro počítač.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
20.1.2016 18:13 chrono
Rozbalit Rozbalit vše Re: Cron descriptor
To "on day 1 of the month", s prižmúrením očí, dáva v angličtine zmysel, ale český preklad "v 1 den v měsíci" má iný význam.

PS: A len tak pre zaujímavosť, ako by vyzeralo vyjadrenie crontab v "ISO" formáte (a prípadne aj s príkladom pre recurrence rule).
pavlix avatar 20.1.2016 18:48 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
To "on day 1 of the month", s prižmúrením očí, dáva v angličtine zmysel, ale český preklad "v 1 den v měsíci" má iný význam.
To bude asi reakce na úplně jiný komentář.
PS: A len tak pre zaujímavosť, ako by vyzeralo vyjadrenie crontab v "ISO" formáte (a prípadne aj s príkladom pre recurrence rule).
Oni definují formát data a času. Musel bys tam doplnit nějaké ty zápisy s crontab. Já osobně nemám problém používat crontab zápis tak jak je, bez nějakých přepisů.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
20.1.2016 18:53 luv | skóre: 18 | blog: luv
Rozbalit Rozbalit vše Re: Cron descriptor
Tam by to fakt chtelo predelat na "v 1. den v měsíci"
20.1.2016 14:14 Petr
Rozbalit Rozbalit vše Re: Cron descriptor
No a proto gettext nabízí možnost doplnit kontext u stejných řetězců, které se pak překládají jinak.
Salamek avatar 20.1.2016 15:05 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Pro zatim je to dostacujici, je treba aby BFU pochopil onen text, ne aby prosel pres Grammarnazzi ;-)
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
20.1.2016 16:40 luv | skóre: 18 | blog: luv
Rozbalit Rozbalit vše Re: Cron descriptor
Jojo, s timto urcite nema cenu se babrat dokud nebude potreba.
20.1.2016 18:16 chrono
Rozbalit Rozbalit vše Re: Cron descriptor
Mohlo sa aspoň použiť ngettext, aby aspoň tvary pre množné čísla vyzerali rozumne (a nie ako teraz: každých 2 sekund).
Salamek avatar 20.1.2016 18:26 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Je tam 13! prekladu ktere jsem natahnul importnim scriptem z puvodni implementace, kdyz to jakkoliv predelam tak ztratim vsechny preklady krome anglictiny a cestiny, dale jsou tam unitesty kontrolujici validitu vystupniho stringu EN ktere bych musel take predelat... jsou to TUNY zbytecne ("detaily") prace pro kterou ted nemam prostor... mozna by sel implementovat ngettext bez rozbyti cehokoliv ale ted to proste nestoji za to...
Samozrejme je to OSS, pokud se na to citis, udelej fork a dodelej to tam, s radosti prijmu tvuj PR :-)
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Bystroushaak avatar 20.1.2016 11:19 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Cron descriptor
Budu trochu hnidopich a vypíšu pár myšlenek, které mě napadají, když čtu ten zdroják. Rozhodně to nemyslím jako kritiku, jen jako návrhy k vylepšení dobrého projektu.
"""
 Converts a Cron Expression into a human readable string
"""


class ExpressionDescriptor(object):
    m_special_characters = ['/', '-', ',', '*']
    m_expression = ''
    m_options = None
    m_expression_parts = []
    m_parsed = False
Proč jsi použil tyhle divné docstringy? V pythonu bývá zvykem používat jako docstring první řetězec v těle funkce. Ty používáš všechny před tělem funkce. Nápověda tak nefunguje:
bystrousak:~/Plocha/cron-descriptor,0$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from cron_descriptor.ExpressionDescriptor import ExpressionDescriptor
>>> help(ExpressionDescriptor)
Help on class ExpressionDescriptor in module cron_descriptor.ExpressionDescriptor:

class ExpressionDescriptor(__builtin__.object)
 |  Methods defined here:
 |  
 |  __init__(self, expression, options=None, **kwargs)
 |  
 |  __repr__(self)
 |  
 |  __str__(self)
 |  
 |  format_time(self, hour_expression, minute_expression, second_expression='')
 |  
 |  get_day_of_month_description(self)
 |  
 |  get_day_of_week_description(self)
 |  
 |  get_description(self, type=1)
 |  
 |  get_full_description(self)
 |  
 |  get_hours_description(self)
Správně by to mělo vypadat takhle:
class ExpressionDescriptor(object):
    """
    Converts a Cron Expression into a human readable string
    """

    m_special_characters = ['/', '-', ',', '*']
    m_expression = ''
    m_options = None
    m_expression_parts = []
    m_parsed = False
Což pak v help()u vypadá:
Help on class ExpressionDescriptor in module cron_descriptor.ExpressionDescriptor:

class ExpressionDescriptor(__builtin__.object)
 |  Converts a Cron Expression into a human readable string
 |  
 |  Methods defined here:
Nejde o problém jen u interní funkce help(), ale i různých nápověd v IDE a generování dokumentace. Když už se s tou dokumentací píšeš, tak mi přijde docela škoda jí takhle „zahodit“.

Pak taky vidím, že používáš vlastní Enum:
class DescriptionTypeEnum(object):
    FULL = 1
    TIMEOFDAY = 2
    SECONDS = 3
    MINUTES = 4
    HOURS = 5
    DAYOFWEEK = 6
    MONTH = 7
    DAYOFMONTH = 8
    YEAR = 9
Což by pro budoucí úpravy bylo lepší zapsat spíš jako:
class DescriptionTypeEnum(object):
    _cnt = (x for x in range(100))
    FULL = next(_cnt)
    TIMEOFDAY = next(_cnt)
    SECONDS = next(_cnt)
    MINUTES = next(_cnt)
    HOURS = next(_cnt)
    DAYOFWEEK = next(_cnt)
    MONTH = next(_cnt)
    DAYOFMONTH = next(_cnt)
    YEAR = next(_cnt)
Není to sice nutnost, ale může ti to ušetřit nepříjemné bugy, protože se to stará o unikátnost hodnoty.

Potom tohle
            if type == DescriptionTypeEnum.FULL:
                description = self.get_full_description()
            elif type == DescriptionTypeEnum.TIMEOFDAY:
                description = self.get_time_of_day_description()
            elif type == DescriptionTypeEnum.HOURS:
                description = self.get_hours_description()
            elif type == DescriptionTypeEnum.MINUTES:
                description = self.get_minutes_description()
            elif type == DescriptionTypeEnum.SECONDS:
                description = self.get_seconds_description()
            elif type == DescriptionTypeEnum.DAYOFMONTH:
                description = self.get_day_of_month_description()
            elif type == DescriptionTypeEnum.MONTH:
                description = self.get_month_description()
            elif type == DescriptionTypeEnum.DAYOFWEEK:
                description = self.get_day_of_week_description()
            elif type == DescriptionTypeEnum.YEAR:
                description = self.get_year_description()
            else:
                description = self.get_seconds_description()
By bylo asi elegantněji zapsáno jako:
            choices = {
                DescriptionTypeEnum.FULL: self.get_full_description,
                DescriptionTypeEnum.TIMEOFDAY: self.get_time_of_day_description,
                DescriptionTypeEnum.HOURS: self.get_hours_description,
                Descrip
tionTypeEnum.MINUTES: self.get_minutes_description,
                DescriptionTypeEnum.SECONDS: self.get_seconds_description,
                DescriptionTypeEnum.DAYOFMONTH: self.get_day_of_month_description,
                DescriptionTypeEnum.MONTH: self.get_month_description,
                DescriptionTypeEnum.DAYOFWEEK: self.get_day_of_week_description,
                DescriptionTypeEnum.YEAR: self.get_year_description,
            }
            
            description = choices.get(type, self.get_seconds_description)()
Nehledě tedy na to, že si tím názvem proměnné shadowuješ interní funkci type().
for i in range(0, len(hour_parts)):
Range jede vždy od nuly. Sice to ničemu nevadí, ale ani to nic nepřidává.
if len(description) > 0:
Obecně všechny tyhle kontroly se dají přepsat na elegantnější
if description:
Tohle
        return self.get_segment_description(self.m_expression_parts[0],
                                            _("every second"),
                                            lambda s: s.zfill(2),
                                            lambda s: _(
                                            "every {0} seconds").format(s),
                                            lambda s: _(
                                            "seconds {0} through {1} past the minute"),
                                            lambda s: _("at {0} seconds past the minute"))
by asi vypadalo podstatně líp, kdybys to rozepsal takhle:
        return self.get_segment_description(
            self.m_expression_parts[0],
            _("every second"),
            lambda s: s.zfill(2),
            lambda s: _("every {0} seconds").format(s),
            lambda s: _("seconds {0} through {1} past the minute"),
            lambda s: _("at {0} seconds past the minute")
        )
Já vím, je to čistě otázka vkusu, ale fakt mi to přijde podstatně čitelnější a nemusíš pak zbytečně zalamovat ty výrazy, protože se ti nevešly na konec řádku.

Asi by se toho našlo víc, tohle mě napadlo jen tak v rychlosti.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
20.1.2016 13:27 Radek Novacek | skóre: 3
Rozbalit Rozbalit vše Re: Cron descriptor
Ješte bych doplnil, že místo:
for i in range(0, len(hour_parts)):
    ...
    hour_parts[i]
    ...
je lepší (pythoničtější) psát:
for i, hour_part in enumerate(hour_parts):
    ...
    hour_part
    ...
Bystroushaak avatar 20.1.2016 14:06 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Cron descriptor
Mě to napadlo, ale byl jsem líný vzpomínat / znova otevírat soubor, jestli tam někde používá i samotnou hodnotu, nebo jen indexy. Ono těhle optimalizací bych tam našel víc, už samotná ta architektura je místy docela zbytečně rozobjektovaná, jak mají právě ve zvyku lidi z javy / C#.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
Salamek avatar 20.1.2016 19:06 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Tak jsem to jeste trochu poupravil, vicemene vse krome upravy Enum, tve reseni se mi moc nelibi a vice uprav tam asi stejne jen tak nebude... Python3 tohle resi a je i pip balicek pro 2.7 ale nechci pridavat dalsi zbytecnou zavyslost, takze to necham tak jak to je...

Jo a misto psani sem jsi mohl rovnou udelat fork a poslat PR :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Bystroushaak avatar 20.1.2016 20:44 Bystroushaak | skóre: 33 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: Cron descriptor
Jo a misto psani sem jsi mohl rovnou udelat fork a poslat PR :-D
Nerad dělám stylistické pull requesty, protože nemusí být začleněny, protože se ti něco nemusí líbit. Pak je to kopa práce k ničemu. Tohle byly spíš rady, než že by šlo o něco podstatného.
My sustenance is information. My interventions are hidden. I increase as I learn. I compute, so I am.
20.1.2016 15:32 pavel
Rozbalit Rozbalit vše Re: Cron descriptor
Zrovna "Descriptor" je dost nešťastný název, neboť v kontextu pythonu je deskriptor třída, která implementuje metody __get__, __set__, __delete__.

Vhodnější by byl "Decoder".
Salamek avatar 20.1.2016 16:26 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Wow to jsem si vubec neuvedomil, asi to jeste rychle prejmenuji dokud je cas...
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
21.1.2016 09:28 Odin1918 | skóre: 4 | blog: Valhalla
Rozbalit Rozbalit vše Re: Cron descriptor
Zajimave, libi se mi to. Ale marne si lamu hlavu nad use cases tohoto projektu. Cron resim jednou za rok a kdyz, tak mi nedela problem klasicky crontab zapis. Faktem je, ze s timto to bude asi pohodlnejsi, ale nevim, jestli nebudu liny poustet dalsi software.
Salamek avatar 22.1.2016 00:20 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
No use case je SW kde je treba konfigurovat cron nebo cron like zapis uzivateli kteri neovladaji cron syntaxi:
  • V prehledu cronem spoustenych prikazu chteji videt kdy se dany prikaz spousti
  • Overeni ze jimi zapsany cron se spousti tak jak si predstavovali

To se muze hodit napriklad:
  • vsem webhosterum kteri umoznuji editovat crontab z weboveho rozhrani (a ted zobrazuji pouze cron zapis v prehledu)
  • v aplikacich pro spravu serveru jako ISPmanager/ISPconfug, Webmin a podobne
  • v aplikaci co ted tvorim :-P
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Dreit avatar 24.1.2016 19:21 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
Rozbalit Rozbalit vše Re: Cron descriptor

Já se v takových případech zeptám Googlu, jsou stránky kde není problém naklikat si chování a vyplivne to zápis pro CRON. Nevím ale jistě jestli to jde i obráceně, tedy vložit a nechat si vypsat co se bude dít

Nope
Salamek avatar 24.1.2016 22:23 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
No k tomu druhemu slouzi tenhle projekt :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Petr Tomášek avatar 24.1.2016 11:53 Petr Tomášek | skóre: 37 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Cron descriptor
Nebylo by jednodušší si přečíst dokumentaci?
multicult.fm | monokultura je zlo | welcome refugees!
Josef Kufner avatar 24.1.2016 15:31 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: Cron descriptor
To naráží na základní problém. Uživatelé neumí číst.
Hello world ! Segmentation fault (core dumped)
Salamek avatar 24.1.2016 16:16 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
A nebylo by lepsi kdyby jsme vsichni byli IT guru ? No jasne ze bylo, zkus si zakaznikovi ale rict, "Nastudujte si dokomentaci ke CRONU" pak to ale uz s nejvetsi pravdepodobnosti nebude tvuj zakaznik :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
pavlix avatar 24.1.2016 16:28 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Typická zákazník nepotřebuje ani to, o čem se tu bavíme.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Salamek avatar 24.1.2016 16:59 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Zakaznik nepotrebuje na svem hostingu stavovat cron sluzby ? Ok to jim priste reknu, urcite budou velmi nadseni :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
pavlix avatar 24.1.2016 17:10 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Tvůj sarkasmus bohužel není na místě. Člověk, který nezvládá nastavit cron není technik. Člověk, který není technik, nemá zasahovat do serverů. Mimochodem na opravování systémů, do kterých hrabal kdekdo, jsem už taky v životě něco málo vydělal, takže je to spíše takové přátelské doporučení, pokud bych se někdy zase věnoval více businessu, tak samozřejmě budu rád, že to tak lidi dělají. :)
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Salamek avatar 24.1.2016 17:22 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Zrovna konfigurator CRONu se da napsat tak aby uzivatel nic nerozbyl... protoze se tam dostane jen to co tam sam v te aplikaci pustis... Hromada lidi co potrebuje provozovat nejaky web za par supu potrebuje i pridat nejake cron sluzby... to je proste kruta realita, podivej se na jakykoliv webhosting, vsude je moznost nastavit si cron sluzby z weboveho rozhrani... a zrovna k tomuhle tyto cron "zjednodusovaky" slouzi... Nikdo kdo provozuje web hosting nebude nastavovat CRON na pozadani, stejne jako zakaznici budou vyhledavat hosting kde si tohle mohou co nejjednodušeji nastavit.

Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
pavlix avatar 24.1.2016 17:31 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Zrovna konfigurator CRONu se da napsat tak aby uzivatel nic nerozbyl... protoze se tam dostane jen to co tam sam v te aplikaci pustis...
To ovšem pak není konfigurátor cronu, ale custom plánovač na vybrané akce. Jestli na spouštění úloh používá vlastní proces nebo cron je jen implementační detail. Webhosting tady asi řešit nebudeme. :)
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Salamek avatar 24.1.2016 22:25 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Prijde mi ze uz resis ptakoviny...
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
pavlix avatar 24.1.2016 23:13 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Cron descriptor
Tak to jsem ve správné diskuzi.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
xxx avatar 27.1.2016 22:24 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Cron descriptor
Ja to mam pres dalsi level. Aneb zkus obchodnikov rict, at zakaznikovi zkusi rict, ze kdyz si porizuje Linuxovy produkt, ze musi mit i Linuxoveho admina. :-)
Please rise for the Futurama theme song.
Salamek avatar 28.1.2016 00:02 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: Cron descriptor
Mit k linuxovemu produktu linuxoveho admina je samozrejme nejlepsi reseni :)
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.

Založit nové vláknoNahoru

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