Nowe, potężne narzędzia do tworzenia stron internetowych pojawiają się niemal codziennie. My w zespole postanowiliśmy jednak cofnąć się o krok i postawić na to co proste, ale użyteczne. Efekt? Korzyści dla zespołu i dla klienta. Podczas prezentacji opowiem o tym, co zyskaliśmy oraz wprowadzę słuchaczy w świat Hugo – nowoczesnego generatora stron statycznych.
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaMarcin Gajda
Narzędzia takie jak Grunt i Gulp są coraz częściej wypierane z użycia przez swojego następce, webpacka. Wynika to z prostego powodu – w kwestii pakowania assetów rozwiązuje on domyślnie wiele problemów, z którymi tamte narzędzia radzą sobie gorzej. Ta prezentacja omawia te zagadnienia i pokazuje jak skonfigurować webpacka od zera.
O tworzeniu rozwiązań mobilnych z punktu widzenia front-end dewelopera. Omówienie istniejących rozwiązań oraz głębsza analiza biblioteki NativeScript wraz z demem.
Demo #1: https://github.com/pawelkondraciuk/nativescript-hello-world-demo-1
Demo #2: https://github.com/pawelkondraciuk/sample-groceries-demo-2
Prezentacja będzie zawierała luźne anegdoty i doświadczenia z używania kontenerów dockera w produkcji, również do hostowania aplikacji PHP. Sposoby budowania kontenerów, typowe problemy deploymentu.
Franciszek Krasowski: Zastanawialiście się kiedyś nad tym, czym jest PHP-PM? Jak działa? Jak wypada w porównaniu do innych popularnych rozwiązań? Czy jest wystarczająco stabilny? Franciszek Krasowski odpowie na wszystkie te pytania (a także na te, których jeszcze nie zadaliście).
Nowe, potężne narzędzia do tworzenia stron internetowych pojawiają się niemal codziennie. My w zespole postanowiliśmy jednak cofnąć się o krok i postawić na to co proste, ale użyteczne. Efekt? Korzyści dla zespołu i dla klienta. Podczas prezentacji opowiem o tym, co zyskaliśmy oraz wprowadzę słuchaczy w świat Hugo – nowoczesnego generatora stron statycznych.
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótkaMarcin Gajda
Narzędzia takie jak Grunt i Gulp są coraz częściej wypierane z użycia przez swojego następce, webpacka. Wynika to z prostego powodu – w kwestii pakowania assetów rozwiązuje on domyślnie wiele problemów, z którymi tamte narzędzia radzą sobie gorzej. Ta prezentacja omawia te zagadnienia i pokazuje jak skonfigurować webpacka od zera.
O tworzeniu rozwiązań mobilnych z punktu widzenia front-end dewelopera. Omówienie istniejących rozwiązań oraz głębsza analiza biblioteki NativeScript wraz z demem.
Demo #1: https://github.com/pawelkondraciuk/nativescript-hello-world-demo-1
Demo #2: https://github.com/pawelkondraciuk/sample-groceries-demo-2
Prezentacja będzie zawierała luźne anegdoty i doświadczenia z używania kontenerów dockera w produkcji, również do hostowania aplikacji PHP. Sposoby budowania kontenerów, typowe problemy deploymentu.
Franciszek Krasowski: Zastanawialiście się kiedyś nad tym, czym jest PHP-PM? Jak działa? Jak wypada w porównaniu do innych popularnych rozwiązań? Czy jest wystarczająco stabilny? Franciszek Krasowski odpowie na wszystkie te pytania (a także na te, których jeszcze nie zadaliście).
VIII Targi eHandlu: Tomasz Sobol, Beyond.pl "Efekt Wykop - byłem, przeżyłem, ...ecommerce poland expo
Klęska urodzaju to koszmar każdego sprzedawcy. Przygotowałeś rewelacyjną ofertę, doskonale wyczułeś potrzeby rynku, Twoja kampania marketingowa jest bardzo efektywna, telefon PR ninja przegrzewa się od propozycji a komunikat reklamowy stał się viralem. Może nawet usiadłeś na kanapie z Wellman i Prokopem a rzesze wykopowiczów podają sobie Twoje linki. Fala internautów zalewą Twoją witrynę ... i odbija się od komunikatu "strona chwilowo niedostępna". Jak tego uniknąć?
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Polcode
autor: Łukasz Adamczewski, Starszy Programista PHP w Polcode
@lukeadamczewski
Prezentacja 'Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websocketów' została wygłoszona 17 września 2015 roku podczas 'PHPers Łódź #1', pierwszego spotkania programistów PHP w Łodzi. Firma Polcode miała przyjemność być jednym ze sponsorów tego wydarzenia.
Monitoring systemu. Dlaczego mój kardiolog jest bogatym człowiekiem?The Software House
Wojciech Wójcik: W temacie monitorowania systemów IT powiedziano już oceany słów na niezliczonych prezentacjach. Przedstawię wam jednak opowieść o mitologicznym Prometheuszu. Opowieść, która mogłaby konkurować z Grą o tron, a Koronę Królów zjadłaby na przystawkę. W jej trakcie zdradzę wam sekrety monitorowania Kubernetes, ale i nie tylko. Miejcie jednak na uwadze, że nie wszystkie potyczki się wygrywa – dzięki czemu zaszczycę was też możliwością wysłuchania ciekawych historii o fuckupach.
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
Niezależnie od tego, czy jesteście developerami, sysadminami, czy też DevOps Engineers – prawie na pewno mieliście doświadczenie z webowymi panelami dostawców usług infrastrukturalnych takich jak AWS, GCP czy też OVH. Z poziomu tych paneli da się “wyklikać” wszystko, czego potrzeba, ale… czy aby na pewno tędy droga? Środowiskiem bardziej naturalnym dla każdego inżyniera jest wszakże edytor tekstu (czy też IDE) oraz różnorakie polecenia wydawane komputerowi w formie skryptów. Czemu by więc z tego nie skorzystać? Jeśli od klikania bez możliwości pomyłki boli Was ręka, zainwestuj w podkładkę pod mysz… ale przede wszystkim wpadnij na prelekcję Piotra, na której to opowie o założeniach podejścia IaC, jego zaletach oraz przedstawi najpopularniejsze narzędzia.
LocalStack to framework udostępniający łatwe w użyciu mocki usług stosu AWS. Podczas prezentacji Maciej skorzystał z serwisu zbudowanego z użyciem serverlessowego Boilerplate autorstwa The Software House oraz skorzystał z takich usług AWS jak API Gateway, DynamoDB, Lambda, StepFunctions czy SQS. Następnie omówił podejście do testowania rozwiązania. Dzięki prezentacji możecie poznać wady i zalety LocalStack. A na koniec Maciej pokazuje przepływ testowy w GitHub Actions, który zwiększy pewność przyszłych zmian.
Docker jest wspaniałą technologią. Przy pomocy Dockera w prosty sposób możemy rozwiązać jeden problem, a na jego miejsce stworzyć dwa inne, nowe, bardziej skomplikowane... Co jest powodem takiego stanu rzeczy? Czy przyczyną jest architektura Dockera? Brak zrozumienia? A może coś więcej?
Warsztaty: Podstawy PHP
Część 2: Omówienie składni języka PHP (wersja 7)
Prowadzący: Krzysztof Ożóg, CTO Codesushi
Omówienie składni języka PHP (wersja 7):
1) Instalacja interpretera języka PHP
2) Deklaracja zmiennych i stałych
3) Operatory i ich priorytet
4) Struktury kontrolne
5) Definiowanie funkcji
6) Alternatywna składnia, czyli PHP jako system szablonów
7) Model obiektowy
a) Klasy
b) interface -y
c) Dziedziczenie
d) Magic methods
e) Autoloader
f) Obsługa błędów i wyjątków
g) PDO - interface komunikacji z bazami danych
h) Omówienie biblioteki standardowej PHP
i) Omówienie rozszerzenia SPL
j) Standardy PSR
k) Standardy kodowania PSR-1 i PSR-2
l) Composer, standardy PSR-0 i PSR-4 i Packagist
Confitura 2018 - Sekretne życie jobów SparkowychMarcin Jasiński
Apache Spark to coraz bardziej popularny framework do tworzenia przetwarzań Big Data. Gdy wywalają się executory, zwiększamy ilość pamięci. Gdy job wykonuje się zbyt wolno, zwiększamy ilość executorów. Zwiększenie ilości zasobów to żadna optymalizacja i z czasem nasz klaster Hadoop jest w pełni utylizowany i nie można uruchamiać kolejnych przetwarzań. A przecież da się inaczej! Klaster Hadoop w Allegro to setki jobów uruchomionych jednocześnie, z czego większość to joby Sparkowe. Opowiemy historię kilku z nich i przemiany, które przeszły. W tym najbardziej spektakularną: od 2500 do 240GB RAM.
Jesteś frontendowcem i masz zamiar pisać w Nodzie? A może wcześniej pisałeś w PHP? Ta prezentacja pomoże ci zrozumieć podstawowe reguły rządzące światem Node'a, jak i nadrobić zaległości. Przygotuj się na pozytywnego kopniaka!
Przenieś się do kontenera, czyli korzyści z Docker i Docker ComposeMariusz Bąk
Docker i Docker Compose to popularne wśród deweloperów narzędzia do konteneryzacji i orkiestracji kontenerów, które wypierają wcześniej stosowaną wirtualizację. Dzięki nim możemy opisywać infrastrukturę za pomocą kodu, utrzymywać jej spójność w ramach zespołu deweloperskiego oraz wersjonować ją. Znacznie ułatwia to rozwijanie złożonych z wielu usług aplikacji.
Prezentacja zawiera krótkie wprowadzenie do tych narzędzi oraz pokazuje kilka użytecznych i ułatwiających pracę trików. Prezentuje również stworzone przeze mnie open-source'owe narzędzie Feater, służące do dynamicznego tworzenia izolowanych środowisk testowych i demonstracyjnych. Dzięki wykorzystaniu przez nie konteneryzacji, można je szybko wdrożyć w typowym wykorzystującym Docker Compose projekcie
2. Co to jest Torquebox ?
● Torquebox to zmodyfikowany JBoss AS 7,
który integruje środowisko JEE ze
środowiskiem Rubiego.
● Dostarcza interfejsy Ruby do usług
dostarczanych przez server aplikacji
● pozwala uruchamiać Jave i Ruby w tym
samym kontenerze aplikacji
● umożliwia szybkie i proste sklastrowanie
aplikacji
3. JRuby
• połączenie Ruby i JVM
• Java i Ruby mogą się integrować
require 'java'
java.lang.System.setProperty('key','value')
java_import java.util.HashMap
hashmap = HashMap.new
hashmap['key'] = 'value'
9. Workery
class RawOfferMessageProcessor < TorqueBox::Messaging::MessageProcessor
include TorqueBox::Injectors
include AirbrakeReportable
def on_message(body)
out_msg = OfferChecker.new.check body
if out_msg
queue = inject('/queues/offer')
queue.publish(out_msg)
end
end
def on_error(error)
notify_airbrake(error, {parameters: {message: @message.decode}})
end
end
12. Backgroundable
sprawdz stan zadania nieblokującego
something = Something.new
future = something.background.foo
future.started?
future.complete?
future.error?
future.result
13. Backgroundable
sprawdz stan zadania nieblokującego
class Something
def foo
...
count+=1
future.status=count
...
end something = Something.new
end future = something.background.foo
future.status_changed?
future.status #=>42
19. Resource Injection
metody
inject_cdi(...)
Injects CDI resources by literal class name.
inject_queue(...)
Injects a messaging queue by literal name.
inject_topic(...)
Injects a messaging topic by literal name.
inject_naming(...)
Injects JNDI resources by literal name.
inject_msc(...)
Injects MSC services by literal name.
inject_service(...)
Injects a TorqueBox application service component
22. Cache
bezpośredni dostep do własnej przestrzeni
include ActiveSupport::Cache
my_cache = TorqueBoxStore.new(:name=>'MyCache', :
mode=>:replicated, :sync=>true)
my_cache.put('klucz','wartość')
my_cache.put_if_absent('klucz','inna wartość')
my_cache.replace('klucz','jeszcze inna wartość')
Torquebox.transaction do
my_cache.remove( 'klucz' )
end
my_cache.transaction do
my_cache.put_if_absent('klucz','zupełnie inna wartość')
end
23. Cache
tryby pracy
Local
Domyślny, wszystko jest trzymane w ramach pojedyńczego node'a, odpowiednik
trzymania w pamięci ale pozwala na zapewnienie persystencji, daje transakcje
Invalidation
Domyślny w trybie clustra, nie wysyla zmian do innych node'ów tylko komunikaty o
przedawnieniu klucza. Dobrze sprawuje sie do cacheowania widoków i innych
szybkich do odtworzenia wartości
Replicated
Kopiuje zawartość klucza do kazdego node'a, odczyty będą wykonywane już
lokalnie
Distributed
czyli sharding + replikacja, memcache, redis schowajcie sie :-P
24. Cache noSQL data mapper
require 'dm-core'
require 'datamapper/dm-infinispan-adapter'
class Beer
include DataMapper::Resource
property :id, Serial
property :name, String
property :desc, Text
property :likes, Integer
property :created_at, DateTime
end
DataMapper.setup(:default, :adapter=>'infinispan', :persist=>'db/infinispan')
DataMapper::Model.raise_on_save_failure = true
DataMapper.finalize
Beer.create(:name=>'Catawba White Zombie Ale',
:description=>'A Belgium white ale made with coriander, orange peel, and wheat.
This beer is refreshing and tasty with a sweet and shimmering frothy head.',
:created_at=>Time.now)
beers = Beer.all(:desc.like => "%belgium%", :name.like => "%ale%")