Python Programming Idioms And Conventions - Part 2
As a follow-up to the previous article, let's discuss other idioms, or simply good practices, that Python developers use on a daily basis for their projects.
As a follow-up to the previous article, let's discuss other idioms, or simply good practices, that Python developers use on a daily basis for their projects.
One reason I like using Python is that it's easy to share good practices within your team, once you have learned them yourself.
We are clearly in the new year now! Most of us are already busy again with our daily tasks and thinking about projects we have at hand, and the "how" questions related to those projects and deliveries.
Most of the time, for your Python project, you need libraries which call in your code, after the installation of the required add-on packages.
You install add-on packages nowadays by just running pip install <name_of_package>
and it works fine. In most cases, this is because, among other things, the package has releases published (by its author) on the Python Package Index (the PyPI).
Over the last 7 or 8 months, I have been working with Packt Publishing on the 2nd edition of a book about design patterns: Mastering Python Design Patterns. It has been out for a month now, and I started mentioning it here and there.
One specific tool every programmer uses everyday is what, in Python, we call Lists. And Python lists are relatively simple to use.
Let's continue our exploration of possibilities and tricks using Selenium and ChromeDriver via Python. In the 2nd installment of this series, I will touch upon useful techniques to interact with the specific elements you need in the web page or user interface.
This article starts a series where we are going to discuss how to use Selenium, from Python, for automating website navigation and doing visual data scraping.
As you may know, many powerful and smart pieces of software are written in Python. Based on that, how I approach things (and my clients too) is: Just leverage these tools!
Back to more coding! Here are 4 Python modules I have been using more recently for building solutions to actual problems.
This is a guest post from the Python Ghana community that organized the UG Python Workshop 2017. It provides a report about the event and was written by Gameli Adzaho.
After the first part on managing domains using the DNSimple API, here is the follow-up where we will see how to do domain registration operations using the sandbox version of the API.
Following my previous articles discussing DNSimple for domains and DNS management and HTTPie to interact with APIs in the command line, today I am starting a post series on using DNSimple's API.
HTTPie is an HTTP client and an alternative to the famous cURL. Its goal is to make it easy to interact with HTTP servers, using a simple and natural syntax. This post will show how to quickly start using those benefits to test APIs.
Virtualenv is the tool for creating a Python virtual environment, a folder on your computer system that
embarks its own copy of the Python interpreter and the site-packages
subfolder where the code for the installed third-party modules is placed.
When using different Python-based tools, frameworks or applications, you need to install all the corresponding compatible versions of Python and easily switch between them. Assuming, you are running on Linux, you will enjoy using pyenv. It is one popular tool to manage several versions of Python, and even environments dedicated to projects.
Need to automate HTTP requests using Python? One popular way, and also my preferred one, is to use the requests module. Let's have a quick look.
I have been a user and fan of DNSimple for several years. And I now have more than 20 domains managed using their services. Here are the main reasons why they are a game changer for me.
These last months, I learned more about many Python features and how to write Pythonic code that really uses those features. That happened naturally. I wanted to get better at programming with Python for my projects, and I started watching Pycon talks on a daily basis or reading the documentation and online resources. Also, in current projects, I am mostly using Python 3.
After experimenting with S3cmd, I immediately started automating my custom backup process. Quick to get working and improve as you go, thanks to Python!
I decided to use AWS S3 more actively to backup files that I don't need to keep permanently on my laptop. And this is quite easy using the command line tool S3cmd.
I have been investigating enterprise business solutions recently, specially those providing a nice user experience while allowing a developer to create extensions or do integration with other systems via an API. One such interesting application I found is LogicGate.
Working on a Mac OS X or Linux system really helps your productivity. Basically you just do the stuff you are supposed to do, without being distracted by a graphical interface showing you several options to choose from, at each click or navigation step. That's the point of using Command-Line Interface tools.
As a developer, on your own machine, you access your code repositories on Github using your credentials, but on a production host one should not use his personal account's password or SSH keys.
I started having difficulties running Harp on my Mac, after some OSX El Capitan software update that affected my NodeJS installation.
For this article, I am assuming you already have Jekyll installed, with a project set up on your local machine to generate your static site's HTML files under your build directory of choice.
I started exploring the cool applications of Electron, the emerging framework that allows developers to build cross platform desktop apps with web technologies.
Here are my notes on installing Python and related packages useful for my web development with Plone and web frameworks such as Pyramid, or for pure scripting work.
I had to reinstall all my tools on a new Mac, and I took the opportunity to do things in ways that allow more productivity. Hopefully, I would also avoid situations where things break with future software installs or updates.
I focused during the last days of 2015 and the first days of 2016 to relaunch several things in the universe of my regular discipline and projects.
I am now using StatusCake for uptime checks and monitoring, after trying it for the ContentGardening.com site.
Monitoring is important these days, to help you improve the response time of your web apps, and give you insights on how they are used. Subscription-based services lower the barrier of entry by not requiring you to install and manage your own monitoring infrastructure. And they are generally free for developers.
I started structuring my projects to get the power and productivity benefits of tools such as Bower, which help you install and manage the static assets libraries for a web project in an automatic and centralized way.
The first months of this year have seen more activities on the Plone front in my realm, and there are signs of a regain of energy for future work and collaborations. Let me share some information here.
UI Frameworks make it easier for front-end developers to build and maintain complex CSS for websites and applications. Nowadays, we have new needs and trends such as Responsiveness and Google's Material Design, so there are new frameworks coming to help.
In this series, I tried to give you an idea of using new tools and platforms such as Divshot for static sites hosting. I almost procrastinated, but finally kicked myself to deliver this third part, where I quickly present other cool services Divshot provides to make our hosting tasks easy.
Part 1 of this series introduced static apps deployment using the DivShot hosting service. In this 2nd article, let's see how to go further with automated continuous deployments. The solution I've decided to use for this is Wercker, combined with Github and DivShot. As an alternative to Wercker, one could choose Travis CI, though I've not tested it yet.
The Plone developers have been working hard over the last years to build the next major release of Plone. It's now around the corner, and it's going to shine in CMS land. The first thing I am doing is testing its features for the end user, and since I am impatient, I use the core developers buildout and try to keep up with the development builds.
Divshot is a specialized hosting service for modern apps, in particular apps developped the static way, and I decided to use it for all my current projects that fit this category. Check out their list of features here.
Jekyll is not easy to install on Windows. Here is a work-in-progress howto on installing Jekyll on Windows, based on the documentation put together by Julian Thilo.
Here is how I install Jekyll on my Mac, which should be mostly applicable to a Linux box. Jekyll is currently available in version 2.5.2, but I also previously tested this procedure for 2.4.0.
So much to do and only so many hours in a day! If this is where you're at, you're not alone.
I have migrated several sites from Plone 4.1 to Plone 4.3.3 this week. I am in the fortunate position where I help maintain many Plone sites, most of them being more than 6 years old. Fortunate because it helps learn a lot, over the years, on the good and the bad in terms of content management practices.
I work on projects using Plone, and I love working with its framework. I just worked an hour for my current project, and once again I enjoyed the fact that I can write stuff in a clean way. I can expose logic or behavior where and how I want it, using interfaces and components mechanisms provided by Zope libraries under the hood. It's got even better now that we have an elegant API.
There are many new methods for deploying web applications in a predictable way, fast, and while having fun. You might forget about system administration, database administion tasks, security updates, etc, if you get used to this.
Our team can contribute to your project, working on a specific task, or doing all the coding based on your specifications, using Python, a web framework such as Django or a CMS.