piątek, grudnia 29, 2023

Mistral czeka na książkę

Bawię się Mistral'em, to taki nowy LLMowy model, który działa całkiem szybko nawet na Macbooku Air z 2020 roku.

I podpiąłem go dziś do mojego detektora kolejnej książki ze świata Bobiverse... i drań jak czytał:


To uznawał z moim promptem (który działa z ChatGPT), że książka jest jak najbardziej dostępna...

Prompt wyglądał tak:

I have a status update snippet from an author's page. From this snippet, I need to know:Whether the book mentioned is currently available for purchase.The exact title of the book.Any hint or specific date mentioned for the book's release.Please provide the answers in JSON format like: {{ "bookAvailable": true/false, "bookTitle": "Title Here", "bookReleaseDate": "Date or Hint Here" }}.Here's the snippet: {item}

Dawał odpowiedź, że tak książka jest dostępna i nazywa się The Bobiverse i release date to styczeń albo luty 2024....

Dopiero gdy zmieniłem go na:

Read status update snippet from an author's page. From this snippet, answer questions:Whether the book as ebook not audiobook mentioned is currently available for purchase.Where this book as ebook not audiobook is available for purchase.The exact title of the book.Any hint or specific date mentioned for the book's release.Please provide the answers in JSON format like: {{ "bookAvailable": true/false, "whereToBuy": "information where as ebook not audiobook may be purchased", "bookTitle": "Title Here", "bookReleaseDate": "Date or Hint Here" }}. Here's the snippet: {item}

W którym jak widać dodałem informacje, że chodzi o dostępność jako ebook, a nie audiobook to zaczął działać w miarę znośnie ;-)

Mój "moduł" mistral.py wygląda tak:

import urllib
import urllib.request
import json

def talkToModel(query,model="mistral"):
data = {
"model": model,
"prompt": query
}
url="http://localhost:11434/api/generate"
json_data = json.dumps(data).encode('utf-8')
print(json_data)
req = urllib.request.Request(url, data=json_data, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(req)
result=response.read()
lines=result.decode("utf-8").strip().split("\n")
content="".join([json.loads(x)["response"] if len(x)>0 else "" for x in lines])
return content



Podobne postybeta
GPT + Python = sprawdzanie czy 5 książka z Bobiverse już jest dostępna ;-)
Żenienie Todoist z Obsidian przy pomocy Pythona ;-)
Kiedy skończyć pracę...
Search it later ;-)
Jak nie zapomnieć kupić biletu miesięcznego - revised ;-)

wtorek, grudnia 26, 2023

Czemu obecny Sejm i rząd są wyjątkowe?

Są święta więc post polityczny jest jak najbardziej na miejscu ;-)

OK, czym różniły się ostatnie wybory od tych wcześniejszych?

To pierwsze wybory gdy rządzący dostali poparcie które przewyższa 1/3 wszystkich uprawnionych i prawie ociera się o 40% uprawnionych.

Tu wykres który to pokazuje:


Niebieskie to % głosów zdobytych przez zwycięzcę do liczby głosujących, a zielony to % głosów zdobytych przez zwycięzcę do uprawnionych. Belki od lewej to lata wyborcze -1997 (AWS+UW), 2001 (SLD+PSL), 2005 (pierwszy PiS + Samoobrona + LPR), 2007 (PO+PSL), 2011 (PO+PSL), 2015 (drugi PiS), 2019 (kontynuacja drugiego PiSu), 2023 (KO+3D+Lewica).

Jak widać to są najbardziej "reprezentatywne" wybory w od 1997 roku (wcześniejszych nie robiłem bo im dalej w las tym trudniej zebrać dane i trzeba ich dłużej szukać ;-))

Ciekawe jest to, że poza 2019 rokiem PiS zawsze dochodził do władzy mając tak poparcie 18-19% wszystkich uprawnionych. W 2015 dostali jeszcze bonus za Razem.
Ciekawe jest też to, że gdy wygrywał PiS nigdy nie uzyskał wraz z ewentualnymi koalicjantami większości wśród głosujących.

Taktyka PiS to zmniejszanie liczby głosów które muszą dostać by rządzić. Jakie były pomysły PiS ostatnio? Np. utrudnienie głosowania ludziom z zagranicy, nie zmienianie liczby mandatów przypisanych okręgom, dzięki czemu mandaty w "ich okręgach" są tańsze i potrzeba mniejszej ilości głosów.

Tu też jest ciekawe, liczba głosów na 1 mandat zwyciężccy zawsze zaczyna rosnąć po tym jak rządzi PiS, co sugeruje, że elektorat się wkurza i idzie gromadnie na wybory. To zresztą świetnie pasuje do tego co można znaleźć w The Dictator's Handbook, bo to wydaje się być niemal takim obserwacyjnym prawem demokracji, że rządy antydemkratów zwiększają zainteresowanie ludzi wyborami. 

Co ciekawe najbardziej radykalne zmiany ustrojowe też są robione gdy mandat jest najtańszy ;-)

Od 1997 roku "najtańszy" mandat był w 2005 roku, przy pierwszym PiS, "kosztował" wtedy tylko 22.3 tysiąca głosów. PiS skrócił wtedy kadencję KRRiT (zrobili to ustawą co było wątpliwe prawnie), stworzyli policję polityczną (zwaną CBA), rozwalili wywiad wojskowy, próbowali wrobić własnego wicepremiera w korupcję. Drugi "po taniości" mandat przypada na 1997 rok, gdy mandat koalicji AWS+UW kosztował 23.6 tysiąca głosów. Wtedy zmieniono cały układ administracyjny Polski, stworzono Kasy Chorych, wprowadzono gimnazja. Kolejny jest drugi PiS w 2015 i 24.3 tysiąca głosów na mandat. Mamy rozwalenie Trybunału Konstytucyjnego, neoKRS, stworzenie RMN żeby odebrać KRRiT kontrolę nad mediami.

Obecna koalicja ma najdroższy mandat w historii, 1 mandat kosztował ją 46770 głosów. Nie spodziewałbym się więc po nich zbytnich rewolucji, bardziej porządkowanie burdelu który wprowadził PiS.




Podobne postybeta
1 na 9 głosów
Ważne kto i jak liczy głosy....
Jak można przegrać wybory gdy się je wygrywa?
To i ja planowałem zamach stanu?
Żenada....

piątek, grudnia 01, 2023

Czytelniczy listopad

Było lepiej niż w październiku ;-) ale to głównie przez wyjazd do Wenecji i duże ilości chodzenia, które doprowadziły do tego, że przesłuchałem 2 z 3 audiobooków ;-)

Z przeczytanych w listopadzie przeczytałem:

  • Spryciarz z Londynu aka Dodger - Terry'ego Pratchetta
  • Nacja - Terry Pratchett
  • The Proteus Bridge -  Aaron James Sutch and M. D. Cooper

Dwie pierwsze to było ponowne czytanie, wcześniej próbowałem czytać Dune i mi nie wchodziła ;-)

Trzecia to taka próbka nowego cyklu, tak sobie poszło, w razie czego kupiłem kolejną książkę i zobaczymy.

Teraz czytam prequel do Hunger Games, czyli The Ballad of Songbirds and Snakes i hmm.... nie wiem czy skończę, ogólnie ja nie lubię bohaterów którzy są źli, nie chcę wnikać w umysł Snowa (co najpewniej dowodzi, że nie jestem nastolatką ;-))

Z audiobooków w listopadzie mam:

  • The Innovators - Walter Isaacon
  • Disunited Nations: The Scramble for Power in an Ungoverned World - Peter Zeihan
  • The End of the World Is Just the Beginning - Peter Zeihan
Lubię Zeihana, ale mam wrażenie, że jego model tłumaczenia świata jest zbyt uproszczony, nadal jest ciekawy i wnosi ciekawą perspektywę.
Wcześniej czytałem tylko The Accidental Super Power (której teraz zresztą słucham ;-)), chociaż Peter Zeihan jest najlepszy w takich krótkich 5-10 minutowych filmikach, które wrzuca niemal codziennie na YouTube'a.

Z książek męczonych w listopadzie jest Dune i The End of Eternity Asimova (ja to chyba kiedyś, dawno temu czytałem po polsku), Dune jest lepsze, ta Asimova to jednak nie jest to, chyba za bardzo z perspektywy lat 50, może przez to, że ACC zwykle miał bohaterów do wypełnienia świata, a u Asimova oni jednak mieli jakąś głębie i przez to świat z tak płaskimi i mało ważnymi postaciami kobiecymi jest trudny do strawienia? 



Podobne postybeta
Książki w grudniu ;-)
Książkowy sierpień
Lipcowe książki :-)
Styczniowe książki
Comfort book

środa, listopada 29, 2023

Czemu mam żal do Razem

Przyznaję bez bicia, że mam problem z Razem ;-) niby mi się podobają, bo tacy fajni lewicowi, ale... 

To ale, to to, że IMHO niechcący Razem pomogło PiS w 2015 roku.
Teraz też nie będzie w rządzie, a te parę lat temu chcieli zabrać limit 30x miesięcznego wynagrodzenia....

Ale wracając do "pierwszego grzechu" ;-) to IMHO świetny występ Zandberga w telewizorze w trakcie debaty przed wyborami 2015 sprawił, że część wyborców Lewicy, w tym ja zagłosowała na Razem zamiast na Lewicę.
Byłem na 100%, że zagłosuję na Zjednoczoną Lewicę, ale Zandberg tak fajnie mówił, że stwierdziłem, że co mi tam, zagłosuję na Razem....

I tak im dalej w las tym bardziej myślę, że gdybym nie zagłosował wtedy na Razem to może nie byłoby 8 lat PiS....

Zrobiłem sobie eksperyment i przeprowadziłem te wybory szukając takiego procentowego przepływu wyborców gdzie dany procent wyborców Razem zamiast na Razem zagłosowałoby w 2015 na Zjednoczoną Lewicę. 

Wyszło mi, że wystarczyłoby by w każdym okręgu 12.54% wyborców Razem zagłosowało na Zjednoczoną Lewicę, zamiast na Razem i PiS nie miałby 235 mandatów, a 218... 

(To jest wynik dla założenia, że w każdym okręgu na listę Zjednoczonej Lewicy głosowali ci którzy głosowali plus 12.54% wyborców Razem)

Numer listyNazwaMandaty w 2015Mandaty w 2015 gdyby część wyborców Razem głosowała na Lewicę
1Komitet Wyborczy Prawo i Sprawiedliwość235218
2Komitet Wyborczy Platforma Obywatelska RP138131
6Koalicyjny Komitet Wyborczy Zjednoczona Lewica SLD+TR+PPS+UP+Zieloni-33
7Komitet Wyborczy Wyborców „Kukiz'15”4239
8Komitet Wyborczy Nowoczesna Ryszarda Petru2824
5Komitet Wyborczy Polskie Stronnictwo Ludowe1614
16Komitet Wyborczy Wyborców Mniejszość Niemiecka11

Wychodzi na to, że gdyby trochę mniej niż 98 tysięcy Polaków zagłosowało wtedy nie na Razem, a na Zjednoczoną Lewicę to PiS nie miałby większości w Sejmie i musiałby budować koalicję. 
Fakt, pewnie by sobie wzięli paru, albo i wszystkich od Kukiza, albo PSL i mieliby większość, ale jest minimalna szansa, że nie mieliby mocy sprawczej do rozwalenia TK, a powiedzmy wprost to był pierwszy krok do takiego pełzającego zamachu stanu. Może byłaby Rada Mediów Narodowych, ale jest duża szansa, że TK mógłby ustawę o niej unieważnić skoro wchodziła w kompetencje organu konstytucyjnego jakim jest KRRiT. Ogólnie mogłoby być lepiej.

Tak winię siebie za ten wynik, ale podświadomie też widzę w Razem taki element pomagający PiSowi... 

Jedna rzecz od wtedy mam podejście, że głosuję ZAWSZE na największą listę na lewo od PiS (antydemokratycznej partii, bo jak się z PiS mogę nie zgadzać w światopoglądowych rzeczach, mogę uważać, że 500+ było niepotrzebne, to byłbym OK z tym wszystkim gdyby nie hackowali systemu tymi harcami przy TK i podobnymi).


Podobne postybeta
Czemu mam żal do Razem, part 2 ;-)
Przewidujemy wyniki wyborów ;-) - wyniki
Atak UFO, czy co?
I po wyborach :-)
1 na 9 głosów

środa, listopada 22, 2023

Czy kosmita zobaczy rusztowania?

Istnieje szansa, że już o tym kiedyś pisałem, bo to pytanie mi się pojawia już któryś raz gdy jestem w Wenecji ;-)

A pytanie jest mniej więcej takie, czy ktoś kto wychował się poza "naszą kulturą" (czyli albo na tej wyspie obok Indii gdzie mieszka kilkaset osób i nie mają kontaktu ze światem zewnętrznym, albo z tymi którzy żyli na Ziemi powiedzmy 150 lat temu) zobaczy w ogóle te rusztowania przy pałacu Dożów?



Gdy my widzimy w takim serialu Rome ubrania Rzymian to wyglądają nam oni rzymsko, chociaż podobno ubiory tam są mieszanką różnych sposobów ubierania się w ciagu 100 lat chyba.

Tutaj jest różnica ciut większa bo jakieś 600 lat, różne są też technologie.... 

To OK, niech człowiek zobaczy nawet, ale czy kosmita by zobaczył?

Popytałem Barda od Google (bo ChatGPT nie działa...) i jako kosmita twiedzi, że najpewniej odróżniłby rusztowanie od budynku na tych zdjęciach, to samo jako rosyjski mieszkaniec wsi z 1900 roku, nie jest pewien jako mieszkaniec wsi w Indiach w 1000 roku, albo Aborygen w 1500.



Podobne postybeta
30 baniek na piramidę
Budżet na spotkania
Nuda w Wenecji...
Jak nic nie robiąc robię się mniej Polakiem ;-)
Jak tak dalej pójdzie to Polacy wymrą....

piątek, listopada 17, 2023

Tłumaczenie stron nie jest dobrym pomysłem ;-)

Nie lubię jak strony próbują do mnie pisać po polsku.
Dziś odprawiałem się na lot i w końcu zobaczyłem coś takiego:


I wyobraźcie sobie ten mindfuck który miałem w głowie, czy jak to kliknę to anuluję odprawę, albo ją zakończę?

Nie wiem też skąd ta strona miała pomysł na to by pisać do mnie po polsku.

System mam po angielsku, w przeglądarce mam ustawiony amerykański angielski jako język domyślny, a polski jest niżej na liście...

Sprawdziłem i w mailu jest link, i w linku jest l=PL...

Gdy zmieniłem na EN, ten guzik wygląda tak:

I jak polskie tłumaczenie nie ułatwia to po angielsku też nie jest zbyt jasno i jednak to jest generalny problem z usability ;-) 
Co by szkodziło dać "Finish check-in", a po polskiemu "Zakończ Odprawę"?


Podobne postybeta
WWŚ i wielkie hałdy książek
"Aplikacyjka" ;-)
Koronawirus - jak na mnie wpływa
Google Translate po polsku!!!! :-)
Amerykański zegarek jest trudny ;-)

poniedziałek, listopada 13, 2023

Rammstein w 2024 - przychodzą bilety ;-)

To jak dobrze pójdzie w przyszłym roku będę 5 razy na Rammstein ;-)

I przyszły już bilety do Drezna :-)


Ładnie wyglądają w połączeniu z tymi z poprzednich lat ;-)


Chociaż w 2024 roku jeden będę miał elektryczny :-( ale do FireZone to tyle fajnie :-)



Podobne postybeta
Rammstein 2024 x4?... a jedna x5 ;-)
Urodziny ;-)
Projekt Yes part 2 ;-)
Rammstein :-)
Rammstein w 2024 roku....

Chyba zacznę notować po angielskiemu... coby pomóc AI ;-)

Tak sobie robię kurs z Deeplearning.AI o LLMach (ale taki "managerski" narazie) czyli Generative AI for Everyone i wychodzi, że dla swoich potrzeb gdybym chciał używać LLMów do pracy z moimi notatkami lokalnie to powinienem chyba notować po angielsku ;-)

Bo to jest tak, do LLMów takim pierwszym stopniem customizacji jest użycie RAG (Retrieval Augmented Generation), co oznacza, że dodajemy do modelu kawałek zwykłego kodu, który czyta sobie nasze pliki i gdy wpisujemy pytanie dla LLMa to szuka po naszych plikach rzeczy, które "pasują" (szuka różnie, to już szczegół implementacji, acz ważny ;-)) i wrzuca je do prompta, który wtedy jest wzbogacany o coś w stylu "w swojej odpowiedzi uwzględnij informacje poniżej" i tekst z lokalnych plików.

Lokalnie mam GPT4All i oni tam mają możliwość dodania Library czyli tak naprawdę folderu z tekstami, których GPT4All powinno używać.
Jednak same modele dla GPT4All są trenowane głównie na angielskim i gdyby notatki były głównie po angielsku to powinno to ułatwić GPT4All pracę ;-)

OK, inna sprawa, że GPT4All jest jednak taki sobie ;-) ale można liczyć, że wraz ze wzrostem mocy obliczeniowych takie lokalne rozwiązania będą bardziej sensowne i te modele też urosną, a wtedy takie notatki po angielsku mogą pomóc.



Podobne postybeta
Bawię się GPT4All
Mam kryzys wiary w lokalne LLMy ;-)
A może by odkurzyć AI? ;-)
Bob wykazuje inicjatywę ;-) i jakże piękny mógłby być Googlebook....
Samochód jako zmniejszacz temperatury.... GC i jak to możliwe, że Young Generation może być zbyt duże, strzeż się finalize() i muzyczka :-) Czyli potok świadomości....

sobota, listopada 11, 2023

Pixel vs iPhone ;-)

OK to od jakiegoś czasu jako daily drivera używam iPhone 15 Pro Max, mam też jako sidecara ;-) Pixela 8 Pro (tak, odbiło mi, chociaż powody są głębsze)

No i jest tak, że jakoś nadal mimo 2 lat używania iPhone'ów (wcześniej 14 Pro Max) to nadal jakoś tak bardziej wolę Androida, Pixel 8 Pro jest też dla mnie jakiś taki milszy w dotyku, jakoś lepiej mi w rękach leży.

Dziwnie dzieje się w zdjęciach. Od jakiegoś czasu robię zdjęcia najpierw jednym, później drugim (co musi dodawać mi wyglądu szaleńca jeśli ktoś się temu przygląda, że najpierw robię zdjęcia aparatem z jednej kieszeni (zwykle klika bo dla 1x, 2x i czasem też dla 5x i 0.5x), a później to samo z drugiej) i co dziwne zdjęcia iPhone'a są takie jakby "pewniejsze". 
Tzn. zdjęcia z obu są równe, chociaż czasem zdjęcie z Pixela jest lepsze, albo gorsze, wygląda to tak jakby iPhone był takim baselinem i Pixel czasem ponad niego wyskakuje, a czasem schodzi poniżej. 

Zdjęcia są jednak zwykle tak podobne, że gdy je oglądam w Google Photos w przeglądarce to żeby stwierdzić, który aparat je zrobił muszę spojrzeć do "metryczki" zdjęcia albo wnioskować z tego czy jest szerszy ciut kadr czy węższy (2x i 5x od Pixel 8 Pro są takie jakby mniejsze od tych z iPhone'a, albo większe, zależy jak na to patrzeć, w tym sensie, że stojąc po drugiej stronie Wisły obejmuję Wawel w 2x cały w iPhone'ie, a w Pixelu już ten Wawel ciut się nie mieści).
Chociaż trzeba przyznać, że ostatnimi czasy robię zwykle zdjęcia wieczorami lub gdy jest mało światła, za jakiś czas będąc w Wenecji powinienem mieć więcej światła ;-)

Czyli tak, w dotyku wolę Pixel 8 Pro, do zdjęć coraz częściej sięgam tylko po iPhone'a 15 Pro Max.

Mam tu tak samo jak w momencie gdy zmieniałem OS ;-) dociera do mnie, że nie ma 1 rzeczy która jest najlepsza. 



Podobne postybeta
Praca na stojąco - wersja pro ;-)
Android jednak rządzi w klawiatury
Apple na Marsie ;-)
Dobrze wykorzystany programista
Dla mnie Apple Watch to jedyny powód by używać iPhone'a ;-)

czwartek, listopada 09, 2023

GZIP mi oddał 119 GB dysku ;-)

Gdy dziś zaczynałem dzień miałem 47 GB wolnego miejsca na dysku w firmowym Macbooku, teraz mam 166 GB ;-)

Odpaliłem mój skrypt, który tu już chyba kiedyś wrzucałem i zrobił porządki ;-)

Mam tak, że mam 1 katalog gdzie trzymam dużo danych w JSONie i lubię te dane mieć i nie chcę ich kasować, ale 1 kawałek danych to tak z 2-6 GB ;-)

No i potraktowanie tego GZIPem robi różnicę ;-)

Mój skrypt, który jakiś czas temu tu chyba wklejałem i który napisałem razem z ChatGPT wygląda tak ;-)

import os
import gzip
import concurrent.futures

def compress_file(file_path):
if not file_path.endswith('.gz'):
print(f"Compressing file {file_path}...")
with open(file_path, 'rb') as f_in:
with gzip.open(f"{file_path}.gz", 'wb') as f_out:
f_out.write(f_in.read())
os.remove(file_path)
else:
print(f"File {file_path} is already compressed in GZIP format and will not be compressed again.")

def compress_files_in_folder(path):
file_count = len([f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))])
if file_count > 500:
print(f"Compressing files in directory {path}...")
with concurrent.futures.ThreadPoolExecutor() as executor:
for filename in os.listdir(path):
file_path = os.path.join(path, filename)
executor.submit(compress_file, file_path)
else:
print(f"The number of files in directory {path} is less than 500.")

def process_folders():
root_path = os.getcwd()
with concurrent.futures.ThreadPoolExecutor() as executor:
for dirpath, dirnames, filenames in os.walk(root_path):
executor.submit(compress_files_in_folder, dirpath)

process_folders()

I działa tak, że po prostu idzie po podfolderach i jeśli jest tam więcej niż 500 plików to wszystkie z nich pakuje GZIPem... jeśli jeszcze nie są spakowane ;-)

Do tego mam bibliotekę w Pythonie do czytania danych i zamiast robić json.loads("\n".join(open(fname).readlines()) robię util.load(fname) ;-)




Podobne postybeta
GZIPem w plika z pomocą ChatGPT ;-)
Odzyskać trochę miejsca na dysku... w macOS ;-)
Jak zrobić plik OVPN (dla OpenVPN) w wersji unified format?
Żenienie Todoist z Obsidian przy pomocy Pythona ;-)
Mistral czeka na książkę