När man tillhandahåller ett CMS-system åt en kund så är det nästan oundvikligt att kunderna kommer att skriva in ogiltig XHTML. Alla kan helt enkelt inte vara webbstandard-freaks och det är inget man kan kräva av någon.
Då skulle det vara perfekt om man kunde få en varning så fort ogiltig kod har publiserats, så man kan gå in och rätta till den.
Blitz Labs har gjort en sådan lösning och delar med sig av .NET-koden. Funktionen tar emot en url som ska kontrolleras. Skickar ett anrop till W3C Markup Validation Service. Tar emot resultatet genom deras SOAP-tjänst och transformerar det till RSS med hjälp av en XSLT-fil.
Prenumenera sedan på den RSS som skapats och få meddelande så fort någon ogiltig kod har publiserats.
Ofta har Intellisense slutat fungera för mig och mina kollegor och vi har grubblat en del över detta. Nu läste jag just hos ScottGu vad buggen handlar om.
En enkel lösning är att se till att ha MasterPage-filen öppen i VS, då fungerar Intellisense. Alternativt ladda hem Visual Studio® 2005 SP1 där problemet ska vara löst.
Att programmera AJAX är roligt, men när något går fel är det inte lika kul längre. Den vanliga tracern i .NET går ju inte att köra samtidigt. Sökte lite efter tips hur man kunde felsöka lättare och hittade ScottGu's inlägg om Nikhil's Web Development Helper.
Det handlar om ett suveränt tillägg till Internet Explorer som är till stor hjälp när man felsöker Ajax-applikationer. Läs mer om det hos Nikhil och kolla även in dokumentationen (PDF).
Här visas en funktion för att se om ett land är med i EU. Inparameter är landets ISO-landskod och den returnerar en boolean. Mer information om EU-länderna finns på Europa.eu.
Eftersom lokaliserings-funktionerna i ASP.NET är baserade på kulturer (MSDN:CultureInfo) kan det vara lite knepigt att generera en lista över alla världens länder.
Om man även vill ha dem i bokstavsordning får man se till att sortera dem själv. Jag la till alla länderna som nycklar i en SortedList, eftersom denna typ av datasamling automatiskt sorteras efter värdet i nycklarna.
Jag visar länderna och deras landskoder i en DropDownList som läggs till på .aspx-sidan.
//Skapa en SortedList för att spara alla länderna med tillhörande landskoder SortedList slAddedCountries = new SortedList();
//Skapa en array av CultureInfo från alla kulturer //Vi använder SpecificCultures men NeutralCultures är ett annat alternativ CultureInfo[] arrayAllCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
try { foreach (CultureInfo ci in arrayAllCultures) {
string country = new RegionInfo(ci.LCID).EnglishName; string countryCode = ci.Name.Substring(3, 2);
if (!slAddedCountries.ContainsKey(country)) { //Spara landets namn som nyckel och landskoden som värde slAddedCountries.Add(country, countryCode); } }
//Lägg till länder som saknas //Cypern slAddedCountries.Add("Cyprus", "CY");
//Loopa igenom SortedList och vi får länderna i bokstavsordning foreach (DictionaryEntry de in slAddedCountries) { Trace.Write("-"+de.Key); DataRow objDataRow = objTable.NewRow(); objDataRow["CountryCode"] = de.Value; objDataRow["CountryName"] = de.Key; objTable.Rows.Add(objDataRow); } } catch (Exception objException) { Trace.Warn("BindCultureSelector() Fel!", objException.Message); } finally {
}
return objTable.DefaultView; }
Här kommer ett del av den html-kod som skapas med de länder som ligger runt Sverige (i bokstavsordning alltså).
Inte helt självklart alltså. Det går säkert att göra på något bättre sätt men detta är den bästa lösning jag kommit på. Annars kan man ju prova med en fristående databas över länder, t ex från GeoNames.
Uppdatering: Märkte att Cypern inte är med i ramverket av någon anledning. Konstigt eftersom landet blev självständigt 1960. Jag har lagt till en extra rad i koden som lägger till Cypern manuellt.
Letar efter en bra flashspelare för att spela upp mp3-filer eftersom vi behöver det till ett projekt.
Gillar verkligen 1 Pixel Out - Audio Player som finns som en tilläggsmodul till Wordpress. Den är lätt att installera och fungerar utmärkt. Det enda jag saknar är en volymkontroll.
Vill man lägga till spelaren på en annan plattform som inte använder Wordpress, går det också bra. Mindy McAdams har skrivit bra instruktioner för hur man går till väga.
Orginalfilerna för spelaren finns att ladda hem på Wordpress Plugin-sajten och det är fritt fram att modifiera den enligt GNU-licensen.
Exempel
Här kommer några exempel på hur spelaren ser ut och fungerar. Mixarna är lånade från vår vän DJ JayStarSeven.
Emellan varven smider vi lite planer på vad vi ska hitta på för kul på Code Odyssey i framtiden. Just nu är det fullt ös att leverera till våra nuvarande kunder. Men en dag planerar vi utveckla en egen spännade tjänst till en större målgrupp.
Vi pratade om det senast idag, vad vore kul att satsa på? Blogghosting är ju väldigt intressant, speciellt eftersom vi i stort sätt redan har en färdigt gränssnitt. Att göra det på större skala kräver ju dock en hel del planering.
Backend Media tipsar om en webbtjänst som heter RobotReplay och erbjuder inspelning av besökarnas musrörelser på dina egna sajter. Grundtjänsten är gratis att använda och kommer förbli det. De meddelar dock i sin FAQ att de kommer släppa en typ av premiumkonto i framtiden som kommer kosta pengar.
Vi har precis lagt in det på denna webbplatsen för att prova på det och det hela fungerar väldigt bra. Efter ha registrerat ett konto och lagt in en rad Javascript så börjar tjänsten att spela in besökarnas musrörelse med en gång. Det tar sedan 10 minuter för sessionerna att dyka upp i gränssnittet på RobotReplay.
Ett perfekt verktyg för att studera hur användarvänlig och lättförstålig din webbplats är.
Obs. Fungerar ej med Snap Preview Anywhere
När jag skulle kolla in den första sessionen så blev det någon bugg på återspelningen. Webbplatsens grafik syntes bara en liten stund och det hela hängde sig när uppspelningen skulle starta. Misstänkte att det hade att göra med en konfikt med något annat skript, och det visade sig stämma. Efter jag stängde av Snap Preview Anywhere fungerade återspelningen av sessionen.