tag:blogger.com,1999:blog-188488412008-07-16T10:19:19.365+02:00SMMSESMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-18848841.post-74594846623622273552008-07-16T10:13:00.000+02:002008-07-16T10:19:19.375+02:00Ein quine tilSom til skilnad frå <a href="http://smmse.blogspot.com/2008/07/to-quines.html">dei to fyrste</a> er uavhengig av teiknsett.<br /><pre><br />public class Q2 {<br /> static char[] c = {'p','u','b','l','i','c','a','s','Q','2',<br /> '{','t','h','r','[',']','=','}',';','n',<br /> 'v','o','d','m','(','S','g',')','0',',',<br /> '3','8','f','j','<','.','e','+','"','\'',<br /> '\\','|','?',':','y','!','-','1','%','6',<br /> '5','>','k'};<br /><br /> static int[] i = {1,2,3,4,5,6,-1,6,4,7,8,8,-1,9,10,<br /> -1,11,0,-4,8,12,7,12,5,6,-1,6,13,7,14,<br /> 15,16,-1,6,-1,17,-1,11,18,19,0,0,-4,8,12,<br /> 7,12,5,6,-1,5,20,12,15,16,-1,5,-1,17,-2,<br /> 11,18,19,0,0,-4,1,2,3,4,5,6,-1,8,12,<br /> 7,12,5,6,-1,21,22,5,23,-1,24,7,5,20,25,<br /> 26,12,14,5,20,27,15,16,-1,7,14,27,8,28,-1,<br /> 11,0,-8,1,25,29,30,31,32,28,19,0,-8,33,22,<br /> 14,-1,25,5,20,12,-1,34,17,29,19,34,35,6,36,<br /> 4,37,20,27,12,13,19,34,38,38,28,-1,11,0,-12,<br /> 26,12,14,5,20,27,-1,12,-1,17,-1,39,40,39,-1,<br /> 38,-1,25,6,15,34,16,17,17,40,41,40,40,-1,42,<br /> 42,-1,6,15,34,16,17,17,40,41,41,40,-1,43,-1,<br /> 39,41,41,39,-1,44,-1,39,39,28,-1,38,-1,6,15,<br /> 34,16,-1,38,-1,39,40,39,19,0,-12,26,45,8,12,<br /> 37,24,36,22,2,12,36,1,14,5,20,12,25,12,28,<br /> 19,0,-12,5,33,-1,25,34,46,17,6,36,4,37,20,<br /> 27,12,13,47,48,28,-1,26,45,8,12,37,24,36,22,<br /> 2,12,36,1,14,5,20,12,25,39,30,39,28,19,0,<br /> -12,5,33,-1,25,25,34,38,48,28,49,48,29,17,17,<br /> 29,28,-1,26,45,8,12,37,24,36,22,2,12,36,1,<br /> 14,5,20,12,25,39,41,20,-23,39,28,19,0,-8,18,<br /> 0,-8,1,25,31,32,30,50,48,28,19,0,-8,33,22,<br /> 14,-1,25,5,20,12,-1,34,17,29,19,34,35,5,36,<br /> 4,37,20,27,12,13,19,34,38,38,28,-1,11,0,-12,<br /> 26,45,8,12,37,24,36,22,2,12,36,1,14,5,20,<br /> 12,25,5,15,34,16,28,19,0,-12,5,33,-1,25,34,<br /> 46,17,5,36,4,37,20,27,12,13,47,48,28,-1,26,<br /> 45,8,12,37,24,36,22,2,12,36,1,14,5,20,12,<br /> 25,39,30,39,28,19,0,-12,5,33,-1,25,25,34,38,<br /> 48,28,49,48,51,17,17,29,28,-1,26,45,8,12,37,<br /> 24,36,22,2,12,36,1,14,5,20,12,25,39,41,20,<br /> -23,39,28,19,0,-8,18,0,-8,1,25,50,48,30,5,<br /> 36,4,37,20,27,12,13,28,19,0,-4,18,0,0,-4,<br /> 1,14,5,21,7,12,37,-1,8,12,7,12,5,6,-1,<br /> 21,22,5,23,-1,1,25,5,20,12,-1,20,30,5,20,<br /> 12,-1,24,28,-1,11,0,-8,33,22,14,-1,25,5,20,<br /> 12,-1,34,17,20,19,34,35,24,19,34,38,38,28,-1,<br /> 11,0,-12,5,33,-1,25,5,15,34,16,52,29,28,-1,<br /> 26,45,8,12,37,24,36,22,2,12,36,1,14,5,20,<br /> 12,25,6,15,5,15,34,16,47,48,16,28,19,0,-12,<br /> 37,4,8,37,-1,5,33,-1,25,5,15,34,16,17,17,<br /> 29,28,-1,26,45,8,12,37,24,36,22,2,12,36,1,<br /> 14,5,20,12,25,39,41,20,39,28,19,0,-12,37,4,<br /> 8,37,-1,33,22,14,-1,25,5,20,12,-1,53,17,29,<br /> 19,53,52,5,15,34,16,19,53,47,47,28,-1,26,45,<br /> 8,12,37,24,36,22,2,12,36,1,14,5,20,12,25,<br /> 39,-1,39,28,19,0,-8,18,0,-4,18,0,18};<br /><br /> public static void main(String[] args) {<br /> p(0,38);<br /> for (int j=0;j<c.length;j++) {<br /> String t = "'" + (c[j]=='\'' || c[j]=='\\' ? "\\" : "") + c[j] + "'";<br /> System.out.print(t);<br /> if (j!=c.length-1) System.out.print(",");<br /> if ((j+1)%10==0) System.out.print("\n ");<br /> }<br /> p(38,61);<br /> for (int j=0;j<i.length;j++) {<br /> System.out.print(i[j]);<br /> if (j!=i.length-1) System.out.print(",");<br /> if ((j+1)%15==0) System.out.print("\n ");<br /> }<br /> p(61,i.length);<br /> }<br /><br /> private static void p(int n,int m) {<br /> for (int j=n;j<m;j++) {<br /> if (i[j]>0) System.out.print(c[i[j]-1]);<br /> else if (i[j]==0) System.out.print("\n");<br /> else for (int k=0;k>i[j];k--) System.out.print(" ");<br /> }<br /> }<br />}<br /></pre>SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-67967114788083525132008-07-15T10:08:00.001+02:002008-07-15T10:23:42.917+02:00To quinesBerre for moro skuld. To <a href="http://www.madore.org/~david/computers/quine.html">quines</a> skrivne i Java.<br /><pre><br />public class Quine {<br /> public static void main(String[] args) {<br /> String s = "public class Quine {%n public static void main(String[] args) {%n String s = %2$c%1$s%2$c;%n System.out.printf(s, s, 34);%n }%n}";<br /> System.out.printf(s, s, 34);<br /> }<br />}<br /></pre><br /><pre><br />public class Q {<br /> static byte[] c = {112,117,98,108,105,99,32,99,108,97,115,115,32,81,32,123,<br /> 10,32,32,32,32,115,116,97,116,105,99,32,98,121,116,101,<br /> 91,93,32,99,32,61,32,123,125,59,10,10,32,32,32,32,<br /> 112,117,98,108,105,99,32,115,116,97,116,105,99,32,118,111,<br /> 105,100,32,109,97,105,110,40,83,116,114,105,110,103,91,93,<br /> 32,97,114,103,115,41,32,123,10,32,32,32,32,32,32,32,<br /> 32,102,111,114,32,40,105,110,116,32,105,61,48,59,105,60,<br /> 52,48,59,105,43,43,41,32,83,121,115,116,101,109,46,111,<br /> 117,116,46,112,114,105,110,116,40,40,99,104,97,114,41,32,<br /> 99,91,105,93,41,59,10,32,32,32,32,32,32,32,32,102,<br /> 111,114,32,40,105,110,116,32,105,61,48,59,105,60,99,46,<br /> 108,101,110,103,116,104,59,105,43,43,41,32,123,10,32,32,<br /> 32,32,32,32,32,32,32,32,32,32,83,121,115,116,101,109,<br /> 46,111,117,116,46,112,114,105,110,116,40,99,91,105,93,41,<br /> 59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,<br /> 32,40,105,33,61,99,46,108,101,110,103,116,104,45,49,41,<br /> 32,83,121,115,116,101,109,46,111,117,116,46,112,114,105,110,<br /> 116,40,34,44,34,41,59,10,32,32,32,32,32,32,32,32,<br /> 32,32,32,32,105,102,32,40,40,105,43,49,41,37,49,54,<br /> 61,61,48,41,32,83,121,115,116,101,109,46,111,117,116,46,<br /> 112,114,105,110,116,40,34,92,110,32,32,32,32,32,32,32,<br /> 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,<br /> 34,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,<br /> 32,32,32,32,32,32,102,111,114,32,40,105,110,116,32,105,<br /> 61,52,48,59,105,60,99,46,108,101,110,103,116,104,59,105,<br /> 43,43,41,32,83,121,115,116,101,109,46,111,117,116,46,112,<br /> 114,105,110,116,40,40,99,104,97,114,41,32,99,91,105,93,<br /> 41,59,10,32,32,32,32,125,10,125};<br /><br /> public static void main(String[] args) {<br /> for (int i=0;i<40;i++) System.out.print((char) c[i]);<br /> for (int i=0;i<c.length;i++) {<br /> System.out.print(c[i]);<br /> if (i!=c.length-1) System.out.print(",");<br /> if ((i+1)%16==0) System.out.print("\n ");<br /> }<br /> for (int i=40;i<c.length;i++) System.out.print((char) c[i]);<br /> }<br />}<br /></pre>SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-27001790943183476122008-01-01T19:31:00.000+01:002008-01-01T21:39:51.538+01:00Brev frå Schickard til KeplerDen fyrste reknemaskina vi kjenner til vart laga av <a href="http://www-history.mcs.st-andrews.ac.uk/Biographies/Schickard.html">Wilhelm Schickard</a> i 1623. Dei einaste kjeldene som finst om denne maskina er to brev han skreiv til <a href="http://www-history.mcs.st-andrews.ac.uk/Biographies/Kepler.html">Johannes Kepler</a>, saman med nokre grove skisser han laga av maskina. Vi gjengjev nedanfor (for seinare bruk) desse skissene og omsetjing av utdrag frå breva som omtalar reknemaskina. <br /><br />Breva er skrivne på latinsk og finst i Johannes Kepler, <i>Gesammelte Werke</i>. Omsetjinga mi er basert på fire omsetjingar i (Adam 1974; Nill 1999; Redin; Williams 1990) for det fyrste brevet og to omsetjingar i (Nill 1999; Redin) for det andre brevet, med ei viss forrang til (Nill 1999) i båe høva. Desse omsetjingane samsvarar ikkje heilt, så omsetjing mi er truleg ikkje heilt nøyaktige, men eg trur hovudbodskapen skal vere der.<br /><br /><b>Skisse med notatar</b><br /><br /><img src="http://home.chello.no/~massl/schickard1.jpg"/><br /><br /><b>Utdrag frå brev til Johannes Kepler, 20. september 1623</b><br /><br /><table border="0" cellspacing="10"><tr><td width="100"></td><td width="500"><font size="-1">Vidare har eg i det siste freista gjere mekanisk det same som du gjer ved rekning, og har konstruert ei maskin med elleve heile og seks ufullstendige tannhjul som på ein augeblink automatisk reknar saman tal: adderer, subtraherer, multipliserer og dividerer. Du ville sette i å le om du kunne sjå korleis ho av seg sjølv aukar siffera til venstre når det går over ein tiar eller ein hundrar, eller tek bort frå dei ved subtraksjon . . . </font></td></tr></table><br /><b>Utdrag frå brev til Johannes Kepler med skisse, 25. februar 1624</b><br /><br /><img src="http://home.chello.no/~massl/schickard2.jpg" width="500"/><br /><table border="0" cellspacing="10"><tr><td width="100"><font size="-1"><img src="http://home.chello.no/~massl/schickard3.jpg"/><br/>Mellomtann- hjula flyttar seg alle naudsynleg mot venstre, ingen mot høgre, noko som forlangar serleg varsemd.</font></td><td width="500"><font size="-1">Eg vil ved eit anna høve gje ei meir nøyaktig forklaring av den matematiske maskina; for no, ta denne eg skriv i all hast: aaa er knappane til dei loddrette sylindrane, der multiplikasjonane til siffera er skrivi, og dei vert syna, om ein treng dei, gjennom dei flyttbare vindauga bbb. ddd er på innsida festa til tannhjul med ti tenner, som griper i kvarandre slik at når eit til høgre vert dreia rundt ti gonger vil det som er kopla på til venstre gå rundt ein gong, eller når det går rundt hundre gonger, vil det tredje verte flytta ein gong osb., riktig nok i den same retninga, noko som gjer ei samankopling til tilsvarande tannhjul h naudsynt. Kvart tal er synleg i hòla ccc på det midtre panelet. Endeleg peikar e på talskiver på den nedste panelet og f på tilsvarande vis på hòl som gjer synleg dei tala ein treng når maskina opererer. Men korleis det skjer kan ein ikkje raskt forklare. Det vil ein lettare forstå ved å sjå objektet. No hadde eg fått tinga eit eksemplar for Dykk frå Johann Pfister som er busett her, men dette halvferdige eksemplaret vart offer for ein brann som uforvarande braut ut der om natta for tre dagar sidan, saman med nokre andre av sakane mine, fyst og fremst nokre kopparstikk. Dette skulle Mütschelin kunne fortelje Dykk detaljert om. Dette tapet tek eg svært tungt, serleg av di det ikkje er tid til å raskt skaffe ein erstatning.</font></td></tr></table><br /><b>Kjelder</b><br /><br />Adolf Adam. The Kepler-Schickart calculating machine. <i>Vistas in Astronomy</i>, 18(1):881—886, 1974.<br /><br />Benjamin Nill. <i><a href="http://www.gris.uni-tuebingen.de/edu/projects/schickard/studw_1.pdf">WWW-basierte interaktive Visualisierung der Rechenmaschine Wilhelm Schickards durch ein Java 3D-Applet</a></i>, Studienarbeit, Universität Tübingen, 1999. <br /><br />James Redin. <a href="http://www.xnumber.com/xnumber/mechanical1.htm">A brief history of mechanical calculators</a>. (Lesedato: 30. desember 2007)<br /><br />Michael R. Williams. Early calcuation. I, William Aspray (red.), <i><a href="http://www.computerhistory.org/collections/DocumentArchive/Documents/Books/Computing%20Before%20Computers/CBC.html">Computing before computers</a></i>, side 3—58, Iowa State University Press, 1990.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-50265100150406976882007-12-29T02:10:00.000+01:002007-12-29T22:35:29.120+01:00Rapport: Hjelper valkamp?I midten av august sa eg at eg ville nytte resultata til RV, no Raudt, ved valet i år til å undersøke om vi kan seie noko om valkamp hjelper; med andre ord, har den innsatsen vi gjer på gata nokon effekt eller er valresultatet berre eit resultat av kven som gjer det bra i tv-debattar, generelle stemningar mellom veljarane eller liknande? Litt forsinka vil eg no presentere ei analyse av resultata. <br /><br /><b>Lokale tilhøve</b><br /><br />Lat oss byrje med å sjå om vi kan seie noko om lokale tilhøve. Av di RV ikkje stiller lister over heile landet i kommunevala, og det varierar litt kvar det er lister, er det ikkje like lett å samanlikne ulike delar av landet. Men grafen nedanfor viser valresultatet frå seks utvalte byar i dei ni siste vala. Om det ikkje finst lokal tilhøve som påverkar valresultata vil vi forvente at resultata i desse byane varierar like. <br /><img src="http://home.chello.no/~massl/utvelte-byar.jpg"/><br />Det vi kan sjå frå grafen er at det er stor grad av samvariasjon mellom byane, men òg at det finst markante unntak. Døme på det er Oslo i 1995, Kristiansand i 1997 og Bergen i 2007, der resultata går motsett veg av dei andre byane. Det er ikkje mogleg for meg å vurdere dei lokale valkampane i alle desse vala, og eg ønskjer ikkje å spekulere i, til dømes, kvifor Bergen hadde tilbakegang i år, men eg trur vi kan trekke to konklusjonar frå denne grafen: For det fyrste at vi kan snakke om landsdekkande framgang og tilbakegang i val (noko som indikerar at ikkje-lokale faktorar spelar inn), og for det andre at det samtidig finst lokale tilhøve eller lokale faktorar som kan gje kraftig påverknad på resultatet. <br /><br /><b>Valkamp</b><br /><br />Det at vi kan slå fast at det finst lokale tilhøve som påverkar valresultata er gode nyhende, men vi kan ikkje frå det umiddelbart trekke konklusjonen at det er lokal valkamp som gjer utslaget. For å sjå om eg kan seie noko om det skal eg ta føre meg valresultata frå Oslo i år. Det som gjer at valet i Oslo i år egnar seg til det er at det for fyrste gong har vore eigne bydelsval i alle bydelane, og at eg kan sjå desse resultata opp mot mi vurdering av valkampen i dei ulike bydelane. <br /><br /><b>Oslo 2005</b><br /><br />For å illustrere korleis av analyserer resultata skal eg fyrst ta føre meg Oslovala frå 2003 og 2005, før eg går laus på valet i år. I diagrammet nedanfor kan vi sjå resultata frå desse vala delt opp i dei ulike bydelane i Oslo. <br /><img src="http://home.chello.no/~massl/2003og2005.jpg"/><br />Som vi kan sjå var desse vala veldig jamne, men at det er litt forskjell mellom bydelane; i dei fleste bydelane er det litt tilbakegang, men i nokre er det litt framgang. Av di resultata varierer mykje mellom bydelane er det òg vanskeleg å sjå om den relative tilbakegangen stort sett er den same, eller om det er variasjonar. For å sjå dette tydlegare har eg i diagrammet under plotta inn bydelane med 2003-resultata på <i>x</i>-aksen og 2005-resultata på <i>y</i>-aksen.<br /><img src="http://home.chello.no/~massl/samvariasjon03-05.jpg"/><br />Den blå lina i diagrammet representerar jamn tilbakegang; dvs. om den relative tilbakegangen i 2005-valet var lik for alle bydelane ville dei alle hamna på denne line. I dei bydelane som ligg over lina var valet betre enn det ein kunne forvente ut frå ein jamn tilbakegang, og i dei bydelane som ligg under line var valet dårlegare enn ein jamn tilbakegang. Den raude line er den beste rette lina ein kan trekke mellom punkta i diagrammet. Når vi kan sjå at ho er slakare enn den blå, tyder det at den relative tilbakegangen var størst i dei bydelane der RV gjer det bra. <br /><br /><b>Oslo 2007</b><br /><br />Lat oss no gå til valet i år. Vi byrjar med å samanlikne val til bystyret i 2007 med stortingsvalet i 2005. Frå 2005 til 2007 hadde RV stor framgang, frå 3,0% til 5,1% oppslutnad. Det fyrste spørsmålet vi kan stille oss er då om denne framgangen var jamn over heile byen, eller om det er visse bydelar som pekar seg ut. Som over plottar vi bydelane inn i eit diagram, denne gongen med 2005-resultata på <i>x</i>-aksen og 2007-resultata på <i>y</i>-aksen. <br /><img src="http://home.chello.no/~massl/samvariasjon05-07.jpg"/><br />I dette diagrammet kan vi sjå at den blå og den raude line er nesten samanfallande. Det vil seie at det ikkje er nokon systematisk forskjell på gode og dårelege bydelar, sånn som vi kunne sjå i 2005 då dei beste bydelane gjekk mest tilbake. Samtidig kan vi sjå at dei fleste bydelane ligg nære desse linene, så sett bort ifrå at Ullern, Nordre Aker og Gamle Oslo trekkjer litt opp og Grünerløkka litt ned, er framgangen stort sett spreidd jamt utover bydelane.<br /><br />Meir interessant er det kanskje å sjå valet til bystyre og vala til bydelsutval mot kvarandre. I diagrammet under er bydelane (utan Ullern der RV ikkje hadde bydelsliste) plotta inn med resultata frå bystyrevalet på <i>x</i>-aksen og resultata frå bydelsvala på <i>y</i>-aksen. <br /><img src="http://home.chello.no/~massl/samvariasjon-bu.jpg"/><br />RV gjorde det litt dårlegare i bydelsvala samla sett enn i bystyrevalet. Den blå lina viser kor bydelane hadde hamna om den relative tilbakegangen frå bystyrevalet til bydelsvala hadde vore lik for alle bydelane, medan den grøne lina viser kor dei hadde hamna om bydelsvala og bystyrevalet hadde gjevi nøyaktig same resultat. Som før er den raude lina den beste rette lina vi kan trekke mellom punkta.<br /><br />Dei bydelane som peikar seg positivt ut i bydelsvalet ved å liggje over den grøne og den blå lina er Grorud, Grünerløkka og Gamle Oslo. I tillegg ligg Alna og Søndre Nordstrand akkurat på lina, medan resten er med på å trekkje ned det samla resultatet av bydelsvala i større eller minder grad. Det interessante dette er at det samanfallar med mi subjektive vurdering av dei lokale valkampane til RV. I indre by var dei mest aktive valkampane i Grünerløkka og Gamle Oslo, medan Sagene og St. Hanshaugen sleit med å få fart på valkampen. I Groruddalen var valkampen mest aktiv i Grorud, med Alna på andreplass, medan Bjerke og Stovner ikkje klarte same aktivitetsnivå. Heller ikkje Nordre Aker kunne måle seg med dei beste bydelane. På vestkanten var det (ikkje så overraskande) lite lokal valkamp. Oslo Sør kan eg diverre ikkje gjere noko vurdering av. <br /><br /><b>Konklusjon</b><br /><br />Det er ikkje allverden vi kan lese ut av desse tala. Eg trur vi kan slå fast at det finst lokale tilhøve som gjer at oppslutnaden om RV kan variere ulikt på ulike stader i landet. Samtidig ser vi liten slik variasjon i Oslo, der det kan sjå ut som om den relative styrken mellom bydelane er veldig stabile. Sjølv med stor framgang i Oslo i valet i år er framgangen tilnærma lik i alle bydelane, sjølv om forskjellen i oppslutnad i dei ulike bydelane er veldig stor. <br /><br />Men spørsmålet var om lokal valkamp har nokon innverknad på valresultatet. Og i tilhøvet mellom bystyrevalet og bydelsvala i Oslo i år ser det faktisk ut som vi har ein indikasjon på at lokal valkamp har innverknad på valresultata: I dei bydelane RV hadde den beste valkampen fekk RV dei beste resultata i bydelsvala relativt til bystyrevalet. Denne effekten er liten i forhold til den store framgangen alle bydelane hadde, men ser likevel ut til å vere til stades. Om det stemmer tyder det altså at sjølv om andre faktorar kan vere viktigare, er valkamp ein faktor å rekne med. Men det tyder truleg også at ein må investere mykje ressursar i ein valkamp for at den skal gjere seg gjeldande i høve til dei andre faktorane som spelar inn. I alle høve kan vi seie at hypotesen om at valkamp ikkje har nokon innverknad på valresultata ikkje har vorte styrka.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-15444049760801014732007-08-15T23:43:00.000+02:002007-08-15T23:51:19.957+02:00Prosjektskildring: Hjelper valkamp?<b>Innleiing</b><br />Eg har teki del i valkampane til Raud Valallianse sidan 1993, stort sett i Akershus. Etter fleire nedturar har eg byrja lure på om dei valkampane vi driv med har noko effekt på valresultatet, eller om dei vert dominert av generelle stemningsbølgjer mellom veljarane, partileiardebattar og andre ”ytre” faktorar. Ofte har det verka på meg som om same kor hardt vi jobbar i valkampen og kor godt vi utnyttar dei resursane vi har, så har det lite eller ingen innverknad på valresultatet. Det høyrer sjølvsagt med til historia at RV pga. sine småe økonomiske ressursar har hatt mykje av valkampen sin på gata og lite reklamekampanjar. <br /><br />Eg har overtydd meg sjølv til å ta del i valkampen for RV/Raudt i år òg, denne gongen i Oslo. Samtidig trur eg at dette valet gjev moglegheit for ei analyse av hypotesen om at valkamp av den typen RV driv ikkje hjelper på valresultatet. <br /><br /><b>Bakgrunn</b><br />Valresultatet for RV har vore stabilt i Oslo dei tre siste vala, både det samla resultatet og resultata i dei ulike bydelane. Dette går tydeleg fram av figuren nedanfor, som viser valresultata for stortingsvalet i 2001, bystyrevalet i 2003, val til bydelsutvala i Sagene, Vestre Aker, Stovner og Østensjø i 2003 (forsøksordning med direkteval i utvelte bydelar) og stortingsvalet i 2005. Det mest interessante her er kanskje at variasjonen mellom bydelane er større enn variasjonen mellom vala. <br /><center><img src="http://home.chello.no/~massl/tidlegare-val.jpg"/></center><br />Ved valet i år er det for fyrste gong direkteval til bydelsutvala i alle bydelane, og RV/Raudt stiller liste i alle bydelane med unntak av Ullern. Vi kan difor rekne med at lokalvalkamp i bydelane vil få eit større eller i det minste annleis fokus i utvelte bydelar enn tidlegare val av di ein òg driv valkamp for dei lokale kandidatane. Samtidig kan vi rekne med at RV/Raudt vil satse meir på austkantbydelane enn vestkantbydelane. <br /><br /><b>Metode</b><br />I analysen vil eg freiste sjå valresultatet i år i høve til valresultata frå dei siste åra og sjå etter indikatorar som kan støtte eller svekke hypotesen om at valkampen i liten grad påverkar valresultatet. Ein slik indikator kan til dømes vere at dei prioriterte bydelane har større framgang enn dei nedprioriterte bydelane. Det vil òg sjølvsagt vere interessant å sjå på eventuelle forskjellar på resultatet i val til bystyre og val til bydelsutval. <br /><br />Diverre er det vanskeleg å vurdere valkampen i år mot tidlegare valkampar. I alle høve seier hypotesen at ein framgang eller tilbakegang for RV skal fordele seg jamt over bydelane. Derimot vil eg freiste å samanhalde subjektive vurderinga av valkampen i dei ulike bydelane med valresultata.<br /><br /><b>Oppsummering</b><br />Eg har ei hypotese om at valkampen som vert ført på gateplan har lite eller ingen innverknad på valresultata i samanlikning med ”ytre faktorar”, og vil freiste nytte valet i Oslo i år til å undersøkje denne hypotesen. Eg vonar sjølvsagt eg tek feil, så no er det berre å ta flygeblada og kome seg ut. Oppsummeringa kan venta i midten av september.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-42747905961499169962007-03-14T00:27:00.000+01:002007-03-14T00:34:01.518+01:00OperativsystemrevolusjonenFor alle som ønskjer å skjøne meir av dette med "Free Software" og "Open Source". Vi tilrår filmen <i>Revolution OS</i>. Last ned her: <a href="http://www.divxcrawler.com/movies.htm">http://www.divxcrawler.com/movies.htm</a><br /><br />Mykje greiare enn å lese <a href="http://smmse.blogspot.com/2007/02/perspektiv-p-friopen-programvare.html">alle desse artiklane</a>SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-11762409625840781492007-02-20T08:59:00.000+01:002007-02-20T09:00:16.309+01:00Perspektiv på fri/open programvareIda Sofie Søland Jackson og Wilhelm Joys Andersen har ein artikkel i siste nummer av Rødt! der dei fremjar synet at fri/open programvare er kommunisme (<a href="http://www.akp.no/roedt/2007/01/jackson-joys-andersen.php3">Digital dugnad – fremtiden er fantastisk</a>. Rødt!, nummer 1, 2007; <a href="http://trivini.no/w/text/fremtiden/">Fremtiden er fantastisk</a>. Noko lengre utgåve av same artikkel). Dei som las <a href="http://smmse.blogspot.com/2007/02/om-misoppfatninga-at-friopen.html">teksten min</a> om fri/open programvare vil ha merka seg at eg er usamd i det. I alle høve trur eg det kan vere bra for venstresida med ein diskusjon rundt fri/open programvare og økonomi. Under har eg samla nokre artiklar som gjev eit litt anna syn på fri/open programvare:<br /><br />Andrea Bonaccorsi, Cristina Rossi. <a href="http://www.firstmonday.org/issues/issue9_1/bonaccorsi/index.html">Alturistic individuals, selfish firms? The structure of motivation in open source software</a>. First Monday, issue 1, volume 9, 2004.<br /><br />Biella Coleman, Benjamin Mako Hill. <a href="http://journal.media-culture.org.au/0406/02_Coleman-Hill.php">How free became open and everything else under the sun</a>. M/C journal, issue 3, volume 7, 2004.<br /><br />Benjamin Mako Hill. <a href="http://mako.cc/writing/funding_volunteers/">Problems and strategies in financing voluntary free software projects</a>.<br /><br />David Lancashire. <a href="http://www.firstmonday.org/issues/issue6_12/lancashire/index.html">Code, culture and cash: The fading altruism of open source development</a>. First Monday, issue 12, volume 6, 2001.<br /><br />David McGowan. <a href="http://www.firstmonday.org/issues/special10_10/mcgowan/index.html">There's no such thing as free software (And it's a good thing, too</a>. First Monday, Special issue 2, volume 10, 2005.<br /><br />Bruce Perens. <a href="http://www.firstmonday.org/issues/special10_10/perens/index.html">The emerging economic paradigm of open source</a>. First Monday, Special issue 2, volume 10, 2005.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1171319392291341242007-02-12T23:18:00.000+01:002007-02-12T23:30:01.066+01:00Om ... misforståingar knytt til datateknologi II(I ein serie tekstar vil eg ta for meg ei rekkje misforståingar og feilaktige analyser knytt til datateknologi som eg oppfattar eksisterar på venstresida. <a href="http://smmse.blogspot.com/2007/02/om-misoppfatninga-at-friopen.html">Del I</A> omhandla ideen om at fri/open programvare er ein form for kommunisme. Del II som byrjar under tek for seg ideen om at ting er gratis. Av di det er i ferd med å verte ganske langt tek teksten under berre for seg ting som har med internettet å gjere. Del II-B som omhandlar programvare kjem seinare.)<br /><br /><b>Del II: There is no such thing as a free lunch</b><br /><br />Det er ikkje mykje som er gratis her i verda. Nokon gratis ting finst framleis, sånn som eit kyss frå kjærasten, bær du plukkar i skogen og flyttehjelp frå vener, og takk og lov for det. Det meste anna må du diverre betale for.<br /><br />Men det finst ein del ting som tilsynelatande er gratis, og det finst det ein del misoppfatningar om. Ofte når du et på gresk restaurant vil du etter middagen få eit glas ouzo sjølv om du ikkje har tinga det og som ikkje kjem på rekninga. Gratis ouzo, tenkjer du, det var hyggeleg av restauranteigaren. Men ouzoen er berre tilsynelatande gratis av di betalinga er indirekte. Prisen på ouzoen er bakt inn prisane på dei andre tinga dei sel, og du har betalt for han gjennom det du betalte for salaten og moussakaen du åt. Eit lite glas ouzo kostar truleg ikkje så mykje, så prisen på moussakaen vert ikkje merkbart høgare. Men det at betalinga for noko er låg og/eller indirekte tyder ikkje at du ikkje betalar for det.<br /><br />I den digitale verda er det mykje som tilsynelatande er gratis utan å vere det. For å lage ei god analyse datateknologi og korleis det påverkar samfunnet er det viktig å vere klar over det, og det er det eg vil gå inn på her. Eg skal ta for meg tre ting: internettet sjølv, såkalla gratistenester på internettet og dataprogram. Fildeling skal eg kome inn på seinare.<br /><br /><b>II-A Internett</b><br /><br />Internettet er nesten magisk, og det er ikkje så vanskeleg å få inntrykk av at det er gratis og egalitært – at alle kan nytte det og gjere kva dei vil der. Grunnen til at det er sånn er at internettet (eller kyberrommet om du likar fancy ord) må skjønast på eit høgt abstraksjonsnivå. Internettet er som ei usynleg og immateriell forlenging av datamaskina di – eit abstrakt rom eller dimensjon som eksisterar parallelt med den materielle røynda. I dette rommet kan du rekkje ut og hente ned informasjon, og du kan opprette kommunikasjonskanalar til andre som har internettet som ei forlenging av datamaskina si. Det er på dette nivået vi må skjøne internettet for å kunne bruke det, og som vi skjønar internettet på når vi brukar det (er på det). (Sagt litt enklare, du opnar nettlesaren din, og der er det.) Dette nivået er internettet si overbygging, og på dette nivået er det lett å tenkje på internettet som noko fritt og opent.<br /><br />Men internettet har òg ein basis. Denne basisen er fysisk og vert utgjort av datamaskinar og kablar. I ytterkantane sit datamaskina di og datamaskinene til alle andre brukarar av internett og innanfor desse ytterkantane er det rutarar og tenarar (serverar). Alle desse datamaskinane er knytt saman av kablar, anten av kobbar eller fiberoptikk (og i tillegg litt radiokommunikasjon i ytterkantane). På det abstrakte nivået vi nyttar internettet (overbygginga) ser vi lite til denne basisen, og det er òg meininga. Men det tyder sjølvsagt ikkje at basisen ikkje påverkar overbygginga. For å vise korleis basisen påverkar overbygginga skal eg gå litt i detalj om korleis internettet er bygd opp.<br /><br />(Den følgjande utgreiinga vart litt lang og teknisk. Eg trur det skal vere ganske trygt å hoppe over ho om du ikkje orkar lese det. Difor markerar eg denne biten med ein annan font sånn at du lett kan sjå kvar du bør byrje lese igjen.)<br /><br /><font face="verdana" size="-1">Mellom det fysiske nivået og det abstrakte nivået vi nyttar internettet ligg det som kallest ein protokollstakk. Ein protokoll (i dette tilfellet) er ein standardisert metode for kommunikasjon mellom datamaskinar, og ein protokollstakk tyder at det er fleire lag med protokollar som ligg oppå kvarandre. Kvart lag (protokoll i stakken) representerer ein abstraksjon i høve til det som ligg under, og til saman utgjer desse laga abstraksjonen frå fysiske nettverk opp til det du ser i nettlesaren din. Alle desse laga er med andre ord med på å påverke korleis det ser på toppen.<br /><br />Det fysiske internettet er bygd opp av mange ulike nettverk som nyttar ulik nettverksteknologi, til dømes Ethernet, ADSL, ATM eller fiberoptikk. Kvar av desse teknologiane har sin eigen kommunikasjonsprotokoll som seier korleis datamaskinar skal kommunisere over akkurat denne typen nettverk. Over alle desse teknologiane og protokollane ligg det som på mange måtar er kjernen i internettet, internettprotokollen (Internet Protocol – IP).<br /><br />Internettprotokollen gjev ein metode for å kommunisere mellom to datamaskiner kopla til internettet. Kvar maskin har eit unikt tal som fungerar som adresse (såkalla IP-adresse) og kommunikasjonen skjer ved at maskinene sender stykke med data (IP-pakker) til kvarandre. Når ei maskin sender ei datapakke til ei anna maskin vil den som regel gå gjennom fleire andre maskiner og nettverk på vegen. Pakka har med seg adressa til mottakaren og kvar maskin den er innom vil sørgje for å sende ho eit hakk nærmare destinasjonen. Internettprotokollen kjenner til alle dei ulike nettverksteknologiane internettet er bygd opp av og for kvart nettverk pakka går gjennom på vegen sin gjennom internettet vil ho verte pakka inn i den aktuelle nettverksteknologien. Det internettprotokollen gjer er altså å skjule alle dei mellombels maskinene og nettverksteknologiane pakka er innom på vegen sånn at dei to maskinene som kommuniserer med kvarandre ikkje treng ta omsyn til det. Det einaste ein treng å forhalde seg til er internettprotokollen. (Ein vanleg analogi er postverket. Du skriv ei adressa på eit brev og leverer det på postkontoret, og dagen etter ligg det i postkassa til mottakaren. Kvar og kor mange gonger brevet har vorte sortert, om det var vorte sendt med bil, tog eller fly, osb. treng du ikkje å bry deg om, det einaste du treng å forhalde deg til er postkontoret og postkassa.) Det er viktig å merke seg (noko vi òg skal kome tilbake til) at internettprotokollen gjev inga garantiar. Det einaste den gjer er å freiste sende ei IP-pakke nærmare destinasjonen – det er ingen garantiar for at pakka tek den kortaste vegen, at dataa ikkje er vorte korrumpert på vegen eller at ho kjem fram i det heile.<br /><br />Oppå internettprotokollen finst det eit nytt lag med protokollar (som nyttar og skjuler internettprotokollen, og gjev deg noko meir). Dei vanlegaste er User Datagram Protocol (UDP) og Transmission Control Protocol (TCP). UDP er ein veldig enkel protokoll som ikkje gjer noko serleg meir enn IP sett bort i frå at han sørgjar for at pakkane som kjem fram er heile (ikkje korrumperte), men framleis utan garantiar for at dei kjem fram. TCP derimot er ein protokoll som sørgjer for at alle dataa kjem fram dit dei skal, i tillegg til at han lagar ein abstrakt kanal mellom to datamaskiner som ein kan sende ein straum av data på i staden for pakker. TCP deler straumen opp i passande bitar og sendar dei som IP-pakker. Mottakaren sender svar og seier kva for pakker som har vorte motteki, og om det ikkje kjem noko svar for ei pakke innan ei viss tid vert pakka sendt på nytt. På mottakarsida vert bitane satt saman (i riktig rekkjefølgje) til ein straum igjen etterkvart som pakkene kjem inn. På den måten vert både konseptet "pakke" og upålitelegheita i internettprotokollen skjult for dei som nyttar TCP. TCP gjer òg ein ting til, og det er å freiste hindre at vegen gjennom internettet som kanalen nyttar vert overbelasta. Korleis protokollen finn ut at det er overbelastning er ikkje interessant her, meir interessant er kva han gjer med det: sender data seinare (med lægre pakkerate).<br /><br />Over UDP og TCP ligg det nok eit lag med protokollar. Til dømes Voice over IP (VoIP) nyttar UDP (av di det er ikkje så farleg om skurrar litt i telefonen), men dei fleste nyttar TCP. For eksempel Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP) og Simple Mail Transfer Protocol (SMTP) nyttar TCP for å overføre HTML-sider, filer og e-post mellom to maskiner. Sidan desse protokollane berre ser TCP treng dei ikkje bry seg om at IP ikkje gjev garantiar. Samtidig skjular dei konseptet "straum av data" og opererar med sider, filer, e-post osb. i staden. Protokollane på dette nivået vert så nytta av dataprogram. T.d. Skype nyttar VoIP, ein nettlesar nyttar HTTP og eit e-postprogram nyttar SMTP. På toppen av det heile sit du og nyttar desse dataprogramma på datamaskina di utan å bry deg i det heile om protokollar. Gjennom desse programma vert internettet ei forlenging av datamaskina di, og vi er tilbake der vi starta. (Figuren under freistar illustrere laga).</font><br /><br /><center><img src="http://home.chello.no/~massl/protokollstakken.jpg"/></center><br /><br />Frå denne (litt lange) utgreiinga er det tre ting vi skal ta med oss vidare: At internettet i botn er fysiske nettverk, upålitelegheita til internettprotokollen og metoden TCP nyttar for å hindre overbelastning.<br /><br />Å bruke internettet gjev inntrykk av å vere fritt og gratis – du når heile verda, det er ikkje noko teleskritt og du treng ikkje tenkje på at det er dyrt å kople seg til ein tenar i USA, t.d., sånn ein tenkjer når ein nyttar telefon. Men i botn av internettet ligg det fysiske nettverk – kablar, tenarar og ruterar – og desse nettverka er det noko som eig. Noko av det er offentleg, men brorparten er truleg privat <a href="http://blogs.cio.com/node/209">*</a> og du (evt. arbeidsgjevaren din) må betale for å nytte dei. Grunnen til at det verkar fritt er at betalinga for bruk av mesteparten av det er indirekte. Når du har ei internettline heim til deg betalar du gjerne ein månadsavgift til Telenor, Get, Nextgentel eller ein annan leverandør for å få nytte nettverket deira. Men sjølv om du har Telenor som internettleverandør er det ikkje sånn at du berre kan sende e-post til andre Telenorkundar eller berre surfe på Telenornettet. Grunnen til dette er at dei ulike nettverkseigarane har avtalar med kvarandre – dei samarbeidar (du får nytte mitt nett om eg får nytte ditt) og små nettverk kjøper tilgang til store nettverk <a href="http://blogs.cio.com/node/223">*</a>. Det det vil seie er at når du betalar til til dømes Telenor betalar du indirekte for å nytte alle dei andre netta som er knytt saman i internettet. Så med andre ord, du betalar direkte for bruk av ein liten del av internettet og indirekte for resten. Men gratis er det ikkje, det berre kjennest sånn av di betalinga er indirekte.<br /><br />Det opne, frie, anarkistiske, egalitære, kall det kva du vil, inntrykket ein får av internettet er eit resultat av dei tekniske løysingane, eller med andre ord eit resultat av korleis protokollane er laga. På IP-nivået i protokollstakken er alle data like, det finst berre IP-pakker. Mekanismane som sørgjer for at pakkene kjem fram veit ikkje om dei inneheld delar av ein e-post, internettside, telefonsamtale eller noko anna, og gjer ikkje forskjell på dei. Internettprotokollen gjer heller ikkje forskjell på folk, det ingen forskjell på om det er deg, meg eller noko andre som sender eller skal motta pakka. Om nettverket vert overbelasta vil pakker forsvinne, men det er ingen som har forrang og kven sine pakker som vert borte er tilfeldig. <br /><br />Mykje av trafikken på internettet nyttar TCP. Som eg skreiv over vil TCP freiste hindre overbelastning ved å sende færre pakker, altså nytte mindre av kapasiteten og heller overføre dataa over lengre tid. På den måten har internettet ein slags innebygd folkeskikk – no kom det fleire her, lat oss lage litt plass til nykomarane. Desse enkle og grunnleggande mekanismane gjer at internettet er likt for alle og sikrar ei viss plass for alle. Truleg var bakgrunnen for dette at ein ønskte enkle mekanismar for kommunikasjonen, men resultatet er fint for oss som set likskap høgt. Denne likskapen i basisen gjenspeglar seg i ein likskapstanke i overbygginga.<br /><br />Men dette kan kome til å endre seg <a href="http://blogs.cio.com/node/200">*</a>. Nettverkseigarane er sjølvsagt interessert i tene mest mogleg pengar på nettverka sine, men det er vanskeleg når ein generelt ikkje kan gje garantiar og internettet er likt for alle. Ei løysing for internettilbydarane (ISPane) som Telenor og Get er å setje opp gode proxyar. Det vil seie at dei set opp tenarar nærme kundane sine som anten speilar populære ting på internettet eller har eiga innhald, til dømes filmar til nedlasting mot betaling. Slike tenarar er berre tilgjengleg for kundane deira og kan gje betre tilgang til ting. Såleis kan dei få eit konkuransefortrinn ovanfor andre internettilbydarar ved at dei bryt med prinsippet om at alt er like tilgjengeleg for alle. Men for dei som eig ryggraden i internettet (motorvegane som knyter dei ulike nettverka saman, om du vil) hjelper ikkje dette. Dei ønskjer seg å kunne ta ekstra betalt for ekstra garantiar. Sånn det er no, om du kjøper ei internettline på t.d. ein megabit, er det berre på nettverket til tilbydaren din du er garantert å ha ei bandbreidd på ein megabit, i resten av internettet kjem det heilt an på kva for nettverk du er innom og kva trafikken er for augneblinken. Det eigarane av ryggraden vil er at ein skal kunne reservere bandbreidd gjennom heile internettet om ein er interessert i å betale for det. Ein kan då sjå føre seg ein betalingsmodell alla det ein har for internasjonale telefonsamtalar i dag, altså at ein betalar ein form for teljarskritt når ein nyttar andre nettverk enn det ein er direkte kopla til, og til gjengjeld får ei reservert line med ei gjevi bandbreidd.<br /><br />Om dei får det til vil det sjølvsagt gå ut over prinsippet om at internettet er likt for alle, og då truleg ramme dei som har mindre pengar å rutte med. <i>Om</i> dei får det til er sjølvsagt eit spørsmål vi ikkje veit svaret på; dette har vore eit tema i minst 10 år no og framleis ikkje fått noko gjennomslag i praksis. Men vi veit faktisk ikkje kva framtida til bringe (eit tema eg skal kome tilbake til seinare), og eg trur det er farleg å ta det for gjevi at internettet vil ha den forma det har no for all framtid (eller tru at det vil ha den forma det hadde tidleg på 90-talet for all framtid, noko ein del folk synest å tru). Spør du meg er dette ei utvikling det er langt meir interessant å følgje med på enn mykje anna snakk om internettet (og grunnen til at eg meiner staten skulle droppe dette vanvittig teite digitale bakkenettet og heller satse på å leggje offentlege kablar i bakken). Det er i det heile på tide at vi innser at internett er eit spørsmål om infrastruktur og kven som skal eige infrastrukturen, og at spørsmål rundt infrastruktur er politiske spørsmål som i høg grad har med samfunnsutviklinga å gjere.<br /><br /><b>Såkalla gratistenester</b><br /><br />Til slutt skal eg seie litt om såkalla gratistenester ein finn på internett. Det er litt på sida, men ein fin studie i indirekte betalingsformar. <br /><br />Den fyrste grunnen til at dei ikkje er gratis er nettopp at du i utgangspunktet betalar for å bruke internettet, men det er ikkje alt. <br /><br />Mange av desse tenestene er (delvis) reklamefinansiert, som til dømes Google og Gmail som eg skreiv om i del I. Spørsmålet er, kven betaler for reklamen? Det er sjølvsagt verksemdene som sel produkta det vert reklamert for. Kvar får desse verksemdene pengar til å kjøpe reklame? Frå sal av produkta sine. Så kvar kjem pengane frå? Frå dei som kjøper produktet. Med andre ord: Når du kjøper eit produkt betalar du ikkje berre for produktet, men òg for reklamen for produktet. Om verksemda har reklamert på til dømes Google er du med å betale for søkjetenesta alle kan nytte. Dette er ikkje noko annleis enn andre ting som er reklamefinansiert. Det gjeld like mykje for til dømes reklamefinansierte TV-kanalar og reklamefinansierte aviser.<br /><br />Men pengar er ikkje den einaste verdien du har å gje frå deg. Informasjon om potensielle kundar er nyttig når ein skal reklamere (sjå over), og det finst ein marknad for slik informasjon. Når du får adressert reklame i posten kan det vere av di til dømes avisa Klassekampen har selt adressa di til nokon som trur at lesarar av Klassekampen er interessert i produktet deira. Når du registrerer deg på og/eller nyttar ei såkalla gratisteneste på internettet legg du igjen informasjon om deg sjølv, til dømes e-postadresse eller søkjeord. Som med bustadadresse og Klassekampenabonnement er dette informasjon som kan nyttast til retta reklame, og difor har verdi. Det er med andre ord mogleg å betale med informasjon i staden for pengar.<br /><br />Heilt til slutt finst det tenester som delvis kan nyttast fritt og delvis kostar pengar. Eit eksempel på dette er Skype. Om du nyttar Skype til å ringje nokon som òg har Skype på datamaskina si betalar du ingenting, men om du nyttar Skype til å ringje ein vanleg telefon kostar det pengar. Desse pengane er sjølvsagt med å finansiere den delen som kan nyttast fritt. Det vil seie at betalinga for å ringje til telefon er direkte (med teljarskritt), medan betalinga for å ringje mellom to datamaskiner er indirekte gjennom betalingstenesta. <br /><br />Altså, som mykje anna i verda som tilsynelatande er gratis er dei fleste internettenester eigentleg ikkje gratis. Vi berre får inntrykket av det, sidan betalinga er låg og/eller indirekte.<br /><br /><i>Neste: Om dataprogram/programvare</i>SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1170441200638813972007-02-02T19:13:00.000+01:002007-02-02T19:33:20.663+01:00Om misoppfatninga at fri/open programvare er kommunisme og andre misforståingar knytt til datateknologiPå venstresida finst det ei rekkje misoppfatningar rundt datateknologi. I ein serie framover vil eg freiste ta dei for meg. Det er ikkje meint som noko angrep på fri/open programvare eller tilliggjande herlegdomar. Eg er motstandar korkje av Linux eller Wikipedia. Men eg er motstandar av desse analysane som tek heilt av, til dømes at fri/open programvare er ein form for kommunisme og at fildeling kjem til å bryte ned kapitalismen. Dette er ei freistnad på å bringe litt edruskap og realisme inn i analysen av datateknologi.<br /><br />Det eg kjem til å skrive om er ting eg har meint ein stund, og ofte har tenkt at eg skal skrive ned. Det som fekk meg til å byrje var artikkelen "Fremtiden er fantastisk" av Wilhelm Joys Andersen og Ida Sofie Søland Jackson <a href="http://trivini.no/w/text/fremtiden/">*</a>. Det er ein god og leseverdig artikkel som på ein god måte fortel om fri/open programvare, fildeling og anna, og som oppsummerar mange av syna eg er usamd i.<br /><br />Her kjem del I, resten kjem seinare.<br /><br /><b>Del I: Fri/open programvare er ein forretningsmodell (rekk opp handa alle som har endra eit dataprogram)</b><br /><br />Fri programvare er eit omgrep som omfattar ganske mykje forskjellig. For å gjere ting litt greiare vil eg skilje mellom <i>fri</i> programvare og <i>open</i> programvare. (Det finst eit stort omgrepsapparat for å skilje mellom ulike nyansar, til dømes tyder "freeware" og "free software" ikkje det same. Dette er noko eg aldri har brydd meg serleg om å setje meg inn i; hovudskilje går mellom "fri" og "open". Men for dei som tykkjer dette er viktig nyttar eg omgrepet "fri programvare" meir i tydinga "freeware" enn "free software" og det påståtte skiljet mellom "free software" og "open source software" gjev eg blanke i.) Fri programvare er dataprogram som på ein eller anna måte og av ein eller anna grunn er fritt tilgjengeleg, altså dataprogram du på lovleg vis kan få tak i utan å betale for det. Dette er i kontrast til dataprogram du må betale for. Open programvare er dataprogram der koden til programmet er fritt tilgjengeleg. Sjølvsagt er all open programvare også fri programvare, men det motsette er ikkje tilfelle. <br /><br /><b>Fri programvare</b><br /><br />Det finst masse programvare som er fri utan at koden er tilgjengeleg for alle og einkvar. Eit kanskje kuriøst døme er "Home of the Underdogs" <a href="http://www.the-underdogs.info/">*</a>, ei internettside der ein kan laste ned mengder av gamle dataspel. Desse dataspela er frie av di dei som eig retten til dei ikkje bryr seg om å selje dei lenger. Meir interessant er det at fri programvare ofte inngår i ein forretningsmodell der inntektene kjem frå andre (og kanskje meir indirekte) kjelder. Eg skal freiste gje nokre døme.<br /><br />1. Microsoft, har sal av programvarelisensar som forretningsmodell. Likevel gjev dei ut nokre program fritt, til dømes Microsoft Media Player og Messenger, som du òg kan få til Mac. Grunnen til dette er truleg merkjevarebygging og kapring av kundar frå andre tilbydarar av fri programvare.<br /><br />2. Eit fritt tilgjengeleg program mange av oss nyttar dagleg er Adobe Reader, PDF-lesaren til Adobe. Adobe Reader er fritt for å fremje PDF, som er Abobe sitt format. Ved at PDF er vorte ein de facto standard for distribusjon og lagring av dokument kan Adobe selje andre dataprogram knytt til PDF, til dømes Adobe Distiller som konverterar andre filformat til PDF. Det at PDF er eit ope format og at det finst andre program som gjer det same endrar ikkje saka. Adobe Reader fungerar som reklame for Adobe Distiller og Adobe sit i alle høve nærmast formatet og vil difor ha eit fortrinn over konkurantane.<br /><br />3. Frå Apple kan du få fritt få musikkspeleprogrammet iTunes til både Mac og Windows, truleg for å fremje filformatet AAC, musikksal gjennom iTunes Store og Apple sin eigen lommemusikkspelar iPod.<br /><br />4. Google (som dessutan eig Blogger og YouTube) har ein del tenester fritt tilgjengeleg, til dømes internettsøk og e-posttenesta Gmail, men òg nokre program ein kan laste ned, til dømes ein verktymeny for nettlesarar for internettsøking og eit program for søking på di eiga datamaskin. Kva tener Google pengar på når alt dei tilbyr til brukarane sine er fritt tilgjengeleg? I hovudsak to ting. Dei tener pengar på retta reklame. Når du nyttar tenester frå Google betalar du ikkje med pengar, men du betalar med informasjon om deg sjølv, til dømes kva for ord du søkjer på og kva du skriv i e-posten din. Denne informasjonen nyttar Google til å gje deg reklame for ting dei trur du er interessert i. Til dømes kan du leggje merke til dei sponsa lekkjene når du søkjar med Google; det er reklame nokon har betalt for at skal vere der. Den andre tingen dei tener pengar på er lisensar på søkjeprogrammet sitt. På start.no <a href="http://start.no">*</a> til dømes vil du sjå at søkjefunksjonen er "Levert av Google". Firma kan nytte Google til søk på eigne internettsider, men det må dei betale for. Den fritt tilgjengelege søkjesida som alle kjenner til fungerar som reklame for dei som treng ein søkjefunksjon på eiga internettside. I tillegg vil alle søka som vert gjort på den fritt tilgjengelege søkjesida hjelpe Google å lage betre søkjeteknologi.<br /><br />5. Det har vorte hevda at ein hovudgrunn til at det norske programmeringsspråket Simula aldri fekk noko stort gjennombrot var at kompilatoren kosta alt for mykje. Nesten ingen universitet kunne ta seg råd til det, difor vart det nesten ingen stadar nytta i undervisninga av kommande programvareutviklarar, osb. Dette var ein feil Sun Microsystems ikkje gjorde. Då dei lanserte programmeringsspråket Java in 1996 vart alt du trengte for lage og kjøre javaprogram på Windows, Mac og Solaris fritt tilgjengeleg. Det at Java i dag er eit av dei mest brukte og underviste programmeringsspråka er sjølvsagt god reklame for Sun. I tillegg lisensierte dei ut (dvs. selde) kjeldekoden til Java til ei rekkje andre programvareprodusentar. <a href="http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.xml">*</a> Sun har no opna kjeldekoden til Java, noko vi skal sjå på lengre nede.<br /><br />Som vi kan sjå er det fullt mogleg å gje ut programvare fritt og likevel tene pengar. Eller med andre ord, fri programvare kan fint gå inn i ein forretningsmodell.<br /><br /><b>Dugnad</b><br /><br />Ting vert meir interessant når vi går over til <i>open</i> programvare, altså dataprogram der koden er fritt tilgjengeleg for den som vil. Ein skal ikkje underslå at ein del av dette er laga av folk med idealistiske motiv og stor dugnadsånd, og som usjølvisk ønskjer å dele arbeidet sitt med andre. Dette er eg umåteleg glad for. Eg tør ikkje tenkje på korleis kvardagen min hadde sett ut utan cygwin, emacs, LaTex, dvips og GSView, kanskje dei viktigaste programma på datamaskina mi.<br /><br />Vi må anerkjenne at det blant folk finst ei enorm dugnadsånd, samarbeidsvilje, skaparkraft, og glede over å dele med andre. Vidare at nokon gonger er resultatet av dette like bra som kommersielle produkt. Om det er noko som gjev meg tru på menneskeheita, så er det dette. Dugnad er ikkje noko nytt, nytt i denne samanhengen er at dei som tek del i dugnaden ikkje fysisk og geografisk er på same stad, at dei er organisert i lause organisasjonar, at det er mange som jobbar saman, og at det er mange som nyt godt av arbeidet dei gjer, ofte veldig mange fleir enn dei som tek del i dugnaden. <br /><br />Kanskje kan ein seie at dugnad er ein kommunistisk arbeidsform; alle bidreg med det dei kan for at alle skal kunne nyte godt av det. Kanskje er det nett dette dugnadsarbeidet – som visar at folk er villige til å gjere ting for fellesskapet, skape samfunn, og lage ting som funkar utan økonomisk vinning som motivasjon – som gjer at vi kan tru på at kommunisme er mogleg. Dette utfordrar kanskje kapitalismen og liberalismen ideologisk, men det utfordrar ikkje kapitalismen som økonomisk system. Dugnadsarbeid og andre typar arbeid som ikkje er ein del av den kapitalistiske produksjonen har funnest parallelt og i sameksistens med kapitalistisk produksjon heile vegen. Det området av Oslo eg bur vart i stor grad bygd ut på dugnad på 1950-talet. Til dømes la dei vass- og kloakkleidningar på dugnad. I stor grad var det nok kommunistar som organiserte dette, og det gjorde at arbeidsfolk fekk stader å bu. Det var bra arbeid i kommunistisk sinnelag, men at arbeidarane fekk betre butilhøve truga ikkje den kapitalistisk produksjonen. Eit anna døme på arbeid som var og (delvis) er utanfor den kapitalistiske produksjonen er omsorgsarbeid, som har vore organisert i heimane til folk og av staten. At det frivillige omsorgsarbeidet skal ha truga kapitalismen bryt med alt vi har av analyse av det kapitalistiske samfunnet.<br /><br />Så dugnad, òg i form av open programvare, finst og er bra. Det er det ikkje noko tvil om. At det har truga kapitalismen på nokon annan måte enn ideologisk meiner eg òg det er lite tvil om.<br /><br />Ein kan alltids seie at dei formane for utanom-kapitalistisk arbeid/produksjon som finst stoggar kapitalismens utbreiing til nye område og difor stoggar kapitalen sin evige og naudsynte ekspansjon og vekst. Kampen for å halde helsevesenet i Noreg offentleg er til dømes ein freistnad på å stogge kapitalismen utbreiing til eit nytt område, sjølv om eg trur det er ein kamp vi delvis kjem til å tape. Heller enn å seie at utbreiinga av kapitalismen vert stogga trur eg vi må innsjå at kapitalen har ei utruleg god evne til å ekspandere. Husværet mitt i dugnadsforstaden vart kjøpt på den opne marknaden.<br /><br /><b>Open programvare</b><br /><br />Om vi går frå dugnad generelt og ser på utviklinga innan open programvare ser vi at open programvare, som fri programvare, no har vorte ein forretningsmodell. <br /><br />I gode gamle dagar vart dataprogram laga av einskildpersonar. (Dette er sjølvsagt berre delvis sant, men sant nok til at argumentet mitt held.) Dokumentklargjeringsprogrammet LaTex om har stor utbreiing sjølv om det byrjar verte gamaldags vart laga av Donald Knuth (Tex og METAFONT), Leslie Lamport (LaTex-makroane) og Oren Patashnik (BibTex). Andre har sjølvsagt bidregi med å finne feil, tilpassa programmet til nye operativsystem, laga tilleggspakkar, vedlikeheldt koden osb., men det endrar ikkje det at storleiken på programmet ikkje er større enn at det har vore handterbart for tre personar. Viktige nyvinningar som operativ systemet UNIX, programmeringsspråket C og kommunikasjonsprotokollen TCP/IP vart utvikla av relativt små forskingsgrupper.<br /><br />Sidan då har utviklinga maskinvare og utbreiing av datateknologi mogleggjort og satt krav til ein enorm utvikling innan programvare. Datasystema vi har vorte vane med i dag har ein storleik og kompleksitet som er vanvittig mykje enn det dei hadde for berre ein par tiår sidan. Å lage eit fullverdig operativsystem etter standarden i dag krev tusenvis av årsverk og dei største dataspela samanliknast no med Hollywood-produksjonar. Sjølvsagt går det framleis an å lage små nyttige programsnuttar, men "ordentleg" programvareutvikling er ikkje lengre mogleg med ein handfull personar. Til det trengst det store ressursar og organisasjon. <br /><br />I denne situasjonen har ikkje verdas hobbyprogrammerarar det same å stille med som dei store programvareprodusentane. Og det er heller ikkje folk som sit på fritida og programmerar som driv utviklinga i dei store opne utviklingsprosjekta. Det er det kapitalistiske verksemder som gjer. Om dei ønskjer å dominere eit prosjekt får dei det til. For meg er det store spørsmålet ikkje om, men kvifor og korleis, dei gjer det.<br /><br />Vi har allereie sett at det er mogleg å tene pengar på fri programvare, og vegen er kanskje ikkje så lang til open programvare. Eg skal nedanfor vise nokre måtar open programvare kan inngå i ein forretningsmodell.<br /><br />1. <i>Sal av tilleggstenester</i> er det mest openberre, og noko mange mindre firma lever av. Sjølv om programvaren er open og fritt tilgjengeleg tyder ikkje det at alle kan eller er interessert i å gjere alt sjølv. Firmaet Linpro <a href="http://www.linpro.no/hvordan_linpro_kan_hjelpe">*</a> til dømes sel deg tilpassa løysingar basert på open programvare. Mao. betalar du ikkje for å nytte Linux, som er open programvare, men for at Linpro skal setje det opp, tilpasse det og drifte det for deg. Eit anna døme er Ubuntu <a href="http://www.ubuntu.com/support/paid">*</a>. Dei tilbyr fritt sin eigen Linuxvariant, og sel profesjonelle støttetenester (support). Dette kan kanskje sjåast som ein måte nokre idealistar kan tene litt pengar, men det er heller ikkje den dominerande delen av kommersiell open programvare.<br /><br />2. <i>Uavhengigheit frå andre verksemder</i> er nok ein viktig faktor når til dømes verksemder som IBM <a href="http://ibm.com/linux">*</a> eller Google <a href="http://code.google.com/organizations.html">*</a> kastar seg over Linux andre store open programvare-prosjekt. Det er viktig å hugse at det er konkurranse mellom kapitalistiske verksemder, og det er mange som kan sjå seg tente med å vere uavhengige av Microsoft.<br /><br />3. <i>Gratis arbeidskraft</i>. Det er openbert at å få nokon til å jobbe for deg utan at dei står på lønningslista er lukrativt. Nokre verksemder gjer dette til ein medviten strategi, dei opnar kjeldekoden sin og bygg opp "communities" rundt produkta sine, og på den måten får dei folk til å jobbe gratis for seg. Til dømes er dette er ein uttalt motivasjon når Sun Microsystems no er i gang med å opne koden til programeringsspråket Java <a href="http://www.sun.com/software/opensource/java/community.jsp">*</a>. Eit liknande eksempel er utviklingsmiljøet Eclipse <a href="http://www-128.ibm.com/developerworks/opensource/top-projects/eclipse-starthere.html">*</a> som opphavleg vart laga av IBM og som no vert vidareutvikla i ein "community". Sjølv om koden til Java og Eclipse er open og tilgjengeleg, også for konkurrentar, er det klart at dei har den høgste kompetansen på koden, i desse tilfella Sun og IBM, framleis er med å styre showet og kan tene på det.<br /><br />4. <i>Tilgang til forsking</i>. Med det som krevst av systemutvikling i dag for å få fram produkt som kan konkurrere vert det vanskelegare og vanskelegare for forskarar å få fram produkt frå ideane sine. Ei løysing for mange er å lage prototypar, la koden vere open, og håpe at nokon plukkar han opp. Det er ikkje noko du vert rik av, men kanskje du vinn litt heider og ære, noko som kan vere viktig nok for ein forskar. Ved å samarbeide med forskarar i open programvare-prosjekt kan kommersielle verksemder få lett tilgang til forsking og utvikling (utan å måtte betale noko serleg for det). Eit godt eksempel på dette er Eclipse. Eclipse er eit rammeverk og utviklingsmiljø for å lage dataprogram. Sidan det er fritt og opent er det lett for forskarar å nytte det til å implementere ideane sine. (Det er "plugable", som tyder at ein kan lage utvidingar og samtidig få ganske mykje gratis ved å bruke funksjonalitet som finst der frå før). Samtidig er dei med å byggje opp IBM sitt produkt. Båe partar gjev litt og båe partar får litt. <br /><br />5. <i>Marknadsdominans</i> er sjølvsagt den viktigaste grunnen for kapitalistiske verksemder for å velje open programvare som forretningsmodell. Ved å gjere produkt fritt tilgjengeleg og opne vert det lettare å få stor utbreiing av dei. Og jo fleire så nyttar eit produkt, dess lettare vert det for andre å ta det i bruk (evt. vanskeligare å la vere). Har du ein viss dominans eller del i ein marknad er det lettare å selje produkta dine. Java har allereie ein stor del av marknaden for programmeringsspråk, og den kjem nok ikkje til å vere mindre når koden har vorte open. Og Sun har framleis tenkt til å tene pengar på det, mellom anna ved å selje spesialutgåver, kurs, støttetenester og bruk av java-logoen <a href="http://www.sun.com/software/opensource/java/faq.jsp#f">*</a>. Dette er sjølvsagt lettare når du er dominerande i marknaden. IBM gjorde Eclipse opent og det har fått ein viss posisjon innan systemutvikling og modellering. Men IBM sel framleis spesielle utvidingar til Eclipse. Blant desse er modellerings- og utviklingsverktya Rational Software Modeler og Rational Software Architect. Det at desse verktya verkar saman med andre utvidingar av Eclipse og at Eclipse er i ferd med å verte stort innanfor modellering og systemutvikling, gjer det ikkje vanskelegare for IBM å selje dei. Og i tilfelle du lurte på det, IBM sel deg gjerne Linux med tilhørande støttetenester.<br /><br />Sjølv om det eg har gjevi ikkje er ein veldig djup og grundig analyse, og kanskje eit litt snevert utval av eksempel, trur eg eg har vist ganske tydeleg at open programvare ikkje er kommunisme, men ein forretningsmodell (kapitalistisk strategi). Eg trur ein grundigare analyse vil vise det same. Som et siste eksempel skal eg sitere "Fremtiden er fantastisk" <a href="http://trivini.no/w/text/fremtiden/">*</a>:<br /><br />"Noen klarer å lure systemet. Nettleseren Mozilla Firefox er fri [dvs. open] programvare, tilgjengelig for nedlasting gratis, men de som lager nettleseren er lønnet. I 2005 dro de inn 53 millioner dollar - noe av det fra donasjoner, men primært gjennom en avtale de har med søkemotoren Google. For hvert søk som gjøres med Firefox' innebygde søkefelt, mottar nettleserprodusenten et par øre. Det er disse pengene som finansierer produksjonen av den frie nettleseren deres."<br /><br />Den einaste feilen i dette sitatet er at ingen har lurt systemet. Dei har nytta det. Dei einaste som vert lurt av dette er dei som trur at Google og Firefox er ein gjeng kommunistar. Det er kanskje verdt å tenkje litt på at nesten alle suksesshistoriene som vert presentert om open programvare er kommersielle (altså kapitalistiske) suksesshistorier.<br /><br /><b>Avsluttande kommentar: Kven bryr seg om koden er open?</b><br /><br />Sjølv etter åtte år med it-utdanning kvir eg meg for å gå inn i kode laga av andre for å lese han og endå meir for å gjere endringar. Grunnen til det er at det er vanskeleg, sjølv om koden er godt laga. Det er illusorisk å tru at "folk flest" nokon gong skal kunne ha glede av open programvare på denne måten. Det å endre kode som andre har laga krev høg kompetanse, fleire år med erfaring eller utdanning og ei spesiell interesse, og er noko "vanlege" folk aldri vil ta del i. For vanlege brukarar av datamaskiner, det vil seie "folk flest", spelar det absolutt inga rolle om koden er tilgjengeleg eller ikkje. Det som spelar ei rolle for dei er kva dei må betale for dataprogrammet og kor bra det funkar. For ein vanleg brukar er det ikkje noko skilje mellom fri og open programvare. Kvifor skal du nytte GSView, som er ope, til å lese PDF-dokument om du tykkjer Adobe Reader er betre? Nokon drikk kanskje Solo i staden for Coca Cola for å ikkje støtte den råaste storkapitalen, og nokon har kanskje Linux og GSView på datamaskina si i staden for Windows og Adobe Reader av same grunn, men nokon (sosialistisk) revolusjon av det vert det ikkje.<br /><br />Dei som bryr seg om koden er open eller ikkje er dei som lagar dataprogram. Og anten du likar det eller ikkje – dei som driv utviklinga av programvare gjer det for å tene pengar på det.<br /><br /><i>Neste: There is no such thing as a free lunch</i>SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1169029527726356442007-01-17T11:21:00.000+01:002007-01-17T11:26:25.626+01:00Til glede for nye brukararI år er det valår, og ikkje berre det – det er kommune- og fylkestingsval. For å markere dette vil vi presentere ein gamal slagar: <a href="http://home.chello.no/~massl/kommunestyrekalkulator/index.html">Kommunestyrekalkulatoren</a>. Dette er eit program <i>Mass Production - NWS</i> utvikla til kommunestyre- og fylkestingsvalet i 2003 for å betre kunne analysere resultata i vala. Det kan jo vere små marginar, og serleg når ein heiar på eit lite parti kan det vere artig å vite nett kor mange røyster som mangla for representasjon i kommunestyret.<br /><br />Programmet er enkelt. Ein matar inn valresultatet ved å fylle inn felta "Parti" og "Stemmer" og trykkje på "Legg til". Når ein har lagt inn alle partia fyller ein inn talet på representantar som skal fordelast og trykkjer på "Beregn", og ut får ein då nokre tal.<br /><br />Som eit tilfeldig valt eksempel skal vi take føre oss <a href="http://www.ssb.no/emner/00/01/20/nos_c622/tab/T-10.html">fylkestingsvalet i 1999</a> for Akershus fylke. Resultatet av dette valet var som følgjer:<br /><table cellspacing="15" cellpadding="0" border="0"><tr><td>Ap</td><td>54622</td></tr><tr><td>Frp</td><td>30569</td></tr><tr><td>H</td><td>64648</td></tr><tr><td>KrF</td><td>14375</td></tr><tr><td>Sp</td><td>9213</td></tr><tr><td>SV</td><td>18558</td></tr><tr><td>V</td><td>8669</td></tr><tr><td>PP</td><td>3821</td></tr><tr><td>RV</td><td>2868</td></tr><tr><td>MdG</td><td>2332</td></tr><tr><td>NKP</td><td>247</td></tr><tr><td>NP</td><td>369</td></tr></table>Fylkestinget i Akershus var på den tida på 63 representantar. Legg vi desse tala inn i kommunestyrekalkulatoren får vi dette resultatet ut:<br /><pre>FORDELING<br /> Manglet<br />Parti Prosent Mandater på neste<br />H 30,7% 19 315<br />Ap 26,0% 16 347<br />Frp 14,5% 9 1080<br />SV 8,8% 6 3096<br />KrF 6,8% 4 616<br />Sp 4,4% 3 2447<br />V 4,1% 3 2991<br />PP 1,8% 1 1176<br />RV 1,4% 1 2129<br />MdG 1,1% 1 2665<br />NP 0,2% 0 1963<br />NKP 0,1% 0 2085<br /><br />Minimum stemmer for å ta siste mandat: 2332</pre>Vi får vite kor mange prosent av røystene kvart parti fekk og kor mange representantar dei fekk i fylkestinget (evt. kommunestyret). I tillegg til det får vi vite kor mange røyster dei mangla på å take eit mandat til, og kva som krevst av røyster for å få siste mandatet (dvs. akkurat klare å kome inn).<br /><br />Det er verdt å merke seg at det talet på røyster ein manglar på neste mandat er i høve til kva dei andre partia har fått og gjeld dersom det ikkje er nokre endringar hjå dei. Det same gjeld røystetalet for å ta siste mandatet – det er i høve til dei partia som <i>har</i> fått mandat. <br /><br />Det vil ikkje seie at det ikkje finst marginar. I dette eksempelet fekk Miljøpartiet dei Grøne siste mandatet med 2332 stemmer. For at eit anna parti utan mandat, dvs. NKP eller Naturlovspartiet, skulle kapra dette måtte dei hatt minst 2332 røyster. Men samtidig hadde Miljøpartiet dei Grøne klara seg med 2321 røyster og hadde med andre ord ein margin på 11 røyster på mandatet sitt, utan at dette går fram av tala ein får frå kommunestyrekalkulatoren. (Om vi nokon gong får somla oss til å lage den utbetra versjonen vi lenge har planlagd, er utrekning av margin på siste mandatet til partia noko vi vil freiste få med. Men her er det ein ting å tenkje på. RV tok her 51. mandatet og marginen til det er 14 røyster. Dvs. at med 15 færre røyster ville RV fått 52. mandatet, men framleis ha same representasjon i fylkestinget. Meir interessant er det kanskje at RV hadde ein margin på 547 røyster for å halde representasjonen sin. Så vi får sjå).<br /><br />Så til teknikalitetane. Som <a href="http://smmse.blogspot.com/2007/01/jevons-sitt-logikkpiano-iv-simulatoren.html">logikkpianosimulatoren</a> og mykje anna <i>MP - NWS</i> har laga er dette ein <i>Java <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/applet/Applet.html">Applet</a></i>. Hovudprogrammet, som står for oppsett av grensesnittet, handtering av innlegging av resultata og utrekningar er klassen <a href="http://home.chello.no/~massl/kommunestyrekalkulator/Kommunestyrekalkulator.java">Kommunestyrekalkulator</a>. Partiinterne ting vert handtert av klassen <a href="http://home.chello.no/~massl/kommunestyrekalkulator/Party.java">Party</a>. For kvart parti som vert lagt inn vert eit partiobjekt oppretta og plassert i ei liste sortert etter røystetal (dette er ein viktig invariant i utrekningane). I tillegg har vi òg den obligatoriske HTML-fila <a href="http://home.chello.no/~massl/kommunestyrekalkulator/index.html.txt">index.html</a> for å køyre programmet i ein nettlesar (og her er faktisk storleikparametrane til applet-taggen naudsynt for at grensesnittet skal sjå bra ut, men, men).<br /><br />I følgje <a href="http://www.lovdata.no/all/hl-20020628-057.html">vallova</a> §§11-4, 11-10, 11-12, skal mandat i kommunestyre- og fylkestingsval (og distriktsmandat i stortingsval) verte fordelt etter <a href="http://en.wikipedia.org/wiki/Sainte-Lagu%C3%AB_method">St. Laguës modifiserte metode</a>. Her vallova §11-4(3):<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">St. Laguës modifiserte metode innebærer at hver listes stemmetall divideres med 1,4-3-5-7 osv. Hvert stemmetall skal divideres så mange ganger som det er nødvendig for å finne det antall mandater listen skal ha. Det første mandatet tilfaller den listen som har den største kvotienten. Det andre mandatet tilfaller den listen som har den nest største kvotienten osv. Hvis flere lister har samme kvotient, tilfaller mandatet den av listene som har størst stemmetall. Har de samme stemmetall, avgjøres det ved loddtrekning hvilken liste mandatet skal tilfalle.</font></td><td width="15"></td></tr></table><br />Algoritmen for å rekne ut mandatfordelinga er følgjeleg ganske enkel. Alle røystetala vert fyrst delt på 1,4. For kvart mandat går programmet gjennom lista av parti og finn det med det høgste talet (høgste kvotienten). Når eit parti får tildelt eit mandat vert delingstalet økt, fyrst til 3, så til 5 osb., og røystetalet vert delt på det nye delingstalet. Sidan lista av parti er sortert på det faktiske røystetalet vil det partiet med flest røyster få mandatet dersom kvotienten er lik. Loddtrekning gjer ikkje programmet, så om røystetalet òg er likt vil det partiet som vart lagt til lista fyrst få mandatet.<br /><br />For å rekne ut kor mange røyster som trengst for å take siste mandatet vert den siste kvotienten som gav mandat multiplisert med 1,4 – det fyste delingstalet. For å rekene ut kor mange røyster eit parti mangla på å ta eit mandat til vert talet på røyster partiet fekk trekt frå kvotienten som gav sistemandat (for heile kommunestyret, ikkje partiet) mulitpisert med det siste delingstalet til partiet.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1168000963342251792007-01-05T13:39:00.000+01:002007-01-05T13:42:43.353+01:00Jevons sitt logikkpiano IV – simulatorenVi har tidlegare presentert <a href="http://smmse.blogspot.com/2005/11/jevons-sitt-logikkpiano-i.html">Jevnons sitt logikkpiano</a> og ein <a href="http://home.chello.no/~massl/logikkpiano/index.html">simulator</a> av denne logikkmaskina. I vårt <a href="http://smmse.blogspot.com/2006/12/samarbeid-fridom-openheit.html">samarbeid</a> med <i>Mass Production - No Warranty Software</i> vil vi no presentere og offentleggjere kjeldekoden til simulatoren.<br /><br />Simulatoren er programmert som ein <i>Java <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/applet/Applet.html">Applet</a></i> og er laga for å mest mogleg etterlikne logikkpianoet. For å skjøne programmet kan difor det greiaste vere å lese <a href="http://smmse.blogspot.com/2005/11/jevons-sitt-logikkpiano-ii.html">utgreiinga vår</a> eller <a href="http://tima-cmp.imag.fr/~amblard/JEVONS/">Jevons sin orginale artikkel</a> om korleis logikkpianoet fungerer. Vi skal likevel gje ei kort utgreiing her. <br /><br />Pianoet sjølv og kvar av hovuddelane tangent, stav og hevarm er representert av eigne javaklassar. Hovudklassen <a href="http://home.chello.no/~massl/logikkpiano/Piano.java">Piano</a> representerer sjølve maskina og inneheld i all hovudsak oppsett av pianoet. Hòla inn til stavane er representert av ein todimensjonal <i><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Label.html">Label</a> array</i> abecedarium. Tangentane vert representert med <i><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Button.html">Button</a></i>. I pianoet er kvar tangent forbundi med ein hevarm som løftar seg når ein trykkar på tangenten. Hevarmane er representert med klassen <a href="http://home.chello.no/~massl/logikkpiano/Lever.java">Lever</a>, og ved at denne klassen implementerer <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/ActionListener.html"><i>ActionListener</i></a> kan ein hevarm enkelt registrere at ein tangent har vorte trykka ned. Når ein hevarm løftar seg kan han få stavane til å flytte på seg og endre posisjon ved å slå bort i pinnar i stavane. Stavar er representert med klassen <a href="http://home.chello.no/~massl/logikkpiano/Rod.java">Rod</a>, og pinnane er i denne klassen representert av ein <i>boolean array</i> pin. Enkelt og greitt har klassen Rod ein metode move som hevarmane kallar når dei løftar seg, og i denne metoden vert den nye posisjonen til staven rekna ut. Etter å ha fått ein ny posisjon kallar staven på metoden display i klassen Piano for å fortelje kva som no skal visast i hòla på framsida av pianoet.<br /><br />I tillegg til desse java-filane finst det ei HTML-fil <a href="http://home.chello.no/~massl/logikkpiano/index.html.txt">index.html</a> som gjer at programmet kan køyrast i ein nettlesar. Og meir er det vel eigentleg ikkje å seie om denne saka.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1166462605956490832006-12-18T18:18:00.000+01:002006-12-18T19:31:40.626+01:00Samarbeid, fridom, openheitFrå opprettinga av Senteret for om lag eit år sidan har vi hatt eit samarbeid med programvareutviklaren <i>Mass Production - No Warranty Software</i> (MP-NWS). MP-NWS har i ei årrekkje utvikla vitskapleg og politisk programvare, og mellom anna har utviklinga av <a href="http://smmse.blogspot.com/2005/11/jevons-sitt-logikkpiano-i.html">logikkpianosimulatoren</a> og <a href="http://smmse.blogspot.com/2005/12/meir-om-slutningar-iii-eit-dataprogram.html">slutningskalkulatoren</a> vore samarbeidsprosjekt mellom MP-NWS og SMMSE. <br /><br />Samarbeidet vil no verte vidareført i ei ny form. MP-NWS har taki ei avgjerd om å tilgjengeleggjere kjeldekoden til ei rekkje applikasjonar, og vil gjere dette gjennom SMMSE. I tida framover vil vi derfor presentere applikasjonar frå MP-NWS og samtidig leggje ut kjeldekoden. <br /><br />I valet mellom eit utal lisensar for <a href="http://en.wikipedia.org/wiki/Open-source_license">open kjeldekode</a> og <a href="http://en.wikipedia.org/wiki/Free_software_licenses">fri programvare</a> (Senteret anerkjenner ikkje skilnaden, berre for å nemne det) vil koden verte distribuert under <a href="http://en.wikipedia.org/wiki/Beerware">øl-varelisensen</a>.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1164568533013604062006-11-26T20:12:00.000+01:002006-11-28T08:59:25.786+01:00StegteljarStegteljarar, eller pedometer, har vorte populært i det siste. Til dømes gjev eit googlesøk på "skritteller" over 40 tusen treff og "pedometer" over tre og ein halv million. (Søk på "stegteljar" gjev to treff, men, men.) Med denne enorme interessa kunne ein kanskje tru at det her var snakk om ei ny oppfinning – ei skikkeleg nyvinning, men det er det sjølvsagt ikkje. Riktig nok er dei stegteljarane ein får kjøpt i dag elektroniske, men ikkje la deg lure til å tru at det gjer stegteljing til ein ny idé.<br /><br />I 1584 skreiv <a href="http://de.wikipedia.org/wiki/Jean_Errard_de_Bar-le-Duc">Jean Errard de Bar-le-Duc</a> følgjande om denne oppfinninga:<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">A new geographical instrument which attached to the horse's saddle, uses the horse's steps to display the length of the journey one has made [...] by which, and according to the step of the horse or the man, one can exactly measure the circuit of a place or the length of a journey. (Errard de Bar-le-Duc 1584, sitert etter Ifrah 2001:124)</font></td><td width="15"></td></tr></table><br />Men opphavet er endå eldre enn det. Den fyrste stegteljaren ein kjenner til er frå 1525 og var eigd av <a href="http://en.wikipedia.org/wiki/Jean_Fernel">Jean Fernel</a>. Men òg <a href="http://en.wikipedia.org/wiki/Leonardo_da_Vinci">Leonardo da Vinci</a> hadde før det laga teikningar av ein stegteljar, og Leonardo sin stegteljar var inspirert av innretninga <a href="http://en.wikipedia.org/wiki/Odometer">odometer</a> (avstandsmålar som baserer seg på omdreiingane til eit hjul, sånn som kilometermålaren i ein bil) som det truleg har funnest variantar av heilt tilbake til 300-talet før kristus. <br /><br />Det som er interessant med dei stegteljarane ein har frå omlag 1500-talet er at dei nytta eit posisjonssystem og i ein forstand var digitale. (Tenk på det når elektroniske stegteljarar vert marknadsført som "digitale".) Ein pinne vart festa til låret til gåaren og for kvart steg dytta pinnen til eit tannhjul som så flytta seg eit hakk. Når tannhjulet hadde gjort ei heil omdreiing dytta det til eit nytt tannhjul som så flytta seg eit hakk. Om kvart tannhjul hadde ti tenner og ein hadde ein visar knytt til kvart tannhjul kunne talet på steg ein hadde gått verte lesi direkte av visarane; det fyrste tannhjulet talde einarar, det andre tiarar, det tredje hundrarar osb. Stegtalet hadde ein digital representasjon i posisjonen til tannhjula og var representert med titalssystemet vi nyttar i dag (posisjonssystemet med grunntal ti). <br /><br />Faktisk var desse fyrste stegteljarane ei viktig inspirasjonskjelde for <a href="http://en.wikipedia.org/wiki/Gottfried_Leibniz">Leibniz</a> då han i 1670-71 bygde reknemaskina si, den tredje i verda:<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">When, several years ago, I saw for the first time an instrument which, when carried, automatically records the numbers of steps taken by a pedestrian, it occurred to me at once that the entire arithmetic could be subjected to a similar kind of machinery so that not only counting but also addition and subtraction, multiplication and division could be accomplished by a suitably arranged machine easily, promptly and with sure results. (Leibniz 1685)</font></td><td width="15"></td></tr></table><br />Meir om tilhøvet mellom teljing, aritmetikk og tannhjul seinare.<br /><br /><b>Kjelder</b><br /><br />Jean Errard de Bar-le-Duc. Premier Liver des Instruments mathématiques méchaniques. 1584.<br /><br />Hebbel E. Hoff, L. A. Geddes. The beginnings of graphical recording. Isis 53(3):287-325, 1962.<br /><br />Georges Ifrah. The universal history of computing. John Wiley & Sons, 2001.<br /><br />Gottfried Wilhelm Leibniz. Machina arithmetica in qua non additio tantum et subtractio sed et multiplicatio nullo, divisio vero pæne nullo animi labore peragantur. 1685. Gjengjevi på engelsk som "Leibniz on his calculating machine" i, David Eugene Smith (red.), A source book in mathematics, side 173-181, McGraw-Hill, 1929; Dover, 1959.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1145231813438528232006-04-17T01:48:00.000+02:002006-04-17T19:05:58.376+02:00Straum og logikk – kven var fyrst?Claude E. Shannon får som regel æra for å ha sett og skrivi om analogien mellom elektriske og elektroniske krinsar og logikk. Men sjølv om det var artikkelen til Shannon som fekk merksemd og la grunnlaget for den vidare utviklinga, var han ikkje den fyrste som såg denne samanhengen. Sjølv uttalte Shannon seinare at analogien er "[t]rivial, actually, once you make it", og det er ikkje til å verte overraska over at han har vorte oppdaga og gjenoppdaga mange gonger. I omvendt kronologisk rekkjefølgje:<br /><br /><b>1938:</b> Shannon publiserar artikkelen "A symbolic analysis of relay and switching circuits" i <i>Transactions of the American Institute of Electrical Engineers</i>. I 1940 leverer han artikkelen som masteroppgåve ved M.I.T., som eg har skrivi om <a href="http://smmse.blogspot.com/2006/02/shannon-og-logikken-i-ei-historie-om.html">før</a>. (Aspray 1990:116-117; Gardner 1982:129-130; Shannon 1938; 1940)<br /><br /><b>1936-37:</b> Japanarane Akira Nakasima og Masao Hanzawa publiserar ei rekkje artiklar (på japansk) i <i>Journal of the Institute of Electrical Communication Engineers of Japan</i> som etablerar den same analogien mellom elektriske krinsar og logikk som Shannon fann. Engelske samandrag vart publisert in <i>Nippon Electrical Communications Engineering</i> i 1938, men dei fekk ikkje same merksemda som Shannon. (Aspray 1990:117; Church 1953; Gardner 1982:129)<br /><br /><b>1936:</b> Benjamin Burack (ved Department of Psychology, Roosevelt College, Chicago) presenterer ei elektrisk logikkmaskin på eit møte i Lewis Institute. Maskina analyserer slutningar og er basert på at ein bygg opp dei logiske uttrykka av treklossar ein plasserar på maskina. Elektriske kontaktar i klossane lagar elektriske krinsar som får lamper til å lyse som indikerer om slutninga er gyldig eller ikkje, og kva for eventuell feilslutning som har vorte gjort. Maskina var lite kjent fram til Burack skreiv om ho i artikkelen "An electrical logic machine" i <i>Science</i> i 1947, og det er ingenting som tyder på at Burack baserte seg på nokon formell teori då han lagde ho. (Aspray 1990:114; Burack 1947; Gardner 1982: 127-182)<br /><br /><b>1934-35:</b> Russaren V. I. Šéstakov utviklar ein analogi mellom krinsar og boolsk algebra basert på ein ide av Paul Erénfést (sjå under) og skriv om det i ein artikkel som ikkje vert publisert. I staden vert artikkelen ein del av doktoravhandlinga til Šéstakov, som vert publisert i tidskriftet <i>Téhničéskaá fizika</i> i 1941. (Aspray 1990:117; Gardner 1982:129; Kline 1951)<br /><br /><b>1910: </b> Russaren Paul Erénfést føreslår ein analogi mellom boolsk algebra og elektriske krinsar i ei omtale av den russiske omsetjinga av boka "L'algèbre de la logique" av Couturat. Ideen vert sidan vidareutvikla av V. I. Šéstakov (sjå over). (Aspray 1990:117; Gardner 1982:129; Kline 1951)<br /><br /><b>1887-1890: </b>Amerikanaren Herman Hollerith bygg den fyrste holkortmaskina og nyttar ho til oppteljing av folketeljinga i USA i 1890 (vonleg kjem det ein tekst om dette seinare). Maskina var elektrisk og for å kunne telje kombinasjonar av ulike data samla inn om folk, til dømes kjønn, rase og nasjonalitet (Hollerith sitt eiga døme) hadde maskina eit system for å kople kombinasjonar av nåler som leste holkorta til ulike teljarar. Ved hjelp av seriekoplingar kunne til dømes ein teljar telje personar som var farga <i>og</i> kvinner medan ein annan talte personar som var kvite <i>og</i> utanlandske <i>og</i> menn. Parallellkoplingar kunne nyttast til å telje, til dømes, personar over ein viss alder; i aldersgruppa 45-49 år <i>eller</i> i aldersgruppa 50-54 år <i>eller</i> i aldersgruppa 55-59 år, osb. Kombinasjonar av <i>og</i> og <i>eller</i> var òg mogleg. Hollerith var truleg ikkje klar over det, men dette koplingssystemet er analogt til boolsk algebra. (Campbell-Kelly 1990:128-129,151;Hollerith 1889)<br /><br /><b>1886:</b> Filosofen Charles S. Peirce skriv i eit brev til Marquand (sjå under) om moglege vidareutviklingar av logikkmaskina hans:<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">I think electricity would be the best thing to relay on.<br /><img src="http://home.chello.no/~massl/peirce.jpg"><br />Let A, B, C be three keys or other points where the circuit may be open or closed. As in Fig. 1, there is a circuit only if <u>all</u> are closed; in Fig. 2. there is a circuit if <u>any</u> <u>one</u> is closed. This is like multiplication & addition in Logic.</font></td><td width="15"></td></tr></table><br />Fantastisk! (Med multiplikasjon refererer han til konjunksjon/"og" og med addisjon til disjunksjon/"eller".) (Gardner 1982:116,129; Peirce 1886)<br /><br /><b>1882-85?:</b> Inspirert av Jevons bygde Allan Marquand i perioden 1881-82 ei mekanisk logikkmaskin, og i 1901 skriv James Mark Baldwin:<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">In 1882 Marquand constructed from an ordinary hotel annunciator another machine in which all the combinations are visible at the outset, and the inconsistent combinations are concealed from view as the premises are impressed upon the keys. He also had designs made by means of which the same operations could be accomplished by means of electro-magnets.</font></td><td width="15"></td></tr></table><br />Det er uklårt kva for maskin Baldwin referer til, men på byrjinga av 1950-talet vart eit koplingsdiagram for ei elektromagnetisk maskin funne blant dei etterlatne papira til Marquand. Mays meiner diagrammet er frå rundt 1885, og skriv:<br /><br /><table border="0" cellpadding="0" cellspacing="0"><tr><td width="15"></td><td><font size="-1">The diagram which was apparently meant to operate this machine is made up of two circuits both wired in series and parallel. As we now know switches wired in series can represent a logical product [konjunksjon/"og"] and in parallel a logical sum [disjunksjon/"eller"]. Marquand probably made this application intuitively since this diagram is merely an electrical translation of his geometrical diagram ...</font></td><td width="15"></td></tr></table><br />Men det var utan at Mays kjende til brevet frå Perice (sjå over) som vart oppdaga tidleg på 1970-talet, og det er uvisst om Marquand teikna diagrammet før eller etter han fekk dette brevet. Gardner, som kjenner til brevet, deler likevel synet til Mays og skriv: "The wiring is of no special interest, since it merely provides an electrical method by which the keys of Marquand's machine can turn the pointers." (Den mekaniske maskina til Marquand viste svara med peikarar som peikte i ulike retningar) Aspray ser ut til å meine at logikkmaskina Baldwin nemner er ein prototyp for ei maskin basert på det elektromagnetiske diagrammet. (Aspray 1990:113-114; Baldwin 1901; Gardner 1982:114; Mays 1953)<br /><br /><b>Kjelder</b><br /><br />William Aspray. Logic machines. I, William Aspray (red.), <a href="http://www.computerhistory.org/collections/DocumentArchive/Documents/Books/Computing%20Before%20Computers/CBC.html">Computing before computers</a>, side 99-121, Iowa State University Press/Ames, 1990.<br /><br />James Mark Baldwin. <a href="http://psychclassics.yorku.ca/Baldwin/Dictionary/defs/L4defs.htm#Logical Machine">Logical machine</a>. I, James Mark Baldwin (red.), <a href="http://psychclassics.yorku.ca/Baldwin/Dictionary/">Dictionary of Philosophy and Psychology, Vol. 1</a>. MacMillan, 1901. <br /><br />Benjamin Burack. An electrical logic machine. Science, 109(2842):610-611, 17. juni, 1947.<br /><br />Martin Campbell-Kelly. Punched-card Machinery. I, William Aspray (red.), <a href="http://www.computerhistory.org/collections/DocumentArchive/Documents/Books/Computing%20Before%20Computers/CBC.html">Computing before computers</a>, side 122-155, Iowa State University Press/Ames, 1990.<br /><br />Alonzo Church. Nippon Electrical Communication Engineering. Journal of Symbolic Logic, 18(4):346, 1953.<br /><br />Martin Gardner. Logic machines and diagrams. Andre utgåve. The Harvester Press, 1982.<br /><br />Herman Hollerith. <a href="http://www.columbia.edu/acis/history/hh/">An electrical tabulating system</a>. The Quarterly, Columbia University School of Mines, X(16):238-255, 1889.<br /><br />George L. Kline. Foundations of mathematics and mathematical logic. Journal of Symbolic Logic, 16(1):46-48, 1951.<br /><br />Anthony Liversidge. Profile of Claude Shannon. I, N.J.A. Sloane og Aaron D. Wyner (red.), Claude Elwood Shannon Collected Papers, side xix-xxxiii, IEEE Press, 1993.<br /><br />W. Mays. The first circuit for an electrical logic-machine. Science, 118(3062): 281-282, 4. september, 1953.<br /><br />Charles S. Peirce. Brev til A. Marquand, datert 30. desember 1886. I Writings of Charles S. Peirce, Volume 5, 1884-1886, side 421-423. Indiana University Press, 1993.<br /><br />Claude Elwood Shannon. A symbolic analysis of relay and switching circuits. Master's thesis, Massachusetts Institute of Technology, 1940.<br /><br />Claude Elwood Shannon. A symbolic analysis of relay and switching circuits. Transactions of the American Institute of Electrical Engineers, 57:713-723, 1938.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1145202630392245062006-04-16T17:47:00.000+02:002006-04-16T18:01:09.026+02:00Shannon og logikken III <a href="http://smmse.blogspot.com/2006/02/shannon-og-logikken-i-ei-historie-om.html">del I</a> såg vi korleis Claude E. Shannon i masteroppgåva si frå 1940 viste den no så kjente analogien mellom utsegnslogikk og elektriske og elektroniske krinsar. I denne testen vil eg sjå på oppdaginga til Shannon i tilhøve til <a href="http://smmse.blogspot.com/2006/02/jevons-sitt-logikkpiano-iii.html">skjemaet eg nytta på Jevons og logikkmaskina hans</a>. Dette skjemaet hadde tre steg:<ol><li>Algoritme</li><li>Analogi</li><li>Maskin</li></ol>Korleis passar så skjemaet med arbeidet til Shannon? Lat oss byrje med å sjå kva Shannon sjølv skreiv i innleiinga i masteroppgåva:<br/><br/><table><tr><td width="15"></td><td><font size="-1">Any circuit is represented by a set of equations, the terms of the equation representing the various relays and witches of the circuit. A calculus is developed for manipulating these equations by simple mathematical processes, most of which are similar to ordinary algebraic algorisms. This calculus is shown to be exactly analogous to the Calculus of Propositions used in the symbolic study of logic. For the synthesis problem the desired characteristics are first written as a system of equations, and the equations are then manipulated into the form representing the simplest circuit. The circuit may then be immediately drawn from the equations. By this method it is always possible to find the simples circuit containing only series and parallel connections, and for certain types of functions it is possible to find the simplest circuit containing any type of connection. In the analysis problem the equations representing the given circuit are written and may then be interpreted in terms of the operating characteristics of the circuit. It is also possible with the calculus to obtain any number of circuits equivalent to a given circuit.</font></td><td width="15"></td></tr></table><br />For kort å oppsummere: To analogiar vert etablert; mellom tilstanden til brytarar og sanningsverdiar (eittal og nullar) og mellom formlar og krinsar. Dinest to metodar; ein metode for å designe krinsar ("the synthesis problem") og ein metode for å analysere krinsar ("the analysis problem"). Båe metodane er basert på ein analogi til utsegnslogikk (boolsk algebra). I resten av denne teksten skal eg konsentrere meg om den fyrste av dei.<br /><br />Som vi kan sjå var det Shannon gjorde meir generelt enn arbeidet til Jevons. Medan Jevons nytta analogiane han etablerte til å lage ei maskin som utfører ein algoritme, nytta Shannon analogiane sine til å lage ein <i>metode</i> for å lage maskiner. Det vil seie at om vi kan uttrykkje (til dømes) ein algoritme ved hjelp av utsegnslogikk kan vi nytte metoden til Shannon for å lage ei maskin som utfører algoritmen. Dette gjev oss det meir generelle skjemaet:<ol><li>Analogi</li><li>Metode for å nytte analogien til å lage maskiner</li><li>Algoritmar (eller tilsvarande karateriseringar av metodar)</li><li>Maskiner</li></ol>I tilhøve til det førre skjemaet kan vi sjå på dette som eit metaskjema, på den måten at førre skjemaet er ein instans av det nye skjemaet.<br /><br />Som eit døme kan vi sjå på krinsen eg viste i <a href="http://smmse.blogspot.com/2006/02/shannon-og-logikken-i-ei-historie-om.html">del I om Shannon</a>. I tillegg til analogien og metoden til Shannon hadde eg ein algoritme for å leggje saman to tal, som er den vi lærer på skulen: Start lengst til høgre og legg sama siffera på same plass i dei to tala. Om summen for ein plass er 10 eller høgre skal denne plassen i svaret ikkje ha med tiaren, men vi får ein i mente som skal vere med når vi legg saman siffera til venstre. Denne algoritmen uttrykte eg som tre utsegnslogiske formlar, og kunne så nytte analogien og metoden til å teikne ein krins ut frå desse formlane. Om krinsen faktisk hadde vorte laga, hadde vi hatt ei maskin for å leggje saman to binære tal med to plassar.<br /><br />At skjemaet for Shannon er eit metaskjema for skjemaet for Jevons vert kanskje endå tydlegare om vi ser på eit anna døme. To studentar ved Harvard, William Burkhardt og Theodore Kalin, som kjente til Shannon sitt arbeid, og som i følgje historia var lei av å lage sanningstabellar i logikktimane, bygde i 1947 si eiga logikkmaskin. På maskina kunne ein skrive inn eit utsegnslogisk uttrykk med inntil ti grunnutsegner ved å skru på ei rekkje brytarar. Maskina kunne så gå gjennom alle radane i sanningstabellen for utsegna og ei lampe indikerte for kvar rad om han er konsistent med utsegna eller ikkje. Sett bort i frå at maskina til Burkhardt og Kalin tillèt meir komplekse utsegner, gjer ho altså akkurat det sama som maskina til Jevons. <br /><br />Med andre ord; ved hjelp av ein metode for å finne radane i ein sanningstabell kunne dei nytte arbeidet til Shannon til å til å lage ei maskin som fann sanningstabellen for dei. Dimed kan vi seie at Burkhardt og Kalin følgde det same skjemaet som Jevons, og vi kan sjå at dette er ein instans av skjemaet for Shannon.<br /><br /><b>Kjelder</b><br /><br />William Aspray. Logic machines. I, William Asprey (red.), <a href="http://www.computerhistory.org/collections/DocumentArchive/Documents/Books/Computing%20Before%20Computers/CBC.html">Computing before computers</a>, side 99-121, Iowa State University Press/Ames, 1990.<br /><br />Edmund Callis Berkeley. Giant brains or machines that think. John Wiley & Sons/Chapman & Hall, 1949.<br /><br />Martin Gardner. Logic machines and diagrams. Andre utgåve. The Harvester Press, 1982.<br /><br />Theodore A. Kalin. A machine for calculating truth tables [samandrag]. The Journal of Symbolic Logic, 13(1):61-62, 1949. <br /><br />W. Mays, E. M. Hansel, D. P. Henry. Note on the exhibition of logical machines at the joint session, July 1950. Mind, 60(238):262-264, 1951.<br /><br />W. Mays, D. P. Henry. Jevons and logic. Mind, 62(248):484-505, 1953.<br /><br />Claude Elwood Shannon. A symbolic analysis of relay and switching circuits. Master's thesis, Massachusetts Institute of Technology, 1940.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1144535928493495012006-04-09T00:36:00.000+02:002006-04-09T00:39:41.266+02:00Senteret har flyttaog har no hovudkontor i Oslo, men har bestemt seg for å halde på namnet som det er.SMMSEhttp://www.blogger.com/profile/05458340589967177945noreply@blogger.comtag:blogger.com,1999:blog-18848841.post-1140397119140062582006-02-20T01:54:00.000+01:002006-04-09T00:33:49.303+02:00Shannon og logikken I – ei historie om eittal og nullarDu har sikkert høyrt eller lest at ei datamaskin berre skjønar eittal og nullar, eller enno verre at ei datamaskin er bygd opp av berre eittal og nullar. Den siste av desse påstandane er noko tvilsam, medan den fyrste kan seiast å vere både riktig og gal. Han er gal av di det ei datamaskin eigentleg opererer med er høg og låg spenning (dessutan har vi metodar for å omsetje til dømes tastetrykk til impulsar av høg og låg spenning, så det er ikkje feil å seie at ei datamaskin skjønar tastetrykk). Han er riktig av di det er ei veldig nyttig, og ikkje tilfeldig, måte å sjå det på; ein abstraksjon eller analogi kor vi assosierer 0 med låg spenning og 1 med høg spenning.<br /><br />Eit viktig bidrag til datamaskina si utvikling (og såleis viktig i datamaskina si historie) var masteroppgåva Claude Elwood Shannon leverte i 1940 (og ein artikkel han skreiv med same namn og tema som sto på trykk i 1938). I masteroppgåva si etablerte han denne analogien vi er vorte så kjende og vane med at mest ikkje tenkjer over han – mellom elektriske/elektroniske krinsar og eittal og nullar – og viste korleis det er ein perfekt analogi til boolsk algebra.<br /><br />I denne teksten skal eg sjå på nokre av dei tinga som gjer 0 og 1 til fine tal, og så på analogien til Shannon (og ein variant) og nokre enkle ting vi kan gjere med han. I del II vil eg sjå på bidraget til Shannon i tilhøve til skjemaet eg nytta på Jevons.<br /><br />Lat oss gå rett på saka og seie at vi (berre) har tala 0 og 1 og dei aritmetiske operatoraren + og ·. Operatorane + og · er som vanleg berre at vi lèt 1 + 1 = 1 sidan vi ikkje har fleire tal. (Det einaste alternativet er 1 + 1 = 0. Det er ikkje noko dårleg alternativ, og ofte ganske nyttig, så vi introduserer ein ny pluss ⊕ som er akkurat som + berre at 1 ⊕ 1 = 0.) I tillegg lat oss seie at <i>x</i>' = 1 - <i>x</i>. (Det er no mogleg å sjå at <i>x</i> ⊕ <i>y</i> = <i>x</i> · <i>y</i>' + <i>x</i>' · <i>y</i>.)<br /><br />Legg fyrst merke til at 0, 1, ⊕ og · gjev oss totalssystemet med pluss og gange. I eit talsystem med fleire plassar vil vi til dømes ha at 1 pluss 1 = 10 (eg skriv det sånn for å ikkje blande det med 1 + 1 = 1). Det kan vi få til ved å la <i>x</i> pluss <i>y</i> = <i>zw</i> sånn at <i>w</i> = <i>x</i> ⊕ <i>y</i> og <i>z</i> = <i>x</i> · <i>y</i>. Totalsystemet fungerar akkurat som titalssystemet, berre at det er to tal i staden for ti. I tillegg kan vi lett omsetje tal frå titalssystemet til totalssystemet og tilbake, så alt vi vil gjere i titalssystemet kan vi gjere med totalssystemet om vi vil.<br /><br />Lat oss no definere +, · og ' ved hjelp av tabellar. I tillegg skal vi setje opp sanningstabellar for dei logiske konnektiva ∨, ∧ og ¬ ved sidan av og sjå noko interessant.<br /><br /><table><tbody><tr><td><table cellspacing="0" cellpadding="0" width="160" border="1"><tbody><tr><td align="middle" width="25%"><i>x</i></td><td align="middle" width="25%"><i>y</i></td><td align="middle"><i>x</i> + <i>y</i></td></tr><tr><td align="middle">0</td><td align="middle">0</td><td align="middle">0</td></tr><tr><td align="middle">0</td><td align="middle">1</td><td align="middle">1</td></tr><tr><td align="middle">1</td><td align="middle">0</td><td align="middle">1</td></tr><tr><td align="middle">1</td><td align="middle">1</td><td align="middle">1</td></tr></tbody></table></td><td width="20"></td><td><table cellspacing="0" cellpadding="0" width="160" border="1"><tbody><tr><td align="middle" width="25%"><i>A</i></td><td align="middle" width="25%"><i>B</i></td><td align="middle"><i>A</i>∨<i>B</i></td></tr><tr><td align="middle"><b>U</b></td><td align="middle"><b>U</b></td><td align="middle"><b>U</b></td></tr><tr><td align="middle"><b>U</b></td><td align="middle"><b>S</b></td><td align="middle"><b>S</b></td></tr><tr><td align="middle"><b>S</b></td><td align="middle"><b>U</b></td><td align="middle"><b>S</b></td></tr><tr><td align="middle"><b>S</b></td><td align="middle"><b>S</b></td><td align="middle"><b>S</b></td></tr></td></tbody></table></td></tr></tbody></table><br /><table><tbody><tr><td><table cellspacing="0" cellpadding="0" width="160" border="1"><tbody><tr><td align="middle" width="25%"><i>x</i></td><td align="middle" width="25%"><i>y</i></td><td align="middle"><i>x</i> · <i>y</i></td></tr><tr><td align="middle">0</td><td align="middle">0</td><td align="middle">0</td></tr><tr><td align="middle">0</td><td align="middle">1</td><td align="middle">0</td></tr><tr><td align="middle">1</td><td align="middle">0</td><td align="middle">0</td></tr><tr><td align="middle">1</td><td align="middle">1</td><td align="middle">1</td></tr></tbody></table></td><td width="20"></td><td><table cellspacing="0" cellpadding="0" width="160" border="1"><tbody><tr><td align="middle" width="25%"><i>A</i></td><td align="middle" width="25%"><i>B</i></td><td align="middle"><i>A</i>∧<i>B</i></td></tr><tr><td align="middle"><b>U</b></td><td align="middle"><b>U</b></td><td align="middle"><b>U</b></td></tr><tr><td align="middle"><b>U</b></td><td align="middle"><b>S</b></td><td align="middle"><b>U</b></td></tr><tr><td align="middle"><b>S</b></td><td align="middle"><b>U</b></td><td align="middle"><b>U</b></td></tr><tr><td align="middle"><b>S</b></td><td align="middle"><b>S</b></td><td align="middle"><b>S</b></td></tr></tbody></table></td></tr></tbody></table><br /><table><tbody><tr><td><table cellspacing="0" cellpadding="0" width="80" border="1"><tbody><tr><td align="middle" width="50%"><i>x</i></td><td align="middle"><i>x</i>'</td></tr><tr><td align="middle" width="50%">0</td><td align="middle">1</td></tr><tr><td align="middle" width="50%">1</td><td align="middle">0</td></tr></tbody></table></td><td width="100"></td><td><table cellspacing="0" cellpadding="0" width="80" border="1"><tbody><tr><td align="middle" width="50%"><i>A</i></td><td align="middle">¬<i>A</i></td></tr><tr><td align="middle" width="50%"><b>U</b></td><td align="middle"><b>S</b></td></tr><tr><td align="middle" width="50%"><b>S</b></td><td align="middle"><b>U</b></td></tr></tbody></table></td></tr></tbody></table><br />Det vi ser er at definisjonane av +, · og ' er heilt like definisjonane av ∨, ∧ og ¬, berre vi bytar 0 med <b>U</b> og 1 med <b>S</b>. Det vil seie at dei essensielt er det same systemet, og at alt vi kan gjere i utsegnslogikk kan vi òg gjere med 0, 1, +, · og '. Med 0 og 1 kan vi gjere både aritmetikk og utsegnslogikk, så vi skjønar at dei er både fine og nyttige tal! No skal vi sjå kva Shannon gjorde med dei.<br /><br />Tenk deg ein brytar x på ein leidning mellom to punkt a og b. Vi skal teikne brytaren som<pre> x<br />a----o o----b<br /></pre>og kalle dette for ein krins. Analogien Shannon laga var å seie at om brytaren er lukka (så det er ei forbinding mellom a og b og straumen kjem gjennom) så har variabelen <i>x</i> verdien 0, og om brytaren er open (så det ikkje er ei forbinding mellom a og b og straumen ikkje kjem gjennom) så er <i>x</i> lik 1. Han observerte at om to brytarar er kopla saman i serie<pre> x y<br />a----o o---o o----b<br /></pre>må båe vere lukka for at det skal gå straum mellom a og b. Krinsen av x og y i serie kan difor få verdien <i>x</i> + <i>y</i>, sidan <i>x</i> + <i>y</i> er 0 berre om både <i>x</i> og <i>y</i> er 0. Om x og y er kopla i parallell<pre> x<br /> +---o o---+<br />a----+ y +----b<br /> +---o o---+</pre>må båe vere opne for at det ikkje skal gå straum mellom a og b, og krinsen kan få verdi <i>x</i> · <i>y</i> av di <i>x</i> · <i>y</i> har verdien 1 berre når både <i>x</i> og <i>y</i> er 1.<br /><br />Det er vanleg å byte om på det, og vi får då den alternative tolkinga i tabellen nedanfor.<br /><br /><table border="1" cellspacing="0" cellpadding="3"><tr><td