Sat 30 Aug 2008
WIPmania – Lösungen für Geo-Targeting
Posted by Alrond | Tags: Django : GeoIP : Geolokation : Internet : nginx : Plugins für Firefox : WIPmania : WorldIP :
Ich habe seit langem nichts mehr geschrieben, da ich an einem Projekt lang gearbeitet habe. Gestern hat es endlich gestartet!
Unser Projekt WIPmania bietet eine Reihe von kostenlosen Produkten und Dienstleistungen für Geotargeting auf der Grundlage einer Datenbank an: es sind also selbst die WorldIP Datenbank der IP Adressen ganzer Welt, API ferner Zugriff zu ihr und Firefox Plugin, das Informationen über die geographische Lage des Web-Servers der Webseite anzeigt, auf der man sich grade befindet.
Andere ählichen Datenbanken haben mich weder von der Qualität, noch von dem Preis begeistert, also bin ich vor einigen Monaten auf die Idee gekommen, eine eigene zu schaffen.
Preis. Mir sind nur zwei kostenlosen Datenbanken bekannt, beide aber basieren auf Whois-Daten. Das heißt, sie zeigen nicht die reale Lage der Netze selbst, sondern deren Besitzers. Ein deutlicher Unterschied unseres Projektes ist eben die Betonung auf der realen Lage des Netzes, diese Information ist viel mehr korrekt.
Was die Qualität betrifft, selbst die Giganten der Industrie benutzen die Daten aus Whois, und machen sich nicht wirklich Sorgen um ihre Korrektheit (genau zu sagen, um Mangel an dieser).
Unser Projekt WIPmania bietet eine Reihe von kostenlosen Produkten und Dienstleistungen für Geotargeting auf der Grundlage einer Datenbank an: es sind also selbst die WorldIP Datenbank der IP Adressen ganzer Welt, API ferner Zugriff zu ihr und Firefox Plugin, das Informationen über die geographische Lage des Web-Servers der Webseite anzeigt, auf der man sich grade befindet.
Andere ählichen Datenbanken haben mich weder von der Qualität, noch von dem Preis begeistert, also bin ich vor einigen Monaten auf die Idee gekommen, eine eigene zu schaffen.
Preis. Mir sind nur zwei kostenlosen Datenbanken bekannt, beide aber basieren auf Whois-Daten. Das heißt, sie zeigen nicht die reale Lage der Netze selbst, sondern deren Besitzers. Ein deutlicher Unterschied unseres Projektes ist eben die Betonung auf der realen Lage des Netzes, diese Information ist viel mehr korrekt.
Was die Qualität betrifft, selbst die Giganten der Industrie benutzen die Daten aus Whois, und machen sich nicht wirklich Sorgen um ihre Korrektheit (genau zu sagen, um Mangel an dieser).
Sat 3 May 2008
Trunk ist mit brunch Queryset-refactor ergänzt, der die Django-Modelle ganz einfach zu vererben lässt. Es ist längst bekannt. Die Vererbung ist aber keine einzelne Möglichkeit, es gäbe noch Monkey patching.
Die Idee ist, dass Monkey patching erlaubt genauso nicht nur die Felder, sondern auch die Funktionen hinzufügen.
Zum Beispiel, so wird das Modell User mit dem Feld OpenID ergänzt, dazu kommt noch die Funktion, die Nickname zurück gibt, falls es keinen Namen gab
keine weiteren Tabellen werden geschafft
man arbeitet mit dem Modell mit allen Django-Standardmittel
Die Idee ist, dass Monkey patching erlaubt genauso nicht nur die Felder, sondern auch die Funktionen hinzufügen.
Zum Beispiel, so wird das Modell User mit dem Feld OpenID ergänzt, dazu kommt noch die Funktion, die Nickname zurück gibt, falls es keinen Namen gab
from django.contrib.auth.models import User
User.add_to_class('openid', models.CharField(max_length=250,blank=True))
def get_user_name(self):
if self.first_name or self.last_name:
return self.first_name + " " + self.last_name
return self.username
User.add_to_class("get_user_name",get_user_name)
Die deutlichen Vorteile der Methode:keine weiteren Tabellen werden geschafft
man arbeitet mit dem Modell mit allen Django-Standardmittel
Wed 23 Apr 2008
Aufbewahrung in Django der Boolean-Zustände mit Hilfe der Bitmasken
Posted by Alrond | Tags: Django :
Für die Aufbewahrung der Zustände der Elementen werden manchmal die Bitmasken verwendet. Zum Beispiel, als Zustände - gelesener/ungelesener Kommentar zu einem Artikel für einzelnen Benutzer. Obwohl es für diesen konkreten Fall besser wäre, die Uhrzeit/das Datum des letzten Besuchs eines Artikels aufzubewahren, hier können aber auch andere Aufgaben aufkommen, in denen man sich die binären Angaben für die Elemente merken muss, die kein Datum enthalten.
Man kann die M2M-Verbindung zwischen einem User und Objekt verwenden. Ein großer Nachteil ist aber wesentliche Ressourcen für Index und die Einträgeanzahl, wenn es viele Benutzer und Beobachtungsobjekte gibt. Hier ist es sinnvoll die Bitmasken zu verwenden, sie haben keinen solchen Nachteil.
Man kann die M2M-Verbindung zwischen einem User und Objekt verwenden. Ein großer Nachteil ist aber wesentliche Ressourcen für Index und die Einträgeanzahl, wenn es viele Benutzer und Beobachtungsobjekte gibt. Hier ist es sinnvoll die Bitmasken zu verwenden, sie haben keinen solchen Nachteil.
Sat 23 Feb 2008
Jared Kuolt hat den StaticGenerator für Django - ein Cache-Script geschafft. Es ist kompakt und einfach zu bedienen. Das Skript aber und die von Jared gezeigte nginx-Konfiguration haben ein paar Nachteile:
1) aktuell nur für die Websites ohne Registrierung;
2) geeignet für die Arbeit mit nur einfachen Links;
3) Generierung ist nur bei der Veränderung/Ergänzung des Kontents und/oder der Kommentare.
Ich habe dies korrigiert, noch etwas zugefügt, daraus ist StaticGenerator Pro gekommen.
1) aktuell nur für die Websites ohne Registrierung;
2) geeignet für die Arbeit mit nur einfachen Links;
3) Generierung ist nur bei der Veränderung/Ergänzung des Kontents und/oder der Kommentare.
Ich habe dies korrigiert, noch etwas zugefügt, daraus ist StaticGenerator Pro gekommen.
Sun 10 Feb 2008
Ein kleiner Artikel darüber, wie kann man auf die Daten direkt, ohne Anfrage zum Web Server, zugreifen z.B. für das Bekommen und Aktualisierung der Daten per cron.
English
Deutsch
(6 votes, average: 4.3 out of 5)