This document provides an overview of using Varnish to cache content and improve website performance. It discusses how Varnish works, integrating it with TYPO3, strategies for caching content like ESI and purging, and best practices for the Varnish configuration. It also describes how to get the MOC Varnish extension for TYPO3, which includes a sample Varnish configuration file.
10 Insightful Quotes On Designing A Better Customer ExperienceYuan Wang
油
The document discusses the importance of customer experience design and emphasizes the need for collaboration, diversity, and emotional engagement in crafting effective interactions. It outlines strategies for understanding user expectations, innovating through research, and creating memorable brand storytelling to foster customer loyalty. Key points include designing for context, consulting directly with customers, and measuring the right metrics for success.
The document explains the BEM (Block Element Modifier) naming convention for CSS and HTML classes, developed by Yandex. BEM helps create modular and reusable components by defining a clear structure for class names: blocks represent standalone entities, elements are parts of blocks, and modifiers adjust the appearance or behavior. It provides examples of how to implement BEM syntax in CSS and HTML with practical code snippets.
How to Build a Dynamic Social Media PlanPost Planner
油
This document outlines a comprehensive strategy for optimizing social media effectiveness, including conducting a social media audit, establishing clear goals, and selecting appropriate platforms. It emphasizes the importance of creating engaging content, utilizing data analytics, and developing a consistent content calendar to promote engagement and track ROI. Additionally, it offers tips on storytelling, using marketing tools, and adapting to audience needs to enhance overall social media presence.
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
油
The document discusses how UX and data storytelling can influence policy-making in the Philippines, highlighting the importance of design in processing and visualizing data. It includes case studies on road safety and budget tracking, emphasizing the need for user-centered design and effective communication of data. The key takeaway is that data visualization is not just about aesthetics but also about making information accessible and emotionally resonant.
The document discusses how personalization and dynamic content are becoming increasingly important on websites. It notes that 52% of marketers see content personalization as critical and 75% of consumers like it when brands personalize their content. However, personalization can create issues for search engine optimization as dynamic URLs and content are more difficult for search engines to index than static pages. The document provides tips for SEOs to help address these personalization and SEO challenges, such as using static URLs when possible and submitting accurate sitemaps.
This document summarizes a study of CEO succession events among the largest 100 U.S. corporations between 2005-2015. The study analyzed executives who were passed over for the CEO role ("succession losers") and their subsequent careers. It found that 74% of passed over executives left their companies, with 30% eventually becoming CEOs elsewhere. However, companies led by succession losers saw average stock price declines of 13% over 3 years, compared to gains for companies whose CEO selections remained unchanged. The findings suggest that boards generally identify the most qualified CEO candidates, though differences between internal and external hires complicate comparisons.
際際滷s fra kurset "Administrering af en_d!ng-hjemmeside"
Om kurset:
Kurset henvender sig til administratorer af en D!NG-hjemmeside. En administrator har fuld adgang til alle indstillinger i D!ng og har at g淡re med alt fra styring af brugere og tilladelser, installation og ops脱tning af ekstra funktionalitet p奪 sitet, kontakt med leverand淡rer, evt. fejlfinding p奪 hjemmesiden m.m.
Indhold:
En kort gennemgang af den administrative gr脱nseflade
Fejlfinding og indrapportering af bugs og fejl tilbage brug Lighthouse
Installation af udvidelsesmoduler fundet p奪 http://drupal.org og/eller http://github.com
Brugerroller og brugertilladelser
Tilf淡jelse af ekstra felter til en indholdstype
Oprettelse af et nyt View (views er f.eks. listen af arrangementer eller biblioteker der er mange muligheder for fremvisning af hjemmesidens indhold)
Oprettelse af en ny Panel-side (panels er f.eks. forsidens eller bibliotekssiders layout)
Brug af Features til at sikre egne indstillinger
Opgradering af D!ng eller Drupal
Hvordan laves backup alle filer samt et databasedump
Ops脱tning af Git og en konto p奪 Github
Arbejdsgangen i Git et godt v脱rkt淡j til at sikre og gemme hjemmesidens design og kode
Introduktion til drush Drupals kommando-linje
Opl脱gget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 26. maj 2009.
L脱s mere om interessegruppen p奪 http://www.infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htm
Onboarding - Konkrete opgaver til nyansatteJes Mandrup
油
Onboarding to a self-organized team is best done by ... working in the team as the rest of the members. But to ensure a fit it might be an idea to present some tasks to the new member
Tag trykket af dit (eksterne) API med Azure WebJobsChristian Dalager
油
En del almindelige websites har brug for at udstille enkle API'er til deres omverden. Det kan f.eks. v脱re leveringsnotifkationer fra email- eller SMS-services, der forventer at f奪 et hurtigt svar tilbage. Man kan imidlertid ikke kontrollere en ekstern service, og det betyder at der kan v脱re en risiko for at ens API en dag bliver flood'et af requests, som alle sammen vil have adgang til dine kritiske komponenter som f.eks. databasen og hvad man ellers har k淡rende af forretningssystemer. Christian Dalager vil i sessionen vise, hvordan man med et enkelt setup kan komme i gang med at throttle inbound integrationspunkter med Azure Websites, WebJobs og Queues.
際際滷s fra kurset "Administrering af en_d!ng-hjemmeside"
Om kurset:
Kurset henvender sig til administratorer af en D!NG-hjemmeside. En administrator har fuld adgang til alle indstillinger i D!ng og har at g淡re med alt fra styring af brugere og tilladelser, installation og ops脱tning af ekstra funktionalitet p奪 sitet, kontakt med leverand淡rer, evt. fejlfinding p奪 hjemmesiden m.m.
Indhold:
En kort gennemgang af den administrative gr脱nseflade
Fejlfinding og indrapportering af bugs og fejl tilbage brug Lighthouse
Installation af udvidelsesmoduler fundet p奪 http://drupal.org og/eller http://github.com
Brugerroller og brugertilladelser
Tilf淡jelse af ekstra felter til en indholdstype
Oprettelse af et nyt View (views er f.eks. listen af arrangementer eller biblioteker der er mange muligheder for fremvisning af hjemmesidens indhold)
Oprettelse af en ny Panel-side (panels er f.eks. forsidens eller bibliotekssiders layout)
Brug af Features til at sikre egne indstillinger
Opgradering af D!ng eller Drupal
Hvordan laves backup alle filer samt et databasedump
Ops脱tning af Git og en konto p奪 Github
Arbejdsgangen i Git et godt v脱rkt淡j til at sikre og gemme hjemmesidens design og kode
Introduktion til drush Drupals kommando-linje
Opl脱gget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 26. maj 2009.
L脱s mere om interessegruppen p奪 http://www.infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htm
Onboarding - Konkrete opgaver til nyansatteJes Mandrup
油
Onboarding to a self-organized team is best done by ... working in the team as the rest of the members. But to ensure a fit it might be an idea to present some tasks to the new member
Tag trykket af dit (eksterne) API med Azure WebJobsChristian Dalager
油
En del almindelige websites har brug for at udstille enkle API'er til deres omverden. Det kan f.eks. v脱re leveringsnotifkationer fra email- eller SMS-services, der forventer at f奪 et hurtigt svar tilbage. Man kan imidlertid ikke kontrollere en ekstern service, og det betyder at der kan v脱re en risiko for at ens API en dag bliver flood'et af requests, som alle sammen vil have adgang til dine kritiske komponenter som f.eks. databasen og hvad man ellers har k淡rende af forretningssystemer. Christian Dalager vil i sessionen vise, hvordan man med et enkelt setup kan komme i gang med at throttle inbound integrationspunkter med Azure Websites, WebJobs og Queues.
2. Agenda
Underliggende teknologier
Hands on: Start nyt 鍖ow projekt - Installation af
Flow
Generelt om OOP
Domain driven design og MVC og alt det andet
Buzz
Flere hands-on 淡velser
8. PHP Namespaces
Alle navne i denne 鍖l, er
nu inde i namespacet
ClioBeerController
Den fulde path er alts奪
ClioBeerControllerBeerController
N奪r jeg skriver Flow mener jeg i
virkeligheden TYPO3FlowAnnotations
N奪r jeg skriver Debugger, mener
jeg alts奪 den her Debugger
TYPO3FlowErrorDebugger
9. Doctrine
Flow bruger Doctrine2 som ORM (Object Relational
Mapper) til persistering
Bruger UUID som unikke record ID
Opdateret databaseskema ud fra PHP kode
Automatisk foreign-key i databasen for 淡get
databasekonsistens
Heavy brug af annoteringer! (Ligesom alt andet i
Flow)
15. Symphony
Hvorfor bruge et andet Framework til at bygge
Flow?
Udvalgte pakker
Yaml parser (symfony/yaml)
dom-crawler (symfony/dom-crawler)
console (symfony/console)
Ingen grund til at genop鍖nde den dybe tallerken
16. PSR-0 og Autoload
De鍖neret af PHP Framework Interoperatability
Group
PSR0 De鍖nerer autoload og navngivning
Et fuldt klassenavn skal have denne struktur: VendorNamespaceClassname
Et namespace skal have et top-level Vendor-pre鍖x samt vilk奪rligt antal
under-namespaces
17. PSR
PSR1: Basic coding standard
https://github.com/php-鍖g/鍖g-standards/blob/master/accepted/PSR-1-
basic-coding-standard.md
Best eller Good practice (En 鍖l, 辿n klasse, UTF8, UppperCamelCase etc)
PSR2: Codestyle standard
https://github.com/php-鍖g/鍖g-standards/blob/master/accepted/PSR-2-
coding-style-guide.md
Relativ kontroversiel standard. (Tabs vs. spaces, blanke linier, braces etc)
21. Boostrap 鍖ow installation
php composer.phar create-project --dev --keep-vcs
typo3/flow-base-distribution flow
Packagist.org package
Udviklingversioner
Oprethold reference til git
Dest. dir
22. Test
[revsbech@je-laptop:~/websites/clio/flow ./flow help
TYPO3 Flow 2.0 ("Development" context)
usage: ./flow <command identifier>
The following commands are currently available:
PACKAGE "TYPO3.FLOW":
-------------------------------------------------------------------------------
* flow:cache:flush Flush all caches
cache:warmup Warm up caches
configuration:show Show the active configuration
settings
configuration:validate Validate the given configuration
configuration:generateschema Generate a schema for the given
configuration or YAML file.
23. Database
mysql>CREATE database clio;
TYPO3:
Flow:
persistence:
# It is good practice to not specify user name and password of the database
# connection in this global Settings.yaml file. Rather specify them in the
# settings of the respective context (Production / Development ...).
backendOptions:
host: '127.0.0.1' # adjust to your database host
user: 'root'
dbname: 'clio'
password: MyPassword
Con鍖guration/Settings.yaml
Opret ny database
dobbelt space!!
Ignor辿r (for nu)
./flow doctrine:create
Opret n淡dvendige tabeller
24. Webadgang
Ops脱t apache til at pege p奪 Web folderen
Hvis i ser dette, er
alt i orden. Well
done!
25. Generelt om OOP, DDD,
MVC, TDD, AOP og alle
de andre 3 bogstavs
buzzwords
27. Objekt orienteret programmering
Indkapsling i Klasser og Objekter (instanser af
en klasse)
Nedarvning
Interfaces
class Lager extends Beer implements Drinkable, AlcoholicBeverage {
}
Lager is a Beer
De鍖nerer metoder som Lager
skal implementere
28. Public, private, protected, abstract
鍖nal?
Metoder og variable kan deklareres efter om man 淡nsker at
andre end en selv (private, protected) eller alle andre
(public) kan kalde metoden.
Det g淡r det markant nemmere n奪r man skal fejls淡ge at man
ved om andre end en selv kalder metoden
Det er god skik at holde variable protected og lavet set- og
getter
Abstrakte metoder, er metoder som kun har en de鍖nition,
og ikke nogen implementering. Metoden skal
implementeres i en klasse som arver. Klassen skal v脱re
deklareret abstrakt hvis den har mindst 辿n abstrakt metode
29. Domain Driven Design
Eric Evans
Byggesten
Model: Entitiet og Value objekter
Aggregater: Samlinger af objekter/modeller. Har 辿t indgangspunkt
(aggregate root)
Repository: Persistering af objekter
Services
Bounded contexts
30. MVC
M奪ske det mest brugte pattern inden for
webudvikling
Opdeling af kode i tre byggesten
Model (Dom脱nemodeller og Repositories)
Views (Pr脱sentation og pr脱sentationslogik)
Controller (Binder modellerne sammen med views)
31. TDD (Test driven development)
De鍖ner f淡rst dit outcome
Skriv unit/funktionelle teste
Programm辿r indtil dine tests fungerer
Refaktor辿r
32. Dependency injection
Ogs奪 kendt som The
hollywood principle:
Dont call us, we call
you.
ger Separation of
concerns
G淡r test lettere $this->re鍖ectionService
vil nu v脱re tilg脱ngelig
33. AOP: Aspect oriented programming
Bruges til s奪kaldte Cross cutting concerns
Klassiske eksempler er
Logging
Sikkerhed
Giver en m奪de at v脱ve noget kode ind i alle eller
udvalgte funktioner.
Advice, Pointcut, Aspect
37. Kontekst
Forskellige kontekster
Development
Production
Testing
FLOW_CONTEXT=Production ./flow help
<VirtualHost *:80>
ServerAdmin janerik@moc.net
ServerName old.new.moc.net
DocumentRoot /MYSITEDIR/flow/Web
SetEnv FLOW_CONTEXT Production
Kommandolinie
Web
38. Pakker
./鍖ow package:list
Ensartet 鍖lstruktur
Installeres med
composer
Kan kickstartes med
./鍖ow
kicstart:package
46. F脱rdig pakke
Kan hentes herfra:
https://github.com/revsbech/Clio.Beer
47. F淡rste opgave
Opret ny pakke indeholdende simpel Controller
som outputter Hello world
Opret ekstra action og link mellem dem
Implementer en lidt mere l脱kker skabelon (V脱lg
en eller anden standard)
Bonus opgave: Opret korrekt routes, s奪 den nye
pakke er default:
http://docs.typo3.org/鍖ow/
TYPO3FlowDocumentation/stable/
48. ./flow kickstart:package Clio.Beer
Opret ny Pakke
Rediger controller og view
Hent std skabelon og rediger layout
Resources/Templates/Private/Templates/Standard/Index.html
Classes/Clio/Beer/Controller/StandardController
Resources/Templates/Private/Layout/Default.html
49. Anden opgave
Kickstart ny model: Beer samt tilh淡rende BeerRepository
(we like!)
Tilf淡j ny BeerController
Lav liste over alle 淡l
Opret ny 淡l formular
Bonus opgave1 : Lav lidt p脱nere validering af formularer
http://docs.typo3.org/鍖ow/TYPO3FlowDocumentation/
stable/TheDe鍖nitiveGuide/PartII/Validation.html
Bonus opgave 2: Implementer rediger formular
50. Tredje opgave
Opret Brewery dom脱nemodel.
Tilknyt en mange-til-en relation mellem 淡l og
bryggeri
Opret en CommandController til at oprette
bryggerier
Udvide redigeringsformular s奪 man kan v脱lge
bryggeri ved oprettelse
Bonus: Lav mulighed for at se alle 淡l til et bryggeri
51. Fjerde opgave
Opret loginformular
Implementer autenti鍖kation samt mulighed for at
kunne redigere/oprette 淡l hvis man er logget ind
http://docs.typo3.org/鍖ow/
TYPO3FlowDocumentation/stable/
TheDe鍖nitiveGuide/PartIII/Security.html