Tworząc swoją gierkę postanowiłem skorzystać z dobrodziejstwa AI które rozumie moje repozytorium.
Ma też opcje robienia przeglądu PR, i o Panie, jakie to sprytne.
Miałem sobie taką oto funkcję do ustawiania życia, nie myślałem o niej za wiele, ale zauważyłem że nie jest idealna i jest możliwy błąd z ustawieniem wartości ponad maksymalną dla danego obiektu.
Dodałem komentarz `TODO` i zapomniałem o sprawie xD
Odpaliłem przegląd przez AI i j⁎⁎⁎ny mi to znalazł, dodał komentarz i zaproponował rozwiązanie.
Ogólnie znalazł parę innych rzeczy, ale też takich niepotrzebnych.
To dopiero pierwszy dzień testów, ale zaczyna mi się podobać, szczególnie gdy nad projektem pracuje się samemu.
@rybeusz Jest Free Plan to sobie sprawdzę z ciekawości. Bo fajnie to wygląda kiedy do poprawy jest jedna linijka z dodaniem max wartości do zmiennej i jeszcze z komentarzem, że trzeba to poprawić. Ciekawe jak sobie poradzi z szukaniem błędu który jest rozsiany w kilku miejscach kodu i nie opisany xd.
OpenAI zaprezentowało nową wersję ChatGPT-4o, która zacznie być wdrażana w ciągu najbliższych tygodni i ma być za darmo (większość funkcji znanych z wersji 4.0), czyli np. dostaniemy możliwość analizowania zdjęć, wykresów, zbioru danych, czy tworzenie własnych spersonalizowanych modeli (np. jeśli chcemy aby model nas nazywał Feloniousem Gru albo Rincewindem, to możemy taki stworzyć).
To, czym wyróżnia się nowy ChatGPT od poprzednich modeli to jest jego zdolność to rozmowy na żywo z użytkownikiem. Niektóre chatboty czy asystenci (np. Klara Sobieraj od fotowoltaiki) coś podobnego już oferowały od pewnego czasu w gorszym stopniu, ale tu to wchodzi na kolejny poziom. Rozmowa przypomina tą z Alienów, Odysei Kosmicznej, filmu "Her " (polecam), albo z kobietą na żywo (podobno, nie mam porównania).
Prócz tego potrafi on świetnie symulować i udawać uczucia, umie śpiewać "sto lat ", czy "stawać się psiarzem ". Do tego wydaje różne odgłosy i emocje. Potrafi się z zawstydzić, śmiać, zażartować sytuacyjnie i wydawać różne dźwięki jakie wydają ludzie (ale chyba tylko z jednej strony :)). Prócz tego klasycznie potrafi rozwiązywać zadania, z tą różnicą że możemy pokazywać na żywo co piszemy ręcznie na kartce papieru lub tablecie , poprawiać kod, tagi na wykopie, a także oceniać nasze mordki przed kamerą. Bez problemu możemy mu przerywać (i się nie wkurzy... jeszcze, a Mazurek sobie potrenuje na nim xD). Możemy poprosić aby coś np. aby coś wyjaśnił inaczej, albo wymyślił historyjkę - podobne funkcje były już w darmowym GPT-3.5, niemniej i tu zdaje się to działać bardziej logicznie. Do tego może służyć jako tłumacz, podobnie jak ma to obecnie appka Google Translate, ale zdaje się działać znacznie szybciej. Zastanawiam się kiedy będzie mógł służyć jako tłumacz symultaniczny np. na konferencjach i spotkaniach rządowych, choć pewnie nie za szybko patrząc na ogrom modelu a to by musiał być pewnie offlineowy model z powodów bezpieczeństwa.
Patrzyłem na opinie na jego temat na grupce na fb i ogólnie opinia jest tam taka, że w połączeniu z Boston Dynamics mogą powstać ciekawe boty i androidy dla samotnych, jak w we wspomnianym "Her", albo pierwszym odcinku Black Mirror z drugiego sezonu, gdzie chat, a później android zastąpił zmarłego chłopaka dziewczyny. Są też obawy, że może doprowadzić to do oszustw na wyższym poziomie albo zbytniego monopolu Microsoftu. Są też głosy sceptyczne z czego będą pozyskiwane dane i dlaczego takie funkcje będą za darmo - a jak za darmo, to pewnie zapłacimy prywatnością. Cóż, przyszłość maluje się ciekawa, o ile ludzkość się wcześniej nie wykończy.
PS. Widziałem post godzinę temu od @cyber_biker który o tym wspomina, ale nie widziałem, aby było tu to szerzej opisane, to też czynię
PS2. Za bardzo nie wiem jak to otagować, więc walnę co się nawinie #wiadomosciswiat #technologia #programowanie #sztucznainteligencja #ai #chatgpt #komputery #pcmasterrace
Ktos wytlumaczy dlaczego... 10x zawyzyl, nie liczy belki, przecinek - to my tak w PL zaznaczamy tysiace a miejsca dziesietne kropka? Litosci.
AI, najlepsi programisci a takie cuda, AI to haslo marketingowe nic wiecej, przynajmniej na dzis dzien.
Bankier.pl mial fajny kalkulator, liczyl na dowolny okres czasu (od 1 dnia), odciagal belke itp. Ale zastapili go nowym g.... ktore nic nie umie w porownaniu do poprzedniego ale za to wbudowany ma naganiacz do ofert bankowych.
Bo tak liczą w Ameryce XD To amerykański model który opromtowany jest amerykańskim spojrzeniem na świat pomimo że gada po polsku. Widać to też np w gramatyce.
Chce usprawnic zamawianie potrzebnych rzeczy w pracy.
Jak narazie wyglada to tak ze w piatki na zebraniu wszyscy mowia co potrzebuja. Np. Ze konczy sie klej taki i taki, ze zlamalo sie narzedzie, ze potrzebna jest nowa myszka bo zacina. Menager robi liste.
Problem jest taki ze ten system niedziala. Ktos zapomni o czyms powiedziec, inny czasami czegos niezapisze, zgobi kartke, itp.
Jest jakies mega proste gotowe rozwiazanie tego problemu? (Sporo osob ma 60+lat i nieogarnia nowinek)
Najlepiej jakis program gdzie by byla lista 50 rzeczy do wyboru Tak zeby kazdy mogl podejsc do komputera, wybrac z listy co potrzebuje i ile tego. A to by szlo na liste do wydrukowania.
@Mielonkazdzika ciężko powiedzieć skoro nie znam firmy i narzędzi jakich używacie. Ile osób pracuje. Kto ogarnia zamowienia. Co zamawiacie. Ogólnie rozwiązań wiele ale trzeba znać organizacje, żeby z taką rzeczą pomoc.
Jak macie office 365 i dostęp do forms to polecam tam zrobić.
Najlepiej to będzie zdawała egzamin tabela wydrukowana na kartce i przypięta do jakiejś tablicy wraz z długopisem na lince. Najlepiej obok kantyny, czy szatni, czy gdzie tam zawsze się zbierają podczas przerw wszyscy.
4 pozycje w tabeli: zapotrzebowanie na produkt | ilość | dział/osoba | data
wisi sobie przez tydzień, każdy wpisuje co potrzebuje i w pt. leci zamówienie
A nie że raz w tygodniu walne spotkanie i "jakie chcecie towaaaaary moi drodzi" xD
Wprzęganie na siłę elektronicznych rozwiązań, gdzie nie są one do niczego potrzebne to proszenie się tylko o nowe problemy.
Mój wykładowca od procesów stochastycznych powiedział że procesy stochastyczne i procesy Wienera są użyteczne w pracy z komputerami i z analizą danych. Może mi ktoś podać praktyczny przykład?
Przykładowo, umiem policzyć na kartce prawdopodobieństwo
P(W1 - W3 > W2 | W2 > 0) gdzie Wn jest 1 wymiarowym procesem Wienera o rozkładzie normalnym z (mu = 0, var = n)
i dostać konkretną liczbę która może oceniać np. prawdopodobieństwo na to że bitcoin przebije jakiś próg, żeby wchodzić w trade-y które są "pewniaczkiem", ale to wydaje się zdecydowanie za proste (na poziomie licencjatu uczyliby mnie tajnego sposobu na shackowanie rynku, który gdyby działał to każdy by go używał?).
Czy umiałby mi ktoś podać przykład praktycznego zadania z zastosowaniem takich procesów stochastycznych, a zwłaszcza procesu Wienera? Do tego fajnie by było podać interpretację i zastosowanie całki Ito.
Taguję #finanse bo w nich też się tego używa podobno
Jak to jest z tym Django w Pytonie? Warto poświęcić na to czas? Ktoś zna jakiś poradnik, który byłby przystępny dla nieogara(idealnie by było, gdyby był w języku polskim)?
@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ąć.
Jak często korzystacie z testów jednostkowych w swoich projektach?
Języków znam kilka, ale głównie z testami jednostkowymi miałem styczność jedynie w Pythonie i Rust.
W pythonie widzę że czasami niektóre repozytoria chwalą się coverage sięgającym niemal 100%.
W przypadku Rusta, ilość testów jest powiedzmy szczerze dosć ograniczona.
Mimo że uważam testy jednostkowe ogólnie za coś bardzo dobrego, to jednak bliżej mi do ich pisania tam gdzie niezbędne a nie dopychania ich na ilość.
W Rust, widzę że głównie pisze się testy do funkcji bez skutków ubocznych, czyli wrzucamy cos do środka i oczekujemy określonego wyniku(choć oczywiście są wyjątki).
W Pythonie jednak widzę że testuje się absolutnie wszystko, a to za sprawą że można zmockować niemal wszystko.
Trzeba dodać coverage do funkcji z pobieraniem informacji z bazy danych?
Nie ma sprawy, mockujemy połączenie i testujemy zwracanie wyjątku, losowych czy pustych danych.
Niby fajnie, ale jednak z tego co widzę to wydaje mi się że czasami takie funkcje testują bardziej to czy kod jest poprawnie zamokowany a nie samą logikę funkcji i są robione jako sztuka dla sztuki(lub po to by podbić coverage).
Często widzę że też takimi testami próbuje się testować, co się stanie jeśli typy nie są poprawne, coś co niemal nie występuje w językach silnie typowanych typu Rust lub C++, bo już kompilator odrzuca sporą część niepoprawnego kodu.
Jakie są wasze opinie o dużym coverage w zależności od języka dla którego testy są pisane?
#programowanie
W jakie wartości co do testów jednostkowych celujecie w swoich projektach?
@qarmin koledzy zdaję się wyczerpali temat, ja tez stoje po stronie pisania testów, od siebie jeszcze dodam, że testy naturalnie tworzą dokumentację projektu. Najłatwiej jest sprawdzić jak się zachowuje komponent za pomocą testów i najlepiej naprawić buga najpierw pisząc test do przypadku.
@qarmin ja bym przede wszystkim chciał podkreślić, że testy jednostkowe to głównie narzędzie służące do projektowania, wymuszające stosowanie dobrych praktyk. W sumie czyste unit testy mają sens przede wszystkim w TDD, jeśli piszemy je później niż kod, to sens ich pisania jest dyskusyjny. Dobrze się natomiast sprawdzają w roli żywej dokumentacji. To testy integracyjne powinny służyć do wykrywania regresji, tych można stworzyć zdecydowanie mniej, za to każdy powinien mieć wielokrotnie większe pokrycie kodu. W praktyce, jeśli zespół nie stosuje TDD, to właśnie na takim rodzaju testów warto się skupić.
Pracuję przy takim projekcie w node, gdzie ktoś sprytny testuje timery bez użycia mocków, test po prostu czeka aż te timery odczekają swoje, nic mnie tak nie wkurwia jak odpalanie testów w tym projekcie xD.
po pracy w januszexie-startupie, gdzie nigdy nie bylo czasu na testy, nauczyłem się, jaką mają wartość. Zawsze na koniec projektu przy małej zmianie koncepcji ze strony klienta, caly kod sie zaczynał się j⁎⁎ać, bo choćby nie wiem co, nie jesteś w stanie zawsze mieć w głowie całego projektu.
Odkąd odszedłem z tej firmy, zacząłem robić wszystko uzywając TDD. Bez TDD twój kod = gówno. Choćby nie wiadomo jak czytelny i sprytny, bez dobrych testów nie jest niczego warty.
instalujesz na serwerze lub serwerach i można wyklikać sobie setup aplikacji. Bazy danych, redisy, inne komponenty, zintegrować od razu z git repo by był automatyczny deployment. Polecam zainstalować sobie na jakiejś vm’ce lub lxc.
Wygląda, że Rust ma swoje 5 minut, na scenie języków programowania i jest znany ze swojej wydajności bliskiej C/C++.
Zatem w jaki sposób nowy język mógłby uszczknąć nieco popularności od Rusta? Ano poprzez twierdzenie że jest on szybszy o 50% od niego w jednym z benchmarków.
Tym językiem jest Mojo
Być może się zastanawiacie, czemu dodałem tutaj tam emotkę ognia - ano bo tak się ten język nazywa - serio w nazwie takie coś mają, sprawdźcie sami.
W skrócie jest to język przeznaczony do AI, interoperacyjności z Pythonem, przy zachowaniu jego prostoty i wydajności porównywalnej lub większej niż Rusta.
There are a lot of considerations surrounding any benchmark implementation, you can't use any one benchmark to say x language is faster than y language
a następnie widzimy jak to właśnie tym benchmarkiem chcą udowodnić
Widać potem opis kilku elementów, które twórcy uważają że są one powodem tej lepszej wydajności(całkiem logiczne w większości btw.) tj. pożyczanie wartości zamiast jej kopiowania, TCO czy dobre wsparcie dla simd, oraz ostatecznie owy benchmark.
Na tym ta historia mogłaby się zakończyć, gdy oczywiście nie jakiś wścibski programista, który chciał przetestować ową wydajność.
Odkrył on, że kod w Mojo , robi mniej walidacji niż testowane programy.
Przy wybranej większej ilości optymalizacji, kod w Rust czasowo niemal zrównał się z tym z Mojo , a program napisany w języku Julia, oba mocno wyprzedził.
Wygląda, że Mojo jest ciekawym projektem, którego rozwój warto mieć na oku, ale jego zamknięty kod, masa błędów(ciągle jest w fazie alpha) czy szukanie taniej sensacji przy naginaniu reguł, pozostawia niesmak i obawy o rzeczywiste działanie w przyszłości.
Żeby język mógł zaistnieć musi mieć przede wszystkich ogromną bibliotekę. Rust jest jeszcze w fazie gdzie się mnóstwo tworzy, a same staty wiosny nie czynia. Choć już czytałem że hype na ten język się trochę wypalil.
@kodyak Linux i Windows dopiero zaczynają wdrażać go do swoich kerneli, a nie jest to przecież lekkomyślna decyzja, więc według mnie to dopiero początek hype niż jego koniec
@qarmin koniec hype to nic złego. Teraz język już ma dużo łatwiej w rozwoju i ma potencjał. Grunt to też mieć dobry port z c++ a ten wygląda że ma niezly. W ogóle język ma dużo plusow
Czy jakaś mądra głowa wytłumaczy dlaczego zawartość apki hejto przesuwa się jak w bardzo starych monitorach, gdzie brakowało rozdzielczości? To znaczy, że zamiast o cały piksel za każdym razem, to tak jakby najpierw część się o ten jeden piksel wydłużała a dopiero później skracała? Widać to na tekście jak się przyjrzycie.
Od prawie roku korzystam z AI(chatgpt i github copilot) do pomocy przy programowaniu i muszę przyznać że potwornie się mi te narzędzia przydają i znacznie przyspieszyło mi to niektóre czynności.
W moim przypadku działa to świetnie do:
Tworzenia funkcji mapujacych obiekt z jednej klasy do drugiej(np. From/TryFrom w Rust)
Dopisywania logiki w prostszych funkcjach - czasami wystarczy wpisać nazwę funkcji, argumenty i zwracany typ, by cała logika którą oczekiwałem była wpisana do środka
Podpowiadaniu w jaki sposób używać danej biblioteki - zdarza się, że mimo przeczytania dokumentacji, nie mam pomysłu w jaki sposób użyć danej funkcji i zwykle podpowiedzi nawet nie do końca trafne, kierują mnie na właściwe rozwiązanie (pomogło mi to przy bibliotece diesel, która jest trudna do opanowania)
dzięki temu, zamiast żmudnego kopiowania i wklejania czy też tworzenia mniej wymagających funkcji, mogę skupić się na bardziej wymagających zadaniach.
Jednak zauważyłem, że pod niektórymi wątkami na reddicie i innych forach, jest spora rzesza osób, które z ai wcale nie korzystają(nie dlatego że nie wiedzą, ale bo nie chcą korzystać).
Jednym z argumentów, jest kwestia etyczna, bo kod nauczony przez ai nie jest w żaden sposób sprawdzany pod kątem licencji oryginalnego kodu.
Inny argument to kwestia tego, że więcej szkodzi(lub bierze więcej czasu niż jakby pisać to wszystko ręcznie) niż pomaga - akurat w moim przypadku argument chybiony.
Obydwa nadają się do trywialnych i prostych zadań. Niech dla przykładu zaproponuje Ci rozwiązanie problemu, gdy mając jakąś starą aplikację w Javie (choćby 7 i starsze) musisz zacząć obsługiwać TLSv1.2. Skończysz na przepisywaniu aplikacji lub tysiącu propozycji, z których żadna nie zadziała.
Dopiero się z tym ogarniam, wiele prostych podpowiedzi jest spoko, niestety jak już trzeba coś na poważnie skonfigurować to sugestie AI są - delikatnie mówiąc - z pupy.
U mnie niestety przydatne tylko do wskazania ogólnego kierunku - w narzędziu z którym pracuję najczęściej kod napisany przez chatGPT po prostu nie działa. Za dużo halucynacji, wymyśla biblioteki które nie istnieją, wrzuca nieaktualne biblioteki albo takie które nie są wspierane w wykorzystywanej przeze mnie wersji tylko następnej, albo podaje kod który zwyczajnie nie zadziała bo korzysta ze słów kluczowych czy funkcji które nie istnieją. Często też podaje użycie funkcji w sposób w który nie da się z nich skorzystać (np totalnie złe argumenty). A czasami zapytany o stworzenie jakiejś logiki zwraca deklarację funkcji z jej nazwą i komentarzem - dopisz sobie resztę xD
Szkoda bo narzędzie jako takie bardzo przydatne, ale najwyraźniej moje środowisko pracy zbyt mało popularne żeby umiał sobie z nim poradzić.
Wprowadzenie do "programowania" układów FPGA na prawdziwym przykładzie. Coś więcej niż nudne miganie ledami. Kanał mocno niszowy, ale moim zdaniem warty uwagi.