Skip to content

Rein's Cyberspaceplace

PHP, electronics, embedded software, Mechanic Apes and more….

Archive

Category: PHP

The ElePHPant gadget is based on the PHP ElePHPant. It is a plastic ElePHPant-shaped casing containing an Arduino microcontroller board, some sensors and actuators. It is currently in the planning stage.

The ElePHPant gadget will be developed in coorporation with PHPBenelux. The design, hardware and software will be published under the Creative Commons License.

Please contact us if you want to join this project. We will appreciate it very much.

Images Scientific Instruments released the OWI-535 Robotic Arm Edge a few months ago. This 50 euro robotarm kit comes with a standard manual remote control (with wires). I slightly modified the controller. The arm is now controlled by a embedded webserver with PHP. All 5 axis and the gripper-light can be controlled by a webuser. It is quite useless but very cool.

Om het gebruik van programmeertaal PHP nog verder te stimuleren en om de kwaliteit van de PHP-programmeurs nog verder te vergroten, start Ibuildings dit jaar een PHP Centre of Expertise. Het centrum zal geleid worden door Cal Evans, een PHP-deskundige van wereldformaat. Hij is onder meer hoofdredacteur van een van de belangrijkste PHP-developersfora. Zijn overstap naar Ibuildings is in de PHP-gemeenschap ingeslagen als een bom. Evans verhuist in oktober van zijn huidige woonplaats Nashville (Tennessee – VS) naar Nederland.

“PHP neemt in toenemende mate een prominente plaats in op de grootzakelijke markt”, stelt Evans. “Tijdens de afgelopen PHP-ontwikkelaarsconferentie in Californië werden we overspoeld met voorbeelden uit met name de Europese telecomsector, waar PHP wordt ingezet in een breed scala aan toepassingen. Vooral daar waar het om hoge volume transacties gaat, is PHP sneller en dus goedkoper dan concurrerende programmeertalen.”
Doel van het Centre of Expertise is om een grote stimulans te geven aan de PHP-gemeenschap, die uit ongeveer 4,6 miljoen developers bestaat. Het onderwijzen en implementeren van best practices is een van de belangrijke bijdragen die Evans via het Centre of Expertise wil geven. “Veilig programmeren en het gebruik van verschillende methodieken, zoals Agile, zijn belangrijke aandachtspunten. Het is mijn doel om de professionals helemaal af te stemmen op de wensen en vereisten uit de grootzakelijke markt”, aldus Evans.
De transfer van Evans uit de VS naar Nederland mag gerust opmerkelijk worden genoemd. Maar Evans is zeer gevleid door de uitnodiging van Ibuildings. “De laatste paar jaar heb ik gezien dat Ibuildings consequent de beste mensen uit de PHP-gemeenschap in dienst heeft genomen. Mensen waar ik diep respect voor heb. De combinatie van hun visie op de rol die PHP speelt en nog gaat spelen, en hun ondernemende mentaliteit zijn exceptioneel.”
Als voorbeeld van toekomstige groei noemt Evans landen in Zuid-Amerika waar in toenemende mate gebruik wordt gemaakt van de open source taal PHP. Ook de portering van I5 en COBOL naar een internetomgeving vergroot de vraag naar PHP-expertise. “De vraag naar PHP-programmeurs nam in 2007 met 40 procent toe”, onderstreept Evans het toenemende belang van PHP.
Om aan de grote vraag naar deskundigheid te beantwoorden, zal Evans behalve bij het Centre of Expertise ook betrokken zijn bij de trainingsdivisie van Ibuildings, die PHP-opleidingen verzorgt voor zowel eigen personeel als externe partijen.

Afgelopen dinsdag (23 september 2008) vond in de Vrije Universiteit in Amsterdam de 2-maandelijkse phpGG meeting plaats. Dit is een kort verslag van deze bijeenkomst.



De eerste spreker, Bert Boerland, gaf een presentatie over Drupal. Drupal is een content management framework dat een aantal punten uniek is. Ten eerste is het project met meer dan 2000 core-developers een van de grootste open source projecten ter wereld, zelfs groter dan Linux. De architectuur van Drupal is zo ontworpen dat het zonder problemen sites aan kan met miljoenen bezoekers. Dit is een van de redenen waarom het wordt gebruikt door organisaties als Yahoo, Nasa en de Verenigde naties. Drupal is een van de voorbeelden waaruit blijkt dat PHP uitermate geschikt is voor enterprise applicaties.




Stefan Koopmanschap gaf een presentatie over refactoring van code. Na het programmeren van een proof-of-concept applicatie is het meestal verstandig om nog eens kritisch naar je applicatie te kijken. Indien het concept niet bruikbaar is gooi je het weg en ga je iets nieuws maken (code rewriting). Is het concept wel bruikbaar dan is het meestal verstandig om de code te refactoren. Hierbij blijven de classes, methods en functie-parameters ongewijzigd en concentreert de developer zich uitsluitend op de implementatie van de methods. Je kunt dus nog steeds je oude unittests gebruiken en de API van je applicatie blijft ongewijzigd.




Na de tweede presentatie werden er een aantal prijzen verloot onder het publiek. Naast een ElePHPant, een drietal boeken en een Zend T-shirt waren er ook conferentie-tickets te winnen naar PHP Barcelona, PHP Works in Atlanta en PHP-NW in Manchester.




Aan het eind van de avond was er nog gelegenheid om wat te drinken en na te praten. Hierbij werd duidelijk dat de aanwezigen de bijeenkomst op prijs stelden en waarschijnlijk ook bij de volgende meeting aanwezig zullen zijn. Om 23.00 uur ging iedereen weer tevreden naar huis.




De volgende bijeenkomst is dinsdagavond 18 november. De locatie en de sprekers worden binnenkort op deze website gepubliceerd.










Regelmatig krijg ik van mijn opdrachtgevers het verzoek om te bepalen waarom een bepaalde PHP applicatie niet voldoende performance heeft. Om iets zinnigs over de performance bottlenecks in je applicatie te kunnen zeggen moet je gaan meten hoe lang PHP er over doet om bepaalde instructies uit te voeren. In dit document probeer ik uit te leggen uit dat globaal in zijn werk gaat.







Wat heb je nodig?

Om een applicatie te kunnen profilen heb je een tweetal tools nodig

Onder Ubuntu kun je deze installeren via de volgende twee commando's:

sudo apt-get install php5-xdebug
sudo apt-get install kcachegrind






Configureren

Je kunt de xdebug profiler aanzetten door de volgende regels toe te voegen aan php.ini

//hiermee zet je de xdebug profiler aan
xdebug.profiler_enable=1

//De volgende opties zijn optioneel
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_name="timestamp"

Enable trigger zorgt ervoor dat de applicatie aan een profile log aanmaakt indien de URL parameter XDEBUG_PROFILE
wordt meegegeven. Je kunt dus zelf bepalen welk script je wilt profilen. Profiler_output_name zorgt ervoor dat de profile log een timestamp in de bestandsnaam heeft zodat je snel kunt zien welke log de juiste is.

Als alles goed geinstalleerd is dan zal in de output van phpinfo() het volgende te zien zijn:

xdebug.profiler_append Off Off
xdebug.profiler_enable On On
xdebug.profiler_enable_trigger Off Off
xdebug.profiler_output_dir /tmp /tmp
xdebug.profiler_output_name cachegrind.out.%p cachegrind.out.%p






Een simpel voorbeeld

In het onderstaande voorbeeld zie je eens stukje script dat verbinding maakt met een MySQL database en een aantal records opvraagt

function test2()
{
mysql_connect('localhost','username','secret');
mysql_select_db('mysql');
$queryresult=mysql_query("select * from help_keyword");
while ($row=mysql_fetch_object($queryresult))
{
print_r($row);
}
}

test2();
?>

Als je dit script uitvoert via je browser dan wordt er in de /tmp folder een cachegrind.out bestand gegenereerd. Dit bestand kan geopend worden met Cachegrind. In Cachegrind krijg je dan het volgende scherm te zien:







Je kunt nu per functie zien hoeveel processortijd het kost om hem uit te voeren. Hierdoor krijg je goed zicht op de functies die het meeste vertraging in je script veroorzaken.





Meer informatie over dit onderwerp