bittergubben

ytterligare en av de kränkta vita männen

Posts Tagged ‘Sortitiondemokraterna

Genererade namn till folkparlamentet

with 2 comments

Jag lägger ner detta projekt, sortitiondemokraterna, åtminstone för det här valet. Valsedelsmakulering beställd, den kommer även försvinna från myndighetens hemsida. Dels har det varit brist på positiv feedback, men främst för att jag inte är rätt person för att driva ett sådant här projekt – jag är för introvert för att vara lämplig eller för att trivas i den rollen.

Om du är intresserad av att driva ett sortitiondemokratiskt parti till nästa valrörelse, hör av dig i kommentarsfältet.

Anne-Marie Pålsson: ”Knapptryckarkompaniet: Rapport från Sveriges riksdag” – En bok som utmärkt illustrerar hur illa ställt det är med den svenska demokratin.

Nancy Fraser: “Rethinking the Public Sphere: A Contribution to the Critique of Actually Existing Democracy” – Fraser fokuserar på hur inkluderande det offentliga samtalet är; men det degenererar till en kamp mellan olika grupper, vars samtal står för gruppernas egna intressen, utan någon gemensam grupp som står för förnuft och allmänintresse.

Deliberativa opinionsundersökningar – Istället för att låta demokrati styras av vad allmänheten tycker baserat på soundbites, låt istället ett slumpmässigt och statistiskt representativt urval deliberera. Deras beslut motsvarar vad befolkningen skulle velat om de ägnat lika mycket ansträngning åt ämnet.

Kommandohöjderna och problemformuleringsprivilegiet i genusfrågan – Kommandohöjderna i olika frågor tenderar att kontrolleras av de som är dogmatiska. Hur skall mer sunda värderingar kunna utmana den feminism som nu dominerar kommandohöjderna i genusfrågan?

Written by bittergubben

6 april, 2014 at 13:46

Lottning till Sortitiondemokraternas folkparlament

with 3 comments

Jag är inte tillfreds med de alternativ som finns att rösta på, och det verkar vara fler jämställdister som inte heller är det. Skall man dra igång ett parti, då mer eller mindre behövs det en folkrörelse, det är inte något man gör som enskild privatperson. Särskilt inte om man är synnerligen introvert och tämligen solitär, inte har ordentlig finansiering, och tanken fortfarande är lite svävande. Men jag tänker pröva ändå.

Sortitiondemokraterna är ett parti som lottar fram ett folkparlament. Ingen meritvärdering görs. Folkparlamentet utser debattörer, och bestämmer hur partiet skall rösta vid votering i riksdagen. Omröstningarna i folkparlamentet är anonyma, så man vet inte hur enskilda parlamentariker har röstat. Parlamentarikerna bör inte debattera själva. Vem som helst i övrigt kan bli debattör, och folkparlamentet väljer vilka debattörer som är viktiga. Dessa debattörer, förutsatt att de inte är anonyma, har en privilegierad status i debatten, och om partiet väljs in i riksdagen så anställs de som politiska sekreterare, med uppgift att fortsätta debattera.

  • Genom statistisk representativitet står folkparlamentet för allmänintresset.

  • De anonyma omröstningarna gör att det blir svårt att utöva påtryckningar; det går inte för särintressen att belöna de som röstat ”rätt” eller bestraffa de som röstat ”fel” eftersom ingen vet vem som har röstat på vad.

  • Den åsiktskorridor som finns inom etablerade medier bygger på att särintressen kan reagera mot, och mobba dels de som uttrycker fel åsikter, och dels de medier och institutioner som erbjuder en plattform. Den mediala åsiktskorridorens filtrering försvinner inom Sortitiondemokraterna, det är folkparlamentet som direkt avgör vilka röster som är viktiga.

  • Istället för att partieliter bestämmer bakom lykta dörrar, eller på sin höjd på utskottsnivå, hur deras partier skall rösta i riksdagen – så som det ofta går till inom makthavande partier – så får man en öppen debatt, där folkparlamentarikerna bestämmer.

  • Den typiska väljaren är rationellt ignorant. Enskilda röster spelar egentligen inte någon roll, så man lägger måttligt med energi på att ompröva det som man tror på. Man diskuterar med och lyssnar till sådana som har liknande världsbild som en själv. Erfarenheten från deliberativa opinionsundersökningar och liknande visar att detta förändras när deras röster blir viktiga, folk anstränger sig när de ges ansvar.

  • Även i frånvaro av att bli invalda i riksdagen, skulle partiet utgöra en intressant debattplattform, som skulle kunna bidra till att nyansera det offentliga samtalet. Det skulle räcka med 2.6% för att få partibidrag så att partiet skulle ha råd att arvodera möten för ett litet folkparlament också inför nästa val. (I utgångsläget finns bara finansiering för att arvodera några möten för ett litet folkparlament).

Sortitiondemokraterna: som om ett deliberativt folk bestämde.

Nedan är kod för att generera möjliga personnummer från lotto/keno resultat.

#include <stdlib.h>
#include <stdio.h>


/*
Programmet använder lotto och keno till att generera ett antal möjliga 
personnummer. De vars nummer genererats, som är boende i Sverige och inte
har hemlig address, nomineras till riksdagen på partiets valsedel, i den 
ordning de genererades. I frånvaro av större finansiering, kommer bara de 
första 20 att utgöra det folkparlament som rankar debattörerna. 
*/


//MSVC++, adjust to your compiler
typedef unsigned __int32 ui32;


/*
Keno består av 20 nummer av 1-70, 
och lotto med tilläggsnummer består av 7+4 nummer av 1-35
Använd värden från Keno och Lotto dragningarna lördag 5te april (visas i TV4, Keno 17:55 och Lotto 19:55)
Kan göra copy-paste-replace från t.ex: http://www.lottoraden.se/lotto-resultat.php
*/
static const int kenorad[]= {2, 4, 6, 8, 10, 13, 16, 20, 21, 22, 23, 27, 38, 42, 44, 52, 60, 64, 65, 69};
static const int lotto1rad[]= {3, 7, 14, 16, 18, 26, 27, 15, 21, 22, 31};
static const int lotto2rad[]= {7, 14, 16, 17, 25, 26, 35, 1, 9, 21, 23};

static const int kenoNb= sizeof(kenorad)/sizeof(kenorad[0]);
static const int lotto1Nb= sizeof(lotto1rad)/sizeof(lotto1rad[0]);
static const int lotto2Nb= sizeof(lotto2rad)/sizeof(lotto2rad[0]);

static ui32 lottoKenoRadTillVärde(const int v[], int nb) {
  ui32 val= 0;
  for(int i=0; i<nb; ++i)
    val|= ui32(1)<<v[i];
  return val;
};


/*
Januari, 31 dagar
Februari, 28 dagar, 29 vid skottår
Mars, 31 dagar
April, 30 dagar
Maj, 31 dagar
Juni, 30 dagar
Juli, 31 dagar
Augusti, 31 dagar
September, 30 dagar
Oktober, 31 dagar
November, 30 dagar
December, 31 dagar

Ett år i den allmänna västerländska tideräkningen (gregorianska kalendern, 
som används i Sverige sedan 1753) är skottår om det är jämnt delbart med 4, 
utom vid sekelskiften (jämna 100 år); då är året endast skottår om det är 
jämnt delbart med 400. År 1700, 1800, 1900, 2100, 2200 och 2300 är alltså 
inte skottår (vilket de dock är i julianska kalendern), medan år 1600, 2000 
och 2400 är det.
*/
static const int månadslängdsTabell[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
static bool ärSkottår(int år) {
  return (år%4)==0 && ((år%100)!=0 || (år%400)==0);
};
static int månadslängd(int år, int månad) { return månadslängdsTabell[månad] + (månad==1 && ärSkottår(år)); };

static const int valår= 2014;
static const int startår= valår-60;
static const int slutår= valår-20;
static const int dagIndexTabellMax= (slutår-startår+1)*366;
static int dagIndexTillÅÅMMDD[dagIndexTabellMax];
static int dagIndexNb;

static void initRelativdagstabell() {
  int dagIndex= 0;
  for(int år=startår; år<=slutår; ++år) {
    for(int månad=0; månad<12; ++månad) {
      int ml= månadslängd(år,månad);
      for(int dag=0; dag<ml; ++dag) {
        if(dagIndex>=dagIndexTabellMax)
          exit(1);
        dagIndexTillÅÅMMDD[dagIndex++]= (år%100)*10000 + 100*(månad+1) + (dag+1);
      }
    }
  }
  dagIndexNb= dagIndex;
}


/*
En LCG (linear congruential generator) beräknar nästa värde som funktion av 
det föregående: X_{n+1} = (a*X_n + c) mod m

Provided that the offset c is nonzero, the LCG will have a full 
period for all seed values if and only if:
1) c and m are relatively prime,
2) a-1 is divisible by all prime factors of m,
3) a-1 is a multiple of 4 if m is a multiple of 4.
These three requirements are referred to as the Hull-Dobell Theorem.

När m kan skrivas på formen 2^k så uppfylls villkoren om:
a kan skrivas på formen 4k+1
c kan skrivas på formen 2k+1
*/

static ui32 LCG() {
  static int init= 1;
  static ui32 a, x, c;
  if(init) {
    init= 0;
    a= 4*lottoKenoRadTillVärde(kenorad,kenoNb)+1;
    c= 2*lottoKenoRadTillVärde(lotto1rad,lotto1Nb)+1;
    x= lottoKenoRadTillVärde(lotto2rad,lotto2Nb);
  }
  x= a*x+c;
  return x;
};

/* Wikipedia om Luhn-algoritmen:
För att beräkna kontrollsiffran är förfarandet likvärdigt, med skillnaden att man 
multiplicerar ömsom med 2 och ömsom med 1 (det vill säga att man börjar att 
multiplicera den sista siffran med 2, och inte med 1 som i fallet vid kontroll). 
Den erhållna summan dras därefter ifrån närmast större 10-tal, varvid 
kontrollsiffran erhålles.
För att beräkna kontrollsiffran för det niosiffriga personnumret 811218-987 
erhålles följande produkter:
8  1 1 2 1 8  9 8  7
*  2  1 2 1 2 1  2 1  2
-------------------------
^  ^ ^ ^ ^ ^  ^ ^  
16  1 2 2 2 8 18 8 14

Tvåsiffriga produkter splittras upp i ensiffriga tal. Siffrorna summeras därefter:
1+6+1+2+2+2+8+1+8+8+1+4 = 44

Kontrollsiffran erhålls genom att detta tal subtraheras från närmast högre tiotal.
50-44 = 6
Den avslutande kontrollsiffran blir således en sexa.
*/
static int kontrollsiffraLuhn(int värde) {
  int k= 0;
  int faktor= 2;
  while(värde) {
    int x= faktor*(värde%10);
    k+= (x%10)+(x/10);
    faktor^= (1^2);
    värde/= 10;
  }
  return (10-(k%10))%10;
};

int main(int argc, const char **argv) {
  if(kenoNb!=20 || lotto1Nb!=11 || lotto2Nb!=11)
    exit(2);
  for(int i=1; i<kenoNb; ++i) {
    if(kenorad[i]<=kenorad[i-1])
      exit(3);
  }
  for(int i=1; i<lotto1Nb; ++i) {
    if(i==7)
      continue;
    if(lotto1rad[i]<=lotto1rad[i-1])
      exit(4);
    if(lotto2rad[i]<=lotto2rad[i-1])
      exit(5);
  }

  initRelativdagstabell();
  FILE *file;
  if(fopen_s(&file, "pnummer.txt", "w"))
    exit(6);

  for(int i=0; i<300; ++i) {
    ui32 slumptal= LCG();
    int treSiffror= slumptal%1000;
    slumptal/= 1000;
    int ååmmdd= dagIndexTillÅÅMMDD[slumptal%dagIndexNb];
    fprintf(file, "%06d-%03d%1d\n", 
      ååmmdd, treSiffror, kontrollsiffraLuhn(ååmmdd*1000+treSiffror));
  };

  fclose(file);
  return 0;
};

Written by bittergubben

4 april, 2014 at 12:42