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.
Weer een week vol interresante projecten.
Ik draai nu al enkele weken mee in de yappamachine, en ik ik leer elke dag wel iets nieuw bij. Zo heb ik vorige week mijn weg geleerd met uniform voor een project dat afgewerkt moest worden. Uniform is een speciale css die geschreven is voor formulieren zodat het web eindelijk eens zou afstappen van table formlayouts.
Uniform werkt wel zeer handig eens ik vertrouwd geraakte met alle css classes ( dat en veel kijken naar eerder gemaakte uniforms ).
Ook heeft Yoeri mij meegenomen naar een klant, om zo wat praktijkervaring op te doen omtrent het omgaan met klanten. Door recente gebeurtenissen in het c-md stagebeuren, voel ik mij genoodzaakt de namen van projecten niet te noemen, echter mijn stagecoordinatoren kunnen mij ten alle tijden om meer informatie verzoeken. Bij de klant moest ik vooral luisteren en notities maken. De bedoeling was om eerst een feel te krijgen van wat de klant wil, voor ik een conclusie trek. Het project bestaat uit een interne applicatie die ervoor zorgt ervoor dat de externe filialen bestellingen kunnen maken bij het hoofdfiliaal om hun winkels te vullen.
Het huidige systeem maakt nog gebruik van pen en papier en slorpt gewoon teveel tijd op. De bedoeling van de applicatie is dat alles geautomatiseerd verloopt en dat het hoofdfiliaal een overzicht behoudt. Hierdoor komt veel kostbare tijd vrij die voor andere doeleinden kan genuttigd worden.
Eens terug van de klant, had ik nog wat werk voor het eerdergenoemde project dat afgewerkt moest worden.
De laatste dag van de week had ik de hele namiddag om wat research en denkwerk te verrichten omtrent het project. Het doel was dat ik niet dacht aan de code, maar puur aan het project. Ik heb een non technische overview van het project moeten maken voor de bedrijfsleider, dewelke geinclude werd bij de offerte. Ook heb ik een basis structuur uitgedacht van de applicatie ( niet qua code, maar qua implementatie in het bedrijf ), de databasestructuur, en ook wat schetsen en ideeën gemaakt qua ui design.
Het meeste schrijfwerk ( met de hand, en niet het toetsenbord ), werd gespendeerd aan het uitdenken van de structuur, maar het meeste creatieve werk werd verricht op vlak van ui design. Zo heb ik gedacht over de mensen van de distrubutie, dewelke gewoon orderforms moeten hebben en algemeen ook pc leken zijn. Ik heb wat de balans moeten vinden tussen mijn hardware, mijn software, en mijn ( ja ik heb er een ) designerkant. Het eerste wat ik deed was meteen de programeerzijde afsluiten, omdat dat pas voor later was. Ik begon dus wat te schetsen, en na het idee voor oversized knoppen op een touchscreen, ging mijn idee uit naar radial menu’s. Radial menu’s leken mij de ideale keuze, daar ze intuitief werken. Echter toen ik wat menuitem’s aan het bedenken was voor in het menu, viel het me op dat ik eigenlijk een zeer leeg menu zou heben.
Deze conclusie rijker, dacht ik wat verder na. Noem me minimalistisch, maar had de distributie eigenlijk wel een pc nodig. Het zou perfect passen binnen de lijnen van het project om de pc te schrappen, en te vervangen door een alternatief. Dus het nieuwe idee is om een wireless printserver te installeren waar een goedkope usb printer op gehangen zal worden, dewelke de leverformulieren afdrukt wanneer nodig.
Op deze manier stroomlijn ik niet alleen de hele operatie, ook spaar ik hierdoor uit op extra kosten, elimineer ik user error op de distributielaag, en blijft het project nog redelijk manageable.
Ik heb vorige week vooral geleerd dat ik mij soms eens moet neerzetten, stoppen en denken. Maar al te vaak vloog ik in projecten en begon van het begin al te programmeren. Deze projecten bracht ik allemaal tot een goed einde, daar niet van, maar ik realiseer nu dat op het begin wat (langer) denken al snel zijn vruchten afwerpt eens je halverwege de devcycle bent.
It smells like victory.
Er zit een drukke week op, maar eerst leuker nieuws. Ik wens hierbij Yoeri nog eens een gelukkige verjaardag, en nog veel jaren erbij.
Nu vraag je je misschien af van waarom ik over maandagochtend praat, alhoewel het ondertussen al dinsdag is. Wel dit omdat ik gisteren een snipperdag had voor het foodweekend project in orde te krijgen en dus is vandaag mijn maandag van de week.
We hebben ook beslist om toch cake te blijven gebruiken, en onze kennis uit te breiden om zo meer cake te leren zodat we een hoger % van cake gebruiken. In the long run is dit een viabele oplossing.
Persoonlijk, vooral op vlak van programmeren en vastgeroest wezen zijn in mijn eigen methoden van doen en werken, ben ik aan het veranderen. Ik nam vroeger niet snel iets aan als het niet door mij was gemaakt en vond vaak opnieuw het wiel uit om hetzelfde resultaat te bereiken. Daar ik bij Yappa andere code moest gebruiken ( en een hoop bijleren ), heb ik zo een glimmer licht gezien.
Vanaf de eerste dag ben ik in contact gekomen met mvc frameworks, jquery, uniform, en andere ongein die ik daarvoor niet gebruikte of weigerde te gebruiken. Het zal wel een combinatie geweest zijn van wat hubris en, euh, laten we het maar bij hubris houden.
Ik moet wel zeggen, frameworks zijn tof, maar een framework als cake zou ik nooit gebruiken, gewoon om het feit dat het veel te groot is. Wat ik mijzelf wel nog ooit eens zie doen, is zelf eens een miniframework schrijven om kennis op te doen van hoe die dingen werken aan de binnenkant.
Wat ik nog niet heb opgezocht, maar waar ik momenteel veel aan het denken ben over hoe dat zou werken, is een functie binnen een functie aanroepen navenant een parameter die wordt meegegeven. vb als ik aan de functie selectcontroller de parameter users meegeef dat hij de functie users inlaadt. An sich is dat simpel te doen met een switch, maar er moet een manier zijn om het te doen zonder. Je zegt nu dan ook, maar waarom ga je niet kijken? Wel simpelweg om het feit dat als ik niet ga kijken wel degelijk moet nadenken over de code wat ik denk dat het zou moeten zijn.
Ook hebben we vorige week een teambuilding exercise gedaan. Ons middagmaal bestond uit pizza’s. Niet zomaar pizzas uit de aldi waar bij bovenop leven, maar versgemaakte pizza’s. Alles was vers, het deeg en de saus. Het was een plezante ervaring, en vooral een vullende. Hier nog het resultaat
Weer een week @ the yap offices. Een week vol interessante tidbits en nieuwe dingen om bij te leren. Maar eerst even wat ophelden. Ik heb een zwart gat in mijn geheugen. Ik zit hier al 3 weken, dus de week die ik nu beschrijf, is eigenlijk week 3, en ik ben nu net week 4 begonnen.
Dus wat is er nu eigenlijk gebeurd de laatste 2 weken? Heel veel. I for one heb mijn oogkleppen verloren. Ik heb kennisgemaakt met cakephp, wat mij het mvc patroon heeft aangeleerd ( alhoewel ik nog weerspannig ben tov alle andere cake functies ). Hiernaast heb ik ook een aangename kennismaking gehad met jquery, de write less do more javascript library.
Jquery in mijn ogen is wat javascript had moeten zijn. Jquery laat je nog altijd dezelfde fouten maken als javascript, nog altijd dezelfde logica gebruiken, maar nu met beter onderhoudbare code die bovendien vaak veel kleiner is. En de minified versie is maar 50kb, wat quasi niks is als je caching enablet op je website.
Jquery kwam eigenlijk als een verassing, een soort koppelverkoop met een van de andere dingen die ik het liefste doe, nl. php classes en jscript applets coden. Het werd het laatste toen Yoeri mij vroeg om hem een image cropper tool te schrijven. Hij wou een tooltje ala facebook waar je een fototje sleept in een kader. De logica al hebbende ( had ik al uitgedacht ), vroeg Yoeri of ik het niet in jquery kon maken. Ik zei dat ik het zou proberen, alhoewel ik het niet echt zo plezant vond. Dit omdat ik vroeger al in een bestaand jquery applet heb moeten pleueren, en dat was zwaar tegengevallen om het zo te zeggen.
Maar nu was het anders. Ik vertrok van 0, met mijn logica en eureka, het werkte zoals ik het wou, mede dankzij de geweldige documentatie van jquery. Deze documentatie evenaart naar mijn inzien die van php.net, welke ik van uitmuntende kwaliteit vind.
Ik heb uiteraard niet alleen zitten programmeren. Ik heb ook een analyse moeten doen en research moeten verrichten.
Zoals in mijn eerder genoemde post, zou ik een analyse moeten doen van het huidige Yappa framework ( cakephp ), en zien of wij dit wel naar behoren gebruiken, etc…
Mijn constatatie was dat we het framework eigenlijk alleen voor zijn mvc patroon gebruiken, de models, de validatie in de models, en nog enkele kleine tidbits. Ik moest met deze data die ik verzameld had naar een oplossing zoeken. Ik kwam langs verscheidene frameworks, van 100lines tot codeIgniter, ik heb zelfs de optie om zelf een framework te schrijven overwogen.
Dit alles heb ik mooi gebundeld in een powerpointpresentatie die ik gepresenteerd heb waarna we een brainstormsessie gehouden hebben over wat er net gepresenteerd was. Onze conclusie was dat cake het framework voor de toekomst is, en dat we gaan omvormen om meer cakefunctionaliteit te gebruiken ( huidig gebruik is om en bij de 20% ).
Mijn analyse was die van djappa, het Yappa cms dat als backend op hun websites draait. Ik heb het hele systeem overlopen met als opdracht te analyseren op fouten qua programmatie en vooral fouten qua usability. Ik noteerde mijn bevindingen in een document dat naderhand werd overlopen waarbij bij elk punt werd aangeduid of dit werd aangepast, en hoe.
Mijn eerste week als stagair bij Yappa zit er al op.
Mijn eerste week bestond uit het aanleren van cakephp. Cakephp is een framework dat het mvc principe hanteert en nog veel extra functionaliteit voorziet.
De reden dat ik hoefde te leren was dat de meeste applicaties van Yappa geschreven zijn in cakephp. Cakephp, alhoewel goed ontwikkeld, heeft nog altijd zijn grote nadelen. Een van de grootste nadelen is het complete gebrek van bruikbare documentatie. Bij het cakeproject hebben ze de klassieke fout gemaakt van teveel tijd aan de code te spenderen en dan de documentatie als bijzaak te zien. Dat dit briljante code oplevert staat buiten kijf, maar als niemand voorgenoemde code kan gebruiken, dan verliest de code zijn nut. Een voorbeeld ten tijde van dit schrijven hiervan is de cake blog tutorial, die nog altijd voor cake1.1 gemaakt is terwijl mensen die cake downloaden cake1.2 krijgen. Hierdoor krijgen de initiaten problemen en geven ze het al snel op omdat ze in het begin al moeilijkheden ondervinden.
Een ander probleem met cake is dat het een soort jaloezie/ ziekelijk verafgoding voor ruby on rails heeft. Cake is in principe gewoon een php on rails implemtatie. Dat de cake developpers nog zoveel functionaliteit inbouwen zoals het maken van formulieren met behulp van ingebouwde functies, laat dit nog meer doorschijnen.
Kleine applicaties zoals blogs kan je hierdoor snel maken, maar zodra je iets wil schrijven in de aard van een kleine enterprise backend, loop je al snel tegen muren.
Daarom zijn we beginnen te spreken over wat we eigenlijk wel nodig hebben. Als we vlug een rundown doen, dan valt het op dat we eigenlijk maar 20% van de cake functionaliteit gebruiken. We gebruiken de mvc implementatie, de models, validatie op models, en nog wat tidbits. Echter, eens het aankomt op het maken van forms, dan gebruiken wij uniform, voor javascript gebruiken we jquery, en de meeste classes hebben we al van vorige projecten, dus die kunnen gewoon hergebruikt worden.
Binnenkort gaan we dus kijken van wat de beste oplossing is. Gaan we ons eigen framework schrijven met drop in capabilities voor jquery, uniform, etc… Of gaan we ween barebones framework nemen als basis, en dat verdermodden voor aan onze noden te voldoen? Dit roept om research!
En eens we ons framework hebben, ga ik verder aan de uploadr applicatie, waarvoor ik wederom research moet verrichten voor het ontwerp, implementatie, etc…
Na lang beraadslagen, heb ik samen met mijn partner in crime, Ben Jansen, eindelijk beslist om onze stek op het web twoppl.be te noemen.
Twoppl heeft een dubbele betekenis. Als je het opbreekt in 2 woorden dan krijg je two ppl, oftewel two people, wat synoniem staat voor het feit dat we met 2 hier aan begonnen zijn. Aan de andere kant is het ook een kort woord, een web2.0 aanspreektitel zowaar. Twoppel, kort en krachtig.
Op deze blog zal ik vanaf nu dan ook mijn andere activiteiten bijhouden. Een van die activiteiten is mijn stageblog. Sinds enkele dagen vertoef ik ten kantore van onze c-md alumni Yoeri Severy. Yoeri heeft als bedrijf Yappa, wat staat voor, wel geen idee, ik moet het eens vragen, maar het heeft vast en zeker te maken met kort en krachtig, en iets met Yoeri.
Blijf volgen voor meer updates over mijn stage en andere uitspattingen.