Krymp stora loggfiler på SQL Server

Har man ingen strategi för att ta backup av loggfilerna för transaktionerna kan dessa växa något enormt. Då kan det bli läge att krympa ner dem och jobba fram en struktur så att de ska hålla sig på en rimlig nivå.

En del tips på nätet går ut på att man ska ta bort transaktions-loggen helt. Då återskapas en ny som startar om från början. Även om detta kan vara ett effektivt sätt, så är det inget som rekommenderas av Microsoft.

Istället bör man se till att göra backup på loggen, då frigörs det utrymme som inte behövs. Här följer några kommandon som fungerade bra för mig. Obs var försiktigt när du jobbar med filerna och läs på ordentligt innan precis vad kommandona gör. Jag använde SQL 2005, med detta fungerar säkert på SQL 2000 också.

1. Först skapade jag en Checkpoint

Use MyDatabaseName
go
Checkpoint

2. Sen gjorde jag en "backup" av loggfilen med alternativet "TRUNCATE_ONLY". Det innebär att ingen backupfil skapas, den frigör bara det utrymme på redan avklarade transaktioner som är onödiga att spara. Med kommandot "SHRINKFILE" förminskas loggfilen, i detta fall till 30MB

BACKUP LOG MyDatabaseName WITH TRUNCATE_ONLY DBCC SHRINKFILE('DatabasNamn_Log', 30)

The Code Project visar hur man kan göra detta genom programmering. Kolla även Webbproffs där jag gjort lite fler anteckningar. 

By Jesper Lind

Bästa placering och form på knappar i webbformulär

För att veta vilken modell av interaktionsdesign som kommer ge bäst resultat är det en bra ide att genomföra tester på olika förslag. Luke Wroblewski och Etre har gjort en sådan, där de undersöker hur man placerar primära och sekundära knappar i ett webbformulär få bästa sätt.

Man gjorde fem olika varianter som testpersoner fick i uppgift att lösa så fort som möjligt. Med hjälpt av Eye-tracking-teknik har man undersökt hur försökspersonernas blick rörde sig över skärmen.

Här under kan ni se en bild som vi har lånat från artikeln. Något jag är förvånad över är att alternativ B gick snabbast att för användarna att klara av. Eftersom knapparna har exakt samma form, och endast texten skiljer dem åt, så verkar det som att man inte behöver fundera på knapparnas innebörd lika länge.

Efter försöket säger många dock, att de anser att olika design på knapparna (som i exempel C där Cancel-knappen grå) är bättre, eftersom det motverkar att man klickar fel av misstag.

Submit Cancel Placement

InUseful har också skrivit bra reflektioner över testet på svenska.

By Jesper Lind

Små förändringar i webbformulär kan öka din omsättning enormt

Att lägga stor vikt på att utforma webbformulär är något som ofta förbises vid webbdesign. Man ser det inte så viktigt hur inloggningsformulär och och registreringssidor ser ut. Istället satsar man på virala reklam-jippon eller dyra Adwords-kampanjer för att få fler besökare och större intäkter på sina webbplatser.

Åtminstone har det varit så innan, den nya web2.0-filosofin är ju fokuserad på användaren och dess behov, så nu börjar webbutvecklare få upp ögonen för hur viktigt det är, att ha en användarvänlig design. Se bara på de där överdimensionerade inmatningsfälten som börjar bli så vanliga.

Genom att veta hur man designar ett formulär på bästa sätt, så kan man öka intresset för sin webbtjänst, eller öka försäljning om det handlar om en e-handelsajt. CSS-experten Eric Meyer berättar i en intervju att en handelsida ökade sin försäljning med hundra-tusentals dollars – bara genom att ändra på två inmatningsfält.

Då hade nog den sajten rätt stor omsättning innan, men den positiva effekten på en sån liten ändring är väldigt intressant och något varje webbplatsägare bör ägna en tanke på.

By Jesper Lind

Emailkonton till 100 ambassader publiceras

Inloggningsuppgifter till 100 ambassaders emailkonton har publicerats på nätet av en (modig) svensk säkerhetskonsult vid namn Dan Egerstad. DN och Computer Sweden skriver mer och har intervjuat honom. Den kommer nog inte dröja länge innan resten av världen snappar upp denna nyhet. Computer Sweden har vart smarta och även skrivit artikeln på engelska (nog första gången jag ser detta på IDG-nätverket). Den kommer nog bli rätt friskt länkad under morgondagen.

Han meddelar att han kommit över denna information genom en säkerhets-labb han gjorde för ett tag sen. Sedan dess har han funderat på vad han skulle göra med den, och beslutade sig till sist för att publicera den publikt och meddela media.

Klokt eller ej får framtiden utvisa men man kan förstå problemet han brottats med. Att kontakta alla 100 ambassader skulle väldigt tidskrävande och det skulle nog kunnas tas emot på fel sätt av myndigheterna. Att överlämna uppgifterna till Säpo vore ett spioneribrott.

Läs själva hans meddelande på bloggen där uppgifterna publicerats, Deranged Security.

Förhoppning om säkrare e-postsystem

Förhoppningsvis kan något gott komma ur detta, det är ju uppenbart att vi behöver säkrare e-postsystem. Än så finns inga uppgifter på hur informationen har läckt och det är det nog många som vill ha svar på.

Första problemet med nuvarande email-system är att man kan skicka mail från vilken adress som helst, med lite programmeringskunskaper. Spam hade varit mycket svårare att skicka ifall detta inte var fallet.

Att det nu visar sig finnas brister, som gör att man kan komma över inloggningsuppgifter och läsa epost, borde sätta igång en utveckling mot säkrare system. Låt oss hoppas på det i alla fall.

Uppdateringar

(2007-08-31) Indiska tidningar har loggat in på e-postkonton för den indiska ambassaden i Kina med hjälp av inloggningsuppgifterna som läckt ut. Dessa har sedan publicerats på deras nätupplaga,som innehåller bland annat lista på inköp gjorda av det indiska försvaret

(2007-09-07) Amerikanska lagstiftare beslutar att stänga ner DEranged Security's hemsida. Sidan är nu återställd, på annan hosting kan man anta. Den enda effekten av nedtagandet är att alla intressanta kommentarer är borta. Iran har där emot visat på större förståelse till avslöjandet av säkerhetsbristerna och Dan tackar dem för detta.

By Jesper Lind

Säkerhetsproblem med statistikverktyget Urchin

Urchin är ett statistikverktyg för att analyera besökartrafik. Det köptes år 2005 av Google och är det program som ligger till grund för Google Analytics.

Nu har det kommit fram Urchin v5.7.03 verkar vara sårbart mot XSS-attacker och att det i vissa fall verkar att kringgå inloggningsskyddet. Ha.ckers.org har mer info och visar exempel på hur man kan länka in JavaScript från en extern sajt, till inloggningsformuläret i Urchin.

Vi jobbar med några servrar som det körs Urchin på och har kunnat bekräfta XSS-problemen. Här är ett exempel på en länk som jag lyckades köra (adressen och portnumret är påhittade)

http://www.siterunningurchin.domain:88/?"><script>alert('XSS%20Attack!')</script>

Så jag rekommenderar alla som kör Urchin på sina servrar att omedelbart stänga av "remote login"om det skulle vara igång.

Nu hoppas vi på att det kommer en säkerhetsuppdatering som fixar dessa problem.

Uppdatering: Problemet har även tagits upp i Google Gruppen för Urchin. Urchin 5 Software > Cross Site Scripting XSS Vulnerability

By Jesper Lind

Tafiti – Ett experimentiellt sökkoncept baserat på Silverlight

http://www.codeodyssey.se/upload/resource/blog/tafiti.png

Ja nu börjar Silverlight-applikationerna mogna lite. Microsoft visar upp Tafiti, ett experimentellt sökkoncept, baserat på deras nya Silverlight-teknik och med Live som dataprovider.

Demot bjuder på en del roliga finesser, bland annat "trädet"som ni kan se en skärmdump på ovan. Inte helt användbar kanske, men ett fint exempel på hur visualisering kan göra sökning roligare.

(Via LiveSide)

Läs mer på Techcrunch och MacWorld 

By Jesper Lind

Om det var roligare – hade jag städat skrivbordet oftare

När folk ser mitt skrivbord på min laptop får de ofta en chock pga hur överfullt och med filer det är. För ett tag sen såg det nästan så här illa ut. Killen som har skrivbordet i länken har som idé, att han vill ta vara på allt utrymme. Han tänker så att om jag fyller allt tomt utrymme, med så mycket grejer det bara går, så har han allt han behöver inom så kort räckvidd som möjligt.

Skälet till att mitt skrivbord har varit så hopplöst överbelagt, är inte det samma som hans, utan jag inser att det skulle vara lättare att jobba om jag hade bättre ordning på inkommande filer. Jag använder det som en slags dumpplats för filer som jag tar emot på mail och chattklienter. Och känner oftast inget behov att städa, tills det har gått över styr..

Nu har jag inspirerats av Coding Horror's "Discipline Makes Strong Developers" så har jag bestämt att det är dags för en ny regim. Ordning och reda på skrivbord, mail och källkod i projekten. Eftersom jag precis har installerat om XP, så är detta ett gyllende tillfälle att börja hålla bättre ordning.

Hur skulle det kunna bli roligare?

Ända sen jag såg Bumptop för första gången, insåg jag att om jag hade ett liknade interface på skrivbordet, så skulle det vara mycket roligare att hålla ordning. Missa inte det lustiga parodin som nån lagt upp på YouTube, som visar hur Bumptop skulle se ut om man använde det i verkliga livet.

En annan som gillade idéen är Doug Mccune och jobbar på att skapa samma slags UI med Flash/Flex/AIR/Actionscript Physics Engine och PaperVision 3D. Han kallar sin implementation tileUI och har redan ett enkelt demo som man kan prova på. Intressant är även att se filmen på hans blogg, där han har dokumenterat utvecklingen av projektet.

Städa upp webbplatser

(Några dar senare:) Inlägget handlade i första hand om att städa på sin lokala dator, men vill tipsa om en länk på ungefär samma ämne. Backend Media ger bra råd till hur man kan se över sin webbplats, och städa bort gamla sidor som inte är så välbesökta. Bra läsning.

By Jesper Lind

TreeSize – Visar filstorlek för mappar

Den inbyggda filhanteraren i XP har några begänsningar – den visar inte storleken på innehållet i flera mappar samtidigt. Man kan hålla muspekaren över varje mapp för att få reda på detta men det är inte så effektivt alla gånger.

Tänkte därför tipsa om ett litet program som heter TreeSize. Det finns i en gratis version med de grundläggande funktionerna och är bra att ha om man vill städa bort stora filer på sin dator. Fungerar på Windows 9x, 2000, XP och Vista. 

By Jesper Lind

Validera CheckBox med CustomValidator

Försökte att lägga till en RequiredFieldValidator för att kontrollera att en CheckBox var ikryssad vid postning, men det gick inte så bra. Felet blev:

Control 'CheckBox1' referenced by the ControlToValidate property of
'RequiredFieldValidator1' cannot be validated.

Någonstans läste jag att man inte lagt till denna möjlighet på CheckBox för att "bägge värdena alltid är riktiga". Det kanske kan vara ett bra argument, men jag ville endå ha denna funktionelitet. I mitt fall gällde det en ruta som användaren måste kryssa i för att fortsätta.

Så jag gjorde det med en CustomValidator istället, så här ser uppmärkningen ut på sidan.

<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
<br />
<asp:CustomValidator ClientValidationFunction="ValidateChecked"
Runat="server" ID="termsReadUnchecked" ErrorMessage="You must tick this box to continue"/>

Och i koden bakom lägger jag till JavaScript-funktionen för valideringen.

HtmlGenericControl validateCheckedScript = new HtmlGenericControl("script");
validateCheckedScript.Attributes.Add("type", "text/javascript");
validateCheckedScript.InnerHtml = "function ValidateChecked(src, args){args.IsValid=document.getElementById(\"" + ChckBox1.ClientID + "\").checked;}";
this.Page.Header.Controls.Add(validateCheckedScript);

By Jesper Lind

Skicka mail med IIS på din lokala maskin

Har ägnat nån timme åt att försöka skicka mail med SMTP-servern i IIS 5.1 och nu lyckats få iväg några mail. Här går jag igenom de steg jag fick göra för att få det att fungera.

Mailkoden

Själva mailkoden jag använder i applikationen använder System.Net.Mail och ser ut ungefär så här:

SmtpClient smtpClient = new SmtpClient("localhost");
//smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
MailAddress from = new MailAddress("from@dummysite.domain", "Alias from name");
MailAddress to = new MailAddress("to@dummysite.domain");
MailMessage mail = new MailMessage(from, to);
mail.IsBodyHtml = true;

mail.Subject = "From my local computer";
mail.Body = "Testing, testing";

smtpClient.Send(mail);

"SmtpDeliveryMethod.PickupDirectoryFromIis" var något jag trodde behövdes ett tag, eftersom jag läste om det på ett forum, men det visade sig att det gick bra att skicka även utan.

Ställa in SMTP-Server

Det problemet kom i form av ett felmeddelandet som såg ut så här:

Mailbox unavailable. The server response was: 5.7.1 Unable to relay for ...

Lösningen till detta hittade jag på CodeBetter och innebar att lägga till 127.0.0.1 som giltigt IP-nummer för att skicka mail från SMTP-server. (Egenskaper / Åtkomst / Anslutning / Endast datorer i listan nedan)

När detta var klart så försökte jag skicka igen, nu fungerade det i applikationen men mailen fastnade i C:\Inetpub\mailroot\Queue.

Lösningen på detta fann jag på Velocityreviews där medlemmarna förklarade att man behövde lägga till en giltigt SMTP från sin ISP. (Egenskaper / Leverans / Avancerat / Smart värd)

Hoppas detta kan hjälpa någon som vill kunna skicka mail från sin egen dator med ASP.NET.

By Jesper Lind