Zdjęcie w tle
Programowanie

Społeczność

Programowanie

1k+
Siema.
Mam problem... Ogólnie robię sobie apkę w C# Maui na Androida i mam tam osadzoną przeglądarkę za pomocą kontrolki WebView. Ładuje do tej przeglądarki link do playera embbed z cda. I tu jest problem po załadowaniu strony, filmiki się nie uruchamia a w logach informacje że requesty są blokowane przez politykę CORS. Da się to jakoś obejść? Próbowałem dodać jakieś nagłówki (?) do request'ów i dalej nie działa. ಠ_ಠ

#programowanie #csharp #dotnet #maui #android
vinclav

@kiko 

>kontrolka WebView

>c#

>CDA

Nie chcę Cię martwić, ale masz tam DMC.

Ja bym porzucił WebView w zamian za czysty datastream.

kiko

@vinclav Kurde zależy mi trochę żeby to jakoś działało bo kurde część linków w apce przestało mi działać...

vinclav

@kiko no to pakujesz się w cross site scripting, hmm. No nie uciekniesz od natywnej apki. Już widziałem takie akcje z jakimiś sokami na zamówienie. Poważnie lepiej wystaw jakiś protobuf API albo rest albo vnc. Ale to brzmi jak DMC jakieś.

Na szybko, czy jest czas? Bo może wystarczy postawić jakiś streaming. End user się nie zorientuje.

5tgbnhy6

@kiko do przeglądarek desktopowych są wtyczki do pomijania tego CORS checka, bo z tego co rozumiem, to jest zabezpieczenie po stronie przeglądarki. może kod tych wtyczek coś Ci podpowie

kiko

Update jakby ktoś był ciekawy...

Apke zaktualizowałem do net 8. Zauważyłem że do kontrolki WebView dodali możliwość zmiany UesrAgent'a, więc zmieniłem go na desktop'a i zaczęło działać. Zdziwienie.wav

Chyba że coś w samym CDA się zmieniło

Zaloguj się aby komentować

#unrealengine
robię se platformówkę, jak wcześniej wspominałem.
Poszukuję filmików, tutoriali etc. jak zrobić Mario Bros. (te klasyczne) w Unrealu.
Płacę piorunami i uśmiechami.
Z góry serdecznie dziękuję za pomoc!

Pozdrawiam!

PanGargamel
c8fa7e69-d49a-49d4-b8b8-ef80f9cb0d79
MaD

@PanGargamel w sensie, wszystko na ytb pod "ue5 platformer 2d tutorial" już widziałeś i trzeba więcej?

Zaloguj się aby komentować

Zostań Patronem Hejto i odblokuj dodatkowe korzyści tylko dla Patronów

  • Włączona możliwość zarabiania na swoich treściach
  • Całkowity brak reklam na każdym urządzeniu
  • Oznaczenie w postaci rogala , który świadczy o Twoim wsparciu
  • Wcześniejszy dostęp, do wybranych funkcji na Hejto
Zostań Patronem
Widziałem gdzieś wczoraj komunikat "Twoje hasło nie może być podobne do poprzedniego" i zdębiałem. Jak to podobne xD "Nie może być takie samo" - to znam, to rozumiem. Ale jak zmierzyć podobieństwo zahashowanych haseł xD Przecież to jest cały myk funkcji hashującej (oprócz tego że jest jednokierunkowa) że właśnie nawet najmniejsza zmiana inputu może powodować całkowitą zmianę outputu. Wniosek miałem jeden: dzbany przechowują niehashowaną wersję! Może jakoś zaszyfrowaną, może nawet całkiem dobrze, ale jednak odwracalnie. Już myslałem, że to jakiś prank ale popytałem znajomych i wielu spotkało się z podobną praktyką. Już taki zbulwersowany siedziałem, gdy nagle myślę "a może po prostu sprawdzę jak oni to robią xD" i słuchajcie jaki patent prosty a sprytny xD Biorą nowe hasło, i puszczają go przez jakiś tam wektor popularnych zmian, permutacje, i tego typu zabiegi. Dostają szereg "podobnych haseł" które teraz hashują i porównują z hashem zapisanym w bazie xD Jak sie zgadza, to bingo, hasło jest podobne!

[Pominę fakt że strasznie mi sie to zabezpieczenie nie podoba, opisuje tylko jak fajnie jest rozwiązane]

#programowanie #cybersecurity
tmg

Tylko jest pewien problem. Przechowują hashe Twoich poprzednich haseł. Przypuśćmy że ten ich algorytm jest słaby i coś pomija. W razie gdy ukradną im bazę można łamać wszystkie stare hashe. Po złamaniu któregoś z nich można atakować kolejne lepszym algorytmem za pomocą bazowego hasła i jeśli użytkownik miał jakiś schemat to zostaną łatwo złamane.

Barcol

@tmg To prawda. To znaczy ja zakładam że w 2023 roku to już każdy używa nowego bcrypta nawet jak o tym nie wie, bo mu framework sam go wrzuca ¯\_(ツ)_/¯ Ogólnie ja mam takie poczucie że jak pierwszy raz ustawiam gdzieś hasło, to ono automatycznie przestaje być "moje" bo przecież nie wiem co sie z nim dalej dzieje. Dlatego (i z wielu innych powodów) menadżery haseł 100% RiGCz

lokurva

@tmg wg tego co napisał OP to nowe hasło jest porównywane z obecnym hashem. Nie widzę tu trzymania starych haseł, jak walidacja przejdzie to obecne zostanie nadpisane

Macer

@Barcol to jest rak straszny i paranoja. to nie interes strony, jakie mam hasło.

Barcol
  • @Macer Mnie rozwala jak mam dobre hasło wygenerowane przez menadżer, a tu nagle dostaje komunikat "nieprawidłowe hasło" i szukam co im sie nie podoba a tam tak idiotyczne frazy jak "Żaden znak nie może być powtórzony więcej niż 2 razy" (co XD) albo "hasło nie może zaiwerać w sobie podobieństwa do loginu" - no i co to niby kurwa znaczy? W okcie przepuściło mnie dopiero hasło które nie miało żadnej literki z mojego loginu. To jest czysty debilizm
Macer

@Barcol to chyba jest celowo wymyslane zeby stworzyc podstawy pod wprowadzenie tego digital ID. ze to niby takie wygodne bo nie trzeba hasel wymyslac. ale i tak nie trzeba, bo nikt normalny nie lamie hasel pojedynczych uzytkownikow, jesli juz to kradnie bazy albo stosuje phishing.

redve

@Barcol przebij polityke bezpieczeństwa u mnie

hasło nie może być dłuższe niż 12 znaków xDDDD

Tutaj tak wszystko na odpierdol jest, że plain text do haseł jest nie tyle prawdopodobny, co prawie pewny, i jeszcze janusze ustawiły taki śmieszny limit na tym xD

Barcol

@redve Ja mam w banku max 16 ಠ_ಠ To znaczy rozumiem że limit musi być, ale kurde 16 znaków w tych czasach traktowane jako MAKSIMUM to tak średnio poważnie, o 12 nie mówiąc :v

Zuorion

Limit masz jak jest hasło maskowane, ale jak je wyłączysz to powinno dać się dłuższe, chyba, z zapomnieli i mają błąd xd.

Zaloguj się aby komentować

Piękny, bezużyteczny program do ruszania okienkami w rytm muzyki:

https://streamable.com/lntoxt

Źródło: https://mastodon.social/@juni/110872851859321023

#programowanie #programista15k
cec

Ile razy wrzucisz ten sam post? ( ͡° ͜ʖ ͡°)

wrazik

@cec Stwierdziłem że wrzucę na streamable żeby ładny podgląd był. Wiesz, z edycją postów jest jak z update'ami hejto. Na początku spoko, ale po jakimś czasie dupa blada.

Hoszin

ale winampa ktoś tam używa?

Zaloguj się aby komentować

Jakiś czas temu jak jeszcze się dopiero zaczynałem orientować w programowaniu zawodowym natknąłem się na kilka myśli, spostrzeżeń, które mocno zmieniły moje spojrzenie na pewne rzeczy i podniosły jakość mojej pracy niemal z marszu. Czerpałem głównie z książek, bo jestem książkowym świrem i częściej sięgnę po książkę niż Hindusa na YT, choć zdarza się i tak. A pracę zaczynałem zaraz po technikum w januszeksach więc często nie miałem żadnego mentora w firmie.

No i jedną z tych myśli była klasyfikacja kodu wg złożoności i liczby zależności. Zaprezentował ją Khorikov w książce Unit Testing (dostępna tez po Polsku, Helion).
Idea polega na tym, że kod można ocenić pod względem:
**złożoności lub wagi domenowej** - czyli jak istotny jest kod dla podstawowego celu aplikacji (np algorytm wyznaczania ścieżki do celu w nawigacji) bądź jak bardzo jest on skomplikowany, czyli ile ma rozgałęzień, przypadków skrajnych i tak dalej;
liczby współzależności - czyli ile zawiera odniesień do zależności spoza kontroli bieżącego procesu, które mogą być modyfikowane również przez inne procesy, np połączenie z bazą danych, redisem, jakimś innym serwisem. Khorikov stawia tutaj wyjątek, że jeżeli serwis jest read only to nie traktuje się go jako współzależność ale ja lubię nie stosować się do tego wyjątku.

Jeżeli dwie powyższe miary zaprezentujemy na układzie współrzędnych (rozpatrując dodatnie połowy obu osi, ofc) to możemy podzielić go na cztery ćwiartki, pic rel. Jedna z nich to algorytmy, czyli kod o niskiej czy lepiej zerowej liczbie współzależności, które należy otestować jednostkowo. Idealnie jeśli ich rola sprowadza się do przyjęcia danych i zwrócenia wyniku, bez "efektów ubocznych". Druga to kontrolery, które testuje się integracyjnie. Niska złożoność ale dużo współzależności. Idealnie nie ma tam żadnych ifów, obliczeń, nic. Jedynie koordynacja komunikacji pomiędzy współzależnościami. Kod trywialny to kod o niskiej złożoności i liczbie współzależności (np gettery, settery etc). Nie testuje się go w ogóle bo nie opłaca się. I wreszcie **kod przekomplikowany **(jest takie słowo w języku niepotocznym? xD) to kod który jest i złożony i ma dużo zależności i jest to ten który widzicie w Waszych spagetti w Wordpressie. Ten ostatni typ to kod, który należy zrefaktorować, podzielić na algorytmy i kontrolery i otestować je indywidualnie.

Po lekturze tej książki natychmiast zastosowałem się do tych wskazówek w projektach w pracy i to był game changer. Od tamtej pory kod który piszę jest otestowany, przemyślany i poukładany. W każdym języku w którym miałem okazję napisać coś więcej ta porada znalazła zastosowanie. Jak ktoś dopiero zaczyna karierę albo dalej ma problem z pisaniem testowalnego kodu to polecam całym sercem.

PS to nie reklama, po prostu jakbym miał zaczynać jeszcze raz to sam bym chciał żeby ktoś mi polecił takie inspirujące rzeczy wcześniej niż odkryłem je sam.
2428e4ee-a8a5-4a2e-990c-f2ecac28b4b2
GazelkaFarelka

@Kshaq Największą zaletą pisania testów jednostkowych jest nakazanie ich pisania programistom do ich własnego chujowego kodu. Jeżeli pisanie testow do tego co wysrałeś to droga przez mękę i zajmie ci pół dnia, to powinno ci dać do myślenia.

kobiaszu

@Kshaq Szczerze to totalnie nie zawracam sobie tym głowy od kiedy pisze w podejściu "Design by Contract" I używam weryfikacji formalnej

Voltage

@Kshaq to co opisałeś brzmi jak osobna, "własna" interpretacja architektury warstwowej czy heksagonalnej przy DDD. Dodatkowo, jeśli musiałeś odkryć podobne podziały sam to najwidoczniej zawiedli koledzy albo po prostu firmy w których było Ci dane na początku pracować, ale to nic nowego, sam też niestety przechodziłem podobną ścieżkę.


Z perspektywy doświadczonego deva powiem tylko tyle, że takowe interpretacje własne i książki niesamowicie burzą spójność w świecie IT i po prostu ciężko się przez nie dogadać. Stosowanie różnych praktyk, pojęć, później czasem wychodzi nadmierne tłumaczenie przy CRkach albo po prostu przez różnice w nazywaniu tych samych rzeczy (bo każdy przeczytał inną książkę) wychodzą jakieś dziwne koncepcje.

Kshaq

@Voltage 

Wiadomo, boli jak zmieniasz pracę, projekt, klienta i musisz przerzucać się na inny "framework" ale nie uważam żeby to był rozwiązywalny problem. Różne koncepcje są przyjmowane w różny sposób w zależności od potrzeb. Takie DDD na przykład, czasami jest przyjmowane w całości, czasami częściowo, czasami wcale. Podobnie hexagonal, onion, CA. Każdy projekt to okazja do poszerzenia horyzontów, a każda nowa koncepcja którą ktoś przynosi to okazja do dyskusji, z której albo nie wyniknie nic albo wyłoni się potencjalnie lepsze rozwiązanie, a zbiór doświadczeń co działa i co nie to korzyść dla ciebie, bo będziesz znał wady i zalety podejść w przyszłości. Nie trzeba od razu implementować każdego nowego pomysłu a w mnogości języków, technologii, paradygmatów i zwykłych trendów zawsze ktoś będzie miał coś ciekawego do powiedzenia. To tyle jeżeli chodzi o świat IT, ale brak spójności w firmie, dziale czy nawet zespole to już inny temat.


A co do tego o czym pisałem: to nie jest "własna interpretacja" czy alternatywa dla żadnego gotowego "frameworka" tak jak nie jest nią np. dependency inversion, ocp albo coupling i kohezja. To jest obserwacja, uogólnienie jakiejś koncepcji, problemu i propozycja jego rozwiązania. Warto umieć nazwać i opisać elementarne problemy jakie rozwiązują różne "gotowe" architektury jak ten hexagonal czy onion, bo nie zawsze masz możliwość ich wprowadzenia, choćby kiedy masz za zadanie robić refactor jakiegoś śmietnika. A kiedy junior pyta dlaczego robisz to tak a nie inaczej, to dobrze jest umieć zaargumentować inaczej niż "bo tak jest w ddd".

Voltage

@Kshaq Nie mówię że nie masz racji, chodzi mi po prostu o wspólny język w branży który przez takie redefiniowanie oczywistości stanowi często problem. Weźmy taki DDD (skoro już przy nim jesteśmy), którego podstawą jest ustalenie wspólnego języka, nie tylko wśród devów ale też na połączeniu dev-biznes. Im lepiej się rozumiemy tym szybciej, i bardziej bezproblemowo zaimplementujemy odpowiednie rozwiązania na akceptowalnym poziomie, i tym mniej długu narobimy. W Twoim przykładzie (a może po prostu źle go opisałeś?) wyodrębniasz "kod trywialny" którym opisujesz property oraz warstwę algorytmów jako szeroko pojętą domenę, a przecież np. w DDD modele i property mają swoje miejsce właśnie w warstwie domenowej. Tak, znajdują się w niej również serwisy domenowe, jednak tutaj już jest jakaś nieścisłość. Stąd moja opinia - im więcej ludzi pisze książki/blogi i miesza w nich pojęcia tym gorzej dla innych którzy to czytają i czasem łapią mindfucka konfrontując z innymi.


Oczywiście z większością tez mogę się zgodzić, piję jedynie do tego jednego problemu.

Zaloguj się aby komentować

#android #pytanie #pytaniedoeksperta #programista15k
#programowanie
Czy google robiło jakiś szacher macher we frameworkach na androidzie?
* gmail wymaga teraz 500mb wolnego miejsca żeby załącznik zobaczyć/pobrać
* podobnie klient #nowywykop kiedy wolne miejsce spada poniżej 500mb pobrane pliki mają rozmiar 0.
* ale już np. Hejto, Reddit, Twitter czy Chrome działają normalnie pozwalając dobić do deski przy pobieraniu plików
PanGargamel

@figa-rybka na pewno masz fon czysty?

figa-rybka

@PanGargamel Raczej mnie Mariusz Pegazusem nie szpieguje

wonsz

@figa-rybka ale tam teraz jakiś agent w centrali kiśnie

Zaloguj się aby komentować

#unrealengine
mam problem, tworzę pierwszy widget "start game" z dwiema odpowiedziami i robię to wg szkolenia
https://www.youtube.com/watch?v=nLtFzpEiU2M&t=620s
i mam notoryczny błąd, którego on nie ma:

tzn. u mnie nie ma zmiennych w ekranie po lewej w stylu "startBtn" czy "quitBtn" (jakich używam). Nic nie ma i stąd pytanie - co robię nie tak?
906c7b2a-b77b-4dac-9a0f-2db7dd7fb6bb
PanGargamel

Ja nie mam tych zmiennych na ekranie

LoneRanger

@PanGargamel ten screen jest twój czy z filmiku?

Jeśli brakuje ci tego że screena, to na ekranie edycji widgetu, zaznaczasz button i na górze panelu po prawej będzie ptaszek do odhaczenia "is variable" albo coś w podobie.

PanGargamel

@LoneRanger aż uruchamiam ue

Zaloguj się aby komentować

Jak w CV wpisać że było się "eksternalsem"? Normalnie wpisuje że robiłem projekt w rubrykę firmy macierzystej, czy robię osobną rubrykę dla firmy zewnętrznej i tam wpisuje że byłem pracownikiem zewnętrznym?
#programowanie #praca #informatyka
Meverth

@Badass ja zawsze wpisuje "firma Januszex, kontraktor dla ...", ale ja jestem dziwny.

Zaloguj się aby komentować

https://www.reddit.com/r/dotnet/comments/15ljdcc/does\_moq\_in\_its\_latest\_version\_extract\_and\_send/

it looks like Moq, starting from version 4.20, does include a .NET analyzer that scans your local git config on build, gets your email address and sends it to some service hosted in Azure to check whether or not you're a sponsor. 

tutaj dluzsza dyskusja

https://github.com/moq/moq/issues/1372

Bye Moq Alez głupia decyzja, nie da się tego rozchodzić.

#programowanie #dotnet #bezpieczenstwo #cyberbezpieczenstwo
epsilon_eridani

@bacteria znasz jakąś ciekawą alternatywę? Z tego co patrzę to wszędzie jest moq xd

bacteria

@epsilon_eridani NSubstitute

Zaloguj się aby komentować

Mam pytania odnośnie #unrealengine

  1. mam biegającego bohatera w paper2d, no i on biega za szybko [używam jedynie forward vector], jak zmniejszyć przyśpieszenie?

Z góry serdecznie dziękuję!
e1519cb7-0347-4182-a488-560662a8d2ea
PanGargamel

jednak nie, skok mogę modyfikować ale przyśpieszenie biegania nie wiem jak:/

PanGargamel

tak, można i to modyfikować, choć nadal jestem od zachwytu

GitHub

@PanGargamel wygląda bardziej jak game of life ;)

Zaloguj się aby komentować

Chcę zrobić sobie stronę w HTML+CSS+JS i na reddicie polecają takie strony z szablonami:
https://html5up.net/
https://picocss.com/
https://html5boilerplate.com/
Korzystał ktoś z którejś z nich?

I drugie pytanie - strona ma być dwujęzyczna i nie wiem czy są do tego jakieś sprytne rozwiązania, czy prostu zrobić dwie wersje językowe każdej podstrony połączyć je na sztywno linkami (ten link byłby na ikonce flagi)
BilboBagosz

Ja korzystałem z https://html5up.net/ , ale ogólnie szablon to szablon, nie ma nad czym się rozwodzić za bardzo. Co do wersji językowych to zwykle każdy język ma się w osobnym pliku np. xml, gdzie jest to zapisane jako słownik klucz -> tekst. Na takiej prostej stronce, może być js, który sobie wyciągnie to wtedy z xmla, zależnie od tego jaki język będzie wybrany. Można to zrobić tak jak napisałeś - dwie strony połączone linkami na sztywno, ale jak trzeba będzie coś zmieniać/modyfikować, to na dłuższą metę lepiej mieć to osobno.


Tutaj też jest prosty przykład, jak to można zrobić w jsie, gdzie teksty nie są w xmlu, tylko jako obiekt:

https://github.com/lablnet/Javascript-Language-Selector

Zaloguj się aby komentować

#niepopularnaopinia programowanie w go daje mi dużo większą satysfakcję niż programowanie w rust
def userbar
666

@def pewnie wczesniej kodowales w jakims wysokopoziomowym jezyku?

def

@666 tak, w zasadzie, to wczesniej nigdy nie programowałem w C/C++.

VonTrupka

@def to chyba dobrze?

Zawsze możesz programować w nielubianym języku a łzy z niezadowolenia ocierać zwitkiem banknotów pięciusetzłotowych z wypłaty (´・ᴗ・ ` )

def

@VonTrupka z tych dwóch, to go jest popularniejszy. Jeśli chodzi o zarobki, to statystycznie też są one wyższe dla go

Flaaj

@def Rust ma dużo feature'ów, Go ma mało feature'ów.

Rust bedzie ci narzucać wiele rzeczy, Go da ci dużą dowolność.


Ogólnie to zależy, czy lubisz, gdy język (lub jego language server/kompilator) myśli za ciebie, czy chcesz o wszystko dbać samemu.

Zaloguj się aby komentować