
PythonDigest - 2014, the results of our work in numbers and links

Over the year, brought to mind and automated news gathering to the maximum. Every day, 19 sources are automatically monitored daily and an average of 10-15 relevant news is collected from which, subsequently, the best ones are selected and announcements for the digest are prepared.
Digest readers make a significant contribution, not a single issue goes without the news they have added.
Over the six months that have passed since the weekly digest of news about the python programming language and nearby technologies ceased to be published on the hub constantly published in a popular public on this topic in VKontakte, translated and published interesting articles.
Those interested in details and figures, you are welcome under cat.
How to keep abreast of all the news.
The main goal for which the digest was created is to create an aggregator of news and information, both in the python programming language, and in branches or modules. During the existence of the digest, approximately 5,235 materials were collected, 1,776 news items were translated and published.
Useful information was distributed as follows:

At the same time, “Different Sources” is, for the most part, twitter and what guests sent to us through a special form. Social networks (VKontakte, Google+) create noise, but as a source of useful news are practically useless.
As a result, it turns out that if you do not want to lag behind life boiling in the python community, you need to subscribe and read the key twiiter accounts, read the top r / Python in a week, subscribe to two main mailing lists, and of course do not ignore the hub For the djangists and their associates, the django line aggregator may be interesting, based on the trends of google requests on a given topic.
Year of interesting news and trends
During the time spent in searching for news, reading articles and participating in public discussions (and this is already more than a year), it was impossible not to highlight news- stars and not to catch some trends. Below is a small analysis of the current situation and a selection of interesting articles that we praised throughout the year.
The main trend is the strong development of python in the direction of scientific computing and data analysis. Not the last place is occupied by the wonderful IPython project , which, with the support of the powerful computing libraries pandas , numpy , SciKits, allows interactive research and convenient sharing of research and calculation / research methods. This was also noticed in JetBrains - inPyCharm 4 improved IPython support and debugging. Here are some good articles about this that have been featured in digest releases throughout the year:
- Building Interactive 3D Charts in IPython Notebook Based on plotly service
- Using IPython Notebook with Apache Spark Working with the PySpark module opens up new limits to scalability with Spark and Hadoop technologies
- Search for bubbles in the foam photograph We use a whole set of scientific modules and in addition to the task of finding bubbles, the direction of movement of the foam is determined
- IPython GUI (Jupyter) using the example of image convolution Using a simple html-slider for adjusting the parameters of the image convolution algorithm in IPython
Faster! Higher! Stronger!
Another trend is concern for the performance of calculations and algorithms in general. Here are some interesting approaches. In addition to the above modules, which have already implemented many numerical algorithms, apply, for example, techniques for converting code into machine. The Nuitka project, which claims to be able to assemble any python code into native one by converting it to a similar c ++ code and then compiling it, shows itself remarkably here . A slightly different approach in the Cython project - its idea is to compile a subset of the python language into code, which is convenient to use later as a plug-in. Another approach is jit compilation at runtime in a special PyPy interpreter. The version of pypy-stm using the Software Transactional Memory model got to the point where it can actually be used on projects with 2.7. A number of articles about these technologies and their application in practical tasks were really very interesting and even translated into a hub:
- Transferring the execution of part of the high-loaded code from CPython to PyPy It is performed using the multiprocessing module with the path to the new interpreter. Pretty interesting feature.
- We write a faster code. A very interesting set of performance tests of different syntax constructs of the language.
- When to choose Jython A small overview and practical example of the benefits of using Jython when integrating with existing Java libraries
- Optimizations in python and how they can affect you The code you wrote in various ways is optimized by the interpreter at runtime. Sometimes this can lead to side effects, some of which are covered in the article and video material.
- Why is python slow: look under the hood Overview of bottlenecks and their causes in python
- Writing High Performance Cython Code
- High-performance extensions for python in C In two articles, the author understands how to speed up the performance of complex calculations by moving them to an extension written in a lower level language. Here is the second part
- Mathematical optimization problems in Python We figure out how to solve problems with many participants using the stochastic optimization technique. In essence, optimization comes down to finding the best solution to a problem by testing various solutions and comparing them with each other to assess quality. Optimization is usually used in cases where the number of solutions is too large and it is impossible to sort them all out.
2.x vs 3.x
Since 2011, the battle of branches 2.x and 3.x continues. On the one hand, almost all libraries already have acceptable 3.x support, and on the other, developers are still in no hurry to switch to the future branch. This is facilitated by the extension of support for the 2.x branch until 2019, as well as the backporting of features from the third branch.
- Why Python 3 and not Python 2? A question that torments everyone. The answers to this question can be found in this article.
- Python, as Armin Ronacher would like to see him. The author of flask, jinja2, click shares his opinion on problems in python and in what direction he should develop.
- PyConRu - Roundtable: Do I need to upgrade from Python 2 to Python 3
- Why Python 4.0 Shouldn't Be Like Python 3.0 A Red Hat Developer Blog Article
Going deep in python
The programming language begins to die as soon as they stop writing deep technical articles about it and create training courses. Both of them were abundant in a year, and some projects claimed revolutionary spirit.
- CheckIO A very original and exciting python interactive game learning course
- Learnpython.org Python interactive course Step-by-step Python training with the ability to execute code directly in the browser
- Special course VMK Moscow State University "Programming Language Python" For the author of the course (George Kuryachy) Python was at one time a real discovery. It seemed that Guido planned it according to the principle “in other languages it’s inconvenient, you need to make it simpler”. The main emphasis in this version of the course is precisely on this simplicity.
- Mega-Tutorial Flask Finally, an informative series about web development on the Flask microframework has been translated
- Teach the old dog new tricks or how I learned to love str.format and abandoned% Reddit - the python channel How to love str.format and give it a chance compared to formatting through%
- Antipatterns of programming A small number of examples on how to write code in python
- Cheat sheet: Writing compatible Python 2-3 code A very useful article on how to write code so that it works equally well in Python 2.6+ and Python 3.3+
- Top 10 python idioms that I would like to know about earlier A story about interesting, obvious and not so techniques in the python programming language
- And one more time about GIL in Python This time about optimization of numerical calculations
- Convert code to beautiful, idiomatic Python Tips on how to make your code look beautiful.
- Improving package management Overview of several tools (yolk, pip-review, peep ...), which can greatly simplify the life of the developer
Is the web our everything?
The shift in emphasis towards web development, including on mobile platforms, has become a global trend. This is also evident in the composition of the articles announced in PythonDigest. Most of them are about the web or near it. Here are just a few random articles:
- Django 1.7 Long-awaited release of django 1.7 released
- Why I do not like Flask There is such a popular microframework: Flask. Many people like it: easy and easy to learn, then yes. But to the author, absolutely not.
- Creating large-scale Flask applications in real-life Recommendations and basic principles for creating well-supported, scalable and extensible projects
- Comparison of Django vs Jinja template engines Tests show the impressive superiority of the Jinja2 template engine over the default Django template engine on almost all fronts. Why almost, you ask? But because in addition to technical metrics, there is also the concept of compatibility with existing applications (admin, cms, reversion ...) and the convenience of extension.
- Complete Django Tutorial from Beginner to Advanced Django tutorial, which was previously paid for everyone, became available for free. The course will be especially useful for beginners.
- A Modern Tornado: Distributed Image Hosting with 30 Lines of Code An article about implementing a simple web server on Tornado
And in conclusion - wishes
This is far from all that I would like to tell, but already the new year on the nose is the time to take stock and make wishes. So, since we have been good boys and girls all year, we ask Grandfather Frost for separate pieces of the Russian-speaking python community to come together and communicate more; so that python2 fans find a compromise with python3 fans; make kivy the number one platform for mobile applications; so that pythondigest makes even more friends, helps newcomers and gurus unite to develop the community in discussions and create new projects, and continues to be a consolidating platform and an aggregator of fresh knowledge of Python. Well, world peace just in case - all of a sudden, at least this time it will work out.
Happy New Year!
Thanks a lot owlman75 for co-authorship and illustration for the article
Only registered users can participate in the survey. Please come in.
Do you support the idea of a Python news digest?
- 80.2% Yes! This is useful and necessary work, I am writing in Python 366
- 19% Yes! I specialize in other technologies, but the digest keeps up to date on a neighboring front 87
- 0.2% No, this is a futile undertaking and if you do something like that, then obviously not 1
- 0.4% No, I'm just not interested in Python 2