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 - kojot4

Stran: 1 ... 5 6 [7] 8 9 ... 15
91
Studium a uplatnění / Re:Praktická matematika
« kdy: 23. 09. 2017, 00:50:09 »
Kód: [Vybrat]
import math

def sets(l):
    return map(set, [[]] * l)

class Sudoku(object):
    def __init__(self, lol):
        self.lol = lol

    def is_valid(self):
        l = len(self.lol)
        size = int(math.sqrt(l))
        cols, rows, sq = sets(l), sets(l), sets(l)
        for i, row in enumerate(self.lol):
            rows[i] = set(row)
            for j, col in enumerate(row):
                if type(col) is int and col > 0 and col <= l:
                    cols[j].add(col)
                    sq[i/size * size + j/size].add(col)
        return all([map(len, i).count(l) == l for i in [cols, rows, sq]])

goodSudoku = Sudoku([
  [1,4, 2,3],
  [3,2, 4,1],

  [4,1, 3,2],
  [2,3, 1,4]
])

print(goodSudoku.is_valid())

Navíc to nějak nefunguje...

Kód: [Vybrat]
Traceback (most recent call last):
  File "C:/Users/koss4/PycharmProjects/untitled/test.py", line 30, in <module>
    print(goodSudoku.is_valid())
  File "C:/Users/koss4/PycharmProjects/untitled/test.py", line 15, in is_valid
    rows[i] = set(row)
TypeError: 'map' object does not support item assignment

Process finished with exit code 1

92
Studium a uplatnění / Re:Praktická matematika
« kdy: 23. 09. 2017, 00:48:00 »
Jsem zvědavý na řešení od Prýmka
Ode mě nic nečekej, já žádnej algoritmickej lumen nejsu. A už vůbec se nebudu prsit nějakým řešením tady veřejně :)

škoda, mohli bychom se přiučit. O algoritmus nejde. Jde o styl.

Kód: [Vybrat]
import math

def sets(l):
    return map(set, [[]] * l)

class Sudoku(object):
    def __init__(self, lol):
        self.lol = lol

    def is_valid(self):
        l = len(self.lol)
        size = int(math.sqrt(l))
        cols, rows, sq = sets(l), sets(l), sets(l)
        for i, row in enumerate(self.lol):
            rows[i] = set(row)
            for j, col in enumerate(row):
                if type(col) is int and col > 0 and col <= l:
                    cols[j].add(col)
                    sq[i/size * size + j/size].add(col)
        return all([map(len, i).count(l) == l for i in [cols, rows, sq]])

nástřel bez numpy, v pythonu 2. asi by to šlo zkrátit vyhozeněmí některtých testů a spojením těch třech polí do jednoho.

To je nějaký blackbox, ne :)

93
Studium a uplatnění / Re:Praktická matematika
« kdy: 23. 09. 2017, 00:42:34 »
to zrejme nie je dobre sudoku (druhy a treti riadok, lave dva stvorce) a program pise aj tak "True".

Dobrá připomínka, bohužel Codewars při parsování vyhodil nějakou šílenou systémovou chybu a testy jsem nepsal, takže to není moc dobře otestované...

No snad takhle to bude dobré

Kód: [Vybrat]
import numpy, math

class Sudoku(object):
    def __init__(self, m):
        self.matrix = numpy.matrix(m)
    def is_valid(self):
        self.mysum = sum(x for x in range(1,len(self.matrix)+1))
        self.mylen = int(math.sqrt(len(self.matrix)))
        # iterate over submatrixes
        for x in range(0,self.mylen):
            for y in range(0, self.mylen):
                submatrix = self.matrix[x*self.mylen:x*self.mylen+self.mylen,y*self.mylen:y*self.mylen+self.mylen]
                for i in range(1,self.mylen):
                    if i not in submatrix.A1.tolist():
                        return False
                if numpy.sum(submatrix) != self.mysum:
                    return False
        results = self.numpy_lines(1) + self.numpy_lines(0) # rows + columns parsing
        for result in results:
            if not result:
                return False
        return True

    def line_sudoku(self, line):
        line = line.tolist()[0]
        if sum(line) != self.mysum:
            return False
        for i in range(1, self.mylen):
            if i not in line:
                return False
        return True

    def numpy_lines(self,axis):
        return numpy.apply_along_axis(self.line_sudoku, axis = axis, arr = self.matrix).tolist()

goodSudoku = Sudoku([
  [1,4, 2,3],
  [3,2, 4,1],

  [4,1, 3,2],
  [2,3, 1,4]
])

print(goodSudoku.is_valid())

94
Server / Re:Hardware pro malý domácí server
« kdy: 22. 09. 2017, 23:10:31 »
do cca 150Wh u obou verzí. Beru v potaz jen tu základní konfiguraci.

150W je docela dost na nonstop provoz doma. 24 hodin * 30 dní * 150 Wattů / 1.000 (na kW) * 5 Kč / Kwh => 540 Kč měsíčně jenom na elektřině. To je de fakto spotřeba celé mé domácnosti včetně ledničky, pračky, laptopu, indukční desky, myčky, atd. atd.

95
Server / Re:Hardware pro malý domácí server
« kdy: 22. 09. 2017, 22:58:53 »
Server jsem si sestavil sám, níže popíšu proč...

Jako základovku jsem použil

https://www.alza.cz/gigabyte-h270n-wifi-d4652870.htm

Výhoda - WiFi, 2x HDMI (můj požadavek), 2xLAN RJ45, MiniITX

Jako skříň jsem použil

https://www.alza.cz/fractal-node-304-d361104.htm#recenze

Výhoda - 4x HDD, velké, pomalé a tiché větráky s regulací

Důvod, proč bych do výše zmíněného serveru HP nešel je to, že se to dá použít jenom vzdáleně, nelze to reálně použít na připojení k monitoru (jen VGA kabel), moje řešení naopak lze použít s 2 monitory, takže to nemusí být jenom server, ale lze to použít i jako pracovní stanici.

Reálně bych ovšem na tvém místě rozšířil pole působnosti než jen pro webové stránky, já ten server používám i jako NAS/DNS/DHCP/Virtualizační platforma/Torrent/Kamerový systém.

Jako vůbec nechápu lidi, co si koupí nějaký komerční NAS zařízení pokud rozumí linuxu, nebo je to zajímá, protože vlastní server doma mi přijde k nezaplacení...

Jo, spotřeba mého řešení s nějakým entry-level intelem co tam mám a asi 3 disky (2x HDD, 1x SSD) je jen 35W, co jsem to měřil... Což je úplně super...

Spotřebu bych určitě řešil, pokud to má běžet 24x7, tak je rozdíl jestli to žere 35W nebo 100W docela znát.

96
Studium a uplatnění / Re:Praktická matematika
« kdy: 22. 09. 2017, 22:16:49 »
můžete nějaké kata (katu?) vybrat sám

předpokládám, že tazatel zkoušel něco v základní úrovni obtížnosti. Tam žádné úlohy vyžadující znalost VŠ matematiky nejsou. Chtěl jsem vidět, s čím měl konkrétně problém.

Tak úplně základní úlohy neřeším, je to od obtížnosti 1 (nejtěžší) - 8 (nejlehčí) a já se pohybuji na 4, kde už poměrně dost řeším operace s maticemi, otázka je do jaké míry je to SŠ a do jaké VŠ matika...

Tím lépe. Pošlete sem odkaz na úlohu. Uvidíme zajímavá řešení.

Čistě praktická lineární algebra nejen pro programátory je Coding Matrix. http://codingthematrix.com/. Kdysi jsem ten kurz viděl na courseře, ale neabsolvoval jsem ho.

Dneska jsem řešil https://www.codewars.com/kata/validate-sudoku-with-size-nxn/python

Je to klasické Sudoku. Trošku jsem si ulehčil práci přes NumPy, takže mám kratší a čitelnější kód než hodně řešitelů...

Kód: [Vybrat]
import numpy, math

class Sudoku(object):
    def __init__(self, m):
        self.matrix = numpy.matrix(m)
    def is_valid(self):
        mysum = sum(x for x in range(1,len(self.matrix)+1))
        mylen = int(math.sqrt(len(self.matrix)))
        # iterate over submatrixes
        for x in range(0,mylen):
            for y in range(0, mylen):
                if numpy.sum(self.matrix[x*mylen:x*mylen+mylen,y*mylen:y*mylen+mylen]) != mysum:
                    return False
        for row in self.matrix.sum(axis=1).tolist():
            if row[0] != mysum:
                return False
        for column in self.matrix.sum(axis=0).tolist()[0]:
            if column != mysum:
                return False
        return True


goodSudoku = Sudoku([
  [1,4, 2,3],
  [3,2, 4,1],

  [4,1, 3,2],
  [2,3, 1,4]
])

print(goodSudoku.is_valid())

97
Studium a uplatnění / Re:Praktická matematika
« kdy: 22. 09. 2017, 22:11:49 »
můžete nějaké kata (katu?) vybrat sám

předpokládám, že tazatel zkoušel něco v základní úrovni obtížnosti. Tam žádné úlohy vyžadující znalost VŠ matematiky nejsou. Chtěl jsem vidět, s čím měl konkrétně problém.

Tak úplně základní úlohy neřeším, je to od obtížnosti 1 (nejtěžší) - 8 (nejlehčí) a já se pohybuji na 4, kde už poměrně dost řeším operace s maticemi, otázka je do jaké míry je to SŠ a do jaké VŠ matika...
tohle https://www.codewars.com/kata/burrows-wheeler-transformation ?

viz. https://en.wikipedia.org/wiki/Burrows–Wheeler_transform

Je tam napsán způsob dekódování, implementace pak nebude zase nějaký oříšek. Ale uznávám, že vymyslet algoritmus na dekódování je opravdu jiný level, než o kterým uvažuji...

98
Studium a uplatnění / Re:Praktická matematika
« kdy: 22. 09. 2017, 21:37:18 »
můžete nějaké kata (katu?) vybrat sám

předpokládám, že tazatel zkoušel něco v základní úrovni obtížnosti. Tam žádné úlohy vyžadující znalost VŠ matematiky nejsou. Chtěl jsem vidět, s čím měl konkrétně problém.

Tak úplně základní úlohy neřeším, je to od obtížnosti 1 (nejtěžší) - 8 (nejlehčí) a já se pohybuji na 4, kde už poměrně dost řeším operace s maticemi, otázka je do jaké míry je to SŠ a do jaké VŠ matika...

99
Studium a uplatnění / Re:Praktická matematika
« kdy: 22. 09. 2017, 20:50:39 »
K výuce matematiky u nás: onanie. Vesměs to vyučují lidi, co se to odpapouškovali od papoušků před nimi. Nemají mezi sebou konkurenci, takže je ani nenutí se zlepšovat. Učí se ve stylu "Nechť existuje ..." nějaká přiblblá definice zapsaná hyeroglyfy, ve stejném kódování pak podaný důkaz a z toho nechť se odvodí celý svět.

Kontrast s videy, co pošlu dole. Nastíní intuici problému, zbytečné definice často rovnou přeskočí, dá několik příkladů (ne s maticí 5x5 jako blbci u nás, se kterou ztratí 20 minut) a vysvětlí to naprosto v lidské řeči. Nemáš z toho pak pocit méněcennosti, jakou se ti snaží vštípit na českých školách, kde se měří úspěšnost počtem vyhozených lidí, nabiflovaných definic a počtem škol v ČR, které jsou pod jejich úroveň.

---
Courseru, Udemy apod. moc nemusím. Nemam rád tu jejich formu videa. Doporučuju nejsledovanější kurzy z top univerzit, byť už mají nějaký věk.

Třeba snad nejlepší online kurz, co kdy vyšel, je lineární algebra od Stranga z MIT. To snad nejde ani nepochopit. Navíc ty přednášky trvají jenom 45 minut, navíc vzhledem k tomu, jak pomalu mluví. U nás jim na to nestačily 2.5 hodiny.
web: https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/
youtube: https://youtu.be/ZK3O402wf1c

Pro programátory vynalezli diskrétní matematiku (vysvětluje to hned v prvním videu) jako mix různých oborů jako takové programátorské minimum. Osobně jsem se vyprd na přednášky ve škole a naučil se to z aduni - opět jeden z nejlepších učitelů, co to umí vysvětlit lidsky.
web: http://www.aduni.org/courses/discrete/index.php?view=cw
youtube: https://youtu.be/ILQT1koTrpA

Pak je ještě novější verze přímo na MIT, ale tu jsem neprojel.
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/

Děkuji moc za tipy, přesně výše popisovaný styl výuky na VŠ, který jsem osobně zažil vedl k tomu, že jsem se na VŠ vykašlal, neboť mi to přišlo kompletně mimo realitu.

Myslím, že můj poslední den na VŠ byl ten, kdy jsem se na cvičení matikářky zeptal tuším u vektorů v 5tém rozměru, jaké toto má praktické využití, a ona mi řekla, že prostě vůbec neví... Pochopil jsem, že tam ztrácím jenom čas...

V zásadě jak to tu padlo, hledám nějaké programátorské minimum, nejde mi o řešení nějakých konkrétních problémů

Docela mě rozesmálo toto:

Citace
Originální tazatel jde tvrdě po 1. Nezajímá ho naprosto nic, co mu neřeší nějaký jeho stávající problém.
Školy ale vesměs řeší požadavek 2. Naprosto netuší, zda budete bagrovat díru pro bazén, počítat úvěrový produkt, navrhovat vysokofrekvenční rezonátor nebo ověřovat pohybové rovnice nějakého stroje.

Tohle je totální hlod, školy neřeší výpočet vysokofrekvenčního rezonátoru, oni učí matematiku jako nějaký jazyk důkazů, který s libovolným reálným sebesložitějším problémem nemá nic společného. V podstatě by mi nevadilo tak, kdyby škola učila praktické informace, které třeba nevyužiji ve své specializaci, ale ona učí informace, které nedokáže využít nikdo, a jak již jsem výše zmínil, ani samotní učitelé neznají praktickou aplikaci toho co učí.

Citace
Ale zase například toto: https://www.youtube.com/watch?v=kYB8IZa5AuE

Velmi se mi to líbí, je to grafické, jsou tam i složitější konstrukce, a podáno dobrou metodou. Přesně věci na takovéto úrovni hledám...

Citace
Pro programátora je sázka na jistotu imho asi hlavně diskrétní matika, grafy, kombinatorika, logika, praktická (!) statistika, základy (!) složitosti a vypočitatelnosti.

Přesně na toto jsem se ptal...

100
Studium a uplatnění / Praktická matematika
« kdy: 22. 09. 2017, 00:33:37 »
Zdravím vás,

mám takový dotaz. Začal jsem teď být aktivnější na CodeWars.com, a chtěl bych se do budoucna z části věnovat programování (nyní dělám linux admina).

Zjistil jsem ovšem, že mi zchází VŠ matematika. Tedy, abych byl přesný, neschází mi styl výuky VŠ, kdy jsme se v prváku (ze kterého jsem byl vyhozen, mimo jiné i dost proto, že mi nepřišlo podstatné tam chodit) na matematiku měli učitelku, která vysvětlovala všemožné teorie, ale sama nedokázala prakticky říci, k čemu se to či ono používá. Tedy k věci, prázdnou teorii nepotřebuji.

Chtěl bych nějaký kurz (klidně i placený, třeba na Udemy nebo nějakou virtuální vysokou), kde se probere složitější algebra, ale styl výuky bude záživný, k věci a s praktickými příklady nejlépe navozenými do praxe (statistika, ekonomie, AI, programování, neuronové sítě atd...).

Nestojím o to, se nadrtit nějakou teorii, u které když se dostanu k praktickému využití, tak budu jen stát a nechápat, že zrovna na tenhle případ by se to hodilo - což jsem si všiml, je častý jev absolventů VŠ - neschopnost využít nabité vědomosti v praxi. Nestojím tedy o nesmyslné biflování.

Neporadili byste něco typu aplikovaná matematika?

101
Server / Re:zalohování virtuálních strojů
« kdy: 14. 09. 2017, 19:06:34 »
Teprve, když si pro to vytvoříte podmínky, můžete využít tyto vychytávky.
ALFA-OMEGA vsech techto vychytavek....kloudné podmínky nemám, zbývají partyzánské metody :_)

jeste jednou díky

V takových podmínkách připojuji k serverům USB disky, je to poměrně levné, efektivní a funkční rozšíření kapacity disků na serveru, dost se to v poslední době používá. Mírná nevýhoda je, že se občas (ale je to spíše vyjímečné) USB disky zaseknou, takže na nic moc jiného, než zálohy se to nehodí.

102
Server / Re:zalohování virtuálních strojů
« kdy: 14. 09. 2017, 19:03:08 »
Místo rozčilování je nutné si uvědomit, že snapshoty vůbec nemusí představovat konzistentní stav systému. Pokud udělám snapshot v průběhu zápisu do souboru, tak asi moc konzistentní nebude. S databázemi je to ještě horší kvůli rozpracovaným transakcím - proto je lepší zálohovat databáze exportem, při kterém vůbec nevadí, že se mezitím data modifikují.

Tohle je totální hlod, kde na to ty lidi tady na rootu chodí. Nekonzistentní rozpracované transakce databáze na disku, no to mě poser  ;D Transakce je právě o tom, že je vždy konzistentní, to je pokud v průběhu transakce lehne databáze, lehne systém, udělá se snapshot, tak transakce tak či onak vždy proběhne celá nebo vůbec, rozhodně se u transakce v případě zastavení, či pádu systému nestane to, že by proběhla půlka transakce.

Tady se člověk doví hlodů. By mě zajímalo, k čemu by pak transakce byly, kdyby nebyly konzistentní  ::)

A hlavně, databáze ke snapshotům přímo vybízí, většina databází je navržena tak, aby počítala s pády systému nebo databázového serveru. Například MS SQL má dokonce oficiální doporučené zálohování přes snapshoty (shadow copy).

Snapshoty jsou právě hodně efektivní řešení, protože jejich integrita je na úrovni, že obnova ze zálohy se = stavu při pádu/zaseknutí systému. Pokud nějaká aplikace/databáze neustojí pád systému vzhledem k integritě dat, tak je taková aplikace velmi špatně udělaná.

Problém snapshotů je jinde, a to je poměrně komplikované obnovování jednotlivých souborů. Naopak výhoda snapshotů je poměrně v jednoduchém obnovení celého systému, včetně zavaděčů atd. Ideální je oba přístupy kombinovat, to je dělat snapshoty, i klasické zálohy po jednotlivých souborech.

Jinak pro virtualizaci na linuxu se dost používá KVM, a hodně chytré je použít jako disk virtuálky Logical Volume, u které lze poměrně jednoduše udělat snapshot, a virtuálku pak není třeba vypínat.

103
5,83 Eura na hodinu na ruku v poslednom roku VS. V malej garazovej firme (doslova garazovej). Narh jednoduchej elektroniky a  programovanie 8 bitovych mcu atmel AVR. 1 az 2 dni v tyzdni,  bezne tak 10 hodin totalneho nasadenia. Ked bolo treba tak aj do polnoci. Zial v  riadnej praci (embedded programovanie, vykonove menice, testery, DSP od Texasu) po zdaneni mam mensi cisty plat ako v tej garazovke. Trvalo vyse roka nez som sa vobec dostal k nejakej zakazke z ktorej by mohli byt casom peniaze (pre externeho zakaznika, nie tester pre vnutrofirene pouzitie)  Vo firme riesili nakopene dlhy z este casov financnej krizy.

Nějak mi uniká smysl makání v oboru elektroniky (na což mám mimo jiné školu, a ze třídy mi to šlo hodně dobře). Přijde mi to poměrně složité, a pracné na to, jak mizerně je to placené.

104
Hmm, tak já dělal první brigády před cca. 15 lety, u prvních asi dvou brigád jsem dělal za 100 Kč / hodina na IČO nebo na ruku (v té době byly brigády běžně za 55 Kč/hod, typu doplňování zboží). No asi během 1-2 let jsem se dostal k tomu, že jsem dělal 200 Kč / hodina čistá ruka, to už i na tu dobu byly velmi dobré prachy, tehdy těch 15k čistého mělo hodně lidí jako plat za full-time, a já to bral za part-time. No, a pak jsem šel makat full-time, taky za dvě kilča.

Jinak jsem dělal i brigády, třeba ono tahání kabelů, čištění větráčku apod. To je práce na nic...

105
Vývoj / Re:Python - zbožňovaný lidmu?
« kdy: 12. 09. 2017, 10:59:36 »
A rozhodne dostanem za Javu, resp. C# lepsie zaplatene ako za python, nakolko v tom robi kazdy patlal a tym padom to znizuje cenu prace.

Tak ono hlavně Python není úplně vhodný na čisté programování, spousta lidí v Pythonu dělá jako doplněk ke své hlavní činnosti (tester, admin, data science, věděc), takže to tak úplně nejde porovnávat, mimo jiné si nemyslím, že plat experta na ML musí být nutně nižší než plat Javisty.

Stran: 1 ... 5 6 [7] 8 9 ... 15