Här berättas om mina vedermödor under webutvecklingsarbetet. För närvarande är det
Kamphavet, Rö socken och Norrtälje Släktforskarförening jag arbetar med. De är skrivna
i ASP.NET och C#. Många av sidorna använder sig av Accessdatabaser för att lagra
sina data, därigenom behöver jag bara skriva en enda sida i stället för tusentals
när det enda som skiljer dem är de data som presenteras.
Jag är totalt självlärd som webutvecklare, har köpt en enda bok om ämnet (som är
helt inaktuell nu i alla fall), men har lärt mig massor på bara några år genom att
leta information på Internet. Det finns två webplatser som är överlägset bäst enligt
mitt förmenande: w3schools.com och aspsidan.se.
Med tiden kanske det blir mer allmän information här, men här kommer själva bloggen.
2017-12-08
|
Det var en tid sedan jag skrev något här, men de senaste två dagarna har jag kämpat
med ett eländes problem med Rösajten som jag lyckades lösa fortare än Loopias "SuperSupport".
Jag hade gjort några triviala uppdateringar till några sidor på Rösajten, laddat
upp dem och startat om ASP.NET. När jag sedan skulle gå in på hemsidan för att se
att allt såg bra ut möttes jag av ett gigantiskt, fullkomligt obegripligt felmeddelande:
Jag begrep förstås inte ett dyft av det där, mailade Loopias support och fick ett
artigt svar att de skulle titta på saken. Jag fick återställa Rösajten med hjälp
av Loopias backup (förträfflig funktion) medan jag försökte komma på vad som var
fel. Jag återställde alla ändrade filer från Loopias backup, laddade upp dem, och
då fungerade det naturligtvis igen. Sedan bytte jag tillbaka de ändrade filerna
en efter en och startade om tills det åter kraschade - då visste jag vilken fil
det var fel på. Till sist var de bara en länk i en av filerna som inte fungerade
och då var det lätt att se att jag stavat fel på filnamnet i länken. Tänk om servern
sagt "Hittar inte filen xxxx.pdf" i stället!
|
2015-06-19
|
En tid fungerade inte inloggningen för medlemmar på Rösajten. Medan Etanet var vår
ISP var port 1433 blockerad, så det gick inte att accessa databasen med SQL Server
Management Studio. När Telia tog över som ISP 27 maj började det dock fungera och
jag kunde se att loginsystemet spärrat användare som loggade in som medlemmar för
att någon försökt med fel lösenord för många gånger. Det där är ett ofrånkomligt
problem när alla medlemmar har samma inloggningsuppgifter - om någon klantar sig
för många gånger spärras alla medlemmar. Men nu vet jag i alla fall hur jag skall
göra om det händer igen: ta bort användaren i databasen (på 2 ställen!) och lägg
dit den igen!
|
2015-05-08
|
I dag ringde Etanets "second line support" (de som vet litet mer än dem man kan
ringa till) och talade om att Etanet blockerat port 1433, den som man kommunicerar
med MS SQL Server genom. Varför visste de inte och de kunde inte heller göra någonting
åt saken, men i slutet av maj skall Telia ta över Etanets nätverk, så man kan ju
alltid hoppas att problemet försvinner då. Tänk så mycket jobb vi hade sparat, både
jag och Loopia, om jag fått det beskedet första gången jag ringde Etanet!
|
2015-05-06
|
Efter ett par frustrerande månader har jag fått stil på inloggningssystemet till
Rösajten och Kamphavet. På båda sajterna finns kataloger som inte alla skall kunna
komma åt, t ex medlemssidorna på Rösajten, och hittills har webbhotellet Loopia
tilhandahållit en bekväm lösning där man kunde sätta lösenordsskydd på dem. Men
nu skall de byta server, och då tar de bort det gamla systemet. Det gällde alltså
att implementera ett nytt inloggningssystem som inte är beroende av Loopias gamla
system.
I ASP.NET finns en mängd färdiga kontroller för att hantera inloggning, men det
tog sin rundliga tid att med massor av hjälp från Loopia support komma på hur de
fungerade. I princip behöver man bara skapa en login-sida med dessa kontroller och
ASP.NET ser till att man hamnar där om man klickar på en länk till en skyddad katalog.
Men ASP.NET utgår från att man använder en MS SQL-databas för att lagra användaruppgifterna,
och MS SQL har jag alltid skyggat från för att hela konceptet är svårbegripligt
- inte alls så visuellt och lätthanterat som MS Access. MS SQL Server huserar på
servern och kan inte installeras på ens egen dator utan att det kostar skjortan.
För en något rimligare kostnad (ca 500 kr/år) kan man få en egen databas upplagd
på servern hos Loopia. I teorin skall man med hjälp av en (gratis) applikation som
heter MS SQL Management Studio kunna komma i kontakt med sin databas på servern
och hantera den, men det enda besked man får från Management Studio är att databasen
inte finns. Efter tjogvis med mail till supporten gav de upp - av något skäl kan
min dator inte kontakta databasen. (Se förklaringen i inlägget ovan!)
Efter mycket trasslande fick jag ändå inloggningen att fungera lokalt - med en (ganska
tafflig) applikation som ingår i Visual Web Designer Express (ASP.NET Configuration)
kan man lägga upp användare och åtkomstregler för dem. Då skapas en MS SQL Express-databas
i /App_Data på den egna datorn med användare och lösenord, och sedan går det att
köra lokalt. Men... SQL Server lagrar inte data i det filformatet, och det går inte
att bara ladda upp databasfilen som man gör med MS Access.
Man måste alltså att lagra sina användardata både lokalt i SQL Server Express (för
att kunna provköra innan man laddar upp) och på servern i SQL Server. På den egna
datorn hittar Login-funktionerna den lokala databasen utan problem, men det går
som sagt inte att tala om för dem att hämta dem från servern - för den "finns ju
inte". Åtkomstreglerna skrivs in i en särskild liten web.config-fil i var och en
av de kataloger som skall skyddas, och de är bara att ladda upp. Däremot vägrade
mina login-funktioner envist att erkänna att det fanns någon MS SQL-databas på servern.
Till sist levererade supporten en "connection string" som skulle skrivas in i sajtens
huvud-web.config - men absolut inte i den lokala huvud-web.config, då slutade det
att fungera, för connection string säger ju att SQL Server-databasen ligger hos
Loopia, och den finns ju inte enligt min dator!
Det blir alltså två huvud-web.config för varje sajt att hålla ordning på och inte
blanda ihop. Eftersom MS SQL Management Studio inte kan kontakta server-databasen
kunde jag inte lägga upp några användare, utan supporten fick skapa en administratörsanvändare
åt mig. Så fick jag skriva en särskild administratörssida för att skapa användare
och lösenord (kontroller för det finns i ASP.NET - egentligen a piece of cake att
implementera, även om somliga funktioner inte går att anpassa till hur jag vill
att de skall se ut - vad jag kommit på hittills, vill säga.) Så fick jag komplettera
alla de särskilda web.config-filerna så att folk som legalt loggat in på ett konto
i den ena sajten inte skulle få se skyddade kataloger på den andra sajten - alla
användare ligger i samma MS SQL Server-databas. Det gäller att ha tungan rätt i
mun, men notationen är ganska rättfram: <deny users="användarnamn" /> respektive
<allow users="annat användarnamn" /> .
ASP.NET innehåller som sagt en mängd kontroller för inloggningssystem. Den viktigaste
är förstås <asp:login> som presenterar textrutor där man kan skriva in användarnamn
och lösenord och klicka på en logga in-knapp. Sedan kollar kontrolen att namn och
lösenord stämmer med databasen, och om de gör det så blir användaren inloggad tills
han loggar ut eller lämnar sajten. Om användaren har <allow users="användarnamnet"
/> i web.config-filen i den katalog han vill besöka så får han göra det, annars
åker han tillbaka till login-sidan.
Andra användbara kontroller är t ex <asp:LoginView>, som visar om man är inloggad
eller ej, <asp:LoginName>, som visar vilket användarnamn man är inloggad med
och <asp:LoginStatus>, som visar en länk för att logga in eller ut, beroende
på vilket tillstånd som är aktuellt. För administratörssidan finns <asp:CreateUserWizard>,
som låter en skapa nya användare och lösenord, och <asp:ChangePassword>, som
låter en ändra sitt eget lösenord. Det där sista är ett ännu olöst problem
- för på mina sajter är det bara adminstratören som skall kunna ändra lösenord,
t ex när ett nytt verksamhetsår börjar. Det problemet får jag ta tag i när det börjar
lacka mot jul.
Har Du samma eller liknande problem med Din sajt så hör gärna av Dig med ett mail,
jag hjälper gärna till med litet mer detaljerade råd.
|
2014-09-02
|
Några dagar har jag besvärats av ett märkligt fel på Rösajten: om man bara skrev
in grund-URL:en (dvs. http://www.rosocken.se/) så fick man upp en gammal startsida.
Om man däremot skrev ut hela URL:en till startsidan (http://www.rosocken.se/Default.aspx)
så blev det rätt. Tyvärr tittade jag inte efter vad den sidan jag fick upp hette,
då hade jag nog begripit fortare. Det visade sig nämligen att förutom Default.aspx
fanns en sida som hette index.html i rotkatalogen - hur i allsin dar jag lyckats
skapa och ladda upp den har jag ingen aning om, den fanns inte på min lokala sajtkopia
där jag lagrar alla nya filer innan jag laddar upp dem - ett mysterium. Att jag
fick upp index.html i stället för Default.aspx beror på att servern har en strikt
ordning för att söka igenom en grund-URL efter en startsida, och index.vadsomhelst
kommer före default.vadsomhelst. Nu är problemet emellertid löst, jag behövde bara
radera index.html på servern.
|
2013-09-15
|
Den 21/8 fick jag OK från NSFF:s styrelse att flytta deras webbplats till en server
hos Loopia. Det var väl ingen som betvivlade mina argument, men det skulle ju ändå
fattas ett formellt beslut. För att göra flytten krävdes ett antal åtgärder:
- webbplatsen skrivas om från HTML och Perl till ASP.NET och C#
- ett konto öppnas hos Loopia
- webbplatsen laddas upp till det nya webbhotellet och provköras
- domännamnet överföras till Loopia
- namnservrarna ändras så att de pekade på Loopia-webbplatsen i stället för Crystone-webbplatsen
Mycket var ju gjort genom att registren skrivits om till ASP.NET och redan låg på
vår egen webbplats, men de måste kompletteras med en Master Page med allt gemensamt
innehåll som menyer o dyl. Det gjorde jag genom att skapa nya, tomma sidor länkade
till mastern och sedan klippa in koden från respektive sida - mycket säkrare än
att peta i varje sidas kod och försöka få allt rätt.
Så behövde jag skriva om alla html-sidor på Crystone-servern till ASP.NET - det
var inte så många, och var mest att klippa och klistra. Det jobbet var i stort sett
klart redan när beslutet togs.
Att öppna ett konto hos Loopia och ladda upp filerna var förstås inget problem,
men när jag skulle börja provköra skar det sig direkt! När man försökte söka i någon
av databaserna fick man en av de värsta felsidorna med oceaner av obegriplig information.
Efter mycket frustration fick jag reda på att Loopia lagt sajten på en server som
saknade stöd för MS Access! När de väl begripit att jag MÅSTE ha Access tog det
bara en halvtimme innan saken var ordnad. Efter ett par dagars provkörning kände
jag mig mogen att dra igång den nya sajten och begärde en transferkod från Crystone.
Den kom snabbt via mail, och på Loopias kontrollpanel väljer man "lägga till domännamn"
och anger transferkoden. Sen tog det ett par dagar innan den svenska domännamnsadministrationen
"punktSE" noterat att Loopia tagit över som "registrar" som det heter.
Nu återstod bara att peka om namnservrarna så att de visste att norrtelje-sff.se
låg hos Loopia. Det gör man också på Loopias kontrollpanel under rubriken "Byt namnservrar":
man bara skriver i ns1.loopia.se respektive ns2.loopia.se i stället för motsvarande
på crystone.net. Men... efter en stund står det crystone.net där igen - uppgiften
hämtas från en rotserver, och man har ingen aning om ens begäran fungerat eller
om någonting pågår. I och för sig varnas för att det tar några timmar, men jag prövade
gång på gång de närmaste dagarna och hamnade alltid på Crystone-sajten när jag skrev
in www.norrtelje-sff.se i Internet Explorer. Efter en vecka frågade jag om något
hänt, och då erbjöd man sig att göra bytet åt mig. Visst sade jag, och efter ett
tag fungerade det. Undras allt om det där med att byta själv verkligen går!
Nu borde allt ha varit frid och fröjd, men när jag testade igen så kom den förfärliga
felsidan tillbaka när jag testade de databasdrivna sidorna! Nära panik, nu hade
jag ju annonserat till styrelsen att allt var klart, och de viktigaste sidorna på
hela sajten fungerar inte! Efter en stund kom jag ihåg att det sett likadant ut
när de lagt sajten på en server utan stöd för MS Access och ringde deras support
- jo, visst den ligger på en server utan stöd för Access. Jamen VAFF...!!! som Berglins
figurer utbrister. Tebax, tebax, sade jag, och det skulle de naturligtvis göra -
fast hade jag inte själv begärt flytt till den här servern den 6 september? Otänkbart,
sade jag, jag MÅSTE ju ha Access! Men i deras detaljerade loggar hittade de en notering
att jag bytt "plattform" från ASP till ASP.NET; jo, jag hade ju upptäckt att webbsajten
av någon anledning hade alternativet ASP inställt, och det kan ju inte vara rätt
när hela sajten är skriven i ASP.NET? Men - att ett alternativ hette ASP.NET och
ett ASP hade inget med saken att göra - alternativet ASP.NET betydde modernare server
utan stöd för Access, och alternativet ASP betydde ASP och ASP.NET och
Access, fast en äldre server. De borde nog fila litet på förklaringarna på den sidan,
Loopia. Men på det hela taget var deras support beundransvärd: snabb, pedagogisk
och effektiv.
Så nu snurrar det. Och en rättelse i personregistren tar mig 10 minuter i stället
för att vara i princip omöjlig!
|
2013-07-19
|
Till sist blev jag ändå klar med alla släktforskarföreningens fem register. Konverteringen
innehöll alla de problem jag mötte med Döda i Roslagen, och en hel del nya. Värst
var det stora Vätöregistret (19500 poster). Ett exempel: ålder och födelsedatum
stod i samma kolumn - åldern dessutom i ett antal olika format - t ex 26, 26å, 26
år. Epitet, namn och platser var inskrivna utan försök till normalisering, så det
tog en del tid att ensa upp. Vätö är dessutom extra krångligt, för församlingen
delades 1914 i Vätö och Björkö-Arholma - vad skulle man skriva i kolumnen "hemförsamling"
för platserna efter 1914? Nå, till sist blev det klart - en applåd till den arbetgrupp
som jobbade med Väddö fram till 2009, men till sist tvingades lägga ned projektet
- normaliserat, logisk struktur, konsekvent formatering - det tog mig bara en eftermiddag
att göra databas av de filerna. Nu har jag lagt ett förslag till styrelsen att lämna
Unix-världens problem bakom oss och skriva om hela sajten till ASP.NET - jag lär
få anledning att berätta om det äventyret!
|
2013-05-21
|
Efter två intensiva veckor med tidvis 12 timmar vid datorn om dagen kunde jag i
dag ladda upp en ny version av NSFF:s Register över döda i Roslagen 1900-1949.
Registret var ett av de fem på NSFF:s webbplats som bygger på perl-skript som söker
i en kommaseparerad textfil; omöjliga att flytta till en Windows-server, omöjliga
att underhålla och dessutom klarar de inte svenska bokstäver i söksträngarna. Jag
har länge irriterat mig på detta och försökt att lappa över problemet med de svenska
bokstäverna, men när det trots detta inte fungerade insåg jag att det var dags att
göra något radikalt.
Att konvertera en kommaseparerad textfil till en relationsdatabas är dock rätt jobbigt;
man kan i och för sig lätt importera textfilen till Excel, men det är då man ser
inkonsekvenserna och förvirringen i textfilen, som faktiskt bara är en avskrift
av dödböckerna i församlingarna inom Norrtälje kommun. I bland har prästen satt
kvinnors flicknamn tillsammans med efternamnet, i bland bland anmärkningarna. Folk
som dog i en församling fast de var kyrkskrivna i en annan står alltsomoftast på
två ställen i det gamla registret. Det var dessutom bokstavstroget avskrivet, så
där fanns otaliga varianter av stavning.
Konverteringsarbetet handlar framför allt om att separera de data som skall vara
sökbara från den ursprungliga texten. I många fall fanns kommatecken mellan efternamn
och förnamn, och kvinnors flicknamn föregicks av "f.", men långt från konsekvent.
Med hjälp av HITTA- och EXTEXT-funktionerna i Excel särade jag på efternamn, förnamn
och tidigare namn, och behövde bara korrigera några tusen fält - hela databasen
innehåller litet över 24000 poster.
Att parsa anmärkningsfältet, där epitet, namn, hemförsamling och allt möjligt stod,
var extra jobbigt. Epitet skulle till epitetfältet, hemförsamling till hemförsamlingsfältet,
och plats till platsfältet. Det blev många HITTA och EXTEXT, med olika målsträngar
för HITTA - i bland var någon "i" en plats, ibland "från", i bland föregicks platsen
bara av ett komma. Global substitutes som från "i" till "," är dessutom jätteriskabelt
- man vet aldrig vad som händer och måste läsa igenom varenda post för att kolla
att det blev som man tänkt sig - och det blev det i många fall inte!
Det värsta problemet - som var helt onödigt om jag fått ett tips från Jan Faith-Ell,
som realiserade det gamla registret, litet tidigare. Det beror på att Excel anser
att världen uppstod den 1 januari år 1900. Alla tidigare datum anser Excel vara
en text, och alla data från dag 1 (1900-01-01) på ISO-datumformat konverterar Excel
till ett datumnummer, fast det visas som ett ISO-datum. Och det är skvatt omöjligt
att få Excel att betrakta sådana data som en text. Hur jag än gjorde när jag importerade
Excel-filen till Access så blev alla datum efter 1900-01-01 i stället dagnummer.
Jag lyckades till sist piska Access till lydnad genom en mängd omvägar och mödosamma
konverteringar, men alldeles i onödan. Jans tips var helt enkelt att använda samma
datumformat som i Sveriges Dödbok, där man slopar bindestrecken mellan år och månad
och mellan månad och dag. Hokus pokus! Utan bindestrecken har Excel inga problem
att hantera datumet som text!
En sista erfarenhet också: Det finns ju något som heter "Autofilter" i Excel. Högst
praktiskt, man kan direkt sortera på valfri kolumn, välja vilka rader som skall
presenteras etc. Fällan är, att om man lagt till en extra kolumn på slutet efter
att man aktiverat autofilter så följer den inte med när man sorterar på en av de
autofiltrerade kolumnerna! På det viset förlorade jag ungefär 500 kyrkboksreferenser
till de rader där jag varit tvungen att kolla i källan vad det egentligen stod.
Lägg aldrig till en kolumn på slutet! Lägg till den före den sista autofiltrerade
kolumnen och flytta den sedan!
Nu har jag fyra register till att konvertera; tre är ganska måttligt stora, men
det fjärde är ett monster, nästan dubbelt så stort som det här, som tog mig 95 timmar
att göra.
|
2012-08-01
|
Att ta hand om gamla webbläsares fel är inte lätt. Nyligen slutade den särskilda
.css-filen som skulle ta hand om felen i Internet Explorer 7 att fungera. Jag letade
länge och väl efter en förklaring till att allting blev förvrängt i IE7, men till
sist insåg jag att det inte är värt besväret att försöka skapa specialfunktioner
som kompenserar för alla fel i IE7. Så nu är det slut, Kamphavet fungerar i fortsättningen
bara i moderna webbläsare - IE 8 eller 9, Firefox, Chrome, Opera eller Safari.
|
2012-03-29
|
När Sven-Olov Gahnström efter mycket arbete skapat en Excelfil med länkar till alla
historiska lantmäteriakter på Lantmäteriets webbplats som rör Norrtälje kommun laddade
vi upp den till föreningens webbplats. Tyvärr visade det sig att den var så stor
att det tog en evighet att ladda ned den. Jag beslöt då att testa min idé att lägga
den som databas på Kamphavets Windows-server och länka dit från släktforskarföreningens
webbplats.
Det visade sig vara mer jobb än jag hade trott, men nu är den äntligen uppe och
fungerar. För det första behövde jag skapa en databas med alla uppgifterna från
Excel-filen; den var indelad i 26 flikar (en för varje socken) och jag behövde ju
en enda tabell. Jag fick alltså kopiera in alla raderna (över 12000 st) i ett Excelark
och lägga till en kolumn med sockennamnet. Jag behövde också en ny nyckelkolumn
med unika radnummer, för från början fanns en nummerserie för varje socken. Detta
var ju dock en smal sak med Excels autofyll.
Så behövde jag lägga själva länkarna ensamma i en kolumn, och det var svårare, för
i Excel ligger de gömda i varje cell som har en länk och kan bara kopieras en och
en. Jag hittade ingen funktion i Excel som kunde extrahera själva länken och spara
den i en annan kolumn, men efter mycket grubbel kom jag på att jag kunde exportera
Excelarket till html-format, läsa in den i Excel igen som text och sedan var det
"bara" att rensa bort alla rader som inte behövdes. Det blev omkring 80000 rader
html-kod, varav jag bara behövde bara 24000. Det tog en stund, om man säger så,
men genom att sortera dem kunde jag radera jättelika sjok med rader som innehöll
allt möjligt html-skräp som jag inte var intresserad av. Radnumren hamnade t ex
på en egen rad och måste kopieras snett nedåt för att hamna på samma rad som länken.
Men just sådant är Excel suveränt till.
Sedan kunde jag klippa in kolumnerna med de frilagda länkarna och deras nummer i
det ursprungliga bladet, och kontrollera att rätt rad fått rätt länk. Jag kunde
enkelt kolla detta genom att skriva en funktion "om ursprungligt radnummer är skilt
från länkens radnummer skriv "FEL" annars ingenting" till varje rad. Trivialt i
Excel.
Sedan hade jag tänkt att det skulle bli "a walk in the park" att importera den nya
Excelfilen till MS Access, skriva en urvalsfråga och svänga ihop ett par aspx-sidor
för att söka och presentera resultatet. Det första jag upptäckte var att Loopia-servern
inte kan hantera Access 2010-databaser och fick konvertera den till Access 2003.
Så behövde jag en dropplist med de socknar som finns och en annan som visar de platser
som finns i respektive socken. Där visade det sig att Lantmäteriets hemsida, där
Sven-Olov hämtat datat, inte är särkilt väl normaliserad - på en del ställen stod
det inte platsnamn utan långa haranger om "uppmätning av tomtgränsen mellan herrarna
X och Y...". Jag fick syssla en hel del med att ändra platsnamnen till mer konsekventa
och kortfattade texter.
Till sist såg det ändå skapligt ut, och jag kunde göra en ny html-sida på släktforskarföreningens
webbplats där jag lade in en iframe som länkade till aspx-sidorna på Kamphavet.
Och det fungerar!
En liten sak fattas bara, jag skulle vilja ha med alternativet "Alla platser" när
man valt en socken. Det bör gå hyggligt lätt, men jag åker nog på att skriva litet
C#-kod som byter ut söksträngen till databasen när man väljer "platsen" Alla.
Vill Du titta på hur det blev så klicka
här, välj "Forskarhjälp", leta upp "Register över skannade lantmäterihandlingar
för Norrtälje kommun" och klicka på knappen bredvid. Eftersom jag inte kan använda
Master pages på Unix-servern utan måste ligga kvar i uråldriga "frames" kan jag
inte ge en länk direkt till registret, för då tappar man headern, menyn och footern.
Ett gott exempel på varför master pages är en bättre lösning än frames!
|
2012-02-06
|
Efter ett antal månaders jobb med släktforskarföreningens sajt kunde jag ladda upp
den med nya designen den 18/1. Sidornas utseende är ensat och förenklat, fast de
perl-drivna registren är kvar tills vidare - när jag får tid skall jag börja konvertera
dem till databaser. Tanken är att lägga dem på Kamphavets Windows-server och länka
dit från de övriga sidorna. Vi får se.
|
2011-10-17
|
Sommaren gick åt till att ge rosocken.se en rejäl ansiktslyftning i samband med
att vi bildade Rö hembygdsförening, men nu har jag tagit tag i Norrtälje släktforskarförenings
hemsida igen.
Som jag tidigare berättat är den skriven i någon tidig version av html och full
av JavaScript och perl-kod. Not my cup of tea, alltså.
Men något måste göras, strukturen är obeskrivligt snårig (den har helt enkelt kommit
till efter hand - en lång rad av webmasters har lagt in nytt innehåll utan att fundera
över struktur) och det är så många formella fel i koden att man inte ser de allvarliga
felen bland de hundratals oviktiga. Färgsättningen är förfärlig, illgrönt och knallila
och jag vet inte vad. Hundratals font- och center-taggar som säger samma sak som
de som redan gäller. Fritt svävande cell-taggar (td) i tabellerna - ett under att
sidorna ser så pass skapliga ut som de gör.
Det finns också flera register som flitiga mäniskor skrivit av från kyrkböckerna.
De är lagrade som semikolonavgränsade textfiler, sökningen och presentationen görs
med perl-kod. Hela sajten ligger naturligtvis på en unix-server, så jag kan inte
använda ASP.NET med dess bekväma databaskopplingar.
Först tänkte jag skriva om hela sajten till ASP.NET på en subdomän till kamphavet.se,
byta servermiljö på släktforskarsajten och sedan skyffla över en fix och färdig
sajt till Crystone, där den nuvarande ligger. Det kräver dock väldigt mycket arbete
just att göra om alla registren till riktiga databaser och under tiden måste ju
släktforskarsajten hållas uppdaterad. Jag släppte den idén.
Nu satsar jag i stället på att skapa en parallellsajt på Crystone-servern med en
vettig struktur, där jag undan för undan kopierar över sidorna när jag har städat
upp dem. När den fungerar kan jag visa den för styrelsen och diskutera menystruktur,
layout, färgsättning mm. Naturligtvis lägger jag så mycket jag kan i en stilmall,
så att det blir enkelt att ändra i efterhand.
Ett av problemen är att sökvägarna till registren ligger som hårdkodade serveradresser
i perl-koden; ändrar jag dem så måste jag ändra dem igen när jag sjösätter den nya
sajten - strul är oundvikligt! Därför får de många mapparna med registrens textfiler
ligga kvar där de ligger, direkt under roten, tills jag gjort om registren helt
och hållet. Kanske kan jag lägga dem på kamphavet tillfälligt och länka dit tills
Crystone-servern bytt miljö? Iframes?
Utan ASP.NET får jag hålla mig till frames och vanlig html - det leder till en del
dumheter, som att folk kan googla upp enstaka sidor direkt och missa det övriga
innehållet, så jag måste lägga en länk till startsidan på varenda sida (och ta bort
dem igen när det hela är klart).
Ett annat problem är bildarkiven, som är gjorda automatiskt med en äldre version
av Photoshop. I den version jag har finns bara brokiga och tramsigt animerade mallar
med amerikansk dålig smak, som jag inte kan förmå mig att använda. Å andra sidan
presenteras bilderna nu helt utan kommentarer - filnamnen är den enda ledning man
får för att gissa vad bilderna föreställer - så det får nog skrivas ett antal "reportage"
med bilder från respektive begivenhet i stället. Rätt mycket research att göra!
Du som läser detta och intressserar Dig är välkommen att titta på den nya sajten
och komma med råd och synpunkter. Fast det tar nog ett par dagar innan jag laddar
upp de första sidorna.
|
2011-05-16
|
Jag har givit mig på den gamla utmaningen att skifta överlägg på en gemensam kartbakgrund.
Skälet är förstås att Lantmäteriet tar så hutlöst betalt om man vill använda deras
kartor på nätet.
Principen är ju enkel - man lägger en delvis genomskinlig grafik i en div ovanpå
div:en med kartan. Det är ju rätt lätt, grafik-div:en behöver bara ges position:relative
och top:minus kartans höjd i pixels. Problemet är i stället att skapa de genomskinliga
delarna av grafiken.
Jag känner bara till två grafikformat som kan hantera genomskinlighet: GIF och PNG.
Med GIF kan man hantera figurer med total genomskinlighet, men inga finesser. I
PNG (32-bitarsversionen) sägs att man kan ge varenda pixel ett genomskinlighetsvärde
... hmmm! Vad jag ville göra den här gången var att måla de delar av kartan som
låg under havsytan vid en viss tidpunkt (men gärna halvgenomskinligt, så att man
känner igen sig i kartan och delar av platsnamn mm inte blir helt dolda). De delar
av kartan som låg över vattenytan även på den tiden skulle förstås visas utan någon
övermålning. Om man kunde måla vissa delar av grafiken i "helt genomskinlig färg"
och det övriga i "delvis genomskinlig färg" skulle det rimligtvis bli så
snyggt!
Jag använder PAINT.NET som grafisk editor, den kan mängder av konster som jag bara
förstår hälften av. Menyerna antyder att det bara är att välja en färg och tala
om vilken grad av genomskinlighet den skall ha, men av någon anledning händer ingenting
när jag "målar" med genomskinlig färg. Det är något jag inte begriper här.
Efter många dagars trixande med PowerPoint (som har den bästa funktionen för att
rita kurvor och polygoner - jag behövde det för att lägga in strandlinjerna i kartan)
kunde jag exportera PowerPoint-bilderna till PNG-filer, men när jag sedan skulle
måla dem genomskinliga i PAINT.NET funkade det inte, hur jag än försökte.
Till sist fick jag kasta in handduken, men hittade i stället en funktion för att
sätta genomskinlighetsgraden för hela bilden. Resultatet blev "så där" - det syns
att vissa områden blir mörkare (där grafiken är knallblå!), men även de delar av
kartan som skulle synas oförändrade är förstås litet mörkare. Det här hade gått
att hantera i GIF!
Jag tillämpade då "80-20-regeln" (80 % av resultatet kräver 20 % av arbetet, de
resterande 20 % av resultatet kräver 80 % av arbetet) och publicerade den nya sidan
i dag - någon dag kanske någon kan tipsa mig om hur man målar genomskinligt i PNG!
Kan Du det så hör av Dig! Vill Du titta på resultatet så gå till
Rösajten/Förhistoria/Strandlinjeförskjutning
|
2011-04-25
|
För en tid sedan blev jag "websideredaktör" för Norrtälje Släktforskarförening och
fick ansvaret för en webplats som innehåller mängder av gamla html-sidor och perl-skript.
Tar man upp en av dessa sidor i Visual Web Designer får man något hundratal felmeddelanden
per sida, så det finns en del att göra. De flesta felen är lyckligtvis
bara formella - t ex får man numera inte använda versaler i taggar, så med några
"global substitute" kan man fixa tusentals fel på en gång. Värre är det med perl-skripten;
jag har besvär nog med javaskript (som jag nalkas med stor nervositet, jag har nog
inte riktigt förstått vad det är egentligen). Efter några veckors eftertanke har
jag nog bestämt mig för att skriva om hela webplatsen till ASP.NET och C# - det
blir antagligen betydligt mindre jobb än att sätta sig in i perl och i stället för
att bli en dålig perl-programmerare kan jag bli en något bättre C#-programmerare.
|
2010-12-13
|
För ett tag sedan tog jag steget att köpa licenser för att använda moderna kartor
i vissa av sidorna på Rösajten.
På Lantmäteriets webplats kan man bland annat köpa digitala
kartor över ett område man väljer själv. Där finns bland annat rasterversioner av
de moderna kartserierna, dvs. Sverigekartan, Översiktskartan, Fjällkartan, Vägkartan,
Terrängkartan, Fastighetskartan och Tätortskartan. Jag valde terrängkartan i skala
1:50000 och 5 m upplösning och jpg-format; ett kartutsnitt på 13 x 13,4 km (2600
x 2680 pixels) kostade 433,50; inte oöverkomligt. Tar man upp kartan direkt på skärmen
ser man förstås bara en del av den, så innan jag kunde använda den på websidorna
fick jag beskära den och minska upplösningen till 1000 x 1300 pixels. Tyvärr kräver
även det att man skrollar, men hade jag minskat upplösningen ännu mer hade det inte
blivit mycket kvar av kartbilden. (Med ursprungliga 5 m per pixel är kartan fantastiskt
klar och tydlig!)
Det finns emellertid ett aber med att använda dessa fina kartor på websidor: Lantmäteriet
vill ha en licensavgift för varje websida som innehåller kartinformation. Försäljningen
sköts av Metria, som har en förvirrande sida med användningsvillkor som är mycket
förmånligare än de som verkligen gäller. Jag tyckte det var "too good to be true"
och frågade, vilket kanske var dumt, och mycket riktigt gäller Metrias villkor inte
för de här kartorna. Lantmäteriet vill ha 450 kronor för varje websida, och dessutom
500 kr i startavgift, så det kan inte bli särskilt många sidor med kartbakgrund.
Lantmäteriets historiska kartor (t ex Häradsekonomiska kartan, Ekonomiska kartan
och alla kartorna i Lantmäteriarkiven), är däremot gratis att använda enligt ett
mail jag fick för något år sedan när jag frågade vad det kostade.
Jag använder kartorna t ex för att visa var bortglömda platser låg - jag lägger
kartan som bakgrund i en PowerPoint-fil och ritar in symboler och texter ovanpå
kartan. Sedan sparar jag PowerPoint-bilden som en jpg-fil och lägger in den i min
websida. Jag föredrar det sättet framför att rita direkt i den ursprungliga jpg-filen,
på det här sättet kan jag flytta symboler och texter utan att göra om allt från
början.
Jag lägger också in en länkkarta i websidan, så att jag kan visa en text när man
håller cursorn över en symbol och länka till en annan websida med mer fyllig information
när man klickar på symbolen. I gamla Dreamweaver var detta väldigt bekvämt, man
lade in sina hotspots direkt i en WYSIWYG-bild av sidan, men i Visual Web Developer
är det inte lika lätt. I ASP NET finns en tagg som heter asp:ImageMap; man anger
vilken bild den skall överlagras på och sedan fyller man på med en undertagg för
varje hotspot, t ex asp:CircleHotSpot, där man får ange koordinater, radie, länkadress
och Alt-text.
När man skall ta ut koordinaterna för varje hotspot tar man upp jpg-bilden i en
editor som visar var cursorn är i pixels; jag använder PAINT.NET, som man kan ladda
ned gratis. Har man två skärmar blir det hyggligt bekvämt.
Som det nu blev är jag skapligt nöjd med resultatet; titta gärna på t ex sidan med
glömda platser på
Rösajten.
|
2010-11-16
|
Nu är "Nya Kamphavet" uppladdat till servern och provkört ett tag.
Ett par ändringar har jag fått göra: dels kom jag på att jag inte kunde byta namn
på startsidan; många kanske sitter med den gamla länken "www.kamphavet.se/index.html"
- som inte skulle fungera om jag bytte namn på startsidan till "Default.aspx."
Den ändringen medförde ett antal konsekvensändringar i menyerna och länkarna, men
inget stort.
Dessutom visar det sig att vissa andra webläsare inte tycker om QuickTime, plugin:en
som spelar upp näktergalskvittret på startsidan. Internet Exporer och Opera kör
den (fast under protest från Web Developer), Firefox vanställer den, och Google
Chrome vägrar tvärt. Kan inte hjälpas; det är ju inte det viktigaste innehållet
på Kamphavet.
Nu skall jag låta det rulla ett tag och se om jag snubblar över några fler konstigheter.
Vad värre är, så ser jag nu att Rösajten, som jag mödosamt skrev om förra hösten,
har "förbättringspotential". Idiotiskt att låta menyerna försvinna ovanför överkanten
när man skrollar ned i ett långt dokument - vi får se när jag får tid och lust att
göra någonting åt detta.
|
2010-11-15
|
Efter mycket arbete - som dock låg på is hela sommaren - har jag nu skrivit om Kamphavet
till ASP.NET.
Den viktigaste vinsten med det är att när sidorna laddas tar de med sig all gemensam
information från en "Master Page", där man kan lägga vinjetten, menyerna och allt
som skall se likadant ut på alla sidor. I en html-applikation med frames MÅSTE man
alltid gå in via frame-sidan för att se det gemensamma innehållet - hittar någon
en intressant sida via en sökmotor måste de gissa frame-sidans namn om de vill se
något mer av webplatsen, för menyerna och länkarna i frame-sidan kommer inte med!
Dessutom tillhandahåller ASP.NET en massa bra funktioner för databaskoppling och
annat som antagligen är oändligt bökigt att lösa i ren html.
Störst bekymmer har hanteringen av släktdatabaserna varit. De består ju av tusentals
sinsemellan hoplänkade html-sidor som genereras automatiskt av vårt släktforskningsprogram
"Min Släkt" och det är naturligtvis helt omöjligt att skriva om dem en och en till
ASP.NET; dels för att det skulle vara orimligt mycket arbete, dels för att det sedan
inte skulle gå att uppdatera filerna automatiskt.
Länge funderade jag på att skapa en GEDCOM-parser som konverterade GEDCOM-exportfilen
från MinSläkt till en Access-databas och sedan skriva ASP.NET-sidor för att visa
informationen, men GEDCOM är så pass snårigt att jag lade den idén på hyllan och
i stället valde att visa html-filerna som de är i en iframe i en ASP.NET-sida. Därmed
får jag fördelarna med ASP.NET för navigering och hantering av gemensam information
samtidigt som jag slipper jättejobbet med GEDCOM-parsern. Det verkar nu att fungera
och ser skapligt snyggt ut.
Familjens fotoalbum (som ligger i en lösenordsskyddad katalog) var en annan utmaning.
Jag ville ha en rullningsbar lista med miniatyrer till vänster och kunna klicka
på dem för att visa bildsidan till höger, och dessutom kunna bläddra mellan sidorna
med länkar som ligger i bildsidan. Det fungerar inte helt som jag ville, bland annat
laddas miniatyrlistan om varje gång man byter sida, så att man får rulla ned från
start varje gång. Ett annat problem är att funktionen som öppnar bildvisningssidan
gör det på huvudskärmen, inte sidoskärmen där jag har webläsaren - men det spelar
ju inte så stor roll om man bara har en skärm. Om någon är intresserad av min lösning
så hör av er så kan jag maila över koden.
Det vore ett mirakel om jag fått alla länkar och annat rätt på en gång och dessutom
finns ett par skönhetsfläckar som jag skall jobba vidare med, men nu får det duga
för sjösättning.
|
2010-02-13
|
I dag fick jag till sist ordning på bildhanteringen i WordPress och kunde sjösätta
den nya bloggen. Det har inte varit lätt, för att använda förnamnet.
Den gamla bloggen var en enda lång html-sida, med länkar till andra html-sidor som
innehöll bilderna. Varje gång vi lade till ett inlägg måste vi göra en en miniatyrbild
med länk till bildsidan, skapa en ny bildsida, ändra innehållsförteckningen på bloggen,
köra website-generatorn för att sökmotorerna skulle hitta den nya sidan, ändra datum
för senaste uppdatering och kanske skriva ett inlägg på Nyhetssidan. Ganska jobbigt
med andra ord. Allt det där går ju automatiskt i en riktig blogg och dessutom kan
besökarna kommentera det de läser.
Inte minst det sista tyckte vi var en stor brist på den gamla bloggen och började
i början av januari fundera på att byta till en riktig blogg. Det finns gott om
gratis programvara att hämta på nätet, problemet var snarare att välja vilken vi
skulle satsa på. Först försökte jag med WordPress, som kanske är det mest spridda
och populära bloggsystemet. Det är skrivet i php, ett annat skriptspråk än det jag
använder till våra hemsidor (ASP.NET). Om php kan jag fortfarande ingenting och
har inte heller lust att lägga ned månader på att lära mig ett språk till. WordPress
berömmer sig av att vara lätt att modifiera (vilket system gör inte det?), men det
är ett påstående man bör ta med en matsked salt.
WordPress-sidornas utseende styrs av ett tema, som består av ett tjugotal php-filer
och en handfull bildfiler. Vad de olika filerna gör kan man nödtorftigt räkna ut
av filnamnet, men där slutar min förståelse. Det finns massor av teman att ladda
ned från nätet, men man vill ju ha en egen stil på bloggen, så jag försökte länge
att få det enklaste standardtemat att bara visa en av våra bilder i stället för
den tråkiga enfärgade vinjett det har från början. Det finns en redigeringsfunktion
för teman i WordPress, men hur jag bar mig åt gick det inte att byta namn på bakgrundsfilen;
jag fick döpa om min bild till samma namn som standardbakgrunden och ladda upp bilden
separat.
Nästa problem var språket. Alla texter och meddelanden i WordPress är på engelska.
Det finns en bekväm funktion där man kan skriva in översättningar för varje text
som förekommer i WordPress; färdiga översättningsfiler finns att hämta på nätet
- men: standardtemats texter finns inte med i den svenska översättningsfilen, så
resultaten blev en sällsam röra av svenska och engelska texter.
I det läget tröttnade jag på WordPress och försökte med att annat system, Joomla!
Där var det lättare att få till det och jag trodde jag var i mål. Utan att traggla
mig igenom den ganska oordnade dokumentationen flyttade jag entusiastiskt in alla
de gamla blogginläggen i Joomla - det tog en vecka. Så skulle jag skriva en förklaring
om hur man kommenterade inläggen och upptäckte först då att Joomla inte har någon
kommentarfunktion! Ridå!
Nu var jag riktigt trött på allt vad "färdiga" bloggsystem heter och kände mig för
med en alldeles egen lösning i "gamla trygga" ASP.NET. Det gick ganska fort att
skapa en Access-databas och ASP.NET-sidor som visade inlägg och bilder på ett sätt
som var ganska likt den gamla Kamphavsbloggen, fast mycket lättare att underhålla.
Nu återstod bara att skapa en kommentarfunktion. Jag ville ju inte att någon skulle
kunna ändra våra inlägg, utan bara skriva in sina kommentarer och det fordrade någon
sorts identifiering av användarna, så att mitt system visste om det var vi själva
eller någon annan som satt vid datorn. Där körde jag fast. ASP.NET har funktioner
för inloggning och användarhantering, men de använder sig av Microsofts egen databashanterare
och den understöds inte av vårt webhotell! Där kroknade jag ... att ge mig på användarhantering,
kryptering av lösenord och tusen andra saker som behövs var bara allt för mycket!
Tillbaka till WordPress med svansen mellan benen.
Jag måste först få ordning på den förfärliga svengelskan i WordPress. Det visade
sig inte gå att lägga till nya rader i översättningsfilen - programmet heter Poedit,
förresten. För övrigt upptäckte jag att temat i alla fall inte bryr sig om översättningsfilen,
så då var det bara att ändra texterna i alla temafilerna för hand - puh.
Kommen så långt började jag skriva in de sista fyra inläggen från Kamphavsbloggen
i WordPress. Bilderna var på tok för stora, jag hittade ingen funktion i WordPress
för att få dem automatiskt reducerade, och gjorde om dem till 640x480 pixlar. Sedan
såg det hyggligt ut på min dator, så jag ändrade alla de 198 bilderna till 640 pixlars
bredd. Det tog en stund.
När jag stolt bad Ann Britt att titta på den nya bloggen var alla bilderna hoptryckta
i sidled! Vad??? Hon använder ju samma webläsare som jag!!! Så kollade jag alla
andra webläsare jag har och de visade samma fel allihop. Varför såg det rätt ut
i min? Jo, till sist kom jag på det: jag hade kört min Internet Explorer 8 i "kompatibilitetsläge"
- dvs den gör på konstgjord väg samma fel som föregångaren Internet Explorer 7!
När jag slog av kompatibilitetsläget såg det lika illa ut hos mig.
Nu måste jag söka hjälp på WordPress svenska forum. Jag hade varit där förut och
upplevt att det var som att ropa i öknen - oftast var jag ensam inloggad. Som i
alla forum finns det tusentals frågor och svar, men hur man letar hittar man inget
som passar på mitt problem. Till sist svarade i alla fall någon, och efter en stunds
diskuterande kom han med det avgörande tipset: bilderna måste skalas ned manuellt!
Dvs. antagligen behöver man inte det, men jag har inte kommit på hur man skall göra
i stället. Nu löste det mitt problem, så det andra kan vänta.
Därmed var det klart för sjösättning, som skedde när jag ändrade länkarna från Kamphavet
och Rösajten till den nya bloggen. Nu är det bara resten kvar.
|
2009-12-13
|
Efter en del trasslande har jag nu fått namnvisningen att fungera i bildarkivet
på Rösajten.
Den bygger på att de s k alt-texterna visas automatiskt när man för pekaren över
en komponent som har en alt-text. Egentligen är den till för att presentera namnet
på en bild om den av någon anledning inte kan visas normalt. Man kan också lägga
in osynliga ytor med länkar ovanpå en bild, s k hotspots, och det är det jag utnyttjar
för namnvisningen. Jag definierar hotspots för varje ansikte i en bild och sätter
dess alt-text till det namn jag vill visa.
Det var ingen konst när jag jobbade i html, då skriver man bara in koordinater och
storlek för sina hotspots i en image map på varje sida. I den lösning jag valde
för den nya Rösajten är det bara en enda ASP.NET-sida, och innehållet hämtas från
en databas. Koordinater och namn ligger nu också i databasen, hämtas till sidan
när den skall visas och skrivs in i en image map innan servern skickar ned den till
klienten som html-kod.
Det finns tyvärr inget riktigt praktiskt sätt att ta ut koordinaterna till hotspots
i Visual Web Developer. I DreamWeaver kunde man rita in dem i bilden och koordinaterna
sparades automatiskt, men i VWD måste man skriva in dem som siffror. Jag gör så
att jag öppnar bilden i Paint, där pekarens koordinater hela tiden visas i nederkanten.
Om jag har databasen öppen samtidigt kan jag skriva in koordinaterna direkt - men
det är tur att jag kostat på mig två skärmar till datorn så jag inte behöver växla
mellan databasen och Paint på samma skärm.
|
2009-11-22
|
Efter fjorton dagars arbete är "Safari-problemet" löst. Besvären med Safari (och
Googles webläsare Chrome) beror på att Microsofts ASP.NET- program inte känner igen
att Safari och Chrome är moderna webläsare. Försöker de bara dj...as med konkurrenterna?
På ASP-sidan fick jag ett förslag till lösning som skulle tvinga ASP.NET att hantera
Safari och Chrome rätt, men av någon anledning fungerade inte det.
I stället fick jag acceptera att jag inte kan använda den inbyggda menyn i ASP.NET
utan måste skriva en egen, vilket ju bär emot en del när det finns en snygg many
inbyggd. De flesta andra menyer bygger på Javascript, men nu är det ju så att användaren
kan stänga av javascript i sin webläsare och därmed stänga av en javascriptmeny.
(Javascript kan ju användas för att skriva skadliga program).
Jag valde i stället att göra en meny som bara utnyttjar html-listor och stilmallar.
I en stilmall kan man styra vilka delar av menyn som skall visas och ändra utseende
på menyns olika delar när man för pekaren över dem.
Jag startade förstås en tråd på ASP-sidans forum när jag började grubbla över stilmallsbaserade
menyer - utan alla nyttiga tips jag fick där hade jag nog grubblat mig tokig över
den ganska svårbegripliga koden i stilmallen. Om någon är intresserad av min lösning
så skicka ett mail!
Jag bestämde mig också för att gå över till Internet Explorer 8 som huvudwebläsare
för Rösajten, för om det fungerar i IE8 så fungerar det för det mesta i alla andra
moderna webläsare. Sedan var det bara ett IE7-problem, för den gör inte som de andra.
Nu kan man lägga till en extra stilmall som bara läses in om sidan hämtas till IE7,
så slutresultatet blev att sajten nu fungerar OK i IE8, IE7, Safari, Chrome, Firefox
och Opera - över 90 % av alla användare kör någon av dessa.
Den enda hyggligt vanliga läsare som återstår är IE6, den 8 år gamla läsaren som
släpptes tillsammans med Windows XP. IE6 har inte stöd för "hover" annat än för
vanliga länkar, och därför går det inte att använda stilmallsbaserade menyer i IE6.
Det kan vara möjligt att lägga till javascript till min meny för att den skall fungera
i IE6, men det jobbet (bl a att lära mig javascript) får vänta - det finns faktiskt
inget skäl att inte uppgradera IE6, så jag lade in en länk till Microsoft Download
i "About"- sidan.
|
2009-11-08
|
De dynamiska menyerna i den just sjösatta Rösajten fungerade inte i Internet Explorer
8 eller Safari och jag hade ingen aning om varför. Jag lade in en fråga i Asp-sidans
forum och efter några timmar hade jag fått lösningen på IE8-problemet.
Det visade sig att Microsofts serverprogram skapar felaktig kod när det skickar
ned html-koden för en asp-meny. IE7 märker inte detta, men i IE8 har man rättat
felaktigheten utan att rätta serverprogrammet!
Lösningen var ett obetydligt tillägg i .css-filen och menyn som säger till IE8 att
lägga menyerna ovanpå allting annat.
Problemet med Safari visade sig mer invecklat, men jag jobbar med det.
|
2009-11-05
|
Ett av de stora problemen med Kamphavssajten är de genealogiska sidorna. Vi använder
ett program som heter MinSläkt för släktforskningen; det är väldigt bra och lättarbetat,
men när man vill publicera sina resultat på Internet så skapar det minst två html-sidor
per person man har matat in. Totalt har vi hittills publicerat 8918 filer som MinSläkt
genererat.
Förutom att detta tar en del plats på servern så kan man naturligtvis inte skriva
om nästan 9000 filer för hand till asp.net så att man kan använda en Master Page,
utan tvingas leva kvar i frames med de nackdelar det har.
Dessutom har vi inte hittat något sätt att ta reda på vilka filer som behöver uppdateras
när man ändrat något i MinSläkt. (De genererade html- filerna får namn som är långa
siffersträngar där det inte går att se vilken person de berör utan att öppna dem).
När man gjort den minsta ändring i sin släktforskning måste man därför ladda upp
alla filerna igen för att vara säker på att allt blir rätt.
Nu är det ju inte särskilt smart att skapa flera sidor för varje post i något som
egentligen bara är en databas. Anledningen till att jag började arbeta i asp.net
var just att man då smidigt kan hämta innehållet i en sida från en databas (så hanteras
platser, personer, blommor och alla möjliga saker på Rösajten). Man behöver bara
en enda asp.net-sida för att visa alla poster man har i sin databas; 8997 filer
kan slopas - förutom asp.net-sidan behövs en sida med kod och förstås själva databasen.
När man gjort en ändring behöver man bara ladda upp databasfilen - vilken förenkling!
Jag har börjat peta i detta för att på sikt försöka ersätta de tusentals html-filerna
med en smidig asp.net-applikation.
Nu är det tyvärr så, att databasen i MinSläkt inte går att komma åt utifrån; inte
heller begriper asp.net att MinSläkt-filen är en databas. Innehållet i MinSläkt-filen
måste alltså konverteras till en databas asp.net kan använda, men sedan kan man
börja skriva asp.net-sidor för att visa sina personer och familjer.
MinSläkt kan inte bara exportera innehållet som html-sidor, programmet kan också
spara hela innehållet i en textfil på ett format som kallas GEDCOM. GEDCOM är ett
format som tagits fram av mormonkyrkan i USA - som bekant gör deras religion det
ytterst angeläget att forska fram sina förfäder. Tack vare mormonerna är det mesta
av de svenska kyrkoarkiven mikrofilmade, till stor glädje också för alla svenska
släktforskare. GEDCOM-filer går att begripa, om man bara har nyckeln till de taggar
som talar om vad varje rad handlar om, men det är trivialt - GEDCOM-standarden är
bara att ladda ned från internet.
Vad som inte är helt trivialt är att GEDCOM bygger på en datamodell som inte direkt
kan översättas till en relationsdatabasmodell av det slag alla moderna databaser
bygger på. För att överföra MinSläkt-datat till en relationsdatabas måste jag alltså
läsa GEDCOM-filen rad för rad, lista ut vilken tabell informationen skall läggas
i och (vilket är knivigast) sätta upp relationerna mellan de olika posterna, så
att barnen får rätt föräldrar och rätt personer är gifta med varandra t ex.
Vad jag har börjat med är därför att försöka bygga ett program inuti en Access-databas
som kan läsa GEDCOM-filen och fylla på datat i de olika tabellerna. Tyvärr måste
jag skriva programmet i Access Basic som är det enda Access förstår - snårigt och
ovant för mig. Jag hade hellre arbetat med C# som i asp.net, och lärt mig det ordentligt
i stället för två programspråk halvdant. Ett alternativ vore att byta databashanterare
till SQL Server, som är gratis, modernare och kraftfullare än Access - men det är
förstås ett jättejobb att lära sig en helt ny databashanterare. Rår jag inte på
problemet med Access Basic kanske jag får tänka om.
Wish me luck!
|
2009-11-01
|
Den nya Rösajten sjösattes i dag. Det finns flera skäl till att jag ville dela på
vår privata sajt Kamphavet och Rösajten. En är förstås att man skall komma direkt
dit utan att behöva bläddra i Kamphavet. En annan är att den gamla lösningen med
html och asp.net blandat gör det omöjligt att använda Master Pages till sajten.
En Master Page är ett modernare sätt att ge alla sidor en gemensam layout och slippa
skriva gemensamt innehåll på alla sidor.
Förr skötte man (och vi gör fortfarande det på Kamphavet och Setons the) det med
framesets; den stora skillnaden är att ett frameset hämtar innehållet i de olika
ramarna från andra filer, medan alla sidor i den modernare lösningen hämtar sin
MasterPage och fyller den med innehåll. En nyttig konsekvens av detta är att om
någon hämtar en sida direkt, utan att gå via hemsidan, får man med menyer och allt
och kan surfa vidare inom sajten. Förr fick man aldrig se menyer och annat som låg
i andra frames om man hittade en av våra sidor t ex via Google.
Så långt ser det ju bra ut!
|