Begg Digital logo

Begg Digital your web application development and hosting partner, freeing you to focus on your customers.

If you have a great idea for a website, we can help by quickly developing the application and hosting on our cloud platform. We let you focus on what you want from the site, developing your business, and doing what you do best.

We build upon the great software from the wider Python and Open Source communities. To contribute back Begg Digital has developed and hosts some free tools.

If you have any questions send an email to Begg Digital.

News and Comments

Let's Encrypt - lee in Lee's Blog at March 15, 2016, 8 a.m.

Security and privacy on the internet is generally achieved using public key cryptography, and SSL or TLS. Getting a public key (also called a certificate) signed by a trusted source has been a fairly expensive exercise for small company, hobbyists, and open source projects. More recently, public knowledge of mass internet servalience has pushed for more security of web traffic (in particular). 

Enter Let's Encrypt. It is a certificate authority that signs certificates for free, making secure websites much more widely available. As part of keeping it free and in a way to reduce abuse, the certificates issued are only valid for a short time, currently 3 months. To help manage the certificates and simplify the validation of the domain name they apply to, let's encrypt has written software that (mostly) automates the process. 

I now have trusted certificates for this website and ReqFileCheck. It was quite easy. 

Django Roadmap - lee in Lee's Blog at Feb. 16, 2016, 6 a.m.

I haven't been very good at keeping up with blogging. I hope to do better this year.

In June last year (2015), the Django project released their reoadmap of development for the next couple of years. It includes details such as when the next releases are due and the new versioning scheme with clearer long term support (LTS) version numbers. One of the most surprising things to me was the plan to not support Python 2 after version 1.11 (released about April 2017). It sends such a clear message about the future of Python. The basis for that descision is that 1.11 will be the first Django LTS version that support will finish after that of Python 2.7.

It's great to see such a clear and useful roadmap, helped by the fact that there is a clear version for the future of Django.

Py3progress updated - lee in Lee's Blog at March 11, 2015, 6 a.m.

Another year down!

I've updated the py3progress site with the whole of 2014, and what we have so far in 2015. I'll post a review of the last year like I have before later.

New design and new URL - lee in Lee's Blog at Oct. 1, 2014, 8 a.m.

So after thinking about it, I have purchased a new domain, There have been many, many new top level domains launched recently.

I've also taken the opportunity to refresh the Begg Digital website as well. There is now a link to the various tools I've created to help the Python Community, and there is some more pages to come soon too. The underlying code got a significant upgrade as well (there is a saying about a builder's house...)

Hopefully there will be some more news soon.

Py3progress updated and 2013 review - lee in Lee's Blog at Feb. 24, 2014, 8 a.m.

I have updated the py3progress site. I really should automate it sometime, since the last update was in September.

Since the whole of 2013 is now up, I think we should review what happened.

2013 in review

So the first thing that jumps out at me is there is less red and more green. That's great! Concretely, the percentage of the top 200 that supports Python 3 has gone from 51% (103) to 69% (138), and it's up another 5% in the first two months of 2014.

The oldly consistent period in the middle of the year was when the mirror team changed how that worked PyPI changed to providing downloads via a CDN (Content Delivery Network) [UPDATE: 2014-04-11] and the stats took a week or so to be updated. In some ways, the data after that point might not be as accurate to the actual popularity of the packages, but we are only really worried about the indictive relative popularity and the data should be good enough.

Not long after, the ssl module races up from outside the top 200 to in the top 10. It's clearly visible as it is in Python 3 and therefore in light blue. I'm not sure what has driven it's increase, perhaps a popular package now depends on it?

About 5 projects changed to python 2 only during the year. On the whole they have lost popularity. Some even dropped out of the top 200.

I note from the python3wos page that December 2013 marked 5 years since Python 3.0 was first released. Python 3.3, which has a few features that support added backward compatibility, was released September 2012. Python 3.4 is currently at the release cadidate stage.

Current state

So looking at the Python3 Wall of Superpowers today, 149 of the top 200 downloads support Python 3. Let's look at some of the the one's that aren't.

Boto is the highest ranked non-python 3 package at 3rd. It is an library for interacting with AWS services. Python-cloudfiles depends on this and is further down the list.

Paste (18th), the web framework, is next. It hasn't been updated since 2010.

Paramiko (22nd) is a SSH library, which from the github issue appears to be under active porting. Paramiko is something I use in multiple ways. One is Farbic, a remote execution tool used for deployment and automation, which is 37th and will be ported once paramiko is ported.

Just above Farbic at 35th is the MySQL-python library. This also appears to be not too far away from having a working python3 version.

The first python 2 only package is meld3 (56th), a templating library. The second is more important to me, Twisted, at 76th. Twisted is an asynchronous networking frameork and it's used by other packages on the list, such as carbon (52nd) and graphite-web (53rd). Unusally, the python 2 only tag has a slightly different to the Twisted project - they have an active project to port to Python 3, it's just a really, really big job.

Why supporting Python 3 matters

Python 3 makes a significant improvement, mostly removing old wrinkles and being clearer about bytestring/unicode datatypes. The transition is ongoing (like IPv6), and a good portion of the libraries people use will need to support Python 3 before a bulk of developers will start developing with Python 3 (even though it's technically better). I'm looking at what packages I use and hope to soon start using Python 3 for some things.

ReqFile Check website - lee in Lee's Blog at Aug. 10, 2013, 4 p.m.

One of the issues developing in Python is keeping a track of security updates of dependencies, such as libraries. While I could subsrcibe to every mailing list and check all the websites regularly, that is a lot of work. 

Most packages in the Python environment are released on PyPI, also known as the Cheese Shop. This site lists over 33,000 packages. Handily, PyPI provides a API to query what packages are available and what versions of the packages are there. It doesn't, however, let you know when a package important to you it updated.

So I created ReqFile Check (warning, self-signed certificate). I created this website to track what package I'm using and send me an email alert when one is updated. Today it helpfully told me there was an update to South, and checking the website for South shows that it fixes a bug I had encounted.

Login is with Mozilla Persona, just like MoonBizGame. It fits this really well as we can use the email address the user logs in as to send the alert emails.

The other Python Development support site I run py3progress gets updated occasionally, about once a month. I announce updates on Twitter, so follow @BeggDigital for updates.


Classie launched - lee in Lee's Blog at May 12, 2013, 8 p.m.

Begg Digital is proud to annouce that Classie has launched.

Classie ( is a dance studio management web application. It makes taking attendance simple and saves money sending notcies. The app is designed to work on mobile phones, tablets and desktop browsers so it can be used anywhere, avoiding pieces of paper and entering data later.

Begg Digital manages the hosting for Classie. Lee, owner of Begg Digital, is also a founder of Classie and the primary developer.

International Space Apps Challenge 2013 - lee in Lee's Blog at April 21, 2013, 10:10 p.m.

This weekend I took part in the International Space App Challenge. It is an event (not too dissimilar from Startup Weekend) where teams come together to solve challeges relating to space. the challenge range from hardware to software and visualisation and chicken farms to Mars.

I undertook the bootstrapping lunar industry challenge, also known as #Moonville for being a game for planning how to get private industry on the moon. I wasn't able to attract a team, but made a reasonable start.

MoonBizGame is the web-based game I created. It is a turn based game and highly compressed timelines. Currently, you can login with Persona, create your enterprise and buy launches into space. The SSL certificate is self-signed so you will get a warning, but the game is available at

I mentioned above that the site uses Persona to login. This is a technology created by Mozilla so that people don't need to create a username and password for every site they use. The Django implementation works well, even in localhost debugging. I look forward to using it on more sites in the future.

Python 3 Progress - lee in Lee's Blog at March 7, 2013, 8 p.m.

Over the weekend I published Py3 Progress site. I had been meaning to make the data available and now finally I have. It didn't take much.

The Py3 Progress site has a "waterfall" plot of the Python 3 port status of the top 200 downloads from the Python Package Index. The raw data was downloaded from the Python 3 Wall of Superpowers every day, and then acculated into the waterfall plots.

There are some interesting trends in the data. About half way down the 2012 plot (August onwards), you can see where Django first reported that it was Python 3 compatible - it's in the sixth column. I haven't tried it yet. The purple lines are projects that say that will not be ported to Python 3 in the near future (or ever) and they are slowly trending to the right (down in ranking). Among those projects is Twisted, which has an active py3 porting branch. A couple of weeks ago a couple more projects marked themselves as not porting. The light green/blue lines also trend right. This are the packages which are now included in Python 3, and in some cases Python 2.7 and even 2.6. Since people don't need to download the files to use the package, the are slowly falling in rankings as well. The best news is that the Python 3 compatible packages shown in green are generally trending left and the not yet ported packages in red are generally trending right (or converting).

There are a lot of Django-based packages in the top 200 (approximately 11 packages). Since Django 1.5 was released a couple of weeks ago and it supports Python 3, I expect that most of those package will also port fairly quickly. Some already have.

Open and Free Internet - lee in Lee's Blog at Jan. 31, 2013, 8 a.m.

The last week has been an interesting nexus of Open and Free.

On Saturday I attended the Firefox OS App day in Wellington. I had heard about Firefox OS some time ago under its project name Boot2Geeko (b2g). At the time I had thought that it was an intriguing idea, but wouldn't be very powerful. I was certainly wrong. Firefox OS is fairly mature and looking like it will be very powerful. Check out for an idea where they are heading (for example WebUSB!) It appeared to work well on the developer phones (re-flashed Android phones, the same Linux kernel is used).

All the applications on Firefox OS are web applications. In particular, they are Open Web Apps, using HTML5, CSS and Javascript. Even the phone dialer is an HTML5/JS app! Mozilla showed off a framework for building apps called mortar that takes care of the basic UI consistent with the standard apps, but you could use any html5/css/js tools or frameworks. Unless you use some of the newer (and higher security required) APIs, the apps also work in a normal web browser.

I wasn't able to stick around what people developed, but it was very interesting.

Last night I watched the live stream of Sir Tim Berners-Lee, the inventor of the World Wide Web, giving a public lecture in Wellington (I missed out on a ticket) on "The Open Internet and World Wide Web". He covered the many forms of openness and freedom, including open standards, open source software, open access, open data, and open Internet. One key point from the lecture was that native apps (on IOS or Android, for example) take you off the Web, and therefore away from the core of social discourse. This is significant and currently increasingly happening. I will tweet a link when the lecture is available to view online.

These events dovetail nicely and fits with my general strategy of focusing on web apps that work nicely on phones, tablets, and computers.

First Post - lee in Lee's Blog at Dec. 2, 2012, 7:12 p.m.

I've updated this site over the last few weeks to help manage it going forward.

The key piece is this blog, which I hope to update somewhat frequently. I haven't enabled comments, so reply by twitter or email.