måndag 6 december 2010

Uppgradera en PostgreSQL-databas

Uppgraderade till sist min Debian GNU/Linux, trots att jag sagt att jag skulle gjort det för ett par tre veckor sedan.

Innan installation av den nya versionen av PostgreSQL gör man en databasdump med
pg_dump rursus > db-101205.sql
När man installerat den nya versionen, skapar man – som användare postgres – en databas och sedan en användare, typ
rursus@iapetus: su                  # logga in root
Lösenord: ************************* # JO! Mitt rootlösen ÄR så långt – i princip...
root@iapetus: su postgres           # logga in på postgres
postgres@iapetus: createdb rursus   # skapa databasen
postgres@iapetus: createuser rursus # skapa postgres-användare
Sedan går man in på psql och tilldelar alla rättigheter till användaren rursus:
postgres@iapetus: psql
psql (8.4.5)
Type "help" for help.

postgres=# grant ALL privileges ON database rursus to rursus;
Gå ur:
postgres=# \q
Gå tillbaka till användarkontot:
exit      # ur postgres tillbaka till root
exit      # ur root tillbaka till user rursus
Sedan plockar man in alla dumpade data:
rursus@iapetus: psql
psql (8.4.5)
Type "help" for help.

postgres=# \i db-101205.sql

söndag 28 november 2010

Hadeiskt kollage

Hadeikum (på engelska Hadean) var en period i Jordens historia som inte täcks in av geologivetenskapen eftersom geologiska lämningar från denna period inskränker sig till små zirkonkristaller (ZrO₂) som finns insprängda i mineral som bildats senare. Tidigare trodde man att Jorden måste varit het och helvetisk – därav hadeisk efter dödsguden Hades i grekisk mytologi – och ha haft magmaoceaner och en stark vulkanism under denna period, baserat på information från Månen. Emellertid börjar det växa fram olika sorters modeller och astronomisk information som gör att man får allmänna begrepp om hur det såg ut i solsystemets tidigaste historia. Jag sätter här ihop ett kollage som inte platsar på exempelvis Wikipedia, eftersom det där finns regler mot långsökta synteser, d.v.s. att efter eget huvud lägga ihop pusselbitar på ett sätt som inte stöds av källorna. Det är i det följande kollaget inte heller säkert att jag alltid utnyttjar mig av majoritetsteorier.

Solglobulens kollaps

Någon gång före 4ˈ567 milj år sedan fanns ett gas- och stoftmoln som långsamt kollapsade och och bildade en öppen stjärnhop. Öppna stjärnhopar brukar ge upphov till ett strålningstryck som i sin tur föder nya stjärnhopar, vi vet inte om solens stjärnhop var den första eller en senare i en sekvensen av stjärnhopsfödelser, men det är rimligt att anta att solen föddes i en sådan stjärnhop av solsystrar och, då de flesta öppna stjärnhopar efter en tid skingras, att solsystrarna finns utspridda i vintergatan, nästan omöjliga att skilja åt från andra stjärnor av liknande ålder. Vi vet inte heller hur många de är, det kan röra sig om några tiotal upp till några tusen.

En kollaps från ett gasmoln till en stjärna går snabbt: när gasmolnet på något sätt tappat sin värme- och tryckjämvikt – det kan ske genom yttre strålningstryck från andra stjärnor eller chockvågor från supernovor – så omvandlas gasmolnet till en protostjärna på några tusen år. Genom inre rotationsmoment får protostjärnan en rotation, och runt protostjärnan bildas en gas- och stoftdisk som interagerar med protostjärnan så att dennas egenrotation minskar. Det är troligen vid denna tid som CAI-intrusioner, amorfa glaskulor man finner i kolkondritmeteoriter, bildas, och dessa är daterade till just 4ˈ567 miljoner år sedan. Vid denna tid hade alltså proto-Solen bildats och omgavs av en stor solnebulosa i form av en gas- och stoftskiva. Min egen spekulation är att det vid denna tid skedde massiva T Tauri-utbrott, kanske rent av FU Orionis-utbrott, som från proto-Solen på magnetisk väg pumpade över rotationsenergi och mycket hög hetta till solnebulosan, varvid CAI-intrusionerna bildade som "frön" i solnebulosan för framtida planetbildning.

Planetisimaler och oligarkisk tillväxt

Vid en okänd tidpunkt, men inte särdeles långt ifrån 4ˈ550 milj år sedan, bildades planetesimaler med olika storlekar från 1 km till 1000 km i solnebulosan. Fysikaliskt är det oklart varför och hur, eftersom rena dynamiska kollisioner enligt teorin skall förvandla alla kolliderande stenar till stoft, och således kan planetesimaler inte uppstå – praktiken brukar tack och lov inte bry sig om teorin i detta fall, emellertid: planetesimaler uppstod i tusental i det tidiga solsystemet och dessa började kollidera och ansamlas till ett litet antal protoplaneter med storlekar mellan 1000 km och Mars' storlek. Dessa kallas oligarker, och deras uppkomst förhindrade att fler dylika protoplaneter bildades – i stället ansamlade dessa protoplaneter fler planetesimaler, och överblivna planetesimaler sändes iväg i excentrisk bana med hög inklination.

I det yttre av solsystemet samlade sig några sådana oligarkiska protoplaneter på sig solnebulosans gas, och de började bli till jätteplaneter. Det lär ha gått snabbt. Två stycken sådana jätteplaneter bildades under en tid av kanske 100 år med en allt accelererande gas- och planetesimalinsamling. Dessa är naturligtvis desamma som Jupiter och Saturnus. Det är rimligt att tro att dessa två omgavs av gas- och stoftskivor, miniatyrkopior av solnebulosan, och att där successivt bildades de stora månar som än idag omger jätteplaneterna. Inga andra planeter hade ännu uppstått, Jupiter låg mycket närmare Solen vid ungefär 3½ AE, och Saturnus, som fortfarande växte till, inte långt utanför.

Stimulerad planetbildning

Dynamiska modeller av jätteplanetsystem med en solnebulosa antyder att jätteplaneter har en tendens att interagera med solnebulosas så att de vandrar inåt och slutar i en bana mycket nära sin centralstjärna, alternativt slukas upp av stjärnan. Uppenbarligen har inte detta inträffat i vårt solsystem. Emellertid finns det räkningar som antyder att Jupiter verkligen kan ha vandrat inåt i solsystemet – tills Saturnus växte sig stor nog att hålla emot från andra hållet.

100ˈ000 år efter att Jupiter och en nyfödd liten Saturnus bildats, så vandrade Jupiter inåt i emot 1½ AE, d.v.s. nuvarande Mars' bana. Därinne fanns ett planetesimalsystem eller möjligen ett oligarksystem, och samtidigt som detta system pressades ihop, så skingrades de yttersta av dessa planetesimaler och oligarker, så att den yttre kanten av det inre solsystemet befann sig ungefär vid 1 AE, nuvarande Jordens bana. Nu började Saturnus växa sig så stor att den höll fast Jupiter, och bägge jätteplaneter började vandra utåt.

[fortsättning följer]

fredag 26 november 2010

Helium-4

Drömde i natt om helium-4, alltså standardisotopen av helium. Eftersom den har en totalt "symmetrisk" uppbyggnad, kärnan består av två protoner med spin-antispin, och två neutroner spin-antispin, medan elektronskalet är ett s-skal med två elektroner spin-antispin, så företer helium-4-atomen i intermediära skalor vissa boson-liknande egenskaper – drömde jag – och att det är därför som denna gas har en tendens att sippra ut genom de minsta tänkbara läckor, samt vid högre temperaturer än andra ämnen uppvisa det Einstein-Bose-liknande supraflytande tillståndet – drömde jag. Kanske. Skall kolla upp detaljerna. Kalle-Anka-röst räknas inte hit.

onsdag 17 november 2010

Elementärt om elementarpartiklar

Vi vet definitivt inte allt om universums fysik, men följande grundfakta kan vara något att lära in för amatörer som mig.

Förutom vakuum, dess metrik och dess spökpartiklar, består universum av elementarpartiklar, vilka kännetecknas av kvanttal som "spinn", paritet, laddning, baryontal och "underlighet" som bara kan anta ett begränsat antal värden såsom -2, -1, 0, 1 och 2 (laddning). Två sorters elementarpartiklar finns, nämligen fermioner, med spin som är ett ickeheltal (halvtal, t.ex. -½, ½ eller 1½), och bosoner med spin som är heltal (t.ex. 0 eller 1). Om en grupp av fermioner befinner sig på exakt en och samma plats, så skiljer de sig i ett eller flera av kvanttalen; eftersom det bara finns ett begränsat antal kvanttal, kan man inte pressa in hur många fermioner som helst på en position. Fermionerna "motstår kollaps" och måste alltså fylla ut ett större utrymme om de är många – fermioner utgör "universums materia". Bosoner kan man emellertid pressa in på en och samma position i ett hur stort antal som helst. Bosonerna utgör i realiteten "universums fält", de "utövar krafter" och överför energi. När två materiella föremål utövar magnetisk kraft på varandra, så överför de i själva verket elektromagnetisk strålning (samma typ som "ljus") mellan varandra så att de attraherar eller repellerar varandra.

Av fermioner är protoner, neutroner och elektroner de som bygger upp materien. Alla protoner och neutroner är uppbyggda av tre kvarkar vardera. Existensen av dessa var först en hypotes, men är nuförtiden bevisad i fysikaliska försök. En trippel av kvarkar är så egendomligt funtad att om man försöker ta bort en av kvarkarna från en trippel, så blir kraften starkare och starkare. Det slutar med att all den energi som krävs för att separera kvarkarna genererar ytterligare kvarkar så att dessa antingen finns i par (mesoner) eller i tripler (hadroner). Kvarkar tycks inte existera ensamma, under kända fysikaliska förhållanden.

Elektroner är enkla odelbara partiklar med laddning -1.

Protoner och neutroner bildar sedan samlingar som utgör atomkärnor. Protoner har laddning +1, så för varje proton som ingår i atomkärnan läggs laddningen +1 till denna. Plusladdningar (som för protonen) attraherar minusladdningar (som för elektronen). Runt atomkärnorna ansamlas det alltså lika många elektroner som det finns protoner i kärnan. Detta utgör atomerna. Förutom laddning 0 finns andra fysikaliska kvanttal som atomerna strävar efter att utjämna, och detta sker genom att atomerna binder fast vid varandra i kemiska bindningar. Då nu atomerna i naturen finns av litet mer än 80 atomslag – grundämnen – och dessa kan binda ihop med 2 eller fler medlemmar, så finns de myriader av olika kemiska föreningar. Alla synliga föremål, all materia, vi människor själva, allting består av materia bestående av atomer och molekyler. Allt liv är baserat på molekyler av långa kedjor av kol (med 6 protoner, 6 elektroner och 6 eller 7 neutroner), och till dessa, och mellan dessa kolatomer, finns det atomer av andra grundämnen, främst väte, syre, kväve, fosfor och svavel. Detta är det materiella universum.

tisdag 16 november 2010

Fildump

Dumpar min fil Desktop/dumps/astro-114.u8:
Nice-modellen:
            ♃        ♄        ♅        ♆
    före    5.45    8.18    11.5    14.2
            ======== LHB bankaos ========    ~ 4.0 Ga BP
    efter    5.46    9.54    30.1    19.2

Nice-2-modellen:

    rrrrrrrrrrrr ♃ ♄ wwwwwwww         0 ka     ♃ 3.5 AU
    rrrrrrrrrrr ←♃←♄ wwwwwwww
    rrrrr ←♃←♄ ʳʳʳʳʳ wwwwwwww
    rrrrr  ♃ ♄ ʳʳʳʳʳ wwwwwwww         100 ka   ♃ 1.5 AU
    rrrrr  ♃→♄→ ʳʳʳʳ wwwwwwww
    rrrrr ʳʳʳʳʳʷʷʷʷʷ ♃ ♄→ www         500 ka   ♃ 5.2 AU ♄ 8.18
    ☿♀♁♂  ʳʳʳʳʳʷʷʷʷʷ ♃  ♄             idag     ♃ 5.2 

Nice scenarios:

                                                  ☿   ♀   ♁   ♂   ♃   ♄   ♅   ♆   ♇   Ⓔ

Carbonconcrite CAI intrusion age, 4567±X        ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░░░       4567
Planetesimal coagulation                        ⡪⡪⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡪⡪⡪⡪░░▒▒▒▒░░░░░░       4565
Oligarchic growth                               ⡪⡪⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⡪⡪⡪⡪░▒▒▒░░░░      ~4560.0 ~
Per Nice2: Jovian accretion                     ⡪⡪⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂ ♃ ♄ ⁂⁂⁂⁂⁂⡪⡪⡪⡪⡪⣿⣿⣿⡪⡪⡪⡪       
Per Nice2: Jupiter + Saturn wanders into IS     ⡪⡪⁂⁂⁂⁂⁂⁂⁂⁂⁂ ♃ ♄     ⁂⁂⁂⁂⁂⡪⡪⡪⡪⡪⣿⣿⣿⡪⡪⡪⡪       
Per Nice2: Jupiter + Saturn wanders outto OS    ⡪⡪⁂⁂⁂⁂⁂⁂⁂⁂⁂ ⡪⡪⡪⡪⡪ ♃ ♄ ⁂⁂⁂⁂⡪⡪⡪⡪⣿⣿⣿⡪⡪⡪⡪       
Inner planetary accretion                       ⡪ ☿  ♀  ♁  ♂⡪⡪⡪⡪⡪ ♃ ♄ ⁂⁂⁂⁂⡪⡪⡪⡪⣿⣿⣿⡪⡪⡪⡪⡪      
Methane planetary accretion                     ⡪ ☿  ♀  ♁  ♂ ⡪⡪⡪⡪ ♃ ♄ ♆ ♅ ⡪⡪⡪⡪⣿⣿⣿⡪⡪⡪⡪⡪⡪     
Per Nice1: Late heavy bombardment               ⡪ ☿  ♀  ♁  ♂ ⡪⡪⡪⡪ ♃  ♄    ♅   ♆⡪⡪⡪⡪⡪⡪⡪⡪⡪    4000
Post Late heavy bombardment                     ⡪ ☿  ♀  ♁  ♂ ⡪⡪⡪⡪ ♃  ♄    ♅   ♆ ⡪⡪⡪⡪⡪⡪⡪⡪⡪⡪  3800

tisdag 2 november 2010

ReactOS/NEJ – dosemu/JA

Försökte installera ReactOS på en gammal "skräpdator" (Oberon heter den), och att köra tandem med denna vid sidan av Linux. Det gick obra på så sätt att jag installerade den vid åtskilliga försök men att det sedan sket sig på kernel exception (blue screen of "death") redan vid boot. Det fick vara, och jag får tänka efter om vad Oberon skall användas till: en remote X-klient eller annan applikationsserver är alltid skoj att laborera med, men eftersom den är ledig skall jag helst använda den till så aparta OS som möjligt. Syllable OS är nåt att överväga också, ett försök med Hurd kan tänkas.

Nå, innan jag skrev över första primärpartitionen (en Windows 95 eller något) sparade jag det mesta av dess innehåll på CD för att om möjligt köra igång på Linux med Wine (windows-kompatibilitetsskikt) eller dosemu (DOS-emulator). Wine testade jag inte, men jag har några gamla strategispel för DOS som jag skulle vilja köra ibland, speciellt Ascendancy. De använder dock DOS/4GW, en driver och ett API som avsåg att underlätta för programmeraren de fruktansvärda begränsningar som fanns/finns i DOS, och förr när jag testade dosemu fungerade den inte med DOS/4GW. Detta var mycket länge sedan, kanske rentav 6 år sedan, och idag är det fixat så att jag alltså kan köra dessa spel.

lördag 23 oktober 2010

Debianuppgradering

Planerar att göra en uppdatering av mitt OS på söndag: specifikt från Debian lenny till Debian squeeze testing. Det brukar ta 2-3 timmar med diverse kringinställningar, själva installationen självt går troligen under en timme, men sedan måste jag fippla till GRUB och mina filsystem – jag brukar nämligen ha mina operativsystem på separata partitioner /dev/hda5 och /dev/hda6 från mina fildata.
Den här uppgraderingen blev inte av. I stället försökte jag med ReactOS, se ReactOS/NEJ – dosemu/JA, vilket misslyckades. Jag återkommer till den här uppgraderingen senare, när min tid räcker till.

onsdag 22 september 2010

Helvetesgulasch

1 stpaprika
3 stspansk peppar
5-7 stpotatisar
1 burkkrossade tomater
0.3falukorv
1buljongtärning
1helstekt oxe
matolja
dill
oregano
salt
Spansk peppar avfröas och stekes i rikligt (=lagom) med matolja, paprika avfröas och lägges i att steka på samma sätt. Potatis skalas och kokas i vatten med buljongtärning så att vattnet kan nästan koka bort under 15 min. När spansk peppar och paprika är färdigstekt (mjukt), så hälles krossade tomater på, och så får det koka. Salta lagom (d.v.s. avsmakning). Gå och spela patiens på datorn några gånger; en tetrisomgång duger också. Häll ner den röda smeten från stekpannan ner i potatiskoket, skruva ner kastrullhetta så det endast puttrar. Den helstekta oxen sänder du nu hem till ladugården med allvarliga förmaningar om att inte gå i närheten av traktens barbecue-partyn. Därefter ber du honom hälsa bonden Orvar på förbivägen. Häll nu i lagom mycket dill och oregano i stekpannan; oregano kan bytas ut mot basilika, man kan experimentera med kryddor, men inte cayenne eller starkare – spansk peppar finns redan i grytan. Stek nu tärnad eller slajsad falukorv i lagom med matolja. När det är litet lagom brunt hälls korven ner i den röda grytan. Ät och flämta! (Vatten är bara för mesar!)

söndag 5 september 2010

Obsrapport 2010-09-03/04

Hade sökaren mycket sned, så jag ägnade en kvart åt att först hitta ett extremt lysande objekt en planet i öster, och sedan vrida sökaren rätt.

Först kollade upp den där stora lysande planeten i öster: Jupiter med fyra månar snyggt upplagda, ett nordligt bälte extraordinärt mörkt, men såg tre andra bälten också. Såg inte röda fläcken. Sedan litet standardtester: chi och h Persei, M31 en gång, såg förstås M32, men kunde inte hitta NGC 205 för det lyste som fanken i köket. Letade reda på ET-nebulosan (NGC 457, öppen stjärnhop i Cassiopeja), lätt när man väl visste var man hittade den, men öppna stjärnhopar är inte särskilt givande i min 8-tums Newton. Såg ut som en ET-figur med utsträckta armar.

De släckte aldrig självmant i köket så jag fick gå in och säga åt dem. Efter det gick det lätt att hitta NGC 205. Hittade M34 i Perseus, lätt när man väl vet hur man skall leta: Algol ingår i ett pentagram, ut ifrån den norra antagonen till Algol går liksom en krok av två stjärnor, och en bit ovanför denna kan M34 ses i kikare. Det är bara att ställa in sökaren rakt på. Finns ett par-tre relativt uppenbara dubbelstjärnor där, varför jag fick för mig att ta en titt på Almaak, en av himlens mest uppenbara och snygga dubbelstjärnor.

Satte mig nu och glodde på ljussvaga asterismer med blotta ögat: fiskarnas linor, västra fisken självt, med sin rundel, den norra gammal-arabiska fisken, Aquarius Y, etc.. M31 syns lätt för blotta ögat. Försökte hitta Vulpecula, men den är ganska hopplös. Sagitta emellertid rätt, och hittade medelst kikare Brocchis Hop ("Rockhängaren"), på rak linje emellan pilens fjädrar och Albireo. Lucida Anseris går att se för blotta ögat, men Vulpecula eller Anser som sådana går inte att se. Emellertid inga problem med Camelopardalis, att ta ut en allmänriktning till Custos går ganska bra, och Lacertaringen med Honores och Lacerta är mycket klar och uppenbar i zenit. Till och med den besvärliga Lodjurets huvud syntes hyggligt, och Björnens huvud, fick mig att leta efter dess öron.

Öronen, alltså M81 och M82, mycket tydliga, speciellt M82 ett suddigt streck som var så uppenbart som [OUTSÄGLIGT]. Då prövade jag även med NGC 752 som jag gått bet på förr, men då jag kunde se den i kikaren var det inget problem, annat än samma som med M34: öppna stjärnhopar gör sig inte bra i min 8-tummare. Natti-natti.

torsdag 2 september 2010

Kärnbegrepp

Gjorde en första skiss på kärnbegrepp i programmeringsvärlden. Oavsett språk och paradigm är alla språks grundbegrepp specialiseringar av hypotetiska generella begrepp. Även om Erlang påstår sig inte använda "variabler" utan i stället "värden", så kan deras "värden" liknas vid variabler som endast kan sättas en enda gång. Man kan likna logikprogramspråkens termer med komplexa entiteter.

Mer GreaseMonkey

Använder nu Greasemonkey, mest nedanstående script, för att snygga till många fula sidor med olämpligt fontval.

fredag 27 augusti 2010

GreaseMonkey

Sitter och hackar runt med GreaseMonkey, ett tillägg till Mozilla Firefox.
  1. Man går först in i Verktyg>Tillägg
  2. Däri klickar man på fliken Hämta tillägg
  3. På rad två under flikikonerna står det Bläddra bland alla tillägg högrast => Firefox Addons öppnar i ett fönster
  4. Skriv "GreaseMonkey" i sökfönstret, tryck på Enter
  5. Sökningen GreaseMonkey visas
  6. Däri kan man trycka på knappen Lägg till i Firefox
I GreaseMonkey skapade jag scriptet Seriffize för bl.a. http://*.w3.org/ som envisas med att köra med äckliga sans serif fonter. Så här såg mitt simpla script ut:
  // ==UserScript==
  // @name           Seriffize
  // @namespace      http://*.w3.org/*
  // @description    Makes any sans serif page seriffed
  // @include        http://*.w3.org/*
  // ==/UserScript==
  var BS = document.body.style
  BS.background = "#CCDDFF";
  BS.fontFamily = "DejaVu serif";
  BS.fontSize = "90%";
  
  setHeadColor(1,"black","#AABBFF");
  setHeadColor(2,"black","#BBCCFF");
  setHeadColor(3,"black","#CCDDFF");
  setHeadColor(4,"black","#DDEEFF");
  setHeadColor(5,"black","#EEFFFF");
  setHeadColor(6,"black","#FFFFFF");
  
  function setHeadColor(level, color, background) {
      var cell = document.body.getElementsByTagName("h"+level);
      for (var i = 0; i < cell.length; i++) {
          cell[i].style.background = background;
          cell[i].style.color = color;
          cell[i].style.fontFamily = "DejaVu serif";
      }
  }
Scriptet är så gott som komplett patetiskt och skrattretande, men duger som intro för JavaScript-hackande. Innebörden i ovanstående kod skall framgå genom omedelbar insikt, och behöver inte förklaras för en normalt funtad haccationist. Kommentarer i koden är löjligt. Att kolla i manualer är bara för veklingar. I stället skall man läsa koden och stilla le när den djupa förståelsen automatiskt sipprar in i hjärnan genom tallkottkörteln.

torsdag 19 augusti 2010

Komprometterad sajt: expressen.se

Internetinfo: sajten www.expressen.se är komprometterad: det dyker upp popupfönster som sätter igång dataspel där man skall satsa pengar för att spela spel. Alla de som har adblock på sina webbrowsers kan sätta upp adtoma.com eller närmre bestämt http://*.adtoma.com/* på sina svartlistor. Observera att det blir vanligare och vanligare att stora medier låter sina sajter komprometteras genom sidoreklam från utländska servrar. Enligt svensk lag skall en sajt fullständigt upplysa om cookie-användningen, och tillse att denna inte sprids eller används på ett felaktigt sätt. De som känner sig osäkra bör kanske överväga att blockera expressen.se.

Filter för expressen.se:
http://*.adtoma.com/*en notorisk sajt som brukar finnas på alla adblockers by default, men vars namn kan behöva ställas om så att hela adtoma.com blockeras
http://*.eyewonder.com/*Alias processor killer
http://*.tradedoubler.com/*Alias processor killer

söndag 15 augusti 2010

Web 2.0

Web 2.0 är hyperfantastisk, superduper, marvelous, [...bla-bla...], guld och gröna skogar. [... hick! ...]

Web 2.0 är en hype, men det är samtidigt en vision. Jag föreslår en titt på python-avm-library, och dess inlänkade VAMP – Virtual Astronomy Multimedia Project. Det är vanligt att någon ser avancerade samarbetsprojekt och appar (i ursprungsbetydelsen applikationer inom datanördvärlden) såsom Wikipedia och google doc som den nya Web 2.0. Bägge är snygga kollaboreringsprojekt på nätet, men tekniskt är de inget vidare. Google försöker med en massa Ajax men det är nog egentligen fel väg att gå eftersom bägge appar/samarbetsprojekt baseras på urgammal teknik: HTML (icke programmerbart), JavaScript (en Scheme i förklädnad) och CSS. SVG och MathML har haft det oerhört tufft i en enorm uppförsbacke, där en massa marknadsaktörer systematiskt bromsat och fuskat till utvecklingsarbetet. En sann Web 2.0 baserar sig på en användning, snarare än befintliga programvaror och standarder, den baserar sig på ett praktiskt informations-spridnings- och underhålls-behov som redan finns, och den baserar sig troligen på befintliga filer. Man kan arbeta utifrån en enda redan befintlig browser, troligen Mozilla eller något WebKit-baserat, men inte Google-baserat (eftersom de egentligen bara har intresse av oförhindrad smutsweb med urchins, vilket inte har något användarvärde), men det är bäst om man på längre sikt totalt bryter med Good Old Web (HTML/CSS/JavaScript) som håller på att stagnera.

lördag 14 augusti 2010

Färgblindacceptabilitet fastställd

Ett bra nätbaserat färgblindfilter finns lätt tillgängligt från wikipedias sida om färgblindhet. Jag har en ytterst svag färgdefekt som så gott som aldrig märks utom i svåra Ishihara-test, och jag har väl egentligen ingen nytta av det hela eftersom jag sällan störs av färgsättningar, men det är ändå intressant med avvikande färgigenkänning. Jag testade denna blog, sternons och Siderespector och fann att de alla är acceptabla för färgblinda: länkar är distinkta från resten av texten.

Jo förresten: jag uppfattar under vissa faser gulvita stjärnor (klass F) som gröna! Färgsinnet slår av när man anpassar till nattseende. Vaknar man upp i mörkret mitt i natten och ser en perfekt stjärnklar himmel är varje stjärna vit. Inga färger alls, eftersom färgseendet tycks vara ett separat system som slås av i mörkret. Om man emellertid går ut och tittar på himlen från ljuset inomhus, så är färgseendet fortfarande igång, samtidigt som ögonen börjar anpassas för svagare ljusförhållanden. Om vi skall rapa tabeller så är det väl ungefär såhär:
Dagsyninne--
Fas Ijust utgångenstjärnor syns knappt
Fas IInågon minutstjärnor tydliga, starka färger
Fas IIIett par minuterstjärnor klart synliga, svaga färger
Nattsynfem-tio minuterstjärnor mycket klara, inga färger
När färgerna är som starkast, uppfattar jag ibland F-stjärnor som "grå" med en svagt grön anstrykning. Egentligen är det något i följande stil:
B-stjärnorberäknad oegentlig färg, såsom en av stjärnan belyst yta skulle få om den betraktades i jämförelse med en vit yta i D65-belysning...
A-stjärnorberäknad
F-stjärnorberäknad
G-stjärnorberäknad
K-stjärnorberäknad
M-stjärnorberäknad
kolstjärnor; de är alla ganska ljussvaga, TX Psc, Y CVn (La Superba), UU Gem och R Lep de ljusaste, ser besynnerliga ut i teleskop, det finns liksom inget perifert återsken runt dem och de är litet svårare att fokusera blicken på

onsdag 11 augusti 2010

Testa nå't vansinnigt...

Gick med i en lång lista (c:a 45) av programmerargrupper på Facebook för att se om jag blir spammad till döds. Tankegången är en slags syntes av jobbsökning via facebook och att hitta svenska programmerarkollegor. Vi får se om förfarandet funkar – det verkar som om man är tvungen att regelbundet scanna av olika grupper. Ett enda högintensivt forum kanske hade varit bättre – eller kanske inte...

lördag 7 augusti 2010

sverigesradio.se

sverigesradio.se igen!! Datorn började gå trögare och trögare – jag har en Linux på en omodern Acer med extraordinärt lite minne (256 meg) – så jag brukar få kolla minnesläckor för att datorn inte skall stanna. De stora troublemakers är program som slaskar ner med minne:
  • garbande interpretatorer, speciellt JavaScript, och JavaScript kör i alla webbrowsers
  • Java VM, (OpenOffice.org, jedit m.m.)
  • XUL/Mozilla Chrome-baserade program (evolution mailklient)
  • ibland även gnome-panel, mer förr än i nutiden – det verkar som om vissa minnesläckor har utvecklats bort
Jag letade nyss varför allt gick så fbaskat segt, och häpna[!] – eller inte – jag hade glömt sverigesradio.se med sina urchins (surfspiontrojaner) som låg och tjuvaktigt stal minne och processorkraft från mig – jag tycker ju förstås att urchins är en sorts bot-net som använder min dator för högst tvivelaktiga syften.

tisdag 3 augusti 2010

Sternons

Skapade nu en blogg för sternons, och gjorde en svartsk design helt annorlunda än mina normala svenska anteckningsbloggar. Ändamålet är att blogga om sternons, utifall att det skulle bli något stohej om programmet, vilket är fullt möjligt så småningom när jag suttit och bytt ut en massa wikipediabilder (stjärnkartor) till SVG. Då får vi se då, vad som kommer att hända.
Kommentar: måste göras om: den bloggmall jag använde var klart undermålig. Måste byta till en likadan som denna blog men med färgerna inverterade.

Sternons Wiki, del II

Google code's wikispråk är så pass handikappat att användarmanualerna troligen hamnar på min framtida Sternonsblogg, vad den nu kan tänkas komma att heta.

torsdag 29 juli 2010

Varför svenska?

Ja, varför? Man kan ju inte kommunicera data världsvitt med hjälp av svenska språket. Jag vet inte ärligt talat – kanske är det det att det finns ett förakt mot svenska språket som är fullkomligt omotiverat: svenska är ett av de få språk där begrepp såsom spårvagnsförarhandbok blir ett enda ord utan ett jättelikt antal stavelser, på engelska blir det tram drivers manual, på tyska blir det Strassenbahnführerhandbuch vilket är litet längre men också ganska bra. Poängen är alltså att man kan skapa kompakta enordsbegrepp som kan fungera som termer i en avancerad vetenskaplig eller teknisk miljö såsom programmeringsvärlden som har ett starkt undertryckt behov av avancerad enhetlig terminologi. Konstruktörer av konstruerade språk brukar fästa sig vid helt fel detaljer: grammatik, en godtycklig känsla för "naturlighet" och annat sidotrams som inte har med språkets användning som kommunikationsöverförare att göra.

Efter litet eftertanke tror jag att det blir bäst att jag behåller bloggen på svenska, och startar en ny blogg för sternons, när tiden är mogen. Det främsta skälet för att bedriva bloggen på svenska är dels att attrahera svenskspråkiga programmerarnördar, dels att skapa en mer tydligt svensk datajargong: engelska är faktiskt inte riktigt så bra som man i längden behöver och med en svensk datajargong kan svenska datanördar stärka sin konkurrens gentemot omvärlden.

onsdag 28 juli 2010

Sternons Wiki

Sternons Wiki inlagd här. Man kan ju direkt säga att google codes wikispråk är starkt handikappat jämfört med Wikipedias wikispråk, och extremt handikappat jämfört med rak HTML som jag använder här på Haccationes. Jag får fundera på var och hur dokumentationen skall ligga, PDF eller HTML är ju trevliga saker, men jag vet inte om de går att visa ofiltrerade på google code.

HTML5

HTML5, denna nästa webstandard som skall komma – den är bara så fruktansvärt fel! Ett stort gäng nya taggar <nav> och <section>, <article> tillför ingen egentlig ny semantik som inte lika gärna kan klassas in. <canvas> gör i princip bara samma sak som object, parsningsreglerna relaxas så att det blir lättare att skriva skit-HTML, man lägger till två alternativa databas-access-interface Web SQL och Indexed DB. Vilken dj-a mishmash! Man tillåter inbäddning av SVG och MathML och det är bra men fem år för sent. Vad är det för fel på XHTML/CSS/SVG/MathML och SMIL? Kanske att dessa ännu inte funkar för alla browsers, men den eviga eftersläntraren är ju Internet Explorer, och de kommer ju inte att stödja HTML5 heller. Jag tror att man i stället borde börja om från scratch, och bygga ett nytt ML runt en referensimplementation som är MIT-licensierad.

tisdag 27 juli 2010

Alla hajpar

Med anledning av mitt föregående inlägg drar man sig lätt till minnes alla hajpar och felaktiga föreställningar som graserar i datavärlden:

Det som äger marknaden är kvalitetsmässigt bäst! Fel! Enstaka marknadsstandarder och program är OK, men det som är mest spritt är det som haft öppna olicensierade standarder eller det som marknadsförts mest. Exempel är PC (olicensierad) och Windows (marknadsförd), Mac var/är tekniskt mer genomtänkt, Windows hade en bättre konkurrent OS/2 som var uselt marknadsförd, och som dess ägare IBM inte trodde på.

Objektorienterade programspråk: Jo OOPL:s är OK, men man kan objektorientera in absurdum, tills man inte hittar koden på grund av alla objekt, och så finns det ett stort gäng problem som är viktiga för programmering och där objekt eller inte objekt är helt irrelevant fråga, speciellt då det gäller strömmar, pluggar, parallellism, backtracking i sökprocesser, lazy-eval och sådant – att ha sina prylar som objekt hjälper något men själva jobbet kvarstår.

Java: Java uppfann det knaggliga trähjulet på nytt, i det ekrade cykelhjulets tidevarv, först efter 5-10 år återuppfanns generiska klasser som redan fanns i C++ och Ada, och detta i en lika dålig form som C++. Att snatta upp C#:s generiska klasser hade varit något bättre. Java har ett jättefint API som gör det lätt att programmera, Java's strängar är såvitt jag kan se helt obegripliga för alla andra än erfarna C- och C++-programmerare: de hänger sig och beter sig lika underligt som om de varit C-strängar. (Denna kritik riktas bara mot språket: JRE är en bra sak)

Garbage Collection: jättebra om man har en garbage-collection-algoritm inbyggd i programspråket, för då slipper man – som programmerare – att tänka på sådana saker som att allokera och deallokera minne. Tyvärr är garbage-collection-algoritmerna illa eller värre än illa implementerade: Java för Linux (Sun-versionen) stannar världen helt plötsligt så att man bara sitter och glor på programmet i upp till en minut – samma med den förskräckliga browsern Google Chrome, andra garbar läcker långsamt (Mozilla?) ytterligare andra gör programmet segt som sirap. Man kan i teorin tillverka bra garbar, men det är extremt svårt, och "marknadsstandard" tycks vara en garb som förorsakar en massa problem och irritation. Användaren blir inte glad!!

Google code och browsers

Filkatalogbläddringen funkar inte på Google Code med vissa browsrar. Testat:
Epiphany-browse2.22.3 / Gecko 1.9funkar intetrol Gjs, ett SpiderMonkey-derivat
Google Chrome5.0.375.55 betafunkarV8
Iceweasel3.0.6funkarSpiderMonkey
Konqueror3.5.9funkar inte??
Opera10.00 (build 4585)funkarFuthark?
En källkodsbläddring på sidan visar att det är något i JavaScript som bara funkar för vissa browsrar. Lägger till namnet på JavaScript-motorn.

Jag blir tvungen att köra Iceweasel: den version jag kör har en subprocess kallad xulrunner-stub som kan börja skena och äta mer och mer minne – jag har inte testat alla browsers än, men det här suger precis lika botten som Google Chrome och Epiphany. Återstår senare att testa Opera.

Finns på webben.

Efter ett stort fruktansvärt slagsmål med svn så fick jag ut min källkod för mkmap till sternons repository. Man kan väl säga att det är ett första steg i att slippa slarva med en minnespinne, samt att göra koden tillgänglig för gemene.

Slagsmålet

Vad jag gjorde för att importera en katalog mkmap till sternons:
  1. gjorde en katalog sternons (kommer inte att användas på sternons.googlecode.com) i katalogen dumps
  2. i detta directory en underkatalog mkmap
  3. gick upp till katalogen dumps
  4. gjorde en svn import sålunda:
          svn import sternons https://sternons.googlecode.com/svn/trunk \
              -m 'initial import'
Sedan tog jag bort sternons/mkmap, och gjorde en checkout:
    svn checkout https://sternons.googlecode.com/svn/trunk/ sternons \
        --username tomki923
När jag skulle ändra en fil och committa:
    svn commit
så fick jag följande vansinniga felmeddelande:
    svn-commit.tmp: forward host lookup failed: Unknown host : Connection timed out
    svn: Arkiveringen misslyckades (mer information följer):
    svn: system("nc svn-commit.tmp") returnerade 256
Vilket verkar vara ett allvarligt jättefel, man kan lika gärna skrika
    SYNTAX ERROR: ERRNO #666
Men det berodde bara på att jag inte hade en texteditor konfigurerad. Så här skall man anropa om man inte har en texteditor konfigurerad:
    svn commit -m 'subst tabs for spaces'
alltså skicka med ändringskommentar från kommandoraden, i detta fall bara för att ge snyggare källkod.

Kvällshack

Orion i Lamberts koniska projektion
Kvällshack mkmap med en rast med snabb promenad igår. Åstadkom:
  • kan, genom omkompilering, titta mot godtycklig plats på himlen,
  • efter brottningsmatch med egenheter hos Lambert-konisk projektion och rektascensions-intervall fick jag underliga artefakter som visade halva himlar att försvinna,
Därmed är programmet förberett för konfigurationsfiler likt PP3, men där skall jag ta en annan väg än PP3: jag scannar tokens UTF-8 som tidigare nämnts, medan PP3 troligen rakt läser in kommandorader och direktinterpreterar dem.

Reflektion över utvecklingsarbete: Agile brukar framhålla refaktorerande utvecklingsmodeller i oftast ytterst små steg ("faktoreringar" eller något?) - detta följer jag också naturligen: men det finns fall
  • där man måste hoppa och ta mycket långa utvecklingssteg ("hopp"), oftast med tung matematik inblandad,
  • där man kastar koden och gör en ny (som i extreme programming XP), oftast där man faktorerat sig in till ett felaktigt kodläge,
  • där man bygger transplanterbara moduler att ersätta befintliga moduler,
  • och så emotsätter jag mig förstås emotionell laddning av begrepp som att kalla programutvecklingsmetodik för best practice – det där kan vi väl kalla en löjlig kärringism ...
Jag kommer att börja formulera en plan för utvecklingsarbetet nu.

måndag 26 juli 2010

Pinnen!!

Retade gallfeber på mig själv genom att glömma minnespinnen när jag for till Norrköping i helgen, där jag hade fått chans att testkompilera min PP3-ersättare på Windows Cygwin¹ – mkmap skall den heta, och den skall ligga på sternons på Google Code. I alla fall, efter en del abstinens i att endast sitta och surfa efter källkod till stdio och bedöma om wide_char-versionerna av printf är "porterbara" till att bli locale-oberoende, så hackade jag igång igen igår kväll och förberedde med att göra utstyrningsparametrarna av stjärnkartan inläsningsbara från en konfigurationsfil likt i PP3. Förberedelserna bestod i att jag gjorde en klass för själva kartan – jo "klass", det är inte lätt att skriva objektorienterat i C, och koden blir knappast vacker, men det går².

¹  min egna Windows är död p.g.a. en skraltig hårddisk, där min primära första partition snabbt sönderfaller och blir oläslig för varje operativsystem efter formateringen.
²en fördel med att skriva objektorienterad C framför C++ är att i C har man inga virtuella tabeller likt i C++ – alltså globalt utpekade klasstabeller för en given objektinstans – vill man ha trubbel i C++ skall man anropa new samtidigt som man kör parallella trådar, pthreads eller fork, det ger mardrömslika fel som man kan offra veckor på att felsöka...
... man kan, med viss möda, skapa ett motsvarande klassobjekt i C som dock är ett minnesallokerat objekt som levereras med till funktioner, snarare än att de ligger globalt för trådar att rycka bort under fötterna på programmeraren under kodens exekvering...

tisdag 20 juli 2010

PP3 del III

(kopierat från siderespector)

Så här skall det bli (Jakthundarna):
Men så här långt har det kommit hittills:
Hackar vidare med min ersättare till PP3. Jag bet i det sura äpplet och gjorde en fristående utf8_file-struct med en sparning av inläst uchar-värde. Finns bara inläsningsfunktioner, samt några konverterare från 32b uchar till UTF-8, vilket används i utskrift med vanliga stdio.h-rutiner företrädesvis printf och company. Jag ogillar att göra kloner av hela clib, eftersom man moraliskt måste implementera allt som clib har. Men när jag gjort och filat på denna stdio.h-klon kallad usio.h och en string.h-klon kallad ucstr.h, så gick det ganska bra att göra samma med 32b uchars som med 8b chars.

Nu gjorde jag en assimpel SVG-dumparfunktion som bara läser en stjärnkatalog, närmre bestämt ett urval ur Hipparcos-katalogen som jag drog ut positionsdata magnitud och litet annat ur, bilden nere till höger. Jag lade också till en testprojektion av typen Lamberts konforma koniska projektion, som används för flygkartor med hög upplösning. Det är inte ens det riktiga programmet, utan en utvärderande programsnutt som skall användas för att tänka ut hur man ställer in en stjärnkarta. Det gråaktiga rastret (rutnätet) har inget med himmelskoordinater att göra utan är papperskoordinater – himmelskoordinater antyds med blå punkter. Andra brister är att dumparkartan egentligen presenterar himmelskoordinater rektangulärt (Cartesiskt) medan målkartan är ett s.k. konsnitt. Till skillnad från i PP3, som använder ekvidistant altazimutalprojektion (källa här), tänker jag konsekvent använda en konisk projektion som Will Tirion.

Nu får det här duga så länge, jag måste nu hitta på ett namn till mitt program som inte ger något stort antal träffar.

fredag 16 juli 2010

PP3 del II

(flyttat från siderespector)

Hackade en del på min ersättare till PP3, men hamnade i de klassiska språksvårigheterna: om man vill göra en parser för ett flexibelt kartspråk måste man ha en parser med lookahead. Nu hade jag skapat en simpel UTF-8-variant av de i C vanligt förekommande primitiva funktionerna fgetc och ungetc, vilket är ett kuggproblem: man läser in snuttar från en till sex st 8-bitars char men funktionerna producerar en 32-bitars int som representerar ett utökat tecken drygt täckande in fulla Unicode. En ungetc måste man göra om man läser in ett tecken som man inte tänker sig att använda i den nuvarande operationen: om man till exempel håller på att samla ihop tecken till ett ord bestående av bokstäver allena, låt oss säga "Ανδρομέδη", och vi samlar ihop tecken till och med "η" och därefter finner ".", då vill vi använda hela "Ανδρομέδη" till ordet - dock ej "." - men vi vill heller inte bara kasta bort ".", eftersom den används i texten som en annan senare tecken-grupp bestående av ett tecken. Således måste vi lägga tillbaka tecknet, men i min UTF-8-klon av ungetc kan jag inte utnyttja min fil att skriva tillbaka på eftersom man i C-filer endast kan skriva tillbaka ett enda 8-bitars-tecken, och sannerligen inte en till sex 8-bitars-tecken. Om jag nu förresten har ett 32-bitars så vill jag hellre spara undan denna, inte backa tillbaka ett större antal 8-bitars-tecken och i min första version av ungetc använde jag helt enkelt en variabel att spara undan på. Det gick alldeles utmärkt ett tag tills jag med hjälp av dessa ville bygga en ordläsarfunktion fgetw med vilken man kan läsa hela ord åt gången och på samma sätt som ovan göra en motsvarande tillbakaskrivningsfunktion ungetw! Då måste jag ge alldeles för många argument till dessa fgetw och ungetw, en för att spara undan ett 32-bitars-tecken, en för att spara undan ett helt ord. Det är sådant som gör att man relativt snabbt kör fast i quick-n-dirty-programmering. Jag fick göra en helt ny typ av fil i form av en struct där det finns både återsparningsplatser för ett 32-bitars-tecken och ett helt ord. Det ser ut sålunda:
typedef struct _token_file_S {
    /* specialized token file allowing token get and unget */
    FILE *tok_file;
    uchar uchar_lah;
    token *tok_lah;
} token_file;
men detta strider, i viss mån mot den allmänna Unix-principen KISS, Keep It Simple and Stupid. Dessutom är det en osund tanke att både ha sparningsplats för enstaka 32-bitars-tecken och hela ord i samma filtyp! Ett "rent och vackert" program skall i stället ha
typedef struct _utf8_file_S {
    /* specialized token file allowing token getuc and ungetuc */
    FILE *_file;
    uchar uchar_lah;
} utf8_file;
med sina "metoder" och
typedef struct _token_file_S {
    /* specialized token file allowing token getw and ungetw */
    utf8_file *tok_file;
    token *tok_lah;
} token_file;
med sina "metoder" - vilket dubblerar antalet funktioner och filstructar, men gör koden "återanvändbar" - ren och klar och tyvärr oöverskådlig.

onsdag 7 juli 2010

Övergav Google-Chrome

(kopierat från siderespector)

Den überfantastiska Google-Chrome de Luxe Professional med Billy Joe Bob extension är egentligen avsett som trojanspridare. Efter att ha surfat med Google-Chrome GC ett bra tag kom jag på att fördelarna inte uppväger nackdelarna. Fördelar:
  • En GC-laddad websida verkar ta mindre plats än en motsvarande Epiphany, anledningen tros vara att GC baseras på WebKit och Epiphany på gecko – samma layout engine som i Mozilla – och gecko är slösaktig med minne,
  • GC har en snabbare(?) och säkrare JavaScript-engine än Epiphany, Epiphany kan sätta igång och vrålköra och samtidigt dra en massa processorkraft, och det är en indikation på att man måste handdräpa kill -KILL eller något annat hårt, för att operativet (Linux alltså) inte skall börja sega,
  • GC är känt för att ha ett enkelt GUI, och det måste vara bra,
Men, men, men:
  • En av de värsta prestandatjuvarna – alltså en slags trojan – som brukar användas av stora websajter, t.ex. sverigesradio.se, för att analysera och omoraliskt spionera på användarens surfvanor kommer från Google Analytics ... Google-Chrome ... Google Analytics. Det går naturligtvis inte att stänga av "urchins" (trojaner) i Google-Chrome, och därmed kan man aldrig vara säker på en sajt som man surfar in på med Google-Chrome, det kan vara en sajt som plötsligtvis får operativsystemet att sega, samtidigt som det skickar över info om allt man surfat på till den sajt man surfar emot...
  • GC skryter om sin fina nya JavaScript engine med sin ultrasnabba stop-the-world garbage collector vid namn V8, notera "stop-the-world". Världen stoppar verkligen: plötsligt stannar GC och man kan sitta där och hoppa i en minut innan något händer och hela OS:et segar. Då föredrar jag långsammare osäkrare garbage collectors som inte kör med stop-the-world. Den idiot som kom på att skryta om en "stop-the-world garbage collector" borde gå till psykdoktorn och be om medicin – en stark sort!

PP3

(kopierat från siderespector)

Ibland måste man programmera. Nu är det en av veckans programmeringsräder: jag håller på med ett projekt att försöka ersätta användningen av PP3 på Wikipedia med ett annat program – som inte finns än. PP3 är ett stiligt program med vilken man har genererat stjärnkartor för Wikipedia, exempelvis Cygnus se till höger! Dock har programmet ett större antal brister: det genererar inte det filformat man vill ha, vilket är PDF, SVG, PNG eller JPG. Jovisst den genererar PDF, och den kan även generera PS, vilket alltid är något – men SVG är det primära som man vill ha på Wikipedia, eftersom SVG-filerna är lätta att ändra, medan PDF och PS är ändringsbart bara av experter, alltså av mig – idén är förresten dålig, då PDF genereras av något annat format – om jag patchar PDF, och sedan någon går in och ändrar originalformatet till filen, så måste jag göra om min patch en gång till – manuellt!

Andra brister med PP3 är:
  • Den kräver LaTeX, då det är ett C++-program som genererar LaTeX, kod för stjärnbilderna! Denna LaTeX genererar sedan DVI som genererar PostScript, som genererar PDF om Ghostscript finns installerat. "Inga problem" på Linux, om man kan stå ut med att installera så mycket irrelevantia för att få ett stjärnprogram, men på Windows är det omåttligt svårt.
  • Den är skriven i CWEB vilket kräver en version av CWEB för att programmet skall kompilera till C++!! CWEB är ett verktyg för Literate Programming enligt vilken man skall skriva ett dokument varmed man genererar programkod och programkodsdokumentation samtidigt. Idén är bara så förbannat galen eftersom CWEB-koden inte blir sekvensiell, och eftersom man i stället för att göra en snygg programkodsstruktur gör en slags löst odisciplinerat dokument med text i stället för kod och kommentarer, och det leder till allsköns programmeringsskändligheter och kodkopieringar. Själv läser jag hellre kommentarlös rak programkod i stället för detaljerad koddokumentation: en C-programmerare förväntas förstå C, såväl som att tala det.
  • PP3 serverar allt på ett silverfat som det inte är speciellt lätt att rota i: man kan konfigurera utseendet på sina kartor jättefint, med färger och allting, men man har ingen öppning att direkt generera någonting annat än en obskyr LaTeX-kod som lika få behärskar som de som behärskar PostScript: man skulle vilja få den att generera en SVG som Inkscape direkt kan redigera, men det gör man alltså inte med någon lätthet i en fruktansvärt förvirrad CWEB-kod.
Jag har efter litet extraordinärt fulhackande gjort en funktion som ovillkorligt läser in UTF-8 i C: ett stort problem med C är bundenheten vid ASCII, och standard clib tillhandahåller en omgivningsberoende locale-baserad UTF-8-inläsning, vilket är ett djävla otyg och står i total strid med all sund programmeringspraxis. Om man hypotetiskt inte har sv_SE.UTF-8 installerat på sitt operativ så kan man inte använda programmet om det kompilerats i sv_SE.UTF-8. Att det sedan endast är UTF-8 per se man är ute efter spelar ingen cykel. De som gjorde Unicode-stödet i C måste varit några djäkla marknadsnissar som aldrig programmerat.

Den litet naiva frågan inställer sig: måste man verkligen ha UTF-8? Njaä, det måste man väl egentligen inte, men det är en fördel: stjärnor heter sådant som β Geminorum (Pollux) och α² Capricorni (Secunda Giedi). Dessutom blir det numera krångel med texteditorerna om man skall försöka spara filer på "8-bitars ASCII" som exempelvis ISO 8859-7 som innehåller grekiska. Om man lyckades med att använda ISO 8859-7, så skulle man ändå inte kunna göra sina stjärnkartor med ryska eller arabiska stjärnbildsnamn, vilket är en högst tänkbar kombination.

onsdag 23 juni 2010

Web 4.44++

(kopierat från siderespector)

Det talas så vackert om Web 2.0, vad skall då inte Web 4.44++ med Billy Joe Bob extension kunna?
  • läsa tankar, felrätta dessa, skriva dessa rättade tankar direkt in i huvudet på feltänkaren, utan att feltänkaren märker ett enda dryft,
  • upprätta ett WLAN med kontakt till Gud, där Gud är mega-router samt server i ett klient-server-system,
  • felrätta universum på så sätt att felaktiga händelser ger ett stoppvillkor, varefter universum backtrackas till senaste korrekta tillstånd, och man börjar om med en ny alternativ händelseutveckling som är korrekt,
  • skapa nya djurarter från scratch,
  • telekinetiskt tillverka robotar som gör uppror mot de onda människorna,
  • programmera programmeraren,
  • omedelbart förstå och kommunicera med gröna varelser från yttre rymden, utan någon som helst analys,
  • rita om fula människor så att de blir vackra,

fredag 28 maj 2010

27 maj: Check av blogspot.com: CLEAN!

(kopierat från siderespector)

På grund av erfarenheter från extremt sega och halvruttna websajter, speciellt sverigesradio.se, www.adherents.com och www.theoi.com, så kollade jag även upp om denna sajt kan vara nedsegad. Det är den inte, blogspot.com är ren, klar och frisk. Därför kan man köra mot blogspot med vilken webbrowser som helst, inklusive google-chrome.

Bakgrunden är ungefär den följande: i alla moderna webbrowsers finns en JavaScript, vilken av mina studier att döma är en inbäddad Scheme med en speciell syntax. Det är alltså en programspråksmotor som tar emot program över Internet, och dessa program laddas med när man laddar en webbsida, varefter programspråksmotor börjar köra programmet. Nu är JavaScript så definierat att den behöver reservera mer och mer minne från datorn där användaren sitter och surfar. Den skall också städa upp sådant minne som den inte använder, men detta gör de flesta JavaScriptmotorer mycket dåligt, så vartefter tiden går, så går det åt mer och mer minne, och datorn blir långsammare och långsammare. En annan sak som plötsligt kan hända är att JavaScriptmotorn får för sig att stanna webbrowsern för att städa så att ingenting händer under kanske några minuter.

Nu har olika websajter olika mycket JavaScriptkod, många har ingenting alls, men ju större flashigare och finare en sajt är desto mer djävlig är dess JavaScriptkod som regel. Som sagt: blogspot.com är en snäll sajt: den har litet grand JavaScript för att lyfta litet fönster och möjliggöra kommentering.

torsdag 27 maj 2010

Splittar min blogg

Min blogg Rursus' Blogg delas nu i två: jag separerar mitt programmerande från mitt filosofiskt/religiösa spekulerande och resonerande. De nya bloggarna blir Siderespector (samma adress som förut) och Haccationes Rursi. Ordet "Haccationes" är så fint så fint som grislatin ungefär: intet öga är torrt.

Detta inlägg skapades 27 juli 2010, men omdaterades till 26 maj 2010, för att överensstämma med skapelsen av Siderespector (Speculum Rursi) för att tidssynka alla inlägg som kopierades därifrån och hit.