Archiwa tagu: Programowanie

Coś się kończy, a coś zaczyna…

Witaj!

Tak, dokładnie jak w tytule. Coś się kończy, a coś nowego zacznie.
#DSP2017 powoli się kończy. Zostało kilka dni do końca maja.

Co się udało, zrobić, na co zabrakło czasu, a czego się dotknąć nie chciało i czuło, że to jednak nie to?
HTML i CSS – troszkę poznane, pouczone, rozwiązanie pewne niejasności, obejrzane kilka materiałów dotyczące powyższych, przeczytane i przepracowane dwie książki – tu jestem z siebie zadowolony, bo poza częścią projektową zrobiłem jeszcze kilka innych rzeczy poza konkursowych, które nauczyły mnie jak się tymi dwoma rzeczami do tworzenia podstawowych stron posługiwać. Do tego poznałem odrobinę bootstrapa.

Baza danych – tutaj udało się zrealizować wszystko w komplecie – całość danych jakie chciałem, żeby się znalazły w bazie wraz z powiązaniami tam się znalazły (commit całości do zakończenia konkursu będzie).

PHP – tu działa wszystko (chyba). Malutki skrypt do pobierania danych z bazy i przerzucania dalej do jQuery jest, śmiga i daje rade. Nie musi być mega optymalny ze względów pojemności bazy danych – zaledwie kilkaset rekordów. Starałem się żeby jednak nie przesadzić.

jQuery i JavaScript – tu leże. Pomimo wyłożenia sobie jak działa ajax, jak to wszystko powinno działać no nie mogę – nie czuje tego nadal. Dziwnie tak, ale chyba będę musiał przysiąść nad samym JavaScriptem, poznać jego a dopiero później jQuery. Mam nadzieję, że do końca konkursu jednak uda się to odpalić – coś się gdzieś „wykrzacza” i „nie robi” tak jak bym chciał. Jeśli się nie uda – poddać się nie poddam. Dokończę projekt choćby miałby skończony dopiero 1 czerwca o godz 0:05, czyli już po konkursie. Będzie działał i będzie w sieci 🙂

To wyżej to jakieś osiągnięcia związane z technologiami za którymi nigdy nie przepadałem i żebym je polubił to nie powiem, ale zacząłem mieć o nich jakieś większe pojęcie i powoli rozumiem jak ich używać. Jednak czuje, że bycie frontendowcem to jak przebywanie w baśni „tysiąca frameworków i miliona technologii”. To jak walka z hydrą. Jednego frameworka się uczysz, poznasz go ledwo co a już pojawiły się dwa nowe, które są podobno od niego o lata świetlne lepsze – wg mnie… DżawoSkrypcie nie tędy droga – panie tego nie ogarniesz. Ale co kto lubi.
Brakło też czasu. Wiem, że jak ktoś chce, to nie będzie spał po nocach i da rade. Ale konkurs nie był dla mnie priorytetem numer jeden. Mam jeszcze do tego życie prywatne i zawodowe. Chciałem pojechać na wakacje, jeździć na rowerze, rolkach, pójść w góry, obejrzeć film, poczytać książkę, schudnąć, przemalować ścianę, zrobić ciasto, albo najzwyczajniej o 21:00 pójść spać. Więc – ile zdążyłem tyle zdążyłem. Poświeciłem na to sporo czasu z czego jestem zadowolony. Udało mi się (chyba) doprowadzić bloga do końca, projekt do jakiego takiego końca (jeszcze te trzy dni powalczę z tym jQuery – może akurat ruszy) i poznać kilka nowych rzeczy.
Czytanie blogów współuczestników uważam za czas poświęcony na poznanie nowych rzeczy i ich podejścia do nich – zrobiliście na prawdę dużo i włożyliście w to całą masę pracy!

Czy mam szansę na wygraną? Uważam że absolutnie nie 🙂
W porównaniu do innych podejście miałem luźne, ale i założenie zupełnie inne.
Chcę życzyć wszystkim, którzy dowieźli swoje projekty i blogi do końca konkursu – sukcesu i chęci do dalszych prac nad rozwojem waszych projektów.
Bądźcie dobrzy w tym co robicie i rozwijajcie się dalej.

Pozdrawiam,
Romek

 

Darmowy e-book.

Witaj!

Jak codziennie tak i dzisiaj na www.pucktpub.com dostępna jest kolejna darmowa książka w wersji elektronicznej.

Dzisiaj (jeszcze przez ok 2 godziny) można za darmo pobrać PDFa, ePub i Mobi z książką „Effective Python Penetration Testing”. Jeśli ktoś jest zainteresowany to polecam.
Po przeglądnięciu w/w pozycji uważam że warto 🙂

Skrócony spis treści:

Chapter 1: Python Scripting Essentials
Chapter 2: Analyzing Network Traffic with Scapy
Chapter 3: Application Fingerprinting with Python
Chapter 4: Attack Scripting with Python
Chapter 5: Fuzzing and Brute-Forcing
Chapter 6: Debugging and Reverse Engineering
Chapter 7: Crypto, Hash, and Conversion Functions
Chapter 8: Keylogging and Screen Grabbing
Chapter 9: Attack Automation
Chapter 10: Looking Forward

Boli jedynie to, że całość opisana jest w Pythonie 2.7, a nie w którejś kolejnej wersji Pythona 3.x. Cóż – nie można mieć wszystkiego. Jednak dla chcącego nic trudnego (może ciut). Zawsze można samemu opisane techniki i skrypty przełożyć na wersje 3.x, dopisać trochę treści i mieć świetne publikacje 🙂
Jeśli ktoś się spóźni na pobranie z Packt’u a chciałby tą książkę to niech pisze – podeślę.

Pozdrawiam,
Romek

 

Narysowane…

Witam!

Nie komentujcie zbytnio, nie pastwcie się nad tym wpisem, nie piszcie że jest bez sensu i bez większej wartości… musiałem to narysować na kartce i ogarnąć po swojemu lekko co się skąd bierze. Może i jest nieczytelnie dla większości – ważne że ja wiem o co w tym chodzi i potrafię się rozczytać i ogarnąć co się skąd bierze.

No więc sześć brzydkich fotek z brzydkimi zapiskami…

Mały pomysł na bazę, krótki opis co skąd gdy coś kliknę albo najadę i jak ma wyglądać… to tyle. Biorę się dalej.

Pozdrawiam,
Romek

Co z tym jQuery…?

Coś się zmienia – i to samo, prawie że tu i teraz.

Dodałem do mojego projektu jQuery, powoli doczytuje co się skąd może brać, co w jaki sposób działa, jak się coś zmienia i podmienia – i to wręcz na żywo.
Najbardziej podoba mi się to, że to wszystko działa! Aktualnie na ten moment dynamicznie pobieram sobie z kodu HTML z pojedynczych divów  wartościowość (liczbę atomową) danego pierwiastka i wrzucam go do mojego dużego diva z podglądem.
Aby tego dokonać dodałem dla każdego diva z pierwiastkiem specjalne pole atrybutu, które zaczyna się od przedrostka „data-*” i dzięki niemu mogę wstawić tam odpowiednią wartość, którą później pobieram przy pomocy jQuery do zmiennej i podmieniam w odpowiednich miejscach. Do tego dostałem małą podpowiedź odnośnie styli CSS, aby wszystkie małe divy oskryptować jednym wpisem i dodać do niego drugi (po spacji) który będzie zawierał szczegóły dotyczące tylko tego jednego stylu (w tym wypadku koloru) – dzięki Grzegorz.

Wygląda to tak. Div z HTMLa z pojedynczym pierwiastkiem (przykład Wodoru):

<div class="cell niemetal" data-liczba-atomowa="1"><br>H<br><span class="nazwa" id="nazwa">Wodór</span></div

Duży div:

<div class="cell_big" id="big_cell">
   <div id="liczba_atomowa" class="liczba_atomowa">1</div>
   <h1>H</h1>
   <h2 id="nazwa_pierwiastka" class="nazwa_big">Wodór</h2>
   <div class="masa_atomowa"><span class="nazwa">Masa atomowa</span><br><span id="masa_atomowa">1,00794</span></div>
</div>

I wspaniałe jQuery, które jak to się mówi robi robotę… póki co tylko troszkę, ale od czegoś muszę zacząć:

$('div.cell').on({
    'mouseover' : function() {
        var $la = $(this).data('liczba-atomowa');
        $('#liczba_atomowa').html($la);
        $('#wartosciowosc').html($la);
    }
});

Uruchamia się on po najechaniu na dowolny div który jest klasy „cell” (czyli te małe prostokąty z pierwiastkami), pobiera z niego wartość jaka została przypisana polu „data-liczba-atomowa” przypisując ją do zmiennej $la i nastepnie wstawia tą zmienną jako kod HTML (można np jeszcze to wstawiać jako tekst) do znaczników o identyfikatorach odpowiednio #liczba_atomowa oraz #wartosciowosc. I ot cała filozofia – póki co, są to rzeczy proste.

Kolejnym krokiem jest przygotowanie małej bazy danych i pobieranie z niej pozostałych informacji w sposób dynamiczny tak, aby bez odświeżania strony i klikania wszystko się zmieniało wraz z ruchem kursora po tablicy pierwiastków.
Chciałbym jeszcze uporządkować ciut kod HTML i CSS, pododawać w odpowiednie miejsca identyfikatory, zmienić wszystko na jeden styl językowy (angielski/polski), żeby to miało ręce i nogi na właściwych miejscach.

Podgląd oczywiście na http://pierwiastki.romansroda.com/.

Pozdrawiam,
Romek

Różne źródła wiedzy. #2

Witajcie!

Weekend minął szybko, ciągle poza domem więc do przodu coś się ruszyło, ale marnie. W najbliższym tygodniu podejmuję próbę ogarnięcia JavaScriptu i jQuery w moim projekcie i zrobienia zamierzonych efektów.

Pierwszym źródłem w którym coś podpatrzę będzie oczywiście dokumentacja – rzecz praktycznie oczywista.
Zainteresowała mnie też polska strona www.kursjs.pl na której po wstępnym przejrzeniu materiału, wydaje mi się, że będzie odpowiednia na start.
Korzystam także od samego początku z KhanAcademy. Jest to przyjemne źródło z kursami. Zacząłem co prawda od tych podstawowych dotyczących HTMLa i CSS, ale wcześniej korzystałem tam z wykładów z fizyki, mikro- i makroekonomii. Wszystko było wytłumaczone sensownie i jasno. Mam nadzieję, że JS pójdzie równie przyjemnie.

Programować programuję, i składnia w porównaniu do innych języków dużo się nie różni – przynajmniej ta podstawowa, więc tyle już praktycznie za mną. Zobaczymy co będzie dalej.

Na półce u siebie znalazłem też dwie książki dotyczące jQuery i JS.
Pierwsza to „jQuery. Poradnik programisty.” autorstwa Włodzimierza Gajdy, a druga to „Szybki kurs JavaScript. Wprowadzenie do języka w 24 godziny„.
Co prawda 24 godzin na raz na to nie mam, ale chyba czas nastał aby je otworzyć i przeczytać. Kiedyś na tą półkę trafiły, więc czas po nie sięgnąć.
Obydwie zostały wydane przez wydawnictwo Helion. Osobiście większość książek i tak kupuję poprzez inną księgarnię – bo taniej, ale jak ktoś lubi akurat tutaj linki powyżej.

Tyle na dzisiaj, czas jeszcze rozpakować torbę po podróży, poczytać i zebrać siły na jutrzejszy dzień – oby przynoszący więcej rozwiązań do projektu.

Pozdrawiam,
Romek

 

Rozwój projektu #1

Witaj!

#DSP2017 trwa. Projekt rozwijam, dodaje nowe elementy, uczę się.
HTML i CSS we wstępnej wersji został opracowany. Niektóre rzeczy ładnie się wyświetlają, inne zmieniają kolory itd.

Co nowego poznałem?

HTMLa okazuje się, że nawet pamiętałem. Poznaje bardziej CSSa.
Najbardziej zaskoczyła mnie w nim możliwość zmiany sposobu wyświetlania elementów. Z łatwością mogę zmienić sobie sposób wyświetlania (np listy) ze standardowej list-item na chociażby block. Dzięki takiemu zabiegowi w prostu sposób mogłem zrobić moje menu przy pomocy listy, ale ustawione jednak w jednym rządku. Żeby nie było zbyt prosto, mam nie rozwiązany problem przy tym elemencie, a mianowicie odległość pomiędzy napisem a bokami podświetlonego prostokąta w każdym z tych elementów jest inna. Przy napisie „Kontakt” jest najmniejsza a przy „Strona główna” największa. Żadne operowanie wartościami padding oraz margin niestety nie pomaga i ciągle jest ona widoczna.
Jeśli ktoś może podpowiedzieć przy czym pomajstrować żeby było dobrze – proszę o kontakt.

Ciekawą możliwością są efekty graficzne jakie można wykonać używając samego CSSa – takie jak chociażby zmiana koloru tła po najechaniu na element dzięki użyciu transition, czy border-radius, który ładnie zaokrągla rogi w wyświetlanych prostokątach.

Co zostało dodane?

Dzisiaj dodałem dwa większe divy w centrum – pierwszy za zadanie ma wyświetlać wybrany przez użytkownika pierwiastek z jego nazwą, symbolem, liczbą i masą atomową. Drugi zawiera w sobie tabelę która zawiera parę dokładniejszych danych dotyczących wybranego pierwiastka.

Co dalej?

Teraz przede mną trudniejsze wyzwanie – chcę przy pomocy JavaScript i jQuery (których też nie znam i dopiero poznaję) zrobić tak, aby po najechaniu na wybrany pierwiastek z tablicy, dane we wspomnianych wyżej dwóch dużych divach dynamicznie się zmieniały. Są to dane podstawowe i mógłbym je umieścić na stałe w pliku i pobierać je stamtąd np wykorzystując liczbę atomową jako identyfikator po którym można wyszukiwać poszczególne rekordy, bądź użyć jakiejś lekkiej bazy (SQLite). Jak to rozwiążę jeszcze nie wiem, docelowo w planie jest dodanie także dłuższych opisów i innych informacji, a te zdecydowanie łatwiej byłoby przechowywać jednak w bazie danych.

Na koniec…

Podgląd zmian jakie nanoszę znaleźć można na http://www.pierwiastki.romansroda.com/.
Jeśli ktoś ma jakieś propozycje rozwiązań o których pisałem powyżej, chętnie spróbuję różnych rozwiązań które mogą okazać się pomocne.

Pozdrawiam,
Romek

Podgląd prawie „na żywo”.

Nadszedł czas

Tak, nadszedł. Na to aby zacząć pokazywać coś więcej niż tylko statyczne obrazki które każdy może zrobić sobie w paincie i wkleić do bloga.

Dzisiaj dodałem subdomenę, pod adresem której będzie można prawie że na żywo oglądać moje poczynania. Coś napiszę – to tam wrzucę i będzie można sobie najechać na to myszką, niebawem coś nawet kliknąć.

Strona nie jest responsywna. Nie wiem czy będzie – nie mam pomysłu kompletnie jakby to ugryźć na małe rozdzielczości np. telefonowe. Od 1200×800 wzwyż powinna wyświetlać się tak jak chce – czyli w miarę poprawnie (zakładam, że użytkownicy są dość rozsądni i aktualizują swoje przeglądarki). W dół ciut się rozjeżdża 🙁

Wszelakiego rodzaju krytyka, pomysły, podpowiedzi i inne sugestie mile widziane.
Można je wpisywać w komentarzach pod postami lub jeśli ktoś woli drogą mailową na adres dsp2017@romansroda.com.

Na koniec oczywiście adres pod którym można pooglądać to co przy pomocy próby nauki próbuję stworzyć: http://www.pierwiastki.romansroda.com/

Pozdrawiam,

Romek

Pierwsze efekt pracy…

Oto in on – pierwszy efekt mojej pracy.

Logo tymczasowe ukradzione skądś bo było pierwszym obrazkiem z brzegu jaki się w google.com nawinął i był określonych wymiarów, strona w kolorach zielono-żółto-szarych, bo takie się wylosowały, wszystko póki co napisane i wpisane ręcznie w HTMLu i CSSie – ale pierwszy efekt mi się podoba. Troszkę się nagimnastykowałem i naliczyłem pikseli i procentów (póki co jest wszystko na pikselach bo procenty średnio równo mi wychodziły), nakombinowałem z divami żeby wyglądało to jakoś rozsądnie i wyszło coś coś takiego (póki co w formie kawałka screenu).

Następnym etapem będzie ułożenie tych wszystkich małych divów w sposób procentowy tak, żeby się chociaż trochę skalowało pomiędzy rozdzielczościami – na wypadek gdyby ktoś używał 800×600 jeszcze, ale także aby Ci z 4K mieli ciut większe prostokąciki.
Chciałbym także na górze po środku tak jak to u wszystkich zrobić jeden większy prostokąt z dynamicznie wczytywanymi podstawowymi danymi – tutaj pomocny będzie już JavaScript.

Kod na GitHub? Niebawem…

Pozdrawiam,
Romek

Różne źródła wiedzy. #1

Darmowa wiedza… czy istnieje?

Różne istnieją na ten temat zdania. Jedni powiedzą, że oczywiście że istnieje i wszystko w sieci można mieć za darmo, inni że absolutnie nie, za wszystko w jakiś sposób płacimy.
Można zgadzać się z jedną, drugą lub obiema grupami na raz, ale ważne jest to jak my sami do tego podchodzimy.
Ja osobiście lubię kupić coś co mogę poczytać lub obejrzeć i przynosi jakąś wartość daną, ale trafia mnie jeśli np książka którą nabyłem okazuje się pomimo dobrych ocen totalnym niewypałem. Wtedy przychodzi zastanowienie – kto wystawiał te opinie i dlaczego nie kupiłem pizzy i piwa za to… no cóż. Czasami dobrze coś zobaczyć wcześniej w sklepie i dopiero kupić lub jeśli jest dostępne za darmo, bądź prawie za darmo to z tego skorzystać.

Tym wpisem chciałbym otworzyć cykl dotyczący różnych źródeł wiedzy z których korzystam i które są darmowe, dostępne po zarejestrowaniu się, dostępne za symboliczną opłatą lub opłacane cyklicznym abonamentem, ale wg mojego uznania warte uwagi.

Darmowa lektura

Na początku zacznijmy od tego co tygryski lubią najbardziej, czyli coś co jest prawie że zupełnie za darmo (wymagana rejestracja). Packt Publishing na swojej stronie każdego dnia udostępnia inną pozycję w postaci ebooka dotyczącą przeróżnych technologi. Wchodząc na ten adres każdego dnia możemy dodać do swojej kolekcji darmowego ebooka, a następnie pobrać go do siebie w różnych dostępnych formatach. Są to dokumenty PDF, MOBI, ePUB czy wersje na czytniki Kindle.
Jedyne wymaganie jakie jest to darmowa rejestracja na stronie celem posiadania konta na którym odkładamy zdobyte przez nas publikacje celem późniejszego dostępu do nich.

Puckt Publishing nie kończy na tym niespodzianek jakie oferuje. Codziennie (przynajmniej dotychczas) na swoim fan page na FB publikuje dodatkowego posta z jeszcze jedna darmowa pozycją którą można dodać do swoich zbiorów – dlatego warto ich zalajkować i dodać do obserwowanych.
Pozycje wybierane są spośród wszystkich dostępnych w serwisie książek i muszę przyznać, że są dość interesujące i każdy znajdzie coś dla siebie. Warto chociażby co jakiś czas spojrzeć i sprawdzić czy nie jest udostępniona książka, która interesuje akurat nas lub jest z dziedziny, którą chcielibyśmy poznać a zawsze brakowało na na to czasu.

Dzisiaj dostępna „Android 5 Programming by Example”.

Polecam w/w źródło – może się komuś przydać i zachęci go do poznania czegoś nowe.

Romek

Nauka która oby do lasu nie chodziła… vol. 1

Słowem wstępu

Dzisiaj usłyszałem pytanie:

  • A kiedy coś wrzucisz na GitHuba, żebyśmy się mogli razem pośmiać?„.

Standard – taki niezobowiązująco motywujący tekst.
A kiedy? Niedługo. Mam nadzieję, że w tym tygodniu już się uda i pierwsze wyniki mojego siedzenia „nienadaremne” pokażą jakiś efekt i coś niecoś ukaże się także na GitHubie. Póki co nie widzę większego sensu wrzucać jakichś bezsensownych prób ułożenia layoutu w jeden składny dokument i do tego niezbyt związany z projektem, który staram się, żeby chociaż przechodził walidację i miał ręce i nogi pod względem niezapętlania się znaczników – ot takie moje próby zrobienia czegoś co może działać. Chociaż przyznam że Atom.io skutecznie mi w tym przeszkadza i wstawia znaczniki tak jak on chce – muszę go jakoś przywołać do porządku.

Co udało mi się do tej pory w dobry sposób poznać

Na stronie z kursami edx.org podjąłem próbę poznania HTMLa i CSSa. Idzie to powoli bo materiału sporo. Trzeba pooglądać, poczytać, napisać, sprawdzić… i tak ze dwa razy bo coś się wykrzaczyło – zwykle standardowy brak średnika, znaku równości, cudzysłowu lub nawiasu. Jeśli kod można spróbować skompilować, to wszystkie takie braki po kolei wychodzą – tutaj nie, trzeba je jakimś cudem wynaleźć, co bywa ciężkie.

W nowej wersji HTMLa spodobały mi się (jak już to napisałem w poprzednim poście) nowe znaczniki. Twórca wymyślił sprytnie, żeby zamiast wszystko ładować do jednego znacznika <div> i sobie go później oznaczać odpowiednimi klasami bądź identyfikatorami, można użyć gotowych znaczników (które później także swobodnie można opisać w CSSie). I tak powstały:

  • <header> – odpowiadający za nagłówki;
  • <nav> – do którego dobrze jest włożyć nasze menu nawigacyjne strony;
  • <main> – gdzie umieszczamy cały główną zawartość strony (tak wiem, kontent przez „K” brzmi dziwnie wiec się z niego wycofałem prawie od razu);
  • <section> – który pozwala nam wydzielić poszczególne sekcje na stronie w miejscach w których chcemy;
  • <article> – jak sama nazwa wskazuje, tutaj powinien znaleźć się jakiś artykuł bądź treść właściwa danej podstrony;
  • <aside> – to taki sprytny znacznik, który według zamysłu ma zawierać informacje nie do końca związane z treścią główną strony. Taki dodatkowy boczny pasek;
  • <footer> – i na koniec stopka, w której standardowo umieszcza się rzeczy które w stopce powinny się znaleźć.

Jest jeszcze cała masa innych znaczników, ale może o nich przy innej okazji, gdy okażą się bardziej potrzebne.

Dowiedziałem się także, że znacznik <header> i <footer> mogą być wykorzystywane także wewnątrz znaczników <section> i <article> z takim samym znaczeniem jak na stronie głównej, tylko akurat w tym wypadku w roli pomocniczej przy mniejszym kawałku danej strony.

Kolejną rzeczą są nagłówki od <h1> do <h6>, czyli takie wyróżniki na stronie które dodatkowo „rozdzielają” poszczególne sekcje. Kiedyś to one wyznaczały podziały, teraz mamy od tego odpowiednie znaczniki (j/w). Używanie ich jednak powinno być (wg tego co mówi standard) w taki sposób, że znacznik H1 najlepiej aby użyty był jeden raz i opisywał główną zawartość strony. Każda sekcja bądź artykuł, także powinny zawierać nagłówki, ale już niższego poziomu. Służyć to ma hierarchizacji na stronie i… ułatwia osobom które używają czytników ekranowych korzystanie z takich stron.

Na sam koniec zostawiłem rzecz, która męczyła mnie od kilkunastu lat i trochę z lenistwa nie doszukałem się jej nigdy. Chodzi o to, w jaki sposób ustawić obok siebie np dwa kontenery z treścią, a pod nimi jeszcze jeden, ale taki na całej długości. W dawnych czasach tego nie wymyśliłem, nie znalazłem, okazałem się ignorantem i zrezygnowałem… ale to takie proste. Czarodziejską sztuczką jest odpowiednie nadanie w stylach CSS dobrych reguł.

Obrazkowo wyglądać to powinno mniej więcej tak:

dwie kolumny

A opisowo robi się to w taki sposób:

#Column 1
section {
  float: left;
  width: 70%
}

#Column 2
aside {
  float: right;
  width: 25%
}

#Footer
footer {
  clear: both
}

Całym kluczem do sukcesu było clear: both, które to usuwa ustawienia kontenerów do przyklejenia się odpowiednich stron odpowiednią krawędzią (można też dać obydwa float: left).
Poza tym można poustawiać odstępy wewnątrz kontenerów oraz na zewnątrz definiując każdą odległość osobno, parami, całościowo jedno wartością. Wielkości, kolory, style fontów (podobno to są fonty a nie czcionki – sam nie wiem czemu, ale słyszałem już nie raz ogromne oburzenie z tego powodu), tła, szerokości, wysokości itd. Całą masę ustawień styli CSS:

  padding: 20px 50px 20px 50px;

  margin: 0 15px;

  font-size: 1.5em;

  width: 25%;

  text-align: center;

  background: #722;

  color: #fff;

Z tego co widziałem to w CSSie można robić przeróżne rzeczy – jak chociażby rysować różne elementy, co próbuje pokazać jedna z uczestniczek #DSP2017. Liczę, że i mój zakres wiedzowy niebawem dotrze do tego momentu, bo przyznaję, przyda się to w moim projekcie.

Podsumowanie

Poznawanie nowych rzeczy trwa. Idzie to niezbyt szybko, jednak żyć poza konkursem też trzeba i inne rzeczy odłogiem leżeć niezbyt mogą. Postęp jest.

Pozdrawiam,
Romek