Archiwa kategorii: dajsiepoznac2017

#8 WordPress WordUp Poznań – relacja

Niedawno byłam na spotkaniu Joomli, pomyślałam, że skoro na Joomli byłam, to na WordPressie mnie też nie może zamknąć. Szukałam informacji na temat spotkań dotyczących WordPressa w Poznaniu i na szczęście nie musiałam długo czekać na najbliższe spotkanie. W poniedziałek, 3 kwietnia, właśnie odbył się WordPress WordUp Poznań #7.


Prelekcje odbywały się w nowoczesnym budynku Plus Jeden w moim mieście. Zdjęć niestety nie zrobiłam, mam tylko fragment ściany, bo chciałam potem wygooglać te wszystkie zapisane spotkania.

Pierwszy wykład dotyczył zagrożeń REST API. Akurat niedawno o tym pisałam, nieprawdaż? Dość szczegółowo prelegent opowiedział o aferze, która się odbyła na początku tego roku – a konkretnie o błędzie w WordPressie. W pewnym momencie można było bez uprawnień edytować posty w WordPress, nawet prelegent nam zaprezentował jako przykład swojego bloga niezaktualizowanego, gdzie utworzył posta będąc niezalogowanym.

Pokazał też kod w WordPressie, gdzie ten znajdował się felerny błąd. Jeśli dobrze zapamiętałam, to w skrócie chodziło o to, że ktoś zauważył, że można ominąć uprawnienia, w pewnym momencie kod sprawdzał, czy dany post istnieje, jeśli nie, to już nie sprawdzał uprawnień, więc sprytnie to ominął, każąc myśleć programowi, że post nie istnieje, dając mu fałszywy ID np. „1ala”, choć to nie jest liczba całkowita. Program uznał, że takiego postu nie ma, więc już nie sprawdzał uprawnień (skoro post nie istnieje, więc nie ma czego aktualizować), a następnie wyrażenie „1ala” w języku php było zamieniane na „1”, a zatem post o takim id istnieje, więc dało się zaktualizować posta. Pewnie coś pokręciłam, nie umiem tego dobrze wytłumaczyć. Gdyby ktoś chciał więcej poczytać o tym, to m.in. tu może wyczytać więcej, a tutaj prelegent udostępnił swoją prezentację.

Kolejna prelekcja dotyczyła Timber’a – wtyczki do WordPressa ułatwiającej tworzenie motywów. Po prelekcji była ciekawa dyskusja, czy warto z takiego rodzaju wtyczki korzystać – do prelegenta padło pytanie, co zrobi jeśli w pewnym momencie wtyczka Timber przestanie być aktualizowana lub zostanie usunięta z WordPressa? Wtedy jest problem. Poza tym nie zawsze takie motywy ułatwiają, jedynie upraszczają, przez co mogą też ograniczać. Jest też udostępniona prezentacja, gdyby ktoś chciał poczytać i zobaczyć przykładowe fragmenty kodu.

Ostatni temat dotyczył już dobrych i złych praktyk w CSS i BEM, szczególnie było omawiane nazewnictwo selektorów CSS oraz dzieleniu kodu na bloki na wielu przykładach.

Myślę, że najbardziej mi się spodobał pierwszy temat, może dlatego, że dotyczył przede wszystkim bezpieczeństwa i chodziło też o to, aby interesować się tym, co się dzieje ze swoimi stronami – wniosek jest taki, że warto aktualizować na bieżąco, bo aktualizacja może naprawić błędy poprzedniej aktualizacji. Chociaż z drugiej strony kolejna aktualizacja też może zawierać jakieś błędy – tyle, że skoro ona już wyszła, to zwykle są już podawane informacje, co zostało naprawione wcześniej, więc ktoś może tą wiedzę wykorzystać, aby wykorzystać jakieś bugi.

P.S. Muszę przyznać się, że ciasteczka mieli bardzo dobre, takie z mmsami, pychota.. Gdyby nie to, ze nie wypadałoby tak, to bym zjadła wszystkie.

#7 – Tipi UX Poznań – relacja

W środę odbyło się trzecie spotkanie Tipi UX w Poznaniu. Byłam na poprzednim spotkaniu, wiec było to dla mnie oczywiste, że także w tym roku nie może mnie tam zabraknąć. Tym razem także się nie zawiodłam.

Lubię takie spotkania właśnie ze względu na tematykę User Experience, wiec z zainteresowaniem słuchałam każdą prelekcję. Część z nich była zabawna, jedna prezentacja miała gify.

Były też statystyki dotyczące specjalistów UX w Polsce, jak np. w 2015 tylko co drugi polski projektant stwierdził, że zawsze ma wpływ na ostateczny kształt produktu, co trzeci bada potrzeby użytkowników przed rozpoczęciem prac projektowych, co piąty bada projekt przed wdrożeniem z użytkownikami.

Trochę o niepowodzeniach projektów, np. o ich powodach takich jak robienie zbyt wielu rzeczy na raz, ciągle zmieniające się wymagania użytkowników i biznesu, brak jasnego kierunku wyznaczonego przez zarząd itp., wskazówki, jak przejść przez fazę projektową. Przede wszystkim trzeba dowiedzieć się, po co się robi dany projekt, dla kogo jest on tworzony i zbudować wspólną wizję, aby znać prawdziwy cel projektu.

Na poprzednim spotkaniu była mowa o trendach w aplikacji mobilnych, wyzwaniach w projektowaniu UX oraz różnicy B2B a B2C aplikacje mobilne – wtedy było więcej aspektów technicznych.

W tym roku jednak przewagą były przemyślenia czy spostrzeżenia na temat samego procesu tworzenia projektu, np. aby lepiej zrozumieć potrzeby klientów lub biznesu – tak jakby bardziej od strony umiejętności miękkich. Oba spotkania mi się bardzo podobały, gdyż interesujące było dla mnie podejście do UX z dwóch różnych perspektyw.

Spotkanie trwało prawie 2h z przerwą na kawę, jeśli kogoś interesuje tematyka UX, to polecam. 20 kwietnia odbędzie się podobne spotkanie Dribbble Poznan Meetup, również tam się wybieram, już zapisałam sobie w kalendarzu.

Źródło zdjęć: Tipi UX

#6 Projekt: API cz.1

Projekt muszę zacząć oczywiście od zaprojektowania serwera, a konkretnie od API. Zdecydowałam się na REST API, które będzie bardzo proste, oraz na bazę danych MongoDB, aby dane mieć zawsze zapisywane w json.

Rozplanowałam sobie mniej więcej, jak będą wyglądały zapytania oraz odpowiedzi. Póki co, na razie chciałabym, żeby była opcja wysyłania nowych pytań z serii „Co wolisz?” oraz odpowiadania na nie (wyborze jedną z dwóch możliwych odpowiedzi).

Przykładowe zapytania/odpowiedzi

//POST	/questions
{
  "questions" : "Gdybyś był producentem telewizyjnym, wolałbyś",
  "options": 
  [ 
    "anulować znienawidzony przez siebie serial", 
    "przywrócić swój ulubiony serial na czas 1 sezonu" 
  ]
}
//GET	/questions/123
{
  "id" : 123,
  "questions" : "Co wolisz",
  "options": 
  [ 
    "mieć klawiaturę bez podpisanych klawiszy", 
    "być w stanie pisać tylko dwoma palcami na klawiaturze" 
  ],
  "votes": 
  [ 
    123, 
    87 
  ],
  "createdAt" : "2017-31-03"
}

Zastanawiałam się, jak to powinno wyglądać, jeśli chodzi o wysyłanie odpowiedzi. Póki co, to wymyśliłam coś takiego, że jeśli się wyśle „true”, to oznacza, że się zagłosowało na pierwszą opcję do danego pytania, a jeśli „false”, to na drugą opcję. Jednak mam trochę wątpliwości, może jakieś rady?

//POST	/vote/123
{
  "answer": true
}

Razem ze swoimi znajomymi z ciekawości sprawdzaliśmy, jak to wygląda w przypadku either.io. Poszperaliśmy trochę dzięki narzędziom developerskim w przeglądarce Chrome, oto fragment odpowiedzi:

{  
   "questions":[  
      {  
         "id":"2004",
         "live_id":"1029",
         "user_id":"5438",
         "option_1":"overdose on every drug at the same time",
         "option_2":"fall off a 100 story building",
         "option1_total":"571131",
         "option2_total":"504254",
         "comment_total":"905",
         "featured":"0",
         "published":"1",
         "slug":"ending-on-a-high-note",
         "prefix":"",
         "twitter_sentence":"Would you rather overdose on every drug at the same time or fall off a 100 story building?",
         "short_url":"http://wyr.be/Ap9DYg",
         "is_adult":"0",
         "gender":"b",
         "moreinfo":"If you need to ask about survival, you haven't thought this one through.",
         "created_on":"1329921220",
         "updated_on":"1330007989",
         "updated_by":"2788",
         "comments_enabled":"1",
         "title":"Ending on a High Note",
         "is_anonymous":"0",
         "device_id":"d29f4fdff1ab2556f73c59b01fc39201de0ba70f",
         "platform":"iPhone OS",
         "platform_version":"5.0.1",
         "liked":"0",
         "disliked":"0",
         "email":"ericschuey@aol.com",
         "user_is_deleted":"0",
         "display_name":"EpicLibido",
         "favorited":"0",
         "tags":[  
            {  
               "id":"5",
               "name":"Pain & Suffering",
               "published":"1",
               "created_on":"1326212553",
               "slug":"pain-suffering"
            }
         ]
      }
   ]
}

Nie wiem, co o tym myśleć, zastanawiam się, co tu robi informacja o numerze urządzenia, email czy nazwa platformy oraz jej wersja? Możecie to sami sprawdzić i się przekonać na własne oczy, wysyłając zapytanie GET na http://either.io/questions/next/100 np. za pomocą Postmana. A wy co myślicie o tym?

P.S. Postman jest właśnie klientem REST API, można zainstalować go jako wtyczkę do Chrome. Polecam, bo przydaje się szczególnie przy korzystaniu z API, żeby sprawdzić, co zwraca. Ja najczęściej korzystam z Postmana do testowania swojego api.