FLOSS Project Planets

Python Insider: Python 3.5.2 and Python 3.4.5 are now available

Planet Python - Mon, 2016-06-27 00:33
Python 3.5.2 and Python 3.4.5 are now available for download.

You can download Python 3.5.2 here, and you can download Python 3.4.5 here.
Categories: FLOSS Project Planets

Paul Tagliamonte: Hello, Sense!

Planet Debian - Sun, 2016-06-26 21:42

A while back, I saw a Kickstarter for one of the most well designed and pretty sleep trackers on the market. I fell in love with it, and it has stuck with me since.

A few months ago, I finally got my hands on one and started to track my data. Naturally, I now want to store this new data with the rest of the data I have on myself in my own databases.

I went in search of an API, but I found that the Sense API hasn't been published yet, and is being worked on by the team. Here's hoping it'll land soon!

After some subdomain guessing, I hit on api.hello.is. So, naturally, I went to take a quick look at their Android app and network traffic, lo and behold, there was a pretty nicely designed API.

This API is clearly an internal API, and as such, it's something that should not be considered stable. However, I'm OK with a fragile API, so I've published a quick and dirty API wrapper for the Sense API to my GitHub..

I've published it because I've found it useful, but I can't promise the world, (since I'm not a member of the Sense team at Hello!), so here are a few ground rules of this wrapper:

  • I make no claims to the stability or completeness.
  • I have no documentation or assurances.
  • I will not provide the client secret and ID. You'll have to find them on your own.
  • This may stop working without any notice, and there may even be really nasty bugs that result in your alarm going off at 4 AM.
  • Send PRs! This is a side-project for me.

This module is currently Python 3 only. If someone really needs Python 2 support, I'm open to minimally invasive patches to the codebase using six to support Python 2.7.

Working with the API:

First, let's go ahead and log in using python -m sense.

$ python -m sense Sense OAuth Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Sense OAuth Client Secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Sense email: paultag@gmail.com Sense password: Attempting to log into Sense's API Success! Attempting to query the Sense API The humidity is **just right**. The air quality is **just right**. The light level is **just right**. It's **pretty hot** in here. The noise level is **just right**. Success!

Now, let's see if we can pull up information on my Sense:

>>> from sense import Sense >>> sense = Sense() >>> sense.devices() {'senses': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '11a1', 'last_updated': 1466991060000, 'state': 'NORMAL', 'wifi_info': {'rssi': 0, 'ssid': 'Pretty Fly for a WiFi (2.4 GhZ)', 'condition': 'GOOD', 'last_updated': 1462927722000}, 'color': 'BLACK'}], 'pills': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '2', 'last_updated': 1466990339000, 'battery_level': 87, 'color': 'BLUE', 'state': 'NORMAL'}]}

Neat! Pretty cool. Look, you can even see my WiFi AP! Let's try some more and pull some trends out.

>>> values = [x.get("value") for x in sense.room_sensors()["humidity"]][:10] >>> min(values) 45.73904 >>> max(values) 45.985928 >>>

I plan to keep maintaining it as long as it's needed, so I welcome co-maintainers, and I'd love to see what people build with it! So far, I'm using it to dump my room data into InfluxDB, pulling information on my room into Grafana. Hopefully more to come!

Happy hacking!

Categories: FLOSS Project Planets

Steinar H. Gunderson: Nageru 1.3.0 released

Planet Debian - Sun, 2016-06-26 18:00

I've just released version 1.3.0 of Nageru, my live software video mixer.

Things have been a bit quiet on the Nageru front recently, for two reasons: First, I've been busy with moving (from Switzerland to Norway) and associated job change (from Google to MySQL/Oracle). Things are going well, but these kinds of changes tend to take, well, time and energy.

Second, the highlight of Nageru 1.3.0 is encoding of H.264 streams meant for end users (using x264), not just the Quick Sync Video streams from earlier versions, which work more as a near-lossless intermediate format meant for transcoding to something else later. Like with most things video, hitting such features really hard (I've been doing literally weeks of continuous stream testing) tends to expose weaknesses in upstream software.

In particular, I wanted x264 speed control, where the quality is tuned up and down live as the content dictates. This is mainly because the content I want to stream this summer (demoscene competitions) varies from the very simple to downright ridiculously complex (as you can see, YouTube just basically gives up and creates gray blocks). If you have only one static quality setting, you will have the choice between something that looks like crap for everything, and one that drops frames like crazy (or, if your encoding software isn't all that, like e.g. using ffmpeg(1) directly, just gets behind and all your clients' streams just stop) when the tricky stuff comes. There was an unofficial patch for speed control, but it was buggy, not suitable for today's hardware and not kept at all up to date with modern x264 versions. So to get speed control, I had to work that patch pretty heavily (including making it so that it could work in Nageru directly instead of requiring a patched x264)… and then it exposed a bug in x264 proper that would cause corruption when changing between some presets, and I couldn't release 1.3.0 before that fix had at least hit git.

Similarly, debugging this exposed an issue with how I did streaming with ffmpeg and the MP4 mux (which you need to be able to stream H.264 directly to HTML5 <video> without any funny and latency-inducing segmenting business); to know where keyframes started, I needed to flush the mux before each one, but this messes up interleaving, and if frames were ever dropped right in front of a keyframe (which they would on the most difficult content, even at speed control's fastest presets!), the “duration” field of the frame would be wrong, causing the timestamps to be wrong and even having pts < dts in some cases. (VLC has to deal with flushing in exactly the same way, and thus would have exactly the same issue, although VLC generally doesn't transcode variable-framerate content so well to begin with, so the heuristics would be more likely to work. Incidentally, I wrote the VLC code for this flushing back in the day, to be able to stream WebM for some Debconf.) I cannot take credit for the ffmpeg/libav fixes (that was all done by Martin Storsjö), but again, Nageru had to wait for the new API they introduce (that just signals to the application when a keyframe is about to begin, removing the need for flushing) to get into git mainline. Hopefully, both fixes will get into releases soon-ish and from there one make their way into stretch.

Apart from that, there's a bunch of fixes as always. I'm still occasionally (about once every two weeks of streaming or so) hitting what I believe is a bug in NVIDIA's proprietary OpenGL drivers, but it's nearly impossible to debug without some serious help from them, and they haven't been responding to my inquiries. Every two weeks means that you could be hitting it in a weekend's worth of streaming, so it would be nice to get it fixed, but it also means it's really really hard to make a reproducible test case. :-) But the fact that this is currently the worst stability bug (and that you can work around it by using e.g. Intel's drivers) also shows that Nageru is pretty stable these days.

Categories: FLOSS Project Planets

Iustin Pop: Random things of the week - brexit and the pretzel

Planet Debian - Sun, 2016-06-26 15:59
Random things of the week

In no particular order (mostly).

Coming back from the US, it was easier dealing with the jet-lag this time; doing sports in the morning or at noon and eating light on the evening helps a lot.

The big thing of the week, that has everybody talking, is of course brexit. My thoughts, as written before on a facebook comment: Direct democracy doesn't really work if it's done once in a blue moon. Wikipedia says there have been thirteen referendums in UK since 1975, but most of them (10) on devolution issues in individual countries, and only three were UK-wide referendums (quoting from the above page): the first on membership of the European Economic Community in 1975, the second on adopting the Alternative vote system in parliamentary elections in 2011, and the third one is the current one. Which means that a referendum is done every 13 years or so.

At this frequency, people are not a) used to inform themselves on the actual issues, b) believing that your vote actually will change things, and most likely c) not taking the "direct-democracy" aspect seriously (thinking beyond the issue at hand and how will it play together with all the rest of the political decisions). The result is what we've seen, leave politicians already backpedalling on issues, and confusion that yes, leave votes actually counted.

My prognosis for what's going to happen:

  • one option, this gets magically undone, and there will be rejoicing at the barely avoided big damage (small damage already done).
  • otherwise, UK will lose significantly from the economy point of view, enough that they'll try being out of the EU officially but "in" the EU from the point of view of trade.
  • in any case, large external companies will be very wary of investing in production in UK (e.g. Japanese car manufacturers), and some will leave.
  • most of the 52% who voted leave will realise that this was a bad outcome, in around 5 years.
  • hopefully, politicians (both in the EU and in the UK) will try to pay more attention to inequality (here I'm optimistic).

We'll see what happens though. Reading comments on various websites still make me cringe at how small some people think: "independence" from the EU when the real issue is EU versus the other big blocks—US, China, in the future India; and "versus" not necessarily in a conflict sense, but simply as negotiating power, economic treaties, etc.

Back to more down-to-earth things: this week was quite a good week for me. Including commutes, my calendar turned out quite nice:

The downside was that most of those were short runs or bike sessions. My runs are now usually 6.5K, and I'll try to keep to that for a few weeks, in order to be sure that bone and ligaments have adjusted, and hopefully keep injuries away.

On the bike front, the only significant thing was that I did as well the Zwift Canyon Ultimate Pretzel Mission, on the last day of the contest (today): 73.5Km in total, 3h:27m. I've done 60K rides on Zwift before, so the first 60K were OK, but the last ~5K were really hard. Legs felt like logs of wood, I was only pushing very weak output by the end although I did hydrate and fuel up during the ride. But, I was proud of the fact that on the last sprint (about 2K before the end of the ride), I had ~34s, compared to my all-time best of 29.2s. Was not bad after ~3h20m of riding and 1300 virtual meters of ascent. Strava also tells me I got 31 PRs on various segments, but that's because I rode on some parts of Watopia that I never rode before (mostly the reverse ones).

Overall, stats for this week: ~160Km in total (virtual and real, biking and running), ~9 hours spent doing sports. Still much lower than the amount of time I was playing computer games, so it's a net win ☺

Have a nice start of the week everyone, and keep doing what moves you forward!

Categories: FLOSS Project Planets

Paul Wise: DebCamp16 day 3

Planet Debian - Sun, 2016-06-26 15:31

Review, approve chromium, gnome-terminal and radeontop screenshots. Disgusted to see the level of creativity GPL violators have. Words of encouragement on #debian-mentors. Pleased to see Tails reproducible builds funding by Mozilla. Point out build dates in versions leads to non-reproducible builds. Point out apt-file search to someone looking for a binary of kill. Review wiki RecentChanges. Alarmingly windy. Report important Debian bug #828215 against unattended-upgrades. Clean up some code in check-all-the-things and work on fixing Debian bug #826089. Wind glorious wind! Much clearer day, nice view of the mountain. More check-all-the-things code clean up and finish up fixing Debian bug #826089. Twinkling city lights and more wind. Final code polish during dinner/discussion. Wandering in the wind amongst the twinklies. Whitelisted one user in the wiki anti-spam system. Usual spam reporting.

Categories: FLOSS Project Planets

Brexit Is Not Happenning

Planet KDE - Sun, 2016-06-26 14:50

David Cameron is an astounding genius. Of course, you'd expect nothing less from an alumni of Eton and Oxford, but to see his genius in action in such a grand public scale makes it no less incredible.

This meme was doing the rounds on Facebook yesterday. But I beg to differ - this wasn't a rage-quit. This was a chess move so calculated and so devastating that the full extent of its consequences will take a long time to become apparent.

With his resignation, David Cameron ensured that the person who succeeds him is going to commit political suicide. And someone will have to succeed him, because someone will have to become the next Prime Minister of the United Kingdom. And that person will have to die. Whether or not that person is Boris Johnson remains to be seen.

Here's the deal. The referendum was set up to be advisory, not binding. The British Parliament is under no legal obligation to follow through on the results on the referendum, but if the government does not follow up, the entire premise of democracy falls apart. Therefore, Britain has to leave the EU, and to do that, someone will have to inform the European Commission by sending them a notice under Article 50 of the Lisbon Treaty. That someone was going to be David Cameron, until he decided to resign and let his successor do it.

On the face of it, that would be an honour for his pro-Leave successor. But of course, things aren't so simple:

  • If the successor follows through and invokes Article 50, Scotland and Northern Ireland breaks away and joins the EU. The United Kingdom is no longer united. A mountain of laws and regulations need to be torn up and new ones written in its place. The English economy collapses. The public quickly loses patience, and the blood is now on the successor's hands. His career is over, as is the United Kingdom as we know it.

  • If the successor does not follow through and fails to invoke Article 50, the premise of the democratic government falls apart. The governance of the UK is no longer democratic, and the entire establishment is a farce. The successor's career is over, as is probably the entire government's. It doesn't end there, however. The next person on the chair also finds himself in the same conundrum, as the next. Until the will of the British people change and they decide to stay - and make it known in another referendum - this cycle continues.

It appears I'm not alone in this theory. Someone commented exactly along these lines on a Guardian article, which is what led me to think twice - hey, I thought this line of thought was an effect of too much House of Cards, but it appears I might not be completely crazy after all - and take this out of my mind and put it to paper. Well, the Internet.

The next few months are going to be very interesting.

Categories: FLOSS Project Planets

My hot summer starts

Planet KDE - Sun, 2016-06-26 13:14

Hi again

It started being so much hot in Italy (too hot, to be clearer), and summer also started annoying me; the exam I have to do last tuesday has had a good result, and the next tuesday I will do another exam which I hate. These exam period, by the way, is full of contacts and hot.

As I said in the last post, we decided to write down every future project on meta; I wrote there 3 main projects, which one is already done, I can proudly say this. The other 2 are collaborations which have to be confirmed as well, but today I can say that one of them will be set in the next months: collaborating with an undergraduate student of engineering, we will write a course of fluyd dynamics.

I already wrote a fluyd dynamics course, which you can find in the macro text of mechanics, but it was a simplified course, for a first year student. So, the course we are going to write is a moredepth course for following years, which needs advantage calculus knowledge to be completely understood. This means that we will have two different versions of a courses, which is possible after the sprint we had in early May, and we have never tested it before: we created templates to allow this, another structure of the site but we still don’t have multiple versions on the site. So, this could be really a good test for us, to see the feedbacks from the students. Let’s see how it goes, we will start in late July or early August.

From my side it’s all. From the editing side, let me say that we are in calm and peace, studying hard for our exams, so we will work again in the next weeks.

If you want to read more about the participation we had at Wikimania @Esino Lario follow our facebook page.

Thank you, Daniele

Categories: FLOSS Project Planets

Michal &#268;iha&#345;: Troja bridge in Prague

Planet Debian - Sun, 2016-06-26 12:00

I think it's time to renew tradition of photography posts on this blog. I will start with pictures taken few weeks ago on Troja bridge, which is the newest bridge over the Vltava river in Prague.

Filed under: Debian English Photography | 0 comments

Categories: FLOSS Project Planets

Weekly Python Chat: List Comprehensions Workshop

Planet Python - Sun, 2016-06-26 12:00

When should you use list comprehensions?

When should you not use list comprehensions?

How do you make your list comprehensions readable?

How can you identify whether a code section might be translatable to a comprehension?

This event will be approximately 75 minutes long and will consist of:

  • list comprehensions review (please read read my blog post first)
  • readability tips
  • discussion about when to use (and not use) list comprehensions
  • exercises (we'll work through a couple as a group)
  • Q&A
Categories: FLOSS Project Planets

Wiki, what’s going on? (Part 6-WikiMania2016 Esino Lario)

Planet KDE - Sun, 2016-06-26 11:34


Take a little town of 700 souls. Take more than one thousand wikipedians from Wikipedia and its sister projects who are organized for the most important conference about themes such as free education, open software and textbooks and free knowledge. Ok, now put these two elements togheter: what do you get? WikiMania 2016, held in Esino Lario: the annual conference celebrating Wikipedia and its sister free knowledge projects with conferences, discussions, meetups, training and a hackathon.


Themes such as free education and open textbooks, which are fundamentals in our philosophys, were deepened in details: we had the possibility to meet different members from WikiEdu and WikiMedia communities and we talked about our project with them. It’s amazing to see that there are so many people willing to create strong projects to spread knowledge all around the world! Workshops, talks and discussions with members of these communities have made these days simply amazing!


We made great contacts with lot of contributors and found lot of people interested in what we are doing: stay tuned! Great news are coming very soon!





L'articolo Wiki, what’s going on? (Part 6-WikiMania2016 Esino Lario) sembra essere il primo su Blogs from WikiToLearn.

Categories: FLOSS Project Planets

Vasudev Kamath: Integrating Cython extension with setuptools and unit testing

Planet Debian - Sun, 2016-06-26 10:24

I was reviewing changes for indic-trans as part of GSoC 2016. The module is an improvisation for our original transliteration module which was doing its job by substitution.

This new module uses machine learning of some sort and utilizes Cython, numpy and scipy. Student had kept pre-compiled shared library in the git tree to make sure it builds and passes the test. But this was not correct way. I started looking at way to build these files and remove it from the code base.

There is a cython documentation for distutils but none for setuptools. Probably it is similar to other Python extension integration into setuptools, but this was first time for me so after a bit of searching and trial and error below is what I did.

We need to use Extensions class from setuptools and give it path to modules we want to build. In my case beamsearch and viterbi are 2 modules. So I added following lines to setup.py

from setuptools.extension import Extension from Cython.Build import cythonize extensions = [ Extension( "indictrans._decode.beamsearch", [ "indictrans/_decode/beamsearch.pyx" ], include_dirs=[numpy.get_include()] ), Extension( "indictrans._decode.viterbi", [ "indictrans/_decode/viterbi.pyx" ], include_dirs=[numpy.get_include()] ) ]

First argument to Extensions is the module name and second argument is a list of files to be used in building the module. The additional inculde_dirs argument is not normally necessary unless you are working in virtualenv. In my system the build used to work without this but it was failing in Travis CI, so added it to fix the CI builds. OTOH it did work without this on Circle CI.

Next is provide this extensions to ext_modules argument to setup as shown below

setup( setup_requires=['pbr'], pbr=True, ext_modules=cythonize(extensions) )

And for the reference here is full setup.py after modifications.

#!/usr/bin/env python from setuptools import setup from setuptools.extension import Extension from Cython.Build import cythonize import numpy extensions = [ Extension( "indictrans._decode.beamsearch", [ "indictrans/_decode/beamsearch.pyx" ], include_dirs=[numpy.get_include()] ), Extension( "indictrans._decode.viterbi", [ "indictrans/_decode/viterbi.pyx" ], include_dirs=[numpy.get_include()] ) ] setup( setup_requires=['pbr'], pbr=True, ext_modules=cythonize(extensions) )

So now we can build the extensions (shared library) using following command.

python setup.py build_ext

Another challenge I faced was missing extension when running test. We use pbr in above project and testrepository with subunit for running tests. Looks like it does not build extensions by default so I modified the Makefile to build the extension in place before running test. The travis target of my Makefile is as follows.

travis: [ ! -d .testrepository ] || \ find .testrepository -name "times.dbm*" -delete python setup.py build_ext -i python setup.py test --coverage \ --coverage-package-name=indictrans flake8 --max-complexity 10 indictrans

I had to build the extension in place using -i switch. This is because other wise the tests won't find the indictrans._decode.beamsearch and indictrans._decode.viterbi modules. What basically -i switch does is after building shared library symlinks it to the module directory, in ourcase indictrans._decode

The test for existence of .testrepository folder is over come this bug in testrepository which results in test failure when running tests using tox.

Categories: FLOSS Project Planets

Vardot: Most Popular Drupal University Websites in the Middle East

Planet Drupal - Sun, 2016-06-26 09:04
Case Studies Read time: 15 minutes

There are several interesting rankings of top government sites built with Drupal. However, Drupal is good not only for Ministries and NGOs - it is also a great choice for schools and universities. Harvard, Yale, MIT and many other of the most prominent schools worldwide choose Drupal as a CMS for their sites because of its scalability, flexibility and security.

Complete list of Drupal advantages

But what about the Middle East? Do Arab universities and schools realize the benefits that Drupal can give them or do they still use cheaper solutions? Only a deep dive into the knowledge pool of various universities’ websites can help us reach a conclusion. Thus, we made a detailed study into the same and prepared the list of 10 most popular Arabic educational Drupal websites according to Alexa global rank.

Being formatted in ascending order, the list contains the basic introduction about each university, its Drupal version, Alexa global rank and the general features of its website witnessed by a common visitor. Here are the top 10 universities located in Middle East.


10. Princess Sumaya University For Technology

Alexa Global Rank: 293,597

Drupal Version:  7.3x


Founded by the Royal Scientific Society in 1991, Princess Sumaya University for Technology is actually the most prominent Applied Research Center situated in Jordan. It is a non-governmental and non-profit university that offers Bachelor & Master programs in all the engineering disciplines. Apart from this, the university offers higher education programs in Business Management as well.

Princess Sumaya University for Technology consists of four schools; each school delivers quality education in its specialized discipline. This means Computer Science, Engineering, Business Management, and Research each have their own specialized school at the university.

The university website is a unique blend of creativity and technical capabilities. The design itself displays an excellent thought process utilized in its development. The usability, user experience and easy navigation are the features this website contains. The high definition pictures of the university kept in homepage slide add a feather to the cap of this user-friendly website.

A homepage in 5.97 MB size takes only 4 seconds to load shows its feature of speed friendly website. Rather than filling the homepage with so many elements, the most prominent features such as e-services, e-learning, media, video gallery, sitemap etc. have been given a highlighted space. All other informative links have their perfect position in the header and footer.


9. German Jordanian University

Alexa Global Rank: 276,566

Drupal Version:  7.3x


German Jordanian University, founded in 2005 in Mushaqqar, Jordan comes on 9th position among top 10 Universities in Middle East. The university was established with a motto of enhancing knowledge transfer between Jordan and Germany by blending together their best educational models.

Currently, the university is offering 20 undergraduate and graduate programs to approximately 5000 students in which female students are almost the half. The university has its own specific curriculum different from all the other Jordanian universities, because it has been developed in relevance to the German Applied Sciences model.      

Just like its unique curriculum and rich education methodologies, the Website of the German Jordanian University is also a unique one in its thought process. The best designed and the easiest usability makes it better than all the previous options. The homepage slide containing the real pictures of university students and campus displays everything you want to know about the university. The color theme, graphics and other technical elements are excellently utilized and thus, make it a user-friendly website.

The Homepage is 4.1 MB, but still takes only 3.34 seconds to load. Both the header and footer contain links that directly navigate you to the information you are looking for. Thus, the usability, user experience, and speed are better than your expectations. See the announcements slide below the university pictures. You are kept updated with all the latest announcements on the Homepage itself.


8. University of Bisha

Alexa Global Rank: 202,495

Drupal Version:  7.4x


The eighth position among top 10 universities in Middle East has proudly been secured by University of Bisha located in Saudi Arabia. Founded only a couple of years ago the university has achieved a worldwide recognition by offering quality higher education. Certain features such as quality education, modern infrastructure, students’ friendly campus especially for girls and latest educational & technical amenities are responsible for giving the best learning experience to students, here, at University of Bisha.

‘Simplicity dipped into soberness’ is the easiest phrase to describe its website in short. The homepage itself exhibits the uniqueness of thought process, utilized while developing the website. The very first positivity that hits a visitor is its multilingual accessibility. The website is accessible both in Arabic and English language making it easy for non-Arabic visitors to find the information they need.

Apart from this, the header is designed with a feature of easy navigation, especially for the students and faculty. Here the students and employees are given an easy navigation to the links they need as the information in these links each have its specific page. And in the footer every link has been individualized with a specific logo.  

When we look into the technical features of the website, we find it perfect here also. The homepage is made of 7.8 MB size that takes only 6.50 seconds to load making a speed-friendly. In a nutshell, the university website has all the features to recognize it as a user-friendly website.  


7. Gulf University for Science & Technology

Alexa Global Rank: 155,830

Drupal Version:  7


Founded in 2002, Gulf University of Science & Technology (GUST) commonly known as Gulf University is a private university located in West Mishref, Kuwait. It seems really surprising that a young University that celebrated its first commencement ceremony in June 2007 stands on the 7th position among the top 10 universities in Middle East.

Currently, Gulf University has been inculcating capable professionals in various technical and professional disciplines. Approximately 145 well-known academic faculty members from 31 different countries have been saturating their meticulous knowledge and skills to thousands of students.

The blue and white color combination of the website makes it catchy and attractive. The website has been developed in relevance to the usability and user experience. Though the heavy homepage of 2.4 MB slows down its speed as it takes 7.61 Seconds to load yet the easy navigation and smooth functioning makes a visitor forget the speed issue. And also, the website is available in English version only, it sometimes creates language problem for Arabic native speakers.

Simple but impressive exhibition of all the website elements and relevant links makes it a user friendly website. There is no hustle-bustle of content, sections, or links on the homepage. You will find only the required information on it. Thus, it can be called a cutting edge website that has the capacity to grab good reviews from the visitors.


6. Prince Sattam Bin Abdulaziz University

Alexa Global Rank: 38,831

Drupal Version:  8


Among top 10 universities in the Middle East, Prince Sattam Bin Abdulaziz University owns the proud position of being on the sixth rank. Formerly known as Prince Salman Bin Abdulaziz University or the University of Al-Kharj, Prince Sattam Bin Abdulaziz University was established in 2007 in the city of Al-Kharj, Saudi Arabia.

The current name of the university was adopted in the beginning of 2015. Currently, the university is delivering higher education to approx 30,000 students in 80 different programs. It is only the quality education that has brought various national and international accreditations for different programs.

The university has an excellently designed website that is built with the latest Drupal 8. It greatly speaks about the university, its features, academic programs, and guidelines for a new visitor. The header in the website contains everything in a nutshell. Whatever information is required related to administration, courses, jobs, research programs, and more, the header will provide a direct link to the same. Thus, the website features an easy navigation for a visitor.

Main reasons to migrate to Drupal 8

The homepage that acquires a size of 1.1 MB takes 4.2 seconds to load. It designates the website to be speed-friendly. The social media platforms of the university have been given a place at the right top. All the other useful links have been placed in the footer. The website, thus, provides a user-friendly experience as well. So, the overall experience of the website is very positive.


5. Majmaah University

Alexa Global Rank: 37,501

Drupal Version:  7.4x


Founded in 2009 in Al Majma'ah region, Majmaah University can be regarded as one of the youngest universities located in Saudi Arabia. Having a total number of 13 academic schools, the university has been established with a motto of expanding higher education around the region and providing quality education to the growing number of young graduates in the Middle East.

It is one of the only perfect utilization of educational resources and the unified efforts of management, faculty and students established just within 7 years; Majmaah University stands tall on the fifth rank among top 10 universities in the Middle East with Drupal website. Currently, the university offers diploma, bachelor, masters, and research programs in various disciplines.

The university website has also played a major role in bringing the university to its heights. The Website of Majmaah University is an outcome of rich creativity and professional capabilities. The beautiful layout of the website, the extraordinary color combination, and unique design concept is really a treat to the eyes when visited for the first time. The high definition picture on the homepage showing students from various streams brings an artistic touch.

In technical terms, the website is capable enough to provide an excellent experience to its users. A size of 1.5 MB takes only 1.28 seconds for the homepage to load. The header has all the sections and subsections with links that take the visitor directly on the page he/she wants. So the navigation feature of the website is just as a user likes. Thus, the website contains all the features of being speed-friendly and user-friendly.


4. King Khalid University

Alexa Global Rank: 30,282

Drupal Version:  7.4x


Being established in 1998 in Aseer region, KKU has evolved into a premier institution in Saudi Arabia just within a short span of time. The various factors such as modern infrastructure, latest educational amenities, a wide gamut of undergraduate, graduate and postgraduate programs, a large number of disciplines, meticulous faculty and much more have elevated the reputation of the university throughout the Middle East.

Recently, King Khalid University (KKU) has secured the 604 rank among top 700 universities in the world and also achieved a prominent position among the best universities in the Middle East. Inculcated from the merger of two schools, King Khalid University also enjoys the designation of the biggest academic institution saturating quality higher education to approx 72000 students.

The university website exhibits really a different design and thought process. The whole website designed on a white background looks so beautiful in the first look. The pictures have been utilized on the website just in accordance to the theme of the page.

The website’s homepage having a size of 3.0 Mb is overfilled with the informative links yet it only takes 5.36 seconds to load. And also, the visitors find it easy to operate due to its well designed header & footer. Thus, the website is sure to get good reviews from the visitors in relevance to the user experience.  


3. The University of Dammam

Alexa Global Rank: 26,233

Drupal Version:  7


The third rank among the top ten Middle East universities goes to the University of Dammam located at Dammam, Saudi Arabia. The university that was established in 1975 with two colleges – College of Medicine and College of Architecture has now expanded into 21 colleges in the Eastern province. From graduate to research programs, the University of Dammam is providing quality education to approx 45000 students. Currently, the University has been offering a broad spectrum of bachelor, masters, and research courses in Medicine, Engineering, Science and Management and Arts disciplines.

The university website has been developed and maintained meticulously. The very first advantage of the website is its rich content framework. Every section, every landing page contains a rich informative content. Secondly, the color combination of the website is really fantastic. The beautiful combination of blue, white and cream colors make it look more beautiful. And the multicolored main menu on homepage looks like a rainbow on a white sky. Thirdly, each page link is available on the homepage that makes the website navigation an easy task. The header and the footer have all the required links that make it easy to navigate to the required page.

The website homepage takes only 3.20 seconds to load due to its speed-friendly size of 585.6 KB. Therefore,, the website is not only easy to operate but provides a speedy navigation as well. Thus, the website provides a better user end experience.


2. The American University in Cairo

Alexa Global Rank: 22,309

Drupal Version:  7.4x


Being established in Egypt in 1919, The American University in Cairo was founded by Charles A. Watson. Though AUC was the first English-University in the Middle East, yet it was established with a motto of contributing to the intellectual, social and cultural growth of the Arab World. In the beginning, it was both a preparatory school and a university with only men allowed to get admission.

Since its inception, AUC went through various changes and advancements that shaped it into the 2nd most famous university in the Middle East. Currently, AUC is spread in 260 acres having 25 departments and institutes, and offering approximately 36 undergraduate, 44 masters, and two research programs.

When it comes to the AUC website, the very first thing that strikes in a visitor’s mind is that the university website is so simple and sober. A beautifully designed yet an easily accessible website that makes a visitor grab his/her required information by going directly to the specific link. Both the main menu navigation and the footer have all the required links to navigate on the specific page you require. You can also see all the social media symbols on the footer that will direct you on the social platforms of the university.

The website saturates a pleasing user end experience due to its perfect design, impressive landing pages, good speed, and easy navigation. The home page is so impressively designed that it attracts a visitor to explore more into it. The real pictures of the university add beauty to the website. And mainly the homepage that is of 1.0 MB takes only 2.11 seconds to load. Thus, in terms of speed and navigation, the website is really user-friendly.

Vardot Introduces the American University in Cairo's New Website


1. King Saud University

Alexa global rank: 6,098

Drupal version: 7.43


Established in 1957, King Saud University owns the pride of being not only the first but also the most famous University in Saudi Arabia. In 1953, Abdulaziz al Saud announced to establish the first higher education institution in Saudi Arabia to enhance the cultural and scientific knowledge in the country along with spreading Islamic faith among the coming generations. Subsequently, King Saud University was founded in Riyadh.

Today, the university has been accelerating higher education in all the streams such as Engineering, Medical Sciences, and Humanities and so on. Being a premier institution with 24 colleges, King Saud University has been ranked no. 1 in the Middle East. The greatest feature of the university is that it has separate colleges for girls just to initiate higher education among girls in a country where girls don’t enjoy much freedom in their social life.

The Website of King Saud University presents an actual display of the university itself. The very first feature of the university website is its compatibility in English language along with Arabic. It enables the visitors throughout the globe to find the information they require. Secondly, the website has been designed and executed in a way that stresses more on giving the detailed knowledge into everything rather than focusing on designs only. Thirdly, each informative topic on the website has a different page for it and is easily accessible for a visitor to find his/her relevant information.

If we talk about the user end experience, everything on the website such as design, speed, content, and information is capable enough to grab good reviews and a five-star rating from its visitors. The homepage size is only 1.3 MB that just consumes 3.50 seconds to load.  



As promised, we have presented a deep insight into every university’s basic information. Though all the information is just true as it is taken from reliable sources yet only the figures may differ sometimes according to the changing trends.

Although the most of these websites are relatively new, they have achieved great popularity and high rankings. On one hand their popularity depends on high academic level and number of students, but on the other hand Google doesn’t rank high websites that have problems with the code and are not SEO-optimized. The success of sites listed in this article is also achieved with their powerful CMS.

Drupal is the latest Content Management System in vogue these days. Having various versions, Drupal saturates the achievements for a website far above the expectations. And that’s the reason why most of the academic institutions or schools in the Middle East prefer Drupal distributions when building their websites.

If you have plans to build a site and achieve highest rankings, Drupal is the right fit for you. For assistance migrating to Drupal or building a modern website for your university, contact Vardot.

Tags:  Drupal Planet Higher-ed & Schools drupal 8 Title:  Most Popular Drupal University Websites in the Middle East
Categories: FLOSS Project Planets

[GSoC] KDev-Embedded, workflow integration

Planet KDE - Sun, 2016-06-26 08:45

After some work in the plugin development, now the project have a strong focus in a better integration with KDevelop workflow. Until now the Board Configuration window have some simple features to perform the upload process for beginner users, it's called by the embedded submenu in the KDevelop toolbar.

Welcome message Error message Success message

The problem is that the … Read the rest

Categories: FLOSS Project Planets

PyCon Australia: The 2016 Programme is here!

Planet Python - Sun, 2016-06-26 08:23

We are proud to unveil the 2016 Programme to you all. While still officially a draft, and exact timings are subject to change, the bulk of the Programme will remain as it is.

Spread across four rooms at the Melbourne Convention and Exhibition Centre, running from 9am to 6pm each day, there is a wealth of knowledge and support for you, whatever your background.

For your convenience, each day's details can be found below.

In related news, tickets have been selling steadily leading up to this point, after the initial burst. In previous years, many people have left registering until too late, and some unfortunately missed out. Don't leave it too late this time around!

  • Friday 12 August (Internet of Things, Education Summit, DjangoCon AU, and Science and Data)
  • Saturday 13 August
  • Sunday 14 August
  • Should you have submitted a proposal and are currently waitlisted, we will contact you shortly, as the final programme slots are locked in.

    Categories: FLOSS Project Planets

    Kevin Avignon: Tech questions 1-9 : LINQ questions

    Planet Debian - Sun, 2016-06-26 08:10
    Hey guys, This is a new series I will try to maintain to the best of my capabilities. I have this awesome blogger who happens to be also a Microsoft MVP called Iris Classon. After her first year of programming, she started to ask and get answers for what she’d call “stupid question”. Why would … Continue reading Tech questions 1-9 : LINQ questions →
    Categories: FLOSS Project Planets

    Vasudev Ram: A Pythonic ratio for pi (or, Py for pi :)

    Planet Python - Sun, 2016-06-26 06:07
    By Vasudev Ram


    Pi image attribution

    A Python built-in method can be used to find a ratio (of two integers) that equals the mathematical constant pi. [1]

    This is how:
    from __future__ import print_function
    dir(0.0) # or dir(float)
    gives (some lines truncated):
    '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__',
    'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
    from which we see that as_integer_ratio is a method of float objects. (Floats are objects, so they can have methods.) So:
    >>> import math

    >>> tup = math.pi.as_integer_ratio()
    >>> tup
    (884279719003555, 281474976710656)

    >>> tup[0] / tup[1]

    >>> print(sys.version)
    3.6.0a2 (v3.6.0a2:378893423552, Jun 14 2016, 01:21:40) [MSC v.1900 64 bit (AMD64
    I was using Python 3.6 above. If you do this in Python 2.7, the "/" causes integer division (when used with integers). So you have to multiply by a float to cause float division to happen:
    >>> print(sys.version)
    2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500 64 bit (AMD64)]

    >>> tup[0] / tup[1]
    >>> 1.0 * tup[0] / tup[1]
    [1] There are many Wikipedia topics related to pi.
    Also check out a few of my earlier math-related posts (including the one titled "Bhaskaracharya and the man who found zero" :)

    The second post in the series on the uses of randomness will be posted in a couple of days - sorry for the delay.

    - Vasudev Ram - Online Python training and consulting

    Signup to hear about my new courses and products.

    My Python posts     Subscribe to my blog by email

    My ActiveState recipes

    Share |

    Vasudev Ram
    Categories: FLOSS Project Planets

    Clint Adams: A local script for local people

    Planet Debian - Sun, 2016-06-26 06:05

    This isn't actually answering the question, but it's close. It's also horrible, so whoever adopts Enrico's script should also completely rewrite this or burn it along with the stack of pizza boxes and the grand piano.


    #!/bin/zsh set -e PATHS=$(tempfile) NEWKEYS=$(tempfile) NEWKEYRING=$(tempfile) FARTHEST_TEN=$(tempfile) trap "rm -f ${PATHS} ${NEWKEYS} ${NEWKEYRING} ${FARTHEST_TEN}" EXIT keyring=${1:-ksp-dc16.gpg} myfpr=${2:-2100A32C46F895AF3A08783AF6D3495BB0AE9A02} #keyserver=${3:-http://pool.sks-keyservers.net:11371/} # this doesn't handle hokey fetch failures #(for fpr in $(hkt list --keyring ${keyring} --output-format JSON | jq '.[].publickey.fpr') #do # hokey fetch --keyserver "${keyserver}" --validation-method MatchPrimaryKeyFingerprint "${(Q)fpr}" #done) >${NEWKEYS} # #gpg2 --no-default-keyring --keyring ${NEWKEYRING} --import ${NEWKEYS} cp "${keyring}" "${NEWKEYRING}" gpg2 --no-default-keyring --keyring ${NEWKEYRING} --refresh hkt findpaths --keyring ${NEWKEYRING} '' '' '' > ${PATHS} id=$(awk -F, "/${myfpr})\$/ {sub(/\(/,BLANKY,\$1);print \$1;}" ${PATHS}) grep -e ",\[${id}," -e ",${id}\]" ${PATHS} | sort -n | tail -n 10 > ${FARTHEST_TEN} targetids=(${(f)"${$((sed 's/^.*\[//;s/,.*$//;' ${FARTHEST_TEN}; sed 's/\])$//;s/.*,//;' ${FARTHEST_TEN}) | sort -n -u | grep -v "^${id}$")}"}) targetfprs=($(for i in ${targetids}; do awk -F, "/\(${i},[^[]/ {sub(/\)/,BLANKY,\$2); print \$2}" ${PATHS}; done)) gpg2 --no-default-keyring --keyring ${NEWKEYRING} --list-keys ${targetfprs}


    pub rsa4096/0x664F1238AA8F138A 2015-07-14 [SC] Key fingerprint = 3575 0B8F B6EF 95FF 16B8 EBC0 664F 1238 AA8F 138A uid [ unknown] Daniel Lange <dl.ml1@usrlocal.de> sub rsa4096/0x03BEE1C11DB1954B 2015-07-14 [E] pub rsa4096/0xDF23DA3396978EB3 2014-09-05 [SC] Key fingerprint = BBBC 58B4 5994 CF9C CC56 BCDA DF23 DA33 9697 8EB3 uid [ undef ] Michael Meskes <michael@fam-meskes.de> uid [ undef ] Michael Meskes <meskes@postgresql.org> uid [ undef ] Michael Meskes <michael.meskes@credativ.com> uid [ undef ] Michael Meskes <meskes@debian.org> sub rsa4096/0x85C3AFFECF0BF9B5 2014-09-05 [E] sub rsa4096/0x35D857C0BBCB3B25 2014-11-04 [S] pub rsa4096/0x1E953E27D4311E58 2009-07-12 [SC] Key fingerprint = C2FE 4BD2 71C1 39B8 6C53 3E46 1E95 3E27 D431 1E58 uid [ undef ] Chris Lamb <chris@chris-lamb.co.uk> uid [ undef ] Chris Lamb <lamby@gnu.org> uid [ undef ] Chris Lamb <lamby@debian.org> sub rsa4096/0x72B3DBA98575B3F2 2009-07-12 [E] pub rsa4096/0xDF6D76C44D696F6B 2014-08-15 [SC] [expires: 2017-06-03] Key fingerprint = 1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 4D69 6F6B uid [ unknown] Sven Bartscher <sven.bartscher@weltraumschlangen.de> uid [ unknown] Sven Bartscher <svenbartscher@yahoo.de> uid [ unknown] Sven Bartscher <kritzefitz@debian.org> sub rsa4096/0x9E83B071ED764C3A 2014-08-15 [E] sub rsa4096/0xAEB25323217028C2 2016-06-14 [S] pub rsa4096/0x83E33BD7D4DD4CA1 2015-11-12 [SC] [expires: 2017-11-11] Key fingerprint = 0B5A 33B8 A26D 6010 9C50 9C6C 83E3 3BD7 D4DD 4CA1 uid [ unknown] Jerome Charaoui <jerome@riseup.net> sub rsa4096/0x6614611FBD6366E7 2015-11-12 [E] sub rsa4096/0xDB17405204ECB364 2015-11-12 [A] [expires: 2017-11-11] pub rsa4096/0xF823A2729883C97C 2014-08-26 [SC] Key fingerprint = 8ED6 C3F8 BAC9 DB7F C130 A870 F823 A272 9883 C97C uid [ unknown] Lucas Kanashiro <kanashiro@debian.org> uid [ unknown] Lucas Kanashiro <kanashiro.duarte@gmail.com> sub rsa4096/0xEE6E5D1A9C2F5EA6 2014-08-26 [E] pub rsa4096/0x2EC0FFB3B7301B1F 2014-08-29 [SC] [expires: 2017-04-06] Key fingerprint = 76A2 8E42 C981 1D91 E88F BA5E 2EC0 FFB3 B730 1B1F uid [ unknown] Niko Tyni <ntyni@debian.org> uid [ unknown] Niko Tyni <ntyni@cc.helsinki.fi> uid [ unknown] Niko Tyni <ntyni@iki.fi> sub rsa4096/0x129086C411868FD0 2014-08-29 [E] [expires: 2017-04-06] pub rsa4096/0xAA761F51CC10C92A 2016-06-20 [SC] [expires: 2018-06-20] Key fingerprint = C9DE 2EA8 93EE 4C86 BE73 973A AA76 1F51 CC10 C92A uid [ unknown] Roger Shimizu <rogershimizu@gmail.com> sub rsa4096/0x2C2EE1D5DBE7B292 2016-06-20 [E] [expires: 2018-06-20] sub rsa4096/0x05C7FD79DD03C4BB 2016-06-20 [S] [expires: 2016-09-18]

    Note that this completely neglects potential victims who are unconnected within the KSP set.

    Categories: FLOSS Project Planets

    Doing Math with Python: O'Reilly Webcast: Doing Math with Python

    Planet Python - Sun, 2016-06-26 05:00

    I am very excited to share that I am doing a webcast this coming week with O'Reilly titled "Doing Math with Python". You can register for it on the event page.

    Here are the date and time of the webcast:

    Wed, June 29th at 7 PM, San Francisco

    Wed, June 29th at 10pm, New York

    Thu, Jun 30th at 3am - London

    Thu, Jun 30th at 7:30am - Mumbai

    Thu, Jun 30th at 10am - Beijing

    Thu, Jun 30th at 11am - Tokyo

    Thu, Jun 30th at 12pm - Sydney

    I have created a GitHub repository which will have the rough transcript, final slides and the code examples as Jupyter Notebooks.

    Categories: FLOSS Project Planets

    Niels Thykier: Anti-declarative packaging – top 15 build-helpers inserting maintscripts

    Planet Debian - Sun, 2016-06-26 03:51

    Debian packages can run arbitrary code via “maintainer scripts” (sometimes shortened into “maintscripts”) during installation/removal etc. While they certainly have their use cases, their failure modes causes “exciting” bugs like “fails to install” or the dreaded “fails to remove”.

    They also have other undesirable effects such as:

    • Bugs in/Updates to auto-generated snippets require a rebuild of all packages (not to mention the obvious code-duplication in all packages).
    • In case of circular dependencies[1] all having “postinst” scripts, dpkg will have to guess which package to configure first.
    • They require forking a shell at least once for each maintscript.
    • They complicate the implementations of e.g. detached chroot creation.

    Accordingly, I think we should aim for a more declarative packaging style.  To help facilitate this, I have implemented 3 tracking tags in Lintian.

    With these, we were able to learn that 73.5% of all packages do not have any of these scripts.  But I can now also produce a list of helpers that insert the most maintainer script snippets. The current top 15 is:

    1. “dhpython” with 3775 instances
      • This is an umbrella for all helpers using dh-python’s python module, see #827774.
    2. dh_installmenu with 1861 instances
    3. dh_makeshlibs with 1396 remaining instances
    4. dh_installinit with 1224 instances
    5. dh_python2 with 1168 instances
    6. dh_installdebconf with 772 instances
    7. dh_installdeb with 754 instances
      • These are the dpkg-maintscript-helper snippets for “rm_conffile”, “mv_conffile” etc.  Hopefully in the near future, dpkg will support these directly.
    8. dh_systemd_enable with 447 instances
    9. dh_installemacsen with 179 instances
    10. dh_icons with 165 instances
    11. dh_installtex with 137 instances
    12. dh_apache2 with 117 instances
    13. dh_installudev with 98 instances
    14. dh_installxfonts with 87 instances
    15. dh_systemd_start with 79 instances

    With this list, it seems to me that some obvious focus areas would be:

    • Replacing the python scripts (I presume it is the byte-code handling, but I have not looked at this at all)
    • Migrating away from menu files
    • Support enabling + starting/stopping/restarting a service declaratively.
      • This might have a “hidden” requirement on declaratively creating service users if we want these packages to become truly “maintscript-less”.

    Eventually we will also have to dig through all the “manual” maintainer scripts. But I think we got plenty to start with.


    [1] For some, circular dependencies in itself is an issue. I can certainly appreciate them as being suboptimal, but most of the issues we have are probably caused by insufficient tooling rather than a theoretical issue (that is, if we remove all postinst scripts).

    Filed under: Debhelper, Debian, Lintian
    Categories: FLOSS Project Planets

    Full Stack Python: Setting Up Python 3, Django &amp; Gunicorn on Linux Mint 17.3

    Planet Python - Sun, 2016-06-26 00:00

    Linux Mint 17.3 "Rosa" is December 2015 release of the polished and widely-used Linux distribution. This Mint release includes both Python 2.7 and 3.4 by default, but in this tutorial we will download and install the latest Python 3.5.1 version to run our Django application.

    If you want to use a different Linux distribution such as Ubuntu instead of Mint, check out the tutorial for Ubuntu 16.04 "Xenial Xerus". If Mint is your desired development environment though, let's get started!

    Tools We Need

    Our setup will use several system packages and code libraries to get up and running. Do not worry about installing these dependencies just yet, we will get to them as we progress through the tutorial. The tools and their current versions as of June 2016 are:

    If you are on Mac OS X or Windows, my recommendation is to use virtualization software such as Parallels or VirtualBox with the Linux Mint Cinnamon desktop .iso.

    We should see a desktop screen like this one when we boot up the operating system for the first time.

    Open up terminal to proceed with the configuration.

    System Packages

    We can see the Python version Linux Mint comes with, as well as where its executable is stored.

    python3 --version which python3

    The output of those two commands should be (these are not commands to run):

    Python 3.4.3 /usr/bin/python3

    We really want to use the latest Python release instead of the default 3.4 when starting a new Python project, so let's download and install 3.5.1 now.

    Run these commands in the terminal to download Python 3.5.1 source code:

    cd ~/Downloads wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz

    Extract the Python source code:

    tar -xvf Python-3.5.1.tgz

    Linux Mint is not configured by default to build the Python source code. We need to update our system package lists and install several packages to make building the Python source code possible. If you have a password on your user account, enter it when prompted to allow the installation to proceed.

    sudo apt update sudo apt install build-essential checkinstall sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev sudo apt install libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev sudo apt install python3-dev

    Once the packages are installed, we can configure and install Python from source.

    cd Python-3.5.1 ./configure sudo make install

    Test that the installation worked properly by starting up the Python REPL:


    If the REPL starts up properly with Python 3.5.1 in the output then we're good to go.

    The basic system packages we need are now installed so we can proceed to our Python-specific dependencies.

    Virtual environment and pip

    Python 3.5 comes with the virtual environment and pip applications so we can use them to handle our application dependencies.

    Create a directory to store virtual environments then create a virtualenv for our Django project.

    # the tilde "~" specifies the user's home directory, like /home/matt cd ~ mkdir venvs # specify the system python3 installation python3.5 -m venv djangoproj

    Activate the virtualenv.

    source ~/venvs/djangoproj/bin/activate

    We should see our prompt change so that we know the virtualenv is properly activated.

    Our virtualenv with Python 3.5.1 is activated so we can install whatever dependencies we want, such as Django and Gunicorn. Our default python command is also set to use the Python 3.5.1 installation instead of the Python 2.7 version that comes with Linux Mint.

    Django and Gunicorn

    Now we can install Django and Green Unicorn into our virtual environment.

    pip install django==1.9.7 gunicorn==19.6

    If there are no errors in the pip output then that is a good sign we can proceed.

    Create a new Django project named djangoproj, or whatever you want to name your project. Change into the directory for the new project.

    cd ~ django-admin startproject djangoproj cd djangoproj

    We can run Django using the development server with the python manage.py runserver command. However, start Django up with Gunicorn instead.

    gunicorn djangoproj.wsgi

    Awesome, we can bring up our shell project in the web browser at the http://localhost:8000 or address.

    Now you're ready for Django development!

    Ready for Development

    Those are the first few steps for beginning development with Django and Gunicorn on Linux Mint 17.3 "Rosa". If you need an even more in-depth walkthrough for deploying your Python web application to a production environment, check out the Full Stack Python Guide to Deployments book.

    To figure out what to do next for your Python project, read the topics found on the table of contents page.

    Questions? Contact me via Twitter @fullstackpython or @mattmakai. I'm also on GitHub with the username makaimc.

    See something wrong in this post? Fork this page's source on GitHub and submit a pull request.

    Categories: FLOSS Project Planets
    Syndicate content