#programowanie

252
2286

#ots30wkids #tibia #programowanie


Wreszcie się udało!

Zanim będziecie chcieli mnie zabić za wrzucenie tutaj świętego tagu pozwólcie proszę, że się wytłumaczę.

Jak to zwykle bywa przy moich zabawach, granie w gierki jest tylko pretekstem, żeby coś porobić. Nie inaczej jest z moim OTSem.

Chciałem dać możliwość wylogowania się gdziekolwiek - w Tibi, nie możesz wylogować się przez 60s po tym jak zostałeś zauważony przez ostatniego przeciwnika.

Na początku poszedłem prostą ścieżką - brak statusu in-combat - był do tego nawet całkiem sprytny pstryczek w plikach .lua - pliki do konfigurowania w trybie hot (wystarczy restart serwisu serwera). Zmieniłem czas statusu in-combat na 0 ze skutkiem braku możliwości wylogowania się w ogóle. No to lecimy 1, wartość wyrażona w mili sekundach.


Patrzę, status niby flapuje ale rzeczywiście da się wylogować zawsze. Zadowolony zabrałem się za resztę ficzerów. W czasie developmentu zauważyłem, że niepoprawnie naliczają się zabite potworki co rodzi problemy przy questach takich jak zabij 100 potworów.

Do tego źle liczyło też w hunt analajzerze. Zaczęła się ostra dłubanina, issue na githubie projektu aż w końcu przejście do plików c++, czyli core samego serwera. Tam grube analizy jak liczony jest kill i szukanie błędu w logice z tym związanej. Na gitcie dostałem odpowiedź, że team się temu przyjrzy, więc jak nikt nie jest pewny, że działa to znaczy, że dłubiemy dalej.


Po jakimś tygodniu spróbowania wszystkiego, trochę sobie odpuściłem, żeby zobaczyć co powie team. Trochę grałem, wprowadzałem dodatkowe zmiany, zwiedzałem miejscówki, w których nigdy nie byłem. Na 1 huncie zauważyłem, że są takie momenty podczas walki, że nie mogę użyć run pomimo tego, że nie jestem na cooldownie. Skończyłem gierke, połozyłem się spać. Standardowa pobudeczka koło 3 30, żeby pobujać po cycu młodą. I wtedy EUREKA! K⁎⁎wa, nie mogłem już potem usnąć, żeby spróbować tego rano.


A co jeśli problemem jest to, że czasem nie jesteś w in-combat a kill liczony jest tylko wtedy? Jeśli status flapuje, to może się tak zdarzyć!


Pierwsze co po przebudzeniu do kompa, vim config.lua, /PZlocked, dw, dw, dw, i, 5*1000, esc, :, qw, docker-compose restart server!


I taaaak jest! To było to! K⁎⁎wa co za ulga.

Teraz pozostało tylko zrobić, możliwość logoutu w czasie jak jesteś in-combat ale tu już po statusie, który wyświetlał się na dole ekranu o niemożności przeprowadzenia procesu, doszedłem sobie w plikach źródłowych to gameprotocol.cpp (pic rel 2). Jeden zakomentowny return dalej i rebuild źródła mamy to!


Jak by ktoś chciał pośmigać na otsie to jeszcze troche surowo ale register i klient do pobrania są dostępne tutaj

http://195.167.154.107:6060/


Mam większość najwazniejszych ficzerów i jako taki balans rozgrywki solo więc w następnym kroku zabieram się za domene i ssla


Jak się zarejestrujecie, dajcie znać wrzucę wam trochę TC na start

f509b2db-8aac-41bc-8a1c-e9da5d58b0cd
917e8afd-8155-4e19-a823-4f3a3b390272
koszotorobur

@zboinek - wielu może powiedzieć - propsy za używanie vima - ale nie ja

wombatDaiquiri

@zboinek wszystko fajnie, gratuluję, dobra robota, ale czy umożliwienie wylogowania się zawsze nie psuje jednego z istotniejszych tibijskich elementów czyli braku opcji "uratowania d⁎⁎y" w przypadku nierozważnej wyprawy?


Mapa z rl tibii czy jakiś custom?

Totem

@zboinek Trzymam kciuki za rozwój serwera.


Dwa pytania:


  1. Jaka wersja tibii?

  2. Czy to jest ots na bazie forgotten server?

Zaloguj się aby komentować

Dajcie znać gdzie najlepiej dać zlecenie na #programowanie

Szukam kogoś, kto by napisał kilka wtyczek do systemu, które pozwolą użytkownikom na integrację z:


  • Woo

  • Sellasist

  • Apillo


Następnie chciałbym, aby ta sama osoba/firma odpłatnie robiła wdrożenia dla klientów (jeśli będą potrzebować)

Astro

@kwahu666 Do jakiego systemu?

wombatDaiquiri

@kwahu666 


chciałbym, aby ta sama osoba/firma odpłatnie robiła wdrożenia dla klientów


Wspólnik albo software house. Wdrożenia to droga przez mękę.

Meverth

@kwahu666 jeszcze byś napisał, jaki język. Nie koniecznie masz system w php...

Zaloguj się aby komentować

wombatDaiquiri

@Deykun 


Recenzja kodu na podstawie reverse engineeringu


To trochę jak ocenianie czy kobieta dobrze się r⁎⁎ha na podstawie ocen szkolnych jej dziecka. Bez sensu.

Zaloguj się aby komentować

Cython sprawia, że pisanie rozszerzeń C dla Pythona jest tak proste, jak sam Python!


Język Cython jest nadzbiorem języka Python, który dodatkowo obsługuje wywoływanie funkcji C i deklarowanie typów C na zmiennych i atrybutach klas. Dzięki temu kompilator może wygenerować bardzo wydajny kod C z kodu Cythona. Wygenerowany kod C jest następnie kompilowany przy pomocy jednego z dostępnych kompilatorów C/C++ do zoptymalizowanego modułu, który może zostać zaimportowany i użyty przez program napisany w Pythonie.


W skrócie Cython to Python ale z typami danych C - co pozwala mu być jednym z najlepszych i najprostszych narzędzi do przyspieszania programów napisanych w Pythonie!


Przykładowo w Cythonie napisane są moduły Pythona znane ze swojej szybkości jak:



Oficjalny poradnik jak zacząć z Cythonem można zaleźć pod adresem: https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html


#technologia #programowanie #python #cython

dc103c9b-f99d-48d3-b674-ba7bc1d19ec4
slime-mold

@koszotorobur @rust-n-dust dzięki! dobry kontent

Zaloguj się aby komentować

Po kupnie tv, konsoli i jeszcze kilku innych elektrośmieci został mi już tylko laptop do wymiany. Co polecacie do kwoty 1000 euro/4000k pln?

Wymagania:


  1. W miarę pojemny dysk ssd

  2. Długi czas pracy na baterii

  3. W miarę rozsądna matryca antyrefleksyjna z szerokim katem widzenia

  4. 15,6 cala, ale nie pogniewam się na 17 cali 

  5. Full HD (1920×1080) bo więcej chyba w tej cenie nierealne?

  6. minimum Intel Core i5 ogólnie wydajny procek wysłucham opinii

  7. 8/12 ramu

  8. To nie ma być lapek do do gier, ale fajnie gdyby coś tam czasami poszło. Tutaj jestem otwarty na rady.

  9.  możliwość instalowania dwóch dysków twardych

  10. HDMI jest 2.1 

  11. czytnik linii papilarnych/ niekoniecznie


Liczę na Wasze propozycje/rady, bo jak dotąd daliście radę, Tomki.( ͡~ ͜ʖ ͡°)


#komputery #laptopy #programowanie #programista15k #pytanie #elektronika #okazje

walus002

Za 4000k pln to już kupisz cały sklep z laptopami


Ps. Tak przypierdzielam się

Zaloguj się aby komentować

Moje statsy z implementacji 11/25 AoC w Rust. Część plików zawiera wklejone przykłady z unit testami, a same inputy wczytuję z plików.


#adventofcode #programowanie

b75224ce-25f4-460d-9fbe-96a10d513ae4
koszotorobur

@rust-n-dust - najs

Ruścik dobry jest - mówię to jako Pythonista.

Zaloguj się aby komentować

Czasami nie rozumiem czemu w moim zespole #programowanie podejmowane są takie decyzje, a nie inne.

Pisaliśmy kilka funkcjonalności, korzystając z dwóch serwisów, napisanych przez inny zespół. Do obu serwisów dostaliśmy api, które było w miarę dobrze udokumentowane. Napisaliśmy cały kod używając api, po czym okazało się, że do tych serwisów istnieje biblioteka/klient, który zawiera modele + metody wywołujące endpointy.


Dla wszystkich w zespole było to takie oczywiste, że teraz trzeba to wszystko przepisać na tego klienta, co dla mnie jest niezrozumiałe, bo wydaje się być to stratą czasu. Do tego już od początku okazało się, że modele są z d⁎⁎y, zjadane są błędy, więc nie wiadomo do końca co się wywala. Dodatkowo używając endpointów mogliśmy o wiele więcej, a ten klient mocno wycina różne rzeczy, a wielu endpointów po prostu brakuje i trzeba teraz zmieniać sporo rzeczy, robić coś naokoło. Taki przykład api pozwala szukać użytkownika po emailu, username lub id, a klient tylko po username.


  • Takim największym argumentem było to, że nie trzeba tego pisać, ale mieliśmy już wszystko napisane.

  • Drugim argumentem było, że jeżeli coś zmieni się w api, to nie trzeba będzie zmieniać nic u nas, bo wystarczy podnieść wersję klienta. Tylko, że jak zmieni się klient, to może być tak, że i tak będziemy musieli coś zmienić. A druga rzecz, że jeżeli już teraz jest rozjazd pomiędzy tym klientem, a api, to może w ogóle nikt zmian nie zaktualizuje i będziemy musieli my tą bibliotekę aktualizować, albo część rzeczy przepisywać na wywołania api.

  • Trzecim argumentem było to, że jak jest napisane, to na pewno jest dobrze i my nie mamy odpowiedzialności za to na sobie, tylko co można źle napisać wywołując webClient.post().uri(api/x) vs uglyService.Createuser(xxx) - jest to dokładnie to samo, tylko opakowane, a całą logikę wciąż mamy u siebie...

tmg

Zgadzam się w 100%. Skoro ten klient już teraz jest przestarzały to jaka jest gwarancja że kiedykolwiek będzie aktualizowany. No i skoro już macie kod działający bezpośrednio na API to po co powtarzać robotę. Ale często racjonalne argumenty nie docierają z jakiś dziwnych powodów ...

wombatDaiquiri

@HmmJakiWybracNick Ty masz rację, ale jeśli nie jesteś osobą decyzyjną to po prostu rób swoje i patrz jak świat płonie. Z podkładką w formie tekstowej że zwracałeś uwagę na problemy już teraz

Meverth

@HmmJakiWybracNick powiedz, że skoro zaimplementowaliście to API to wypuście modele itp. jako bibliotekę i zróbcie konkurencyjną, lepszą. To twórca tamtej, użyje waszej

Zaloguj się aby komentować

Tomeczki doradźcie,

żona potrzebuje wygodnego monitora 34" lub 2x27" do pracy. Pytanie co lepsze? Oczywiście 34" zakrzywione. Zachęcam ją do 34", ale przyznam szczerze, że nigdy na panoramicznym monitorze nie pracowałem. A obydwoje tylko mamy doświadczenie z pracą na dwóch monitorach.


Praca związana z projektowaniem, dużo okienek, widoki 3d, płaskie, przekroje, w oknie dokumentacja itp.


#komputery #pracbaza trochę #programowanie

twombolt

Dziękuję za odpowiedzi wszystkim. W sumie to wyszło na to, żonie brakuje tego co ma w pracy. A ma tam 2x27" (gdy w domu ma 2x24").

rmbobster

Też stałem ostatnio przed takim dylematem. Kupiłem nie zakrzywionego 34 do pracy i jestem zadowolony. Brałem z myślą że jak mi się nie spodoba to zwrócę :)

VonTrupka

>w oknie dokumentacja itp.


@twombolt pivot w monitorze pod długie dokumentację czy kod źródłowy to jest świetna opcja

Zaloguj się aby komentować

Dobra architektura z CQRS


https://gildia-developerow.pl/dobra-architektura-z-cqrs/


Chyba każdy, kto zaczynał pracować na dowolnym frameworku MVC, popełniał ten sam błąd: znaczną część logiki zamieszczał wewnątrz akcji kontrolera. Efektem tego były pliki kontrolerów o dużej ilości linijek. W dzisiejszym wpisie rozważymy wzorzec, dzięki któremu zadbamy nieco o nasz kod tak, aby duże kontrolery do nas więcej nie wróciły. Mowa oczywiście o wzorcu CQRS.


Tagi: #programowanie, #naukaprogramowania i #programista15k o #php, #symfony

lokurva

Przy asynchronicznej obsłudze commandów proponuje zwracać status 202

Zaloguj się aby komentować

Pierwszy raz w życiu mam taką wtopę, poradźcie coś ( ͠° ͟ʖ ͡°) Wziąłem laptopa do zrobienia od koleżanki. Chciała bym tylko odświeżył system na nowy, doinstalował to i tamto. Ale ja głupi zaoferowałem się że zamówię części i wymieni się dysk, dołoży RAMu. Okazuje się że ciężko to rozkręcić a na dodatek to laptop "klejony". No pierwszy raz w życiu nie podołałem laptopowi, ale wstyd. ( ͠° ͟ʖ ͡°) Odeślę części bo 14 dni na zwrot ale co jej powiedzieć?


#informatyka #komputery #gownowpis #programowanie

wombatDaiquiri

@gawafe1241 to kara od Boga za spermiarstwo. Oddać, skasować conajmniej czteropak, wycenić w naturze szacowaną ilość godzin pracy żeby zrobić upgrade i elo.

American_Psycho

@gawafe1241 jaki model?

Zaloguj się aby komentować

Oj dziś na tagu chyba nie bez powodu cicho xD.

Ja dopiero po pracy rozwiązałem Part 2, oczywiście "umiarkowanym" brute force...

No nic, zobaczymy co dalej.


#adventofcode #programowanie

2c8a5cc7-a75c-4a23-b7a3-465ab19de4a3
lukmar

heheheheheh, okej. czyli zupełny bruteforce odpada w drugiej części xD

0f6028ee-c2de-4cc6-a2c0-386080ffbcc0
NooT

Mi się w końcu udało part 2, ale chcąc uniknąć brute force poczytałem trochę komentarzy na reddicie

potato_fairy

Hasło do 2 części dnia piątego: część wspólna zbioru

Zaloguj się aby komentować

Jak często macie tak, że stoicie na czerwonym świetle na skrzyżowaniu, na którym nikogo nie ma? Ja często jeżdżę w godzinach późnych i mnie to doprowadza do szału. To jest bezsensowne marnowanie czasu i benzyny. ALE nie pisałbym tego posta tylko po to, żeby ponarzekać. Ostatnio przypomniałem sobie o pomyśle, który kiedyś widziałem w sci fi (u Kosika) - program (tam była to SI) do sterowania ruchem. Przecież przy współczesnych możliwościach to powinno być w zupełności wykonalne. Może by zrobić petycje do urzędu miasta np. Warszawy, żeby rozważyli zainwestowanie w takie coś. Co myślicie?

#warszawa #programowanie #niewiemjaktootagowac

wonsz

@EncePenceNieMamRence. światła i niektóre znaki służą rozwiązywaniu konfliktów pierwszeństwa na przecięciu się kierunków ruchu - jeśli konflikt nie występuje to stoisz tylko dlatego że boisz się mandatu.

Nemrod

@EncePenceNieMamRence. U nas już jest dużo świateł z czujnikami pod asfaltem. Tu znowu problem jest taki, że czujniki często nie łapią motocykli i wtedy taki stoi do śmierci (albo czeka, aż nadjedzie za nim osobówka).

wombatDaiquiri

@EncePenceNieMamRence. 


program (tam była to SI) do sterowania ruchem. Przecież przy współczesnych możliwościach to powinno być w zupełności wykonalne.


teoretycznie tak. Praktycznie jest to pojebanie duża i pojebanie trudna inwestycja, którą ciężko by było wycenić. Polecałbym doktorat z urbanistyki i wycieczkę na MIMUW czy AGH w poszukiwaniu ambitnego algorytmika na początek xD


Po pierwsze musisz zgromadzić dane - życie to nie gra, tutaj samochód sam nie powie gdzie stoi. Dochodzi do tego problem etyczno/prawny, gdybyś chciał to robić kamerami. Bo tymi samymi kamerami można śledzić każdy krok obywateli.


Po drugie - jak wyznaczyć "funkcję celu"? Samochody przejeżdżają jak najszybciej przez miasto? Ilość wypadków jest mniejsza? Trasa od A do B jest pokonywana w jak najkrótszym czasie? Ludzie przesiadają się na zbiorkom?


Po trzecie - ludzie będą musieli być non stop czujni. System może w każdej chwili zdecydować, że masz jechać. Koniec z bezpiecznym zmienieniem stacji radiowej na światłach. Większy stres, koszty w zdrowiu psychicznym populacji właściwie nie do oszacowania.


Po czwarte (xD) możliwe, że to wszystko po nic. Możliwe, że po zrobieniu wielkich badań wielodziedzinowych okaże się, że obecny system gdzie są chyba trzy wzory zmiany świateł na skrzyżowaniach (autyzm here) jest totalnie optymalny i miliony jeśli nie miliardy złotych psu w d⁎⁎ę.

Zaloguj się aby komentować

Hejterzy!

Jest tu kos kto agarnia Makra w Excel?

Mam gotowa tabele, jej celem jest zautomatyzowane wysyłane faktur/rachunków na email z bazy klienta.

Jedyny porblme jest taki, ze napisane Macro nie działa na MacOS.

Ktos mógłby mi pomóc w tym? jestem w stanie zpłacić.

#excel #programowanie #macos

Taxidriver

applescript

set theSubject to “ACE TAXI invoice =date()”

set theContent to "Content"

set theAddress to “acewinderemere@***.com”

set theAttachmentFile to "/Users/aj/ACE ACC 2023/"


tell application "Mail"

  set theNewMessage to make new outgoing message with properties {subject:theSubject, content:theContent & return & return, visible:true}

  tell theNewMessage

    make new to recipient at end of to recipients with properties {address:theAddress}

    tell content

      make new attachment with properties {file name:theAttachmentFile as alias} at after the last paragraph

    end tell

  end tell

  send theNewMessage

end tell


vba

Dim script As String

script = "do shell script ""osascript /Users/aj/ACE ACC 2023/Script/ExcelEmail.scpt"""

MacScript(script)

Taxidriver

taka rade dal mi ChatGPT ale po zaimplementowaniu tego nic nie rusyzlo

dsol17

@Taxidriver już nieaktualne ?

Zaloguj się aby komentować

Cześć,


Chciałbym zacząć naukę SQL, szukam jakiegoś kursu online wykorzystującego różne nowoczesne techniki nauczania. Wiem, że mógłbym kupić jakąś książkę i tak się uczyć ale mamy 2023 rok, na pewno są ciekawsze, szybsze, bardziej efektywne sposoby na naukę. Ktoś coś poleci?

#sql #programowanie #nauka #bazydanych #pytanie #szkolenie

WolandWspanialy

@dzangyl SQL w 2023 ? Teraz programistę od bazy oddzielają takie warstwy abstrakcji że nikt nie ma czasu w sqlki wchodzić. Piszę to ja DBA.

globalbus

@WolandWspanialy piszę SQLki, bo to szybsze niż zapoznawanie się z kolejnymi abstrakcjami, by nie strzelić sobie w kolano

Poza tym, coś trudniejszego od select * from tabelka join tabelka 2, zwykle i tak pisze się ręcznie.

Vuaaas

@globalbus To trochę słabo bo jak będziesz chciał zmienić mysql na postgresa albo co gorsza mongo to chyba szybciej będzie napisać aplikacje od nowa

vinclav

@dzangyl "kupić książkę" o i mądrze myślisz, nie spierdol tego.

WolandWspanialy

@dzangyl Żeby dać Ci jakąś dobrą radę. Jak chcesz się zająć sql to subiektywnie polecam zacząć równolegle od zrozumienia pojęcia normalizacji bazy danych. Niestety teoria tego jest straszną mordęgą więc polecam jak najszybciej poszukać przykładów praktycznych do postaci 3 włącznie. Da Ci to dobrą podstawę do zrozumienia jak powinny być budowane struktury relacyjne.

Zaloguj się aby komentować

Mickey

@jerekp coś mi ten post przypomina #kryptowaluty

Zaloguj się aby komentować

Leniwy tutaj. Jak chcę mierzyć średnią w czasie to wystarczą mi dwie liczby, suma wszystkich ocen i liczba ocen. Jak pojawia się nowa ocena to dodaje jej wartość do sumy i 1 do liczby i mam nową średnią.


Medianę da się w ogóle mierzyć w taki uproszczony sposób (albo w przybliżeniu jakimś), że mam tylko z 3-6 liczb do niej?


#programowanie #matematyka #statystyka

5tgbnhy6

jaką masz skalę ocen? może wystarczy zliczać liczbę ocen danej wartości?

UncleFester

@Deykun No, to teraz podaj średnią dobową temperaturę powietrza.

Deykun

@UncleFester

Nadal możesz to zrobić z 2 liczbami jeśli aktualizacje masz co stały określony czas. Imho to nie jest problem, akurat to jest coś co na starcie ma błąd pomiarowy więc próbkowanie i strategię tylko pozwalają go minimalizować.

UncleFester

@Deykun 

Mój poprzedni wpis był trochę prowokacyjny.

Z problemem zetknąłem się przy obliczaniu SAT (sumy średnich dziennych temperatur).

Używa się tu średniej (T max + T min) / 2


Przykładowe inne średnie stosowane w meteorologii (IMGW):


- M1 = (t00 + t01 + t02 + … + t23) / 24;

- M2 = (Tmax + Tmin) / 2;

- M3 = (t00 + t03 + t06 + t09 + t12 + t15 + t18 + t21) / 8;

- M4 = (t00 + t06 + t12 + t18) / 4;

- M5 = (T06 + T12 + 2·T20) / 4;

- M6 = (Tmax + Tmin + T06 + T18) / 4;


I bądź tu mądry.

wombatDaiquiri

Odpowiedź od @5tgbnhy6 chyba najprostsza, chociaż chyba lepiej znana jako counting sort - https://en.m.wikipedia.org/wiki/Counting\_sort pozwala sortować inty liniowo


Alternatywnie możesz próbować jakichś cudów z BST - https://en.m.wikipedia.org/wiki/Self-balancing\_binary\_search\_tree intuicyjnie wydaje mi się, że trzymając wysokość poddrzewa mógłbyś wyliczyć medianę w czasie logarytmicznym, ale to tylko moja intuicja i może być z d⁎⁎y. Dodatkowo dużo trudniejsza w implementacji więc zależy od usecase - jeśli to nie zadanie na studia a życiowe, to pewnie nie warto.

Zaloguj się aby komentować