#csharp

9
18
Hej, programiści. Mam pytanie filozoficzno-techniczne.

Załóżmy, że jest sobie jakieś tam API udostępniające różne funkcje. API nie jest obiektowe i stanowi po prostu jedną płaską listę funkcji, które można wywołać z różnymi parametrami. Obowiązkowym parametrem każdej funkcji jest identyfikator klienta (pluginu), który funkcję wywołuje.
Chciałem sobie to API jakoś opakować i porobić na jego podstawie jakieś proste obiekty, którymi potem będzie można manipulować, ale nie wiem jak to rozwiązać architektonicznie, głównie przez ten obowiązkowy identyfikator, który trzeba zawsze przekazywać. Każdy jeden obiekt musiałby znać ten identyfikator, więc musiałby być on globalny. Z drugiej strony nie może być za bardzo globalny (np. jako obiekt statyczny), ponieważ teoretycznie w tej samej przestrzeni pamięci będą przebywać różne pluginy z różnymi identyfikatorami. Z kolei przekazywanie identyfikatora jawnie do obiektów za każdym razem trochę mija się z celem, gdyż właśnie tego chcę uniknąć.

Może zetknęliście się kiedyś z takim problemem, albo istnieje jakiś wzorzec na coś takiego?

#programista15k #programowanie #csharp#dotnet #cpp (dla zasięgu)
sierzant_armii_12_malp

@MostlyRenegade No to niech sobie każdy obiekt trzyma ten API key - wtedy nie będziesz go musiał za każdym razem do obiektu przekazywać. Różne pluginy w tej samej przestrzeni bdą, oczywiście, musiały korzystać z innych instancji danej klasy.

MostlyRenegade

@sierzant_armii_12_malp Właśnie wymyśliłem, że przecież i tak te obiekty muszę najpierw pobrać funkcją API, a potem wszelkie zmiany zatwierdzić innymi funkcjami, więc już na etapie ich pobierania mogę im przypisać klucz. A gdybym tworzył nowy obiekt, to nic nie stoi na przeszkodzie, aby pobrana kolekcja (w sensie obiekt) również trzymała klucz i przekazywała go obiektom w miarę potrzeby.


Czasem wystarczy napisać posta na hejto i rozwiązanie samo przychodzi ( ͡° ͜ʖ ͡°)

wombatDaiquiri

@MostlyRenegade o widzisz, a ja się zastanawiałem dla kogo pisze @elszczepano a pisze dla Ciebie - polecam jego bloga@MostlyRenegade


w większości przypadków wystarczy użyć konstruktora obiektu z parametrem: https://www.frontstack.pl/blog/constructor-design-pattern


dla bardziej specyficznych zastosowań możesz chcieć użyć: https://devszczepaniak.pl/wzorzec-projektowy-builder/ lub https://devszczepaniak.pl/wzorzec-projektowy-factory-fabryka/

koszotorobur

@wombatDaiquiri - zaoszczędziłeś mi wymądrzania się

mortt

jeśli Cię dobrze rozumiem to możesz to ogarnąć przez clousures albo klasę z konstruktorem zależy czy funkcyjnie czy obiektowo.


edit - wombat dał bardziej kompleksową odpowiedź.

Zaloguj się aby komentować

Hej, zna się tu ktoś na C++/CLI?

Jest sobie aplikacja, do której można pisać pluginy. Wtyczki mają postać bibliotek dll, które muszą eksportować odpowiednie funkcje i muszą znajdować się w odpowiednim folderze w ścieżce aplikacji np. "c:\Aplikacja\plugins\"). Interfejs i API jest natywne, ale mam narzędzie napisane w C#, które chciałem podpiąć. Jedna opcja to użycie jakiegoś starego pakietu z NuGeta (DllExport), które dokleja tablicę eksportów do dotnetowego zestawu, ale pomyślałem, że zrobię po prostu pomost w C++/CLI, z którego będą wywoływał obiekty napisane w C#.

Problem polega na tym, że nie mam pomysłu jak poprawnie skonfigurować ścieżki w projekcie, żeby wszystkie DLLki ładowały się od razu przy starcie wtyczki, bez konieczności ręcznego ładowania zestawów dotnetowych i pokazywania ścieżek. Obecnie zestawy dotnetowe muszą być obok aplikacji wywołującej (w "c:\Aplikacja\"), a chciałbym, aby były folderze z pluginami, albo jeszcze lepiej - w dedykowanym folderze wewnątrz katalogu z pluginami (c:\Aplikacja\plugins\MojaWtyczka\). Oczywiście dobrze by było, żeby wszystkie dll-ki budowały się od razu do docelowych folderów przy debugowaniu.

A może jednak trzeba napisać własny resolver, żeby pokazać, gdzie dotnet ma szukać dll-ek?

#programista15k #programowanie #cpp #csharp #dotnet
MostlyRenegade

@fadeimageone no właśnie nad czymś takim pracuję: natywna aplikacja zewnętrzna + wrapper C++/CLI i reszta w C#. Chodzi mi natomiast o konkretny problem ze ścieżkami do wszystkich potrzebnych dll-ek. Nie mogą się znajdować gdziekolwiek, gdyż wtedy to nie działa.

I jak teraz na to patrzę, to chyba najefektywniej będzie po prostu napisać własny resolver, w którym będzie wskazana ścieżka do ich wyszukiwania.

John_polack

Napisałem kiedyś kalkulator w c++ - w czym mogę pomóc?

Zaloguj się aby komentować

KOLEJNY DZIEŃ TRZEŹWOŚCI (21 JUŻ) DLA JEGO
UGUEM (XD) nadal nie piję. 21 dni już minęło, szybko ten czas zapierdala. Nie pisałem ostatnio nic, bo wolę informować co kilka dni i zbierać ciekawe rzeczy do opisania. Ostatnio idzie mi jak kurwie w deszcz – ciągle coś „złego” się dzieje. Ostatnio przykładowo zauważyłem, że HUOPSKA TOYOTA nie trzyma mocz.. oleju XD. Świzdu gwizdu, będzie 200zł w pizdu (albo więcej XD). Zgubiłem też słuchawki bezprzewodowe co miałem na siłownię i zmuszony jestem ostatnio znowu do słuchania KLOSZARDA PEJI XD.

KOŁCHOZ MUSI BYĆ
Szukałem, wysyłałem i odezwali się z trzech miejsc. Walka Januszy o pracownika bożego XD. Jedno miejsce to czterobrygadówka, gdzie nie dość, że sam nie chcę iść, to wątpię też, że zostanę przyjęty (wymagają takich rzeczy, których po prostu ja nie umiem XD). Pozostałe dwie opcje to:

- A – Sklep hydrauliczny, codziennie 8h pracy, niektóre soboty pracujące. Mały biznes i najpewniej umowa zlecenie, prawdopodobnie za minimalną.

- B – Sklep RTV/AGD, 10h zmiany ale więcej dni wolnych. Jest to duża sieć sklepów i najpewniej dostanę umowę o pracę. Tutaj też zaoferują mi minimalną + premię za sprzedać (tylko, że tam ruchu nie ma w ogóle XD). No opierdalando w zasadzie.

Muszę pomyśleć nad wyborem. Ogólnie to jak by mi w opcji B zaproponowali tylko 8h pracy to wybór prosty. W poniedziałek mam w miejscu B rozmowę, a w miejscu A to dopiero za tydzień jakoś.

HUOP MODE ON
Siłownia trwa w najlepsze, 4x w tygodniu chodzę i nakurwiam ciężary jak pojebany. Jest progres, trzymam dietę i czuję się lepiej, każdy ze mną zbija piątkę na sali, baba w recepcji pamięta moje imię XD. Dzisiejszy trening to jednak jakaś abstrakcja dla mnie, bo poczułem się jak na początku przygody – mało się nie zrzygałem znowu XD. 

Byłem fajnie wypoczęty po 1 dniu przerwy i poleciałem z intensywnością grubo. Nie wiem nawet czemu, no po prostu tak fajnie mi szło, że nakurwiałem ponad swoje możliwości. Na koniec wbiły jakieś 4 baby co gadały o ruchaniu obok wyciągu, więc na speedzie jeszcze dojebałem triceps, żeby spierdolić XD. I w zasadzie byłoby spoko, bo mimo zrobienia ponad normę, czułem się jeszcze git.

Ogólnie siłownia zrobiła taki challenge, że za każdy kilometr na bieżni wpłacają 1zł na jakiegoś chorego typa (nawet nie wiem kurwa na co chory XD). Mi się ogólnie podoba na bieżni, więc mimo bycia wykończonym jak stonka po azotoxie nie mogłem odpuścić dodatkowego wysiłku. Wbiłem i zrobiłem 3,6km w tempie 7km/h i jak zszedłem z bieżni to mało się nie wyjebałem (i zrzygałem XD).

TRZEBA ROZWOJU DLA JEGO
Potrzeba mi czegoś na czym będę spędzał czas poza siłownią (i w przyszłości pracą). Obecnie go marnuję na scrollowaniu wysrywów na wykopie/reddicie/masturbacji. Nie czuję się z tym dobrze. Ostatnio przebąkiwałem coś o nauce #csharp i zamierzam wreszcie się za to zabrać. Dodatkowo mam już gotowe materiały na pierwszy huopski vlog więc montaż filmików zajmie mi też jakąś część wegetacji.

Ogólnie muszę ograniczyć siedzenie na wykopie, reddicie, 4chan, youtube jak najbardziej. Czuję, że mi to robi papkę w mózgu, i co najgorsze – marnuję czas, a przecież założeniem CHŁOPSKIEJ DYSCYPLINY jest to, że mam jak najbardziej wykorzystać ten rok. 

Pierwsze kroki za mną – masturbacja ograniczona do minimum. Wiadomo, czasami trzeba, ale z poziomu trzepania 2x dziennie minimum, jestem na poziomie trzepania raz w… tygodniu? Nie pamiętam nawet kiedy waliłem, ale jest to bardzo rzadko xD. Pornosy w ogóle odstawiłem, pierdole oglądać ruchanie i przewijać do 23 strony na PornHubie by znaleźć materiał XD

#huopwsiowy #przegryw #alkoholizm #gymcel #hejtokoksy #silownia #wychodzimyzprzegrywu
d044ebe4-d69d-4640-bdf4-9e5c1f456b64
slynny_skorpion

Kup sobie gitarę basową. Gra się jeden dźwięk na raz do tego jakiś tani interfejs do kompa, darmowych wtyczek VST i symulacji kolumn od groma. Jak zrobisz bice to będziesz fajnie wyglądać z dużą gitarą z grubymi strunami co będziesz grał? nie ważne, ludzie i tak nie słuchają basisty

Tuniex

@WiejskiHuop póki nie masz planów to proponuję czytanie książek, tak żebyś sobie ustalił 1-2godz czytania(nie muis być codziennie), dla odpajęczenia głowy.


PS. Planów rozwojowych, co by wymagały używania największego mięśnia, oczywiście

Sezonowiec

@WiejskiHuop stonka po azotoxie😆😆😆 o jak jebłem, nie ma bardziej chłopskiej metafory bycia wyjebanyn do spodu 😆 coś pięknego na koniec dnia 😊 walić konia czasem trzeba, tak dla zdrowia bo nasieniowody i ugulnie, a i to bardzo spoko, że z pornuchami też dajesz sobie radę 💪 powodzonka z robotą, opierdalando za minimalną to chyba nie taki zły punkt wyjścia w dodatku 10h czyli trochę mniej czasu na myślenie o zjebanych rzeczach a trochę więcej wśród ludzi 😊 lecz nie bierz tej rady do siebie bo to pisał typ co bez roboty dostaje pierdolca po dwóch dniach a tak się składa, że neetuję już prawie miesiąc xd

Zaloguj się aby komentować

Siema!
Mam pewien problem... Ogólnie robię aplikacje w C# Maui na Androida. Ostatnio dodałem drugi pakiet nuget do projektu i mi zaczęły wyskakiwać błędy.
Chyba to z powodu zależności pakietów? Prawdopodobnie jeden i drugi pakiet odwołuje się do jakieś biblioteki tylko że innej wersji...
Błąd występuje w java. Zrzut ekranu z błędem dorzucam.
Pomoże ktoś?
#csharp #programowanie #dotnet #visualstudio #android #maui #csharp#csharpmaui #problem #pomoc
c952714a-2f3e-49dc-8a4e-1b83b00c15dd
rastabaddon

Raczej masz konflikt definicja wystepuje wiecej niz jeden raz. Linkujesz 2 razy ta sama biblioteke?

Meverth

@kiko pokaż ostatni 'Caused by:`

Zaloguj się aby komentować

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ć

Jakie książki eng / pol do przeczytania z #csharp i #cpp?
#programowanie

Zaloguj się aby komentować

Biorąc pod uwagę to, że jednak ludzie to zawodne maszyny (a mi ostatnio dość często udaje się nawalać, choroba itd), będę szukał osoby, która będzie mi mogła pomóc przy pracy którą wykonuję.
Nad czym pracuję? Głównie zajmuję się utrzymaniem i rozwijaniem REST API, które wykorzystuje tak zwaną Sferę(Sfera dla Subiekta nexo). Sfera to zestaw narzędzi, który pozwala wykonywać prawie wszystkie działania, jakie dostępne są w Subiekcie Nexo. Największym wyzwaniem będzie ogarnięcie tutaj rzeczy jak to nazywamy "Subiektowych", związanych z Subiektem Nexo oraz Sferą.
Aplikacja stoi na #dotnet, czyli tutaj wiadomo, że jest #csharp.
LINQ, MS SQL, Swagger, Postman, ngrok, git, trello i tego typu sprawy. Nie ma tutaj jakiś super nowych technologii, jest raczej więcej grzebania w tych starszych.
Jeśli chodzi o doświadczenie, to pewnie taki junior byłby ok. Fajnie jeśli byłby to ktoś z Rzeszowa/Dębicy lub okolic.
Nie byłoby to coś na pełen etat, tylko raczej bardziej coś dodatkowego na UZ albo jeszcze inaczej, raczej idzie się tutaj dogadać, choć to już ode mnie zależy. Znajomość #vue(tutaj to już naprawdę dobra znajomość vuejs byłaby wymagana, czyli pewnie na poziomie doświadczonego mida), czyli #webdev też mogłaby mieć wpływ na to, jakby to tutaj wyglądało, ale akurat nie jest to priorytetem i ode mnie to nie zależy.
Mój wpis nie jest pełnoprawną ofertą pracy. Otwartej rekrutacji też nie prowadzimy, z niczym też pośpiechu nie ma.
Na razie sprawdzam, czy może jakiś chętny by się tutaj znalazł.
#programowanie #praca #pracait #dotnet #csharp
ali7200

@Dissociated mogę polecić kumpla, co prawda bardziej sieciowiec i wiele rzeczy musiałbyś go nauczyć, ale za to można mu płacić w orzeszkach

Dissociated

@ali7200 Tutaj jednak dobrze by było, jeśli ta osoba miałaby jakieś doświadczenie z programowania w .net, żeby chociaż w tych technologiach siedziała/uczyła się.

Zaloguj się aby komentować

Cześć Wam!
Trochę czasu minęło od naszego ostatniego posta, ale już po naszym sezonie urlopowym, więc wracamy do gry!
Przypomnę, że ostatnio scrapowaliśmy podstronę Steama: Wiedźmin III:
https://letsscrape.com/posty/steam-store-scraping-strony-gry/
Natrafiliśmy na znany problem każdemu programiście: zmiana kodu spowodowała wywrotkę w innym miejscu w kodzie.
Wtedy podjęliśmy decyzję, że już czas wprowadzić testy! (Dlaczego teraz a nie na samym początku? Przecież testy się pisze przed kodem!)
Zobaczcie jak my do tego podchodzimy w projektach webscrapingowych:
https://letsscrape.com/posty/steam-store-scraper-testy/
Do następnego posta!
ps wszelkie reakcje na post mile widziane, to nam daje siłę aby tworzyć tego typu treści
#programowanie #selenium #webdriver #webscraping #scraping #datamining #csharp #tdd #testowanie #testowanieoprogramowania
21dc50e4-9b6a-427b-9241-415b18ae8edc
Thereforee

O, to się zdecydowanie przyda do moich dziesiątek scraperów rozsianych tu i tam. xD

Zaloguj się aby komentować

Cześć Wszystkim!
To już nasz czwarty post pokazujący jak wygląda nasza praca!
A co robimy? Prowadzimy firmę zajmującą się pisaniem scraperów i pobieraniem danych z internetu.
Pisząc scraper do Steam'a staramy się opisać, ze szczegółami czego można się spodziewać w takich projektach.
Po krótkim wstępie: 
https://letsscrape.com/posty/steam-store-scraper-wstep/
wzięliśmy się za analizę i rozgryzanie kodu Steama:
https://letsscrape.com/posty/rozgryzamy-kod-steama/
po skutecznej znalezieniu mechanizmów jakie rządzą na Steamie, przeszliśmy do pobieraniem danych z listingów gier:
https://letsscrape.com/posty/kod-pobierania-danych-ze-steam-store/
natomiast dzisiaj, będziemy pisać wyciąganie danych z samej strony gry:
https://letsscrape.com/posty/steam-store-scraping-strony-gry/
a jest tych danych sporoooOOooooOooo.
Grę jaką wieliśmy na warsztat chyba każdy (Polak) zna lub o niej przynajmniej słyszał!
Zapraszamy do lektury!
Komentarze, pytania, uwagi (również te krytyczne) mile widziane!
#programowanie #selenium #webdriver #webscraping #scraping #datamining #csharp #chwalesie
f514b8d3-23d5-4e67-925d-043e984e3e59
Cześć Wszystkim!
To znowu my! Prowadzimy firmę zajmującą się pisaniem scraperów i pobieraniem danych z internetu.
Chcielibyśmy Wam pokazać jak wygląda nasza praca na przykładzie scrapowania danych ze Steam'a!
Ostatnio zajmowaliśmy się rozgryzaniem kodu Steama o czym możecie przeczytać tutaj:
https://letsscrape.com/posty/rozgryzamy-kod-steama/ - gorąco zachęcam!
Mając już tę wiedzę dzisiaj będziemy pisać kod scrapujący dane z listingu gier.
https://letsscrape.com/posty/kod-pobierania-danych-ze-steam-store/
Co się w najnowszym poście znalazło?
- trochę kodu w csharp
- dodatkowa rozkmina działania serwisu
- testowanie kodu
Zapraszamy do lektury!
Komentarze, pytania, uwagi (krytyczne) oraz okejki mile widziane!
#programowanie #selenium #webdriver #webscraping #scraping #datamining #csharp
84116dac-28a4-4890-92ab-b5e691b96942
dsol17

Prowadzimy firmę zajmującą się pisaniem scraperów i pobieraniem danych z internetu.


I jak na tym niby zarabiacie ? W sensie ok,rozumiem, pozyskujecie jakieś dane,może nawet są one sensownie sformatowane ale kto to potem głównie kupuje ? Oczywiście nie żebym chciał od was info o konkretnych klientach czy coś,TO JEST OCZYWIŚCIE WASZA TAJEMNICA PRZEDSIĘBIORSTWA itd,ale na jakiego typu dane najczęściej macie klientów to może napisać możecie ?


z mojego wstępnego OSINTu na waszej stronce wychodzi,że to jakieś statystyki pod marketing - mam rację?


W sensie - surowiec do #datamining to jest,ale tylko surowiec,więc dziwi mnie trochę,że tak wąska specjalizacja i jakoś to jedzie. No chyba,że startupem jesteście,wtedy mniej dziwi.

Pawlosek

@dsol17 Raczej nie jedzie, ale jakaś próba swojego biznesu jest

Ze swojego doświadczenia takie scrapery są bardzo słabo opłacalne jeżeli nie robisz tego na bardzo szeroką i profesjonalną skalę a liczysz na to, że uda ci się trafić w trend użyteczności (np. zescrapowanie nr ksiąg wieczystych dla każdej działki w momencie, gdy to było możliwe na geoportalu itp).


Napisałem kilka scraperów bardziej pod siebie typu OLX, otomoto, allegro czy inne, zazwyczaj opłacalność tego kończy się już zanim stworzysz projekt, więc raczej jest to dla własnej satysfakcji

YebacWykop

Ooo kocham takie kodowanie, pisałem kilka wtyczek do aplikacji jakie mamy u mnie w firmie i to jak słabo zaprogramowane są aplikacje topowych firm to nóż się w kieszeni otwiera. Przeszedłem piekło z elementami iframe więc już za dużo mnie nie zaskoczy

Zaloguj się aby komentować

Cześć Wszystkim!
Prowadzimy firmę zajmującą się pisaniem scraperów i pobieraniem danych z internetu.
Chcielibyśmy Wam pokazać jak wygląda nasza praca na przykładzie scrapowania danych ze Steam'a!
Ostatnio zrobiliśmy mały zarys pracy oraz napisaliśmy scrapowanie tagów:
 https://letsscrape.com/posty/steam-store-scraper-wstep/
Dzisiaj zajmiemy się analizą i rozgryzaniem kodu Steam'a.
Brzmi fajnie, lecz post jest dosyć ciężki i skomplikowany.
Z drugiej jednak strony pokazujemy jak wygląda praca z namierzaniem danych i próbami ekstrakcji ich. Oczywiście można uprościć ten kod korzystając z np. Selenium, ale jak poprzednio pisaliśmy sęk w tym, aby scraper był szybki i zużywał jak najmniej zasobów. Dlatego zostajemy przy HttpClient mimo, że wymaga to więcej pracy od nas.
 https://letsscrape.com/posty/rozgryzamy-kod-steama/
Zapraszamy do lektury!
Komentarze, pytania, uwagi (krytyczne) oraz PIORUNY mile widziane!
#programowanie #selenium #webdriver #webscraping #scraping #datamining #csharp
7b53512d-6dd8-4f20-bbc0-42e10f67aa3e
szoz

Scrapowanie danych często wymaga takiej analizy i zabawy w detektywa ale daje to satysfakcję.

Czasami trzeba używać Selenium jak na stronie dużo danych doładowywanych jest dynamicznie albo są zabezpieczenia antybotowe.

letsscrape

@szoz świetnie to określiłes "w detektywa", dokładnie tak jest! najlepsza zabawa jest właśnie z zabezpieczeniami antybotowymi "pokonanie" jakiegoś rozwiązania, z którego duże sajty korzystają daje rzeczywiście satysfakcję!

nazwa_uzytkownika

Scrapowanie nie podchodzi czasami pod celowe bombardowanie serwerów zapytaniami? Jak to wygląda pod względem prawnym?

WolandWspanialy

@nazwa_uzytkownika


https://informatykzakladowy.pl/nieliczni-fani-portalu-albicla/#more-3975


wspomniany już LinkedIn koncertowo przewalił sprawę w sądzie. Scrapowanie publicznie dostępnych danych (w tym profili na Albicli) jest w pełni legalne i nie różni się niczym od ręcznego odwiedzania profili. Zupełnie inną sprawą byłoby gdyby scraping spowodował niedostępność usługi i to już mogłoby być potraktowane jako atak DoS i tutaj Albicla miałaby w sądzie pole do popisu.

letsscrape

@nazwa_uzytkownika zależy jak się zorganizuje scrapowanie. Zawsze można sie przyczepić ale generalnie jak to się robi z głową to jest wszystko OK

Zaloguj się aby komentować

Cześć Wszystkim
Prowadzimy firmę zajmującą się pisaniem scraperów i pobieraniem danych z internetu.
Chcielibyśmy Wam pokazać jak wygląda nasza praca!
Dużo programistów myśli, że najważniejszy jest tutaj kod jak i sam scraper  
Oczywiście są to rzeczy ważne, ale nie najważniejsze.
Przeżyjcie razem z nami przygodę obserwując jak powstaje: scraper danych – Steam Store!
Dla zainteresowanych mamy nadzieję, że kliknięcie w link:
https://letsscrape.com/posty/steam-store-scraper-wstep/
nie będzie stanowić problemu!
O czym jest pierwszy post?
porównujemy sposoby pobierania HTMLa (HttpClient Vs Przeglądarka)
pokazujemy, że pisanie scraperów wcale nie jest takie proste jak się wydaje
szukamy pierwszej podstrony na Steamie do scrapowania
piszemy kod scrapujący
sprawdzamy zabezpieczenia strony
wrzucamy parę rad dla osób, które też chciałyby sobie "poskrapować"
Zapraszamy do lektury!
Komentarze, pioruny mile widziane
#programowanie #selenium #csharp #webscraping #letsscrape
f94d972e-8877-46b8-a5cf-62b6414a5cac
letsscrape

Opublikowaliśmy drugi post https://www.hejto.pl/wpis/czesc-wszystkim-prowadzimy-firme-zajmujaca-sie-pisaniem-scraperow-i-pobieraniem- zapraszamy!

Zaloguj się aby komentować

Siema.
Wie ktoś może jak przechwytywać wszystkie powiadomienia z różnych aplikacji na Windows'ie?
Szukałem w internecie ale nic nie mogłem znaleźć...
#programowanie #programista15k #windows #csharp #cpp
def

@kiko I raczej nic nie znajdziesz, jeśli chodzi o powiadomienia systemowe, to wątpię, żeby było tutaj jakieś api dostępu do powiadomień z innych aplikacji

kiko

@def kurde trochę szkoda...

Zaloguj się aby komentować

Mam web API stworzone z template dla .net core 2.1 z targetem na net framework (taki tam pokemon).
Używam tutaj dodatkowo biblioteki/zestawu bibliotek, co działa tylko pod .net framework.
W kontrolerze wywołuję jedną metodę z tej biblioteki. Po każdym wywołaniu widać, jak zapycha się pamięć, która nie chce się zwalniać. Po kilkunastu razach wywala się wyjątek OutOfMemoryException.
Użyłem DotMemory i wychodzi na to, że coś się chrzani w tej bibliotece.
Natomiast jak użyję tej biblioteki w apce konsolowej, to mogę nawet wywołać tę metodę setki razy i nic się nie stanie, pamięć ładnie się zwalnia.
Co do biblioteki, to robi duużo rzeczy na bazie danych.
Na swój chłopski rozum tego nie ogarnę -,-
#programowanie #csharp #dotnet
Besteer

@Dissociated nie ma za co. Temat niestety za głęboki na ogólne porady.

NullReferenceException

@Dissociated @Besteer spróbuj zrobić bibliotekę/wrapper jako class library w dotnet standard na tę bibliotekę subiekta i dopiero tę swoją podepnij do dotnet core. Może to coś pomoże.

Spróbuj też owinąć to jakimś interfejsem i rejestrować w DI jako scoped. Może to rozwiązać wycieki pamięci bo będzie go regularnie GC sprzątał i DI Ci będzie tworzył nową instancje dla każdego requesta. Trzeba sprawdzić jaki impact na bazę w takim rozwiązaniu bo możesz zamienić jeden problem na drugi.

Jeśli coś w bibliotece jest zjebane z zarządzaniem obiektami to może któryś z tych patentów pomóc.

Besteer

@NullReferenceException @Dissociated jak już idziemy w .NET Standard, to przy okazji może podbij to do .NET 6/7? Może być stary bug dawno rozwiązany w nowszej wersji. Spróbuj też zrobić kompletnie nowy, osobny projekt ASP .NET Core, podpiąć tylko tę problematyczną bibliotekę i w takiej absolutnie minimalnej konfiguracji sprawdź, czy też jest to samo. Może u siebie w kodzie masz coś źle i koliduje?

Zaloguj się aby komentować

robie okienkowe gui do api i elegancko zapytanie mi zwraca jsona potem robie obiekt:
var data = (JObject)JsonConvert.DeserializeObject(json);
i jak potrzebuje jakiś value to pobieram go sobie przez np.
jakisValue = data["Key"].Value<string>();
no i elegancko, ale kurde nie wiem jak mam wyciągnąc value z klucza który jest w drugim poziomie np:
 json = @”{
                               “”FirstName””:””Aditya””,
                               “”MiddleName””:””Ashok””,
                               “”LastName””:””Somwanshi””,
                               “”Phone””:[“”9004802526″”,””34304235″”],
                               “”Address””:{“”Primary””:””Panvel””, “”Secondary””:””Cloudfronts””}
                     }”
i z tego chciał bym wyciagnać np. secondary address.
#programowanie #csharp #programista15k
unxtres

@Dissociated @JuanPabloSegundo

Dzięki chłopaki. Właśnie czytałem o tym i ciężko mi było to zrozumieć. Ucze się na bieżąco piszac kod, a nie tylko teoria. Do tego praca i człowiek trochę rozkojarzony. Szkoda ze nie ma czasem kogo zapytać bezpośrednio o jakiś szczegół, było by łatwiej

Krushynka

@JuanPabloSegundo a w js można to zrobić za pomocą lodasha na przykład? Orientujesz się może?

JuanPabloSegundo

@Krushynka w js to nie wiem czy można silnie typowane klasy, no chyba że jakiś typescript

ale na js się nie znam za dużo, ja to dotnetowiec ( ͡~ ͜ʖ ͡°)

Zaloguj się aby komentować

Update Hejto w Windows Forms
Już jakoś to zaczyna wyglądać...
#programowanie #csharp #dotnet #windows #windowsforms #winforms #hejto
b7bb06b5-2293-4184-b30f-cb57da9fd402
veranoo

kotlin desktop miałbyś na wszystkie platformy

veranoo

@kiko Swoją drogą jak otrzymałeś dostęp do api, ja próbuje zarejstrować aplikacje ale każe się zalogować mimo że jestem zalogowany xd

kiko

@veranoo u mnie tak samo się dzieje, więc na razie wyświetlam posty jako osoba nie zalogowana. Aktualnie działa to tak że jest strzał do API po posty i to wyświetlam.

Chyba dobrze wytłumaczyłem xd

Zaloguj się aby komentować