Category Archives: Tools

Excel vba macro om rijen te kopiëren gebaseerd op de waarde van een cell

Excel

Deze is alleen voor de Excel-nerds onder ons!

Om data van DUO klaar te maken voor Fineo (voor mijn visualisatie van doorstroom PO-VO), moest ik rijen dupliceren. De data zegt bijvoorbeeld dat van school X er 3 leerlingen naar school Y gaan. Dan is het nodig voor Sankey diagrammen dat de stroom van school X naar school Y 3x vermeld wordt.

Nu bevatte het bestand zo’n 47.000 records. Dus handmatig dit doen, is niet te doen. Ik vond een macro die het volgende kan:

  • Zoek op werkblad 1 in rij 1 en kolom X naar een waarde. (In dit geval het aantal leerlingen dat doorstroomt.)
  • Kopieer op werkblad 2 deze rij precies zo vaak als de gevonden waarde.
  • Ga door voor de volgende rij op werkblad 1.

De code klopte alleen niet meer helemaal voor de huidige Office versie en werkte ook niet met grote aantallen records. Hieronder mijn versie:

[code lang=”vb”]
Sub DuplicateRows()
Dim currentRow As Long
Dim currentNewSheetRow As Long: currentNewSheetRow = 1

For currentRow = 1 To 32768 ‘The last row of your data
Dim timesToDuplicate As Integer
timesToDuplicate = CInt(Worksheets("Sheet1").Range("J" & currentRow).Value)
Dim i As Integer
For i = 1 To timesToDuplicate
Worksheets("Sheet2").Range("A" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("A" & currentRow).Value
Worksheets("Sheet2").Range("B" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("B" & currentRow).Value
Worksheets("Sheet2").Range("C" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("C" & currentRow).Value
Worksheets("Sheet2").Range("D" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("D" & currentRow).Value
Worksheets("Sheet2").Range("E" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("E" & currentRow).Value
Worksheets("Sheet2").Range("F" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("F" & currentRow).Value
Worksheets("Sheet2").Range("G" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("G" & currentRow).Value
Worksheets("Sheet2").Range("H" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("H" & currentRow).Value
Worksheets("Sheet2").Range("I" & currentNewSheetRow).Value = Worksheets("Sheet1").Range("I" & currentRow).Value
currentNewSheetRow = currentNewSheetRow + 1
Next i
Next currentRow
End Sub
[/code]

Om dit voor andere bestanden te gebruiken, moet de code andere waardes hebben voor het maximale aantal rijen, de kolom waar op gezocht wordt (hier was dat “J”) en het aantal velden dat gekopieerd moet worden.

Video splitten en joinen met My MP4Box

My MP4Box

Voor mij is de primaire video-opnemer mijn telefoon. In de loop van de jaren nam de bestandsomvang steeds meer toe, omdat de moderne smartphones op een steeds hogere resolutie opnemen. Op zich niet erg, maar de tijd nodig voor verwerking nam heel erg toe. Ik merkte dat ik filmpjes alleen deelde als ze in ‘rauwe toestand’ acceptabel genoeg waren. Zodra er ook maar enige bewerking nodig was, dan kostte dit uren, aangezien mijn laptop voor het bewerken niet een wonderbaarlijke processor vermenigvuldiging onderging. Terwijl ik alleen maar op zoek was naar een tool die filmpjes kon knippen en ophakken en weer aan elkaar breien. Dus ging ik op zoek naar een tool die:

  • Een MP4 bestand kan opsplitsen, vanaf een bepaald moment, tot aan een bepaald tijdstip.
  • Meerdere Mp4 bestanden aan elkaar kan plakken tot één bestand.
  • Deze functionaliteit biedt zonder alles op te nieuw te ‘encoderen’ (het beeldje voor beeldje opnieuw berekenen van de video).
  • Juist niets grafisch ondersteunt. Dus geen storyboard, geen clips, geen tijdlijn waarin je film meespeelt of zo.

De toepassing ligt in filmpjes die net iets tè rauw zijn van zichzelf, maar ook niet een hele aftiteling behoeven en ook geen sjieke overgangen tussen scenes. Ik was daarom blij My Mp4Box te ontdekken waarmee ik de volgende workflow heb:

  • Mp4 transporteren naar laptop via USB.
  • In VLC bekijken welke delen ik wil behouden.
  • De start- en eindtijdstippen noteer ik even.
  • In MP4Box kies ik het tabblad ‘Split’.
  • Aanwijzen van het bestand en invoer van de tijdstippen.
  • Klik op de knop ‘Split’.
  • Samenvoegen werk ongeveer hetzelfde, maar dan op het tabblad ‘Join’.

Bellenblazen met de Resultatenbox DUO – De rendement en VSV editie

In mijn vorige post vertelde ik hoe je data van DUO kunt omzetten in een “Bewegingsdiagram” met Google Spreadsheets. Toen plaatste ik financiële indicatoren van MBO’s op de assen. Hieronder een andere variant, maar dan met rendement en VSV.

Opmerkingen:

  • De tijddimensie is eigenlijk schooljaar, maar ’08-09′ wordt dan geïnterpreteerd als 8 september of zo. Daarom wordt schooljaar 08-09 gezien als rapportagejaar 2009.
  • Sommige jaren hebben voor sommige instellingen geen data of deze lijkt ‘0’. Omdat de assen zich hierop aanpassen en de schaal te groot wordt voor de rest zijn deze rijen verwijdert.
  • Een Google Spreadsheet met twee tabbladen met elk 300 rijen en 2 datakolommen èn 2 keer een bewegingsdiagram gaat al erg traag reageren.
  • Als je op de afbeelding klikt, kom je in de ‘echte’ versie.

Gapminder Rendement en VSV MBO

Werk als volgt:

  • Druk op de knop “Play” om de ontwikkeling door de jaren heen te volgen.
  • Kies rechtsboven bij “Kleur” voor “Unieke kleuren” om de instellingen visueel te onderscheiden.
  • Vink bij de lijst met instellingen aan welk MBO je wilt volgen. Er wordt dan een ‘pad’ getekend.

Bellenblazen met de Resultatenbox DUO

Als je eenmaal ooit Hans Rosling zijn presentatie op TED over Gapminder hebt gezien dan wacht je gewoon tot je voor het eerst zelf data tegenkomt met 2 of 3 ruimte-dimensies en één tijd-dimensie. Hij visualiseert statistieken als volgt:

  • Twee dimensies of ratio’s bepalen de plaats van een ‘bel’ op de assen.
  • Een derde dimensie bepaalt de omvang van de bel.
  • Door deze plaat te maken voor meerdere jaren kan hij de bellen laten ‘bewegen’.

Onlangs publiceerde DUO de indicatoren MBO. Deze cijfers kunnen door instellingen worden gebruikt om op te nemen in hun jaarverslag of “Geïntegreerd Jaardocument”. Definities zijn ook te vinden in de informatie-encyclopedie. DUO laat het je downloaden in excel. Niet helemaal genormaliseerd maar ja, het moet wel leesbaar blijven. [Wie vindt er trouwens de fout in de kop met jaartallen?]

Als je deze data normaliseert en in Google Spreadsheets laadt krijg je het onderstaande resultaat. Als je op de afbeelding klikt, kom je in de ‘echte’ versie:

Gapminder Rentabiliteit en Solvabiliteit MBO

 

Werk als volgt:

  • Druk op de knop “Play” om de ontwikkeling door de jaren heen te volgen.
  • Kies rechtsboven bij “Kleur” voor “Unieke kleuren” om de instellingen visueel te onderscheiden.
  • Vink bij de lijst met instellingen aan welk MBO je wilt volgen. Er wordt dan een ‘pad’ getekend.

Ik ben helemaal geen expert op het gebied van financiële indicatoren, de inspiratie voor deze assen kreeg ik van Onderwijsgrafiek zijn blogpost over de financiele positie MBO. Overigens vindt ik dat een betere plek voor deze cijfers een MBO variant van Vensters voor Verantwoording zou zijn.

 

Overdraagbaarheid bij zonsondergang

Google komt met een nieuwe service: Keep. Voor het maken van notities om deze vervolgens overal beschikbaar te hebben. Tja. Normaal zou ik gelijk aan de slag gaan met zo iets. Ben namelijk ook niet helemaal tevreden over de voor de hand liggendste concurrent: Evernote. Het zou weer één leverancier minder zijn in mijn dagelijkse applicatielandschap. Toch ben ik huiverig en voorzichtig. De ene dag nemen ze namelijk afscheid van mijn lievelingstool en de andere dag bieden ze weer een nieuwe aan.

Wat nu als ik er weer veel mee werk, veel in opsla en er afhankelijk van wordt? En ze er vervolgens mee kappen? Ze hebben bij Google Reader ook nooit gevraagd wat ik er voor over zou hebben!

Tegelijk denk ik: we weten hoe dit moet, hoe je dit kunt voorkomen! En toch laten we ons als consument uitspelen door leveranciers. Het antwoord is technisch simpel: OPEN STANDAARDEN. Wat weer “endpoint-portability” garandeert. Oftewel: alles is overdraagbaar als een dienst stopt. Of door een leverancier in de categorie “sunset” of “spring cleaning” wordt gestopt.

Zou idealiter als volgt werken:

  • Een instelling die standaarden beheert verzint een aantal afspraken. Wellicht in samenwerking met belanghebbenden. In dit geval over “Notities”. In deze standaard wordt meegenomen welke informatie notities kunnen bevatten en in welke structuur. Jip-en-Janneke voorbeeld: Een notitie heeft een titel en een inhoud. De inhoud kan tekst bevatten en/of een bijlage. De tekst kan lijsten of platte tekst bevatten. Een bijlage kan elk willekeurig bestand zijn. Aan een notitie kunnen categorieën en trefwoorden (labels en tags) gehangen worden. Notities zijn te groeperen tot notitieblokken. Zo ongeveer.  De taal waarin deze standaard wordt beschreven is de standaardtaal voor standaarden (XML).
  • Leveranciers conformeren zich hieraan omdat consumenten anders weglopen. Positief: ze kiezen je voor de kwaliteit van de dienst er omheen. Gebruiksvriendelijkheid, prijs en functionaliteiten zoals doorzoekbaarheid, sociale deelbaarheid en toegankelijkheid op smartphone etc. Klanten kiezen je niet voor je geheime datamodel.
  • Leveranciers bieden de mogelijkheid om data te exporteren in een bestand (zip) waarin alles zit dat een eindgebruiker heeft toegevoegd. Inhoudelijk is dit bestand opgemaakt volgens de standaard.
  • Leveranciers bieden de mogelijkheid om data te importeren.

Deze overdraagbaarheid druist natuurlijk helemaal tegen het commerciële belang is. Klanten moet je het toch niet makkelijk maken om te vertrekken? Klanten zouden eigenlijk niet moeten komen als vertrek niet mogelijk is. En die klant … dat ben ik.

 

 

 

Rouw om de hele Google Riedel

Google Reader

Als je me vraagt welk instrument de afgelopen vijf jaar de meeste invloed heeft gehad op mijn ontwikkeling, dan heb ik maar één antwoord: Google Reader. Sommigen zien het als transportmedium voor nieuws waarbij je niet handmatig alle sites hoeft af te grazen. Dat is het ook. Als je het echter vol stopt met feeds van mensen die hun ervaringen delen, wordt het meer een persoonlijke leeromgeving. Of een belangrijk onderdeel daarin. Ik nam er ook de tijd voor om het als mengkraan te gebruiken die afgesteld was op mijn persoonlijke behoefte. Toch overleeft het niet de laatste lenteschoonmaak van Google.

Vanuit het standpunt van bedrijfsvoering snap ik het wel. Alhoewel het onderhoud van dit product dat ‘af’ is, een micro-uitgave zou zijn voor de gigant, staat het blijkbaar zo rommelig in hun produktenlijstje. En dat belemmert weer hun focus. Lastig, zo’n fijne, correct werkende applicatie, die af en toe een agendapuntje zal zijn in je overleg en zo.

Principieel hanteer ik het standpunt dat ik niet te verknocht moet raken aan een softwaremerk, anders krijg je steeds zo’n baalgevoel bij het nemen van afscheid. Ik merk dat ik het hier niet kan voorkomen. Net alsof je gehecht ben aan die ene schroevendraaier of hamer, terwijl de klus klaren eigenlijk belangrijker is.

Tegelijk denk ik: had nou eens geluisterd naar Dave Winer. Alhoewel zijn blogs bij mij vaak stemmetjes in mijn achterhoofd oproepen (“Vertrouw die gratis diensten niet van grote bedrijven, ze hebben je data en kunnen er mee kappen wanneer ze willen…”) is zijn wantrouwen niet hetzelfde als een samenzweringstheorie bedenken. Zijn oplossingsrichting: eigenaar blijven van je eigen data op je eigen platform op je eigen voorwaarden…

Praktisch gezien moet ik de bron-URL’s van mijn 500+ feeds exporteren en in een alternatief platform importeren. Op zich denk ik wel dat die er gaan komen. Hier een stappenplannetje met toelichting.

Via Pierre

 

Tekenen met PowerPoint

Afgelopen week heb ik een aantal visualisaties gemaakt. Nu bedoel ik met tekenen niet het uit de vrije hand schetsen maar het zogenaamde vectorgeoriënteerd tekenen. Met objecten enzo voor schematische zaken. Een ‘echt’ pakket hiervoor zou Adobe Illustrator of Microsoft Visio kunnen zijn. Maar voor mijn doel kunnen deze teveel en hebben daardoor een te steile leercurve. Je zou verwachten dat PowerPoint alleen is voor eenvoudige dia’s. Toch kom ik er een eind mee. Alleen opslaan als een hoge resolutie tekening lukte me niet direct.

De exportfunctie waarin een dia opgeslagen wordt als jpg, heeft standaard een resolutie van 96 dpi. Deze valt wel te pimpen naar ongeveer 300 dpi, door een register-hack. Maar dat vond ik ook niet voldoende. Mijn opslaan workflow is nu als volgt:

Omdat een pdf alle informatie over pijlen, vierkanten, cirkels en tekstvakken bevat als ‘object’ en niet als afbeelding (als het tenminste geen foto is) kan je in- en uitzoomen zover je wilt. En dus ook opslaan in hoge resolutie.

De oneindige jukebox

Ik heb mijn antenne voor nieuwe vormen van visualisaties altijd aan staan. Soms is de manier van visualiseren interessant, los van het onderwerp waar het over gaat. Nog beter is het als zowel de visualisatie als de inhoud je liggen. In dit geval maakte de combinatie van toegepaste visualisatie en muziek mij nieuwsgierig.

Onderstaand diagram toont het nummer “Locus Priory” (van Saltillo‘s album Monocyte) na analyse door de “Oneindige Jukebox”. Het analyseert een track, ontdekt op welke momenten de muziek dezelfde kenmerken vertoont. Op deze tijdstippen kan er gesprongen worden naar een ander deel van de track. Hieronder zichtbaar als lussen. Als je dit willekeurig doet krijg je een oneindig aantal paden door het nummer heen en kan het dus oneindig lang duren.

Als je het wilt horen en zien, klik dan hier.

Het is afkomstig van Echonest, die allerlei muziek-analyses als service bieden. Deze is gebouwd door Paul Lamere, die schrijft over muziektechnologie op zijn blog.

WhatsApp berichten migreren naar een nieuwe mobiel

De overstap naar mijn nieuwe Samsung Galaxy SIII is goed gegaan, maar waar ik even mee liep te klungelen was Whatsapp. Het migreren van data kan meestal op één van de volgende manieren:

  • Online synchroniseren omdat een app slechts een frontje is van een systeem elders. Voorbeelden zijn Gmail, Google Calender, Evernote en Instagram.
  • Lokaal (op mobiel zelf) exporteren en via USB/PC kopiëren naar nieuwe mobiel. Op de nieuwe mobiel deze data weer importeren. Mijn voorkeur gaat uit naar *.csv bestanden voor data omdat deze dan ook in excel te lezen is. Voorbeelden zijn data van enkele tooltjes zoals Phonalyzr (telefoongebruik), Sleepbot (slaapduur) en NetCounter (dataverkeer).

In het geval van WhatsApp moet je de volgende stappen doen of vermijden om je berichten te verplaatsen naar je nieuwe mobiel:

  • Nog NIET op je nieuwe mobiel WhatsApp installeren! Als je je huidige telefoonnummer verifieert op je nieuwe smartphone, zijn je berichten op je oude mobiel niet meer in te zien. WhatsApp start daar dan eenvoudigweg niet verder op, zonder eerst opnieuw een verificatie te doen. Dat heb ik dus wel gedaan zodat ik verder kon …
  • Start WhatsApp op je oude mobiel op. Ga in het menu naar “Instellingen”.
  • Kies voor “Meer” en dan voor “Reservekopie van gesprekken”.
  • Koppel je mobiel via USB aan je PC of laptop.
  • Open de SD-Card en zoek de map “WhatsApp”.
  • Kopieer de hele map naar je PC.
  • Kopieer deze vervolgens naar de SD-Card van je nieuwe mobiel.
  • Installeer nu wel WhatsApp.
  • Doorloop de SMS verificatie.
  • WhatsApp vindt nu je gespreksgeschiedenis en vraagt of deze herstelt moet worden vanuit de reservekopie. Klik OK.
  • Om te testen: open een dialoog, scroll naar boven, klik “Laad eerdere berichten”. Als het goed is, zijn alle berichten meegekomen.

Overigens ontdekte ik al zoekende nog een andere optie voor als je gericht WhatsApp gesprekken wilt bewaren:

  • Open Whatsapp
  • Open het gesprek dat je wilt bewaren.
  • Tik het menu aan.
  • Tik “Meer” en dan “E-Mail dit gesprek”.
  • Vervolgens e-mail ik het naar mezelf.
  • In je mailbox ontvang je een mailtje met het complete gesprek als *.txt bijlage. Bij mij ging dat tot meer dan een jaar terug.

Omdat gmail ook door txt bijlagen kan zoeken, komen de WhatsApp berichten nu ook terug in de zoekresultaten. Mits ze dat zoekwoord bevatten natuurlijk. Handig!

Sky Map: nerdy romantiek

Stel, je staat een beetje nerdy in het leven, je hebt niet zozeer gevoel voor romantiek, maar wel begrip van het concept. Op een dag zit je aan het strand samen met iemand anders naar de ondergaande zon te kijken. Even later verschijnt er zelfs een heldere sterrenhemel. Wat doe je dan?

Dan pak je Sky Map erbij! Wat kan je ermee?

  • Door je smartphone te richten op dat deel van de hemel waar je iets van wilt weten, toont het de sterrenbeelden en planeten. Het werkt niet met je camera, maar op basis van GPS en kompas. Dus ook bij een bewolkte hemel toont het wat je eigenlijk zou zien.
  • Als je de naam van een planeet of sterrenbeeld intypt, toont het een pijl waar deze zich bevindt. Hiervoor draai ik met de smartphone op armlengte rond. Je kunt je smartphone dan net zolang richten totdat je op de juiste plek bent. Zodat je weet wáár je in de lucht moet kijken.

Overigens is het voor kinderen ook een ontzettend leerzame app!

Tot voor kort werd Sky Map gemaakt door Google, maar sinds de laatste opruiming in januari stoppen ze er mee. Gelukkig voor alle nerds onder een romantische sterrenhemel: de Android app wordt open source.