Category: Uncategorized

Do Not Use a.k.a Centaurus Trading to buy Kruger Rands

TLDR; is no longer a member of Rand Refinery, their membership has been suspended. Take a look at all rand refinery registered dealers and make sure to only buy from people on this list

Investing in gold you can actually hold can be a very prudent investment espescially when global debt continues to rise and money is being created through this debt. However buying real gold that you can hold is the only way to be sure that you actually own gold. Merely buying gold shares or a Gold ETF will mean nothing in a global financial collapse. It is important to read the fine print of the contracts if you do prefer paper gold.

Nonetheless getting actual Kruger Rands can be tough because they are of high value and with high value comes risk. Certainly there will be a scammer for every legitimate coin dealer.

I had dealt with Centuarus Trading by buying through their website before and didn’t have much of an issue except that the order did take quite long to be fulfilled. This was in mid 2017. I had checked and they were a registered dealer.

A month ago I made another purchase, however this time it took 2 weeks without contact. I had to call the owner of Centaurus and ask him what was going on and he gave me the run around.

I then called Rand Refinery and was told that their membership was being reviewed after I noticed they were no longer on the registered coin dealers list. The next week I called Rand Refinery again and they told me that management had decided to suspend their account and I was to ask for a refund.

I asked for a refund and again a bit of a run around. It was not processed immediately I was told to wait 48 hours and then again for the following day.

The whole ordeal took 28 daysf from the day I EFT’ed into their account until I received the refund. Unfortunately it has left a bitter taste in my mouth and a dent in my growth prospects as Gold has rallied about R500 since the time of purchase.

When you are dealing with relatively large transactions it is important that everyone feels safe and secure but in this case I was worried by the shady activity and that it could be a scam.

At the end of the day it all worked out ok but I want to warn other people to avoid dealing with the following companies when it comes to Kruger Rands (Gold Bullion):

  • Centaurus Trading
  • MetalNexus

Also always ensure you test the authneticity of KrugerRands using the methods descrobe in the Rand Refinery Testing Guide.

Lets talk about Postgres…

Postgres queries are CaSeSensitivE unlike in MySQL. So when a simple Model.objects.get(field='hello') would get the record. In postgres you would need to use field__iexact='hello'

In fact,unique doesn’t work was different cases with standard postgres. That is why django has the CIText Mixin and postgres has the citext extension

Unfortunately this won’t help for a unique_together field. The case sensitivity will still come into play.

So you can make the field lowercase by overriding the model’s save method:

    def save(self, **kwargs):
        '''Override save to enforce project name is lowercase''' =

Nope you don’t need to do the above. Just ensure the field is a CICharField

Ran into another problem:

crowdminder=# create extension citext;
ERROR:  extension "citext" already exists

So citext is already there but when running a django migration I get:

django.db.utils.ProgrammingError: type "citext" does not exist
LINE 1: ...llink" ("id" serial NOT NULL PRIMARY KEY, "email" citext NUL...

FFFFFFFFFFFuck you postgres

This is flippen weird.

So I go into psql and raise hell:

drop extension citext cascade;

Then the migrate works. It’s crazy. If this shit happens on production, I will be pissed at pg.


Functional Tests failing on Jenkins but not on local computer

Ever struggled with a test failing on jenkins using xvfb, well there are a few things you can do to ensure that both browsers work.

Element Not Found

Sometimes there is an ElementNotFound error on the server and not on your local. Usually this is because selenium cannot see the element. It is hidden.

Usually this happens when both screens you test on are not the same size. So you want to ensure that both screens are the same size.

Solution Maintaining Consistency

Set the Window Size

In your setUp for the tests, ensure you resize the browser screen to a single size.

self.browser = webdriver.Firefox()
self.browser.set_window_size(1280, 800)

Set XVFB Screen size same as local

Set the screen size to the same as your local