Mine erfaringer med Laravel etter å ha lansert første (men ikke siste...) løsning på Laravel. Og noen erfaringer med design og GUI, etter å ha jobbet 2 år i et webdesign byrå.
Frokostseminar mai 2010 solr open source cominvent asCominvent AS
Slides fra frokostseminar om Open Souce søk med Apache Lucene/Solr i Oslo mai 2010. Dette var et arrangement av Cominvent AS og FindWise AB.
Presentation is in Norwegian language
Mine erfaringer med Laravel etter å ha lansert første (men ikke siste...) løsning på Laravel. Og noen erfaringer med design og GUI, etter å ha jobbet 2 år i et webdesign byrå.
Frokostseminar mai 2010 solr open source cominvent asCominvent AS
Slides fra frokostseminar om Open Souce søk med Apache Lucene/Solr i Oslo mai 2010. Dette var et arrangement av Cominvent AS og FindWise AB.
Presentation is in Norwegian language
Hvis en skal lage løsninger hvor mange delsystemer skal snakke sammen, blir det ofte mye "plumbing code" for å få demonstrert noe, og det tar tid å lage. Selve logikken blir ofte liten i forhold. Node-RED er et Open Source node.js-basert klikk-og-pek verktøy som lar deg koble sammen en mengde systemer (med Twitter, mail, http, websockets, rest, mqtt, etc.) og slå opp i databaser, sjekke filer, etc. Du kan derfor produsere prototyper og iterere sammen med kunden i rekordfart.
Hvis en skal lage løsninger hvor mange delsystemer skal snakke sammen, blir det ofte mye "plumbing code" for å få demonstrert noe, og det tar tid å lage. Selve logikken blir ofte liten i forhold. Node-RED er et Open Source node.js-basert klikk-og-pek verktøy som lar deg koble sammen en mengde systemer (med Twitter, mail, http, websockets, rest, mqtt, etc.) og slå opp i databaser, sjekke filer, etc. Du kan derfor produsere prototyper og iterere sammen med kunden i rekordfart.
The document discusses various ways to configure .htaccess files to modify Apache server behavior. Some examples covered include:
1. Using ErrorDocument directives to customize error pages for different HTTP status codes like 400, 401, 403, 404, and 500.
2. Authentication and authorization using Auth directives like AuthUserFile and AuthGroupFile to password protect directories.
3. Rewrite rules to redirect requests, rewrite URLs, and route requests through index.php for an MVC framework.
4. Common flags used in rewrite rules like L, QSA, and R to control matching and redirection behavior.
1. G L I M T F R A P H P U K
C S S F L E X B O X
S M O K E T E S T S
M E E T U P # 1 6
2.
3. • Forrige top 10 liste er fra 2013, men nå har det
kommet ut en release candidate for 2017, last ned PDF
her:
https://github.com/OWASP/Top10/raw/master/2017/
OWASP%20Top%2010%20-%202017%20RC1-
English.pdf
4.
5. N Y E V E R S J O N E R
• PHP 7.1.4 og 7.0.18 kom ut 13. april (bugfixes)
• Symfony 3.3, med mange forbedringer og forenklinger
• Laravel 5.5 skal komme i juli, og enn så lenge kan vi
kose oss med mindre patcher (v5.4.19 kom ut i går)
7. H VA B L E D E T S N A K K E T O M I L O N D O N ?
Table 1
Hva Antall
Testing 7
Framework 4
Availability 3
Cloud 3
Sikkerhet 3
Community 2
Div 13
8. H VA J E G S Y N E S VA R M E S T
I N T E R E S S A N T O G R E L E VA N T
• Progressiv web apps
• Backup package for Laravel
• Smoketests
• Codereview
• Websockets
9. P R O G R E S S I V W E B A P P S ( P WA )
• Site is served over HTTPS
• Pages are responsive on tablets & mobile devices
• Metadata provided for Add to Home screen
• The start URL (at least) loads while offline
• Site works cross-browser
• Page transitions don't feel like they block on the network
• Each page has a URL
https://developers.google.com/web/progressive-web-apps/checklist
https://developers.google.com/web/tools/lighthouse/
10. M E TA D ATA P R O V I D E D F O R A D D T O
H O M E S C R E E N ( M A N I F E S T. J S O N )
• Minimum: name, short_name, start_url, icons
• Bruce Lawson (HTML5 evangelist, som jobbet i Opera)
har lagt ut en generator:
https://brucelawson.github.io/manifest/
• Add to homescreen == No browser UI :-)
11. I K K E B A R E K U LT, M E N B R A F O R
B U S I N E S S !
• https://developers.google.com/web/showcase/2016/
alibaba
• 76% higher conversions across browsers
• 14% more monthly active users on iOS; 30% on
Android
• 4X higher interaction rate from Add to Homescreen
12. R E S P O N S E T I M E S :
T H E 3 I M P O R TA N T L I M I T S
• 0.1 second - instantaneous
• 1 second - show an indicator
• 10 seconds - show progress
13. P WA - P U S H N O T I F I C AT I O N S
• En viktig fordel for native apps, er push notifications
• Det kan man også oppnå i en web applikasjon :-)
• https://developers.google.com/web/showcase/2016/
carnival
• 24% opt-in to push notifications (16% on desktop,
32% on mobile)
• 42% open rate
15. B A C K U P S M E D L A R AV E L PA C K A G E
• https://docs.spatie.be/laravel-backup
• Freek snakket mye om backup rutiner
• hvor ofte?
• backup av hva?
• hvor skal backup lagres?
16. L A R AV E L B A C K U P
• Backup files and database to one or more filesystems
• Cleanup old backups
• Sending notification
• Easily installed into any Laravel application
• Man kan sette opp en liten Laravel applikasjon med denne
backup-modulen for å ta backup av en annen
applikasjon :-)
17.
18. S M O K E T E S T S
• Sebastion Thoß som holdt foredraget tilbød meg en
jobb :-)
• Jeg hadde en lengre prat med han, og han var
kjempeinteressant person. Kartmacherei, der han
jobber, de har besøk av thePHP.cc (en av de 3 er
PHPunit skaperen Sebastian Bergmann) en gang i
måneden for å se på optimalisering osv!
• Hans smoktest kode kan man laste ned her:
https://github.com/DjThossi/smoke-testing-php
19. In computer programming and software testing, smoke
testing is preliminary testing to reveal simple failures
severe enough to reject a prospective software release.
Source: https://en.wikipedia.org/wiki/Smoke_testing
20. S M O K E T E S T S S H O U L D . . .
• ... be simple
• ... be fast
• ... test pages with optional parameters too
• ... cover at least all URLs in google index
• ... use a manual maintained list of URLs
21. W H AT S H O U L D S M O K E T E S T S
VA L I D AT E ?
• Status code
• Time to first byte
• If body is provided
• Correct server
22. S M O K E T E S T S A R E N O T A C C E P TA N C E
T E S T S
23. S M O K E T E S T S C O N C L U S I O N
• Write tests
• Get 100% coverage
• SmokeTest your Website
• Only activate server if it didn’t start smoking
24. C O D E R E V I E W S
• Hannes Van De Vreken, developer relations i
madewithlove - it stort firma i Belgia.
• Hannes var en av de som ble litt kjent med :-)
• Code style skal ikke være et issue, det skal håndteres
ved at alle bruke samme code style (f.eks. PSR-2), når
man programmerer
25.
26. W H Y ?
• Submitter kan lære av feedback, og utvikle seg som en
programmerer
• Reviewer lærer også (på samme måte som en mentor
lærer av sin student)
• Management - utviklererne blir bedre, kjennskap til
features blir fordelt (mindre sårbarhet), og
koden/produktet blir bedre
27. H VA S K A L S U B M I T T E R G J Ø R E ?
• Sette seg nøye inn i hva som skal gjøres, før
programmering
• Skriv tester
• Hver endring bør være en commit, med en egen
kommentar. Det gjør det lettere å gjøre code review
etterpå.
• Opprett en pull request for ny kode, som code
reviewer skal se på.
28. H VA S K A L R E V I E W E R G J Ø R E ?
• Ikke kommenter bagateller i koden, dersom det er ok
og lesbar kode, så er det greit.
• Se på oppgaven, og sjekk at koden gjør det den skal
• Se på design patterns, navn på variabler og metoder
• Er koden lesbar? Er koden unødvendig komplisert/
kreativ?
29. H VA S K A L R E V I E W E R G J Ø R E ?
• Dersom noe er ugreit, så send tilbake med et
spørsmål. Husk å formuler deg på en grei måte, unngå
unødvendig kjipe situasjoner. Gi tilbakemeldinger i
form av spørsmål eller forslag (suggestive language).
• “Shit sandwich”: begynn med noe hyggelig, så
være tydelig med feedback, så avslutt med noe
hyggelig/oppmuntrende.
• Dersom ok, gi oppmuntrende kommentarer,
thumbs up!
30. T I P S F O R E N K L E R E C O D E R E V I E W
• unngå phpdoc_params, align_double_arrow og
align_equals
dette er formatering som ser pen ut, men skaper
unødvendig mye diff`er når man endrer koden
etterpå…
• alltid ha curly brackets, fordi da er det lett å se diff når
man senere vil legge til en ekstra linje i if-blokken
31. W E B S O C K E T S
• James Mallison jobber i Trivago
• Jeg fikk ikke tak i alt han sa, men han delte sin vandring fram
mot målet, og man fikk noen gode tips til tools og teknikker
(der finnes så mange alternativer og muligheter…)
• Noen relevante linker:
• http://reactphp.org/
• http://amphp.org/
• http://wamp-proto.org/
32. K O R T F O R TA LT
• Browser sends ws:// or wss://
• Server responds with HTTP/1.1 Switching Protocols
• Open and persistent connection
• Connection can be closed by either server or client at any
time.
35. W H AT I L E A R N E D
• Using an event loop != non-blocking or asynchronous
• Easiest way to not block, use threads, processes or an external library
• All connections between client / ws server over SSH with TOR
• Could accomplish with NodeJS (but didn’t want to sell my soul)
• Could have just made RPC calls to the server anyway instead of cmd-
line (I found this out right at the end of it all)
• Didn’t have to broadcast on a $topic, as $connection had methods of
sending data to specific connections
36. Y O U R C H O I C E S
• Event loops and reactors in PHP: React, amphp
• Websocket server-side libraries: ratchet, php-
websockets
• WAMP-specced client-side libraries: Autobahn.js,
AngularWAMP, Minion
• Event-loop underlying libs: LibEv, LibEvent, LibUV
37. F L E X B O X , I N T R O V I D E O AV L A R A C A S T S
- J E F F R E Y WAY
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/1
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/2
• https://laracasts.com/series/learn-flexbox-through-
examples/episodes/8
38. S M O K E T E S T - D E M O
• Sebastion har lagt ut kode som vi skal prøve ut
sammen:
https://github.com/DjThossi/smoke-testing-php