Skip to content

usergroup - meetup - webPerformance - hamburg 130220

Attraktor e.v. mexikoring 21, hamburg

Soundcloud - Arbo Von Monkiewitsch

html5 audio playback widget - measuring for velocity

measure first

how to?

  • synthetic user monitoring (by phantom.js)
    • repeaable
    • doesn't show real user experience
    • good for benchmarking
  • real user monitoring (google analytics)
    • shows real user experience
    • change of user behavior impacts repeateability (e.g. side slow in asia but fast in euro)
    • impact of embedding site

what?

  • http ping
  • fully page load
  • include all transactions
  • follow K.I.S.S., just render the page

define your goals

  • what is fast
  • don't define random goals on yourself
  • public benchmarks are good as orientation (for e.g. set up a benchmark for youtube or similar)
  • response time
  • don't simple trust your metrics

best practices

  • httparchive, pagespeed, yslow (100 - 200 ms as full page loading speed is good enough)
  • compress each connection (use varnishs or something similar for uncompressable content)
  • availability fallback -> dc
  • performance - put api in cdn (also for http or https handshake)
  • consitency - load balanced cdns

rap it up

  • measure first
  • keep it simple
  • team autonomy

phantomJs - Raj Dudi

http://rajdudi.com

what it is - created by ariya hidayat

  • can be integrated into jenkins
  • automation and headless testing
  • can be used for metrics measurement
  • render and dump client side html
  • current version is 1.8
  • headless (Qt)Webkit/Browser
  • javascript driven
  • ideal for
    • headless website testing -> but it is not a test framework
    • screen capture
    • page automation
    • network monitoring
  • projects
    • casperjs
    • ghostbusters
    • poltergeist

code evaluation

  • evaluate(function, arg1, arg2, ...) {object}
  • returns simple objects but no functions and closures
  • execution is sandboxed
  • dom scripting and css selector works
  • use onConsoleMessage callback to receive the console messages

get it from

  • phantomjs.org
  • github.com/ariya/phantomjs
  • https://aur.archlinux.org/packages/phantomjs/

examples

https://github.com/ariya/phantomjs/tree/master/examples

hello world

console.log("Hello world"); phantom.exit();

screen capture

  • Page.render to render a screenshot
  • supports ong, jpeg, gif and pdf
  • options
    • page.clipRect = { top: 14, left: 3, width: 400, height: 300 };
    • page.paperSize = { width: '200px', height: '300px' } //for pdf output e.g., also supports borders and much more
    • page.zoomFactor = 0.25 // 1 is default
  • projects based on phantomjs
    • screenr
    • mediaqueri
    • chromanope
  • webpage api
    • var page = require('webpage').create();
    • page.open(url, callback) {void}
    • page.close() {void}
    • goBack(), goForward(), title, url
    • settings{object} //enable javascript, load images, username or password, websecurity
    • page.includeJs(url, callback) {void}
    • page.injectJs(filename) {boolean}
  • webpage callbacks
    • onLoadStarted
    • onLoadFinished
    • onAlert
    • onCallback //experimental
    • onClosing
    • onConfirm
    • onConsoleMessage
    • onError
  • system API
    • var system = require('system');
    • ...
  • filesstem api
    • var fs = require('fs);
    • separator {string}
    • workingDirectory
    • ...

troubleshooting

  • allows network sniffing
    • onResourceRequested
    • onResoureceReceived
    • TLS and SSL required for encrypted data - are they enabled?
  • error handling

cons

  • uses qtWebKit (not used by chrome, safari and so one)
  • asynchronous api - difficult to handle for many
  • not supported
    • plugins
    • webGL
    • video and audio
    • css 3-D
    • xpath

What could i add? Thanks to the talks, yes very much. Also thanks to the attraktor, you are doing it right!

magento meetup - 121211

date: 11.12.2012 place: Agenturwerft - Mattentwiete 8, Hamburg link: xing.de

introduction There where more then 98 magento meeting this year.

Newsletter marketing with magento and inxmail by Katharina who we are cvh-design.de - based in ahrensburg/hamburg - webdesign, online-marketing, logo-design, mailings, flyer ... - implemented 10 magento shops in last three years - since 2005 inxmail solution and hosting partner - 10 employes - started implementing of open source interface in 2010 - http://cvh-design.net/aktuelles/inxmail-erweiterung-fuer-magento.html email marketing and all about You can track clickareas in emails like hotspots on webpages. Registration export with all, by law, needed informations. Double opt in ... (sorry an important call received me) magento and inxmail magento - contains and manages user data - process ordering - "user cockpit" - product informations inxmail - contains and manages subscriptions - documents the process of subscription - mailing quality - bounce management - reports of mailings mag2inx and inx2mag mag2inx - open source - interface to transfere data from magento to inxmail example: - user registers to or via newsletter (single-opt-in or confirmed opt-in) - user changes data inx2mag - closed source - interface to transfere data from inxmail to magento example: - user deletes his newsletter subscriptions double opt-in Double opt-in currently not needed by law. process - user registeres to newsletter - magento adds user to subscriptionlist - sends user in status "unapproved" to inxmail - inxmail sends mail to user - user subscrips - inxmail status switched to "approved" - inxmail transferes status "approved" to magento - user doesn't subcrips - nothing happens future planing - configureable fields available in magento (currently prename and suffname, emailaddress and title) - selection of magento products via xml template

generate product informations with excel and import them into magento by mash2 who we are mash2.com - specialized to import/export mechanism to and from magento - company exists since 2012 export available product informations - since 1.5.x -> use new export but doesn't export data in a well way - thats why mash2 still uses the dataflow - in excel you choose "data->from text" and select utf8-unicode and comma separated - excel remembers the import process based on filename, so future import is easy and faster than first one polish product informations in excel - excel is well known in management, merchant and consultant area - use excel based concate to auto generate data (description/seo words) to fill up the excelsheet import informations in magento - save as unicode file - use import, choose file and thats it

php usergroup meetup - 121009

Date: 09.10.2012 Place: Mindsworks - Jarrestraße 42a, Hamburg Link: Meetup

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 Introduction www.heikoharthun.de www.arge-zeiten.de 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. general 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. body hack 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. brain hack 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. source/books 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 general 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.

php usergroup meetup - 121113

Date: 13.11.2012 Place: Bigpoint - Drehbahn 48, 20354 Hamburg Link: Meetup

new website by Ole Michaelis Contribute if you find bugs or want to improve work. Slides are available as soon as possible. Howtos available. 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.