Dziś postanowiłem wydobyć z systemu informację o sile sygnału wifi, bo najwyraźniej to jest wiedza, jakiej użytkownik macOS nie jest w stanie otrzymać ot tak. No to cyk cyk, napisałem jakieś gówno w Swifcie. Okazało się, że można to nawet skompilować, no to skompilowałem. A ponieważ Swifta nie znam prawie w ogóle, to postanowiłem z niego po prostu wystawić takie małe API, a potem się zlinkować do tego z C i elo, pozamiatane. Ale takiego wała, przecież istnieje name mangling, a każdy kompilator robi to inaczej. Na szczęście okazuje się, że jak się wpisze swift demangle <zmanglowana nazwa>
, to dostajemy ładny i przejrzysty identyfikator. Zatem obrałem taktykę generowania assembly z tego swiftowego wrappera. Napisałem skrypt w Pythonie, który mi demangluje te nazwy w asm przy pomocy tego swiftowego czaru i jeszcze wypierdala .globl _main
, żeby linker nie robił spruty. I tak oto mogę się podłączyć na luziku fiku miku do systemowego API praktycznie nie tykając dwóch języków promowanych przez Apple: Objective-C, który ma składnię może nie najgorszą na świecie, ale też nie najlepszą, a poza tym jest już przestarzały oraz Swifta, w którym wszystko trzeba odpakowywać, a goły wskaźnik to jest jakieś zło i żeby się do niego dostać, to trzeba pisać jakieś zaklęcia typu UnsafePointer
(podkreślam UNSAFE), rawValue
, baseAddress
, bo oczywiście jest zanurzony gdzieś na samym dnie xD
W sumie pewnie istnieje jakiś lepszy sposób, ale całkiem nieźle się bawiłem dziś, czuję dobrze kuc.
@ajdajzler: no, przynajmniej nie gazeta warszawska jak dziadek mojego kolegi xD co se zaznacza flamastrem ciekawe fragmenty, przekreśla zdjęcia polityków i krzyczy, że "jaki to polak? to żyd!" xD
░░░░░░░░░░░█▀▀░░█░░░░░░
░░░░░░▄▀▀▀▀░░░░░█▄▄░░░░
░░░░░░█░█░░░░░░░░░░▐░░░
░░░░░░▐▐░░░░░░░░░▄░▐░░░
░░░░░░█░░░░░░░░▄▀▀░▐░░░
░░░░▄▀░░░░░░░░▐░▄▄▀░░░░
░░▄▀░░░▐░░░░░█▄▀░▐░░░░░
░░█░░░▐░░░░░░░░▄░█░░░░░
░░░█▄░░▀▄░░░░▄▀▐░█░░░░░
░░░█▐▀▀▀░▀▀▀▀░░▐░█░░░░░
░░▐█▐▄░░▀░░░░░░▐░█▄▄░░░
░░░▀▀▄░░░░░░░░▄▐▄▄▄▀░░░
░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░█▀▀░░█░░░░░░
░░░░░░▄▀▀▀▀░░░░░█▄▄░░░░
░░░░░░█░█░░░░░░░░░░▐░░░
░░░░░░▐▐░░░░░░░░░▄░▐░░░
░░░░░░█░░░░░░░░▄▀▀░▐░░░
░░░░▄▀░░░░░░░░▐░▄▄▀░░░░
░░▄▀░░░▐░░░░░█▄▀░▐░░░░░
░░█░░░▐░░░░░░░░▄░█░░░░░
░░░█▄░░▀▄░░░░▄▀▐░█░░░░░
░░░█▐▀▀▀░▀▀▀▀░░▐░█░░░░░
░░▐█▐▄░░▀░░░░░░▐░█▄▄░░░
░░░▀▀▄░░░░░░░░▄▐▄▄▄▀░░░
░░░░░░░░░░░░░░░░░░░░░░░
zostalo mi juz tylko kilka rzeczy na studia ;]
- Kolokwium z Analizy Matematycznej do 09.06
- Ostatnie zadanie w C++ do 10.06 [implementacja wielomianów na przeładowaniu operatorów]
- Dwa zadania dotyczące wątków procesora do 17.06 [teoretycznie nieobowiązkowe, jedno w Adzie xD drugie w Javie XD]
- Zrobić jakąkolwiek aktywność z takiego jednego przedmiotu przed egzaminem [teoretycznie nieobowiązkowe]
- Egzamin z algorytmów w Javie 22.06 [będę musiał sie na pamiec nauczyc implementacji algorytmow psora [jakis dziwnie przerobiony quicksort, szukanie k-tego elementu, mediana median etc] i je z pamieci wypisac tak jak chce, zeby to zdac xd]
- Egzamin z Systemów Operacyjnych 24.06 [tbh to wyjebane na to nie ucze sie na to, jak zdam to fajnie, a jak nie to warunek jest za darmo, a poza tym drugi termin]
- Projekt grupowy z Analizy Matematycznej do 30.06|
Booooooooooooze tak sie ciesze ze juz ten pierwszy rok sie konczy, bo to niezla udręka była ;/
ale się firefox stoczył. z najbardziej konfigurowalnej przeglądarki upadł do ulepu fatalnych decyzji UI/UX. Od 77 nie można wyłączyć tego zjebango paska adresu powiekszonego.
https://superuser.com/questions/1557296/how-to-disable-address-bar-expansion-in-mozilla-firefox-77
wgl to o co chodzi z wykopem XD obczajcie sobie ile tam rasizmu jest od 2-3 dni. tj POWIEDZMY w miare akceptowalne jest jak ktos uwaza ze te prostesty sa zbyt agrysywne i sie temu sprzeciwia (choc ja tak nie uwazam, ale rozumiem taki poglad). Ale tam literalnie od paru dni jest doslownie festiwal rasizmu i jechania po czarnych pojebane
@ajdajzler: ostatnio moja mama zaczęła temat przy rodzinnym stole wielce taktownym pytaniem "a na kogo głosujecie?" xD skończyło się tym, że moja stara ma ultra kose z moją dziewczyną. ja se tylko tak cicho siedziałem i patrzyłem jak płonie świat, тише едешь, дальше будешь
będę miał o czym mówić jutro na rozmowie o prace testera hehe
mialem do napisania prosta kolejke priorytetowa tj max heap, napisalem sobie ja sobie elegancniutko i wszystko gitarka dziala elegancko sprawdzarka wyrzuca mi 95% poprawnosci, nie przechodzi jedynie test na losowym wejsciu. Ja mowie no wtf u mnie wszystko dziala generuje sobie losowe testy nawet przechodzi wszystko git. W koncu zauwazam ze jedna literka sie printuje w zlym miejscu, na dziesiatki testow, duzych i malych, pojawil sie jeden blad w bardzo duzym tescie. no dobra, analizuje. kurde. nie jestem w stanie odtworzyc tego bledu, zmieniam relacje wiekszosci z silnie wiekszych na slabo wieksze itd sprawdzam rozne randomowe kombinacje w celu odtworzenia bledu i nic. w koncu dochodze do tego, ze blad sie pojawil, tylko jesli literka jest skrajnie lewym potomkiem. no to sobie patrze hmm co by tu co by tu. w pewnym momencie wpadam na dziwny pomysl, zeby w funkcji Delete(int x) ktora usuwa element o x-indeksie z drzewa zamiast sprawdzania parenta jako x/2 ustawiam parenta jako x/2 + 1. no i patrze, dziala git, wrzucam na sprawdzarke - troche wiecej bledow, ale test na losowych nagle przechodzi xD mysle se wtf. robie opcje w takim razie ze jesli x%2 == 0 to parent=x/2 + 1 w przeciwnym razie parent = x/2 no i gitatka dziala. pytam na discordzie klasowym wtf i czy ktos mial podonie. okazuje sie moi drodzy, ze parenta w drzewie binarnym wylicza sie nie jako x/2 lecz jako (x+1)/2 :))))
i ja sie pytam: jakim cudem to w ogole mozliwe, ze tak oczywisty blad objawil sie tylko w niektorych miejscach i to naprawde duzych testow?Pokaż ukrytą treść jakim cudem tak elementarny blad w zaokragleniu nie zmienil w sumie nic poza kilkoma bardzo konkretnymi przypadkami ;0
@ajdajzler: po to właśnie są testy losowe, żeby wyeliminować czynnik testera bez wyobraźni (:
wgl to jak sobie pomyślę, jak ja nie myślę czasem o oczywistych egde-case'ach to taki wstyd mnie bierze, ale już jak się spierdzę publicznie i śmierdzi to nie