Laatste week: Week 8
Technisch & sociale problemen
- flash positionering:
Voor een project voor Samsung moest er een flashfile(swf) in een html pagina worden geïntegreerd. De file was 1600 x 1200 pixels groot en de movie moest altijd gecentreerd worden, enkel de onderkant van het kader mocht de bodem van het venster raken. En er mochten geen scrollbalken te zien zijn.
Dit heeft me wel een tijdje zoet gehouden. Maar uiteindelijk was het een kwestie van enkele settings bij het exporteren van deze movie juist te zetten. - Het live plaatsen op de echte live-server op clientzone.gonzales.be:
Toen ik de vorige keer de site live zetten, was dit op een interne server. Hieruit bleek al dat er enkele problemen waren met de benamingen van files. Bij het live plaatsen op de echte server kwam er nog een ander probleem opduiken.: “SQLSTATE[HY000]: General error: 2050″.
Na wat onderzoek bleek dat dit voortkomt uit een bug in de laatste versie van Php of in de laatste versie van MySql.
De oplossing hiervoor was vrij eenvoudig. Je moest na elke query die je uitvoerde de variabele vqn de query terug resetten naar null. Dit heeft even geduurd om in alle files aan te passen, maar dit was gelukkig nog een redelijk eenvoudige oplossing.
Wat heb ik nog geleerd?
- Internationalization of I18n
Dit is een techniek om webpagina’s in verschillende talen te maken zonder voor elke taal nieuwe php files aan te maken.
Er wordt 1 file aangemaakt waarin alle boodschappen, tekstjes zijn opgeslaan in de verschillende talen. Naargelang de keuze van de gebruiker of de taal settings van de browser zal de site in een andere taal worden weergegeven. Dit is een zeer interessante techniek die ik in de toekomst nog wel eens meer zal toepassen - Projecten zijn nooit af
Je merkt dat je maar fouten kan blijven ontdekken in projecten en dat je steeds nog dingen wil veranderen. Je moet er echter enkel voor zorgen dat alles naar behoren werkt en dat de echte fouten uit het project verholpen zijn. Soms zou je nog graag bepaalde dingen willen optimaliseren maar dit is meestal duur en de klant heeft dat niet persé nodig.
3 woorden om deze week samen te vatten:
te kort – nooit af – einde
Ik kan besluiten dat het een zeer geslaagde stage was. De laatste dag heb ik nog een eindevaluatie gekregen en daaruit bleek dat ze zeer tevreden waren over mijn prestaties. Het is jammer dat de stage er al weer op zit, het was zeer leerrijk en plezant.
Week 7
De stage zit er bijna op, nog 4 werkdagen en het is daadwerkelijk gedaan. Deze week begon ik aan de 3de week van de uitwerking van de Clientzone. Wat me vooral opvalt is dat ik dit project nog altijd niet echt beu ben. Projecten voor school ben ik meestal al na 1 week werken, beu maar aangezien dit een echt bestaansreden heeft, heb je meer motivatie.
3 technische & sociale problemen:
- afwerking/bugfixes:
Zoals misschien ook al wel eens bleek uit mijn projecten voor school, heb ik soms problemen met afwerking en oog voor details. Meestal ben ik het project beu als het einde nadert en dan laat ik mijn kopje al eens een beetje hangen. Met de Clientzone bleek dat ik nog het een en ander vergeten was toe te voegen, ik had de site zelf wel getest, maar blijkbaar niet grondig genoeg. Ik wist van mezelf dat dit het geval zou zijn, dus heb ik er filip maar even bijgeroepen en gevraagd of hij het even wilde komen testen.
Uit deze test bleek dat er nog veel bugfixes nodig waren. Deze heb ik, zoals je in het logboek kan zien , de laatste 3 dagen van deze week gedaan. De problemen waren vooral gebrek aan validatie van informatie, sommige kleinere features was ik gewoon vergeten af te werken, …
Ik heb dan al mijn karakter maar bij elkaar geraapt, en mezelf “gepusht” om het snel af te werken. De buglist werd kleiner en kleiner, en we kunnen zeggen dat het project af is. Er zijn nog enkele kleine features die toegevoegd zouden mogen worden, maar die zijn voor de komende week. - upload met jquery:
Deze upload functionaliteit is zo een feature die op het laatst nog toegevoegd mocht worden. Voor deze feature heb ik geopteerd om gebruik te maken van een jquery uploader tooltje genaamd uploadify. Een standaard jquery/ajax plugin die de upload ook voorziet van een progressbar en feedback.De implementatie bracht wat kleine problemen met zich mee, maar al bij al waren deze makkelijk op te lossen door wat te surfen.
- Site live zetten:
Dit heeft me deze week veel kopzorgen bezorgt. Voor ik de uploader toevoegde, wilde ik eerst de applicatie eens testen op de live-server. Dit bracht de nodige ongemakken met zich mee. De pagina’s wilden niet laden en de reden was onbekend. Ik kreeg errors dat pagina’s niet bestonden, terwijl ze wel degelijk wel bestonden. Ook de verwijzingen schenen goed te zijn.Toen ben ik verder in het framework gedoken om het project te debuggen, na wat overleg met Filip, kwamen we erachter dat het enkele aan hoofdlettergevoeligheid lag. Mijn systeem is ingesteld om geen rekening te houden met hoofdletters. Dus de file Test.php of test.php is hetzelfde. Op de server was dit echter anders ingesteld Test.php is niet hetzelfde als test.php.
Uiteindelijk, na het hernoemen van enkele files was het probleem opgelost en verliep alles vlot.
Wat heb ik geleerd deze week?
- Dat je veel tijd moet steken in de afwerking, het is zeer belangrijk en je moet gewoon doorbijten tot het project af is!
- Op technische gebied blijf ik bijleren. Programmatorisch denken, syntax, functiegebruik, ….
3 woorden die deze week samenvatten:
afwerking – karakter – levenslang leren
Week 6
Deze week heb ik verder gewerkt aan de clientzone. Het hele gedeelte dat voor klanten bedoelt is, is nu af, enkel de administrator kant moet nog gemaakt worden.
Vrijdag heb ik hiervan al 2 pagina’s van kunnen maken.
Sociale & technische problemen:
Op sociaal vlak ondervind ik weinig problemen, er is een zeer amicale sfeer in het bedrijf en de samenwerking met collega’s verloopt vlot.
1. Vorige week had ik een systeem geschreven die het filesysteem kon “uitlezen” en de structuur opslaat in een databank. Deze week merkte ik echter tijdens een kleine demo nog een grote fout. Je kon geen folders aanmaken met een naam die al gebruikt was voor een andere folder ergens het systeem. Als je dit wel deed, was de folder altijd leeg, ook al stonden er wel files in en werden de files geplaatst in de eerste folder die die naam had.
Dit kwam omdat ik bij het checken van de parent van de file/folder enkele keek naar de naam van het object. Je moet hier echter ook weten in welke folder de folder zich bevindt om zeker te zijn dat het de juiste folder is. Maar dit zou inhouden, dat je of een soort geheugen moet gebruiken of een uitgebreide query moet schrijven. Ik heb het eerst geprobeerd met een soort van geheugen te schrijven, maar zonder succes. Na 1,5 dag zwoegen heb ik dan toch geprobeerd om geneste query’s te gebruiken om vanuit de rootfolder de locatie/parent van de huidige folder/file te kunnen bepalen. Dit werkt nu, de enige vrees is dat dit het systeem zou kunnen vertragen, maar voorlopig is hier nog niet veel van te merken.
2. Voor sommige pagina’s zou het handig zijn om ajax te gebruiken. Gewoon omdat dit de pagina een pak gebruiksvriendelijker maakt. In het Zend framework is een Javascript library geïntegreerd, maar hierover is niet zoveel documentatie te vinden. En aangezien ik Dojo nog nooit heb gebruikt zou ik ook niet weten waar ik moet beginnen. Uiteindelijk heb ik geopteerd om toch JQuery te gebruiken. Ik gebruikte deze library al in verschillende van mijn vorige projecten. Ik heb dit vrij vlot kunnen implementeren.
3. Voor de admin-side van het project zou het handig zijn om een soort gridview te gebruiken. De bedoeling van een gridview is om een overzicht te geven van data. Als je data van 1 rij wil aanpassen kan je hier op klikken om deze te selecteren. Deze actie vult dan een formulier in met de huidige data en geeft de optie om de data aan te passen. In tegenstelling tot asp.net is dit natuurlijk niet voorzien in PHP en dus heb ik dit op mijn manier opgelost. Ik heb er zelf een gemaakt. Aan de hand van een kleine beetje javascript en css krijg je een zeer overtuigende gridview. De javascript dient enkel om de kliks op een rij te registreren, de verandering van kleur en dergelijke is pure css.
Wat heb ik geleerd deze week?
1. Bij het eerste probleem heb ik toch wel een behoorlijk tijd vast gezeten en kwam ik maar niet tot een oplossing. Uiteindelijk heb ik alles stap voor stap uitgetekend op papier om dit dan pas om te zetten naar code. Het is soms echt noodzakelijk om even los te komen van je pc en het niet meteen in de code proberen te implementeren. Dat ik dit systeem eerst op papier heb uitgezet heeft als voordeel dat de code veel doordachter is en dat de code properder blijft. Er zijn nu geen restanten code in quote enz. die achterblijven van probeersels!
2. Ik heb mijn geheugen nog eens stevig opgefrist voor Javascript en AJAX. Het was bijna een jaar geleden dat ik nog eens JS gebruikte. De opfrissing was nodig en google is hiervoor altijd een goeie bron.
3. Omdat het hele systeem van zend in OOP is geschreven merk ik meer en meer het nut van OOP. Ik begin mijn code ook veel meer te schrijven met in het achterhoofd herbruikbaarheid. Ik zal nu veel sneller functies schrijven die uitgebreider, maar algemener zijn zodat ik deze functie 4 kan gebruiken in mijn project ipv 4 keer deze functie te kopieren om ze telkens lichtjes aan te passen.
3 woorden:
vermoeidheid – papier – OOP
De stage is vermoeiend, ik maak lange dagen en van de korte avond die je gemiddeld nog rest, wil je toch een lange avond maken. Gevolg? “’s avonds grote man, ’s morgens ook grote man!”. De rest van de woorden, spreken voor zich.
Week 5
Week 5 zit er op, het was een beetje een frustrerende week. Zo’n mooi weer en alle vrienden hebben wel vakantie, maar gelukkig is de sfeer bij Gonzales zeer aangenaam. Ik mocht deze week beginnen aan de uitwerking van mijn project, de Clientzone. Dit is een Zone waar Gonzales bestanden kan uitwisselen met hun klanten. De bedoeling is dat de medewerkers files via FTP op de server zetten en dat dit, speciaal voor de klanten, in een mooie lay-out word omgezet.
Wat heb ik deze week geleerd en welke problemen heb ik ondervonden?
1. Ik heb deze week ontzettend veel bijgeleerd over php en het zendFramework. In het begin was OOP nog een lastig begrip voor mij, maar ik begrijp het steeds beter en beter. Ik kan nu zelfs al eigen plugins schrijven voor het Zendframework.
2. Vorige week tijdens de analyse van het project heb ik over elke stap al goed nagedacht. Maar zelfs al doe je dit grondig, tijdens het programmeren blijf je steeds op onverwachte problemen stoten. Ik heb geleerd, dat ongeacht hoe goed je je ook voorbereid, er altijd onverwachtse problemen de kop op zullen blijven steken.
3. Ik kon mijn weg al wel vinden in HTML/CSS maar ik merk nu toch, dat hier nog veel verbetering mogelijk is. Gelukkig heb ik enkele collega’s die me hier goed bij helpen. Filip heeft vorige week mijn kunde van HTML en CSS al eens doorgelicht en hieruit bleek dat ik nog veel kon leren. Ik heb geleerd dat ik nog wel wat bijscholing kan gebruiken voor CSS en HTML. Gelukkig is een stage als deze een perfecte leerschool.
Problemen:
1. autocomplete box: In het logboek kan je zien dat ik 2 dagen ben bezig geweest met een simpele profiel pagina. Dit komt vooral omdat ik in dit formulier een autocomplete box wilde integreren. Dit is niet gelukt. De integratie van Ajax/Dojo in Zend Framework is voorzien, maar er is nog maar weinig documentatie over. Hoe heb ik dit opgelost? Ik heb er veel tijd aan verloren om de juiste implementatie te zoeken, maar ik heb ze nog niet gevonden. Ik heb geopteerd om deze autocomplete box dan maar te vervangen door een combo-box. Dit is iets minder gebruiksvriendelijk, maar ik besefte dat een autocomplete box eerder een extra is dan een vereiste.
2. Recursieve functies. De laatste dagen van de week ben ik bezig geweest met een oplossing te zoeken om het filesysteem van een bepaalde folder te mappen. Ik had hier gelukkig al een kleine voorstudie over gemaakt. Het lastige is om een systeem te maken dat folders in folders in folders kan scannen ongeacht hoe diep deze structuur gaat. Na wat zoeken op google werd duidelijk dat ik een recursieve functie nodig had. Je schrijft een code die het werk kan doen voor 1 folder, zodra deze door heeft dat in die folder er nog een folder is, laat je dezelfde functie de folder in de folder doorlichten. Zo kan je eindeloos door blijven gaan.
3. Databank structuren. Ik wist eerst ook nog niet hoe ik het filesysteem kon omzetten naar een tabel. ik dacht om 2 of meerder tabellen te gebruiken. Toen ik dit even besprak met Filip, omdat Koen afwezig was, heeft hij me wat bijgeleerd. Nu gebruik ik 1 tabel om alle files en folders in op te slaan. Folders en Files hebben quasi dezelfde eigenschappen. Het enige wat ze niet gemeen hebben is of ze een parent kunnen zijn of niet. In de tabel heb ik een veldje parent_id toegevoegd. Zodra de functie in een folder gaat scannen, slaagt hij in een variabele de id op van deze folder. Vervolgens wordt deze ID opgeslagen in parent_id van elke folder/file dat zich in deze folder bevindt.
Enkele woorden om deze week te beschrijven:
Zomer – ziek – Leerrijk
Zomer: Het was prachtig weer en zoals iedereen begin ik ook te verlangen naar een rustige zomervakantie. het was een beetje frustrerend dat veel vrienden vakantie hadden en ik elke dag naar mijn stage moest.
Ziek: Ik ben zwaar verkouden en dit heeft me wel een beetje parten gespeeld. De dagen lijken langer en je voelt je niet goed in je vel. Ik ben geen enkele dag afwezig geweest. Vrijdag was ik wel wat later, want ik moest toch eens bij een dokter passeren.En als je ’s morgens om half 8 vertrekt en ’s avonds pas om half 8 terug thuis komt zijn er weinig gelegenheden om eens een dokter te bezoeken.
Leerrijk : Ik heb deze week ontzettend veel technische dingen bijgeleerd. PHP/HTML/CSS loopt ondertussen supervlot en ik amuseer me er echt mee. De stage wordt met de dag leuker!
Halverwege
We zijn ondertussen 4 weken verder en dat wil zeggen dat wel half zijn. Nog eens 4 weken en stage zit er al weer op. Ik amuseer me er nog steeds kostelijk en ik besef heel goed dat ik het heb getroffen met mijn stagebedrijf. Er hangt een goede sfeer en echte problemen heb ik nog niet gehad.
Wat ik heb ik deze week geleerd?
Vorige week vrijdag had ik de opdracht gekregen om een concept voor een extranet of clientzone uit te denken. Die dag zelf nog ben ik al eens beginnen nadenken, maar heb ik het vooral vanuit een technisch standpunt benaderd. Welke tools ga ik gebruiken, welke zijn de beste voor de job en welke hebben een meerwaarde voor de toekomst?
Ik heb deze week vooral geleerd, wat ze verwachten van een goed concept en wat je al allemaal klaar moet hebben. Om mijn concept op duidelijke manier te presenteren, heb ik mockups gemaakt en was het noodzakelijk dat ik men concept goed kon verwoorden. Om dit project tot een goed einde te kunnen brengen heeft Filip, mijn “Skills” even geëvalueerd. Hieruit bleek dat ik toch nog wel wat oefening kon gebruiken op vlak van html, css.
Welke problemen ben ik allemaal tegengekomen?
- Aangezien ik maar een stagiar ben weet ik niet goed hoe er juist communiceerd wordt met de klanten. En wat er allemaal werd doorgegeven via welke media. Dit was wel belangrijk voor het concept. Ik heb dus veelvoudig aan Koen gevraagd, hoe de communicatie verloopt en wat er wel en niet zou moeten gebeuren via de Clientzone.
- Met het zend Framework, kom je altijd wel problemen tegen. Ik ben vrijdag gestrand op problemen om formulieren te voorzien van een lay-out. Aangezien Zend deze genereert op basis van bepaald functie, moet je nog via speciale commando’s deze gaan voorzien van een juiste schikking en lay-out. Dit probleem heb ik nog niet opgelost, maar zoals je weet, het internet en vooral Google is je vriend!
- Het programma Balsamiq Mockups is uiterst geschikt om Mockups en wireframes te maken. Maar ik heb geen 80$ over voor deze software. Dit brengt met zich mee dat je in principe je ontwerpen niet kan opslaan, maar hiervoor heb ik een oplossing gevonden. In het menu kan je je mockups exporteren naar xml en terug importeren. Dit zorgt voor extra moeite, maar het werkt en het is gratis. Op het internet vond ik dat dit de bedoeling was van ontwerper ervan: http://www.balsamiq.com/blog/?p=382
Als laatste nog 3 woorden om de afgelope week te beschrijven:
amicaal – Zelfkennis – Leerrijk
Evaluatie van de 2de week
Deze week had ik verschillende opdrachten gekregen. Ik heb maandag me nog wat verdiept in de FLARTOOLKIT en Papervision 3D. Ik ben er in geslaagd om een object te laten rijden op je bureau met de pijltjes toetsen. Perfect om spelletjes mee uit te werken.
Verder werd er me nog gevraagd om een abstract beest te maken in 3D en dit te animeren. Ze waren op zoek naar een beest dat op een lyrische manier liep en heel grof was van constructie. Er mochten veel grote polygonen(driehoeken) zichtbaar zijn in het model. Wat ik hier vooral bij heb geleerd is hoe ik objecten kan animeren. Tijdens de lessen blender hebben we wel gezien hoe we een camera kunnen laten roteren, maar we hebben nooit iets geleerd over “Character Animation” aan de hand van een skelet. Toen ik het model af had mocht ik weer een “nieuwere” technologie uitzoeken. WiiFlash is een systeem om een Wii-Remote te connecteren met je pc en te kunnen gebruiken in Flash. Hiermee heb ik al wat geëxperimenteerd, maar hiermee ga ik volgende week zeker nog verder.
De moeilijkheden die ik deze week ondervonden heb:
- Skelet animatie
Ik had ooit al eens geprobeerd om een character te animeren zonder veel succes en dat was 5 jaar geleden. Het is niet zo vanzelfsprekend. Ik had vooral moeilijkheden met het animeren zelf. Het skelet toevoegen was minder moeilijk, maar een goed loopbeweging maken is veel moeilijker. - Wii-remote connecteren met je pc
Ik heb hier nog steeds problemen mee. Er zijn enkele programmaatjes voor nodig om een WiiMote met je Mac te connecteren. In eerste instantie werkt dit goed. Maar telkens als ik 1 test heb uitgevoerd in flash met de Wiimote moet ik deze terug uitschakelen en alles terug opnieuw connecteren. Dit vertraagd ontzettend! - Wijzen met een Wii-remote
Als je een Wii hebt zal je dit zeker kennen. Met een Wiimote kan je wijzen naar je scherm om dingen er op aan te duiden. Hiervoor maakt een Wii gebruik van een Sensorbar. Deze sensorbar bestaat uit 2 infrarood lichtjes zodat je met hogere meetkunde kan bepalen waar je wiimote zich bevind en naar waar deze wijst. De wiskunde achter het wijzen is zeer moeilijk en ik heb geen sensorbar.
Hoe heb ik deze problemen opgelost?
Het internet barst van de 3D tutorials, maar duidelijke tutorials zijn schaars. Zeker voor een beginner is het soms zeer lastig en moet je soms lang opzoek. Je mag natuurlijk niet zomaar opgeven en na wat zoekwerk heb ik uiteindelijk een zeer goede tutorial gevonden.
Voor een constante herconnecteren met de Wiimote is er nog geen oplossing.Het ligt aan de software die iemand anders geschreven heeft. Dus we zullen er mee moeten leven. Ik denk dat deze software voor Windows beter werkt, maar om dit in een Virtual Machine te draaien is belachelijk.
Ik heb ondertussen de spullen gekocht om zelf een Sensorbar te maken. Deze ga ik maandag in elkaar knutselen. Voor vrijdag heb ik maar gebruik gemaakt van theelichtjes. Kaarsen geven ook infrarood licht af, maar zijn natuurlijk niet zo helder als enkele Ledjes. De wiskunde achter de wijzbeweging, moet ik nog altijd verder onderzoeken. Ik heb enkele scripts gevonden in andere talen die zouden werken, maar momenteel heb ik nog geen succes geboekt.
Vrijdag nam Koen(stagebegeleider) me even opzij voor een korte evaluatie. Hieruit bleek dat ze zeer tevreden waren. Ze vonden dat ik goed werk leverde en vooral een goede attitude had. Ik kom over als een zeer leergierig iemand die open staat voor veel nieuwe dingen.
Dit heeft me een goede boost gegeven om de volgende weken stevig in te vliegen.
3 woorden om deze week samen te vatten:
frustratie – variatie – innovatief
Klein woordje uitleg bij “frustratie”. Als je al 1 week, 8 uur per dag bezig bent met zoiets als een FLARToolkit, dan ben je die code beu gezien en verlang je naar een ander onderwerp. Maandag sloeg de frustratie toe toen ze me weer vroegen om iets te onderzoeken in de FLARToolkit. Ondertussen heb ik natuurlijk al wat andere opdrachten gekregen. Voor volgende week staat er nog iets nieuws op het programma. Ze willen al een tijdje een extranet maken voor hun klanten. En ze hebben aan mij gevraagd, om al eens een analyse te maken en tegen het einde van volgende week deze eens te bespreken met mijn begeleider.
De stage bevalt me! Het mag zeker nog even duren, de lange dagen zijn soms lastig, maar dit moet je er bij nemen!
De eerste week zit er op!
Deze week ben ik bezig geweest met het uitpluizen van de FLARtoolkit. FLAR staat voor Flash – Augmented Reality, dit wil zeggen dat je via een webcam bepaalde patronen kan herkennen en aan die scene,in 3D, objecten toe kan voegen. Kijk maar naar een van mijn vorige blog-artikelen.(dit)
Dit pakket bestaat uit verschillende Class-libraries voor Action Script 3. Enerzijds de FLAR library, anderzijds de Papervision Library. FLAR zorgt voor de herkenning van de patronen. Papervision is een 3D-engine in AS om in flash gebruik te kunnen maken van 3D objecten.
Wat ik heb geleerd tijdens deze week? Ik heb me een hele week bezig gehouden met het uitpluizen van 2 Action Script class-libraries. Ik ken deze ondertussen vrij grondig. En ik heb men kennis van AS3 nog eens kunnen uitbreiden en opfrissen.
Moeilijkheden:
- 3D objecten importeren
Na wat opzoekingswerk met onze goede vriend google was dit zo opgelost.
- 3D animaties importeren
Dit zorgt nog steeds voor problemen. Ik krijg nog steeds errors die ik niet kan verklaren. Het exporteren vanuit 3D studio Max of Maya gebeurt nog steeds niet hoe het zou moeten.
- Het beeld spiegelen
Toen ik begon met de Flartoolkit ergerde ik me er al aan. Het beeld dat op je scherm getoverd werd was altijd gespiegeld. Je zag jezelf niet zoals in een normale spiegel, maar je rechterhand kwam op de linker kant van het scherm en omgekeerd. Ik heb het beeld van de webcam wel kunnen spiegelen, maar als je dan je patronen naar rechts bewoog, ging je 3D object naar links. Toen heb ik samen met een Collega in de libraries gezocht naar de plaats waar we dit konden aanpassen. Uiteindelijk heb ik het, nadat men collega vertrokken was, de volledige oplossing nog zelf gevonden. Maar Filip heeft me wel in de goede richting geduwd!
Logboek Update
Het logboek is ge-update en kan je vanaf nu bekijken:
