Java – podstawowe zadania 1

Na drugim semestrze studiów podyplomowych doszedł przedmiot – Podstawy programowania Java. Będę potrzebować jej do późniejszej automatyzacji testów.

Podstawowe dobre praktyki i pojęcia:

dobrym zwyczajem jest używanie angielskich nazw
dobrym zwyczajem jest używanie wcięć dla przejrzystości kodu
{} – definiują blok instrukcji do wykonania
// – komentowanie jednej linijki
/* */ – komentowanie bloku tekstu

Zadania z podstaw Javy.

Zadanie 1.
Napisz klasyczne „Hello World”.

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Args to nazwa mojego argumentu i przyjęło się pisać taką nazwę – natomiast jeśli ktoś chce inną może równie dobrze wpisać Tralala.

Screen zadania 1

Pierwszy bloczek do zapamiętania:

public class NazwaKlasy {
    public static void main(String[] args) { }
}

String[] – typ parametru w tym wypadku tablica stringów

args – moja nazwa parametru o typie tablicy stringów, mogę wymyślić dowolną nazwę

Zadanie 2.
Napisz program, który obliczy metry kwadratowe dla dzialki o bokach a = 10 metrów i b = 5 metrów.

public class MetryKwadratowe {
    public static void main(String[] args){
        int a = 10;
        int b = 5;
        System.out.println("Działka o bokach " + a + " metrów i " + b + " metrów ma " +a*b + " metrów kwadratowych");
    }
}

Narazie zmienne podałam na tacy – int wpisałam wprost, że a to 10 a b to 5. Docelowo jednak przecież wpisujemy różne zmienne i chcemy, żeby program obliczył to co w danej chwili mu podajemy.

Screen zadania 2

Zadanie 3.
Napisz program, który obliczy wartość następującego wyrażenia: (8/2+5*2+1)(13%7).

public class Obliczenia {
    public static void main(String[] args) {
        //wyrazenie do obliczenia (8/2+5*2+1)(13%7) - zapisalam sobie w tym komentarzu//
        System.out.println("Wynik wyrażenia to: " + (((8/2) + (5*2) + 1)*( 13%7)));
    }
}

Screen zadania 3

Zadanie 4.
Napisz program, w którym zdefiniujesz stałą Pi z przybliżeniem do dwóch miejsc po przecinku oraz zainicjujesz zmienną, w której będzie się zawierał promień koła r = 10. W dwóch zmiennych przechowuj pole koła i obwód koła.
Program ma podawać pole koła i obwód koła.

public class Kolo {
    public static void main(String[] args) {
        final double pi = 3.14;
        double r = 10;
        double obwod = 2*pi*r;
        double pole = pi*r*r;
        System.out.println("Obwód koła o promieniu r = "+ r + " wynosi " + obwod + " a pole " + pole);
    }
}

Wynik wychodzi brzydko długi, ale tym zajmę się później. Trzeba jeszcze pomyśleć o wczytywaniu z klawiatury danych, to też w kolejnym wpisie.

Zaszufladkowano do kategorii programowanie | Otagowano , | Dodaj komentarz

Brak pracy, dużo perspektyw

Tej zimy nas dopadło jedno wielkie pasmo chorowania. Będąc precyzyjną, zaczeło się to już jesienią i nie może skończyć. Po raz pierwszy na poważnie pomyślałam o zmianie miejsca zamieszkania i zostaniu tzw „digital nomade”. Dopadło mnie to na tyle, że pierwszy raz nie bylam w stanie pójść na zjazd na studiach (a bywałam już przez ten czas chora). Mam ogromne poczucie straconych godzin więc myślę, że kierunek testowania to wciąż ten właściwy skoro tak to odczuwam. Dodatkowo, jutro jest SkładQA, na którą się cieszyłam od dłuższego czasu – i też nie dam rady bo wciąż mam gorączkę. Ciężka sprawa…
W między czasie dnia 13 nastąpiło rozwiązanie mojej umowy o pracę. Po raz pierwszy od 11 lat mam status bezrobotnego (nieoficjalny, bo jeszcze nie byłam w stanie dotrzeć do UP). 11 lat w jednej pracy. Dziwne uczucie…
Dzięki temu śmiało mogę napisać, że zaczął mi się kolejny rozdział życia.
Myślę, że będzie super.

Zaczełam już sobie w głowie układać plan co po kolei muszę zrobić.

1. Zdrowie – przez to ostatnio musiałam dużo odpuścić, a nie chcę.
2. Skupienie na celu – może medytacje pomogą?
3. Plan kolejnych rzeczy do nauki.

Zaszufladkowano do kategorii Ogólne, planowanie | Dodaj komentarz

7 ciekawych, zmiennokształtnych Codepen

Dzisiaj kilka ciekawych kawałków front-endowych, których kształt ciężko przewidzieć.

Nr 1. Piękne Living curves by Gerard Ferrandez

See the Pen living curves by Gerard Ferrandez (@ge1doot) on CodePen.

Nr 2. Genialne Cells by Vladimir

See the Pen Cells by Vladimir (@fdsea) on CodePen.

Nr 3. Wybuchowe Explosion by Gerard Ferrandez

See the Pen explosion by Gerard Ferrandez (@ge1doot) on CodePen.

Nr 4. Zmienna My phenomenological perspective by Gerard Ferrandez

See the Pen my phenomenological perspective by Gerard Ferrandez (@ge1doot) on CodePen.

Nr 5. Nieskończone Cicles by Jake Archibald

See the Pen Circles by Jake Archibald (@jaffathecake) on CodePen.

Nr 6. Mnożące się Snakes by Lanny

See the Pen Blocky Snakes by Lanny (@lannymcnie) on CodePen.

Nr 7. Świecące Reaction Diffusion System by Scott R McGann

See the Pen Reaction Diffusion System by Scott R McGann (@cantelope) on CodePen.

Zaszufladkowano do kategorii front-end | Otagowano | Dodaj komentarz

Raport z testów eksploracyjnych – przykład

Dziś muszę odnotować coś z czego jestem dumna. W ramach jednej cząstkowych ocen można było przesłać swój raport z testów eksploracyjnych w celu jej podwyższenia. Po spotkaniu wykładowo-ćwiczebnym;) z człowiekiem, który zjadł zęby na tego typu testach i jest ich ogromnym propagatorem. Było to ciekawe, bo materiału było dużo a czasu jak zawsze za mało. Kolegi i moje raporty uwzględniono w bazie wiedzy testerzy.pl, co dla mnie jest fajnym sygnałem, że faktycznie został on dobrze zrobiony. Kolejna lekcja do przodu.

 

http://testerzy.pl/baza-wiedzy/raporty-testow-eksploracyjnych-studenckie-przyklady

A tu treść raportu:

Raport z sesji testowej 2018.01.22

Zaszufladkowano do kategorii Testowanie oprogramowania | Otagowano | Dodaj komentarz

HTML 5.2 już w natarciu

17 grudnia 2017 roku organizacja W3C wydała rekomendację odnośnie stosowania nowego HTML 5.2. co znacza to, że mamy kilka nowości w sposobie pisania stron internetowych, którym warto się przyjrzeć.

Podsumowanie zmian w nastającej wersji zamieszczone na stronie W3C:

New features

Features removed

  • The keygenmenu and menuitem elements.
  • The inputmode attribute for textual input elements, and the dropzone attributes.
  • The showModalDialog method.
  • The Plugin API has been marked as obsolete.

Fixing bugs and matching reality better

  • Stop media resource requests from non-network sources delaying the load event.
  • Remove arbitrary upper limits on refresh rates.
  • Coordinates for ismap no longer include the image’s border in calculation.
  • Update accesskey definition to require a single printable character.
  • Fix the activation algorithm for summary to match reality.
  • Fix the algorithm to determine row and column headers for table.
  • Update the rendering of summary
  • Reflecting a broken URL returns the unparsed value
  • currentScript may return SVGScriptElement.
  • Resetting a textarea resets its dirty value flag.
  • document.open() and document.close() check for XML document.
  • HashChangeEvent URLs are USVString instead of DOMString.
  • Selection members’ types are nullable.
  • data: URLs are treated as a separate origin.
  • Sadly, elements that are only focusable because they have a tabindex attribute generally will not fire a clickevent when activated with a non-pointer device.
  • Navigation for sandboxed contexts
  • Updated allowable role values in line with [html-aria]
The following constructions are now valid HTML:
style within the body.
Multiple main elements in the DOM, so long as only one is visible to the user.
The presentation for the img element.
div as a child of a dl element.
dfn as a descendent of an li element that contains a definition of the term defined.
Headings within legend in a fieldset.
Empty option element as a child of datalist.
Comments containing two consecutive hyphens, or ending with a hyphen, in the HTML syntax.
Remove restrictions on BiDi algorithm section
The following constructions are no longer valid HTML:
role values for a caption element.
Inline blocks, inline tables, or floated and positioned block-level elements as children of a p element.
Content with the HTML4 or XHTML1 strict doctype.

New concepts

Editorial clarifications

  • Browsers should represent punycode addresses as natural unicode text for the email input type.
  • Clarify the concept of last frame time for the seekable IDL attribute
  • Browsers that use the the suggestions source element to filter suggestions should implement substring matching on the label attribute.
  • Users should be able to interact with area elements whether or not they use a pointing device.
żródło: https://www.w3.org/TR/html52/changes.html#editorial-clarifications

Mnie osobiście z powyżej wymienionych w pierwszej kolejności najbardziej ciekawi jak na stronie sprawdzi się okno <dialog>, atrybut nonce w <link> oraz nowości w dostępności strony i w najbliższym czasie planuje pobawić się nimi na jakiejś stronce – to postanowienie numer jeden.

Postanowienie numer dwa na mojej liście Front-endowej to lepsza znajomość elementów z danej kategorii tzn co można zastosować zamiast <div> w danym miejscu na stronie. Ułatwi mi to poniższa tabela z dostępnymi w wersji HTML 5.2 elementami, które podlinkowałam do bardziej szczegółowych wyjaśnień na samej stronie organizacji.

Tabela zawierająca wszystkie elementy, z podziałem na kategorie.

This section is non-normative.

List of element content categories
Category Elements Elements with exceptions
Metadata content base; link; meta; noscript; script; style; template; title
Flow content a; abbr; address; article; aside; audio; b; bdi; bdo; blockquote; br; button; canvas; cite; code; data; datalist; del; details; dfn; dialog; div; dl; em; embed; fieldset; figure; footer; form; h1; h2; h3; h4; h5; h6; header; hr; i; iframe; img; input; ins; kbd; label; main; map; mark; math; meter; nav; noscript; object; ol; output; p; pre; progress; q; ruby; s; samp; script; section; select; small; span; strong; sub; sup; svg; table; template; textarea; time; u; ul; var; video; wbr; „Text” area (if it is a descendant of a map element); link (if it is allowed in the body);
Sectioning content article; aside; nav; section
Heading content h1; h2; h3; h4; h5; h6;
Phrasing content a; abbr; audio; b; bdi; bdo;br; button; canvas; cite; code; data; datalist; del; dfn; em; embed;  i; iframe; img; input; ins; kbd; label; map; mark; math; meter; noscript; object; output; progress; q; ruby; s; samp; script; select; small; span; strong; sub; sup; svg; template; textarea; time; u; var; video; wbr; „Text” area (if it is a descendant of a map element); link (if it is allowed in the body);
Embedded content audio; canvas; embed; iframe; img; math; object; svg; video
Interactive content* button; details; embed; iframe; label; select; textarea a (if the href attribute is present); audio (if the controls attribute is present); img (if the usemap attribute is present); input (if the type attribute is not in the Hidden state); video (if the controls attribute is present)
Sectioning roots blockquote; body; details; dialog; fieldset; figure; td
Form-associated elements button; fieldset; input; label; object; output; select; textarea; img
Listed elements button; fieldset; input; object; output; select; textarea
Submittable elements button; input; object; select; textarea
Resettable elements input; output; select; textarea
Labelable elements button; input; meter; output;progress; select; textarea
Reassociateable elements button; fieldset; input; label; object; output; select; textarea
Palpable content a; abbr; address; article; aside; b; bdi; bdo; blockquote; button; canvas; cite; code; data; details; dfn; div; em; embed; fieldset; figure; footer; form; h1; h2; h3; h4; h5; h6;header;  i; iframe; img; ins; kbd; label;main; map; mark; math; meter; nav; object; output; p; pre; progress; q; ruby; s; samp; section; select; small; span; strong; sub; sup; svg;tabletextarea; time; u; var; video audio (if the controls attribute is present); dl (if the element’s children include at least one name-value group); input (if the type attribute is not in the Hidden state); ol (if the element’s children include at least one li element); ul (if the element’s children include at least one li element); Text that is not inter-element white space
Script-supporting elements script; template
żródło: https://www.w3.org/TR/html52/fullindex.html#index-elements

Cel – lepiej wykorzystywać semantykę.

źródła:

https://www.w3.org/TR/html52/
https://www.w3.org/TR/html52/changes.html#changes
https://bitsofco.de/whats-new-in-html-5-2/
https://www.w3.org/blog/2017/12/html-5-2-is-done-html-5-3-is-coming/
https://css-tricks.com/html-5-2-done-html-5-3-coming/

Zaszufladkowano do kategorii front-end | Otagowano | Dodaj komentarz

JavaScript – katalog skryptów

Natknęłam się na wspaniały wpis Frontem – front-endowe ciekawostki i muszę sobie zapisać bo czuję się jakbym dostała prezent pod choinkę. Dziwne, bo dopiero będę się bliżej zajmować JS w pewnej przyszłości, no ale cóż… reaguję tak na większość katalogów zbierających ciekawe rzeczy 🙂

http://www.javascriptoo.com/

Zaszufladkowano do kategorii programowanie | Otagowano , | Dodaj komentarz

Front-end – ciekawe biblioteki – css-doodle.js

Podczas mojego rutynowego przeglądania https://codepen.io/ (taki nawyk dla poprawy samopoczucia) natknęłam się na intrygujące kręgi. Tym razem nie były one w zbożu, ale wystarczyło, żebym chciała przyjrzeć im się z bliska.

See the Pen Border transformations – Symmetry by yuanchuan (@yuanchuan) on CodePen.

Dzięki temu poznałam stronę http://yuanchuan.name/css-doodle/, gdzie jest tego więcej i więcej… a < css-doodle /> okazuje się być componentem służącym do rysowania wzorów za pomocą CSS.

Zabawę można zacząć w balnalny sposób.

1)albo dodać poniższy kod do swojej strony:

<script src=”css-doodle.js”></script>
<css-doodle>
/* it’s ready to use */
</css-doodle>

2) albo użyć npm

npm install css-doodle

Selektory oraz cała dokumentacja wyjaśniona została na wspomnianej stronie więc ja już zabieram się do zabawy…

Zaszufladkowano do kategorii front-end, programowanie | Otagowano , , | Dodaj komentarz

Baza Danych SQL – podstawy

I nastał ten dzień, w którym trzeba zacząć przygotowywać się do zaliczenia przedmiotu Bazy Danych. Nie miałam wcześniej z nimi styczności, więc wolę sobie zrobić większy zapas czasu – zaliczenie 20 stycznia.

Podczas zajęć pracowaliśmy, a właściwie sprawdzaliśmy jak działają komendy, na bazie Northwind. Prócz materiałów z zajęć (mieliśmy je udostępnione w formie pdf lub word) znalazłam kilka dodatkowych w sieci.

SQLpedia

https://www.w3schools.com/sql/

https://sqlzoo.net/

Testy i baza wiedzy z SQL

KhanAcademy – Tworzenie baz danych SQL

SQL Book Free Ebook

MicrosoftSQLServerBook Free Ebook

Lubię uczyć się aktywnie, od razu ćwicząc nabytą wiedzę, dlatego zainstalowałam sobie na komputerze wersję MICROSOFT® SQL SERVER® 2012 EXPRESS.

Pracuję na bazie Northwind – w razie problemów warto zerknać pod ten adres, gdzie dokładnie wytłumaczono w jaki sposób dodać ją do naszego SQL Serwer i podano link, pod którym można ją pobrać. Ćwiczenia na tej konkretnej bazie są na stronie SQL-exercises.edu.pl

A ja biorę się a naukę…

Zaszufladkowano do kategorii Bez kategorii | Otagowano , | Dodaj komentarz

Wyzwanie JavaScript 04/25

Dziś wbrew moim sceptycznym myślą udało mi się usiąść do Wyzwania JavaScript i odsłuchać lekcję 4. Nie wspomnę nawet, że inicjatywa zaraz się zakończy a ja dopiero na początku, ale i tak każdy krok do przodu uważam za postęp.

„Dzisiaj poznasz typ liczbowy w JavaScript, czyli typ number.” – zapowiada tytył, więc do dzieła.

W tym odcinku omawiany jest typ danych number – liczby całkowite i zmiennoprzecinkowe.

Jako początkująca w temacie uważam, że brak podziału na róźnego rodzaju liczby jest zbędny więc czekam na czas objawienia, kiedy ktoś mi wytłumaczy po co zrobiono taki podział w innych językach.

Przypominamy sobie, że typ danych można bardzo szybko sprawdzić otwierając konsolę przeglądarki i wpisując magiczne „typeof naszaDana”.

Co ciekawe dla mnie – wartość można zapisać na różne sposoby:

Zapis liczb
Dyskutując o liczbach, warto też zapoznać się z możliwymi formatami zapisu liczb w JavaScript. Wyżej już można było zobaczyć zapis liczb całkowitych i ułamkowych, np. 0, 1, -2, 3.0, 3.14, -6.28. W skrócie, opcjonalnie podajemy znak liczby, potem część całkowitą i opcjonalnie część ułamkową oddzieloną znakiem kropki.

JavaScript pozwala też zapisywać liczby systemem szesnastkowym. Zapis takiej liczby rozpoczynamy od 0x lub 0X, po czym piszemy sekwencję znaków 0-9a-fA-F, np. 0x0, 0X1, 0xFF, -0xAB.

Ponadto, możemy liczby zapisywać notacją wykładniczą (naukową), np. 1e3, 314e-2, 2.718e0. Zapis naukowy rozszerza standardową notację o część zawierającą e lub E oraz liczbę całkowitą będącą wykładnikiem (z opcjonalnym znakiem + lub -). 1e3 przykładowo jest równoznaczne z 1 * 103, co jest równe tysiącowi.

JavaScript oferuje jeszcze literał liczbowy w systemie ósemkowym, ale tryb ścisły zabrania tej notacji, dlatego nie będę poświęcał jej w ogóle uwagi."

żródło: http://webhelp.pl/artykuly/typy-danych-wartosci-i-konwersja-typow-w-javascript/

Liczby można także zapisać za pomocą bitów – w Javascript jest zapisywana jako liczba 64 bitowa(2 do 64)

Zaszufladkowano do kategorii front-end, programowanie | Otagowano , , | Dodaj komentarz

#dailyCssImages

Przekleństwem internetu jest mnogość świetnych rzeczy do nauki… Na przykład trafiłąm na artykuł Elettherii Batsou o tym jak wciągnęło ją wyzwnie #dailyCssImages i jak wyglądała jej droga przez obrazki tworzone przy pomocy czystego CSS – o czym można poczytać w artykule.

Nie mam teraz czasu na to, ale jest to kolejna rzecz którą muszę dorzucić do mojej listy TODO.

 

Jeśli już chcesz sprawdzić co to takiego to trzeba wiedzieć tylko tyle:

 

 

 

Zaszufladkowano do kategorii front-end | Otagowano , | Dodaj komentarz