29 mei 2007
Upload & post limits in PHP/ATB5
Okay, schijnbaar zijn er 3 parameters die de limiet van een te uploaden bestand in PHP / ATB5 bepalen:
[php.ini]
post_max_size = 11M
upload_max_filesize = 10M
file_uploads = On
[atb5.setup.php]
define('ATB5_FILE_MAX_BYTES', 10*1024*1024); // 10 MB
Stond ik mooi tot 3 keer toe voor paal...
Posted by marko at 04:40 pm | Comments (0)
15 maart 2006
Paypal Expanded use
When you began enrollment in PayPal's Expanded Use Program, we charged a €1.50 EUR fee to your card.
Please check your credit card statement (monthly transaction history) online or when it arrives in the mail from the credit card issuer. On this statement, you will see a €1.50 EUR charge from PayPal. Next to this charge you will see the 4-digit Expanded Use Number, which can be found directly before the word PAYPAL. Note that it may take 3-4 working days for the number to appear on your statement.
Dus Jan, als dit op ons credit card afschrift verschijnt dan heb ik deze nummers nodig om een aantal beperkingen van ons paypal account op te heffen.
Posted by marko at 05:41 pm | Comments (2)
07 maart 2006
Aardige drag and drop example boxes in boxes...

Kijk eens naar deze drag & drop example. Je kunt divs in divs droppen. Zou dat helpen bij sub categories?
Posted by marko at 12:04 am | Comments (0)
06 maart 2006
Persistente ssh port forwarding tunnel
Als de verbinding tussen bytemark en zeus wegvalt dan moet er altijd handwerk aan te pas komen om de systemen weer up te krijgen. in vtunnel heb je een handige persistent optie, maar ik wil geen vtunnel gebruiken. Ik ga niet een hele host in mijn netwerk opnemen voor alleen MySQL toegang. ssh kent die optie niet. Dus ik heb een wrapper /root/pTunnel3306 geschreven die nu op bytemark (www) automatisch gestart zou moeten worden in /etc/rc.local.
[root@www root]# cat /root/pTunnel3306.sh
#!/bin/shwhile [ 1 ]
do
ssh -nNTR 3306:localhost:3306 bytemark@zeus.brains4all.com
done
Zoals je ziet nogal bruut, maar netwerk timeouts zullen hopelijk zorgen dat het niet de mist in loopt hoop ik. Let op met killen, want als je nu ssh killed wordt hij meteen weer gestart. Eerst pTunnel3306 killen op www.
Deze tunnel is een Remote variant in dat hij van de remote host, dus de ontvangende host wordt gestart ssh -R en hij owrdt dus gestart vanaf bytemark, terwijl de oude tunnels vanaf zeus gestart werden. Reden hiervoor is simpelweg omdat authenticatie al was ingericht op (www). The simplest thing that could possibly work.
Posted by marko at 12:04 am | Comments (0)
28 februari 2006
XMLHttpRequest over at XULPlanet
There is some nice documentation of the XMLRequest javascript object over at XULPlanet.
Posted by marko at 02:08 pm | Comments (0)
DOM Event Model
Remember there's more than one way to tie an event to a HTML element. Especially when you are trying to create valid XHTML/XML, you can't just onClick="" everywhere anymore. You need to register your events in a <script> block or file.
Well, another step towards total separation of content (HTML), layout (CSS) and behavior (JavaScript).
Nice description of the various methods to attach an event.
Same information from and about Apple Browsers IE5/Mac.
Add your own ;)
Posted by marko at 01:29 am | Comments (0)
23 februari 2006
AJAX Tip: Hoe ziet de HTML er nu uit?
Op Ajaxian.com (wat heel snel in de afgelopen tijd mijn favoriete blog geworden is) vond ik een set mooie tips om de huidige status van je HTML inzichtelijk te krijgen. Handig want na flink wat geknoei met Ajax in de pagina ziet je HTML er niet meer zo uit als toen je de pagina laadde. Stop ze in je sidebar of in je rechtermuisknop menu. Voor IE7, IE6, en firefox.
IE7:
javascript:''+window.document.body.outerHTML+' ';
IE6:
javascript:void(window.open("javascript:''+ opener.window.document.documentElement.outerHTML + ' '"));Met een nieuw vensterFF:
javascript:''+document.getElementsByTagName("html")[0].innerHTML+' ';
Posted by marko at 11:07 pm | Comments (0)
31 januari 2006
Backupservice CampingDeBrem


Op zeus in de directory /home/brains4all/davdisk/klanten/campingdebrem staat het een en ander wat te maken heeft met het backuppen van de boekingssoftware van de brem. Op zijn server (vanaf zeus te bereiken via telnet 10.0.0.1) draait een cronjob die iedere dag de juiste files tarred en gzipt. Op zeus draait een cronjob die deze bestandjes weer naar ons toe ftp-ed. Vervolgens gaan ze automatisch mee in de rsync-s naar bytemark en naar mij thuis. In de brem staat een tar.sh in /usr/brains4all.
Posted by marko at 01:16 pm | Comments (0)
30 januari 2006
Brains4All Mailserver status
![]()
Na een weekend hacken is het dan weer eens zo ver. De brains hebben hun eigen mailserver, voor klanten. Niets staat de hosting van klantwebsites nu nog in de weg. (Behalve mijn nog steeds aanhoudende weerzin tegen het beheren van een mailserver, maar wat heb ik te kiezen) Oh ja en behalve het zelf via ftp uploaden van filetjes. Dat lijkt me om security redenen nog steeds niet wenselijk.
Maar wat zit er in de doos?
- postfix mail server voor inkomende en uitgaande mail.
Bestaande mailserver die alles lekker naar gmail doorstuurde.
Configuratie in /etc/aliases en /etc/postfix
Upgrade naar mysql / sasl / tls capabiliteit
Geverherconfigureert voor virtuele domeinen en virtuele mailboxen
TLS werkt nog niet, certificaat voor nodig
Juiste arp/host resolve werkt nog niet (actie zeelandnet)
- saslauthd
Vraag me niet wat het is. Het is iets met authenticatie en authorisatie en secure.....
/usr/lib/sasl/smtpd.conf
/usr/lib/sasl2/smtpd.conf
Ik denk dat je 2 moet gebruiken. ?:[
- courier-imap mailbox servers voor pop3 en imap toegang van gebruikers
Versie uit centos / Contrib (apart aan moeten zetten in yum.conf)
Configuratie in:
/usr/lib/courier-imap/etc
ondersteuning voor pop3s en imaps (secure zut)
- postfixadmin web interface naar mailbox en virtuele domein database.
Meel beheerders (wij) kunnen domeinen aanmaken, editen, verwijderen, mailboxen aliassen en forwards aanmaken, quotas instellen enzo.
Domein beheerders (contact persoon bij de klant) kan meelboxen aanmaken, aliassen en forwards enzo.
Users kunnen hun meel doorsturen en hun wachtwoord veranderen.
- Mysql database op bronze (3308) totdat we besloten hebben wat we met de gold databse willen en waar die kom te staan.
domeinen en mailboxen etc staan hierin net als aliasses en forwards enzo.
Dus weer een leuk speeltje erbij voor onze klanten en het betekent dat we liftal kunnen gaan hosten.
Bekijk de webschil op:
http://people.brains4all.com/postfixadmin/admin
TODO:
- Vhost draaien op mail.brains4all.com ?
- Webmail? (squirrelmail)
- Postfix admin templates en tekstfiles herzien en in B4A Kwaliteit maken. (Vormgeving)
- TLS of Aanmelden met beveiligd wachtwoord verificatie zut aan de praat krijgen.
- Spamfilter (spamassasin)
- Anitvirus (clamav)
- Quota's
- Vacation message (autoresponders)
- Increase security against brute force attacks (lock ips out after x tries...)
- mailing lists
- checks tegen open relays en zut
- DOS en DDOS counter measures
- proxy module voor mysql requests
- GOLD probleem oplossen/uitpraten/denken
- USer documentatie/FAQs enzo
- Integreren met SCARAB
- Mail en Hosting plan bedenken
- Mailboxen backuppen
- Mail configueratie backuppen
- Mail backup server regelen zeelandnet/bytemark ? Of kan op de bytemark server een mailbackup draaien zelf natuurlijk.
- Automatisch starten van de serives wanneer zeus (per ongeluk) reboot.
- UPS moet er ook eigenlijk eens op.........................
- Offsite backupen nu eens gaan doen.
LETOP? Gebruikers moeten zich aanmelden met hun HELE en volledige email adres dus: marko@mkbtoolbox.nl en niet marko (Outlook express geeft dat WEL als voorbeeld en dat is dus weer eens NIET goed van meneer Gates.)
Posted by marko at 03:07 am | Comments (0)
01 december 2005
Etomite en Cachebaar
Let op bij etomite dat als je paginas met snippets erin hebt zoals een contactform dat deze NIET Cachebaar mogen zijn. Je contactform werkt dan niet.
Posted by marko at 03:54 pm | Comments (0)
19 juli 2005
Bah!

De bekendmakingen van de faillissementen, surseances van betalingen en schuldsaneringen natuurlijke personen zoals u die hier gewend bent te vinden, bestaan niet meer in deze vorm. Ze zijn vervangen door het Centraal Insolventieregister (CIR).
Het CIR kunt u vanaf 15 juli 2005 vinden via de link: http://insolventies.rechtspraak.nl .
Wij verzoeken u om in uw favorieten de oude link naar de bekendmakingen te vervangen door deze nieuwe link.
Dat betekend dus ff voor ons dat de slurper niet meer werkt, en dat we onze mooie invoerservice wel ff kennen vergeten. (Totdat de slurper weer gefixed is) Fixen is trouwens niet zo simpel meer, want je mot nu op weet ik veel hoe een moeilijke manier gaan lopen zoeken en als je teveel resultaten hebt dan ben je de sigaar: "Uw zoekvraag is te ruim geformuleerd. Met deze zoekvraag vond u 1073 resultaten. Preciseer uw zoekvraag."
Posted by marko at 12:40 am | Comments (0)
05 juli 2005
The Perfection Game...
PROTOCOL
1. Players sit in a circle.2. Each person in the circle names a task that he believes to be
simple and that the individual is willing to perform throughout
the game—for example, “snapping my fingers,” “whistling a
short tune,” or “acting dead.”
3. The first player performs the task named in step 2. This performance has the following structure:
- The player alerts the rest of the group to the beginning of the performance by saying, “Okay, I’m starting now.” Everything the player does after this point is subject to perfecting.
- The player performs his task.
- The player says, “I’m done.” Everything up to but not including this statement is subject to perfecting.
4. The remaining players rate the player’s performance on a scale of 1 to 10, where 10 is a perfect performance of the task. The rating must be supported with critical analysis of a particular form:
After saying the score (for example, “I give your performance a 7”), the scorer must state the following:
- Specifically, what about the performance was good and what
earned the points in the score. - Specifically, what the performer must do in the next iteration of the performance to be awarded a perfect 10.
The next player then performs his task and is rated by the rest of the group as described above.
5. Steps 1–4 are completed two more times, so that each player
performs and is rated three times. Each person plays the role of
critic for the rest of the team members in between each of his
own performances.
Analysis of the Perfection Game Protocol
Purely or partially negative feedback is not allowed at any point during the PerfectionGame protocol. For example, “I don’t like the sound of the finger snap.” The important information to transmit in this case may be something like, “The ideal sound of a finger snap for me is one that is crisp, has sufficient volume, and startles me somewhat. To get a 10, you would have to increase your crispness.”If you cannot think of a better alternative performance, you cannot withhold points. The default score is a perfect 10. You must follow the scoring routine exactly:
• “I rate your performance n.”
• “What I liked about it was p, q, . . . , z.”
• “What it would take to get a 10 from me is a, b, . . . , z.”
If one person breaks the protocol, the other team members must politely correct the offending person by pointing out the infraction. They must then remind the offender of the correct protocol immediately by suggesting, “I give it a . . . ” “What I liked about it was . . . ,” or “What it would take to get a 10 is . . . ,” as appropriate.
When playing the PerfectionGame, the team will develop a sense of the ideal performance of any given act. This aesthetic will take into account the best suggestions made, with lesser suggestions being abandoned.
Including each of the suggested improvements into the next performance rarely yields a perfect performance. The “perfecters” could be wrong about their prior feedback (not intentionally, of course), or the combination of all suggestions may have a negative effect on the performance. As the “perfectee,” you must accept only the superior criticism of your performance and implicitly reject the inferior feedback.
Your ratings must not use a “dislike” to “like” scale, where 1 is “completely dislike” and 10 is “completely like.” The perfection game is not about whether you “like” something. The rating scale goes from 1, “The thing has no value now and I can add all value needed in my feedback,” to 10, “The thing has full value and/or I can’t think of anything that would make it better.” It is important to hold perfecters accountable to this type of scale and respectfully correct them if you see the dislike/like scale coming into play.
In addition, the rating must be reasonable. For instance, if you rate a performance as an 8, you are saying that it is 80 percent perfect and/or you can tell the person exactly how to gain the 20 percent of missing value. You must not give an 8 and then provide only 1 percent of the missing value.
The “what it will take to get a 10” portion of the game may not be performed in writing. It must be performed verbally with the perfectee.
If you feel an impulse to grade on the dislike/like scale, can’t give a reasonable amount of value that correlates with your rating and are unwilling to raise your rating accordingly, or feel the need to write your perfecting down instead of speaking to the person, then you should pass. These impulses can contribute to a negative feedback cycle that distracts the team from achieving the desired results.
Website:
http://www.mccarthy-tech.com
http://www.mccarthy-tech.com/thecore10.pdf
Feedback:
Positief:
++ Goed begrip van succesfactoren+ Structuur voor positieve en constructieve kritiek
++ Expose hidden requirements
+ Is een agile tool
+ Feedback van anderen werkt inspirerend
+ Helpt onderscheid te maken tussen essentie en bijzaak
++ Leren positieve feedback te geven
Puzzels:
? Hoe ga je om met tegenstrijdige feedback? ? Wat doe je als er wensen bijverzonnen worden? ? Degene die uitvoert is belanghebbende, zou het niet beter zijn als ook de beoordelers zouden beslissen wat de perfectionerende persoon moet doen?Negatief:
- Positieve feedback geven is lastig!Posted by marko at 02:46 pm | Comments (0)
17 mei 2005
Books
Ik heb wat boeken in bestelling:
Your Orders
Order Date: May 17, 2005
Order #: 103-8170508-3307039
Recipient: Brains4All B.V.
View order
Items:
* 1 of: Design Patterns
* 1 of: Refactoring: Improving the Design of Existing Code
* 1 of: Test Driven Development: By Example
* 1 of: JavaScript Bible, Fifth Edition
* 1 of: Refactoring Workbook
* 1 of: Test Driven Development: A Practical Guide
* 1 of: Design Patterns Explained : A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series)
En nog een en ander op ons verlanglijstje, waaronder secrets of consulting part 1 & 2 van Gerald M. Weinberg.
Posted by marko at 03:42 pm | Comments (0)
12 mei 2005
Usability shortcuts/Timesavers voor Zend
Posted by marko at 11:35 am | Comments (0)
10 mei 2005
Nieuw ATB5 project - HOWTO
Het aanmaken van een nieuw ATB5-driven project gaat via een aantal standaard stappen. In deze weblog entry worden de stappen één voor één beschreven.
1) Haal het skeleton project (atb5.skeleton) uit CVS. Doe dit met een export i.p.v. een checkout, dan heb je geen last van CVS mappen en kan je het nieuwe project later gemakkelijk toevoegen aan het CVS.
2) Hernoem de ge-exporteerde map. Standaard is "atb5.*", om aan te geven dat het project ATB5-driven is.
3) Het nieuwe project bevat nu de basis mappenstructuur en een aantal bestanden die je nodig hebt. Sommige bestanden moet je vervolgens aanpassen (de overige instellingen kunnen uiteraard ook aangepast worden, indien gewenst/noodzakelijk) :
- [atb5.*]/_private/includes/atb5.setup.php
-- verzin een nieuw ATB5_ID (wordt gebruikt in de database om records aan een project te koppelen.
-- verzin een nieuwe ATB5_DEFAULT_TITLE (wordt gebruikt als HTML <title>, indien de gebruiker deze niet opgeeft via de admin). - [atb5.*]/_private/includes/atb5.init.php
-- als je objecten hebt die je op meerdere plaatsen in je applicatie nodig gaat hebben, kan je deze toevoegen aan de ObjectManager (voor easy access).
- [atb5.*]/_private/config/atb5.pagemappings.website.xml
-- voeg hier de pagina's uit je project toe.
- [atb5.*]/_private/config/atb5.objectmappings.xml
-- voeg hier definities van objecten toe die je via de ObjectMapper wilt beheren (vullen/opslaan/verwijderen)
- [atb5.*]/_private/config/atb5.main.ini
-- hier kan je instellingen in opslaan die de gebruiker niet kan wijzigen. De setting "language -> valid_languages" is altijd nodig.
4) Voeg pagina('s) toe aan de database (tabel atb5.atb5_page). Enkele opmerkingen:
- Je hebt minimaal een homepage nodig.
- De homepage heeft parent_id '0', sequence '1' en module 'home'.
- Per taal mag je maar 1 pagina hebben met parent_id '0' (=homepage).
- Het veld website_id komt overeen met de constante ATB5_ID (zie hierboven).
- Heb je meerdere pagina's met hetzelfde parent_id, dan moeten ze allemaal een apart sequence_id hebben (dit is de sorteervolgorde voor de navigatie en de sitemap).
- Het veld 'title' is de naam die terug komt in de navigatie, het veld 'meta_title' correspondeert met de html <title> tag.
Diverse opmerkingen:
- Elke ATB5-driven website heeft de modules shared.atb5 en shared.common nodig. Standaard staan deze in dezelfde map als het nieuwe atb.* project. Mocht dit niet kloppen, dan kan je de plaats aanpassen in [atb5.*]/_private/includes/atb5.setup.php.
- Als je applicatie gebruikt maakt externe classes (bijvoorbeeld Scarab classes, dan kan je het pad naar deze classes eenvoudig toevoegen in [atb5.*]/_private/includes/atb5.init.php (array: $atb5_class_directories).
- Om mee te kunnen draaien in de automatische build op devel.brains4all.com moet elk project een unittests map hebben. Hierin moet minimaal 1 test staan en alle aanwezige tests moeten slagen voor de autobuild.
Posted by bart at 10:58 am | Comments (0)