Following some notes about my the last php usergroup meetup.
By Judith Andresen
- what is the leadtime?
- time between adding the ticket and releasing it as a feature
- what is a cycletime?
- time between someone has an idea and releaseing it as a feature
- we are currently in a time of digital transformation to the "first mover"
- first idea try/test is the one who owns the bigges marked share
- try to not be perfect
- remove bottlenecks
- try to scale vertical (microservice, duplicated data)
- one team and service per business value/topic
- search (including frontend, backend, customer data etc.)
- product page
- "community of practice" is a team (per vertical cut/team) that try
- to keep the big architecture picture in mind
- to share knowledge, approach and libraries
- try to add a decision-maker into the team (extend the team in the value chain)
- try to bring people together, also on an emotional level (increase the "we" feeling)
- you can argue always with a decreased leadtime / small time to market
- typical "facts" against
- we have never done that this way
- my discipline is better, information silos, no talk between departments (typically between 20 and 80 peoples)
- there is no "we"
- talk to each other
- major goal: deliver fast
- create room for improvment or options
Following some notes about my the last php usergroup meetup.
By Sebastian Heuer
- docker is not one tool but a whole ecosystem
- machine (provisioning)
- swarm (clustering and container scheduling)
- compose (multi container application)
- registry (image distribution)
- engine (the container)
- ktematic (gui)
- pretty small compared to virtual box/full virtual machines
- updating means, building a new container
- theoretically, you can use all the images from the hub
- always ask yourself if you want to use them in production
- are they maintained
- how secure are they
- docker compose
- builds and pulls images
- runs containers
- enables networking between containers
- aggregates STDOUT and STDERR output
RUN docker-php-ext-install pdo pdo_mysql
COPY php/php.ini /usr/local/etc/php/
# copy the content of the source code into the image
# you can ship this code version now
COPY . /srv/meetup-service
# the date in the container is not persistent
# if ypu change something in it, it will bill lost afterwards
build: ./nginx #path to the docker file and configuration etc
- "80:80" #from port 80 to port 80
build: ./meetup-service #your project
- ./meetup-service:/srv/meetup-service #mounting local source code into the container
image: mysql:5.7 #no build path, instead an image is used
Social Human Architecture for Beginners
By Sebastian Schürmann (@sschuermann) (scrum master)
Works at mytaxi.de
- introversion vs extroversion (thinking is internal or externalized)
- nobody is one at all (just introvert for thinking or feeling)
- talk to you team about it (try to express everybody on a scale to get better understanding)
- take a look to "Maslows hierarchy of needs"
- self actualization
- try to create your own needs of hierarchy
- use "non-violent communication" (Marshall Rosenberg)
- observation (just the facts)
- feelings (just feeling good or bad won't cut it, try to express yourself)
- needs (we all have them, feeling bad? need is not fulfilled)
- honest request
- psychology of programming by Gerald Weinberg
- egoless programming
- stages of group development
- storming [...]
- engagement can be reached by
- let people get into the flow state
- try a fed-ex day (people can do what they want)
The Flip Side of Dependency Injection
- do not add to much dependecies (thing is doing to much)
- do not hide dependencies by using a container (it's like throwing in "the config")
- all dependencies must be in code
- separate object creation from usage
- there must be the ability to choose the actual implementation on runtime
How to Get There
- use a factory with explicite API (instead of "get('Foo')", do "getFoo()")
- avoid injecting factories, try to use locators (locators are returning "FooInterface" and using factories for instance creation)
link to meetup event.
AwareInterface By Stev Leibelt
- reminder of dependency injection
- increases the readability of a class structure
- defined way of inject object/typ
- interface injection could lead to a project based rule to distinguish between mandatory and optional dependencies
- slides available hear.
Logstash and Graylog2 by Alexander Bernhardt
Simple log all.
questions to the log
- what happens on the other server?
- what happens when and on what circumstance?
- what are you logging?
how to solve this?
By using Logstash, Redis and ElasicSearch, aggregate all and push all to a graylog2.
- graylog can do some kind of monitoring, known as streams.
- you can add a alert method to each stream.
- nagios can listen to a graylog stream.
- could not replace statsd or graphite
Talk And Call For PHPUGHH Website By Stephan Vock And Ole Michaelis
- two Pages for one user group, which one to choose?
- the usergroup decides to use the new page.
- you need to have installed jekyll, rake or use the vagrant box
- directory structure
- each speaker should pull his own talk below "talks"
How To Contribute
- fork repository
- git checkout -b feature/foo
- do the changes
- git commit
- pull request to the main repository
- github.io builds new page on its own
- git remote add upstream [email protected]:phpughh/phpughh.github.com
- git fetch upstream
- git merge upstream/master
- git push
- issues are available
- enhancement issues is the roadmap
- open issues if needed
- links available as ticket
- take a look to the bephpug (github)
Place: Mindsworks - Jarrestraße 42a, Hamburg
new php usergroup page by Ole Michaelis
Uses "github pages" and "jykil",
Take a look on github.
how to defeat stage fright by Heiko Harthun
Heiko provides courses for developers to presentate themself as also the product on conventions/trade shows/exhibitions.
He helps if the communication between developers and management (e.g. in the scrum retrospective) is not working anymore.
Only thing that helps against stage fright is moving around. It is also the only thing that helps effective.
You should eat enough before you are going to present something. Try to eat energy rich things like nuts, bread, less sugar, things that contains L-Tyrosin and L-Tryptophan.
Autogenic training or meditation can help but they are helping after you have practised them for a long time (six months or more).
Also going to sport (more the once per month ) is helping to keep the level of adrenalin low.
Try to create a solution/fallback for each problem that can occur. Things that can occur are "Questions inbetween", "fear for own existence", "nemesis in the crowd", "lose of the face", "blind spot", "blackout", "lose the thread" or "uninteded lauchter".
The major answer is "what do i fear" and "why do i care to come into this situation".
Try to have a fallback also for general problems (hardware is missing, hardware breaks down etc.).
A solution can be, to listen on favorite music right before you start your presentation.
stryer - biochemie
daniel pink was sie wirklich motiviert
pruefungsangst - fortschritte in der psychotherapie
Compare notes about PHP UnitTest Workshop by Agata Raap and Frank Sons
Introduce unittesting in already existing and complicate to test source code is hard.
Try to do a workshop by using already existing code to introduce into the topic "unittest".
First write a unittest that covers know behaviors and after that, refactor the code.
How can we test old code (with dependencies, strong coupling)?
Keep current methods and exclude them into new methods. This new methods are testable by dependency injections or something similar.
Always start and demonstrate unittest with simple examples.
best practice (ask round)
Getter setter testing?
Code coverage - what does is tell?
Is static code untestable?
Should you test controllers?
This notes are a little bit late (yes i know ) but free time is something that it is currently a kind of unreachable wish.
Place: Bigpoint - Drehbahn 48, 20354 Hamburg
new website by Ole Michaelis
Contribute if you find bugs or want to improve work.
Slides are available as soon as possible.
Old site still available. It is currently planed to move/integrate the old mailinglist.
video conference by Seemant Kulleen about "Emotional Decisions"
Emotions are most binary today (like or not).
We prefer products with higher ratings and vice versa.
Code can create emotions also (good/great code or software) -> as developer, you are creating realities.
Why not make this reality an experiences instead?
When you create a high enough experience, you create a loyal user (loyalty like stickiness).
Users reacting emotional by adding a thump, a comment etc.
The more the developer is passionated, the more passionated the users can be -> try to do what you love .
-> create things you belive
-> create things you belive in
You have to understand how and why you react to things, you are getting closer to your passion.
If you know why you are liking and doing things, you should focus on doing things thinks.
And like in general, you have to share your passion and get shared passion,
how to build up a datacenter by Rene Sasse (iphh.net)
Take a look to the "webmontag" (xing group, twitter).
More current -> bigger air condition -> more climate cabinets -> less free space.
Looks like the guys from iphh.net are pro's. If you are not believe in, watch the linked video.