Silv

  1. Warszawa
Programista (front-end) bez większego doświadczenia. Pisywałem wiersze i opowiadania.
Silv
2019-05-18 04:11

[ Moja nauka Angulara, wpis ze źródłami i materiałami ]

Ten wpis należy do serii wpisów o mojej nauce Angulara. Tutaj można zobaczyć pierwszy wpis, w którym opisałem całość przedsięwzięcia w szczegółach: [ Moja nauka Angulara, wpis...


Z uwagi na to, że we wpisie nr 1 z tej serii zabrakło miejsca na dodawanie linków do nowych źródeł oraz materiałów (limit: 10 000 znaków), przeklejam wszystkie umieszczone tam źródła i materiały do tego, nowego wpisu. Będzie on zawierał tylko je. Jeżeli znów zabraknie miejsca (obecnie, na czas utworzenia, w tym wpisie jest ponad 2800 znaków), to pomyślę nad innym miejscem do ich przechowywania lub utworzę drugi wpis, także tylko ze źródłami i materiałami.

UPDATE: Ponieważ do końca wspomnianego limitu 10 000 znaków zostało niewiele, a źródeł i materiałów przybywa, przenoszę się na własny komputer. Ten wpis zostawiam tak, jak jest, a aktualizować będę jedynie u siebie. Chciałbym jedynie tymczasowo – może wymyślę inne miejsce online, gdzie będę trzymać ostateczną wersję listy (tj. aktualną na koniec nauki). Chciałbym, by całość nauki była spójna, a nie wiem, czy ma sens tworzenie kolejnych wpisów tu na mikroblogu.


Źródła i materiały

Słowniczek

  • "Źródło" – zbiór materiałów (czasem lista źródeł), w większości powiązanych bezpośrednio z nauką; mogą być one ze sobą powiązane lub nie; poza materiałami związanymi z nauką, dane źródło może zawierać także biblioteki, przykłady, wzorce, szablony, oprogramowanie itp.
  • "Materiał" – materiał powiązany z nauką; jest mniej lub bardziej integralną całością. Jeżeli za źródłem stoi pojedyncza data ({miesiąc} {rok}), oznacza ona datę utworzenia/publikacji materiału (lub rozpoczęcia, jeżeli jest wątkiem); jeżeli obecny jest okres ({miesiąc} {rok}-{miesiąc} {rok}), oznacza on okres od daty utworzenia/publikacji materiału (lub rozpoczęcia, jeżeli jest wątkiem) do daty ostatniej edycji (lub ostatniej aktywności, jeżeli jest wątkiem).

Wybór źródeł i materiałów

  • Źródła mogą zawierać wszystkie rodzaje materiałów (książki, kursy wideo, kursy stacjonarne itp.).
  • Materiały starałem się wybierać darmowe (na czas wyszukania), dostępne online, nie-interaktywne (tzn. takie, które nie wymagają pisania kodu w czasie nauki), nie-wideo, nie-podcasty oraz nie kursy stacjonarne.

Etykiety, którymi mogą być opisane materiały oraz niektóre źródła

  • to-be-read – żadne informacje z danego materiału nie zostały ocenione jako przydatne do tej pory, ale co najmniej jedna sekcja z danego materiału nie została przeczytana.
  • in-reading – czytanie materiału zostało rozpoczęte, ale nie zostało zakończone.
  • to-be-used – niektóre lub wszystkie informacje z danego materiału zostały ocenione jako przydatne w przyszłości (informacje to-be-used mogą być również used).
  • used – niektóre lub wszystkie informacje z danego materiały zostały wykorzystane (informacje used mogą być również to-be-used).
  • not-suitable – żadna z informacji z danego materiału nie została do tej pory wykorzystana ani oceniona jako przydatna w przyszłości; materiał jest wzmiankowany jedynie w celu uniknięcia pomyłki – uniknięcia czytania go po wtóre.

Lista źródeł i materiałów bezpośrednio dotyczących nauki Angulara i ew. AngularaJS

Dla kompletności: na naszym forum znajdują się co najmniej dwa działy, które zawierają informacje dla początkujących na temat technologii webowych. Są to:

Szukanie w nich słowem kluczowym "angular" znalazło co prawda kilka wzmianek o tej technologii, ale okazały się one nieadekwatne do mojej nauki.

Lista źródeł i materiałów jedynie powiązanych z nauką Angulara

Poniższa lista zawiera mniejszy wybór źródeł niż lista powyżej – nie zawiera źródeł, z których nie skorzystałem. Może ona zawierać dodatkową etykietę read, która oznacza, że materiał został przeczytany, ale został oceniony na przydatny jedynie teoretycznie (to znaczy, nie do wzmiankowania we wpisach).

Visual Code

Oj komuś tu się porządnie nudzi.. 4:11 😬 autyk?

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...).

nohtyp

jesteś ***ilem, prawda? edit: nie szkoda Ci czasu? mogłeś zrobić coś ciekawego zamiast pisać sam do siebie

vpiotr

TL;DR - za dużo planowania, za mało nauki.

Silv

@vpiotr: dzięki za radę. Próbuję różnych sposobów – brak planu (do tej pory go nie miałem) nie spowodował, że zacząłem się uczyć. Być może plan mi pomoże.

no_solution_found

@Silv: to skorzystaj z todoist albo nozbe :) mnie jara odhaczanie zrobienie rzeczy i pomaga ładnie zaplanować wszystko

no_solution_found

druga rzecz - dlaczego angular1? Angular czy react wydają się być lepszym wyjściem :)

Silv

@no_solution_found: dzięki. :) Próbowałem, taka lista mi całkiem nie pomaga. To znaczy – fajnie się ją robi, ale po dwóch dniach zapominam, że ją mam. Nie, nie Angular1, tylko Angular. Teraz dopiero widzę, że to nieścisłość. :) Dzięki!

Silv

PS. Zmieniłem [ Moja nauka Angulara 1 ] na [ Moja nauka Angulara, wpis 1 ].

no_solution_found

bo tego trzeba się nauczyć :)

Silv

@no_solution_found: to pewnie zbyt dużo nauki dla mnie było. :/ Spróbujemy z tą formą, może się uda.

mr_jaro

Weź sobie starter https://github.com/tomastrajan/angular-ngrx-material-starter postaw i zacznij budować jakiś projekt na jego bazie, ja tak nauczyłem angulara.io

Silv

@mr_jaro: dzięki, jednak właśnie do tej pory (jak opisałem w wątku na forum) podejście "project-first" mnie odrzucało. Muszę rozumieć wszystko, co piszę (z czytaniem jest inaczej).

mr_jaro

@Silv: to masz kompletnie inne podejście niż ja, ja jak się czegoś takiego ucze to czytam max godzine a potem siadam do roboty bo inaczej nie potrafię, w sensie efektywność spada do zera

no_solution_found

@Silv na początku zrozum ogólnie jak to działa, a szczegóły przyjdą później

thock

Widzę, że strasznie się męczysz. A może po prostu ta branża nie jest odpowiednia dla Ciebie.

siloam

Ten wpis powinien się pojawić z 5 lat temu. Obecnie szkoda czasu na Angulara. Istnieją znacznie lepsze frameworki. Do większych projektów Vue z vue-cli i Vuex'em. Do mniejszych Hyperapp.

LukeJL

jeszcze Svelte jest z alternatyw. No i oczywiście mainstreamowy React, od czasów hooków jakiś bardziej przyjazny

mr_jaro

@siloam: czy którykolwiek z tych co wymieniłeś umożliwia mi trzymanie komponentu rozdzielonego co najmniej na 3 pliki (js lub ts, scss, html) i posiada tak rozbudowaną bazę wiedzy na necie i ilość komponentów przygotowanych do szybkiego wdrożenia, co angular? Jeśli tak, sprawdzę. Ale przynajmniej vue jak robiłem projekt na nim rok temu powodował u mnie białą gorączkę, więc jeśli się nic nie zmieniło to od razu odpada.

Silv

@thock: może tak, ale póki co jestem w niej. @siloam: dzięki! Może w przyszłości, jak skończę to, spróbuję innej formuły na coś bardziej aktualnego. :)

siloam

@mr_jaro a słyszałeś kiedyś o single file components? Po co dzielić kod nielogicznie zamiast trzymać wszystko co się tyczy jednego komponentu pod ręką? https://vuejs.org/v2/guide/single-file-components.html Vue ma już wiele bibliotek widgetów jeżeli o to Ci chodzi. Najczęściej korzystam z Vuetify.

mr_jaro

@siloam: dla wygody, nie lubie scrollowania a pisząc coś na vue muszę robić sobie podział okienka na 3 żeby spokojnie edytować jeden komponent :D Tylko, że trochę ciasno się robi na fullhd :p w angularze mogę mieć wszystko ładnie rozdzielone i przełączać się między kartami, na wydajność kodu to nie wpływa a na wygodę pisania bardzo na korzyść angulara.

mr_jaro

@siloam: vue ma tak wiele komponentów że po 3h wertowania sieci i testowania nie znalazłem odpowiedniego datagrid, z ciekawości sprawdziłem na angularze i znalazłem w 5 minut :), efekt był taki, że kodowaliśmy swój własny datagrid dla vue.

czysteskarpety

widgety do frameworka, brrr, następny wordpress :|

mr_jaro

@czysteskarpety: albo piszesz samemu componenty by używać na każdej stronie albo korzystasz z gotowych, po co np na każdej podstronie z tabelka rozbić mechanizmy od progressbara, paginacji itp

LukeJL

@mr_jaro datagrid, który nie byłby uzależniony od frameworka? Nie ma żadnych poza agGrid?

mr_jaro

@LukeJL: ale tu właśnie chodzi o to, zeby był zależny od frameworka, dlatego, że wtedy łatwiej obsłużyć wszystkie emity itp, Gdy nie jest trzeba i tak pisać wrapper.

LukeJL

@mr_jaro co do Vue, to to pisanie tak jak każą nie jest wymagane, możesz sobie tworzyć szablon w normalnym pliku JS, https://vuejs.org/v2/guide/render-function.html Tylko co z CSS? Przypuszczam, ze i style mozesz sobie dołączyć w pliku CSS (nie próbowałem, ale tak na logikę, jeśli możesz definiowac recznie szablon, to w szablonie moglbys ustawic odpowiednie klasy, ktore byłyby zdefiniowane w pliku CSS). Pytanie tylko co z samym szablonem?

mr_jaro

@LukeJL: mogę, ale przecież to nie o to chodzi, skoro chce ograniczyć css do koponentu a jest do tego wbudowany mechanizm to niech to robi, w innym przypadku to na mojej głowie jest pilnowanie klas. Co do rozdzielenia htmla, jest sposób na to z tego co wiem, ktoś opracował jakiś plugin który to ogarnia ale jest to technika strasznie hejtowana i przez to nikt tego nie robi.

LukeJL

@mr_jaro ja tam nie lubię jak tego typu większy widżet jest zależny od frameworka, bo potem nie można tego użyć gdzie indziej, w projekcie który nie korzysta z danego frameworka choćby (albo w sytuacjach rzadkich, ale istniejących - przepisywania całej aplikacji na inny framework). Natomiast jak osadzam taki widżet, który jest niezależny od frameworka, to i tak nie korzystam z gotowych wrapperów (choćby dlatego, że zwykle jest ileś wrapperów na npm i nie wiem, który najlepszy, wiec nie chce mi sie testowac wszystkich, po drugie wrappery są często skomplikowane/niewygodne w użyciu, pełne dziwnych konfiguracji, po trzecie i tak zwykle mają ograniczoną funkcjonalnośc i nie wymyślili czegoś, co potrzebujesz to i tak robisz to samemu. Więc wolę osadzić sobie ręcznie jakis widżet i zrobic samemu wrappera, podpasowanego konkretnie pod moje potrzeby

mr_jaro

@LukeJL: spoko, tylko, że jak się napisze taką apke to się do niej wróci (o ile w ogole) to za 4?5? lat by przepisać całość? i wtedy wszystko co tam było jest już przestrzałe na tyle, że i tak pisane jest od zera.

LukeJL

@mr_jaro zresztą kurcze, na czyms ta praca developera musi polegać, jesli trudne rzeczy (zrobienie skomplikowanych widzetów) mamy już z pudełka zrobione przez jakichs wymiataczy frontendu, to przynajmniej napisać sobie samemu wrapper możemy (zresztą przy korzystaniu z gotowego wrappera i tak bedzie trzeba pisać wrapper do wrappera, tj. komponent który zintegruje wrapper z naszą aplikacją. Więc i tak pracy pewnie tyle samo będzie)

LukeJL

@mr_jaro skoro chce ograniczyć css do koponentu a jest do tego wbudowany mechanizm to niech to robi, w innym przypadku to na mojej głowie jest pilnowanie klas. - mozna by jakiegos CSS modules użyć albo innej technologii, która robi klasy lokalne i zwraca ci nazwę zahashowanej klasy.

mr_jaro

@LukeJL: zależy ile masz na to czasu i jaką ci przejemność to sprawia, bo mnie pisanie na vue tak jak pisałem doprowadza to totalnego wykończenia psychicznego, wracając do angulara czuję się jak w domu.

LukeJL

@mr_jaro a to dziwne, ja w Vue pisałem krótko, i wydawało mi się nawet fajne. Aczkolwiek ogólnie ludzie lubią pisać w React i w Vue, a to Angulara zwykle nie lubią (źródło: https://2018.stateofjs.com/front-end-frameworks/overview/ - zobacz co ludzie o Angularze myślą), więc nie zgadzasz się z milionem much w tym momencie. Jakbyś wygłosił takie opinie na jakimś reddicie, to byś miał pełno downvote'ów (ale na Reddicie downvotują wszystko, z czym ktoś się nie zgadza - pamiętam jak na reddicie o Ruby skrytykowałem strukturę katalogów w RoR (może dla backendowca to jest ok, ale jako frontendowiec musiałem latać po katalogu assets, scripts, i jeszcze innych, zeby robić jedną rzecz) i od razu mnie zdownvotowali (bo wyrazajac krytykę obraziłem ich świety framework RoR). Ale na r/javascript np. Redux jest taką świętą biblioteką, i jak cokolwiek źle napiszesz, to downvote.(przynajmniej tak kiedys bylo)

mr_jaro

@LukeJL: bo większość ludzi wraca do tego co było kiedyś a kiedyś mieszało się wszystko co się da w jednym pliku :D Powiem ci, że kumpel znajomego przeszedł na angulara z bodajże reacta po tym jak zobaczył, że może sobie wszystko dzielić na pliki :D Serio to był jedyny powód zmiany frameworka, a i tak zwyciężył.

LukeJL

@mr_jaro tak sie to zaczęło - programiści Facebooka mieszali logikę w PHP z kodem HTML, więc stworzyli sobie XHP, czyli taki JSX dla PHP. Potem dopiero przenieśli tę ideę na frontend. Czyli w zasadzie od tego sie zaczęło, że programiści lubili sobie pomieszać logike z widokiem. Aczkolwiek w React i tak mozesz dzielić sobie rzeczy na pliki - możesz pisać CSS w pliku CSS, w samym komponencie w JSX pisać tylko prostą logikę związaną z renderowaniem i podpięciem zdarzeń - a w osobnym pliku JS możesz pisać większą logikę (ludzie z Reduxa zwykle korzystają do logiki + podpinają z pierdylion różnych dodatków pod niego, chociaż jak dla mnie to trochę masochizm - ale mimo wszystko - zaaansowaną logikę można wywalić z komponentów)

LukeJL

@mr_jaro poza tym teraz są haki w React, które pozwalają wydzielać kawałki logiki i reużywać ich w innych komponentach. wiec mozna sobie jeszcze mocniej dzielić na pliki.

mr_jaro

@mr_jaro: być może, nigdy nie ruszałem reacta, ale skoro piszesz, ze są hacki pozwalające dzielić logikę no to ciekawie, że aż haki musiały na to powstać :p

LukeJL

ze są hacki pozwalające dzielić logikę nie napisałem, że powstały hacki tylko haki (hooks). wygląda to mniej więcej tak, że hook w React to taki jakby podprogram dla Reacta. Chociaż też nie wiem czy dobra metafora.

mr_jaro

@LukeJL: ok, czaje, za to w angularze możesz sobie pisać dowolne klasy jakie chcesz, możesz nawet je wstrzykiwać przez DI.

mr_jaro

@LukeJL: czyli te hooki to takie traity z php? bo już się zgubiłem

LukeJL

@mr_jaro to raczej takie funkcje, które odpalasz z poziomu komponentu, które coś robią i które mogą odpalać inne funkcje. Przy czym React zapewnia kilka wbudowanych funkcji (np. useState, useEffect itp.) które robią magię pod spodem i pozwalają np. na definiowanie efektów ubocznych albo pamiętają stan.

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

Silv
2019-05-15 00:21

Chciałem EDIT: dowiedzieć się, czym są oraz zrozumieć sens stosowania document-oriented database. Toteż Aby rozpocząć, otworzyłem odpowiednią stronę na Wikipedii i zacząłem czytać.

Dotarłszy do sekcji "CRUD operations", zauważyłem przy każdej operacji listę jej synonimów. Zacząłem więc, tak trochę dla rozrywki, szukać akronimu (takiego mnemonicznego), który by pasował jako alternatywa do zbitki liter "CRUD", dla tych właśnie synonimów. Operacje "Insertion"-"Query"-"Edit"-"Removal" skojarzyłem sobie jako "IQER", czyt. [iker].

To mi się skojarzyło z Ikerem Casillasem, toteż zacząłem szukać w internecie, czy na pewno jego imię pisze się przez "q". Okazało się, że nie, że pisze się "Iker" (jako akronim mnemoniczny i tak daje radę, bo mi się kojarzy i basta). Co mnie jednak w tej chwili zdenerwowało, to to, że wciąż nie wiem, dlaczego Hiszpanie litery "ll" czytają "j".

Zacząłem więc szukać w internecie, dlaczego tak jest, i trafiłem na ten artykuł. Co prawda, opisuje on inny problem – dlaczego w hiszpańskim literę "j" czyta się jak "h". Jednak z racji, że chciałem poznać także to zagadnienie od dawna, zacząłem czytać.

I choć artykułu o document-oriented database jeszcze nie skończyłem, to na szczęście mam już pewną koncepcję, jak kształtowały się dźwięki [ʒ], [z] oraz [d͡z] na terenie Hiszpanii od Łaciny ludowej do współczesnego hiszpańskiego.

A to dopiero środek nocy. :)


UPDATE: Gdyby ktoś chciał wiedzieć: artykuł o document-oriented database właśnie skończyłem czytać.

mlk

no więc jaka jest Twoja koncepcja odnośnie tego jak kształtowały się dźwięki [ʒ], [z] oraz [d͡z] na terenie Hiszpanii od Łaciny ludowej do współczesnego hiszpańskiego?

nohtyp

i jak? wiesz już jaki jest sens stosowania baz z dokumentami? bo ja nie

okmanek

zastosowałeś metodykę Procrastination-Driven Development

cerrato

To jest właśnie niebezpieczeństwo wchodzenia na Wiki. Wskakujesz tam żeby sprawdzić jakąś roślinę. Piszą o niej, że podrażnia gardło, po chwili czytasz o raku przełyku, masz listę osób które na raka się przekręciły, klikasz na jakiegoś piosenkarza, potem na zespół w którym grał przed śmiercią, muzyka metalowa, gatunki muzyczne, reggae, Bob Marley, maruchiłana, a kończysz na Billu Clintonie, który palił skręty, ale się nie zaciągał ;)

no_solution_found

ewidentny przykład braku skupienia :)

cerrato

Oczywiście. Ale to tylko i wyłącznie wina Wiki ;)

Silv

@mlk: nie mam swojej koncepcji, wszystko jest w artykule. :) @nohtyp: jeszcze nie wiem, bo artykuł z Wikipedii dał mi za mało informacji. Będę jeszcze edukować się w tym temacie. @okmanek: :P @cerrato: chodzę innymi ścieżkami. ;) @no_solution_found: może...

no_solution_found

@nohtyp: wszystko zależy do czego je stosujesz, czyli sprowadza się to do struktur danych. Jedna i druga baza ma swoje plusy i minusy i to jest kwestia dobrania narzędzia do rozwiązania. Przy małych projektach powiedziałbym, że to tak naprawdę nie ma znaczenia. Jak projekt rośnie, to już jest trochę inna sprawa, ale na początku też ciężko powiedzieć, w którą stronę pójdzie projekt. Poza tym co stoi na przeszkodzie, by korzystać z obu? :)

Silv

Jako informatykowi wyrosłemu z relacyjnych baz danych, trochę ciężko mi zrozumieć: czy bazy NoSQL (nazdbiór document-oriented) naprawdę są wykorzystywane specjalnie dla danych "nieuporządkowanych"?

nohtyp

@no_solution_found: ja pytam o sens, a nie o to co jest lepsze

LukeJL

ja potrafię oglądać jakiś serial, i nagle w serialu pada jakieś angielskie słowo, którego nie znam. Albo np. miasto, które nie wiem gdzie jest. Albo jakieś nazwisko. Więc pauzuję i googluję daną frazę, a kończy się na tym, że 30 minut mija a ja wsiąkłem w serfowanie po wikipedii. Więc nawet serialu nie mogę czasem obejrzeć do końca :)

Silv

@LukeJL: zastanawiam się, gdzie może przydać się taka cecha.

LukeJL

@Silv teoretycznie można by być dobrym researcherem, ale w praktyce co to za researcher, który miałby zrobić research o X, a by zrobił research o totalnie wszystkim? :) No ale pewnie z takimi skłonnościami możnaby zostać social media influencerem i dzielić się swoimi odkryciami na swoim blogu/vlogu albo czymś takim.

LukeJL

@Silv co do języków to też tak mam, ale bardziej interesują mnie jęz. słowiańskie w tej chwili.

Silv

@LukeJL: przez Ciebie teraz będę czytać artykuł o social media influencers (żeby dowiedzieć się, kim są), a nie o bezpieczeństwie wylogowywania się (jestem w trakcie).

Silv

@LukeJL: A co do języków – nie, nie, kiedy indziej o tym porozmawiamy. :P

TomRZ

"Chciałem zrozumieć sens stosowania document-oriented database. Toteż otworzyłem odpowiednią stronę na Wikipedii" wprowadzasz nieco w błąd, artykuł na wiki nie jest o tym jaki jest sens stosowania dokumentowych bazy danych, tylko ogólna charakterystyka tego typu baz. Sens tymczasem (opisując w skrócie) jest wszędzie tam, gdzie struktura rekordów może się między sobą znacznie różnić, co wymagałoby stworzenia wielokrotnie większej liczby tabel SQL w porównaniu do jednej kolekcji w bazie dokumentowej.

Silv

@TomRZ: masz rację, osoby, które nie czytały tego artykułu, mogą pomyśleć, że na Wiki jest taka sekcja. Napisałem w skrócie – rozpocząłem od Wiki. Gdyby na Wiki był opisany ów "sens" – bo bywa – to bym na niej został, a tak poszedłem czytać inne artykuły po przejrzeniu jej. Zedytuję wpis.

Silv

PS. @TomRZ: dzięki za wskazówkę!

Silv

Dziękuję wszystkim za głosy – to moja pierwsza treść na tym forum (post/wpis), która dostała ich tak dużo! Nie mam na myśli swojej reputacji, ale to, że doceniliście tę ciekawostkę ode mnie. :)

TomRZ

Tak trochę się doczepiłem, każdy wie o co chodzi w Twoim wpisie, ja szczerze mówiąc wolę relacyjne bazy, ale dokumentowe czasami bardzo się przydają. W MongoDB zrobiłem sobie np. system logowania różnych zdarzeń, które to zdarzenia mogą mieć różne struktury, wyszło to dość fajnie i w relacyjnej bazie musiałbym zrobić conajmniej 2 tabele żeby to ogarnąć: tabela na logi, tabela na rodzaje zdarzeń i miałbym strukturę dość sztywną, a tak to niczym się nie przejmuję.

Silv

@TomRZ: myśląc kategoriami innymi niż w relacyjnych bazach danych, to powiem Ci, że te NoSQL nie wydają się tak do końca bez sensu... Ale trudno przestawić myślenie.

TomRZ

Problemem natomiast przy dokumentowych jest generalnie brak transakcji, to najczęściej nie są bazy ACID, chociaż zaczyna się to zmieniać - Mongo wprowadzalo już rok temu jakąś atomizację operacji. Dawno nie patrzyłem kto wie, może już jest to zgodne z ACID, jest jeszcze ArangoDB który jest chyba całkowicie zgody z ACID.

Silv

@TomRZ: MongoDB 4.0 adds support for multi-document ACID transactions (...)https://www.mongodb.com/transactions

no_solution_found

ACID ACIDowi nie równy, także w różnych SQLowych bazach danych. @nohtyp sens ma to co jest lepsze :) minusem w SQLowych bazach danych jest fakt iż często musisz robić różnego rodzaju JOINy, które potrafią być uciążliwe. Dobry dokument, który już zawiera potrzebne informacje rozwiązuje TEN problem. Ogólnie długo by opowiadać. Różnica zaczyna być odczuwalna gdy zamist 100 tyś rekordów masz 4 terabajty danych w bazie :)

AreQrm

Tutaj jest świetna prezentacja Martina Fowlera na temat NoSQL. Z tego co pamiętam tłumaczy kiedy warto i kiedy nie warto je stosować.
https://www.youtube.com/watch?v=qI_g07C_Q5I

Hispano-Suiza

@Silv: zastanawiam się, gdzie może przydać się taka cecha. w kryminalnych przy szukaniu śladów, i rozwiązywaniu tasków.

LukeJL

@Hispano-Suiza Albo przy tworzeniu własnego biznesu i wymyślaniu nowych produktów, albo przy robieniu researchu na temat istniejących produktów, szukaniu nowych nisz, wyłapywaniu nowych mikro-trendów...

Silv
2019-05-11 15:48

Nie jest to reklama, tylko chciałem podzielić się jednym z ciekawszych preloaderów (loaderów) na stronach internetowych, jakie widziałem: https://www.stepstoneservices.pl/ (Czas wyświetlania powinien zależeć oczywiście od cache przeglądarki oraz od szybkości i obciążenia łącza, a więc, być może, niektórzy zobaczą go tylko np. przez pół sekundy).

"Wchodzimy w nadświetlną". :)

(Pomijam już nawet to, że jest preloader jest potrzebny; ostatecznie to zawsze rzecz do zmiany).

nie100sowny

Czyli strona jest tak wolna, że musieli mega preloader ogarnąć :D Dodatkowo wygląda na jakieś 50MB plików JS :D A na serio to fajny :)

czysteskarpety

Tam by zrezygnowali z wordpressa do wizytówki i obrazków tła po 1-1,5MB i spokojnie obeszłoby się bez, no ale wygląda fancy.

jarekr000000

Mało kolorowy ten preloader - dowaliłbym trochę efektów i jsów żeby był pełny wypas. W razie czego dopnie się jeszcze prepreloader.

Akihito

Na czarnym motywie gowno zobaczylem przez te 0.75 sekundy

Silv

@Akihito: zwiększ transfer internetowy na czas oglądania. ;) Ciekawe, czy są na to sposoby.

czysteskarpety

@Silv: w chrome devtools masz symulację prędkości ;)

Silv

@Akihito: no przecież chcesz, żeby dłużej się wczytywało, prawda? :) @czysteskarpety dobrze mówi, jak teraz patrzę, u mnie na FF jest takie coś jak "Throttling" w zakładce "Network" i tam można ustawić typ łącza, które wolniej działa. Spróbuj.

Silv

Np. ustaw GPRS i do tego opróżnij cache przed odświeżeniem strony.

Silv
2019-05-09 02:03

Krótka historia małego błędu

(lub: podstawy rozwiązywania problemów w Gicie)

Więc było tak: chciałem zrobić commit w Gicie za pomocą terminala w Visual Studio Code.

Czemu za pomocą terminala, a nie panelu "Source control", który jest w VS Code? Wolę tak, by się nie odzwyczaić od poleceń Gita.

Commit miał być zmian w jednym pliku. Plik miałem już przygotowany – wszystko, co chciałem, zostało w nim zmienione.

Jak to się zepsuło

Otworzyłem więc terminal (CTRL+`, CTRL+backtick). Jako że zmian było dużo, otworzyłem również wspomniany plik w trybie podglądu zmian, żeby zmiana po zmianie przepisać do commit message wszystko, co zostało zmienione (staram się tak robić – pisać też treść, zamiast samych tytułów w commit messages).

W panelu "Source control" dodałem plik do sekcji "Staged changes" (jakoś tak z przyzwyczajenia nie użyłem tym razem CLI Gita). W terminalu wykonałem polecenie git commit i otworzył się mój domyślny terminalowy edytor tekstu – vim. Wpisałem tytuł i treść commit message.

Jednak podczas przeglądania zmian okazało się, że nie wszystko zostało zmienione. Toteż – zapomniawszy, że mam niezakończone polecenie git commit – otworzyłem tryb edycji pliku i zmieniłem potrzebne fragmenty.

Wróciwszy do terminala, zapisałem i zamknąłem plik (w vimie: :wq), czym zakończyłem wykonywanie polecenia git commit. Wynikiem była informacja Gita o poprawnym commicie. Spojrzałem następnie na panel "Source control" (zazwyczaj tak robię dla pewności po zacommitowaniu czegoś). Hm... jakby... ten plik nadal był w sekcji "Staged changes"?

Zaciekawiony (no...) tą sytuacją, spróbowałem dojść, co poszło nie tak. Spojrzałem na plik w widoku zmian... tak, pozostały w nim te zmiany, które zrobiłem podczas działania polecenia git commit. Jak teraz dodać je do utworzonego już commita?

Na wszelki wypadek obejrzałem wynik polecenia git log. Wszystko wyglądało w porządku, tytuł i treść commit message były takie, jakie zacommitowałem. Jeśli ktoś potrzebuje, zawsze też można zobaczyć treść ostatniego, albo i wcześniejszego commita, ale uznałem, że teraz nie będzie to miało wartości.

Co tu robić? Może usunę commit, wracając tym samym zmiany do "staging area", i jeszcze raz zacommituję, ale tym razem całość. Commit jest lokalny, więc trudności być nie powinno (w internecie można znaleźć informację, że nie jest dobrze zmieniać historię Gita już opublikowaną na serwerze).

Jak to można naprawić

Jak to zrobić? Zacząłem od wpisania w wyszukiwarce Bing git revert commit. Naprowadziło mnie to na ten wątek na Stack Overflow, w którym w zaakceptowanej odpowiedzi wspomniane były polecenia git reset oraz git reset --soft (pierwszy raz chyba widziałem tyle polubień pytania i tyle polubień odpowiedzi na Stack Overflow – jedno i druga około 20 tysięcy; @cerrato, u Ciebie wciąż mniej...).

Pomyślałem, że niekoniecznie powinienem sugerować się jedną informacją (Git jest jednak dość złożonym narzędziem), więc postanowiłem szukać dalej. Wpisałem w wyszukiwarce Bing git add more changes to previous commit (jak zasugerowała mnie zaakceptowana odpowiedź ze wspomnianego wątku). Naprowadziło mnie to na kolejny wątek na Stack Overflow. Nie opisywał on co prawda konkretnie mojego przypadku (to ten sam plik, a nie kolejny), ale zaciekawiło mnie: raz prostota wspomnianego w nim polecenia git commit --amend, a dwa – brak potrzeby "usuwania" czy "odwracania" czegokolwiek. Postanowiłem poszukać w tę stronę.

Wpisałem w wyszukiwarce Bing git amend. Naprowadziło mnie to na ten wpis na blogu Attlasiana. Opisuje on kilka przypadków użycia różnych poleceń Gita w przypadku chęci zmiany historii commitów. Zainteresował mnie drugi opisany przypadek ("Changing committed files"), ponieważ był niemal identyczny z moim.

Uznałem, że można spróbować wykonać wspomniane w artykule polecenie git commit --amend --no-edit. Flaga --no-edit pozwala nie musieć edytować po raz kolejny commit message (nie potrzebowałem tego, moja była napisana zgodnie ze wszystkimi zmianami).

Choć z zasady wierzę komputerowi, to również z zasady nie dowierzam swojej znajomości oprogramowania – toteż zrobiłem kopię zapasową wszystkich plików, które były pod kontrolą Gita w tym projekcie (w innym katalogu). Dlaczego? W przypadku błędu, historię Gita można zmienić, ale pliki na Linuksie mogą NIE DAĆ SIĘ odzyskać (zależnie od ustawień). Ostatecznie – historia Gita była (jest) w tym projekcie mniej ważna niż zmiany w plikach.

Na wszelki też wypadek sprawdziłem wspomniane polecenie w oficjalnej dokumentacji Gita. Wyglądało na to, że to jest właśnie to, czego się spodziewam.

Jak to się skończyło

Dodałem w VS Code wspomniany plik z niezacommitowanymi zmianami do sekcji "Staged changes", wpisałem git commit --amend --no-edit w terminalu i nacisnąłem ENTER. Nic nie wybuchło, a pojawiła się wiadomość:

Date: [tu data wykonania polecenia]
1 file changed [tu liczba dodanych i usuniętych linii]

Więc Git błędu nie zgłosił, ale czy się na pewno wszystko udało? Sprawdziłem, jakie zmiany zostały zacommitowane (na szczęście był tylko jeden plik). Wydawało się, że wszystko jest na swoim miejscu (zmian było dużo, więc wszystkich nie sprawdzałem).

Dziś pracę z Gitem zaliczam do udanych (nie zawsze tak jest).


UPDATE: Będąc w trakcie procesu naprawy, zamierzałem też skopiować commit message (ponieważ nie miałem ochoty jej sobie przypominać w przypadku błędu). Niestety, jakoś mi to umknęło. Teraz na szczęście wszystko poszło dobrze, ale następnym razem trzeba będzie to zrobić...

Afish

Wtedy nie trzeba toteż zrobiłem kopię zapasową wszystkich plików, które były pod kontrolą Gita

Silv

@Afish: poczytałem o tym, masz rację, że może być przydatne. Jednak żebyś mnie zrozumiał – zrobiłem ręcznie kopię zapasową z dwóch powodów: (1) staram się to przyjąć jako zasadę przy każdej czynności dotyczącej plików, którą robię pierwszy raz; (2) Git jest dla mnie (na razie?) zbyt złożonym narzędziem, bym mógł ufać, że dana czynność, która jest wykonywana automatycznie, będzie wykonana tak, jak tego oczekuję.

Afish

Spoko, nic Ci nie zarzucam ani Cię nie wyśmiewam, sam dawniej robiłem kopie zapasowe plików gita. Ale od kiedy poznałem reflog, to już praktycznie o nic się nie boję, więc po prostu zachęcam Cię do zapoznania się z tą komendą, bo ona naprawdę ratuje życie.

Michał Sikora

Nic tak nie cieszy, jak skopanie czegoś w repozytorium i odkrycie reflog.

superdurszlak

--amend to ja czasem wręcz nadużywam, za często o czymś zapominam i przypominam sobie dopiero po zrobieniu commita :D

@Afish: git reflog to wspaniała sprawa. Przyjaciel każdego, kto zrobił o jeden git branch -D za dużo

cerrato

tyle polubień pytania i tyle polubień odpowiedzi[...] około 20 tysięcy; @cerrato, u Ciebie wciąż mniej... - ze spokojem, na razie pracuję nad dominacją na 4P, jak tutaj wszystko będzie zaorane to się przerzucę na SO ;)

Azarien

Ręcznej kopii repo raczej nie robię, ale zwykle mam kilka repozytoriów lokalnych (powiązanych między sobą remote'ami typu file://). W drugim repo robię fetch z pierwszego i wiem że mam wszystko co jest zakomitowane w pierwszym. A po co mi kilka repo? Praca równoległa na wielu branczach.

Silv

@Afish: w porządku, na razie zostanę przy swoim. ;) @cerrato: miałem na myśli tyle polubień tutaj. :D @Azarien: ja bym się zaraz pogubił.

Azarien

ale co tu się gubić.. załóżmy że projekt nazywa się foobar. poszczególne repozytoria są w katalogach foobar, foobar2, ... foobar6. każde ma remote'a origin, oraz remote'y nazywające się np. foobar4, foobar5. lista istniejących remotów nie jest kompletna (w sensie że kiedy każde repo z każdym jest dwukierunkowo połączone) bo dodaję je po prostu w miarę potrzeby. alternatywa (jedno repo i ciągłe checkout na inną branczę) nie wchodzi w grę bo trwałoby to wieki.

Silv

@Azarien: może, jakbym miał więcej niż 1 czy 2 gałęzie... Jednak wydaje mi się, że bym się pogubił.

Azarien

To jest duży projekt nad którym pracuje kilkudziesięciu ludzi. Nie mówię że powinieneś tak robić. Tylko wyjaśniam, że kopię repo można mieć dodaną jako remote.

Silv

@Azarien: no wiesz, tak czy siak, ja o tym wcześniej nie pomyślałem, więc plus dla Ciebie za pomysł. :)

Silv
2019-05-08 00:22

Ustawiłem sobie właśnie awatar. Pierwszy raz od bardzo dawna mam awatar (w ogóle w internecie). Może komuś się podoba, może nie? Chętnie wysłucham opinii. :)

UPDATE: Tutaj źródło: https://jsfiddle.net/35ne6h7a/1/

UPDATE2: Wersja większa (by obrazek nie rozmazywał się na tu na forum): https://jsfiddle.net/7f6j205t/1/

UPDATE3: Wersja większa z blaskiem liter: https://jsfiddle.net/xbsfezho/1/

cerrato

Z tym zachowaniem praw to słuszny krok. Za kilka lat będziesz mógł to odsprzedać za grube miliony. Ładnie to strategicznie Pan rozegrał ;)

Silv

@cerrato: zastanawiam się, może usunąć tę informację? W sumie będzie tak samo ważna, a nie będzie odstraszać.

furious programming

@Silv: nie ma cycków – słabo… :/

Haskell

Dopóki nie jest to matka boska z tęczową aureolą to sobie ustawiaj :D

WhiteLightning

@jarekr000000: na jakiej stronce mozna sobie tak fotke przerobic by wygladala jak obrazek? (taki styl jak masz w swoim)

jarekr000000

@WhiteLightning: żeby to było tak łatwe. Na razie robi się tak: robisz preezentację okołoscalową, musi być zauważona. musisz dostać zaproszenie na scalaworld. Wtedy dostajesz obrazek. Jakaś znajoma Jona Pretty to robi.

karpov

To bardzo ładny awatar.

WhiteLightning

@jarekr000000: to dluga droga przede mna bo o Scali na razie tylko przeczytalem troche materialow, przejrzalem kod gry od Ciebie i napisalem Hallo Worlda :(

Silv

@jarekr000000: yyy, chodzi Ci najpewniej o blur? Nie jestem przekonany, czy wyglądałoby ładniej (dla mnie). Ale dzięki za sugestię. :) @Haskell: <nie wie, co powiedzieć> dzięki.

jarekr000000

@Silv: chodziło o wersje css. Podciągnąłem żeby wyglądała jak z canvasa. (Czyli z blurem)

Silv

@jarekr000000: dzięki, ale ja nie chciałem koniecznie takiego efektu, tylko canvas był najlepszym wyborem, bo łatwiej nacisnąć prawy klawisz -> Save Image As... i potem wgrać na serwer tu... :P

Silv

@karpov: a jakbyś widział jaśniejszy niebieski?

Silv
2019-04-13 02:16

Chciałem dziś poprawić kilka artykułów w naszym Kompendium (niekoniecznie od strony merytorycznej). Poprawiać rzeczywiście zacząłem, ale oprócz tego udało mi się stworzyć 5 wątków na temat funkcjonalności Coyote. W tym – 3 ostatnie wątki w ogóle przed rozpoczęciem edycji ostatnio wybranego artykułu. Hm, nie zdarzyło mi się jeszcze tak.

PS. Plus ten wpis – też jeszcze przed rozpoczęciem edycji. Nie wiem, czy zedytuję ten artykuł, ale będę próbować.

(I nie, nie jest to przytyk do @Adam Boduch czy @msm, czy innych – przepraszam, nie pamiętam więcej nicków. Jeśli już, to byłaby to pochwała, bo gdyby Coyote nie był tak dobrze zaprojektowany, pewnie w ogóle nie myślałbym o tym, jak działa, i czy da się coś poprawić).

Silv
2019-03-30 15:07

Jak wiadomo, od kilku dni działa inicjatywa przepisania Coyote na .NETCore. Będąc w niej aktywnym uczestnikiem, już nauczyłem się paru nowych rzeczy – ot, choćby tych dwóch angielskich słów: estoppel oraz impromptu.

Słowem estoppel pacnęła mnie w oczy CLA (Contributor License Agreement), zamieszczona przez .NET Foundation. Według słownika Merriam-Webster, oznacza ono przeszkodę prawną niepozwalającą na przytaczanie lub zaprzeczanie przez kogoś jakiemuś faktowi, ponieważ ten ktoś sam przedtem tak działał lub mówił. Mniej-więcej to samo twierdzi polska Wikipedia. Jeśli chodzi o pochodzenie, zarówno Merriam-Webster, jak i etymonline.com datują użycie tego słowa od lat 30-tych XVI wieku i obie strony wywodzą jego możliwe pochodzenie ze starofrancuskiego słowa estoper, o (przybliżonym) znaczeniu m.in. 'blokować, uniemożliwiać, powstrzymywać'. W ostateczności pochodzi z łacińskiego stuppa, co przekłada się na angielskie 'coarse part of flax, tow' (według etymonline.com; gdzie flax najprawdopodobniej oznacza po prostu 'len zwyczajny', a tow oznacza 'pakuły').

Ze słowem zaś impromptu zapoznał mnie Slack, przedstawiając je w kontekście "an impromptu event" (pol., powiedzmy, 'improwizowane spotkanie'). Jest ono datowane na trochę młodsze od estoppel, a dokładnie – pierwsze odnotowane wystąpienie na lata 60-te XVII wieku (przypominam: w tych latach Isaac Newton został profesorem matematyki na katedrze Lucasa). Polska Wikipedia łączy je z improwizacją muzyczną. Według etymonline.com, słowo to weszło do angielskiego przez francuszczyznę, tam trafiło z łaciny, a w łacinie pojawiło się – jak się przypuszcza – z połączenia rdzeni praindoeuropejskich: *en (ang. 'in'), *em (ang. 'to take, distribute') oraz *pro (lub *per; ang. 'forward').

Silv
2019-03-23 00:54

Nowości na moim blogu silvuss-thoughts:

  • Odświeżyłem wygląd. Być może dla Was zmiana nieistotna (niezauważalna?), ale była potrzebna. :) Ech, więcej zajęło mi czasu to dłubanie w Bootstrapie, Jekyllu i JavaScripcie niż pisanie jednego artykułu...
  • Może kogoś zaciekawi (choć rzecz dawno znana), że można mieć system komentarzy na GitHub Pages (jak wiadomo, GitHub Pages są to strony statyczne, bez dostępu do serwera). Taki system może wykorzystywać na przykład GitHub Issues, jak ja zrobiłem. Na razie zaimplementowałem jedynie wypisywanie (można je zobaczyć pod tym artykułem: https://silvuss.github.io/201[...]t-a-good-issue-on-github.html).
  • Może mniej związane z programowaniem: udało mi się ukończyć artykuł opisujący pokrótce Linux Filesystem Structurehttps://silvuss.github.io/201[...]t-a-good-issue-on-github.html. Czyli – po co na Linuksach zazwyczaj można znaleźć katalog lost+found :) (a także inne katalogi). Spojrzenie początkującego w temacie administrowania Linuksem, tak więc nie ma tam niczego, czego nie można by już znaleźć w internecie. Napisałem bardziej dla siebie.
  • Jeżeli ktoś zaczyna z GitHubem (jakkolwiek z językiem angielskim zna się dobrze ;) ), może zainteresować go artykuł o tym, jak ja – osobiście – wyobrażam sobie dobrze napisaną issuehttps://silvuss.github.io/201[...]t-a-good-issue-on-github.html

Bardzo chętnie przyjmę wszelkie oceny, recenzje i w ogóle komentarze (najlepiej tutaj, bo blog tworzenia komentarzy na razie nie ma). :)

Najwięcej bym prosił, gdyby komuś obeznanemu z Linuksem się chciało, o sprawdzenie artykułu dot. Linux Filesystem Structure – jeszcze raz link: https://silvuss.github.io/201[...]nux-filesystem-structure.html – jako że jestem początkujący w temacie.

Miłego czytania. :)


UPDATE:

Jak mogłem zapomnieć? Zacząłem używać wielkich liter. Wołam, @no_solution_found ! Tu update na ten temat: https://silvuss.github.io/201[...]ortography-writing-style.html

no_solution_found

a skąd zmiana z tymi wielkimi literami? bardzo z tym walczyłeś

Silv

@no_solution_found: jednak przyszedłeś! :) Cyt. ze mnie: As my approach to orthography has changed since the time that this post was published (...). Pewne przemyślenia spowodowały, że uznałem, że tak będzie lepiej.

Silv
2018-11-11 01:06

Właśnie rozpocząłem używanie Eclipse do projektu w Javie i mile zdziwiło mnie, że posiada ono opcję automatycznego wstawiania znaków ucieczki (tzw. escaping) przy wklejaniu ciągu znaków. Jest domyślnie włączona, ale można ją wyłączyć. Mała rzecz, a cieszy. --> https://www.eclipse.org/eclip[...].php#escape-text-when-pasting

Shalom

rozpocząłem używanie Eclipse do projektu w Javie

Przybywasz do nas gdzieś z roku 2008? o_O

jarekr000000

"""A w innych językach na JVM takich "problemów" nie mamy"""

Burdzi0

@Silv: Protip ;) Eclipse'a używam tylko do OCamla i to z lenistwa!

Silv

@Shalom: a co by było lepszego od Javy i od Eclipse? Pytam poważnie. @jarekr000000: Nie rozumiem tego żartu. :( @Burdzi0: dzięki. :) To chyba jedna z możliwych odpowiedzi na pytanie do @Shalom. Ale czemu protip? Co takiego w tym lepszego, tak w skrócie? Mnie chyba wystarczy Eclipse.

jarekr000000

@Silv tak się pisze w Groovy, Scali i Kotlinie. """ i pomiędzy sobie dowolne pojedyncze cudzysłowy wstawia, nawet nowe linie itp. Całkiem wygodne. Nic nie trzeba escapować, a to nawet nie jest najfajniejsza cecha stringów (literałów) w tych językach.

Silv

@jarekr000000: o, nie wiedziałem. Fajnie. :) @Shalom: hm.

Haskell

@Silv Eclipse to przeżytek, zobacz jak pracuje się z IntelliJ https://www.youtube.com/watch?v=GSKERVTMWqs

Silv

@Haskell: zobaczę w wolnej chwili, dzięki.

Silv

@Haskell: trochę za szybko to wideo leci, ale widzę kilka przydatnych funkcji.