Youtube filmgeluid aanpassen

Toen ik een filmpje bekeek van mezelf in Youtube, zag ik de term “audioruil” staan. Na een klik erop zag ik dat ik de muziek van me filmpje kon aanpassen naar muziek die Youtube aanbied. Een uitstekende feature voor wie achtergrondmuziek wilt stoppen in zijn filmpje of zijn diavoorstelling. De knop “Alleen liedjes van vergelijkbare lengte als mijn video weergeven” is een uitstekende feature.

Youtube audioruil

Youtube audioruil

Toch mis ik nog enkele features zoals volumeregeling van de muziek. Ook zou het tof zijn om meerdere muziekfragmenten te stoppen in een filmpje en ook effecten zoals infaden en uitfaden.

Gmail krijgt thema’s

Toen ik Gmail (Google mail) daarnet opende kreeg ik de melding dat ik een thema kon kiezen voor me Gmail. Alweer een applausje voor het Gmail team, prachtig werk. En geen enkel thema dat voor lees irritatie zorgt, alhoewel dat terminal thema een beetje overdreven is (leuk voor diehard geeks zekers?). Hier alvast de keuze tussen de thema’s.

Gmail thema's

Gmail thema

ISO publiceert OOXML/ODF documentatie

Na 8 maanden heeft het ISO de documentatie voor het OOXML formaat vrijgegeven. De documentatie bestaat uit 4 delen waarvan het eerste deel bestaat uit 5560 pagina’s. Het totaalpakket bestaat uit maar liefst 7228 pagina’s. Dankzij de publicatie kunnen softwaredeveloppers nu zelf software schrijven die Office 2007 bestanden kan lezen, schrijven of bewerken. Voor al de geïnteresseerden, hieronder heb ik de links gezet naar de 4 delen.

Deel 1: Fundamentals and Markup Language Reference
Deel 2: Open Packaging Conventions
Deel 3: Markup Compatibility and Extensibility
Deel 4: Transitional Migration Features

Naast de publicatie van de OOXML specificaties, is de tegenhanger ODF (OpenDocument Format) zijn specificaties ook gepubliceert deze maand. Deze telt maar ongveer 700 blz en het duurde twee jaar voor deze documentatie beschikbaar kwam. Ah men beweert dat er geen speciale voorkeursbehandeling is geweest maar ik heb toch zo’n vermoeden dat Microschoft er wat geld tegen gegooid heeft.

ODF documentatie

OOXML: .docx , .xlsx , …
ODF: .odt , .ods , …

Veel leesplezier alvast.

MySQL escape quotes

Toch slim van onze universitaire ontwikkelaars bij Netlog om de php functie mysql_real_escape_string te gebruiken. Helaas vergeten ze de escaped tekens weg te doen bij de output. Ah die universitairen zijn ook maar mensen zekers? Misschien moet ik maar eens een vakantiejob doen bij Netlog en al die foutjes gaan verbeteren :D.

netlog-escape-quotes

Update: als je kijkt naar me blogroll zie je dat wordpress hetzelfde doet :D.

CPU: Ghz en 32-bits

Ik vond dat deze blog ook eens iets mocht uitleggen aan de lezers. Wat is dat nu met Ghz in een processor en wat is die 32-bits. Laten me eerst de Ghz uitleggen. De meeste processors werken met een klok. Die klok bepaald deels de snelheid van de CPU. Stel dat we een 3Ghz CPU hebben, dan tikt de klok in de CPU 3 miljard keer per seconde. Onverstelbaar snel hé. Nu wat gebeurt er in zo’n tik. Wanneer een klok tikt, voeren alle transistoren in de CPU iets uit. Wat voeren ze uit? Een instructie, bijvoorbeeld add. Een complexe instructie zoals de vermenigvuldiging wordt in enkele kloktikken uitgevoerd. Nu weet je ook de reden waarom een optelling sneller is dan de vermenigvuldiging. De snelheid hangt natuurlijk niet compleet af van de Ghz, er is natuurlijk ook nog de cache in de CPU. De cache in de CPU is sneller omdat de CPU direct aan de data kan ipv eerst naar het werkgeheugen te lopen en in zijn register te stoppen. Het nadeel is dat cache in CPU een dure onderneming is.

Dit gezegd over de GHz, wat about die 32-bits. 32-bits is geen nieuw concept. Het bestaat al héél lang, al voor mijn geboorte. Eigenlijk wilde men al direct 32-bits CPU’s maken maar de moederbordfabrikanten hadden geen tijd om zo’n moederborden te maken, waardoor het enige vertraging opliep. 32-bits wil zeggen dat de CPU 32 adreslijnen en 32 datalijnen heeft. De adreslijnen zijn nodig om een geheugencel in het werkgeheugen te kunnen benaderen. De datalijnen zijn nodig om de data erop te kunnen plaatsen. Als je CPU een 32-bits CPU is kan hij maximum 4 miljard bytes benaderen of kortweg 4GB. Het grootste getal dat een CPU kan wegschrijven is ook 4 miljard als je alle negatieve even niet meerekend.

{java} instanceof en typecasting

In Java komt het wel eens voor dat ik kijk of een object van een bepaalde class afkomstig is met het keyword instanceof. Wanneer ik een methode uit die class wil gebruiken, moet ik die typecasten en dan pas kan ik een methode oproepen. Een voorbeeld. Ik heb een class A met twee childs B en C. In B zit een methode “getBItem()” en in C de methode “getCItem()”. Nu heb ik een class D die een lijst bijhoud van A classes. Tijdens het itereren van mijn lijst in class D, gebruik ik instanceof om te kijken of het object van class B of C komt. In de huidige Java zou dit er als volgt gaan uitzien.

Iterator<A> iterator = getLijst().iterator();

while( iterator.hasNext() ) {
A current = iterator.next();

if( current instanceof B ) {
B currentB = (B) current;
Object item = currentB.getBItem();
} else if( current instanceof C ) {
C currentC = (C) current;
Object item = currentC.getCItem();
}

In een intelligentere compiler zou Java zien dat als een if conditie true oplevert dat current daadwerkelijk een instantie is van class B (of class C) en dat de programmeur niet meer hoeft te typecasten. Zo zou het eruit zien.

Iterator<A> iterator = getLijst().iterator();

while( iterator.hasNext() ) {
A current = iterator.next();

if( current instanceof B ) {
Object item = current.getBItem();
} else if( current instanceof C ) {
Object item = current.getCItem();
}

Koepels deel 1

Bij me broer zijn bedrijf zijn we aan het uitbreiden. We zijn al enkele weken bezig met deel 1. Deel 1 bestaat erin om een halve hectare landbouwgrond te voorzien van enorme koepels (60 meter lang, 3m50cm hoog en 10m breed). Hiervan komen er 4 stuks waarvan één tweedehands die we zelf afgebroken en vervoerd hebben. Een metalen constructie vervoeren met een open oplegger dat vasthing met een zestal touwen was niet bepaald goed voor de veiligheid voor andere mensen :D Hoewel we op alles voorzien waren hoor. Dit was fase 1 van deel 1. Fase 2 was alles klaar zetten van de buizen, poten en plastiek. Fase 3 was verkeerd ingeschat omdat de poten te groot waren voor de machine moesten we wachten tot op dit weekend om met fase 3 te starten. We kregen dus een nieuwe machine, ditmaal 10 kg zwaarder dan de vorige (totaal rond de 25kg). Hoe gaat dit in zijn werk? Een koepel bestaat uit grote buizen waarover plastiek ligt. Deze buizen moeten op poten vast staan en dus was fase 3 de poten erin draaien. Dat waren serieuze poten aangezien de omvang van zo’n buis. Die buis staat op de grond en is ongeveer een halve meter hoog. Daarop moet een machine komen die de poot erin draait. Die machine werkt via oliedruk die zijn olie van de tractor haalt. Wet 1 (volgens mijn broer) als de olie eruit spuit, doe niks en spring weg. Waarom wegspringen? Omdat die machine aan het draaien is en twee personen een tegenwerkende kracht moeten bieden. Bij het lossen of teveel druk, krijgt de machine teveel macht en is gedaan met werken :D. Na een dag in de regen en modder poten draaien kwam fase 4. Fase 4 bestond erin om de nieuwe buizen te plooien tot koepelbuizen. We plaatsen drie nieuwe koepels. Er zijn 90 buizen voor nodig maar dat zijn gewoon metalen buizen die kaasrecht zijn. Voor een koepel moeten die gebogen zijn. Dus een dag werken om alle 90 buizen te buigen. Een leuk weetje is dat één zo’n buis zo’n 65 kg weegt en dat je dus meer dan 6 ton ijzer moet buigen in die fase. Gelukkig had het goed geregend gisteren en dus wilde die machine niet vlotjes meewerken met het buigen van die buizen (nog extra werklast dus).

Al bij al een goeie ervaring. Fase 3 is nog niet compleet en moet zaterdagmiddag compleet zijn, gevolgd door een namiddag van 60 bogen plaatsen. Fase 5 is dan plastiek bevestigen en fase 6 de binnen afwerking.

Deathline: 1 dec 2008

(ik zal es zorgen voor wat foto materiaal)