Podobne postybeta
32 bity... wrrrrr....
Elektryczna kanapka....
Przydatne i nieoczywiste "narzędzia" czy rzeczy, które pomagają w podróżach
Ładne rzeczy ;-)
Jak się topologicznie wprowadzać ;-)
Tak do mnie dotarło, że jak Google+ istniało to oglądanie social media było ciekawe, jakieś fajne strony tam można było znaleźć, ciekawe stwierdzenia.
A teraz? Na Twitterze algorytmy aktywnie działają żeby rozpętać wojnę między plemionami (Elon musiał kazać im przekręcić na maxa pokrętło "negative engagement", czyli specjalista od szczepionek będzie dostawał sam bełkot antyszczepionkowców, a antyszczepionkowcy tylko rzeczy o szczepionkach, wyborca Koalicji 15 października widzi praktycznie tylko polityków PiS, pewnie wyborca PiS tylko tych Koalicji 15 października).
Na Facebooku zaś algorytm nie mogąc mi pokazywać reklam i niewiele wiedząc o mnie poza demografią (bo używam Facebook Container) ciągle pokazuje mi jakieś dowcipy, co jakiś czas próbuje wciskać AIowe grafiki z aktorkami i tyle...
Aż człowiek chciałby mieć tyle samozaparcia by to wszystko skasować ;-)
A są jeszcze Instagram - którego NIE ROZUMIEM, Threads - którego nikt chyba już nie używa i TikTok, ale jednak narzędzia CCP nie będę używał ;-) (ja mam taką schizę, że raz na jakiś czas sprawdzam gdzie lecą połączenia z mojego komputera i jak lecą do Chin czy Rosji/Białorusi to próbuję aktywnie kasować to co może te połączenia robić).
Google+ było fajne...
Chciałem dziś popsuć LinkedList, ale wychodzi na to, że mam za mało pamięci w komputerze ;-)
Popsucie miało wyglądać mniej więcej tak:
var list = new LinkedList<Integer>();
doMagic(list);
System.out.println(list.size()); // return negative number!!!
Gdzie doMagic miało wyglądać jakoś tak:
static void doMagic(LinkedList<Integer> l) {
for (var i=0L; i<Integer.MAX_VALUE+1000L; i++) {
l.add(Integer.valueOf(0));
}
}
No bo jeśli spojrzymy na implementację LinkedList to implementuje ona List, a List ma metodę size() która zwraca int, ale LinkedList nie ma ograniczenia na rozmiar innego niż pamięć, w samej metodzie linkLast(E e), która wołana jest z add(E e) mamy:
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
Co znaczy tyle, że jeśli mamy odpowiednio dużo pamięci to w pewnym momencie przekręcimy licznik ;-)
Czyli jakbyśmy zawołali size() to zwróci liczbę ujemną, ale jeśli policzymy wszystkie elementy kodem:
var count = 0L;
for (var n:list) {
count++;
}
To w count będziemy mieli 2147484647 ;-)
Co ciekawe zawołanie get(int) w takim przypadku wyrzuciłoby IndexOutOfBoundsException pokazując ujemną liczbę ;-)
Chyba znalazłem uzasadnienie dla kupienia Macbooka z M3 Max ;-) Bo chciałbym naprawdę sprawdzić czy to się tak zachowa ;-)
Inna sprawa ile byśmy potrzebowali RAMu żeby móc ten problem osiągnąć ;-) Tak jeden Node to powiedzmy między 48 a 64 bajty.... co daje dolną granicę najmniej 96 GB RAM ;-) ale podejrzewam, że tak naprawdę to by było jakieś 170 GB ;-)
Jeszcze chwilę potrwa nim będziemy mieli takie laptopy ;-)
Największy Macbook Pro to teraz 128 GB RAM ;-)
[update]
I chyba nie muszę kupować takiej maszyny dużej ;-) bo nadal mogę ustawić rozmiar heapy na 150 GB ;-)
I wtedy gdy robię list.get(10) po dodaniu 2147484647 objektów to dostaję wyjątek:
[next update ;-)]
Czyli wypisanie list.size() dało wynik -2147482649, ale już fragment:
var count = 0L;
for (var n:list) {
count++;
}
Nie zadziałał w ogóle, bo już w linii z for poleciał wyjątek ;-), okazuje się, że gdy jest produkowany iterator to wołany jest gdzieś w środku range check i ten wywala wyjątek dla Index: 0 ;-)
Czyli LinkedList po przekręceniu licznika nie nadaje się nawet do iterowania ;-) ale co ciekawe można kasować elementy z przodu i tyłu aż nam wróci size do pozytywnych int'ów i można iterować ;-)
OK, to przeprowadziłem sobie wybory z 15 października 2023 symulując, że KO+3D+Lewica byłyby jedną listą i wszyscy ich wyborcy by nadal na tą listę głosowali.
Mielibyśmy wtedy taki Sejm:
Jedna Lista - 265 mandatów,
PiS - 183 mandaty,
Konfederacja - 12 mandatów
W wyborach mieliśmy:
Prawo i Sprawiedliwość - 194 mandaty
Koalicja Obywatelska - 157 mandatów
Trzecia Droga - 65 mandatów
Nowa Lewica - 26 mandatów
Konfederacja - 18 mandatów
Czyli partie "Jednej Listy" mają teraz 248 mandatów.
Te 265 nadal by nie wystarczyły do pokonania weta, ale byłyby bliżej potrzebnych 276 mandatów.
Jeszcze z innych wariantów, gdyby Lewica poszła z KO.
Jedna Lista (KO+Lewica) - 194 mandaty,
PiS - 188 mandatów,
Trzecia Droga - 63 mandaty,
Konfederacja - 15 mandatów.
Jedna Lista jako KO+3D:
Jedna Lista (KO+3D) - 234 mandaty (nie potrzebowaliby nawet Lewicy ;-)),
PiS - 188 mandatów,
Lewica - 25 mandatów,
Konfederacja - 13 mandatów.
No i w końcu Jedna Lista jako 3D+Lewica:
PiS - 187 mandatów,
KO - 151 mandatów,
Jedna Lista (3D+Lewica) - 109 mandatów,
Konfederacja - 13 mandatów.
To sprawdźmy jeszcze co by było gdyby PiS poszedł z Konfederacją....
PiS+Konfederacja vs KO, 3D i Lewica osobno:
Prawica (PiS+Konfederacja) - 226 mandatów (nie mogliby stworzyć rządu bez podebrania posłów),
KO - 146,
3D - 62,
Lewica - 26
Teraz PiS+Konfa vs KO+3D+Lewica:
Jedna Lista (KO+3D+Lewica) - 258 mandatów,
Prawica (PiS+Konfa) - 202 mandaty
No i najgorszy możliwy scenariusz, gdyby PiS+3D+Konfa szły przeciwko KO+Lewica:
Prawica (PiS+3D+Konfa) - 285 mandatów,
Jedna Lista (KO+Lewica) - 178 mandatów.
To znów nie był mój miesiąc jeśli chodzi o książki. Zacząłem z prequelem Hunger Games, czyli The Ballad of Songbirds and Snakes. Tak jak pisałem jeszcze w podsumowaniu listopada nie byłem pewien czy to przeczytam i nie przeczytałem. Mam jakąś fazę, że cokolwiek gore czy takiego nie do końca optymistycznego mnie męczy....
Przeczytałem za to:
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ł:
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:
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.
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:
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:
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 listy | Nazwa | Mandaty w 2015 | Mandaty w 2015 gdyby część wyborców Razem głosowała na Lewicę |
| 1 | Komitet Wyborczy Prawo i Sprawiedliwość | 235 | 218 |
| 2 | Komitet Wyborczy Platforma Obywatelska RP | 138 | 131 |
| 6 | Koalicyjny Komitet Wyborczy Zjednoczona Lewica SLD+TR+PPS+UP+Zieloni | - | 33 |
| 7 | Komitet Wyborczy Wyborców „Kukiz'15” | 42 | 39 |
| 8 | Komitet Wyborczy Nowoczesna Ryszarda Petru | 28 | 24 |
| 5 | Komitet Wyborczy Polskie Stronnictwo Ludowe | 16 | 14 |
| 16 | Komitet Wyborczy Wyborców Mniejszość Niemiecka | 1 | 1 |