Media deflatie

Door RoadRunner84 op vrijdag 1 november 2013 12:30 - Reacties (5)
Categorie: -, Views: 3.963

De laatste tijd zien we steeds vaker dit fenomeen optreden, het fenomeen dat ik de naam media deflatie geef.
Media deflatie is het fenomeen dat consumenten steeds vaker media naast zich neerleggen. We zien dit al een tijd gebeuren bij muziek en film media. We slaan de stap van het aanschaffen van een medium (CD/DVD) over en kopen direct een licentie op het gebruiksrecht van de content. Ik laat hier ongelicenseerd downloaden (bitTorrent et al.) voor het gemak buiten beschouwing, dat is een hele andere discussie.

Vrij van de label ketting
Content producenten beginnen ook te zien dat zij niet afhankelijk zijn van een medium bedrijf (record label) om geld te verdienen met hun content. Steeds vaker biedt een kleine artiest zijn muziek aan via zijn website, of neemt een bedrijf als Amazon in de hand om het voor hem te verkopen. Bedrijven als Netflix en Spotify maken het ook en snel tempo eenvoudiger voor kleine artiesten om zonder media magnaat als tussenpersoon hun content ter beschikking te stellen voor distributie via het internet.
Natuurlijk klagen de grote jongens, bijgestaan door RIAA en BREIN, steen en been dat de industrie (sinds wanneer is kunstuiting een industrie?) naar de haaien gaat door de huidige stand van zaken. Dan moet ik ze toch teleurstellen met de welbekende mededeling dat hun verdienmodel en mediummodel niet meer van deze tijd is. Net zoals zoveel andere bedrijfstakken is hun bestaansrecht aan het afzwakken. Laat ze eerder een nieuwe invulling vinden van hun bedrijf dan de vooruitgang proberen tegen te werken.
Aansluitend bij het direct aanbieden op internet van de content zien we een interessante trend dat artiesten hun content aanbieden T.E.A.B. Ofwel, de content is gratis beschikbaar, met een donatie knop erbij. Er wordt dan gevraagd om een donatie te doen gelijk aan de waarde die jij zelf aan die content toedicht. Verbazingwekkend genoeg (of denk ik nu te Nederlands?) lijkt dit concept goed genoeg te werken voor ten minste enkelen om er hun boterham mee te verdienen.

Verstoken van werkgever
Hoewel het bij muziek goed werkt, is het een ander medium dat meer als werkgever dan als noodzakelijk kwaad lijkt te werken. Dit zijn de nieuwsmedia (kranten en tijdschriften). Steeds vaker worden kranten of tijdschriften opgeheven door een te laag rendement. Deze week nog heeft Sanoma aangekondigd een hele rits met tijdschriften te stoppen. Dit betekent ook het opheffen van banen. Tijdschriften en kranten worden namelijk niet alleen geredacteerd, er wordt ook content (artikelen en columns) gemaakt. Vaak zijn deze journalisten en columnisten in dienst van de medium eigenaar, zij hebben dus een vaste baan.
Ik zie het dus gebeuren dat steeds meer journalisten niet alleen op freelance basis artikelen schrijven, maar ook dat zij dit in een directere vorm aan consumenten zullen aanbieden. Er is hier al een perfecte oplossing voor: het blog. Net zoals muzikanten muziek direct op hun website te koop aanbieden, zie ik het ook gebeuren dat journalisten via een website/weblog hun artikelen aan consumenten aanbieden. Natuurlijk is de zekerheid van inkomsten dan veel minder, maar dat lijkt een trend die we overal zien. Een journalist wordt nu een ZZP’er, zoals we die nu ook al in onder andere de bouw zien.
Er is dan nog wel ťťn puzzelstukje dat ingevuld moet worden. Namelijk hoe een journalist in de aandacht komt. Maar deze vraag is evenwel van toepassing op muzikanten. Waar wij van muziek proeven doordat radio stations (of podcasts) ons een nummer van goede artiesten laten horen, zo zullen die enkele blijvende nieuwsmedia (of nieuwssites) ons laten proeven van de journalistieke kundigheid van deze schrijvers.

Andere creatieve industrieŽn teloor
Over schrijvers gesproken, deze vlieger gaat ook op voor de ridders met de pen. Het publiceren van boeken is al lang niet meer zo exclusief als het ooit was. Drukken is al nauwelijks nog rendabeler dan printen (tenzij 10000+ oplage) en boekbinden is steeds eenvoudiger geworden. Als gevolg kan een auteur van een goed verhaal vrij eenvoudig een drukker/printer inhuren (print on demand service) om een bescheiden oplage van zijn boek te printen. Of als dat nog te hoog gegrepen is, zijn er tegenwoordig ook bedrijven die namens jou eBooks te koop aanbieden.
Ik hoop dan ook dat deze trend snel genoeg zijn intrede maakt om het bestaansrecht van bibliotheken nieuw leven in te blazen. Los van de digitale varianten is de bibliotheek namelijk de literaire tegenhanger van Netflix en Spotify. Ik denk dat bibliotheken dan ook voor de schrijfkunst redelijk essentiŽle instellingen zijn. De praktijk zal vermoed ik eerder richting eBooks schuiven, wat betekent dat bibliotheken digitale plaatsen worden om een boek in digitaal bruikleen te nemen.
Dan als toetje nog een andere creatieve discipline die naar mijn vermoeden mettertijd gedeÔndustrialiseerd zal gaan worden. Spellen, en dan niet alleen computer spellen, die dankzij Steam al eenzelfde lot genieten als hierboven geschetst. Nee, ook bord/kaart/tafel spellen. Dankzij printbedrijven is het al vrij eenvoudig geworden om regelboekjes en speelkaarten te laten maken. Maar ook de ingewikkeldere spelcomponenten zoals speeltegels en pionnen/poppetjes worden met rasse schreden reŽler om op kleine schaal te maken dankzij 3D printing en de bedrijven die dit als een dienst aanbieden.

Conclusie
Ik zie een stevige trend in de creatieve “industrie” om de grote middenvelders op de bank te zetten, waardoor de creatievelingen/artiesten/kunstenaars open veld hebben om hun geesteskinderen direct aan te bieden aan de consumenten annex kunstliefhebbers. Naast een gekleurder en gevarieerder scala aan kunstuitingen zal de prijs beter aansluiten bij wat de gebruiker er voor over heeft en houdt de artiest meer over omdat er (praktisch) niets aan de strijkstok van de platenbonzen en kornuiten blijft hangen.

Koop/huur je film: http://www.amazon.com/
Tijdschriften te gronde: http://www.sanoma.nl/pagi...gie-en-reorganisatie-aan/
Publiceer je spel: https://www.thegamecrafter.com/

HOWTO: Avoid floating-points in (low level) embedded systems en

By RoadRunner84 on Monday 1 April 2013 15:25 - Comments (3)
Category: -, Views: 4.425

On this forum I attend, there was a guy asking how to scale a read ADC value to be fit for human reading. I'll start out writing the exact situation and then continue with a copy of my story about avoiding floating points.

The situation
The user wanted to link a LiPo battery to a microcontroller to measure discharged capacity. The LiPo pack sources up to 4.2V to the circuit.
The used microcontroller allows for 2.5V on it's 10-bit ADC input. To scale the 4.2V to 2.5V or the ADC, a voltage divider is used. The values of the resistors would be 1k and 1.5k, resulting in Vo = Vi * 1.5k / (1.5k + 1k) with Vi being 4.16V and Vo being 2.5V.

Another guy suggests translating the value as follows:
You'll have to correct your voltage to be:
voltage = value/1023*2.5*2.5/1.5;
The maximum you can measure is 4.17V.


Ow! This hurts! Value (0-1023) divided by 1023 will be 0 unless value is 1023. At least, that's the case for integers! And in a microcontroller you don't want to use floating point!

So, I feel obligated to describe how this is done without making a monster of your code.
We have a value that is in the range 0 to 1023 which actually maps onto a voltage of 4.16V
I stated we don't want to use floating point, so 4.16V is actually 4167mV or 417cV (centivolts)
Would we divide 4166.6 over 1023 the value would be about 4.073. In an integer multiplication this would become 4.
The error this generates is noticably large, since 1023 * 4 = 4092 or 4.092V
If you can settle for a displayed value of 4.09V for an actual voltage of 4.17V then you're done: just multiply by 4 to get the value in millivolts.

If you want higher accuracy, seek for the larges multiplier within the 0 to 216-1 (65535) range.
So, we already determined that the multiplier value is close to 4.073. Let's divide 65536/1024 by that value to see how many times we can fit that in. (65536/1024)/4.073... is about 15.7.
Too bad it fits just under 16 times, since we don't have a hardware accelerated divider we settle for 8 (highest power of 2 that fits under 15.7).
So, we have a value of (4166.6/1023)*8, which turns out to be about 32.55. Too bad this is close to 32.5. But just for the example we'll continue.
A value of 1023 would be 4.16V, so we'll multiply the value 1023 by the rounded value of 32.55, which is 33. The result is 33759. This result is now divided by 8 (23) (since that is the multiple of the constant we just used). 33759/8=4219.875. which rounds down to 4.21V.

So an actual voltage of 4.16V is displayed as
4.09V for the formula voltage = value * 4; with an error of 0,06V
4.21V for the formula voltage = (value * 33u) >> 3; with an error of 0.043V
Both are about the same. But what I wanted to explain is, using this little bit of math results in way smaller and way faster code, at the expense of a mere 67 millivolts worst case.

Let me add a third calculation. In the second example I showed that the multiplicand is close to 32.5. This means that multiplying it by 2 would get it close to 65.0. This is good, because a smaller discarded fraction results in a more accurate result. The expense here will be that we cannot use 16-bit (native) integer resolution anymore. We could actually expand the resolution to the full 32 bits now, but that's for example 4.
We repeat the calculation of dividing (2something/1024)/4.073... but with something being 17 intead of 16. The result is (217/1024)/4.073... which is about 31.4. This again is just under 32, so we'll go for 16 now (highest power of 2 under 31.4).
Again we calculate (4166.6/1023)*16, which now turns out to be about 65.1678. This is quite good, since this value is close to 65.
A value of 1023 would be 4.16V, so we'll multiply the value 1023 by 65. The result is 66,495. Notice this value is larger than a native integer can contain on the MSP430; the code will be a little less efficient. This result is now divided by 16 (24) (since that is the multiple of the constant we just used). 66,495/16=4155.9375. which rounds down to 4.15V. Wow, that's close to 4.16V!

Now, for a last example, since we crossed the 16 bit boundary, let's do this again for the highest value within the 32 bit realm.
Again we calculate (2something/1024)/4.073..., but now for something we use 32. The result is (232/1024)/4.073... which is about 1,029,785.5, this is just under 1,048,576 (220), so we'll settle for 524,288 (219). These numbers are larger, but the calculations are identical to the previous examples.
Now we calculate again (4166.6/1023)*524,288, which is about 2,135,418.7. The fracion is not close to a whole number, but it gets divided away so heavily that we won't notice it later on.
A value of 1023 would be 4.16V, so we'll multiply the value 1023 by 2,135,418. The result is 2,184,532,614. Now the result is divided by 524,288 (219): 2,184,532,614/524,288=4166.66529... which rounds down to 4.166665V which is even closer to 4.16V

For a last summary:
4.09V for the formula voltage = value * 4; with an error of 0.06V (about 67mV)
4.21V for the formula voltage = (value * 33u) >> 3; with an error of 0.043V (about 43mV)
4.15V for the formula voltage = (value * 65L) >> 4; with an error of 0.01072916V (about 11mV)
4.16V for the formula voltage = (value * 524288uL) >> 19; with an error of 0.0000013720194498697916V (about 1.4uV)

And a plot twist:
An accuracy of about 1.4 microvolt seems awesome, but remember that you're using a 10-bit ADC, so you can be off by 4.16/1024 is about 0.004V or 4mV by the quantisation noise introduced by your ADC! Then we assume the resistors are perfect and the ADC is perfectly callibrated and perfectly linear. Neither of these things is the case.
So maybe just saying that the voltage in millivolts is equal to the value multiplied by 4 is just accurate enough.

Universal Differential Pair

Door RoadRunner84 op donderdag 18 oktober 2012 14:23 - Reageren is niet meer mogelijk
Categorie: -, Views: 2.754

De oude geschiedenis
Vroegah hadden we AT toetsenborden, RS-232 muizen en 40-pin PATA hardeschijven. Allemaal hele mooie aansluitingen, maar wel voor ieder apparaat weer net ietsjes anders. Mijn diskettestation had ook zo'n bandkabel, maar met net iets minder pinnetjes dan mijn PATA kabel. Mijn CD schroeier was dan weer via SCSI aangesloten op een SCSI kaart in mijn net iets andere PCI slot, of was het nou ISA?
Nouja, mijn punt is, vroeger hadden we allemaal verschillende bussen. De meeste parallel (SCSI, PATA, LPT, PCI, ISA), en sommige serieel (RS-232, PS/2, AT). Maar wel allemaal met andere lijnniveau's, timings, protocollen, etc.

De minder oude geschiedenis
Omstreeks 1994 kwam er de universele seriŽle bus, ofwel USB. Deze kenmerk zich door twee factoren:
1) Data wordt getransporteerd over een differentieel paar.
2) Het type apparaat wordt via afgesproken protocollen bepaald.
Nou is dit niet helemaal eerlijk, geen van beide eigenschappen is in die zin uniek. Ethernet gebruikte al lang UTP kabels met differentiŽle paren erin, en SCSI had al lang ondersteuning voor meerdere typen apparaten op 1 bus.
USB heeft echter wel een trend gezet.

De jonge geschiedenis
Met de opkomst van LCD/TFT schermen, was de keuze voor een analoog transport mechanisme voor video niet meer vanzelfsprekend, hier kwam DVI als opvolger van VGA om de hoek kijken. Niet veel later werd dit opgevolgd door HDMI en DisplayPort.
Deze drie digitale video interfaces hebben een aantal zaken gemeen:
1) Ze gebruiken allemaal differentiŽle paren (ook wel "lanes" genoemd)
2) (m.u.v. DVI) Ondanks de parallelle draadparen is hier duidelijk sprake van seriŽle verbindingen, gezien de paren onafhankelijk werken.

Het nu
SeriŽle differentiŽle paren zijn het nieuwe medium voor transport van data. Niet alleen video (HDMI/DP/ThunderBolt), maar ook schijven (SATA/SAS), interne periferie (PCI-e), randapparatuur (nog steeds USB) en externe periferie (expresscard/ThunderBolt) worden tegenwoordig via seriŽle differentiŽle paren gekoppeld.
Hier wil ik ThunderBolt in het bijzonder even uitlichten; TB is namelijk een transportlaagje met aan de lage kant een differentiŽle lijn en aan de hoge kant DisplayPort en PCI-e. Het is dus een soort van multiplexer.
Een andere vorm van multiplexing zien we in de MHL ofwel Mobile Highdefenition Link. MHL is een "mix" van USB en HDMI. In tegenstelling tot TB is MHL niet beiden tegelijk, het kan echter de datalijnen van een USB connector gebruiken om de drie lanes van HDMI geserialiseerd over ťťn lane (het USB differentiŽle paar) te versturen. Hiermee biedt een MHL smartphone de mogelijkheid om met een enkele microUSB connector ofwel een USB ofwel een HDMI verbinding aan te gaan.
De Samsung Galaxy S III heeft in plaats van de microUSB connector een 11-pin connector om zowel USB als HDMI te kunnen bieden aan een gebruiker, helaas ten koste van compatibiliteit (met andere MHL apparaten, de standaard stelt geen connector vast). In feite kan je hiermee dus een S III gebruiken als mobiel werkstation; toetsenbord op USB, scherm met MHL eraan en je hebt een "volwaardige" Android desktop machine.

De toekomst?
DifferentiŽle paren zijn here to stay. Met de huidige datasnelheden is alleen optisch een alternatief voor data transport.
De ThunderBolt interface heeft ook in de pijplijn staan om de kabels optisch uit te voeren. Let wel, alleen de kabels! De connectors zijn uitgevoerd met differentiŽle paren, de omzetting naar optisch vindt in die connectors plaats, niet in de socket of het apparaat zelf.
Voor consumenten is momenteel de enige optische datalijn die gebruikt wordt de Toslink audio interface. Prima snoertje, helaas kan er nog geen video overheen, laat staan op 4K.

Ik stel mijzelf bij dezen in de gelegenheid een beetje te brainstormen.
Apple heeft laatst de Lightning interface aangekondigd voor hun iPhone 5. Even voor de goede orde, Lightning en ThunderBolt hebben in het geheel niets overeenkomstig! Ze waren apetrots op hun kabeltje dat je linksom of rechtsom in de telefoon kon prikken. Laat ik dit eens combineren met het "probleem" van de S III en hun 11-pin MHL connector.
Stel nou, dat we twee micro USB connectors onderop een telefoon zetten op een afgesproken afstand van elkaar (zeg, 1 cm). En stel nou, dat ťťn van deze twee connectors ondersteboven zit. Maken we nu een kabel die in beide connectors tegelijk past, dan kan deze "dual USB" kabel linksom en rechtsom in de dubbele USB poort. Dit biedt zowel USB als MHL over ťťn "dual connector". Bovendien geeft het gebruikers de vrijheid om alsnog een enkele microUSB kabel te gebruiken als er geen behoefte is aan een MHL interface.
Als variant hierop, in plaats van twee microUSB connectors zou er gekozen kunnen worden voor een microUSB 3 connector, waar vervolgens de twee "USB 3" dataparen gebruikt kunnen worden voor ťťn (of zelfs twee!) MHL verbindingen. Met USB 3 zou wel het reversibele van de connector verloren gaan.

Ten slotte
Omdat het moet ;)
Hoe ThunderBolt en/of Mobile Highdefinition Link zich gaan ontwikkelen weet ik niet. Ik hoop echter op een grote mate van uniformiteit in de markt. Het gebruik van optische verbindingen schijnt helaas meer voeten in de aarde te hebben dan ik zou willen hopen. Ik zou namelijk graag een goedkope "dock" zien voor mijn (neem een willekeurig merk) telefoon, die mijn telefoon via twee metalen pinnen (voeding) en twee optische connectors (up en down) omtovert in een volwaardige desktop of home cinema. Ach ja, voorlopig... ik mag toch dromen?

The PI is a lie

Door RoadRunner84 op vrijdag 25 november 2011 11:00 - Reacties (22)
Categorie: -, Views: 6.233

Waarom doen we moeilijk?
π (3.141592...) is een leugen. Nouja, leugen, π maakt het leven een stuk ingewikkelder dan nodig is.
π is gedefinieerd als de verhouding tussen de diameter en de omtrek van een cirkel, dus voor een cirkel met een diameter van 1 is de omtrek π. Dit leidt tot de eigenschap dat een cirkel met een straal (centrum tot rand) van 1 een omtrek van 2π heeft. Hieruit komt dan ook voort dat een sinus of cosinus een grondperiode van 2π heeft. De Euler identiteit stelt dat eiπ = -1, wat voor π zou pleiten... denk je.

De constante 2π
Als we 2π als enkele constante beschouwen, i.p.v. als een combinatie van twee constanten, dan komen er veel logischere vergelijkingen naar voren:
Euler: ei = 1
Omtrek: a = 2π × r
Oppervlak o = ½ × 2π × r2
...
Wat?! En dat laatste is makkelijker dan π × r2??? Ja, eigenlijk wel! Het is namelijk een afgeleide:
v = x×ta = ½×x×t2
a = ×ro = ½×2π×r2
Versnelling is de afgeleide van snelheid naar de tijd, oppervlak is de afgeleide van de omtrek naar de radius.

Een sinus heeft een periode van 2π, de eerste nuldoorgang is op 2π/2. Een halve cirkel is dus de helft van 2π, een kwart cirkel is 2π/4, etc.

Een nieuwe naam
Maar waarom zouden we 6.28... schrijven als 2π, i.p.v. een nieuwe constante naam te nemen.

Het voorstel is om hiervoor de griekse letter τ (spreek uit als 'tau') te gebruiken, kijk eens naar de letters in het groot:

π τ

De τ lijkt op de π. In plaats van te zeggen dat τ = 2×π is het beter om &tau als oorsprong te nemen: π = τ/2. En als je kijkt naar de letters zie je ook met wat creativiteit dat de π een τ is waarvan het pootje in tweeën gesplitst is.

De eenheidscirkel volgens &tau:
http://tauday.com/images/figures/tau-angles.png

Bronnen

The Tau manifesto

[CiP complete] Roza

Door RoadRunner84 op zondag 8 augustus 2010 10:38 - Reacties (24)
Categorie: -, Views: 4.985

Eergisteren is onze dochter geboren, ze heet Roza Elisa. Hier een mooi fotootje zodat jullie pappa's trots kunnen aanschouwen.
Ze weegt ruim 7 pond en is net iets over de 50cm lang. Al meteen zie je dat ze pappa's charme heeft, en ook die van mamma natuurlijk.
Roza