niedziela, 7 maja 2017

Postownia cz. 10

Cześć,
dzisiaj 10 post o postępach w pracy nad portalem Postownia.

W tym tygodniu nie modyfikowałem kod, ani nie dodawałem żadnych nowych funkcjonalności. W tym tygodniu uczyłem się AngularJS. Tworzenie Postownii w obecnym wyglądzie (wykorzystując tylko JavaScript) uważam za zakończone. Teraz będę chciał przepisać wszystkie funkcjonalności na AngularJS. Będzie to moje pierwsze zetknięcie z tym frameworkiem.

AngularJS uczyłem się z tutoriala dostępnego na na oficjalnej stronie. Bardzo fajnie wprowadza on w tematykę frameworka oraz pokazuje sposób myślenia, jaki trzeba przyjąć, żeby stworzyć  to, co się chce. W tutorialu tworzymy portal o telefonach komórkowych. Pod względem funkcjonalności jest on podobny do Postownii. Dlatego na bieżąco porównywałem sposób tworzenia funkcjonalności w czystym JavaScripcie i AngularJS. Tworzenie aplikacji i stron internetowych w AngularJS jest o niebo prostsze niż w czystym JavaScripcie. Oczywiście nie odkryłem Ameryki, ponieważ po coś ten framework został stworzony. Jak patrzę okiem początkującego, to wydaje mi się, że przeniesienie Postownii na AngularJS będzie proste. Mogę się mylić, ale to wyjdzie w praniu.

Nowy tydzień zaczynam działaniem w Angularze.

Damian

sobota, 6 maja 2017

Wyszperane w Internecie cz. 10

Cześć,
dzisiaj 10 odsłona Wyszperane w Internecie. Dzisiaj będzie o wydarzeniu, na które wybieram się w najbliższym tygodniu.

Rzadko (zwłaszcza kiedy trwa konkurs DSP2017) chodzę na wydarzenia organizowane w Poznaniu, gdzie mieszkam na co dzień. Niestety doba jest za krótka. Ale zawsze staram się znaleźć czas, żeby pójść na kolejne wydarzenie organizowane przez Poznań Android Developer Group.

Zdjęcie użytkownika Poznań Android Developer Group.

Jest to grupa osób, która średnio raz w miesiącu organizuje spotkania na temat szeroko pojętego Androida. Są to na przykład zagadnienia związane z Javą i jej bibliotekami i frameworkami, beacony, uczenie maszynowe na telefonach komórkowych, czy wykorzystaniu niestandardowych języków programowania przy tworzeniu aplikacji mobilnych (LUA, Kotlin). Na każdym spotkaniu są po 3 prezentacje. Po nich następuje część networkingowa oraz poczęstunek. Link do wydarzenia znajdziecie tutaj.

Pewnie teraz sobie zadajecie pytanie, po co gość uczący się JavaScriptu idzie na spotkanie o Javie i Androidzie? To prawda, nie mam doświadczenia w Javie, oprócz projektów na studiach, ale idę tam po to, aby dowiedzieć się nowych rzeczy oraz nowinek, które kto wie, może będą wykorzystywane w mojej pracy. Myślę, że warto poznawać nowe rzeczy, nawet jeśli teraz nie mamy dla nich zastosowania. Zwłaszcza, że rynek mobilny przegania tradycyjny rynek desktopów i laptopów. Prędzej czy później każdy z IT zetknie się z Androidem i platformami mobilnymi, więc już teraz warto zdobywać tą wiedzę. To co dzisiaj jest nowinką, jutro jest standardem. Z drugiej strony można na spotkaniu poznać osoby, które są autentycznie podjarane Androidem. Lubię przebywać w towarzystwie osób, które mają fioła na jakimś punkcie. A już w szczególności jeśli to jest coś z IT.

Może nie każdy temat mnie zainteresuje, nie każdy mnie porwie. Ale półtorej godziny raz w miesiącu? Niech będzie :)

Damian

piątek, 28 kwietnia 2017

Postownia cz. 9

Witam w kolejnej odsłonie bloga poświęconej Postownii.

W tym tygodniu niestety nie za wiele udało mi się zrobić. Niestety brak czasu oraz wyjazd na majówkę w piątek nie pozwolił mi na zrobienie nowych funkcjonalności.

Udało mi się jedynie naprawić kilka bugów oraz dokonać oczyszczenia kodu z powtarzających się komend (podejście DRY). Teraz kod wygląda trochę lepiej (zwłaszcza ten odpowiadający za serwer).

Bugi natomiast pojawiały się w momencie, gdy użytkownik zakładał nowe konto i od razu chciał pisać posty. Po tej akcji nie wyświetlał się jego nick przy poście.Po prostu źle odwoływałem się do zawartości requesta. Ale już to poprawiłem i działa tak, jak miało działać.

Nie mam jeszcze planów, co do dalszych funkcjonalności. Pomyślę o nich, gdy wrócę z Majówki.

Życzę Wam udanej Majówki i wypoczynku!

Damian

poniedziałek, 24 kwietnia 2017

Wyszperane w Internecie cz. 9

Witajcie,
w dzisiejszym poście o rzeczach wyszperanych w Internecie pokażę Wam ciekawą stronę internetową, które pomoże Wam w nauce programowania, jeśli właśnie ją zaczynacie.

Ostatnio przeglądając blogi programistów natknąłem się na stronę FreeCodeCamp. Jest to jedna z wielu stron zawierająca kurs programowania online. Lecz to, co ją wyróżnia, jest przemyślenie materiału, jaki jest do przerobienia. Większość kursów (jak Codeacademy) zawiera zbiór tutoriali do różnych języków. Nie jest to połączone w żaden spójny ciąg. Inaczej sytuacja ma się na FreeCodeCamp. Jest on przygotowany w konwencji boot camp, to znaczy na początku poznajemy podstawy języka programowania oraz narzędzi. Stopniowo poznajemy coraz trudniejsze rzeczy, aż na końcu robimy własne projekty.

We FreeCodeCamp poznajemy podstawy takich języków jak Javascript, HTML, CSS, jQuery, Bootstrap, Ajax, Sass, React, node.js, express.js oraz wielu innych. Jest tego sporo, trzeba przyznać. Następnie zaczynamy tworzyć algorytmy i proste skrypty przechodząc powoli do małych projektów, Cały kurs trwa 2000h według twórców portalu. Najwięcej czasu, bo aż 800h zajmuje końcowy projekt nonprofit.

Portal oferuje certyfikaty poświadczające o ukończeniu danej części kursu - Front End, wizualizacja, Back End.

Wokół FreeCodeCamp zebrana jest całkiem duża społeczność osób uczących się jak i pomagających i odpowiadających na pytania uczestników "obozu". Portal ma własne forum chat, subreddit, kanał na YouTube, repozytorium na Githubie, Facebooka oraz Linkedin. Myślę, że nikt nie zostanie bez odpowiedzi. Trzeba tylko pewnie znać angielski, aby móc się komunikować. Jest to kolejna zaleta tego portalu.

Słowem zakończenia muszę przyznać, że żałuję, że poznałem ten portal tak późno. Podstaw programowania uczyłem się głównie ze stron typu Codeacademy, ale gdybym wiedział, że istnieje taka strona jak FreeCodeCamp, już dawno bym jej stałym bywalcem. Teraz się będę zastanawiał, czy po zakończeniu konkursu Daj się poznać, czy nie zacząć przechodzić tego kursu.

Chcesz zacząć kodzić - rób konto i zaczynaj kurs na obozie! Nie będziesz żałować, bo na prawdę wygląda nieźle i jest zrobione w przemyślany sposób.

Zdecydowanie polecam. 13/10

Damian

Ps Znalazłem na wykopie wpis jednego z użytkowników, który skończył "obóz". Łapcie link. Może Wam bardziej pomoże podjąć decyzję, czy warto.

niedziela, 23 kwietnia 2017

Postownia cz. 8

Witajcie w napisanym na ostatnią chwilę poście o Postownii.

W tym tygodniu dodałem funkcjonalność, bez której nie może się obyć żaden portal zawierający posty - uprawnienia użytkowników.

Wszyscy znamy te sytuacja, gdy wchodzący na artykuły na najpopularniejszych portalach informacyjnych widzimy pod nimi komentarze oraz komunikaty Post został usunięty przez moderację.

Podobną funkcjonalność zaimplementowałem w Postownii.

Są 2 typy użytkowników - user oraz admin. User może tylko dodawać oraz usuwać posty (ale tylko swoje). Admin może dodawać posty, usunąć jakikolwiek post oraz modyfikować uprawnienia innych użytkowników.
Użytkownik o uprawnieniach admin po zalogowaniu widzi pod postami i polem do dania posta nowy przycisk.
Widoczny przycisk zmiany uprawnień

Klikając w Change permissions użytkownik przenoszony jest na nowy widok.
Widok zmiany uprawnień
Jestem zalogowany na użytkowniku Damian, dlatego nie mogę sobie samemu ustawić uprawnień typu user. Jest to zabezpieczenie przed tym, że portal zostanie bez administratorów. Natomiast klikając w przycisk Change przy danym nicku zmieniamy uprawnienia przeciwne do tych, jakie posiada obecnie. Dzięki temu możemy płynnie zmieniać uprawnienia użytkowników.

Poprawka jest dodane na Github. Testujcie kod i dzielcie się wrażeniami w komentarzach.

Damian

sobota, 22 kwietnia 2017

Wyszperane w Internecie cz. 8

Cześć,

dzisiaj kolejna rzecz, którą znalazłem w Internecie. A znalazłem całkiem ciekawą stronę, szczególnie dla front-endowców.

Strona nazywa się Polski Front-End. Zbiera ona najnowsze posty z blogów dotyczących front-endu. Tak więc jesteśmy zawsze na bieżąco z informacjami. Możemy również sami zgłaszać blogi, jakie pojawią się na stronie. Jeśli administracja uzna, że blog powinien się pojawić, to się tam pojawi.

Strona jest o tyle świetna, że możemy swój blog rozpropagować, żebyśmy mieli więcej wejść i większą publiczność. A także być na bieżąco z najnowszymi informacjami.

Serdecznie polecam!

Damian

sobota, 15 kwietnia 2017

Postownia cz. 7

Cześć,

tutaj wielkanocny post o Postownii. A więc co zrobiłem w tym tygodniu w projekcie?

W dalszym ciągu rozwijam funkcjonalność uprawnień. Od tej pory każdy użytkownik, który założy sobie konto, automatycznie dostaje uprawnienia zwykłego użytkownika. Tak jak to jest na każdym portalu. Administrator z kolei może usuwać posty wszystkich użytkowników.
Widok Postownii z poziomu administratora


Tak jak widzicie powyżej, zalogowałem się na konto mające uprawnienia administratora i mogę usunąć wszystkie posty, ale edytować mogę tylko swoje. Również tutaj musiałem zastosować podwójny mechanizm weryfikacji użytkownika. Pierwszym jest wyświetlanie tylko administratorowi wszystkich przycisków Delete, a drugim weryfikacja na serwerze, czy faktycznie użytkownik ma odpowiednie uprawnienia. Dzięki temu nikt niepowołany nie usunie wszystkich postów.

W przyszłym tygodniu chcę dodać stronę, gdzie administrator może edytować uprawnienia innych użytkowników.

Wesołych Świąt Wielkiej Nocy AD 2017

Damian

piątek, 14 kwietnia 2017

Wyszperane w Internecie cz. 7

Witam w wielkanocnym poście o nowinkach i ciekawostkach z Internetu :)

Przeszukując Internet wzdłuż i wszerz w poszukiwaniu tematu na post trafiłem na ciekawy poradnik o CSS - CSSguidelin.es.

Został on stworzony przez Harry'ego Robertsa - konsultanta architektury front-end z Wielkiej Brytanii, więc przez osobę, która niejedno we front-endowym życiu widziała.

W podręczniku możemy przeczytać zarówno o podstawach CSS, jak i o aspektach optymalizujących nie tylko działanie, ale i czytelność pliku CSS. Przeglądając ten przewodnik po świecie Cascade Style Sheets stwierdzam, że jednak jest ona bardziej zbiorem dobrych rad i wzorców, jak pisać składnię języka. Można ją porównać do książki Czysty kod, z tym że dla CSS.

Myślę, że jak zacznę w projekcie Postownia używać CSSów, to wgryzę się mocniej w ten przewodnik. Tymczasem jeśli nie masz co robić w święta, to polecam przeczytać CSSguidelines. Zwłaszcza jak CSS to Twoje drugie imię ;)

Damian

niedziela, 9 kwietnia 2017

Postownia cz. 6

Witajcie w kolejnym poście z cyklu Postownia.

Niestety w tym tygodniu nie zrobiłem za dużo, a i to co sobie założyłem, nie do końca wyszło :(

Niestety, ale ogarnięcie się po wycieczce, EDK i powrót do domu sprawił, że nie porobiłem za dużo do projektu. A miałem, a w sumie to dalej mam, ambitny plan na dodanie uprawnień do aplikacji. Na razie dodałem tylko przy zakładaniu konta, że każdy użytkownik dostaje automatycznie uprawnienia typu user, czyli podstawowe.
W drugiej kolejności chciałem dodać, żeby użytkownik o uprawnieniach admin mógł usuwać posty wszystkich użytkowników. Niestety na tym punkcie chwilowo poległem przez asynchroniczność funkcji onload  obiektu XMLHTTPRequest. Na tym punkcie skupię się w przyszłym tygodniu. Aby uzupełnić uprawnienia, chcę jeszcze stworzyć nową stroną widoczną tylko dla użytkowników o uprawnieniach admin, gdzie będą mogli zmieniać uprawnienia wszystkich użytkowników.

Życzcie powodzenia, aby udało się naprawić błąd :)

Damian

środa, 5 kwietnia 2017

Wyszperane w Internecie cz. 6

Cześć,
witam po tygodniowej przerwie w kolejnym poście o ciekawych stronach lub informacjach znalezionych przeze mnie w Internecie.

Ostatnio przeglądając fejsa w sponsorowanych postach wyskoczył mi ciekawy fanpejdż - JavaScript Weekly. Administratorzy umieszczają na nim najnowsze informacje ze świata javascriptu - przegląd frameworków, statystyki odnośnie programowania czy promowanie mało znanych bibliotek. Bardzo dobra pigułka, jeśli chodzi o JSa.

Inną inicjatywą twórców jest strona o tym samym tytule co fanpejdż - Javascript Weekly. Strona umożliwia zapisanie się do newslettera, gdzie co tydzień dostajemy najnowsze informacje ze świata javascriptu.

Więc mamy do wyrobu - albo fanpejdż, albo zapisanie się do newslettera. Tak czy siak dostajemy sporą dawkę najnowszych wieści o JSie.

Ja już się zapisałem na newsletter i polubiłem fanpejdż. A Ty?

Damian

środa, 29 marca 2017

Wyszperane w Internecie cz. 5

Witajcie w kolejnej odsłonie cyklu Wyszperane w Internecie

W poprzednim poście przedstawiłem Wam bibliotekę processing.js. Dzisiaj chcę Wam opowiedzieć o kolejnej bibliotece dotyczącej grafiki - p5.js.

P5.js, tak samo jak processing.js oparty jest o ideę towarzyszącą językowi Processing. Tutaj nasuwa się pytanie - czym się w takim razie różnią? Strona Sitepoint tłumaczy to tym, że w p5.js składnia Javascriptu tłumaczona jest na język Processing, który może być uruchamiany na wielu platformach. Natomiast processing.js to konwerter kodu Processing na składnię Javascriptu. W zależności od tego, jaki umiemy język programowania (Processing, czy Javascript), takiej biblioteki używamy.

Nie będzie to dla nas dużym zaskoczeniem, jeśli napiszę, że według twórców biblioteka jest dobra do nauczenia się programowania przez artystów, nauczycieli oraz dla wszelkiej maści początkujących w tej dziedzinie.

Na cały projekt P5 składa się wiele bibliotek, które pozwalają nam manipulować obiektami HTML5, takimi jak tekst, dane wejściowe (input), obraz, dźwięk, kamera itp. Daje to ogromne możliwości do modyfikacji naszej strony, aby miała jeszcze więcej "wodotrysków".

Poniżej przedstawiam kilka przykładowych rozwiązań dla tej biblioteki, jakie znalazłem w Internecie:
Biblioteka jest dopiero w fazie rozwoju, więc nie ma dla niej edytowalnego środowiska, ale twórcy, czyli Lauren McCarthy i zebrana wokół niej społeczność będą rozwijać projekt i dodać nowe funkcjonalności.
Co ciekawe, obie biblioteki (p5.js i processing.js) nie konkurują ze sobą, ponieważ jednym ze wspierających przedsięwzięcie jest Processing Foundation - fundacja opiekująca się i rozwijająca język Processing. Dzięki temu można liczyć na to, że biblioteka będzie się rozwijała w dobrym kierunku.

Myślę, że warto obserwować ten projekt, ponieważ jest on stosunkowo nowy oraz dostarczy wielu ciekawych funkcjonalności, czekających tylko na to, aby wdrożyć je w naszym projekcie. Niech przykładem będzie dla nas strona startowa projektu. Teraz się nie dziwię, że używając p5.js mamy traktować stronę internetową jak płótno.

Damian

wtorek, 28 marca 2017

Postownia cz. 5

Cześć,
już 5 tydzień piszę Wam o postępach w pracach nad Postownią. Od ostatniego posta dodałem kolejną funkcjonalność do projektu.

Od teraz użytkownicy mogą edytować swoje posty. Po zalogowaniu się do strony widzimy następujący widok:

Widok po zalogowaniu

Jak widzimy, użytkownik (w tym wypadku o nicku Damian) może dodać post, usunąć swój post lub dokonać edycji już istniejących. Tak samo, jak dla usuwania postów, użytkownik widzi przycisk edycji tylko przy swoich postach. Dodatkowo po stronie serwera badam, czy post, który ma być edytowany, faktycznie należy do użytkownika. Po prostu nie lubię, jak ktoś grzebie w nieswoich rzeczach. :)

Użytkownik klika w przycisk Edit i widzi takie oto coś;:
Teraz możemy edytować post

Po kliknięciu pojawia się nowe pole tekstowe z treścią posta, który edytujemy. Edytujemy post i klikamy Send (muszę jeszcze ten przycisk przenieść pod pole tekstowe). Powiedzmy, że zmienię ten post na inny o treści "Huba buba".
Teraz widzimy zmieniony post


Na serwerze następuje zamiana treści posta i wysyłane są posty do ponownego wyświetlenia. Po przeładowaniu strony znika pole tekstowe do edycji posta.

Wiem, że wygląd strony jest dosyć ascetyczny i odpychający, ale chwilowo nie zajmuję się tutaj grafiką. Na razie poznaję tajniki Javascriptu i komunikacji na linii klient - serwer i przyznaję, że idzie mi to coraz lepiej.

W następnym tygodniu przedstawię Wam kolejną funkcjonalność, którą chcę dodać - role użytkowników.

Damian