Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu php Kanał ATOM (tag: php)

Autor wpisu: matipl, dodany: 27.04.2020 15:43, tagi: php

W zeszłym tygodniu wspomniałem m.in. o spostrzeżeniach jakimi dzieli się Ola Kunysz. W drugim vlogu zatytułowanym „Wstyd się przyznać do niewiedzy?” poruszyła ona temat rekrutacji w IT z punktu widzenia rekrutera. Bardzo dobre pogaduchy, ale zatrzymałem się myślami nad:

Znacie pewnie te rozmowy rekrutacyjne, na których ktoś pyta: jak wywołać Garbage Collector?

Czy, aby na pewno jest to pytanie z „podręcznika dobrych pytań na rozmowę rekrutacyjną?” Nie sądzę, ponieważ takiego podręcznika nie mam (a jest dostępny?), a zdarza mi się pytać o bardziej niskopoziomowe sprawy… I tak zastanawiając się nad tym pytaniem zdałem sobie sprawę, że nie dzieliłem się tutaj sprawami dotyczącymi rekrutacji. Od ponad 10 lat w różnych firmach wcielam się w rolę rekrutera. Masa doświadczenia za mną. Po latach wiem na pewno jakiej osoby szukam i to bez znaczenia na stanowisko (absolwent, osoba starająca się przekwalifikować, programista z kilkuletnim doświadczeniem, architekt itd.).

Osoba z pasją

Kogo szukam? Osoby z pasją, której błyszczą się oczy, gdy tylko mówi o tym co lubi robić. Pasją w tej chwili nie musi być IT, możesz być na początku swojej drogi w IT, jako programista, mieć naprawdę małe doświadczenie, ale w trakcie luźnej rozmowy da się wyczuć, że jesteś osobą ambitną, lubiącą rozwój i posiadasz odpowiedni sposób myślenia, kojarzenia faktów.

Ponieważ technologie, biblioteki, języki czy znajomość dobrych praktyk programistycznych (np. wzorce, psr-y) są to rzeczy nabyte. Jeśli posiada się otwarty umysł na wiedzę, chęć rozwoju (i nie mówię tutaj o szumnych zapowiedziach, ale faktycznych działaniach) to z czasem taka osoba może wszystko nadrobić i stać się nawet liderem w zespole. Mógłbym tutaj przytoczyć masę historii osób, które teraz są świetnymi programistami, rozwiązującymi skomplikowane zagadnienia. A na rekrutacji były to osoby zasiedziałe w firmie jednego projektu, gdzie zajmowały się od lat wyłącznie utrzymaniem, lub osoby, które ogarniały w firmie wszystko z małą ilością czasu na programowanie. Oczywiście, zdarzały się osoby znakomite pod względem doświadczenia już na rekrutacji, ale cześto pojawiały się na rozmowie, bo w obecnym miejscu były redukcje. Jak również znam kilka osób, które widziałbym w IT, a teraz są zupełnie w innych branżach. Wiem, że rewelacyjnie poradziliby sobie jako analitycy czy programiści, widzę podczas rozmów jak rozwiązują pewne zagadnienia, łącza fakty… ale nie widzą się w IT. Szkoda.

PHPCon Poland 2015 - gadżety

Trudne pytania?

Czy nieraz pojawia się pytanie o OpCache? W jaki sposób i gdzie PHP przechowuje dane, czy da się coś zoptymalizować w konfiguracji, czy pisało się własne rozszerzenia w C. Tak – pojawiają się takie pytania, ponieważ projekty są różne i różne jest zapotrzebowanie kadrowe. Ale nie zrażaj się takimi pytaniami. Nie wiesz i tyle, wiedza rzecz nabyta tylko o tym powiedz. Inną kwestią jest co zrobisz ze swoją niewiedzą po spotkaniu? Poprosisz o maile z podsumowaniem, czego nie wiedziałeś, sam poszukasz w Internecie odpowiedzi, douczysz się dla samego siebie… Czy stwierdzisz – co za głupia rekrutacja, po co mam to wiedzieć…

Rozmowa

Rozmawiam o wszystkim. Moim punktem startu, jest to co otrzymam od kandydata. Nieraz się zdarza, że poza pytania dotyczące CV w ogóle nie wychodzimy, ponieważ jest interesujące (nie tylko sprawy z IT), są miejsca, których można się „uczepić” (np. Raspberry Pi). Gdy czasami CV jest ubogie, i po 2-3 pytaniach nie mamy o czym rozmawiać to zaczynam zadawać pytania ogólne dotyczące rozwiązywania problemów. Nie są to pytania o algorytmy, wiedzę stricte uniwersytecką, ale o życiowy projekt i problem jaki się tam zdarzył lata temu. Jakbyś go rozwiązał? Gdy wiem lub czuję, że to osoba z całą teczką wykonanych projektów, z niesamowitą ilością problemów, które spotkała w IT zadaje kilka pytań związanych z dzisiaj używanymi technologiami i tyle. Koniec, kropka w notatce ze spotkania…

To jest rozmowa, techniczna, ale rozmowa. Zdarza się nieraz, że w trakcie rozmowy odkrywam, że dana osoba ma predyspozycje do pracy zdalnej lub samodzielnego projektu, niż pracy w zespole kilkuosobowym. Ale najczęściej sprawami dotyczących kompetencji tzw. miękkich zajmuje się dział HR, który jest po prostu w tym lepszy.

Czego się uczyć?

Mam wrażenie, że podczas spotkań (rekrutacji) coraz mniej osób pyta jak zdobyć wiedzę, co mogą poprawić, jaka jest poprawna odpowiedź na zadane pytanie. Dzisiejszy świat dostępu do informacji jest zupełnie inny niż 15 lat temu i można z tego skorzystać. Jest masa spotkań lokalnych (zapraszam do kalendarza, teraz odbywających się online), konferencji w Polsce, a konferencje za granicą stały się łatwiej dostępne. A nawet jeśli nas nie stać na wyjazd, poświęcenia dnia pracy, to jest masa nagrań z konferencji w Internecie (Boiling Frogs, PHPCon Poland, WebSummerCamp) czy podcasty. Może w tej chwili nie użyjesz technologii, o której usłyszysz na konferencji. Ale przy rozpoczęciu następnego projektu okaże się, że znasz idealne narzędzie do rozwiązania tego problemu?

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: matipl, dodany: 24.04.2020 10:56, tagi: php, technologie

Spora część z nas, osób pracujących w IT ograniczyła ilość spotkań, udział w konferencjach czy lokalnych spotkaniach. Dlatego tym bardziej cieszy mnie, że pojawia się w Sieci coraz więcej materiałów wartych uwagi, dzięki którym nie tylko początkujący w branży (programiści, testerzy, analitycy) mogą wiele się nauczyć i poznać inny punkt widzenia. Dzisiaj chcę zapoznać Was z 2 interesującymi osobami, a raczej z ich działalnością w Internecie…

Mariusz Gil - Better Software Design

Mariusz Gil (Better Software Design)

Wydaje mi się, że Mariusza nie trzeba przedstawiać – programista wywodzący się z PHP, architekt oprogramowania, obecnie „opowiada” o DDD. W kwietniu rozpoczął nowy projekt – podcast Better Software Design. Jest to podcast o architekturze, szczegółach implementacyjnych, problemach życia codziennego projektów widziany trochę z wyższej półki, opowiedziane przez osoby ze sporym dorobkiem zawodowym. Jest on prowadzony w formie wywiadów. Obecnie ukazały się 4 odcinki, które krążą wokół DDD (Domain-Driven Design) i wydajności. Jest to wyśmienite uzupełnienie szkoleń organizowanych przez Bottegę, czy ścieżki Bottega IT minds na konferencji 4Developers, na których Mariusz i inne osoby z Bottegi dzielą się swoim doświadczeniem z walki w dużych projektach.

Ola Kunysz - O jakości dla programistów

Ola Kunysz (podcast & vlog)

Ola jest programistką, z wieloletnim doświadczeniem w branży, z bardziej Javowej strony. Mogliście ją już posłuchać na licznych konferencjach, gdzie udzielała się jako prelegentka (np. Boiling Frogs, Wrocław JUG, Sphere.IT). Od pewnego czasu dzieli się swoim doświadczeniem, spojrzeniem na oprogramowanie tworząc podcast „O jakości dla programistów”, a bardziej regularnie jest aktywna na YouTube. Tam też (na YT) od kilku dni ukazuje się vlog Oli – serdecznie polecam. Porusza tematy zaczynając od procesu rekrutacji w firmach kończąc na pasji, perfekcjonizmie. Bardzo wartościowe uwagi szczególnie dla twórców oprogramowania z krótkim stażem, ale również wieloletni ludzie z branży znajdą coś dla siebie.

Również SegFault stara się wystartować z własnymi audycjami, ale na razie powstał tylko 1 odcinek w ramach „segfault audio”. Mam nadzieję, że będzie więcej.

Artykuł Podcasty: Mariusz Gil (Better Software Design) & Ola Kunysz (O jakości) pochodzi z serwisu Mateusz matipl Kamiński.

Autor wpisu: matipl, dodany: 24.01.2019 14:45, tagi: php

PHP 7 jest już z nami 3 lata. Właśnie wygaszono PHP 7.0 oraz PHP 5.6, czyli nie są już w żaden sposób wspierane przez społeczność pracującą przy core PHP. Statystyki na podstawie pobrań Composera w połowie 2018 roku mówią, że około 80% to już PHP 7.* – jest dobrze można pomyśleć. Aż tu nagle znajduje się pewien problem…

Phalcon

Nie wiem, czy każdy z Was słyszał o Phalconie – frameworku PHP napisanym w C, kompilowanym jako rozszerzenie PECL. W 2016 roku, kilka miesiący po ukazaniu się PHP 7, został opublikowany Phalcon 3.0 z pełnym wsparciem dla PHP 7.0. Prawie każdy o nim mówił, ponieważ samo użycie PHP 7 przyspieszało aplikacje, a co dopiero pomyśleć gdyby ktoś również korzystał z frameworka, który nie musi za każdym razem ładować setek swoich plików, tylko byłby natywnie dołączany do PHP… Sam byłem zachwycony, ale nie korzystałem.

Trafiła mi się sprawa związana z dłubaniem w aplikacji opartej o Phalcon 3. Wszystko wydawało się super dopóki zostawało sie na poziomie kontrolerów, widoków, podstawowej konfiguracji. Jak chciałem (musiałem) zrobić coś więcej – optymalizacja zarządzania sesją okazało się, że tutaj nie jest kolorowo. Zderzyłem się ze ścianą – Phalcon posiada nikłą dokumentację, moim zdaniem na poziomie Zend Framework 0.*. Jest prosty guide, wygenerowany „phpdoc” na podstawie komentarzy klas i to wszystko. Chciałbyś poznać dokładną listę parametrów np. do Phalcon\Session\Adapter\Libmemcached – bez szans, chciałbyś zoptymalizować sposób łączenia sie z memcached itd. – bez szans. Okazało się, że może jest to dobry framework, ale podstawowa wiedza rozsiana jest po forach internetowych, brak informacji od speców korzystających z niego do czegoś więcej niż CMS-y i proste serwisy. Dla zainteresowanych warto przeczytać książkę Phalcon PHP Framework Documentation po francusku, ale przynosi trochę więcej wiedzy.

PHP Versions Grouped (May 2018)

Problem

Nie wiem czy pamiętacie, ale 2016 rok nie był rokiem PHP 7. Dlaczego? Mało narzędzi poprawnie współpracowało z PHP 7. W samym slniku dużo zostało zmienione i społeczność od PECL-i nie nadążyła. Firmy/Projekty dopiero robiły przymiarki, szczególnie gdy okazywało się, że aplikacje wymagały refactoringu, aby poprawnie działać na PHP 7 (usunięte rozszerzenia i SAPI w PHP 7.0). W pewnym momencie okazało się, że memcached w końcu działa poprawnie z PHP 7 i poszło wszystko do przodu. Również w projektach, w których brałem udział.

Ale. Do tej pory nie spotkałem się z sytuacją, aby memcached nie mógł poprawnie zawiadywać sesjami i stanowił problem (chociaż są nowsze podejścia, np. Redis jak save_handler). Okazuje się, że PHP 7 w połączeniu z memcached w pewnych sytuacjach (duża ilość requestów „AJAX”) może rzucić:

PHP Warning: session_start(): Unable to clear session lock record in (...)

Jeśli mamy wygłuszone błędy (produkcja) to może to pozostać niezauważone albo po prostu zniknąć w czeluściach logów. Tym bardziej, gdy dzieje się sporadycznie. Ale co właściwie się dzieje?

Rozwiązanie

Okazuje się, że podobny problem (wiele zapytań równoległych z JS „psuje” sesje) ma wiele osób w sieci już od 2016 roku, czyli momentu wydania modułu. Oczywiście można byłoby przepisać miejsca, gdzie wykorzystywana jest sesja i lepiej kontrolować przepływ informacji. Ale to zwiększa koszty pracy, jak również może powodować kolejne komplikacje. Nie pomagało w tej sytuacji zamykanie sesji wcześniej (session_write_close()), ani inne wynalazki (np. nowość w PHP 7 session.lazy_write). Okazuje się, że problem jest dość trywialny i dotyczy domyślnej wartości dla memcached.sess_lock_retries, która od początku wersji 3.0 była ustawiona na 5. Wydaje mi się, że niska wartość w połączeniu z PHP 7 i HTTP2 (jeden kanał do całej komunikacji, mniejsze zatory na zapytaniach) spowodowały ujawnienie błędu domyślnej konfiguracji. W połowie 2017 roku ukazał się odpowiedni Pull Request zmieniający domyslną wartość w INI, jak również w samym C

- ; Default is 1000.
- ;memcached.sess_lock_wait_min = 1000;
+ ; Default is 150.
+ ;memcached.sess_lock_wait_min = 150;

; The maximum time, in milliseconds, to wait between session lock attempts.
-; Default is 2000.
-;memcached.sess_lock_wait_max = 2000;
+; Default is 150.
+;memcached.sess_lock_wait_max = 150;

; The number of times to retry locking the session lock, not including the first attempt.
-; Default is 5.
-;memcached.sess_lock_retries = 5;
+; Default is 200.
+;memcached.sess_lock_retries = 200;

Ustawienie w aplikacji ini_set(‚memcached.sess_lock_retries’, 200) rozwiązało problem z lockowaniem się sesji, ale… Wyłącznie w przypadku natywnego rozwiązania, tj. $_SESSION (które bazuje na konfiguracji PHP). Niestety wykorzystanie wspomnianego Phalcon\Session\Adapter\Libmemcached w aplikacji powoduje nadal ten sam błąd. Widać Phalcon (C) nie bierze pod uwagę konfiguracji pecl-memcached (C) i jedzie po swojemu.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: matipl, dodany: 08.01.2019 13:20, tagi: php, oop

Od miesiąca możemy cieszyć się PHP w wersji 7.3, który jest kolejnym krokiem ewolucji jaka zachodzi w tym popularnym języku. Obecne zmiany to dopracowywanie prostszego sposobu tworzenia aplikacji, jak również dopracowywanie samego silnika.

WordPress 5.0 benchmark

Dzięki tym zmianom PHP wciąż przyspiesza. To prawda, że to głównie zasługa coraz lepszego opcache, ale jednak jest to część silnika. WordPress nie jest dobrym przykładem jak powinno się pisać kod, ale jest dobrym przykładem na wzrost wydajności PHP na przestrzeni lat:

  • PHP 5.6: 91.64 req/sec
  • PHP 7.0: 206.71 req/sec
  • PHP 7.1: 210.98 req/sec
  • PHP 7.2: 229.18 req/sec
  • PHP 7.3: 253.20 req/sec

PHP 7.3

PHP 7.3 przyniósł bardzo wiele przydatnych funkcji, które zostały przegłosowane przez społeczność w ramach zgłaszanych RFC. W nowej wersji możemy teraz zostawiać nie tylko przecinek po ostatnim elemencie w tablicy, ale również w wywołaniu metody:

$newArray = array_merge(
    $arrayOne,
    $arrayTwo,
    ['foo', 'bar'],
);

Kolejne wbudowane funkcje zostały wsparte o wyjątki. Tym razem wyjątki zostały wprowadzone do wywołań json_encode() i json_decode(). Oczywiście zgodność wsteczna jest ważna w PHP, dlatego aby został rzucony wyjątek należy dodać parametr JSON_THROW_ON_ERROR:

try {
    $decoded = json_decode("{ 'invalid' : 'json' }", false, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
    echo $e->getCode(); // 4
    echo $e->getMessage(); // Syntax error
}

Poza tym pojawiły się…. nowe fukncje. Na przykład is_countable(), która sprawdzi czy rzecz jest policzalna (count() od PHP 7.2 rzuca Warning, gdy jest wykonywane na czymś co jest niepoliczalne). Dodano również monotoniczny timer wysokiej rozdzielczości (hrtime()), który nie ma jeszcze dokumentacji na php.net, ale jest następcą polecenia microtime(), ale jest niezależny od zmiany czasu systemowego.

I na koniec, przypominam, że obecnie wspierane wersje PHP zaczynają się od wersji 7.1. Wersja 7.0 oraz 5.6 nie posiada już żadnego wsparcie, nawet łatek bezpieczeństwa.

PHP 7.4 – Typowanie 2.0

Jednym z większych przełomów jakie przyniósł PHP 7 (2015) jest możliwość deklaracji typów. Tego czego wciąż brakuje, to możliwość ustalenia typu właściwości klasy już na etapie jej opisywania, a nie tworzenia metod. PHP 7.4, który pojawi się pod koniec 2019 roku rozwiąże ten problem.

class User {
    public int $id;
    public string $name;
 
    public function __construct(int $id, string $name) {
        $this->id = $id;
        $this->name = $name;
    }
}

Po wprowadzeniu Typed Properties 2.0, komentarze w PHP znów będą służyły do komentowania kodu, a nie uzupełniały braki języka poprzez @param, @return itp. Pozostaje czekać.

Artykuł PHP 7.3 na pokładzie, przed nami PHP 7.4 pochodzi z serwisu Mateusz matipl Kamiński.

Autor wpisu: matipl, dodany: 29.11.2018 10:37, tagi: php

Martin zebrał wtyczki do PhpStorm, które są godne uwagi z naciskiem na framework Symfony. Ale moim zdaniem każdy znajdzie coś dobrego dla siebie:

  • PHP Annotations
  • PHP Toolbox This plugin provides „Method References” and „Type Provider” extracted from the Symfony Plugin. You can configure the plugin with simple per project files .ide-toolbox.metadata.json to support for eg $f->(‚date_time’)->format, new Datetime(‚caret’). Also it improves some PhpStorm Core functionality.
  • Symfony Plugin
  • PHPUnit Enhancement PhpStorm plugin to provide smart autocomplete, code navigation and refactoring features for mocked class methods.
  • PHP composer.json support
  • Php Inspections (EA Extended) This plugin is a Static Code Analysis tool for PHP (aka inspections in JetBrains products)
  • Twig Support
  • .env files support
  • .ignore

Używacie innych wtyczek? Ja korzystam również z „Phalcon auto-complete” i „BashSupport”.

Artykuł PhpStorm – polecane wtyczki pochodzi z serwisu Mateusz matipl Kamiński.

Autor wpisu: matipl, dodany: 13.11.2018 16:08, tagi: php

Ale ten czas szybko płynie. Dopiero co opisywałem Wam przepis na kompilację PHP 5.4 (2013), a za rogiem czeka już PHP 7.3.

Mimo upływu 5 lat dużo się nie zmieniło w samej konfiguracji kodu źródłowego i kompilacji. Podstawa to posiadanie w Linuksie gcc/g++ oraz pakietów -dev (głównie pliki nagłówkowe .h), dla rozszerzeń z których będziemy korzystać. Poniżej lista pakietów dla Debiana, które są przydatne:

apt-get install make gcc g++ libxml2-dev zlib1g-dev bzip2 libbz2-dev libcurl4-gnutls-dev libjpeg8-dev libpng-dev libfreetype6-dev libmcrypt-dev libmysqlclient-dev lemon libtidy-dev libxslt1-dev libpcre++-dev libssl-dev automake autoconf libsystemd-dev pkgconf

Na pewno zapytacie po co to wszystko? W dawnych czasach nie wszystkie dodatki PHP były przygotowane w paczkach danej dystrybucji i po pewnym czasie trzeba było pobierać kod źródłowy, skonfigurować i skompilować i tak. Dlaczego nie zrobić tego od razu? W tamtych czasach również kompilacja pomagała odpowiednio sprofilować PHP pod daną konfigurację (czy ktoś jeszcze korzysta z Gentoo?). Obecnie główna przewaga takie podejścia, to posiadanie kilku różnych instanacji PHP w różnych wersjach na jednej maszynie (bo mamy różne projekty, różnych klientów etc). Jak również można sprofilować PHP pod konkretną jedną aplikację (prof-gen & prof-use).

Ja nadal zawsze kompilują PHP, wtedy w przypadku dysków HDD mamy ciut mniejsze obciążenia i większą swobodę działania. Jeśli już wykonałeś poprzedni krok wystarczy pobrać kod źródłowy wybranej przez nas wersji PHP (np. 7.2.12). Jeśli nie chcecie za każdym razie przeklikiwać się przez stronę https://php.net/downloads.php możecie użyć prostego skrypciku:

#!/bin/bash

if [ $# -eq 0 ]; then
  echo "Syntax : $0 php_version"
  echo "Example: $0 7.0.2"
  exit 1
fi
VERSION=$1
SHORT=${VERSION%.*}
SHORT=${SHORT//./}
FILE="php-$VERSION.tar.gz"
URL="http://pl1.php.net/get/$FILE/from/this/mirror"

HTTP_CODE=`curl --silent --head --location --output /dev/null --write-out '%{http_code}' $URL`
if [ $HTTP_CODE == 404 ]
then
   echo "Cannot download php-$VERSION - not found."
   exit 1
fi

wget $URL -O $FILE

Wtedy gdy dostaniesz informację o nowej wersji wystarczy, że wydasz polecenie ./php_get 7.2.12. Jak już mamy paczkę .tar.gz na dysku musimy rozpakować źródła i w katalogu, który powstanie umieszczamy nasz przepis na kompilację. Jak taki przepis wygląda? Wszystko zależy, z czego Wasze aplikacje PHP korzystają, a może jest to serwer, gdzie serwujecie rózne aplikacje i wymagacie różnych bibliotek. Mój uniwersalny przepis, z którego korzystam to:

make distclean
./configure \
--enable-opcache \
--prefix /usr/local/php72 \
--enable-fpm \
--enable-cli \
--enable-inline-optimization \
--disable-rpath \
--disable-ipv6 \
--enable-mbstring \
--enable-mbregex \
--enable-zip \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-gettext \
--with-curl \
--with-zlib \
--with-zlib-dir=/usr \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-freetype-dir \
--enable-exif \
--enable-shmop \
--with-xsl=shared \
--enable-soap=shared \
--enable-sockets \
--enable-pcntl=shared \
--with-bz2 \
--with-tidy \
--with-pcre-dir \
--with-openssl \
--with-imap-ssl \
--with-pear \
--enable-pcntl \
--with-fpm-systemd
make -j2
make install

Czasami różni się w zależności od potrzeb. W dużym skrócie – sprzątamy po poprzedniej kompilacji, konfiguruejmy nasz przepis oraz puszczamy machinę w ruch. Opcja -j2 oznacza, że kompilacja wykona się na 2 jobach. Potrwa to dobrych kilka minut. I ostatecznie wszystko zainstaluje się zgodnie z przepisem, tj. w /usr/local/php72 (dzięki takiemu podejściu łatwo później posprzątać po poprzedniej wersji, np. php70).

Konfiguracja dla środowiska PHP jest czytana z lokalizacji /usr/local/php72/lib/php.ini (ja mam i tak w /etc/php72.ini, a we właściwym miejscu link symboliczny, ułatwia to tworzenie kopii zapasowych konfiguracj):

cp php-7.2.12/php.ini-production /etc/php72.ini
ln -s /etc/php72.ini /usr/local/php72/etc/php.ini
ln -s /usr/local/php72/etc/php.ini /usr/local/php72/lib/php.ini

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: matipl, dodany: 08.11.2018 13:54, tagi: php

Ekipie ZaufanaTrzeciaStrona udało się wszystko dograć i już 1 grudnia odbędzie się pierwsza edycja konferencji What The H@ck. Jest to jednodniowa konferencja z kilkoma równoległymi ścieżkami. Łącznie odbędzie się 67 wykładów z przeróżnych tematów (od bezpieczeństwa aplikacji bankowych po bezpieczeństwo Internetu Rzeczy). Spotkacie tutaj takie postacie jak Piotr Konieczny, Michał Sajdak, Paula Januszkiewicz czy Łukasz „honey” Jachowicz.

Wydaje mi się, że nie muszę Ciebie zachęcać, jeśli tylko trochę związany(a) jesteś z branżą IT i rzucisz okiem na agendę:

What The H@ck 2018 - agenda

W takim razie do zobaczenia w sobotę, 1 grudnia!

Zapisy: What The H@ck Czas: 1 grudnia 2018, 9:00-18:00 Miejsce: Koszykowa 75, Warszawa (PW, Wydział MiNI) Bilety: obecnie 199 PLN brutto

Artykuł What The H@ck – nowa konferencja już w grudniu! pochodzi z serwisu Mateusz matipl Kamiński.

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.