Archief van de categorie ‘Tools en webdevelopment’

28 mei 2010 - Door Korstiaan

File upload progress bar with PHP+APC and JavaScript

Normally when we give a user the possibility to upload files, we give them a nice SWF-based upload solution in order to provide some feedback about the progress. Recently we discovered that PHP has built-in support for this, with a little help from APC (an opcode cacher and memcached alternative).

This knowledge resulted in a library which does all the work needed for this automatically. All you need to do is initiate our JavaScript class, and all inputs are handled automatically. The library consists of a MooTools-based JavaScript class, a PHP file which handles all the AJAX requests and a CSS file.

Unfortunately this library (and APC support) doesn’t work on a default PHP install. The following things are required:

After restarting Apache, download the library, which can be found at http://www.hoppinger.com/playground/progress.zip.  Next step is to upload progress.php, progress.js and progress.css,  include progress.js, progress.css and MooTools (tested with version 1.2.3) in the HTML <head>, and initiate the uploadProgress class for every form you want files handled by this.

Example:

<script type="text/javascript" src="/javascript/mootools-1.2.3-core.js"></script>
<script type="text/javascript" src="progress.js"></script>
<script type="text/javascript">
window.addEvent('domready',function()
{
 $$('form.upload').each(function(o_form)
 {
  o_form.fileUpload = new uploadProgress(o_form,{
         's_actionHelper' : '/playground/progress/progress.php',
         'i_interval' : 1000
             });
 });
});
</script></script>
<link type="text/css" rel="stylesheet" href="progress.css">

This makes the library work for every form with class “upload”.  As you can see, the class has two parameters, the first is the form object and with the optional second parameter you can set a few options:

  • s_actionHelper – the location of progress.php
  • i_interval – the polling interval for progress.php in milliseconds

The layout of the progressbar can be changed by editing progress.css.

When a user uploads the file, and all went well you can find the data JSON’ed in $_POST with the same  name as the original <input>.  If something went wrong (e.g. when the user doesn’t have JavaScript), the file information can be found where you would normally look, in $_FILES.

An example can be found here: http://www.hoppinger.com/playground/progress/index.php

Please note that this is the first version (0.1). Contact me (korstiaan [at] hoppinger.com or the comments)  if you are missing features and/or found a bug.

6 mei 2010 - Door Eric

Lay-out testen op Internet Explorer 6, 7 & 8

Microsoft is na jaren eindelijk tot inzicht gekomen dat het voor webdevelopers toch wel erg lastig is om een website voor zowel versie 6, 7 en 8 compatibel te maken qua lay-out.

Daarom hebben ze vorig jaar een handige tool gemaakt, die beter geschikt is om de layout te testen dan het veelgebruikte IETester, waarmee je IE 5.5 – IE9 preview kunt bekijken. Microsoft Expression Web Superpreview is echter voornamelijk geschikt om de grafische vormgeving te renderen en beoordelen, je kunt geen functionaliteit testen, het programma is namelijk geen browser.

Desalniettemin een handige tool wanneer je het grafisch design van je website in oudere versies van IE wilt beoordelen.

Microsoft Expression Web Superpreview, 18MB

4 mei 2010 - Door Eric

Een beter milieu, begint bij jezelf

Wie herkent de slogan uit de Postbus 51 campagne niet? Als ICT professionals maken we allemaal veel gebruik van de computer, die op haar beurt weer kostbare energie verbruikt.

Gratis project Granola verzacht op een eenvoudige manier de pijn: net als bij laptops schakelt hij de CPU van de PC een tandje terug wanneer deze niet volledig wordt gebruikt (browser op internet, Excel sheet bewerken). Dit kan een besparing van zo’n 25% opleveren! Waardoor ook de batterij van je laptop het weer wat langer uithoudt.

Het programma werkt supersimpel, één keer downloaden en installeren, daarna heb je er geen omkijken meer naar. En weest gerust, het beïnvloed de prestaties van je PC nagenoeg niet! Beschikbaar voor Windows en Linux.

9 mei 2008 - Door Eric

Screenshots maken in Firefox…en meer!

Als webontwikkelaar maak je regelmatig screenshots van webpagina’s om zaken toe te lichten of te verduidelijken. Hoewel daar een aantal losse programma’s voor zijn, kwam ik laatst een heel handige FireFox plugin tegen: Fireshot.

Je kunt hiermee direct een screenshot maken (van de hele pagina of alleen het zichtbare gedeelte) en vervolgens ook direct teksten, pijlen en effecten (bv. blur) toevoegen. Na deze bewerkingen kun je de afbeelding direct opslaan, uploaden of per e-mail versturen.

Handig!Mogelijkheden van FireShot

12 december 2007 - Door Korneel

ImagineCup door Microsoft

Imagine Cup 08Zo’n zes jaar geleden is Microsoft begonnen met het organiseren van de ImagineCup. Deze jaarlijkse wedstrijd heeft haar finale altijd in een wereldstad en zo ook dit jaar, Parijs is het podium van de finaleronde. Vorig jaar deden er ook teams mee uit Nederland en de beste heeft ‘ons’ mogen vertegenwoordigen in Seoul! Helaas kwamen ze niet voorbij de 2e ronde.

Vanuit mijn rol als begeleider/projectmanager van het Medialab en Lynx aan de Hogeschool Rotterdam heb ik een team van studenten samengesteld waarmee er dit jaar voor het eerst wordt meegedaan aan deze wereldwijde competitie! De keuze van het team ligt in het gebied van XNA. XNA is een ontwikkelomgeving voor studenten en hobbyisten en maakt het mogelijk om games te ontwikkelen voor zowel de Windows omgeving als de Xbox (360).

Gister was de kick-off, verzorgd door Microsoft, in Delft. Na een introductie waren er presentaties van onder andere de Cannibal Game Studios welke een eigen framework rondom XNA hebben ontwikkeld. Het Hogeschool-team is daar samengesteld en de eerste concepten vlogen al over de tafel. Na een verloting van een Xbox 360 elite (niemand van ons, helaas) werd er nog wat drankjes genuttigd en plannen gesmeed. Binnenkort meer over deze nieuwe uitdaging!