Znacie kurs pisania technicznego (tzn. Opisywania kodu, tworzenia dokumentacji, robienie design doców i generalnie "pisanie dla ludzi a nie kompilatora) od #google ? https://developers.google.com/tech-writing
Polecacie/polecilibyście juniorom, czy jest to zbyt "efemeryczne" i "miękkie" i wymaga kontekstu bycia starym? #programowanie #lajko
Twoja baza SQL jest zbyt duża? Szukasz miejsc do optymalizacji rozmiaru bazy? A być może któraś z tabel puchnie i nie wiesz która?
Istnieje prosty sposób, by poznać rozmiar tabel w MySQL. Poniżej przedstawiam proste rozwiązanie pozwalające sprawdzić rozmiary tabel w bazie danych. Nie zawsze istnieje możliwość skorzystania z interfejsu graficznego, a przy dużej liczbie tabel i on może być zawodny.
To mój pierwszy post, do tej pory Was tylko oglądałem, ale muszę przyznać że jest tutaj całkiem inna atmosfera, dlatego też postanowiłem sam coś napisać.
Na vikopie swego czasu (z 2 miesiące temu, niestety post już usnięty) była dyskusja o eldorado w IT. Jedni pisali że jest 500 ofert na linkedinach, w komentarzach jednak były też opinie że wcale tak źle nie jest i że w ich firmach szukają osób. A potem, tradycyjnie zrobiło się bagno w dyskusji xD.
Co Wy uważacie na ten temat? Jest szansa na poprawę na rynku? Z mojego doświadczenia prawdą jest że dostanie się na rozmowę rekrutacyjną to już spore osiągnięcie. Zrezygnowałem z automatyki na rzecz IT, poszedłem we frontend (wiem, wybrałem najgorzej) no i teraz jestem w kropce, bo perspektyw nie widać, mimo że CV (oceniane przez osoby doświadczone) podobno nie wygląda źle.
@Szosti Senior Java - w maju był dramat, ofert jak na lekarstwo, po raz pierwszy to ja rozsyłałem CV zamiast odpisywać na oferty, ostatecznie pracy nie zmieniłem. Rozmowy były bardzo wyśrubowane, dostałem jedną ofertę na niższe stanowisko, której nie przyjąłem - mało atrakcyjny projekt, zrzucony na mida zostałem z moim zdaniem błahych powodów (brak doświadczenia z jednym aspektem JRE). Ale mnie nawet po ośmiu latach w branży zjada stres na rozmowach, i zapominam podstaw...
Dzisiaj już się trochę poprawiło, dostaję minimum jedną ofertę tygodniowo, ale zwykle są one cienkie. Eldorado jeszcze wróci, ale nie w tym ani raczej nie w przyszłym roku. Po 2020 na rynku jest przesyt. Dla nowych raczej szans nie będzie...
@Szosti u mnie tak samo, inzynier automatyk pracujący we frontendzie. Ale już mam 3-ci rok pracke, całkiem ok płatną. Czy eldorado? No nie. Jak poświęcasz przynajmniej połowe swojego wolnego czasu na ciągłe rozwijanie się, to w koncu uda ci się dostać pracę. Consistency is key.
Ale jednocześnie, dostając pracę, przy zadaniu rekrutacyjnym byłem 2-gi na 130 kandydatów (a szukali dwóch juniorów). Czy to eldorado? Patrząc na to, że wysłalem z 200 CV na wszystkie mozliwe oferty, na które spełniałem chociaż 5% wymagań, a na moje miejsce było 65 kandydatów, to chyba nie takie eldorado.
Z okazji dostania z pracy dostępu do GitHub Copilota, uznałem że pobawię się językami, które znam tylko z grubsza.
Po dwóch latach klepania głównie Pythona i sieciowych konfiguracji, zacząłem robić Advent of Code w C++.
Ale to jest kwadratowy język xD Jakieś vectory, cout'y, standard outputy. Nie przypominam sobie kiedy ostatnio musiałem definiować typ jakiejś zmiennej przed inicjalizacją, a co dopiero długość listy (znaczy się tablicy).
Niemniej bawię się świetnie. Dobra opcja na odświeżenie sobie podstaw.
@lukmar ten język jest kwadratowy z zupełnie innych względów. Sam proces kompilacji potrafi być drogą przez mękę, a jeszcze standard, który bardziej przypomina rzeźbę z gówna niż nowoczesny i spójny język programowania.
@MostlyRenegade Myślę że takie niuanse bym odkrywał dopiero pracując przy produkcyjnym kodzie. Na to się nie zapowiada na razie. Ale generalnie myślę że warto wiedzieć "z czym to się je".
@lukmar a, i jeszcze bym zapomniał o j*baniu się ze wskaźnikami i ręcznym zarządzaniu pamięcią. Co prawda ostatnio jest w tym względzie progres, ale dotyczy w sumie tylko rzeczy względnie nowych lub napisanych własnoręcznie. Bo jak dostaniesz jakieś stare api, to masz przerąbane jak w ruskim czołgu.
@piotrb a no widzisz. Moje jedyne doświadczenie z C++ to był jeden semestr na studiach kilka lat temu. Tam nas nauczyli żeby wszystko robić na tablicach, więc w mojej głowie to zostało jako standard.
Teraz copilot podpowiada mi vectory, ale jakoś tak nadal intuicyjnie wracam do tablic. Rozumiem że nie powinienem?
Niemniej sporo prawdy w tym że jestem w bańce. Od jakichś dwóch lat 90% kodu jaki piszę to python. Żeby było śmieszniej, kiedy jeszcze w poprzedniej pracy pisałem głównie w C#, to broniłem się przed tym pythonem rękami i nogami xd
Jak juz mam opanowanego Laravela, a potrzebuje ogarnac jakis frontendowy framework, to VUE czy React?
Mam projekt do zrobienia i zastanawiam sie czy nie zrobic tego tak, ze backendem bylaby API Laravel, frontend - w sumie panel adminsitracyjny - jako osobny projekt w React.
Tomasz Nikodem Hajto, ps. „Gianni” [...] – Ja kupuję tylko firmy Gianni Versace – powiedział i w ten sposób został na długie lata „Giannim”
Lubię przekazywać nazwami funkcji / podprojektów jakieś skojarzenie w formie easter-egga. Mam nadzieję, że śmieszne. #lajko <---- tag z #hejto dad jokes
No więc dzisiaj - frontend z użyciem Vue (nazwany właśnie `gianni` - sprawdź repo, daj gwiazdkę https://github.com/wombatDaiquiri/lajko ). Znowu pojęcie o tym jak działa framework mam mgliste. Ale działa. Jak chcielibyście mnie poprawić, to zapraszam do komentarzy
4. wskazać w pliku ./gianni/src/App.vue skąd pobrać posty ( `import posts from '../../data-processed/cls/2023-09-21T2331.109Z.json';` )
5. wejść do folderu gianni: `cd gianni`
6. odpalić serwer z frontendem xD kiedyś se o tym też pogadamy ( `npm run dev` )
7. wchodzicie na http://localhost:5173/ i widzicie brzydkie hejto, ale z postami być może w innej kolejności niż na hejto
8. zauważcie, że tylko raz kopiowaliśmy nazwę i wszędzie ją podmieniliśmy - to oczywiście super kandydat na automatyzację/flagę. Ale napisanie aplikacji w taki sposób to albo zdrowy rozsądek albo doświadczenie. Nie chcę na Was wywierać presji więc pozwolę sobie być nieskromny.
wszystkie te kroki można zautomatyzować - ale automatyzowanie czas. a moja doba ma jedynie 24 godziny, tak samo jak Wasze. Więc mam jeszcze dużo tematów na posty.
#programowanie #javascript #frontend #webdev
inb4 czemu nie czysty js: bo wymaga więcej tłumaczenia a tutaj można robić "cargo cult" i używać magicznych formułek do tworzenia interfejsów
#lajko , html, parsowanie, pierwszy niedoszły cross w historii hejto xD
w tym odcinku opowiem czym odpowiada serwer na tak zwane "zapytanie HTTP" i jak z tego zrobić "czyste dane" w postaci wpisów i komentarzy.
jeśli irytują Was przekleństwa albo nieformalny styl pisania, a chcielibyście mieć taki efekt jak w moim repozytorium, to moglibyście np. zapłacić @letsscrape żeby zrobili to za Was. chciałem również polecić stronkę i tutoriale tego użytkownika, ale stronka nie istnieje a tutoriale zwracają błąd xD
Moje przeczucie i doświadczenie podpowiada sformułowanie następującego twierdzenia;
prawdopodobieństwo odniesienia sukcesu w robieniu czegokolwiek rośnie wykładniczo względem czasu zajmowania się zagadnieniem.
źródło: instytut badań z d⁎⁎y vel moja intuicja ( ͡° ͜ʖ ͡°) "wykładniczość" jest figurą retoryczną a purystom znowu c⁎⁎j w d⁎⁎ę.
długi grafomański wstęp za nami, krótka treść przed nami.
Hejto w odpowiedzi na zapytanie HTTP odpowiada plikiem zapisanym w tak zwanym "HTML". Definicja jest taka, że "HTML" to język ZNACZNIKI które cośtam cośtam, ale c⁎⁎j Was to obchodzi. Zastąpimy to przykładami i chłopskim rozumem, bo obchodzi nas bardzo mały wycinek zagadnienia.
No więc w HTML istnieją wspomniane ZNACZNIKI. I te znaczniki mogą "zawierać" w sobie inne znaczniki. Jak foldery na Twoim komputerze.
Póki co zajmijmy się tekstem który widzimy - znajduje się on niejako "wewnątrz" znacznika który nie zawiera w sobie innych znaczników. Jeśli będziemy w stanie wskazać z którego znacznika chcemy wyciągnąć tekst - możemy zrobić takie rzeczy jak wyciągnięcie autora wpisu albo treści wpisu, a także jego lajków.
Jeśli chcieliście to wszystko zapamiętać, to w mojej ocenie jesteście pie⁎⁎⁎⁎⁎ięci xD
Jak sobie zobaczycie plik `scrape.js` to ja w nim używam tylko kilku tricków i one Wam wystarczą prawie wszędzie;
- wybranie znacznika (np. $('article') albo $('div'))
- użycie metody `each`, która wywołuje funkcję podaną jako argument kolejno na każdym elemencie który został wybrany (takim elementem będą na przykład kolejne znaczniki `article` w przypadku selektora `$('article')`).
- użycie metody `children` która wybiera wszystkie dzieci wybranego elementu
- sprawdzenie z którym elementem mam do czynienia za pomocą instrukcji `if` i pominięcie tych, które mnie nie interesują oraz pobranie zawartości z tych, które mnie interesują
- użycie metody `text` która zwraca tekst znajdujący się wewnątrz wybranego elementu
- użycie selektora `.` która wybiera wszystkie znaczniki mające daną klasę. Czasem w połączeniu z selektorem znacznika, np. `.find('div.parsed.text-sm')` - znalezienie znaczników `div` które mają co najmniej dwie klasy które wybrałem - `parsed` i `text-sm`
- użycie selektora ` ` która wybiera wszystkie które jest wewnątrz - na przykład `.find('div.w-full img')` wskaże wszystkie znaczniki `img` które są wewnątrz znaczników `div` które mają klasę `w-full`.
W tym momencie uważny czytelnik powinien ciągle mieć conajmniej dwa pytania (a przynajmniej te wydają mi się istotne i na nie odpowiem - jeśli masz inne, zapraszam do komentarzy);
- skąd mam wiedzieć jaki selektor wybrać?
- czym do ciężkiej k⁎⁎wy jest klasa?
Łatwe znalezienie selektora wymaga posiadania przeglądarki (w moim przypadku Google Chrome po angielsku - może jakaś dobra dusza napisze co kliknąć w Polskiej wersji - natomiast w każdej przeglądarce istnieje taka funkcja i działa podobnie). Klikamy prawym przyciskiem myszy na element który nas interesuje (np. treść wpisu - obrazek 1) a następnie wybieramy ostatnią opcję (u mnie "Inspect", po Polsku chyba "Zbadaj"?) i szukamy jakiegoś "charakterystycznego wzorca" w nowym okienku które nam się otworzy (obrazek 2 - klasy `.text-sm` i `parsed` - sprawdziłem i wyszło, że faktycznie trafiają tylkow treść wpisu). Zauważanie tych wzorców będzie Ci szło lepiej z czasem. W pliku scrape.js używam około 20 selektorów. Napiszesz takich parserów dziesięć i ciężko Ci będzie takich wzorców nie zauważać.
Na koniec używamy jakiejś biblioteki żeby wykonać akcję "pobierz zawartość selektora". W moim przypadku jest to `cheerio` bo wyskoczyła jako pierwsza jak wpisałem `javascript html parsing` xD (nie wiem czy nie powinienem o tym napisać na początku ale to jest właściwie istotny detal a nie "mięso" artykułu).
A wspomniana "klasa" to po prostu tak zwany "artybut" o nazwie "class" - widać to dobrze na obrazku 2. Istotnym jest na zakończenie dodać, że artybuty również możemy pobierać - w ten sposób na przykład zapisuję linki do avatarów pobierając atrybut `src` znacznika `img`;
Chciałbym niebawem pobawić się w sortowanie i wyświetlanie wpisów wymyślając różne algorytmy i sprawdzając czy któryś feed szczególnie mi się podoba. Jednak aby to zrobić potrzebuję sposobu na wyświetlenie wpisów w jakiejś formie graficznej, którą będzie mi wygodnie konsumować. Zajmiemy się więc tworzeniem "prawdziwego frontendu" i poznawaniem jakiejś "biblioteki do widoków".
Nadgorliwym proponuję poczytanie na przykład o vue.js ( https://vuejs.org/ ).
Ambitnym, kompetentnym i pie⁎⁎⁎⁎⁎⁎ętym proponuję poczytanie o innej technologii której nie znają albo która najbardziej do nich przemawia - do wyboru;
- react.js ( https://reactjs.org/ ) - z tego będzie korzystało kolejne pokolenie profesorów na uczelniach jeśli kiedyś wyewoluują poza ręczne pisanie HTMLa xD
- angular.js ( https://angular.io/ ) - ja nie korzystałem bo nie mam tego hasła w moim 'buzzword bingo' technologii o których się rozmawia przy piwie
- tailwind.css ( https://tailwindcss.com/ ) - reklamuje się sloganem “Best practices” don’t actually work. Więc brzmi conajmniej na rzecz wartą uwagi.
- bootstrap ( https://getbootstrap.com/ ) - nie wiem czy dalej się używa bootstrap, ale widziałem kiedyś gościa co używał i szybko robił widoczki, więc pewnie spoko.
- jquery ( https://jquery.com/ ) - kiedyś pisałem całkiem skomplikowaną stronkę używając jquery. Okazało się że wnioski do których doszedłem w bólu zostały już wysnute przez mądrzejszych ludzi i opakowane w `vue` i `react`. Mam nadzieję że pracownicy naukowi są już na tym etapie, ale szczerze mówiąc to nadzieja taka jak na zwycięstwo Polskich piłkarzy ( ͡° ͜ʖ ͡°)
Cały czas się zastanawiam - co by mi dało korzystanie z innego frameworka/silnika czy co to jest? Na potrzeby lajko wystarczyłoby jQuery ale to myślę że jest za stare.
@wombatDaiquiri - spróbować nie zaszkodzi raczej?
Ja myślałem, że to jakaś kupa jest jak pojawiło się po raz pierwszy w Stack Overflow survey - ale po sprawdzeniu dla mnie okazało się strzałem w dziesiątkę
- react.js ( https://reactjs.org/ ) - z tego będzie korzystało kolejne pokolenie profesorów na uczelniach jeśli kiedyś wyewoluują poza ręczne pisanie HTMLa xD
Ale z Ciebie optymista. Na wielu uczelniach do dzisiaj na kolokwiach masz pisać kod na kartce xDDD
kurde miałem robić #lajko jako silnik rekomendacji dla #hejto a tu widzę że bardziej by się przydał stabilny mirror #programowanie #networking #siecikomputerowe