Z jakiej usługi mógłbym skorzystać, żeby wrzucić tam mój skrypt i niech się codziennie sam puszcza o określonej godzinie?
#programowanie #python
@FoxtrotLima Jeśli to nic skomplikowanego to możesz skorzystać z darmowego konta na https://www.pythonanywhere.com/
Zaloguj się aby komentować
@Fausto
wynik = x if x < y else y
Niezapominajmy o czytelności.
wynik = max(x,y)
Chociaż oczywiście możesz sobie komplikować życie ^^
@Fausto yyyy. Ale jak to? Oprócz operacji bitowych jest i tak operator porównania w drugim nawiasie. Tak miało być?
Zaloguj się aby komentować
import cv2
from time import sleep
from datetime import datetime
cam = cv2.VideoCapture(0)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080.0)
cam.set(cv2.CAP_PROP_FRAME_WIDTH, 1920.0)
cam.set(cv2.CAP_PROP_AUTO_WB, 0.0)
cam.set(cv2.CAP_PROP_WB_TEMPERATURE, 7000)
cam.set(cv2.CAP_PROP_SATURATION, 75)
cam.set(cv2.CAP_PROP_CONTRAST, 100)
while True:
retval, frame = cam.read()
dt = datetime.now()
ts = int(datetime.timestamp(dt))
if retval != True:
print(str(dt) + ": Can't read frame")
sleep(5)
continue
cv2.imwrite(str(ts) + '.png', frame)
print(str(dt) + ": saved img " + str(ts) + ".png")
sleep(120)#python #programowanie
@Bielecki cv2 działa bardzo wolno. Spróbuj z numpy.
Jesli dobrze pamiętam, z obiektu cv2 można wyciągnąć tablicę numpy i za jego pomocą to zapisać do pliku.
@markxvyarov dlaczego tak uważasz? Jeśli retval będzie false, to kontynuuję loop, żeby nie wywalać całego programu, ale nie zapisuję obrazu
@Prucjusz najwolniejsze w opencv w moim przypadku jest inicjalizowanie kamery przez cv2.VideoCapture(0). Ja loopuję się już po inicjalizacji, nie zwalniam kamery. Sam zapis odbywa się w ciągu ~0,1s, zakładając że sleep trwa równe 120s (takie mam różnice w timestampach).
@psalek dzięki, to mi wiele powiedziało. Wygląda na to że to właśnie bufor. Niby mogę zastosować te rozwiązania (choć porzucanie ramek przez opencv z tego co znalazłem odbywa się poprzez ustawianie odpowiednich properties kamery i nie jestem pewien czy 1. jest to wspierane przez mój model, 2. jest to nadal w opencv, bo gdzieś była wzmianka, że to usunęli), ale to w sumie byłaby sztuka dla sztuki - a w moim przypadku rozwiązanie się w sumie sprawdza. Zwyczajnie mnie ciekawiło dlaczego tak się dzieje i mam odpowiedź. Dzięki
@Bielecki czym to potem składasz w filmik?
Zaloguj się aby komentować
A co chcesz robić?
@Prucjusz - bardzo lubię Pythona (co potwierdzają moje wpisy na tagu #python) ale od Django trzymam się z daleka bo to kobyła dla korposzczurów - i do tego zaczyna być przestarzały.
Do robienia stron to teraz SvelteKit lub Astro i deployment do Vercel na szybko przy minimum konfiguracji (lub jak ogarniasz, to wszystko skonteneryzowane i hostowane na jakiejś instancji z procesorem ARM w chmurze lub self-hosted po taniości).
Zrobiłem kilka wewnętrznych projektów gdzie frontend pisałem w SvelteKit a backend (REST API) z wykorzystaniem Pythonowego frameworka FastAPI - frontend i backend oczywiście śmigają w swoich osobnych kontenerach (gdzie base image do frontendu to Distroless Node.js a do backendu oficjalny Pythonowski Debian Slim) - i tak mi się robiło najlepiej i wszystko jest proste w utrzymaniu.
@Prucjusz - naprawdę nie rozumiem dlaczego Django do swoich własnych projektów - jak już komentowałem to są o wiele prostsze rzeczy, w których można robić całkiem skomplikowane stronki.
Napisz coś więcej poza faktem, że się odbiłeś 2 razy od Django i teraz czujesz, że musisz go ogarnąć.
Zaloguj się aby komentować
@qarmin jest standardowy moduł w Pythonie, nazywa się multiprocessing. W nim znajdziesz Pool i metody typu starmap i map. Najczęściej z tego korzystam gdy trzeba zrównoległość obliczenia.
https://superfastpython.com/multiprocessing-pool-map/
# SuperFastPython.com
# example of parallel map() with the process pool
from random import random
from time import sleep
from multiprocessing.pool import Pool
# task executed in a worker process
def task(identifier):
# generate a value
value = random()
# report a message
print(f'Task {identifier} executing with {value}', flush=True)
# block for a moment
sleep(value)
# return the generated value
return value
# protect the entry point
if __name__ == '__main__':
# create and configure the process pool
with Pool() as pool:
# execute tasks in order
for result in pool.map(task, range(10)):
print(f'Got result: {result}', flush=True)
# process pool is closed automatically
Na zamieszczonym zdjęciu znajdziesz wszystkie metody z klasy Pool które możesz wykorzystać.
Zaloguj się aby komentować
Niesamowite że ktoś pomyślał że może z tym nie być problemu - zawsze powinno się budować, uruchamiać testy na docelowym sprzęcie (przecież tam będzie to wszystko działać na nie na kompie programisty lol). Dobrym pomysłem jest nawet redundancja, macie joba który uruchomi testy na x86_64 i joba na ARM, oba muszą przejść. Gdybyście kompilowali, to również im więcej kompilatorów tym lepiej. W embedded trzeba spodziewać się niespodziewanego.
A już totalną ignorancją okazali się prowadzący ten projekt jeśli uruchamiacie testy na 64 bitowej platformie, a docelową platformą jest 32 bitowy ARM
Najgorzej jak znajdziesz buga w Firefoxie i okazuje się że podobny błąd został zgłoszony w 2006 roku i od 18 lat toczy się pod nim dyskusja. Co jakiś czas ktoś pyta kiedy to będzie naprawione, następnie ktoś z mozilli odpowiada że nad tym pracuje by za dwa lata znowu dostać pytanie o postępy xD
Zauważyłem np że firefox na androidzie bardzo często odświeża strony po powrocie do niego, tak jakby od razu po przeskoczeniu do innej apki czyścił dane strony z pamięci. Oczywiście zgłoszony bug wisi od paru lat w backlogu bo niby ważny błąd ale jakoś tak nie umieją go odtworzyć
(sorki za offtop xD)
Używacie biblioteki scipy i się dziwicie… zaciągnijcie normalnie z github a nie z jakiejś cipy…
Zaloguj się aby komentować
import itertools, more-itertools
@wonsz - itertools to są ubertools
@wonsz - A do tego kiedyś popełniłem taki wpis: https://www.hejto.pl/wpis/exploring-pythons-lesser-known-standard-libraries-artykul-opisujacy-niezwykle-pr
Jedyne do czego używam pythona python3 -m http.server
@def - to i tak dobrze - bo super wygodne
@koszotorobur sudo cat /dev/random > /dev/sda1
@sebie_juki - czy ty aby przypadkiem nie próbujesz wystrychnąć nas na dudka? To nie jest one-liner Pythona ( ͡° ͜ʖ ͡°)
@koszotorobur
import subprocess; subprocess.run('sudo cat /dev/random > /dev/sda1', shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
Zaloguj się aby komentować
Każdego, kto jest pasjonatem algorytmiki i programowania gorąco zapraszamy do wzięcia udziału w XIX edycji konkursu „Potyczki Algorytmiczne”. Potyczki Algorytmiczne są najstarszym internetowym konkursem algorytmiczno-programistycznym w Polsce, adresowanym do wszystkich – uczniów, studentów, zawodowców i amatorów, bez jakichkolwiek ograniczeń wiekowych. W tej edycji, oprócz rozwiązań w C++, dopuszczamy także rozwiązania w Pythonie.
Rejestracja on-line do konkursu rusza już 1 marca 2024 r.
Potyczki Algorytmiczne w roku 2024 składać się będą z dwóch etapów:
● zdalnego – odbywającego się w dniach od 11 marca do 17 marca 2024 roku;
● wielkiego finału – rozgrywanego w dniach 24 – 25 maja w gościnnych progach współorganizatora konkursu, zielonogórskiej firmy Digital Technology Poland. DTP Ltd. Do finału zostanie zakwalifikowanych 20 zawodników.
Dla najlepszych zawodników czekają nagrody rzeczowe. Dodatkowo 128 uczestników otrzyma kultowe koszulki Potyczek Algorytmicznych 2024 oraz upominki-niespodzianki.
O kurczę zajrzę. Dzięki!
Zaloguj się aby komentować
@dziki - do robienia REST API w Pythonie polecam FastAPI - niby we Flasku też można - tylko po co
Nieużywanie popularnych frameworkow? A gdzie się mogę.zapisac?
Zaloguj się aby komentować
Podobnie mam z Type Script i "any" lub "object". Dla wyjaśnienia, TS pozwala ale nie wymusza typowanie. Więc mam takie WTF gdy ktoś poświęcił chwilę na wpisanie że coś jest/zwraca "cokolwiek" . Gdzie tu jest jakaś korzyść?
@szczekoscisk jak dobrze pamiętam, to czasami kompilator TS potrafi się przyczepić, że typ jest nieokreślony, więc żeby się nie czepiał to daje się any i fajrant ( ͡° ͜ʖ ͡°)
Przy czym dotyczy to głównie sytuacji, kiedy ktoś używa TS bo jest modny albo mu kazali.
Nie kojarzę by sam kompilator TS wymuszał typowanie (przynajmniej na szybko nie kojarzę takich przypadków), możliwe że widziałeś sytuacje gdzie "tslint" czegoś się czepiał.
Myślę, że to przez to, że lutris to dość stary projekt, a typowanie w pythonie to jednak coś dość nowego. Pamiętam, że z 10 lat temu używałem już lutrisa.
@dotevo Type hints były dostępne już w 2006 roku - https://peps.python.org/pep-3107/, uszczegółowienie/ dodanie do typów do std 2014/2015 - https://peps.python.org/pep-0484/
Lutris to projekt z 2013 roku - https://github.com/lutris/lutris/commits/master/?since=2013-12-01&until=2013-12-03
@qarmin Gdy po kilku dobrych latach z C++ zacząłem w robocie pisać w Pythonie to nie mogłem się odnaleźć i strasznie mi typów brakowało. A później się przyzwyczaiłem i juz miałem wszystko w d⁎⁎ie ( ͡° ͜ʖ ͡°) Może dlatego. W większości przypadków da się (przynajmniej u mnie) typ spokojnie wyczaić z kodu. Raz na ruski rok się nie da i wtedy używam debuggera.
Zaloguj się aby komentować
Koledzy na wykop polecili użycie `sshd`, i jest to w sumie najprostsze rozwiązanie.
Zaloguj się aby komentować
@koszotorobur zwykły Excel xlsx. Jak ręcznie otworze i usunę ten wiersz to otwieram normalnie później. Ale chodzi o to, że one maja się same otwierac
@TuzZaRogiem nie możesz po prostu olać pierwszego wiersza? Jakiś skiprow czy coś. Ewentualnie z mojego doświadczenia numpy lepiej sobie radzi z wczytywaniem plików.
@TuzZaRogiem - próbowałeś ominąć ten rząd przy wczytywaniu może: https://www.statology.org/pandas-read-excel-skip-rows/
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Pyton to język, który przybył do nas z odległej przyszłości i na który nie zasługujemy. Można zaryzykować stwierdzenie, że jest jak rdest: da się z niego zrobić wszystko.
@Prucjusz - znaczy jak konopia?
@koszotorobur chciałem być zabawny i nawiązałem do kapitana Bomby.
Z tymi silnikami gier to półprawda. Ta, obsługują czesto go do skryptów natzedzi itp. ale całych gier afaik nie ma lub to sztuka dla sztuki, tak jak kajiya w ruscie.
@Zuorion - artykuł dobrze to wyjaśnia - na przykład Godot używa pythonopodobnego GDScript.
@koszotorobur Niestety ale tworzenie gier w Pythonie to raczej ciekawostka. Praktycznie nie ma żadnej dużej gry w tym zrobionej, tylko jakieś same pomniejsze tytuły i to jest rzadkość. Pythona używa się jedynie szczątkowo przy produkcji gier. I jak sobie wpiszecie w google "gry napisane w pythonie" to wyjdzie wam kilka produkcji ale te gry to jedynie używają paru skryptów pythona do czegoś a jako główny język są napisane w czymś innym.
@Catharsis - napisanie prostych gier w "czystym" Pythonie może być dobrym wprowadzaniem do robienia poważniejszych projektów - na przykład kto zna Pythona odnajdzie się bez problemu w silniku Godot, który używa pythonopodobnego GDScript.
@koszotorobur Problem w tym, że w samym godocie też prawie nic nie powstało xd: https://godotengine.org/showcase/
Tera dopiero po tej aferze z Unity coś tam ruszyło, widziałem dostawali dofinansowania od jakiś studiów itp ale szczerze wątpie żeby godot się stał jakiś bardzo popularny, niestety.
Zaloguj się aby komentować
Taktyczny wąż na zastaw ćwiczeń Pythona
@Guma888 - Pytonga trzeba ćwiczyć regularnie!
Dla mnie to będzie nauka dopiero.
@dawid-grabarz - elektryzujący Python
ssssssssss
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Yo generalnie to na githubie to prawie do wszystkiego jest takie repo. Wpisujecie interesującą was frazę np język programowania, nazwę systemu, menagera okien itp + "awesome" i macie czasem nawet kilka wyników. Przykłady: awesome-nodejs awesome-kde awesome-hyprland czy najzabawniejsze awesome-awesome-wm (bo jest coś takiego jak awesome-wm xD).
@Catharsis uuu dzięki
Zaloguj się aby komentować