Den saknade LINQ

Du kanske också tycker att detta är ett alltför komplicerat sätt att visa en lista med filnamn, vilket det mycket väl kan vara, men din enkla fråga som får filnamnen som finns i en mapp skulle lätt kunna anpassas för att jämföra två mappar och bara returnera skillnaderna , eller för att jämföra själva filerna – det är öppet för alla möjliga ytterligare möjligheter. Tänk också på att den här koden kanske inte fungerar när du läser den här artikeln, om Microsoft har utvecklat tekniken ytterligare.

Den saknade LINQ

Så där har du det: en verklig användning av LINQ, något du förmodligen inte förväntade dig att läsa om här. Vad synd att vi inte kan utföra den här typen av frågor via SQL. Eller kan vi?

När jag undersökte detta ämne hittade jag RitmarkFS-projektet, som verkligen låter dig fråga filsystemet via MySQL på www.ritmark.com/ritmark/index.php. Konceptet är att hela filsystemet är gjort för att se ut som en relationstabell, där varje fil är en uppsättning egenskaper och varje egenskap har ett namn och ett värde, så att varje fil representeras av en serie rader i tabellen. För att extrahera relevant extra data från en filtyp behöver du en drivrutin för den filtypen; till exempel kommer MP3-filer att behöva en annan drivrutin än PDF-filer. Det är inte riktigt en passande-och-glöm-lösning ännu, men det visar vad som kan göras. Efter installation av Ritmark-koden kan du fråga ditt filsystem med ett enkelt SQL-kommando som:

VÄLJ a.filnamn, b.filnamn FRÅN test.c$$ritmarketest a, test.c$$ritmarketest b

RitmarkFS kommer bara att fungera med MySQL, vilket inte är en så stor begränsning, eftersom detta är en mycket populär databas (och gratis också, vilket aldrig skadar en produkts popularitet). Det verkar dock som att inget arbete har gjorts med projektet sedan november 2006. Jag undrar varför?

Trygga tankar

Säkerhet är aldrig långt ifrån rubrikerna nuförtiden, oavsett om det är den senaste biten av data som förlorats av ett statligt departement eller en berättelse om en grupp hackare som försöker få tillgång till bankkonton. Alla sådana berättelser är av intresse för alla som utvecklar en applikation som antingen används av andra eller körs på en dator som är ansluten till internet, så att den täcker alla dina webbapplikationer. Även om det inte är direkt en säkerhetsrisk, kan maskingenererade inlägg till webbformulär användas för att hitta maskiner som är sårbara för vissa utnyttjande, för att inte tala om irritationen att ta bort dessa inlägg från webbserverns databas. Sedan en tid tillbaka har det funnits en teknik som har gett oss ett rimligt sätt att förhindra sådana inmatningar: CAPTCHA (Completely Automated Public Turing-test) kan skilja datorer och människor isär genom att använda ett dynamiskt genererat kodord vars bild är gjord av förvrängda tecken – användaren måste känna igen och skriva om ordet för att bekräfta att de är en riktig person, eftersom inga nuvarande OCR-maskiner kan läsa så kraftigt förvrängda bilder.

Jag säger ”för närvarande” eftersom det pågår ett spel som ber användare att ange CAPTCHA-koder som gör att en bild av en kvinna dyker upp med färre kläder när varje kod skrivs in. Syftet med detta till synes ofarliga ”spel” är att samla in en databas med CAPTCHA-koder och deras ASCII-motsvarigheter, så att framtida maskiner kommer att kunna läsa dem. Att använda det stora antalet användare på internet för att utföra arbete som för närvarande är omöjligt för en dator att utföra är en växande idé – uppmuntra riktiga människor att ange information så att datorerna kan ”lära sig” av den. Om detta till en början låter lite för som science fiction, ta en titt på vår gamla vän Amazon och ett av dess nuvarande betaprojekt.

Lämna en kommentar

Din e-postadress kommer inte publiceras.