10 februari 2006

'Tail' voor windows

Onder linux heb je het handige commando 'tail', om toevoegingen aan een textbestandje 'live' te zien. Erg handig als je bijvoorbeeld een logfile wilt volgen. Ik heb een equivalent voor Windows gevonden. Hij staat hier:
SOFTWARE\Development\Tail4Windows\Tail.exe.

Kopieer het bestand naar een map binnen je Windows path (bijvoorbeeld C:\Windows) en typ in een commandline venster:
tail pad/naar/logfile.txt -f (let op: -f dus ACHTER de bestandsnaam!)

Posted by bart at 01:36 pm | Comments (0)

31 januari 2006

4 Doelstellingen van een homepage...

welcome_mat.jpg
http://www.alistapart.com/articles/homepagegoals

1. Antwoord op de vraag: Waar ben ik nu toch weer?
2. Maak de baan vrij voor de terugkerende/trouwe bezoeker. Ga hem niet in de weg zitten.
3. Laat zien wat er nieuw is.
4. Consistente betrouwbare globale navigatie.

Posted by marko at 01:38 pm | Comments (0)

17 januari 2006

CashBoox Beta

error.gif
Meer in mijn weblog
Of ga naar de CashBoox

Posted by marko at 04:11 am | Comments (0)

10 januari 2006

Nieuwe rich text editor

Xinha-logo.jpgOp speciaal verzoek van Serge heb ik Xinha (htmlArea, maar dan een paar versies later) toegevoegd aan de shared.common map.
De admin van de Brem is inmiddels aangepast, zodat deze Xinha nu gebruikt (dus nu mét toggle borders for tabellen :-).
Deze versie heeft ook wat handige context-menu's onder de rechtermuisknop trouwens.

Posted by bart at 11:00 pm | Comments (0)

10 december 2005

Search-spike

Dat je met Google kan zoeken, is bekend (duh!). Maar ze hebben nog meer leuke dingetjes daar, zoals de zogenaamde Web APIs. Hiermee kan je (via het SOAP protocol) vanuit je script direct zoekacties doen bij Google. Omdat onze sites goed geindexeerd worden door Google, heb ik hier mee zitten experimenteren. De vruchten van de spike vind je hier: http://beta.netnoise.nl/google/search/

Voordelen van de Web APIs zijn:
* Je kan snel en eenvoudig een zoekmachine op je website zetten

* Als je zelf een zoekmachine maakt, zoekt die in het algemeen alleen in de database. Google indexeert de volledige pagina, dus ook de tekst die 'hard' in de templates staat.

Er zijn ook wel enige nadelen:
* Je mag maximaal 1000 queries per dag doen (per zogenaamde License Key). Als dit een probleem is, kan je dit ondervangen door meerdere License Keys aan te vragen (maar dat mag eigenlijk niet volgens de regels).

* Het systeem is nog in het beta stadium (al 4,5 jaar overigens...)

* De accuraatheid van de zoekresultaten hangt af van hoe vaak Google je website indexeert.

* Bij de resultaten krijg je een Estimated Total Results terug. Deze kan je gebruiken om een pagina navigatie te maken (je krijgt maximaal 10 resultaten per keer terug namelijk). Deze schatting is vaak te laag. Voorbeeldje: als je zoekt op TVC op de zoekterm 'curatoren', dan krijg je 100 hits (10 pagina's). Als je in het url de pagina veranderd van 10 naar 30, dan krijg je nog steeds resultaten. Maar dat is misschien geen probleem, want de gemiddelde bezoeker klikt toch niet verder dan pagina 2 of 3 (?).

Ideeen:
* Je zou kunnen denken aan een Ajax achtige opzet. Dat werkt waarschijnlijk iets sneller en het staat goed op je portfolio (Google Web APIs mét Ajax!). Plus: een enkele keer krijg je een Server Error terug bij een zoekactie. Als je het via Ajax doet, kan je deze afvangen en de zoekopdracht nog een keer proberen. Vaak gaat het dan wel goed en kan je de resultaten dan weer aan de gebruiker tonen. Hij merkt dan dus niets van de foutmelding.

Posted by bart at 11:49 am | Comments (0)

21 oktober 2005

Procedure nieuw project/nieuwe website

Als we een nieuw project beginnen, zijn er een aantal stappen die vrijwel altijd doorlopen moeten worden. Hieronder volgt een beschrijving van de belangrijkste stappen. Ik zal het project "Borghaeve" als voorbeeld nemen.

0) Verzin een handige code voor het project.

De code kan je gebruiken in de volgende stappen. Drie karakters is momenteel de standaard; Brains4All wordt B4A, Borghaeve wordt BHV, etc.


1) Output veiligstellen (geldt alleen voor dynamische websites)

Zorg dat eventuele output van een project (ge-uploade bestanden, smarty output, logfiles, etc) buiten de projectroot (en dus ook niet in CVS) staat. Standaard is de locatie op Bronze en Silver: $_SERVER[DOCUMENT_ROOT]/bhv.output
In deze map kan je submappen maken voor diverse media (zoals bhv.images, bhv.logs etc).
bhv.* verwijst hier naar de code uit stap 0 :-)
Een goede gewoonte is om in je unittests een aantal tests te maken, die controleren of de output mappen bestaan en beschijfbaar zijn door de webserver. Dit is met name erg handig voor stap 2.


2) Toevoegen aan de autobuild (=beschikbaar maken op Silver)

Voeg een regel toe aan de file atb5.autobuild.sh (te vinden in CVS project "atb_autobuild").
Roep het script autobuild.sh aan met een CVS projectnaam, bijvoorbeeld: ~/atb_autobuild/autobuild.sh borghaeve.
Hierdoor zal het nieuwe project na maximaal 20 minuten te vinden zijn op: http://devel.brains4all.com/projects/borghaeve, en vanaf dat moment elke 10 minuten ge-update worden vanuit de CVS server.
Belangrijk is dat de mappen uit stap 1 ook op de Silver server staan en de juiste rechten hebben.
De huidige output mappen vind je hier: /var/www/virtual/devel.brains4all.com/docs/


3) Maak een nieuwe virtual host aan op de Gold server

In /opt/lampp/etc/httpd.conf kan je nieuwe v-host aanmaken voor het domein, als deze door onszelf gehost moet worden.
Tip: als het gaat om een website die binnenkort naar onze server moet verhuizen, maar die nu nog ergens anders draait en je wilt de Gold versie al wel zien/gebruiken, dan kan je in je host-file (C:\WINDOWS\system32\drivers\etc\hosts) een regeltje toevoegen: "80.68.89.8 www.borghaeve.nl". Dit zorgt ervoor dat de domeinnaam naar onze Bytemark server wordt verwezen.


4) Deploy scriptje maken

Op de Bytemark server staan in /root/build/ scriptjes die een project uit CVS exporteren, de huidige website backuppen en de huidige website vervangen door de nieuwe. Eventueel zetten ze nog wat rechten goed ook.
Ook hier geldt dat de mappen uit stap 1 ook op deze server moeten staan en de juiste rechten moeten hebben (tip: run unittests :-).
De huidige output mappen vind je hier: /opt/brains4all/
Als er mappen zijn die via de browser bereikbaar moeten zijn, dan moet je in je virtual host configuratie een alias aanmaken (bijv. "Alias /bhv.output /opt/brains4all/bhv.output"), want de output mappen staan standaard buiten de documentroot.
Eventueel kan je in submappen die juist NIET via de browser opvraagbaar mogen zijn, een .htaccess file zetten met "deny from all".


5) Backups instellen (geldt alleen voor dynamische websites)

De output uit stap 1 (op de Gold server) moet dagelijks gebackup'd worden. In /root/backup/ vind je hier een aantal scriptjes voor. In het bestand inc.projects.php kan je je nieuwe project toevoegen aan de array. De key is de projectcode uit stap 0, de value is een array, bestaande uit alle mappen die gebackup'd moeten worden.
Na het toevoegen wordt het nieuwe project meegenomen in:
a] de dagelijkse backups
b] de maandelijkse backups
c] de backup naar Zeus (zie ook stap 6)


6) Output van Gold elke nacht beschikbaar maken op Silver

Omdat de Gold database elke nacht gekopieerd wordt naar Bronze & Silver, is het van belang dat de output deze stap (van Gold naar Silver) ook volgt, zodat database en bestanden sybchroon blijven lopen.
Dit gebeurt in 2 stappen :
a] op Zeus staat het bestand /root/scripts/output2silver.sh, dat elke nacht via een cronjob de meest actuele output kopieert naar devel.brains4all.com
b] op devel.brains4all.com staat het bestand /home/zeus/scripts/output2projects.sh, dat elke nacht via een cronjob de output naar de juiste mappen kopieert.
Beide bestanden moeten aangepast worden als er een nieuw project is.


En voila: een nieuwe website is geboren!

Posted by bart at 12:51 pm | Comments (0)

14 oktober 2005

"Output" van onze websites

Het kostte even wat moeite, maar vanaf vandaag is de opslag van output (zoals cms pagina's, ge-uploade plaatjes, logfiles etc.) van onze websites (B4a, TVC en Borghaeve) beter geregeld. De content is verplaatst naar lokaties buiten de 'projectmap', wat ervoor zorgt dat de content blijft bestaan bij een autobuild (op de Silver) en een deploy (op de Gold).

Voor het developen betekent dit dat je eenmalig een aantal nieuwe mappen aan moet maken. Maar geen nood! Er zijn voor alle drie de projecten unittests, die controleren of de mappen bestaan en of de webserver erin kan schrijven. De unittests vertellen je dus precies wat je moet doen :-)

De output is op de Gold te vinden in "/opt/brains4all/b4a.output", "/opt/brains4all/tvc.output" en "/opt/brains4all/bhv.output". Bijkomend voordeel van de losse output is dat deze eenvoudiger te backuppen is. De backup scripts zijn ook aangepast en Borghaeve is toegevoegd aan de backup-cyclus.

Nog één punt: om de Sticky Image-plugin van Borghaeve goed te laten werken met deze nieuwe opzet, moest deze enigzins aangepast worden. De plugin kan dus niet meer zomaar ge-update worden! (Maar dat gold ook al voor WordPress zelf, die is ook enigzins aangepast door Serge en ondergetekende).

Posted by bart at 04:25 pm | Comments (0)

17 mei 2005

Ook zo vergeetachtig?

Op de site ILoveJackDaniels.com hebben ze er iets op gevonden: handige cheat-sheets voor PHP, CSS en Mod-rewrite.

PHP cheat sheet.
CSS cheat sheet.
Mod-rewrite cheat sheet.

Print ze uit en plak ze boven je bed!

Posted by bart at 09:06 am | Comments (0)

07 april 2005

XPNL Wiki / Wiki2Go

De XPNL wiki maakt statische html pagina's voor de content. Als je dus de view.htm template veranderd zie je de wijzgingen niet direct op de wiki terug. Je moet de pagina dan editen, zodat de statische html opnieuw opgebouwd wordt.

TODO: Aan pascal vragen hoe je alle statische html opnieuw kunt opbouwen.

Posted by marko at 12:46 pm | Comments (0)

05 april 2005

XP-NL vormgeving afmaken

Vandaag zijn we met server begonnen om de laatste hand te leggen aan de nieuwe voorpagina van XP-NL. We vullen deze eerst met statische HTML en proberen hem dan voor de huidige Frontpage te zetten op XP-NL. Daarna moeten we de huidige Frontpage aanpassen, zodat het een duidelijker ingang wordt voor de achterliggende wiki.
Vervolgens kunnen we hetzelfde gaan doen voor de website van xp.be en xpday.net

Posted by marko at 12:56 am | Comments (0)