Een quarter life crisis. Volgens wikipedia:
een opkomend psycho-sociaal fenomeen dat veel overeenkomsten heeft met een identiteitscrisis. Jonge, meestal hoogopgeleide mensen van eind twintig en in de dertig, worden geconfronteerd met het ‘is dit alles?’-gevoel met betrekking tot het werkzame en persoonlijke leven.Nu er zijn jobs genoeg in limburg, daar niet van, en de werksfeer moet ik toegeven is ecellent, maar volgens mijn bescheiden mening betaalt het wat weinig.
Ok, ik zou niet mogen klagen, want wie ben ik? Een student zonder ervaring. Ik heb nu wel ervaring met zowel solowerk als mijn stage en vakantiewerk, maar is dat al genoeg om op een bedrijf binnen te komen en een deftig loon te krijgen? Nee, nog niet. Een van de oorzaken hiervan is de huidige economische situatie, daar het niet alleen voor de werknemer, maar ook voor de werkgevers niet zo makkelijk meer is.
Maar zie ik mijzelf wel tot mijn 65ste ( of langer ) dit werk doen? Goede werksfeer, vrienden van het werk, mooie projecten, het is er allemaal. Probleem is dat ik me de rest van mijn leven gewoon een pencil pusher ga voelen. Ik wou dat ik 4 jaar vroeger geboren was. Dan kwam ik terecht in een wereld waar het nog mogelijk is om een eigen bedrijf op te richten en zich te plaatsen in het geheel. Nu is de markt verzadigd, en de kleine spelers van toen zijn nu de grote spelers.
Zij hebben nu kapitaal om op te teren om door deze crisis te komen, maar als ik nu zelfstandig zou beginnen, zou ik nooit genoeg income kunnen genereren om mijn bedrijfje draaiende te houden. Want niet alleen de werkgevers en nemers, maar ook de klanten voelen de economische pijn. Vroeger mocht alles al niets kosten, maar vandaag moet alles al aan bodemprijzen gaan eer dat het zelfs opgemerkt wordt.
Het is nu de moment om af te studeren.
Wel ik ben terug van Spanje, je weet wel, dat boerenhol dat dichter dan ons bij de evenaar ligt en waar ze geen internet hebben.
Het is daar dat ik me er op toegelegd heb van eindelijk eens deftig cakephp te leren. Na twee weken door de cake code uitmorken en de api goed gelezen te hebben, is het me eindelijk gelukt om een volledige front en backend op de wereld te plaatsen die compleet in cake 1.2 is zonder zelf custom code te moeten schrijven.
I’ll let you guys in on a little secret: I love cake.
Ok, daar heb je het dan, ik heb cake graag. De development tijden zijn enorm verkort ( css schrijven duurt langer dan een hele site maken, wat al veel zegt daar ik heel snel css schrijf ).
De enige voorwaarde om het zo snel te doen gaan is echter dat je alles 100% op de cake manier doet en ok, dat wringt op het begin, maar het went en op een bepaald moment maak je gewoon de switch en wordt alles poepsimpel duidelijk.
Ook wil ik Jan bedanken voor mij een geweldig blog te tonen dat je kan vinden op: Smashing magazines. Het is daarvandaan dat ik mijn nieuwe wordpress theme heb, en voor de rest hun content is echt top notch.
Vooral hun posts over design en usability zijn naar mijn bescheiden mening van zeer hoogstaand niveau en op een heerlijk manier geschreven.
Een oude vos verleert zijn kunstjes niet. Zeker niet als ze zo stug zijn als mij. Echter, mijn ogen zullen ook eens moeten opengaan, alhoewel het soms wat traag gaat.
De week begon met een opdracht omtrent die sitemapgenerator die ik vorige week geschreven heb. Ik heb hem moeten integreren op de admin en heb er een cronjob voor moeten aanmaken. Eens geintegreerd in de admin heb ik er een excellexporter aan gekoppeld.
Als kers op de taart werd er een ajax toggle aan gebouwd. De ajax toggle laat toe om snel te zeggen welke items in de sitemap staan en welke niet.
Ook heb ik een foutje er uitgehaald. De vorige versie appende elke keer de resultaten, maar verwijderde niet de resultaten die niet meer op de site aanwezig waren. Na het schrijven van een korte timestamp comparer werkte alles perfect.
Rond het midden van de week mocht ik mijn stoute schoenen aandoen, mij wapenen met putty en htaccess en op botjacht gaan. We hadden enkele projecten die enorm veel errorpaginas vertoonden ( 6gb traffic alleen al aan errorpages ).
Net zoals elk probleem, is een probleem meestal een cascade van een klein probleem dat zich verergert naargelang de tijd vordert. Ik noem dit shacka’s law.
((unknown problem ^ time ) + ((current problem + (number of problems * problem)) * time)) / (knowledge - panic)
Bleek dus dat er een bot naar fouten was aan het zoeken. Na wat ip’s te hebben gepingd op whois bleek dat het een of ander wonky domein was van een spambot dat op een duitse server stond. Deze hebben we dus maar geblokt. Omdat een probleem echter nooit alleen komt, bleek dat ook de yahoo indexing engine ( slurp! ) ergens zijn eigen staart achterna aan het hollen was en dus bleef loopen. Deze hebben we dan maar disabled via de robots.txt file daar hij nu toch al alles had geindexeerd.
Maar de tijden veranderen, dat is zeker. Dus om op mijn originele punt terug te komen, ik zelf zal moeten verdergroeien en losbreken van mijn oude gewoontes. En dit proces is op vlak van cakephp vorige week begonnen.
Ik moest de uploadr app bouwen, maar ben van 0 begonnen, en deze keer volledig op de cake manier. En eens je veel hebt gevloekt, wat vooruitgang boekt en dan nog genoeg vloekt om zelfs een boek van herman brusselmans te doen blozen, merk je eigenlijk dat je al een hele applicatiebackend hebt geschreven waar je nu anders nog vast zat in het mundane werk van basic css schrijven etc…
Cake fijn noemen vind ik nog te vroeg, maar het begint mij elke dag meer aan te staan. Mss is cake niet het framework voor mij, maar het is zeker een stap in de goede richting.
Zalig zomerweer. Het schooljaar loopt zo langzaam op zijn einde en daarmee ook mijn stage.
Daarom wordt het uiteraard niet minder interessant. De week begon meteen met een interessante opdracht omtrent een theming engine voor een project.
De bedoeling was om volledig met javascript enkele voorbeeldthemes te tonen, en het theme on the fly aan te passen als een theme geselecteerd werd. Bijkomstig was er ook de custom theme optie die de gebruiker toelaat om de hex waarden in te geven of om per element een color picker tevoorschijn te toveren.
De snelheid en overzichtelijkheid waarmee dit gebeurde doet het me nogmaals eens zeggen: Thank you Jquery.
Uiteraard heb ik weer wat stukjes moeten bijcoden aan enkele projecten en hier en daar add-ons coden.
Toen begon het echte werk. Ik heb een custom made crawler moeten schrijven die een volledige site zou indexeren. Het nut van de crawler is om het proces van sitemaps genereren te vergemakkelijken. De class kan dan als een cronjob draaien en zo alle sitemaps updaten zonder dat dat voor elk project moet gebeuren.
Dat dit niet zo simpel is om te schrijven, wist ik al eerder, maar het niveau van abstractie dat ik heb moeten toepassen voor deze class, heeft me wel doen verbazen. je kan niet rekenen op een vast patroon, daar alles uniek is op zijn eigen manier. Een zeer leerrijke ervaring dus.
Tegen het einde van de week was de crawler klaar en volledig up and running. Ik heb me er dan op toegelegd om een excell exporter te koppelen aan de crawler. Dit laat toe om de resultaten op te slaan in een excell werkblad.
Daarna begon ik aan een gui upgrade van een ander project. In dit project kan de klant onder andere ads plaatsen op de site. deze ads kunnen dan een titel en een omschrijving meekrijgen. Het nadeel was echter dat we een volledig overzichtelijke lijst wouden behouden, maar omdat we ook de images wouden tonen, zaten weer met een probleem.
Dat probleem heb ik weerom opgelost met jquery. Als met nu over een ad hovert, dan verschijnt er met een mooi effectje de afbeelding die bij die ad hoort. Dit is makkelijker voor het doelpubliek, en overzichtelijker daar we onze lijst kunnen behouden.
Weer een leerrijke week. Bij een webbedrijf houdt niet alleen in dat je webtalen moet beheersen, maar soms komt er de oddjob servermanagement bij.
Nu, ik beheerde al even de server hier, maar blijkbaar leer je dus elke dag wat nieuws bij. Een van de dingen die ik geleerd heb is shell scripten, en veel trucs en tips ivm de linux shell die ik nog niet kende. Toen ik een e-book las over de shell ( die ook een introductie gaf van de meest gebruikte commando’s en gebruiken ), leerde ik onder andere de simpele commando’s zoals pwd ( print working directory ), en grep ( tekst filteren ).
Nu, deze commando’s zijn niet de meest nodige commando’s bij dagelijks serverbeheer, maar vb piping wel. Piping is het meest handige commando dat ik bijgeleerd heb. Piping gebeurt mbhv het | symbool, en laat ons toe commandos te chainen en zo output onderling te redirecten.
Een voorbeeld hiervan kan zijn als we een directory openen en alleen de bestanden willen zien met een .gz extensie. Dan kunnen we gewoon het commando ls -l | grep *.gz uitvoeren en dan krijgen we mooi een lijst voorgeschoteld met alle bestanden met een .gz extensie.
Nu komen we dan ook aan bij het andere dat ik geleerd heb, nl. shell scripten. We weten allemaal dat we php kunnen uitvoeren vanaf de commandline, en als we echt weten wat we doen, dan kunnen we ook php shell scripts creeëren. Dit is an sich wel leuk, maar een deftig bash script werkt in mijn ogen nog altijd sneller met minder code, en dat de code een rare syntax heeft ( voor mij toch sinds ik van php af kom ), nemen we er maar bij.
Ik wil geen holy wars starten, maar het is gekend dat in de linux wereld er nogal een hevige discussie is van nano vs vi[m] vs emacs. ik ben lange tijd nano gebruiker geweest, maar ik heb gemerkt dat nano tekort schiet als men met grote scripts bezig is. Daarom dat ik eindelijk de tijd heb genomen om vi te leren. Vi is een leuk programma moet ik toegeven, eens dat je er mee leert werken toch.
Het shell script dat ik geschreven heb heeft als nut om een volledige dump te maken van een gekozen database, alle acties te loggen, en dan de dump met het log door te mailen naar een opgegeven emailadres. Er is ook een cleanup functie voorzien.
Ik heb hieruit geleerd dat shell scripts eigenlijk nog een krachtige taal zijn an sich omdat ze controlestructuren voorzien. Dat dit van niet zo een hoog niveau is dan andere talen, is te begrijpen, maar het maakt het leven toch weer dat beetje leuker. Het enige waar ik nog op vloek soms is de switch syntax die er als volgt uitziet:
while [ “$1″ != “” ]; do
case $1 in
-du | –dbuser ) shift
dbuser=$1
;;
-dp | –dbpass ) shift
dbpass=$1
;;
-ma | –mailtoaddress ) shift
mailto=$1
;;
-db | –database ) shift
database=$1
;;
-bd | –backupdir ) shift
backupdir=$1
;;
-ca | –cleanupafter ) shift
cleanupafter=true
;;
esac
shift
done
De bovenstaande code gaat een voor een alle parameters af die meegegeven werden aan het commando en bindt die aan de interne variabelen. De while samen met de switch zorgt ervoor dat de commandos niet op een vaste vollegorde moeten worden gezet.
Buiten leren shell scripten, heb ik ook aan enkele projecten meegewerkt, en weer les gegeven aan iemand die een basis site moest kunnen bouwen.
Stille weken, zo zijn er ook. Vorige week was dus een stille week in de meest gewone zin van het woord. Ik kon ook gewoon zeggen dat vorige week maar gewoontjes was maar dat kan gewoonweg niet voldoen.
Woordspelingen terzijde, vorige week was gevuld met wat meer mundaan coding werk, zoals in een bestaand systeem een secure password recovery sollution inbouwen. Ook heb ik in verscheidene projecten wat addons moeten coden of maintenance work moeten verrichten.
Vanaf woensdag werd het echter spannender. We kregen de opdracht om van begin tot eind een volledige site te bouwen en het moest op het einde van de week af zijn. Sinds Yoeri zelf donderdag en vrijdag op cursus was, was dit een project dat ik samen met Luigi moest uitwerken. Flying solo, maar wel nog met Jan om op terug te vallen in gevallen van nood.
Daar ik dit blog altijd de week na de gebeurtenissen update, laat mij toe te zeggen dat het project successvol afgerond is. Het heeft me enorm veel bijgeleerd over de symbiosis designer/coder. Alhoewel de cases bij c-md ons vooral leren samen te werken, duren de cases meestal te lang zodat men in een beurtrollen patroon vervalt. Wat ik hiermee bedoel is dat eerst een deel gedesigned wordt, dan een deel gecode, en dan weer design. Het project dat ik hier bij Yappa heb afgewerkt verschilt hiermee door het feit dat er tegelijkertijd gedesignet werd en gecode.
Je kan het vergelijken met de Viaduc de Millau brug in Zuid Frankrijk, waar men aan beide kanten begon te bouwen en mekaar tegenkwam in het midden. Dat er niet teveel afwijking mag zijn in het midden, zorgde voor extra spanning, alhoewel de voldoening erna wel veel hoger is.
Dus zelfs als een week traag begint, is er altijd genoeg om bij te leren week na week.
Encodingproblemen teisterden al wat langer de scripts op Yappa. Niet dat het schering en inslag was of een echte zware impact had, maar ze zorgden soms wel voor wat irritatie.
Nu echter niet meer. Weg zijn de dagen van de speciale characters met het & teken, want alles draait nu centraal op utf8, zoals:
Dit vermindert het aantal problemen voor als een editor al utf8 is maar de andere nog niet en er dan sommige tekens verkeerd geformat worden.
Voor de databases om te schakelen naar utf8 heb ik een script geschreven dat alle databases, hun tabellen en hun velden nakijkt en deze omschakelt naar utf8 ( idem voor de collatie ).
Hierbuiten heb ik ook enkele projecten helpen afwerken, en hetzelfde utf8 systeem toegepast op een externe ( live ) server.
Ook heb ik geholpen met een debuggingsessie van een script dat gewoon voor een zoekactie elke keer een timeout kreeg. Dit was uiteraard een zeer uitgebreide zoekactie, maar als we een zoekactie deden, dan kregen we als we op de server inloggen met putty en top uitvoerden toch al 200% processorusage voor mysql ( nee dit is geen typo het is een dualcore systeem ).
Dat debuggen was moeilijker daar het gedeelte dat we moesten debuggen extern geschreven was en dus niet onze eigen code was. Yoeri heeft echter het probleem opgelost door indexes te implementeren in de verschillende tabellen.
Als laatste heb ik nu voorgesteld om een van de kleine problemen bij yappa op te lossen, nl. documentatie. Ik heb voorgesteld om dit op te lossen met phpdoc, zodat we mooie chm’s kunnen genereren als we willen, wat integratie in de bestaande editors toelaat. Experimenten hiermee zijn voor volgende week gepland en integratie indien het vruchtbare resultaten voortbrengt.
Het was maar een kort weekje en eerlijk gezegd vloog het wel voorbij. Ik heb de basis gelegd van de upload applicatie die ik eerder heb uitgedacht ( ik ben van 0 begonnen ). ik vind het vooral handig dat ik nu mijn schema heb dat ik mooi kan opvolgen wat de development tijd versnelt.
De rest van de week heb ik verdergeholpen met het afwerken van enkele projecten, en het testen van deze projecten. Ook heb ik weer enkele maintenance classes geschreven en een paar admin panel components.
Ik heb onder andere een component geschreven die toelaat om de zoekresultaten van een project bij te houden en dan zo statistieken te genereren wat een duidelijke meerwaarde is voor de klant. Voor de rest heb ik ook enkele hotfixes geschreven voor het adminpaneel dat door middel van regex ( regular expressions ) lege tags opzoekt en deze cleant zodat de inputvelden geen raar gedrag vertonen ( weer een meerwaarde voor de eindgebruiker ).
Ik heb ook enkele eindgebruikers een mini opleiding gegeven van hoe ze het cms ( niet het yappa cms maar een drupal cms ) moeten gebruiken. Dit was vooral een aangename ervaring daar ik hier weer heel veel uit heb geleerd qua usability. Vooral de denkmethode van een pc leek viel me meteen op. Je kan gewoon zien hoe een gebruiker denkt die niet gewoon is om met web applicaties te werken. Zeer leerrijk dus.
Weer een week, weer een verhaal.
Het was een redelijke rustige week. De week bestond voornamelijk uit het gebruikelijke werken aan verscheidene projecten.
Ik heb onder andere voor een project een component moeten schrijven in de admin die toelaat alle orphaned uploads op te zoeken en te deleten. Een andere functie was het legen van de cache.
Dit was zeer interessant daar ik nieuwe handige php commandos leerde ivm het behandelen van files en folders. Noem het de karma manier om het tao der programmatie te benaderen, maar alles leidt tot alles en alles is onlosmakelijk verbonden in de onopgeloste queeste naar meer kennis.
Wat ik hiermee bedoel is dat alles altijd meer dan eens zijn nut bewijst en dit des te meer bij kennis. Het 2de deel van de week bestond dan ook weer uit het analyseren van een probleemstelling. Deze keer moest ik een heel schema uitdenken en tekenen van hoe ik een applicatie zou bouwen binnen het cakephp framework.
Nu zijn jullie waarschijnlijk aan het denken waarom ik eerder over karma praatte. Wel dit omdat de applicatie die ik moest uitdenken, een upload applicatie is en dat ik deze later ook daadwerkelijk ga moeten bouwen.
Het denken zelf ging redelijk vlot en eens ik het rudimentaire schema voor mij had kon ik beginnen met de aanvulling. Het is altijd slecht om eerst alle models volledig uit te werken en dan de controllers volledig etc. Ik vind het persoonlijk beter om eerst rudimentair de models te maken, de controllers en de dan al benodigde views. Dan is het makkelijker om een overzicht te creeëren en kan je zo makkelijker de lijn in alles zien. Vooral wanneer je de dag erna terug komt en alles zit niet meer zo fris in je hoofd.
En dan begint het leukste werk, features bedenken en scrappen wat niet past, want de applicatie moet lean and mean zijn, niet bloated and tame.
Ze willen ons platgooien. Nee niet op het internet, maar letterlijk. Ze willen het yappa gebouw met de grond gelijk maken. Onderstaande is een uittreksel van het hbvl
Sint-Truiden heeft als eerste stad haar grenzen laten afbakenen door de provincie. Dat plan ligt ter inzage in het stadhuis. Iedereen die wil, kan nog tot 12 mei bezwaar indienen. Een van de knelpunten zijn tien panden aan de Tiensesteenweg. Privéhuizen, appartementen en handelshuizen zoals Lucas Creativ, Publi Royal, Zonnestudio Sun Equipe en Aldi liggen in de Molenbeekvallei.
“Die mensen moeten bezwaar indienen”, zegt sp.a-voorzitter Filip Moers. “Want hun huis of winkelpand zit in groene zone, daar mag je dus niet bouwen.”
Voor die panden is ook geen onteigeningsplan voorzien. Met andere woorden, eigenaars krijgen 20 jaar de tijd om op te krassen, zonder vooruitzicht op compensaties. “Ik begrijp dat die mensen een probleem hebben”, zegt Sylvain Sleypen, gedeputeerde voor Ruimtelijke Ordening (sp.a).
“Met hun bezwaren wil ik dan ook rekening houden. Ze kunnen vragen of hun huis zonevreemd wordt, de regels daarvoor zijn tegenwoordig erg soepel. Volgende week gaan we trouwens in Sint-Truiden een krantje verspreiden met meer uitleg over de afbakening.”~Het Belang van Limburg
Dit is niet goed. Alle implicaties voor Yappa terzijde vind ik dit weer een straf staaltje politiek. Ik vraag mij af wie hier weer baat bij heeft dat deze gebouwen worden afgebroken. We zullen moeten afwachten wat er gaat gebeuren, maar zoals het nu staat worden deze gebouwen binnen 20 jaar platgegooid, en mogen er geen verbouwings of renovatieworken worden uitgevoerd.