Na de mentions (de berichten) weergeven zitten nu ook de insights (de grafieken) er in. Deze week heb ik me volop gesmeten op het insights gedeelte. Persoonlijk vind ik dat 1 van de dingen die Engagor echt awesome maakt. De inbox is zeer handig om je berichten te combineren van verschillende sociale media maar met insights kan je uit al die data zeer handige grafieken en tabellen genereren.
Standaard zijn er een aantal die worden aangeboden maar je kan dat ook uitbreiden.
Ik heb 3 van die 'custom' insights toegevoegd voor Vimeo.
Maar ook de chart builder heb ik deze week gemaakt. Dagelijks worden er bepaalde gegevens over een profiel opgeslagen in de database. Dit worden KPI genoemd. de bovenstaande 'custom' insights worden aan de hand van die KPI gemaakt. Maar met de chart builder kan je je eigen grafieken generen. Voor de standaard dingen werkt dit allemaal maar voor de KPI moet je bepaalde instellingen configureren zodat de chart builder weet welke KPI er gebruikt moet worden voor welke request.
Zo kan je bijvoorbeeld een grafiek laten genereren die van de gewenste gemonitorde accounts het aantal fans/followers weergeeft
Het 'grappigste' moment van de week vond ik toch wel toen Engagor plots tijdens het laden van een pagina paars uitsloeg.
Dit kwam door een 404 die werd teruggeven door Embedly, een service die wordt gebruikt om video previews etc te geven.
De css van die 404 haalde heel Engagor overhoop. Uiteindelijk bleek dat de call naar Embedly op die plaats niet nodig was en heb ik dat stukje code er uit gehaald.
No more purple Engagor
vrijdag 12 april 2013
vrijdag 5 april 2013
Insights here I come
Deze week heb ik her en der kleine aanpassingen gemaakt aan mijn
code, ben ik begonnen aan de code voor Insights en heb ik een aantal
bugs gefixed.
De eerste bug die me was opgevallen was dat er een verschil was in
hoe authenticated accounts en unauthenticated accounts werden
opgeslagen. Bij de geauthenticeerde was de service_id de id van op vimeo
en bij de rest was de service_id de username. Hierdoor werkten er een
aantal dingen niet.
Na een aantal aanpassingen die wel iets uitmaakte maar niet het gewenste resultaat leverden.
Uiteindelijk bleek het aan een parameter in de connect functie te
liggen. Er werd daar een request value mee gegeven in de plaats van de
waarden die ik wou.
Na dit op te lossen werkte alles nadat ik de accounts opnieuw had gekoppeld.
Daarna had ik even het gevoel dat ik spoken aan het jagen was. Code
die eerst werkte leek plots niet meer te werken. De description niet
meer bij likes en uploads te staan
Het bleek uiteindelijk aan de regex te liggen. Deze was niet afgesteld op multiline en sommige descriptions waren dat wel. Na wat gezoek eens de string en de regex bij regexr ingevoerd ( http://gskinner.com/RegExr/ ) om uit te zoeken hoe het kwam, want in de string zat het wel en in het resultaat niet. Het probleem kunnen oplossen door aan de regex een 's' toe te voegen. Toen kwamen de descriptions weer mooi binnen.
Daarna ontdekte ik als je op iemand anders zijn video post dan geeft dit weer alsof je op jezelf post.
Dit kwam omdat mijn code gebaseerd was op alleen maar de activiteit op iemand zijn profiel te trakken
Na een kleine aanpassing in de feedprocessor (profile_id en profile_name) zou dit voor toekomstige mentions niet meer mogen voorvallen
Het bleek uiteindelijk aan de regex te liggen. Deze was niet afgesteld op multiline en sommige descriptions waren dat wel. Na wat gezoek eens de string en de regex bij regexr ingevoerd ( http://gskinner.com/RegExr/ ) om uit te zoeken hoe het kwam, want in de string zat het wel en in het resultaat niet. Het probleem kunnen oplossen door aan de regex een 's' toe te voegen. Toen kwamen de descriptions weer mooi binnen.
Daarna ontdekte ik als je op iemand anders zijn video post dan geeft dit weer alsof je op jezelf post.
Dit kwam omdat mijn code gebaseerd was op alleen maar de activiteit op iemand zijn profiel te trakken
Na een kleine aanpassing in de feedprocessor (profile_id en profile_name) zou dit voor toekomstige mentions niet meer mogen voorvallen
dinsdag 2 april 2013
And the bad luck continuous
Na deze week hoop ik dat de back luck toch wel gedaan is. Een mooi
zonnetje zou ook handig meegenomen zijn. Deze week 2 dagen van thuis
uit gewerkt door omstandigheden. De eerste keer was het mijn fout, Om 9
uur op stage aankomen en ontdekken dat je de verkeerde adapter mee
hebt... Meerdere laptops hebben heeft dus ook zijn nadelen. Dan de
woensdag wel weer vlot kunnen werken. We hebben met de 3 stagiairs
samen gezeten (Lien, Stéphane en ik) om een presentatie te maken over
hoe een bericht in Engagor wordt verwerkt. Lien had de algemene flow in
een note gezet waarna we de taakverdeling hebben gemaakt zodat elk een
deel uitwerkt. Deze presentatie wordt gemaakt met Reveal.js. Deze week
heb ik ook de contentformatter afgewerkt voor vimeo en daarbij ook een
kleine aanpassing aan hoe youtube video thumbnails worden weergegeven.
De contentformatter is het deel code dat zal zorgen dat de data van een
bericht die in de DB wordt opgeslagen juist wordt weergegeven. Uit de
contentformatter komt dus een stuk html die de mention bevat. Donderdag
op het einde van de dag ging het dan weer mis. Met het dichtklappen
van mijn laptop brak mijn scharnier. Allegeluk heb ik de zelfde avond
nog een vervang scharnier kunnen bestellen. Het kapote scherm is dan
ook de reden voor de 2de dag werken van thuis uit waar ik vooral aan de
presentatie heb gewerkt.
zondag 24 maart 2013
Errors Sigh...
Na een beetje vertraging door mijn verjaardagsfeestje de post van vrijdag
De week afsluiten met een hoop stress. Dat moest er ooit eens van komen.
Maar eerst het begin van de week.
Deze week heb ik verder gewerkt aan de code om activiteit in Engagor binnen te halen. De zogenaamde "feedprocessor" die Vimeo activiteit omzet naar het formaat dat Engagor gebruikt. Vorige week leek alles daar te werken en deze week is die code dus ook op de master in gemerged. Daarnaast heb ik deze week ook code geschreven om dagelijkse statistieken (aka Profile KPI's) bij te houden. Daarvoor werd er een aparte branch aangemaakt zodat ik aan die code kon werken los van de feedprocessor.
Voor insights is het de bedoeling dagelijks volgende KPI's van een Vimeo profiel bij te houden:
Maar het goede nieuws kan niet blijven duren.
Vandaag maakte Jurriaan mij er op attent dat mijn code nogal veel fouten raporteerde. Geëindigd op een 25000 tal.
Wat bleek als de eerste pagina van activiteit die men opvroeg leeg was, werd dit niet opgevangen. Mijn unit test had dit niet gedetecteerd omdat deze situatie niet voor kwam in de tests.
Toen ik dus mijn 2de account ( waar er geen activiteit op is) liep het dus mis. Omdat de eerste pagina direct leeg was werkte mijn voorspelling niet of er een volgende pagina was en bleven de errors dus komen dat er een lege pagina was opgevraagd.
Uiteindelijk is dat procces handmatig gestopt om te voorkomen dat de errors bleven komen.
De oplossing lag er in om een simpele = toe te voegen in de code.
Maar alles lijkt nu in orde te zijn dus ik kan met een min of meer gerust hart het weekend verwelkomen.
De week afsluiten met een hoop stress. Dat moest er ooit eens van komen.
Maar eerst het begin van de week.
Deze week heb ik verder gewerkt aan de code om activiteit in Engagor binnen te halen. De zogenaamde "feedprocessor" die Vimeo activiteit omzet naar het formaat dat Engagor gebruikt. Vorige week leek alles daar te werken en deze week is die code dus ook op de master in gemerged. Daarnaast heb ik deze week ook code geschreven om dagelijkse statistieken (aka Profile KPI's) bij te houden. Daarvoor werd er een aparte branch aangemaakt zodat ik aan die code kon werken los van de feedprocessor.
Voor insights is het de bedoeling dagelijks volgende KPI's van een Vimeo profiel bij te houden:
- Het aantal volgers
- Aantal mensen dat die persoon volgt
- Aantal uploads
- Aantal video's waar die persoon in getaged is
- Totaal aantal video's geassocieerd met die persoon
- Aantal albums
- Aantal kanalen
- Aantal groepen
Maar het goede nieuws kan niet blijven duren.
Vandaag maakte Jurriaan mij er op attent dat mijn code nogal veel fouten raporteerde. Geëindigd op een 25000 tal.
Wat bleek als de eerste pagina van activiteit die men opvroeg leeg was, werd dit niet opgevangen. Mijn unit test had dit niet gedetecteerd omdat deze situatie niet voor kwam in de tests.
Toen ik dus mijn 2de account ( waar er geen activiteit op is) liep het dus mis. Omdat de eerste pagina direct leeg was werkte mijn voorspelling niet of er een volgende pagina was en bleven de errors dus komen dat er een lege pagina was opgevraagd.
Uiteindelijk is dat procces handmatig gestopt om te voorkomen dat de errors bleven komen.
De oplossing lag er in om een simpele = toe te voegen in de code.
Maar alles lijkt nu in orde te zijn dus ik kan met een min of meer gerust hart het weekend verwelkomen.
vrijdag 15 maart 2013
Let it snow
Op een prachtige dinsdag ochtend wakker worden in een witte
wereld, het begin van een nachtmerrie voor de gemiddelde mens die naar
zijn werk, of in mijn geval stage moet raken. Uiteindelijk viel het
allemaal nog mee. Toen ik op de stage binnen kwam en de master binnen
trok op mijn branch kwam er heel veel binnen. Er was een nieuwe feature
toegevoegd, maar ook een aantal veranderingen voor het developpen zelf.
De ochtend begon dus niet met code schrijven maar met aanpassingen
maken, wachten op instructies om de code toch maar niet te breken en een
paar nieuwe dingen installeren. De build scriptjes zijn nu ook
aangepast en daardoor moet je nu niet meer compass heel de tijd op de
achtergrond laten draaien om aanpassingen te detecteren.
Wat je moest installeren kon je vinden in een readme file maar omdat ik linux draai moest ik een paar stappen anders doen. Deze heb ik gevonden op de volgende url : http://www.stehem.net/2012/05/08/how-to-install-ruby-with-rbenv-on-ubuntu-12-04.html
Tijdens de rest van de week ben ik bezig geweest met de code te schrijven om de activiteit van een user op vimeo binnen te halen en om te zetten naar Engagor mentions. Momenteel werkt dit al en ben ik bezig aan optimalisatie om de snelheid op te voeren en zo veel mogelijk dubbele code te herwerken (DRY FTW)
Momenteel als ik het account van het witte huis binnenhaal zijn dit de resultaten
1st run : 52.423666000366 seconden
214 resultaten
91 calls
2nd run: 20.404885053635 seconden
54 resultaten
36 calls
Tot zo ver, back to writing code
Edit:
na een kleine optimalisatie (bepaalde calls alleen doen bij een upload)
1st run : 34.525609970093 seconden
214 resultaten
49 calls
2nd run: 6.244863986969 seconden
54 resultaten
10 calls
Wat je moest installeren kon je vinden in een readme file maar omdat ik linux draai moest ik een paar stappen anders doen. Deze heb ik gevonden op de volgende url : http://www.stehem.net/2012/05/08/how-to-install-ruby-with-rbenv-on-ubuntu-12-04.html
Tijdens de rest van de week ben ik bezig geweest met de code te schrijven om de activiteit van een user op vimeo binnen te halen en om te zetten naar Engagor mentions. Momenteel werkt dit al en ben ik bezig aan optimalisatie om de snelheid op te voeren en zo veel mogelijk dubbele code te herwerken (DRY FTW)
Momenteel als ik het account van het witte huis binnenhaal zijn dit de resultaten
1st run : 52.423666000366 seconden
214 resultaten
91 calls
2nd run: 20.404885053635 seconden
54 resultaten
36 calls
Tot zo ver, back to writing code
Edit:
na een kleine optimalisatie (bepaalde calls alleen doen bij een upload)
1st run : 34.525609970093 seconden
214 resultaten
49 calls
2nd run: 6.244863986969 seconden
54 resultaten
10 calls
vrijdag 8 maart 2013
En toen begon het pas echt
Zo het is alweer het einde van week 3
De tijd vliegt eigenlijk wel. Deze week ben ik aan het implementeren van de Vimeo API zelf begonnen. De functies schrijven die worden aangeroepen om data in Engagor binnen te halen, maar ook om commentaren te posten en video's te liken. Hier heb ik ook unit tests voor moeten schrijven, yeey geautomatiseerd liken en unliken op iemand anders zijn video omdat je je eigen video niet kan liken. Commentaren kon ik alle geluk wel op mijn eigen video zetten. De documentatie van de Vimeo API is langs de ene kant heel goed maar langs de andere kant ook weer teleurstellend. Welke parameters je allemaal moet meegeven, en ook de errorcodes die je kan terug krijgen zijn allemaal heel mooi gedocumenteerd. Er is zelfs een "playground" waar je alle calls kan uitproberen. Helaas is dat ook de enige manier om er achter te komen wat het antwoord allemaal kan bevatten. Over het algemeen valt dat wel mee, maar voor velden zoals type bij activity zou het wel handig zijn moest je weten welke soorten er allemaal bestaan. Ik had hiervoor een tweet gestuurd naar het twitter account voor vragen over de API maar daar was geen antwoord op gekomen. Jurriaan had los daarvan ook nog een bericht gestuurd met de zelfde vraag. Hierop is wel antwoord gekomen. Daarin zeiden ze dat de "playground" momenteel de beste optie was hiervoor en erkende ze dat hun response documentatie beter kon.
Daarnaast ben ik dan gisteren begonnen aan het echte werk. Nadat we op woensdag uitleg hadden gehad van Jurriaan begon dus het moment om de code te gaan schrijven die effectief de data van vimeo gaat binnenhalen en opnemen in Engagor. Als voorbeeld hiervoor mogen we kijken hoe het wordt gedaan bij Facebook. Op het eerste zicht is die code nogal overweldigend, dus dan komt het aan op stukje bij beetje de code door te nemen en op te bouwen.
Nog 1 ding, de server van Vimeo heeft zijn tijd niet op UTC staan... gevolg om te controleren of een bericht nieuw is moet er dus tijd worden omgevormd.
De tijd vliegt eigenlijk wel. Deze week ben ik aan het implementeren van de Vimeo API zelf begonnen. De functies schrijven die worden aangeroepen om data in Engagor binnen te halen, maar ook om commentaren te posten en video's te liken. Hier heb ik ook unit tests voor moeten schrijven, yeey geautomatiseerd liken en unliken op iemand anders zijn video omdat je je eigen video niet kan liken. Commentaren kon ik alle geluk wel op mijn eigen video zetten. De documentatie van de Vimeo API is langs de ene kant heel goed maar langs de andere kant ook weer teleurstellend. Welke parameters je allemaal moet meegeven, en ook de errorcodes die je kan terug krijgen zijn allemaal heel mooi gedocumenteerd. Er is zelfs een "playground" waar je alle calls kan uitproberen. Helaas is dat ook de enige manier om er achter te komen wat het antwoord allemaal kan bevatten. Over het algemeen valt dat wel mee, maar voor velden zoals type bij activity zou het wel handig zijn moest je weten welke soorten er allemaal bestaan. Ik had hiervoor een tweet gestuurd naar het twitter account voor vragen over de API maar daar was geen antwoord op gekomen. Jurriaan had los daarvan ook nog een bericht gestuurd met de zelfde vraag. Hierop is wel antwoord gekomen. Daarin zeiden ze dat de "playground" momenteel de beste optie was hiervoor en erkende ze dat hun response documentatie beter kon.
Daarnaast ben ik dan gisteren begonnen aan het echte werk. Nadat we op woensdag uitleg hadden gehad van Jurriaan begon dus het moment om de code te gaan schrijven die effectief de data van vimeo gaat binnenhalen en opnemen in Engagor. Als voorbeeld hiervoor mogen we kijken hoe het wordt gedaan bij Facebook. Op het eerste zicht is die code nogal overweldigend, dus dan komt het aan op stukje bij beetje de code door te nemen en op te bouwen.
Nog 1 ding, de server van Vimeo heeft zijn tijd niet op UTC staan... gevolg om te controleren of een bericht nieuw is moet er dus tijd worden omgevormd.
vrijdag 1 maart 2013
Einde van de 2de week
Zo dat was week 2...
De tijd gaat snel, zo snel dat ik het amper door had dat we al aan het einde van de 2de week zaten.
In week 1 heb ik eerst een voorbereidende opdracht moeten doen.
De opdracht die ik moest uitwerken was een interface maken voor het beheren van whitelabeling. Dit houdt in dat klanten enkele aanpassingen kunnen doen aan de look van Engagor.
Tot nu toe werd dit als een klant hier echt om vroeg rechtstreeks in de databank gedaan. Nu is dat dus rechtstreeks mogelijk vanuit Engagor bij de instellingen als je de benodigde rechten hebt.
Tijdens het werken aan deze opdracht ben ik ook in aanraking gekomen met caching via Memcache. Ik had hier in een project dat ik met vrienden doe al eens mee in aanraking gekomen. Het framework dat gebruikt wordt heeft ondersteuning voor memcache dus het is gewoon kwestie van de juiste methodes aan te roepen met de juiste parameters.
Tegen het einde van de week was deze voorbereidende opdracht af, en werd deze nieuwe feature gedeployed kon het wer aan de eigenlijke opdracht beginnen; het integreren van vimeo in Engagor.
Momenteel is de authenticatie afgewerkt. Dit is echter niet zonder slag of stoot gegaan. De basiscode die voorzien is, is bedoeld voor OAuth2, de meeste API's draaien daar ook op. Maar zoals met alles zijn er uitzonderingen waar regels zijn. Ondanks dat V2 voorkomt in de url bleek de API van vimeo nog steeds op OAuth1 te draaien. Dit verklaarde waarom het mij niet lukte om mijn account te authenticeren. Twitter zelf werkt ook nog met OAuth1 maar de code daarvoor is al een tijd geleden geschreven en er zijn ondertussen wel een aantal aanpassingen gebeurd aan hoe de code word opgebouwd. Dus de uitdaging was hierin om zo veel mogelijk van de huidige manier van werken te gebruiken en alleen waar nodig terug te vallen op code zoals die voor twitter wordt gebruikt.
Maar, het is nu vrijdag voormiddag en het werkt, iets waar ik toch wel blij om ben.
Tot zo ver de eerste 2 weken
De tijd gaat snel, zo snel dat ik het amper door had dat we al aan het einde van de 2de week zaten.
In week 1 heb ik eerst een voorbereidende opdracht moeten doen.
De opdracht die ik moest uitwerken was een interface maken voor het beheren van whitelabeling. Dit houdt in dat klanten enkele aanpassingen kunnen doen aan de look van Engagor.
Tot nu toe werd dit als een klant hier echt om vroeg rechtstreeks in de databank gedaan. Nu is dat dus rechtstreeks mogelijk vanuit Engagor bij de instellingen als je de benodigde rechten hebt.
Tijdens het werken aan deze opdracht ben ik ook in aanraking gekomen met caching via Memcache. Ik had hier in een project dat ik met vrienden doe al eens mee in aanraking gekomen. Het framework dat gebruikt wordt heeft ondersteuning voor memcache dus het is gewoon kwestie van de juiste methodes aan te roepen met de juiste parameters.
Tegen het einde van de week was deze voorbereidende opdracht af, en werd deze nieuwe feature gedeployed kon het wer aan de eigenlijke opdracht beginnen; het integreren van vimeo in Engagor.
Momenteel is de authenticatie afgewerkt. Dit is echter niet zonder slag of stoot gegaan. De basiscode die voorzien is, is bedoeld voor OAuth2, de meeste API's draaien daar ook op. Maar zoals met alles zijn er uitzonderingen waar regels zijn. Ondanks dat V2 voorkomt in de url bleek de API van vimeo nog steeds op OAuth1 te draaien. Dit verklaarde waarom het mij niet lukte om mijn account te authenticeren. Twitter zelf werkt ook nog met OAuth1 maar de code daarvoor is al een tijd geleden geschreven en er zijn ondertussen wel een aantal aanpassingen gebeurd aan hoe de code word opgebouwd. Dus de uitdaging was hierin om zo veel mogelijk van de huidige manier van werken te gebruiken en alleen waar nodig terug te vallen op code zoals die voor twitter wordt gebruikt.
Maar, het is nu vrijdag voormiddag en het werkt, iets waar ik toch wel blij om ben.
Tot zo ver de eerste 2 weken
Abonneren op:
Posts (Atom)

