w
Finns det något bättre än att kunna snabbmoderera kommentarer i wordpress UTANFÖR wordpress egna gränssnitt (eftersom det går snabbare) och samtidigt få dessa svartlistade åt alla andra som också har dessa funktioner påslagna i sina bloggar? Nej, det gör nog inte det! Och aksimet gör samtidigt en del av jobbet, genom att filtrera bort alltihop, så man bara kan markera vad som skall ut i svartfiltret!
Här är queryn:
SELECT c.comment_author_IP,c.comment_content,c.comment_ID,p.post_title,r.term_taxonomy_id,t.name
FROM wp_comments c
INNER JOIN wp_posts p
ON c.comment_post_ID = p.ID
INNER JOIN wp_term_relationships r
ON r.object_id = p.ID
INNER JOIN wp_terms t
ON t.term_id = r.term_taxonomy_id
WHERE p.post_status = ‘publish’
AND c.comment_approved = ’spam’
Som sedan visas direkt via ett underbart gränssnitt!
Läs även andra bloggares åsikter om aksimet, banna, blockera, blockering, bloggspam, blogspam, dnsbl, ip, rbl, spam
Råkade precis utveckla kunskaperna inom SQL-queries. Det är fina saker när man väl förstår HUR mer avancerade kommandon skall användas, i synnerhet subqueries.
Ta fram en lista på alla besökare, som har en IP-adress som innehåller något av de ord som definierats i tabellen refbots. I nedanstående exempel används sökrobotar (aka ”refbots”) som exempel, där vi bland annat sorterar bort google, aol.com, osv:
SELECT * FROM tmmhits t INNER JOIN refbots r ON t.remotehost LIKE CONCAT('%', r.host, '%')
Om vi på samma sätt vill sortera allt efter varifrån träffarna från dessa sökrobotar kommer, för att kolla vilken sökrobot som är aktivast på websidan, så kan man givetvis göra det också, genom att gruppera sökningen. Men det är förstås lite mer standard.
SELECT COUNT(r.host) c from tmmhits t INNER JOIN refbots r ON t.remotehost LIKE CONCAT('%', r.host, '%') GROUP by r.host ORDER BY c DESC;
På samma sätt kan vi även, på en websida plocka ut ipadresser från besökare, som använder välkända proxies, men då genom frågan (ala subquery):
SELECT * FROM tmmhits t WHERE NOT (SELECT COUNT(ip) FROM tornevall.proxydb WHERE ip = t.ip);
Trött, småsnuvig, seg, ont i nacken, men för närvarande rätt nöjd, med ett löfte avlämnat att ”jag skulle kunna döda för min lediga fredag just nu” då jag levt som slav hela veckan. Jag har krypit! Usch! Men så gick det ju bra till sist, så jag behövde aldrig döda någon. Och det är väl tur, för det hade bevisat att jag skulle ha fel. Och jag har ju aldrig fel.
Så har jag precis upptäckt fler roliga funktioner i Falcom-modemet. Tack, manualen! Jag förstår inte varför jag inte varit på och labbat med detta förut. Jag vet så väl att jag letat efter detta, så nu måste jag ju göra en riktig server av det dessutom. Jag har länge tex undrat hur man identifierar en person som ringer upp mobilen, när simkortet är inkopplat i ett modem. AT+CLIP fixar biffen!

Det här skulle ju kunna vara väldigt bra, eftersom det innebär att om någon mobiltelefon ringer upp så skulle jag kunna skicka tillbaka ett SMS till den som ringde och berätta att det är lönlöst att ringa upp, eftersom det inte finns något levande väsen som kan ta samtalet. Lite jobbigt dock om det ringer från Kuba… Jag misstänker att SMS dit inte skulle vara så billigt. Men det är ju sånt man kan rätta till. Nu skall jag bara se till att O R K A det här..!
Undrar när farsans adress försvinner från Eniro på numret… Hitta plockade tydligen bort det alldeles nyligen.
Tanken var att få en överblick över hur kablarna var anslutna. Och det gick inte så bra…

Så jag gjorde en ny i samband med att jag började flytta runt prylarna…

Planmässigt såg det ju riktigt bra ut. Men var det möjligt att praktisera i verkligheten? Nja… Inte hos mig. Resultatet såg lite annorlunda ut, eftersom jag aldrig skaffade någon VPN-router. Det visade sig att VPN-routers inte skulle fungera ordentligt i mitt nätverk.

Lösningen var dock skaplig. Servrarna når ju varandra även om en internetuppkoppling går ner.
Så idag så ser det fortfarande ut, ungefär som det gör i mitt huvud emellanåt. Och då är ändå inte hela lösningen komplett på nedanstående bild…

Det var ett tag sedan jag gjort min första ”personnummerkontroll” och för inte så längesedan skrev jag om källkoden för den. Nu har jag även gjort om koden på hemsidan till en ”oneliner”-kod. Dvs kod som upptar så lite plats som möjligt i html-dokumentet.
Syftet med koden var egentligen ganska enkelt. Det var kul att se om det ”gick” att interaktivt plocka fram kontrollsiffran i ett personnummer. Sedan dess har uppenbarligen en personlig utveckling pågått även på Javascript-fronten alltså. Det är ganska onödigt egentligen, men någon kanske har nytta av det… Annars är det inte helt fel som övningsobjekt heller.
Så här blev den nya kontrollen:
function BirthCheck(pnr)
{
var sum = "";
var newsum = 0;
if (pnr.length == 9) { pnr += "0"; } // Lägg till ett nummer till så vi får 10 tecken!
if (pnr.length == 10) // aktiveras endast här
{
for (var i = 0 ; i < 9 ; i ++) { if (i % 2 == 0) { sum = sum + pnr.substr(i, 1) *2; } else { sum = sum + pnr.substr(i, 1); } }
for (var i = 0 ; i <= sum.length ; i ++) { newsum += Number(sum.substr(i, 1)); }
if (10 - Number(newsum.toString().substr(newsum.toString().length-1, 1)) >= 10) { return 0; } else { return 10 - Number(newsum.toString().substr(newsum.toString().length-1, 1)); }
}
}
Det är inte den fullständiga koden (som numera publiceras på en av ovanstående länkar), men just denna del är den som returnerar kontrollsiffran i personnumret.
Återigen har alltså kilometerlång källkod kortats ned till endast en bråkdel av den första versionen, som delvis såg ut så här (skärmen räckte inte ens till alltså).
Intresseklubben kan notera följande…
Idag satt jag för första gången på rätt länge och kollade igenom gammal källkod som behövde förnyas jobbet. Det handlade framför allt om en funktion som tar fram kontrollsiffran i ett personnummer för att validera att det verkligen är ett korrekt inskrivet. Detta skulle ingå i en webshop så jag tänkte att det kan vara en god idé att göra flera olika kontroller på ett personnummer än bara godtyckligt släppa igenom allt som kunden skriver in. Och vad vore väl inte bättre än att använda sin gamla kod? Då skulle jag ju slippa göra om det.
Inte för att det har med något att göra alls, men tydligen har jag använt mig av extremt överflödig källkod tidigare. Till min hjälp från början hade jag haft en gammal websida som jag gjorde för längesedan, som även kunde tala om vilket län och vilket kön en person var (http://forum.tornevall.net/birth.php). Javascript förstås, så allt kunde ske i realtid utan tangenttryckningar. Något jag blev förskräckt över var den extremt överflödiga textmängd jag sedan använt i jobbets applikationer. Inte för att det heller har med saken att göra det heller egentligen, men detta är förstås något jag bara måste dela med mig av, då jag samtidigt som jag hittade detta även tog mig friheten att göra om funktionen igen, till något mer passande.
Resultatet var fantastiskt och jag förstår inte ens hur jag kunnat sitta och göra något så hemskt tidigare… Men man utvecklas väl…
Gamla koden:
Den nya koden började jag förstås skriva som ett PHP-script, vilken jag sedan översatte till samma kod som ovan…
Dessa två funktionerna gör alltså exakt samma sak – nämligen räknar ut vilken sista siffran i personnumret skall vara… Galet, galet…
En helt vanlig frisk människa skulle må riktigt dåligt av att se detta. Det skulle iofs även en sjuk människa göra…

Heeeeeeeeeeeeeelvete, jag minns inte att jag lämnade datorn på det viset sist jag var i den, men tydligen… Så det var bara att börja sortera alla sladdar och sätta allt på plats. Efteråt blev det riktigt skapligt, så när som på en liten problematisk detalj.

… Samsungdisken stannade. Tvärdog. Slutade låta helt. Tills jag efter över en timmes plågsamt felsökande i ren frustration slog hårddisken mot huvudet, visserligen väldigt lätt. Då började den snurra och ha sig igen!

Party!!!!
Nä. Nu är det backup som gäller för resten av kvällen så man har allt säkrat ifall det skulle ske igen. Jag tänkte ju försöka fortsätta använda disken, men… för säkerhetsskull, så flyttar jag på allt därifrån, som är av värde.
Ytterligare en hel dags försening alltså… Men så blir det ju alltid när jag kommer igång med något. Komplikationer, komplikationer, komplikationer…
Hur nördigt är inte det? Speciellt som den talade om för mig att den bloggar :rotfl:
