lion137
2019-05-17 19:52
czysteskarpety

W sumie faktycznie się rozszerza, widzę po moim bloku gdzie na spojeniach płyt pojawiają się szczeliny :|

Delor

@Sunnydev: 13 mld lat i najlepszym co "ulepiła" natura to ludzie? Nie dołuj. Fakt, że to jedno z możliwych wyjaśnień paradoksu Fermiego. Wolę jednak myśleć, że nie jesteśmy jedyni i wyjątkowi.

Silv
2019-05-17 16:03

[ Moja nauka Angulara, wpis nr 1 ]

Dłuższy czas temu zaplanowałem nauczyć się podstaw Angulara, ale do tej pory nie mogłem się za to na poważnie zabrać.

Pomyślałem więc, że zmienię sposób nauki. Zamiast wszystko przetwarzać w samotności, w dwukierunkowej kolejce ja-klawiatura-ekran, zdecydowałem się opisać to gdzieś. Może być tu, na mikroblogu.

First things first.

Plan pracy

Jak w każdym przedsięwzięciu, potrzebny jest plan. Więc planuję: opiszę wszystko w kilku wpisach. Skoro jest to nauka podstaw, to najlepiej byłoby nie planować liczby ani treści wpisów (bo nie znam tematu). Jednak brak dokładnych wytycznych mógłby spowodować chaos, przez to spadek wydajności, a przez to porzucenie przeze mnie całego zamysłu. Takie ryzyko nie opłaca mi się.

Spróbujmy więc zaplanować. Planuję następujące wpisy:

  • Wpis pierwszy (ten): plan + wyszukanie głównych źródeł materiałów. Kolejne będę dodawać w razie potrzeby.
  • Wpis kolejny: podstawy podstaw.
  • Wpis kolejny: ważniejsze zagadnienia, na jakie trafię. Ponieważ jestem mniej-więcej obeznany z JS, powinienem móc oszacować, które to są.
  • Wpis kolejny: ciekawsze zagadnienia, na jakie trafię (chyba że nie trafię na żadne ciekawe).
  • Wpis kolejny (i ew. dalsze): wszystko, co nie zmieściło się w poprzednich wpisach.

(Jeśli ktoś miałby uwagi do tej listy, proszę pisać. Wymyśliłem ją w 5 minut).

Wpisy postaram się pisać w postaci kilku krótkich sekcji, w każdej kilka krótkich akapitów (tak jak ten wpis). Ku przypomnieniu, wpisy na naszym mikroblogu mogą mieć maksymalnie 10 000 znaków (dzięki, @furious programming, za temat). Nie będę specjalnie starać się wykorzystać tego limitu do końca, niemniej może być tak, że długość niektórych wpisów będzie wokół niego oscylować. ;)

Jeżeli w którymś wpisie uznam, że jakieś zagadnienie jest dla mnie zbyt obszerne/skomplikowane, by dać sobie z nim radę (vide ten nieszczęsny chaos poniżej) – wkleję tylko link/linki i opiszę go/je w kilku zdaniach. Być może powrócę do tego zagadnienia w kolejnym wpisie, być może nie.

Wpisów nie będę umieszczać regularnie. Gdyby ktoś chciał mnie śledzić, to może albo 1) ręcznie sprawdzać, czy jest jakaś nowa treść na mikroblogu z tej serii, albo 2) zrobić to półautomatycznie za pomocą tego skryptu na Linuksie:

$ curl https://4programmers.net/Profile/64311/Microblog | grep "Moja nauka Angulara"

i w zwróconym tekście sprawdzić, czy numer stojący za ciągiem Moja nauka Angulara jest większy od ostatniego. Ciąg [ Moja nauka Angulara, wpis nr {numer} ] będę umieszczać w każdym wpisie na początku.

Kwestie, które mogą sprawić mi problemy podczas nauki z jednoczesnym pisaniem wpisów

Czas

Z czasem nie powinno być tak źle. Potrafię przeciągać obowiązki, robiąc sto innych rzeczy. A więc, skoro już mam czas na takie przeciąganie, to mogę spróbować wykorzystać go na coś innego – na przykład na klepanie w klawiaturę.

Skupienie

Ze skupieniem powinno być przynajmniej tak samo, jak do tej pory podczas innej formy nauki. Bo – do tej pory nic się prawie nie nauczyłem (no, z Angulara), jedynie bumelowałem. Jeżeli teraz we wpisach też będę bumelować zamiast uczyć się, przynajmniej nic nie stracę.

Chaos

Najgorzej będzie z chaosem. Przez "chaos" rozumiem brak rozumienia opisywanych zagadnień (zgodnie z założeniem – przy kompletnym braku chaosu co opisuję, to rozumiem). Często się zdarza. Jak temu zapobiec – nie wiem jeszcze... <drapie się w głowę>

Styl pisania

Może przynajmniej nauczę się pisać krótsze zdania (mało pisywałem w życiu dłuższych form; mam większe doświadczenie w pisaniu wierszy, ale one nie muszą mieć zdań jako takich).

Szybki FAQ

  1. Czy będą to wpisy edukacyjne? — Nie, nie mam na celu nikogo uczyć – ale jeśli ktoś zechce sam uczyć się z moich wpisów, proszę bardzo.

  2. Czy masz jakieś doświadczenie w programowaniu/webie/JavaScripcie? — Trochę o nich wiem; w sprawie szczegółów proszę zobaczyć kod na moim profilu na GitHubie lub mój blog.

  3. Czy można mieć sugestie do Ciebie (feature request), jeśli chodzi o treść tych wpisów? — Nie – o tym, o czym będę pisać w tych wpisach, decyduję sam. Można oczywiście sugerować różne rzeczy w komentarzach, ale będą to jedynie sugestie.

  4. Zauważyłem/am literówkę/inny błąd w Twoim wpisie... — Świetnie! Pisz od razu w komentarzu. Bardzo lubię poprawiać błędy w tekście i literówki, także swoje. :) (To nie żart).

  5. Nie wiem, czy dane zdanie jest żartem, czy nie... — Najprawdopodobniej nie. Moje poczucie humoru zazwyczaj oscyluje wokół zera (zdarzają mi się pewne odstępstwa).

Jeśli masz pytania/uwagi odnośnie wpisów: te dotyczące treści wpisów kieruj na forum, a pozostałe pisz w komentarzach do konkretnych wpisów lub w prywatnej wiadomości do mnie.

Let's get things started.

Wyszukanie i wybór źródeł materiałów

Info: wyszukiwanie źródeł materiałów jest w ogóle możliwe dlatego, że dotychczas poznałem Angulara na tyle, że wiem, co to jest.

Jak pisałem już tu na forum, ciężko mi wybierać materiały, ponieważ większość z nich jest interaktywna (tzn. wymaga ode mnie innej aktywności poza czytaniem), a ja tego nie lubię. Z uwagi na to, najbardziej oczywisty wybór – tzn. strona domowa Angulara – spadł na dalsze miejsce na liście materiałów.

Drugim najbardziej oczywistym wyborem jest dla mnie od dłuższego czasu Wikipedia – najpierw angielska, potem polska.

Trzecim najbardziej oczywistym wyborem – jeśli chodzi o zagadnienia programistyczne – jest dla mnie od dłuższego czasu rodzina stron StackExchange. W przypadku Angulara najbardziej odpowiednim miejscem będzie najpewniej strona Stack Overflow, ale nie zaszkodzi poszukać wszędzie.

Czwartym najbardziej oczywistym wyborem przy zagadnieniach programistycznych jest dla mnie od dłuższego czasu GitHub. Mam oczywiście świadomość, że istniejące tam materiały do nauki są w dużej mierze "interaktywne", niemniej liczę na to, że w tym przypadku nie będzie tak źle.

Dalsze miejsca mogą być mniej lub bardziej w przypadkowej kolejności, wpisałem bowiem słowo kluczowe "angular" w Google i to, co mi wyskoczyło, przepisuję w tej samej kolejności.

No i na koniec:

Myślę, że tyle powinno wystarczyć. Jak wspomniałem, kolejne źródła materiałów będę dodawać w razie potrzeby. Mogę też w przypadku poszczególnych zagadnień czy wpisów nie wykorzystać niektórych głównych źródeł, jeśli dane źródło: 1) nie będzie miało nic ciekawego do powiedzenia o danym zagadnieniu / o zagadnieniach danego wpisu, lub 2) wszystko o danym zagadnieniu już będę wiedzieć / w danym wpisie będę mieć napisane.

Rekapitulacja

W tym wpisie przygotowałem plan nauki oraz napisałem listę materiałów. W kolejnym, zgodnie z planem, postaram się opisać swoją naukę podstaw podstaw.

Mam nadzieję, że coś z tego będzie. W każdym razie ten wpis mnie trochę pobudził do działania. Do zobaczenia!


UPDATE – lista źródeł i materiałów:

(Wszystkie nowo znalezione źródła i materiały przeniosłem do nowego, oddzielnego wpisu, ponieważ tutaj zabrakło już na nie miejsca: [ Moja nauka Angulara, wpis...).

LukeJL

@mr_jaro wydaje mi się, że te hooki to bardziej jak hooki z wordpressa albo jak definicja funkcji w językach programowania (a sam React działa trochę jak maszyna wirtualna: https://overreacted.io/react-as-a-ui-runtime/ )

mr_jaro

@LukeJL: ok, dzięki, już czaje

jarekr000000
2019-05-17 15:32

Na geeconie (w kuluarach) prowadziłem standardowe opluwanie Springa i JavaEE.
Zgromadziłem stolik z tematem Spring and Java EE must die.
Rozwówcy się z tym nie zgadzali generalnie, ale to dało mi szansę zadania mojego pytania sprawdzającego czy wolno Ci używać springa.

Jeżeli masz Beana Bz metodami a() {this.b();} i @Transactional b() {... do some db stuff }. Obie publiczne. Wywołujemy z innego beana metodę a. Czy operacje w b() będą faktycznie w transakcji bazodanowej?

Wynik - 0 na 7 osób znało odpowiedź. I jest to raczej norma.

Jak dla mnie - biorąc pod uwagę, że prawie wszyscy oni używali springa... lekko mnie to straszy.

Rozumiem, że nie każdy ma w paluszku odpowiedź. Ale jeśli powiem, że transakcja nie zadziała (w pewnych warunkach) - to IMO piszący w Springu powinien móc wykoncypować dlaczego, inaczej nie powinien tego dziwactwa tykać. Skrzywdzi go.

I tak - to jeden z problemów jaki spotykam, (ostatnio ten jakby mniej, mam nieco mniej narypane springowo projekty).
Poza tym, spotykam też dużo więcej innych problemów związanych z cieknącymi abstrakcjami Springa (lub JavaEE)... ale są bardziej tricky w wytłumaczeniu.

Tomek Sobkowiak

@Pinek Co prawda mega stare, ale tu jest wyjaśnione na czym polega problem. https://docs.spring.io/spring[...]3/reference/html/ch08s06.html

Pinek

@Tomek Sobkowiak: Według dokumentacji, którą czytałem wielokrotnie, to właśnie proxy zadziałą wtedy, jeśli tworzy się obiekt o typie interfejsu. A tutaj myślałem że chodzi o pytanie kiedy proxy zadziała przy this.foo()

jarekr000000
2019-05-17 13:27
jarekr000000

To jest problem głównie dla providerów/ cloud. Jeśli jesteś interesującym celem to na pewno da się Ci zrobić kuku, tylko kwestia czasu / pieniędzy. (W sumie to można to i tak przyjąć, ale ta dziura wskazuje konkretny sposób ataku).

vpiotr

Te amerykańce powymyślały spekulacje, mikrojądra i kesze to teraz mają. Kiedyś programowało się na ryzyku z 56 rozkazami i 1 MIPS-em było dobrze. Jak tak dalej pójdzie to się przesiądę na malinkę, założę aluminiową czapkę i to będzie koniec wintela w moim domu. Hańba!

Hispano-Suiza
2019-05-17 12:19

Gdybym miał określić siebie jako użytkownika komputera zapewne wyglądałoby to tak:

title

A dziś pod jednym z filmików na youtube natrafiłem na zabawny komentarz:

"Windows 10 is better than ever"
*Windows update team - hold my beer.

I trudno mi się tutaj nie zgodzić. Ktoś musiał się mocno postarać żeby to tak s***ć :-)

Przem Cio

Nie to żebym hejtował Ubu bo wspieram je od 2007 roku, ale przeżyłem mocne rozczarowanie jak sie okazało że 18.04 po każdej instalacji/aktualizacji przy kolejnym reboocie lapka wyrzuca żadanie o fsck ;] vide: https://askubuntu.com/questio[...]consistency-run-fsck-manually
IMHO nie ma idealnego systemu (chociaż Winda i tak jest ostatnio lepsza od macOSa który potrafi się randomowo wykrzaczać przy mniejszym updacie i to na różnych HW)

Hispano-Suiza

Apple nie potrafi zrobić niczego dobrego od kilku lat więc skąd zdziwienie? :-) Mają do ogarnięcia raptem kilka konfiguracji podzespołów, i nie potrafią sobie z tym poradzić jak widać. Co do 18.04 to nie miałem takich problemów. A już kawałek siedzę na Mint (aktualnie 19.1), bo Ubuntu rozczarowało mnie jedynie problemami ze sterownikami do Nvidii. Bez nich przy scrollowaniu stron z dużą ilością tekstu strasznie smużyło. Znowu ze sterownikami nie działało :-)

jarekr000000
2019-05-16 18:43

JOBOL

Chyba powoli zaczyna się dziać coś czego w sumie się nie spodziewałem - nie tak szybko. Jestem na konferencji JVMowej, ciągle mocno javowej - Geecon.
Robiłem prezentację dlaczego mamy równe języki i dlaczego (między innymi) java obsysa (krótko).

I to już nie jest kontrowersyjny temat.

Bruce Eckel miał taki slajd (ukradłem zdjęcie z twittera https://twitter.com/marcinmoskala/status/1129030646456889344).
Potem otwarcie dyskutujemy, że Java ssie itd. Raczej nikt nie buczy.

Możliwe, że widzę fundamentalną zmianę w zachowaniu programistów - Kotlin to już nie jest temat dla hipsterów tylko normalka. Czy w ogóle jest sens robić nowy projekt w Javie, zamiast w Kotlinie? To bardzo sensowne pytanie - teraz.

20 lat temu byłem świadkiem takiej zmiany z C++ na Javę.

1999: no zabawne te aplety, ale słyszałeś, że niektórzy chcą robić serwery w javie, ha ha, ale podobno to nawet ma jakieś zalety.
2000: server, to oczywiście oczywiście w javie

(żeby nie było - to PHP też wtedy wystrzeliło, ale to nieco inny rynek - piszę z pozycji C++ )

2018: kotlin jest równorzędnym (z javą) językiem dla Androida i Springa
2019: Google ogłasza, że Kotlin jest primary na androida (kilka dni temu)
2020: Spring ? reszta javowców? - zobaczymy (Spring-kofu może być następnym spring bootem).

To nie oznacza, że Java umrze. C++ nadal żyje, COBOL też. I nadal robi się w nich nowe projekty.
W javie będą ciągle powstawały nowe projekty, a starych tym bardziej nie będzie się masowo przepisywać.
Ale możliwe, że niedługo mainstream serwerowy może bardzo inaczej (kotlinowo) wyglądać.

Co więcej to nie tylko nieco lepszy język (lombok, ale bez wymiotów) - to jest naprawdę istotny krok w stronę FP. Dużo większy niż, lambdy z javy 8, a one całkiem dużo zmieniły.

A Java? No cóż, chyba własnie staje się COBOLem.

kate87

@Koziołek: dzięki za wyjaśnienie, właśnie zastanawiałam się jakie za tym się kryje drugie dno całej sytuacji:-)

jarekr000000

Kiedyś, jak zbiorę siły opiszę janusz - katastrofę jaką wywołało pomylenie JS z Javą.

WeiXiao
2019-05-16 18:27

https://devblogs.microsoft.co[...]improvements-in-net-core-3-0/

Nie ukrywam, że pierwsza myśl jaka mi przyszła po przeczytaniu tego, to:

@Wibowit

National Suicide Prevention Lifeline

We can all help prevent suicide. The Lifeline provides 24/7, free and confidential support for people in distress, prevention and crisis resources for you or your loved ones, and best practices for professionals.
1-800-273-8255

jarekr000000

@TurkucPodjadek: komentarz sensowny. Ale jeśli to po/pm zdecydują w jakim języku mam pisać to będą pisać beze mnie. Przyjmuje uwagi klienta w temacie, czasem nawet od architektów itp. i nawet często nie dyskutuje długo, ale to moja/programisty decyzja. Btw . faktycznie moimi hamulcowymi w językach/frameworkach są koledzy programiści. Puty programują i będą commitować ze mną to zgadzam się na kompromisy (nawet te strasznie smutne).

TurkucPodjadek

@jarekr000000: nie każdy jest anarchitektem, ale w sumie też nie wchodzę w projekt, którym piszą w języku, którego nie znam i/lub nie lubię :->

Haskell
2019-05-16 11:24

Svelte - "nowy framework" dla programistów JavaScript

Ostatnio dużą popularność zyskuje zabawka dla fanów JavaScript o nazwie Svelte, która zdobyła ponad 5k nowych gwiazdek na githubie w tym miesiącu, dla porównania Vue tylko 3k, a React 2k. Celowo umieściłem zwrot "nowy framework" w cudzysłowie, ponieważ Svelte nie jest wcale taki nowy oraz w odróżnieniu od Reacta czy Vue nie jest biblioteką ani frameworkiem, choć jest ich bezpośrednią konkurencją. Svelte to kompilator, który kod stworzony przez programistę przekształca w lekki vanilla JS w czasie budowania projektu. Dzięki temu nie obciążamy frontendu ciężką paczką i nie ponosimy kosztów warstwy abstrakcji na produkcji. Brzmi ciekawie? Jeżeli tak to koniecznie sprawdź tutorial na stronie Svelte i zobacz dokładnie jak to działa:
https://svelte.dev/tutorial/

Udanej zabawy :)

siloam

Widziałem jakiś czas temu. Podobny do Vue. Tylko builder ma ma bardziej zoptymalizowany. Dobry dla maniaków, którym różnicę robi kilkadziesiąt kb.