Basics for designing your Database Structure

Over the next few days I will be publishing a few tutorials, covering the basics of designing your database.  I will cover both Django Model design and manually creating Database using phpmyadmin for MySQL and some of the differences between the MySQL storage engines – InnoDB & MyISAM.

Expected tutorials (I will link to these once they are running)

Deploying a standalone DNS Server using PowerDNS

In the next few weeks I will be deploying a new DNS server, standalone, with a custom control panel.

It is using PowerDNS.  The panel is written in PHP and located on the webserver, not the new DNS box.  The only non-DNS service I am running is MySQL, this is where PowerDNS gets its zones from.

I have have started work on coding the panel to also support slave DNS servers, however not using “notify” built into DNS servers, rather using the panel to create Master & Alias servers.  This just replicates the data across more than one server.  Much simpler to setup and all of the software exists in standard debian repositories (I think, if not I will also be adding details on adding new ones to the list)

Please do be aware though, I will not necessarily be releasing all of the source code for this, however there will be tutorials on writing it yourself, as well as a few scripts & commands to run to get your current BIND based zone files into the MySQL database of your new setup.

Facebook Connect

Recently I started writing facebook connect, from scratch, into one of the sites I’m working on.  Its actually a very easy process.  The (new?) javascript library is very good, setting cookies for authentication etc.

After actually having authenticated myself within my own site (facebook side) there is still quite a lot to do.

  • Creating / Updating accounts  – Uses the REST api.  I’ve got the account details, just need to use them
  • Authenticating the user automatically using the standard Django auth.
  • Removing accounts (or something if people remove my app from their list
  • A cron to update the accounts every 24 hours, facebook caching requirements

A few side things to still be done (maybe) wall posts, friend invites and I’m slightly tempted to use the facebook comments system, however…I am not entirely sure of the benefit of doing that rather than creating my own (which I have elsewhere) or using the standard Django comments framework.

This facebook connect stuff will also be part of the tutorials in future as well.

Free icons from FatCow

Nothing to do with me, just really worth a mention.

I’ve been a fan of famfamfam icons for a while, along with a set of silk-inspired icons that just add a few more to the set.  Well today I find FatCow icons.  I would say the new icons are heavily inspired…. The nice thing though, these are also available in 32×32, not just 16×16. Sorry, but 16 isnt always enough.

Enjoy.

Server Issue, made worse by spam

Well, I’d like to apologise for current outages across many of my sites. Having some serious server performance issues. As the problem seemed to be getting resolved, another website of mine is being attacked by spam. Over 50 comments couple of minutes.

PHP & Django FCGI processes are not able to spawn, if its there, the site might work…slowly that is. I expect everything to be completely sorted over the next few hours. When everything starts working normally, I have a few posts to make across some of the other sites. Updates when I can.

Update: As the server issue slowly sorts, the rate of spam increases.  Fun times.  The server would normally handle the spam issue without any hit to the servers performance. (Its not really that many requests under normal conditions)

Update: All sorted.  Apparently the issue was caused by another VPS having some serious disk access to the shared SAN.  I can accept that causes problems, however, I’m surprised that there is no monitoring in place for this sort of thing.

Dansette