IT pro otrlé

O lidech, o vztazích, o politice, o názorech, o opicích a o ufonech.

Moderátor: Faskal

Odpovědět
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

To, ze jsi za proxynou je tezko vlastnost nejakeho operacniho systemu.

Eleshare, pokud chces udelat aplikaci, co jde distribuovat po nejakych windows stanicich, tak to si uzijes. A to teprve pockej, az budes chtit distribuovat aktualizace $D
But nobody came.
Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 18505
Registrován: 18. 6. 2003, 21:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion »

York:
Takže pro přenositelnost pythonových skriptů stačí tahat python.exe bez instalovaného vlastního Pythonu, samotný skript (třeba PyČA.py) a zástupce ("Run PyČa"), kde target je "C:\...\python.exe PyČa.py"? Počítám, že tomu zástupci by se dalo vyhnout asi nějakým inteligentně napsaným .bat souborem?
Sosacek píše:Na to, abys mohl spoustet python, musis mit nainstalovany python. Na to, abys mohl spoustet javu, musis mit nainstalovanou javu. Na to, abys mohl spoustet .net, musis mit nainstalovany .net.
Jak jsem psal v tom příspěvku nad tím, jde mi o distribuci, tj. aby to někdo mohl používat a nemusel si předtím nutně nainstalovat Python, .NET apod., tj. zkompilovat a udělat z toho ideálně .exe soubor, který si dotyčný prostě stáhne ze sdíleného disku, spustí a hotovo (aktualisace vem čert, prostě si stáhne novou versi toho souboru), k čemuž jsou všechny ty možné Py2exe, které mají miliardu vlastních závislostí, o kterých ti ale nikdo neřekne předem a najdeš je vesměs, až když hledáš, proč ti selhala instalace.

Co hledám, je nějaký rozumný návod typu:
Chcete psát skripty v [váš oblíbený jazyk] pro Windows? Nainstalujte si v tomto pořadí:
1) Prostředí A pro vývoj
2) Prostředí B pro package manager C
3) Package manager C
4) Prostředí D pro kompilátor E prostřednictvím manageru C
5) Package manager F
6) Kompilátor E přes package manager E
7) Plugin G do kompilátoru D, který vám z toho nakonec udělá .exe soubor.

Já obvykle postupuju:
1) Instalce prostředí pro vývoj
1) a) Napsání funkčního skriptu
6) Fail - nemám package manager E
5) Instalace F
6) Fail - nemám prostředí D pro kompilátor E
5) Fail - nemám package manager C
0) !!!RAGEQUIT!!!
Ne croyez pas que les antisémites se méprennent tout à fait sur l'absurdité de ses réponses. Ils savent que leurs discours sont légers, contestables ; mais ils s'en amusent, c'est leur adversaire qui a le devoir d'user sérieusement des mots puisqu'il croit aux mots ; eux, ils ont le droit de jouer. Ils aiment même à jouer avec le discours car, en donnant des raisons bouffonnes, ils jettent le discrédit sur le sérieux de leur interlocuteur ; ils sont de mauvaise foi avec délices, car il s'agit pour eux, non pas de persuader par de bons arguments, mais d'intimider ou de désorienter. Si vous les pressez trop vivement, ils se ferment, ils vous signifient d'un mot superbe que le temps d'argumenter est passé.
Uživatelský avatar
York
Příspěvky: 17447
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Sosacek píše: 18. 11. 2017, 15:43Eleshare, pokud chces udelat aplikaci, co jde distribuovat po nejakych windows stanicich, tak to si uzijes. A to teprve pockej, az budes chtit distribuovat aktualizace $D
To jo, no. Na tohle je asi nejlepší řešení udělat to přes web.

Eleshar_Vermillion píše: 18. 11. 2017, 15:45 Takže pro přenositelnost pythonových skriptů stačí tahat python.exe bez instalovaného vlastního Pythonu, samotný skript (třeba PyČA.py) a zástupce ("Run PyČa"), kde target je "C:\...\python.exe PyČa.py"?
Ano.

Eleshar_Vermillion píše: 18. 11. 2017, 15:45Počítám, že tomu zástupci by se dalo vyhnout asi nějakým inteligentně napsaným .bat souborem?
Ano.

Stačí do něj napsat:

Kód: Vybrat vše

"cesta\python.exe" "cesta\PyČA.py"
(Uvozovky jsou nutný jen v případě, že máš někde v cestě mezery.)

Eleshar_Vermillion píše: 18. 11. 2017, 15:45nainstalovat Python, .NET apod., tj. zkompilovat a udělat z toho ideálně .exe soubor, který si dotyčný prostě stáhne ze sdíleného disku, spustí a hotovo (aktualisace vem čert, prostě si stáhne novou versi toho souboru).
Pokud maj ti lidi přístup ke sdílenému disku, tak stačí, když budeš distribuovat ten shortcut/dávkovej soubor. V něm odkážeš na python.exe na síťovém disku a na ten skript, taky na sdíleném disku. To ti pak vyřeší i aktualizace - zástupce měnit nemusíš, stačí měnit skript na sdíleném disku (případně ten exáč, pokud potřebuješ upgradnout python).
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

Eleshar_Vermillion píše: 18. 11. 2017, 15:45 York:
Takže pro přenositelnost pythonových skriptů stačí tahat python.exe bez instalovaného vlastního Pythonu, samotný skript (třeba PyČA.py) a zástupce ("Run PyČa"), kde target je "C:\...\python.exe PyČa.py"? Počítám, že tomu zástupci by se dalo vyhnout asi nějakým inteligentně napsaným .bat souborem?
Pokud pouzivas jenom veci ze zakladniho runtime (veci co najdes tady: https://docs.python.org/3.6/library/index.html), tak ano. Pokud pouzivas neco dalsiho, a musel jsi udelat "pip install whatever" tak musis udelat pip install vsude, kde to budes chtit pouzivat.

Nevim na co to chces pouzivat - pokud jenom ctes textaky a chodis po disku a takove vec, tak to asi nemusis resit. Ale ty extra knihovny jsou obvykle superuzitecne, koukni na porovnani (zabudovane) urllib2 a (nezabudovaneho) requests https://gist.github.com/kennethreitz/973705 .
Jak jsem psal v tom příspěvku nad tím, jde mi o distribuci, tj. aby to někdo mohl používat a nemusel si předtím nutně nainstalovat Python, .NET apod., tj. zkompilovat a udělat z toho ideálně .exe soubor, který si dotyčný prostě stáhne ze sdíleného disku, spustí a hotovo (aktualisace vem čert, prostě si stáhne novou versi toho souboru), k čemuž jsou všechny ty možné Py2exe, které mají miliardu vlastních závislostí, o kterých ti ale nikdo neřekne předem a najdeš je vesměs, až když hledáš, proč ti selhala instalace.

Co hledám, je nějaký rozumný návod typu:
Chcete psát skripty v [váš oblíbený jazyk] pro Windows? Nainstalujte si v tomto pořadí:
1) Prostředí A pro vývoj
2) Prostředí B pro package manager C
3) Package manager C
4) Prostředí D pro kompilátor E prostřednictvím manageru C
5) Package manager F
6) Kompilátor E přes package manager E
7) Plugin G do kompilátoru D, který vám z toho nakonec udělá .exe soubor.

Já obvykle postupuju:
1) Instalce prostředí pro vývoj
1) a) Napsání funkčního skriptu
6) Fail - nemám package manager E
5) Instalace F
6) Fail - nemám prostředí D pro kompilátor E
5) Fail - nemám package manager C
0) !!!RAGEQUIT!!!
Co tady: https://docs.python.org/3.6/using/index.html ? Takhle prirucka je trochu vic do hloubky, a nevim jak resi windows (protoze vyvojari co fakt potrebuji makat obyvkle nemaji na windows cas) ale taky mluvi o tom, co a jak: http://docs.python-guide.org/en/latest/

Python je super v tom, ze je hodne effektivni na vyvoj, ale ty programy pak nebezi nejak super rychle (furt rychleji nez visual basic, ale pomaleji nez treba java) takze kdybys delal moc chroustani dat, tak muzes casem zaplakat. Zase v pythonu udelat neco jako "tady je json/xml result nejakeho smecka, udelej mi xml" je superrychle, a v jave tim stravis stovky radek kodu. Efektivita pri vyvoji a efektivita pri behu jsou tu v opozici, i kdyz vlastne z principu nemusi byt?

Asi se te to netyka, ale je to neco, na co je treba myslet, kdyz uz ti radim s pythonem.
But nobody came.
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

Ted kdyz listuju tou The Hitchhiker’s Guide to Python! tak si rikam, ze ti vlastne stacilo ji nalinkovat a ona odpovida na vsechny otazky co mas, myslim.
But nobody came.
Uživatelský avatar
Fritzs
Příspěvky: 6292
Registrován: 9. 5. 2005, 21:47
Bydliště: Brno

Re: IT pro otrlé

Příspěvek od Fritzs »

Sosacek píše: 18. 11. 2017, 16:21 Python je super v tom, ze je hodne effektivni na vyvoj, ale ty programy pak nebezi nejak super rychle (furt rychleji nez visual basic, ale pomaleji nez treba java) takze kdybys delal moc chroustani dat, tak muzes casem zaplakat.
To vysvětluje mnohé mé problémy se softwarem, který musím používat (chroustá tuny dat, je to python, podle znalců je to mizerně napsané byť je to python).

Proč vlastně lidi nepoužívají C? Na programování jsem úplný antitalent, ale v C jsem dokázal svého času napsat i jednoduché programy, člověk tak nějak ví, co se vlastně děje zatímco v Javě je to už na mě moc abstraktní a navíc je C podle všeho dost rychlý.
-I don't suffer from insanity. I enjoy every minute of it.

-If violence isn't solving your problems then you aren't using it enough.

-Jestliže je hlad nejlepší kuchař, pak je smrt nejlepší lékař!
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

Protoze udelat to v C je desetinasobek prace, nez to udelat v Pythonu. Ne udelat "prvni verzi" ale udelat to, aby to bylo spolehlive, bezpecne, a aby si clovek, co do toho bude chtit za dva mesice neco dodelat neprostrelil hlavu.

Protoze jine jazyky toho za tebe delaji mnohem vic, nez C, takze se muzes soustredit to, ceho chces dosahnout (treba ze kdyz ma klient uroven skoringu < 3 a castka je > 10 000 tak tu transakci zamitnes, a pokud je uroven skoringu 4 az 5 tak taky, ale jen pokud nema extended validation) misto abys resil kolik mas alokovat pameti a kde se uvolnuje, a jestli se spravne kontroluji hranice poli.

Cas programatora je drazsi nez cas pocitace.

Nekdy to jinak nejde a lidi pouzivaji C - nekdy je to dane historicky, nebo je to moc low level (jadra operacnich systemu a ridici systemy) nebo je treba maximalni vykon a kdyby to bylo 10x pomalejsi tak to vlastne nema smysl vubec delat (hry, systemovy software jako databaze, webservery, loadbalancery, obecne infrastruktura).

Casto je to tak, ze zpusob jak typci to C pouzivaji vede k tomu, ze si uvnitr C vlastne vyrobi jazyk vyssi urovne, a leze jim z toho neco, co je rychle a pritom to (tolik) netrpi temi nevyhodami - ale vyzaduje to trpelivy dohled zkusenych typku, disciplinu a lidi schopne rict "tahle vec neni ready, musi pockat do dalsi verze, protoze to nechceme zprasit" coz je v komercni sfere dost nevidana vec. Treba PostgreSQL je krasny kus C co funguje presne takhle - ale oni si to muzou dovolit.

...

Nutno poznamenat, ze zrovna Python casto funguje tak, ze mas nejakou v C napsanou knihovnu, a ta vystavuje Pythonove API, takze ta pocitaci cast je napsana v C (nebo ve Fortranu, coz je jazyk jeste rychlejsi nez C a pouziva se na ruzne matematicke veci) a v Pythonu je jenom to lepidlo, ktere to cele organizuje a spousti. Pokud tvuj program pouziva numpy, nebo pandas, nebo neco takoveho, tak to tak zrejme je.
But nobody came.
Uživatelský avatar
Fritzs
Příspěvky: 6292
Registrován: 9. 5. 2005, 21:47
Bydliště: Brno

Re: IT pro otrlé

Příspěvek od Fritzs »

Nejpůvodnější části té věci budou určitě fortran, chemici dřív nic jiného neuměli, cokoliv co tam dodělali nového už bych tipoval čistě na python.
-I don't suffer from insanity. I enjoy every minute of it.

-If violence isn't solving your problems then you aren't using it enough.

-Jestliže je hlad nejlepší kuchař, pak je smrt nejlepší lékař!
Uživatelský avatar
York
Příspěvky: 17447
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Fritzs píše: 20. 11. 2017, 19:19Proč vlastně lidi nepoužívají C?
Další důvody (možná budu trochu opakovat Sosáčka):
- blbě se v tom píšou cross-platform věci. Cčkové překladače sice existují na všech používaných systémech, ale složitější program v Cčku napsaný pro windowzy bez značných úprav na Unixu nepřeložíš a nepustíš (a naopak).
- Browsery umí jen javascript, takže když chceš dělat cokoliv webového co nebude mít kód čistě server-side (tzn. dneska prakticky všechno), tak nemáš jinou volbu.
- cčko se musí kompilovat a často se hodí spíš intepretovaný jazyk (nebo aspoň kompilovaný do nějakého mezikódu) - třeba zrovna v těch browserech.
- cčkový program je mnohem náchylnější k chybám, zvláště takovým, které způsobí crash celé aplikace (v tom lepším případě).
- pro mladší jazyky existují spousty knihoven a modulů, které prostě stáhneš a použiješ. Pro cčko je těchle věcí o dost míň prostě proto, že už docela dlouho se píše primárně v něčem jiném.
- naučit se Cčko (a hlavně C++) je o dost těžší, mimo jiné proto, že musíš zchroustat spoustu konceptů, které highlevelovější jazyky řeší automaticky.
- čistě se znalostí Cčka budeš dneska shánět práci podstatně hůř než třeba s javascriptem, navíc to nejspíš bude něco hodně složitého a specializovaného.
Uživatelský avatar
Pieta
sofistikovaný troll
Příspěvky: 15028
Registrován: 6. 9. 2006, 19:08
Bydliště: Praha, ale původem jsem z Hostivaře
Kontaktovat uživatele:

Re: IT pro otrlé

Příspěvek od Pieta »

I když C-čkové zkušenosti nemám velké, tak můžu potvrdit, co píšou Sosi+York. C-čko je jazyk, kde programy člověku rutinně padají s chybama, které ve většině jiných jazyků ani nejde udělat.
Cicho żono, deszczyk padał, ja nie słyszał kto to gadał.
Cicho żono, deszczyk rosił, ja nie słyszał kto to prosił.
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

Jo a Androidi aplikace jsou jen v Jave a iOS aplikace jsou jen v Objective C (bez znacne nepohodlnych obezlicek).
But nobody came.
Uživatelský avatar
Fritzs
Příspěvky: 6292
Registrován: 9. 5. 2005, 21:47
Bydliště: Brno

Re: IT pro otrlé

Příspěvek od Fritzs »

Ale mě nesedí, že v jazycích vyšší úrovně už nemám nejmenší představu co se reálně děje. Proto nemůžu dělat programátora.
-I don't suffer from insanity. I enjoy every minute of it.

-If violence isn't solving your problems then you aren't using it enough.

-Jestliže je hlad nejlepší kuchař, pak je smrt nejlepší lékař!
Uživatelský avatar
York
Příspěvky: 17447
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Fritzs píše: 23. 11. 2017, 14:03 Ale mě nesedí, že v jazycích vyšší úrovně už nemám nejmenší představu co se reálně děje. Proto nemůžu dělat programátora.
To není úplně pravda, respektive není to tak odlišné od programování v Cčku. Jak vnitřně funguje třeba takový javascript se celkem dobře ví, samozřejmě s výjimkou extrémně optimalizovaných věcí jako třeba garbage collecting. To ale platí i pro Cčko - strojový kód, který po optimalizacích vyleze z gcc, dělá věci, do kterých z větší části vůbec nevidíš.

Pokud chceš fakt přesně vědět, co procesor dělá, tak ti nezbývá nic jiného než psát to v assembleru nebo strojovém kódu :-)
Uživatelský avatar
Fritzs
Příspěvky: 6292
Registrován: 9. 5. 2005, 21:47
Bydliště: Brno

Re: IT pro otrlé

Příspěvek od Fritzs »

York píše: 23. 11. 2017, 15:22 Pokud chceš fakt přesně vědět, co procesor dělá, tak ti nezbývá nic jiného než psát to v assembleru nebo strojovém kódu :-)
C mi připadá jako vhodný kompromis mezi "vím co dělám" a časovou investicí.

Pro mě, ne pro hypotetického zaměstnavatele, proto nejsem programátor.
-I don't suffer from insanity. I enjoy every minute of it.

-If violence isn't solving your problems then you aren't using it enough.

-Jestliže je hlad nejlepší kuchař, pak je smrt nejlepší lékař!
Uživatelský avatar
York
Příspěvky: 17447
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Fritzs píše: 23. 11. 2017, 16:20C mi připadá jako vhodný kompromis mezi "vím co dělám" a časovou investicí.
Když bys chtěl napsat a udržovat něco většího a nezbláznit se z toho, tak bys brzo zjistil, že je docela šikovný rozdělit si to na oddělené vrstvy s různou mírou abstrakce. Když chceš například přihlásit uživatele, tak není úplně žádoucí mít přímo v té funkci kód, kterej bude fyzicky parsovat SQL příkaz a provádět nějaké operace přímo nad tabulkama v databázi. Místo toho tam chceš mít něco jako:

Kód: Vybrat vše

getUserName(database);
V dané úrovni logiky programu tudíž "vím, co dělám" znamená něco jiného, než o několik úrovní níž.

Vtip je v tom, že drtivá většina programování se pohybuje v těch vyšších úrovních abstrakce, protože zákazník ti platí za webovou aplikaci, ne za databázový engine. A s tím ti vyjadřovací schopnosti cčka nijak nepomůžou - naopak odváděj pozornost od toho podstatného.

Dobrej příklad jsou stringy: V javascriptu platí, že každá operace, která jakkoliv mění string, ti vrátí novou proměnnou - nikdy nezmění ten původní string. To znamená, že když zavoláš jakoukoliv funkci nad stringem, tak vždycky víš, co děláš - vždycky dostaneš novej string. V cčku tohle neplatí, tam při volání funkce nevíš, jestli naalokuje paměť a vrátí novej string, nebo jestli přepíše ten původní, nebo jestli třeba dokonce nevrátí odkaz do nějakého sdíleného bufferu, kterej ti někdo může přepsat, pokud si to z něj hned nezkopíruješ.

Dobře navržené high-level jazyky maj v sobě spoustu takovejch rozhodnutí a konvencí, které způsobí právě to, že oproti cčku mnohem víc víš, co děláš.
Odpovědět

Zpět na „Realita a pseudorealita“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů