Created
June 4, 2012 11:04
-
-
Save peinwag/2867750 to your computer and use it in GitHub Desktop.
ipc notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
----------------------------- | |
Day 1 04.06.2012 | |
----------------------------- | |
Profiling PHP Applications | |
----------------------------- | |
- don't do micro optimizing (echo is faster thant print etc..) | |
- find out what is slow | |
- benchmarking with siege (http://www.joedog.org/siege/index.php) | |
- vmstat (http://linuxwiki.de/vmstat) | |
- timing points (place them arround spefic events bootstrapping...) | |
- xdebug (http://xdebug.org/ - https://github.com/derickr/xdebug) | |
- tracefile analyser => statistics on tracefiles (showing most costly calls) | |
- ValaXdebugTools (https://github.com/technosophos/ValaXdebugTools) | |
- XHProf (http://php.net/manual/de/book.xhprof.php) | |
- XHGui | |
- Valgrind / Cachegrind | |
M-Payment - aus der Vision wird Wirklichkeit | |
----------------------------- | |
- people want to buy anywhere and any given time | |
- too many different payment methods... | |
- M-Payment 6 Mrd € vs. normal payment 24 Mrd € | |
- Travel very strong in M-Payment | |
- aim in m-payment ==> mobile payment with nfc | |
- bridging technologies | |
- square (iPhone iPad apps) - {square register} | |
- only possible in countries where credit cards are used more often | |
+ Paypal QR | |
- buy products via qr codes | |
- Mobile Wallets | |
- google wallet | |
- everyone is used to pay with cc or money | |
IPC Welcome Session (Thomas Wießeckel, Pierre-A. Joye) | |
----------------------------- | |
+ Php problems | |
- slow release | |
- unsecure | |
+ Rfc process very important => all about voting (https://wiki.php.net/rfc) | |
+ community has to contribute to enhance the language itself | |
+ faster progress with platforms like github | |
+ make more tests in order to reduce releases | |
Einführung in Symfony2 | |
----------------------------- | |
+ it's a set of components (only few dependencies) | |
+ it's a full stack framework | |
+ doctrine as an orm is recomended but not a must | |
+ "web" folder => document root | |
+ "bundle:" | |
- actual code of the application | |
- compilation of features | |
- a bundle contains code (models, controller, templates, assets) | |
- symfony console | |
+ create a bundle: ./app/console generate:bundle | |
+ configuration formats (yml,xml,php,annotations) | |
+ the framework itself is also packed in bundles | |
+ Controller: | |
- symfony is a http framework | |
- Frontcontroller -> bootstraps the application | |
- it's possible to easysily change the environment | |
- routing: | |
- @Route("/hello/{name}", name="_demo_hello") | |
- templates: | |
- @Template("AcmeDemoBundle:Demo:index.html.twig") or via | |
return $this->render("AcmeDemoBundle:Demo:index.html.twig", | |
array('param')); in the action | |
- forms (http://symfony.com/doc/current/book/forms.html): | |
- forms are not validated => domain objects are validated | |
- validation via annotations | |
- preconfiguration via AbstractType | |
+ Error handling | |
- kicks ass | |
+ Profiler | |
- per default enbaled on dev env | |
- whole database behind the profiler, logs every request/mails and lots of other stuff | |
The Symfony CMF project | |
----------------------------- | |
+ cms framework (http://cmf.symfony.com/) | |
+ decoupled cms with clear defined apis | |
+ supports I18n | |
+ http://cmf.symfony.com/slides/why_symfony_cmf.html | |
+ no cms but a framework to build a cms | |
+ http://phpcr.github.com/slides.html#1 | |
+ http://jackrabbit.apache.org/ | |
wetter.com: A complex high traffic website with Symfony2 and Varnish | |
----------------------------- | |
+ 656 mio visits in 2011 | |
+ 13,22 mio unique visitors per month | |
+ largest german weather portal | |
+ many cooperations (oem versions focus,n24) | |
+ the project: | |
- complete rewrite, new cms, search sf2 frontend | |
- TFT (CMS chameleon, search solr) | |
- integration of cms search and weather data wieth sf2 based system | |
- ===> in 100 days | |
- up to 5 mio visits per hour peak load, max possible cache hit rate, no php sessions | |
- Requirements: | |
- Search for location, display maps w. overlays and animations | |
- display weather data, inject advertising, page structure editable | |
- massive own content, self registration, different user levels | |
+ Caching | |
- browser cache, varnish page cache, varnish ESI Cache, TWIG template cache, cms cache | |
+ Varnish (https://www.varnish-cache.org/) | |
- reverse proxy with strong http caching abilities | |
+ Assetic | |
+ PHP 5.4 boosts performance by 10-30% for free | |
Concepts of Success: Choose Your Framework | |
----------------------------- | |
+ frameworks good points bad points | |
- ZF: | |
- abstraction | |
+ abstraction | |
- Flow3: | |
- waiting for autocompletion (generated) | |
+ less typing | |
- Symfony: | |
- complexity | |
+ flexibility | |
+ biggest challenge | |
general: | |
--------- | |
- ZF: People want the framework to work in a different way, combining all wishes is hard | |
- Flow3: release early, release often doesnt work on frameworks | |
- Symfony: managing the amount of contributers | |
technical: | |
------------- | |
- ZF: Forms | |
- Flow3: AOP | |
- Symfony: Session refactoring | |
+ you learn a lot while writing your own framework | |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
----------------------------- | |
Day 2 05.06.2012 | |
----------------------------- | |
This Way or the other Way? | |
----------------------------- | |
+ http://www.slideshare.net/spriebsch/this-way-or-the-other-way | |
+ A/B Testing | |
+ Experiment Driven Development (http://vanity.labnotes.org/) | |
+ run different code on different user bases | |
+ rate the feature | |
+ feature flags (ugly) | |
+ run experiments by switching classes (https://github.com/spriebsch/edd) | |
- create objects without specifying the exact class | |
- master child factory concept | |
+ session based expirements | |
+ mind the statistical significance | |
+ experiments can span a whole session but the descision is only made once | |
+ an experiment is run by swapping (potentially multiple) classes | |
Change is inevitable (except from a vending Machine) | |
----------------------------- | |
+ temporal patterns | |
+ http://www.slideshare.net/spriebsch/change-is-inevitable-except-from-a-vending-machine | |
+ https://github.com/spriebsch/temporal_patterns | |
+ audit log | |
- track and trace who has done what? | |
- A simple log of changes,intended to be easily writtenand non-intrusive | |
+ lots of code in this talk see github and slides | |
Technologies Beyond the Hype - Schein und Wirklichkeit der Mobilen Trends | |
----------------------------- | |
+ dont trust the hype (instagram) | |
+ context is missing why/where use it? | |
+ ux/ui not suitable | |
+ nfc (dr. florian resatsch) | |
+ Location based services | |
+ social (steanie hoffmann) | |
- digital layer over the rl | |
+ augmented reality (tobias tippmann) | |
+ Mobile Marketing (Haradl Neidhardt) | |
The five Dysfunctions of a Team | |
----------------------------- | |
+ Absence of trust | |
- in order to trust someone you need courage, because you'll get vulnerable | |
- methods of building trust | |
- personal histories | |
- behavorial profiling | |
+ Fear of conflict | |
- no one is willing to tell the truth | |
- artificial harmony is dangerous | |
- Performing => (Re-)Forming => Storming => Norming => (teambuilding process) | |
- Mastering conflicts | |
- conflict profiling | |
- conflict norming | |
- conflict mining (more a teamleader job) | |
+ lack of commitment | |
- clarity disagree and commit | |
- decide wether you are in the first or the second team | |
- write down what you agreed up on | |
- cascading communication | |
+ Avoidance of accountability | |
- not being repsonsible for your mistakes | |
- write down what every does right now | |
+ inattention to results | |
- focus on results | |
- celebrate results | |
- dont be a lemming | |
Continuous Deployment | |
----------------------------- | |
+ cancelled | |
CSS3 Produktiv nutzen | |
----------------------------- | |
23 Dinge, die Sie über Softwareentwicklung in Teams wissen sollten | |
23 things, you should know about softwaredevelopment in teams | |
----------------------------- | |
+ theorie vs. praxis | |
+ Tools and code | |
- establish collective code ownership | |
- the whole code belongs to every developer | |
- every developer is told to fix bugs or refactor code at all places in the source code | |
- reduce the "truck factor" | |
- introduce a VCS | |
- standardize the development environment for every developer | |
- introduce coding standards | |
- saves time | |
- just do it | |
- use default coding standards from your prefered framework | |
- enforce your standards | |
- integrate the standard in your build process (hooks) | |
- boyscout rule....? | |
- introduce code reviews | |
- code gets better more people on the same code | |
- every developer gets better (discussions about code) | |
- good for team building | |
- ensure your build process is reproduceable | |
- saves time and worries | |
- write tests! | |
- reduces fear | |
- integrate your builds! | |
- CI | |
- continuous delivery | |
- don't always use a tool | |
+ People and processes | |
- communication decides of fail and success | |
- do the developers understand the customer | |
- does the customer know what the developer is about to deliver | |
- do the developers understand each other | |
- do developers understand what qs needs | |
- make possiblities for communication | |
- meet face 2 face ! | |
- video conference | |
- im | |
- micro blogging | |
- find creative ways to communicate | |
- eat together | |
- dont use the default/best/coolest process | |
- there's always more than one process | |
- official process | |
- the recognized process | |
- the real process | |
- agile != unplanned | |
- plan and estimate with the whole team | |
- playfully everythings easier | |
- gamification | |
- only teams which change will be successful | |
- requirements change | |
- technologies change | |
- accept changes | |
- who moved my cheese? | |
- question the status quo | |
- recognize changes | |
- launch changes | |
- prevent a "culture of fear" | |
Deployment == Annoyment? | |
----------------------------- | |
+ http://www.slideshare.net/TheSeer/osi-days-2011-deploymentannoyment | |
+ how to get the stuff to the production servers | |
+ possibilities | |
- sftp upload | |
- rsync | |
- directly from vcs | |
- via ide | |
+ cool but what about dependencies? | |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
----------------------------- | |
Day 3 06.06.2012 | |
----------------------------- | |
Das beste Build-System der Welt | |
----------------------------- | |
+ build system = efficency | |
+ a buildsystem builds your components | |
+ lots of components in modern web applications (jquery, dojo, sass...) | |
+ nobody needs unit tests on live machines | |
+ generate config files which look different than the one on the dev system | |
+ how to rate build systems | |
- easy to learn | |
- customizable | |
- established | |
- platform independent | |
+ shell scripts | |
- pros: full availability of all unix tools | |
- cons: hard to read, not platform independent | |
+ make | |
- pros: powerful patterns, time checks not needed, platform independent | |
- cons: complex, different make tools, problems with recursion | |
+ rake | |
- pros: Ruby gems!, readability, platform independent | |
- cons: hard to learn, filesize, lots of manual effort | |
+ ant | |
- pros: readability, platform independent, lots of predefined tasks, build own tasks | |
- cons: filesize, java, hard to learn | |
+ and the winner is: ANT (http://ant.apache.org/) | |
+ https://github.com/newLoki/buildsystems | |
Why the cloud sucks | |
----------------------------- | |
+ webspace and computing power when you need it | |
+ private cloud services | |
- dropbox, icloud, gmail, flickr, instagram, skydrive ... | |
- problems: | |
- one password = all data | |
- burglary = access to all data | |
- unsufficient data encrpytion | |
- privacy not given | |
- no certainty that all data is deleted | |
- maybe it takes longer to upload data than the effort of it | |
- Availability: | |
- total dependency to the service | |
- bills not paid => data gone? | |
- service quits | |
- internent connection required (almost) every time | |
- Dropbox and security | |
- no double opt in | |
- data is encrypted on server side | |
- 2 serious security bugs | |
- public folder is available in default version (files searchable via google) | |
+ What should be saved in the cloud? | |
- published documents | |
- no neccessary data | |
- no personal data | |
- no privat/privacy data | |
+ cloud services for companies | |
- why everyone loves the cloud | |
- scalability | |
- flexibility | |
- no obligation | |
- cheap | |
- easy to use | |
- use cases | |
- handle load peaks | |
- backup | |
- diskspace | |
- content distribution | |
- dns services | |
- messaging services | |
- queing services | |
+ amazon aws | |
- first to provide cloud services | |
- lots of services: ec2, s3, sqs, ses... | |
- lots of service locations | |
+ privacy | |
- safe harbour (agreement eu => usa usa => eu) | |
- patriot act (lolz) | |
+ which service should be in located in the cloud? | |
- asynchronos services | |
- logfile analysis | |
- data aggregation | |
- video rendering | |
- image editing on service side | |
- only harmless data! | |
Qualitätssicherung bei Webprojekten | |
----------------------------- | |
+ more and more client logic | |
+ java script === quick & dirty | |
- in long term it's only dirty | |
+ what is qa? | |
- standards | |
- reliability | |
- stability | |
- extensibility | |
+ continuous inspection | |
+ continuous integration | |
- ci platforms (jenkins) | |
- fast response from your ci tool | |
+ tools | |
- jslinted (http://www.jslint.com/) | |
- cpd | |
- jasmine (http://pivotal.github.com/jasmine/) | |
- JsTestDriver (http://code.google.com/p/js-test-driver/) | |
- Selenium IDE | |
Deployment without the Chaos | |
----------------------------- | |
+ basicly a zend studio /server presentation :( | |
Immer am Optimum, Continuous Performance | |
----------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment