The DNS servers have IP addresses 8.8.8.8 and 8.8.4.4 (networks were bought from Level3).
Thanks to anycast technology the servers are available from different data centers simultaneously.
Google has got a lot of data centers around the world, but the DNS servers are located in some of these.

There is the list of data centers with DNS servers:

(more...)

15 Votes | Average: 4.1 out of 515 Votes | Average: 4.1 out of 515 Votes | Average: 4.1 out of 515 Votes | Average: 4.1 out of 515 Votes | Average: 4.1 out of 5 (15 votes, average: 4.1 out of 5)
Loading ... Loading ...
There is the table of the largest internet exchange points, that publish their statistic.

(more...)

12 Votes | Average: 4.5 out of 512 Votes | Average: 4.5 out of 512 Votes | Average: 4.5 out of 512 Votes | Average: 4.5 out of 512 Votes | Average: 4.5 out of 5 (12 votes, average: 4.5 out of 5)
Loading ... Loading ...
Until now, I didn't find the time to write, because I was working on my project. Yesterday, it was finally started!

Our project WIPmania provides a number of free products and services based on WorldIP geolocation database: so there are database itself, API for developers and Firefox plugin that displays up-to-date information about geographic location of a Web server you are currently visiting.

I didn't like other databases of IP addresses because of quality and price, so I have decided to create my own.
Price. I know two free databases, but they both provide whois data, that means not real location of the network itself, but the location of the network owner. WIPmania's main feature is just the emphasis on the real geographic location of network, this information is much more accurate.
As far as quality is concerned, even the industry giants use the whois data, without paying attention to their correctness (or, more precisely, its absence).

(more...)

5 Votes | Average: 4.6 out of 55 Votes | Average: 4.6 out of 55 Votes | Average: 4.6 out of 55 Votes | Average: 4.6 out of 55 Votes | Average: 4.6 out of 5 (5 votes, average: 4.6 out of 5)
Loading ... Loading ...
Into trunk merged queryset-refactor branch, that makes it easy to inherit django-models. It has been known to all. But inheritance is not the only alternative, it can be also used Monkey patching.
The main idea is that Monkey patching also lets you add not only the fields, but also the functions.
For example, so will be added in the model User the field OpenID, and the additional function, that returns the nickname, if there is no name
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)
The main benefits of the method:
additional tables are not created
in the work with the model will be used standard instruments of django

14 Votes | Average: 4.1 out of 514 Votes | Average: 4.1 out of 514 Votes | Average: 4.1 out of 514 Votes | Average: 4.1 out of 514 Votes | Average: 4.1 out of 5 (14 votes, average: 4.1 out of 5)
Loading ... Loading ...
For the storage of the element state will be sometimes used the bitmasks. For example, as state - read/unread comment to article for each user. Although it would be better for this case, to save the time of the last view of the entry, here can arise also other tasks, in which must be remembered the binary data for elements, that don't include the timefield.

You can use the M2M-connection between a user and object. But the drawback is essential resources for index and the number of entries, if there are many users and objects. Here it would make sense to use the bit mask, without this shortcoming.

(more...)

7 Votes | Average: 4.4 out of 57 Votes | Average: 4.4 out of 57 Votes | Average: 4.4 out of 57 Votes | Average: 4.4 out of 57 Votes | Average: 4.4 out of 5 (7 votes, average: 4.4 out of 5)
Loading ... Loading ...

1 ... 4

Powered by Django.