Begg Digital is a business focusing on developing, deploying and operating
highly scalable web applications.
If you have a great idea for a website, we can help by quickly
developing the site and hosting it with no hassle. We let you
focus on what you want from the site, developing your business, and doing what you do
If you have any questions send an email to Begg Digital.
News and Comments
By Lee Begg 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 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.
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.
By Lee Begg 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.
By Lee Begg in Lee's Blog at May 12, 2013, 8 p.m.
Begg Digital is proud to annouce that Classie has launched.
Classie (www.getclassie.com) 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.
By Lee Begg 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 https://moonbizgame.beggdigital.com/
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.
By Lee Begg 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.
By Lee Begg 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 arewemobileyet.com 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).
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.
By Lee Begg 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.