tekx – streams, sockets and filters

Image of auroraeosrose @auroraeosrose‘s talk. Going over definitions so that everyone is on the same page. Everything uses streams include/require…

Image of auroraeosrose from Twitter
Image of auroraeosrose

@auroraeosrose‘s talk. Going over definitions so that everyone is on the same page.

Everything uses streams

  • include/require
  • stream functions
  • file system functions
  • many other extensions

What is a stream in php? They allow you access input and output very generically. You can read and write linearly and may or may not be seekable. Comes in chunks of data. Think of a 15GB file, would you want to read that into memory? Of course not, PHP will laugh at you for being stupid.

Thank Sara Goleman and Wez Furlong for the awesomeness of streams.

Edit: Originally didn’t get Wez’s name in the presentation, he thankfully provided me with his identity.

tekx – new spl features in php 5.3

Image of Matthew Turland Matthew Turland is presenting. If you haven’t heard of him, you’re a nub (k, not really…

Image of Matthew Turland from Twitter
Image of Matthew Turland

Matthew Turland is presenting. If you haven’t heard of him, you’re a nub (k, not really but I really wanted to put that in a post somewhere). He’s an auther for php|architect and author of Web Scrapign with PHP, a contributer to Zend Framework, lead developer of Phergie. So yeah, kind of a big deal. He currently works at Synacor which provides internet solutions to ISPs, media companies and advertisers.

The biggest change to SPL in 5.3 is the containers. Why containers? Arrays aren’t always great. The underlying hash table algorithm is not always ideal for the task at hand.

We’ll be looking at a lot of benchmarks. The code is available on github so you can compare the performance results for yourself.

tekx – xdebug

Image via Wikipedia Today’s session is given by derick rethans, the author of xdebug so he might know what he’s…

Xdebug
Image via Wikipedia

Today’s session is given by derick rethans, the author of xdebug so he might know what he’s talking about. 😉

Xdebug provides protections against things like stack overflow in PHP and infinite recursion. You can set this by setting the nesting level. It also provides a pretty formatted errors but not only is it pretty but it provides more information such as memory usage, time, function name and location on items in the call stack. It can also collect parameter information which shows the type with options to display the variable name (if possible) or values. It opts to minimal information to prevent crashing html displays with the browsers.

Another hot option is the ability to link to the files. The var_dump is overloaded to create a pretty, color-coded output. You can turn this off by setting the overload vardump option to 0.

tekx – continuous inspection and integration of PHP projects

“Countinous Integration is about preventing your developers from burning in Integration Hell” – @s_bergmann Integration Hell My code is perfect,…

“Countinous Integration is about preventing your developers from burning in Integration Hell” – @s_bergmann

Integration Hell

My code is perfect, yours is pretty good and then Martin…well, he’s a fucking idiot. (lost where he was going with this story). D=

Team member should integrate their work frequently. This reduces errors when managing multiple team members. The value (ROI) is in:

  • reducing risk
  • reduce repetitive processes
  • generate deployable software
  • enable better project visibility
  • establish greater product confidence
  • helps with late discovery of defects
  • prevents low quality software
    • coding standard adherance
  • prevents lack of deployable software

This practice focuses on software design that uses unit tests to prevent and detect defects. This all significantly works to provide significantly better quality software.

tekx – code release & management

Image of EliW @eliw starts off laying down his street cred. He’ll be covering how to control the process of…

Image of EliW from Twitter
Image of EliW

@eliw starts off laying down his street cred. He’ll be covering how to control the process of version control. As we’ve been going over the past week, use version control. The talk will be focusing on subversion as the technology but the talk will be dealing with the higher level concepts.
Basic Version Control Terminology

  • commit/check-in
  • branch
  • tag
  • trunk
  • merge

tekx – getting git

Image of Travis Swicegood @tswicegood’s talk is for people who aren’t familiar with git or version control. They won’t be…

Image of Travis Swicegood from Twitter
Image of Travis Swicegood

@tswicegood’s talk is for people who aren’t familiar with git or version control. They won’t be delving into the the internals.

Installation of git for ubuntu can be done with apt. If I heard correctly (busy setting up to blog), Windows installation will require cygwin. OSX can be done with homebrew. Be sure to verify the install no matter which installation method you. One thing to keep in mind about git is that it started out on the command line and will always be heavily entrenched there. So hopefully your team is comfortable with that.

When you start using git, you should set up your user and email achat cialis. Config also allows you to enable colors.

tekx – date and time with derick rethans

Image via Wikipedia We’re starting with a map of the world showing the 24 major timezones. Timezone changes (daylight savings…

This is an SVG version of the Time Zone map fr...
Image via Wikipedia

We’re starting with a map of the world showing the 24 major timezones. Timezone changes (daylight savings times) make things tricky. The abbreviations for timezones aren’t enough to determine the user’s timezone. EST can mean different things.

The 64-bit signed integer used internally provides more than enough time for us to use (+/- 90 billion years if I heard correctly). strtotime() and functions with timestamps have been replaced with classes (such as new DateTime()).

The bundled timezone database has 564 zones so far that isn’t dependent on timezone abbreviations. They have the format Continent/Location or Continent/Location/Sublocation like Europe/Amsterdam. Updated database is released 20 times a year. Some changes are very sudden. Basically, you’re timezone database is probably outdated.

tekx – zend_form

Image of Rob Allen Trying to record @akrabat‘s talk about zend_form but didn’t get good camera placement. Won’t be able…

Image of Rob Allen from Twitter
Image of Rob Allen

Trying to record @akrabat‘s talk about zend_form but didn’t get good camera placement. Won’t be able to put up the video I do have until after Amsterdam. Will need to get a voice recorder instead.

Filters are destructive. This is important to know that. Validators only reject data. Decorators are used for form rendering. Apparently I’m not the only one confused by it because Rob Allen said we’ll go over that extensively. Zend_Form decorators are a combination of Decorator and Strategy Pattern.

tekx – opening keynote (lost art of simplicity)

Josh Holmes is giving the keynote and is very insistent on enthusiasm. Talking about simple projects and used twitter as…

Josh Holmes is giving the keynote and is very insistent on enthusiasm. Talking about simple projects and used twitter as an example. Twitter may have been been written in a weekend by most of us, it is successful because it filled a niche. Seems like part of the talk will be analyzing why we say “I could of wrote that in a weekend” with an air of disdain.

Looking at the definition of simplicity. First few definitions talk about foolishness and naiveté but the last definition is where we focus on “clarity of expression” and “Austerity in embellishment.”

tekx – best practices

tekx stream of though on best practices tutorial.

Visualization of the "history tree" ...
Image via Wikipedia

Starting off the best practices with source control @lornajane asked who is using source control and how much of that is using distributed source control. I’m 2/2 so far. woot. For those who aren’t familiar with source control, it creates a history and is a great collaboration tool.

Using source control is being discussed. You create a repository, add your project, check out your project, make changes. You can update to get changes from others then you commit it all back to the repository.

We’re looking at an svn log and will be discussing distributed vs non-distributed systems. Demonstrating a sample diff.

Source control Tool

* Subversion (svn)

* Git (git)

* Bazaar (bzr)

* Mecurial (hg)

Difference ways to interact with source control. Lorna gives a shout out for all the command line user people and is now mentioning IDE plugins, Trac, Tortoise[SVN|Git|Bzr|Hg]. I need to see if there’s a tortoiseBzr for OSX. I’m thinking of moving to Git since that gives my team more GUI tools, love Bzr but haven’t found many tools. Done with that sidebar. On to Centralized Source Control.