e0ne's comments

Keep Your Tests Clean: Refactoring

Published at February 25, 2019 ·  1 min read

Refactoring tests could be painful a lot. But it could also give you a lot of fun too. During refactoring unit tests, I’ve found a log of issues to be resolved. Also, it gives me more knowledge about how the project works. Refactoring tests could be harder than refactoring rest of code because it could affect not only tests. Since there are no tests for tests, there is only one way to understand if refactoring didn’t lead to less test coverage....

Run Django Tests in Parallel

Published at February 24, 2019 ·  2 min read

I’m wondering that in 2019 we still have a lot of tasks which are not parallelized yet. I’m pretty sure, that almost all laptops, desktops and even smartphones have more than one core on board. In the meantime, I just realized that Django runs tests using only one process/core on my desktop. I’m disappointed but I think I know why it happens. Many of us are not used to write concurrent code....

Flask Upgrades Support

Published at February 23, 2019 ·  1 min read

Upgrading flask-based project from flask v.0.12.x to 1.0.x I realized that Flask itself doesn’t ready for upgrades yet. There is no documentation about 0.x -> 1.0 upgrade at all. There is some documentation about upgrades prior 1.0 but nothing about 1.0 at all! Change log isn’t helpful a lot. It’s one more argument to use Django instead of Flask. It has great release notes with detailed backward incompatible and deprecation sections....

Text Editor or IDE?

Published at February 22, 2019 ·  3 min read

A short Friday’s holy war about IDEs, text editors and vim:). I don’t really like bikeshedding about text editors, but I was asked about my favorite one too much to not drop a note here. I spent most of the time in editors with Python code, a bit less with JavaScript/TypeScript. Of course, a lot of json and yaml, sometimes bash scripts and Ansible playbooks are opened by me too. I strongly believe that for each task there is the best tool somewhere....

Right Way to Setup Jenkins in Docker

Published at February 21, 2019 ·  1 min read

I was for this solution for months. Almost any guide I’ve found was about using an official Docker image with few plugins installed. It works pretty well if you agree with a manual initial configuration like configure admin user and password. It doesn’t work at all if you deploy Jenkins in an automated way. Here is a Dockerfile to get installed and ready to use Jenkins: FROM jenkins/jenkins:lts # https://github.com/jenkinsci/docker/blob/master/README.md # Jenkins configuration ENV JAVA_OPTS="-Djenkins....

Python Releases

Published at February 21, 2019 ·  1 min read

Since I switched to Python 3.5 as my default and I need to keep backward compatibility with Python 2.7 one year more, I don’t follow new features and releases a lot. Originally, Python 3.5 was released about 3.5 years ago. Looking throw release notes, I think I’ll switch to Python 3.6 just for the projects where I don’t need to support 2.7. There are not a lot of features in newer releases but some of them seem to be useful for me....

Embedded React App on Your Site

Published at February 19, 2019 ·  2 min read

It’s great if you’re able to start development from scratch and you can implement SPA using the latest technologies. But sometimes you can only extend existing functionality. In such a case, it makes sense to embed your React app into the existing web site. The idea is pretty simple: you need to add your react-based application to the existing page. The easiest way is to add some <div id="reactApp"></div> to your page and add the script with a production build of your react application....

Fixing tests: boring, but useful job

Published at February 18, 2019 ·  1 min read

Fighting with tests during the last two days, I would like to drop a short note of why I usually do this job. First of all, it’s a great chance to understand how the project works. Even if test coverage is not good enough, usually you can learn a lot about project architecture. The next reason is that almost every project team doesn’t have enough time to improve or extend the current tests....

Deploy Hugo Sites With Jenkins

Published at February 17, 2019 ·  2 min read

I’ll describe how I do my Hugo-based blog updates with Jenkins, but it’s pretty similar to any other static site generator. Pre-requirements Jenkins installation is out of the scope of this post. Also, you need to have installed and configured Publish Over SSH plugin. Also, I use Jenkins Job Builder (JJB) to configure Jenkins jobs from yaml file. I’ll describe my blog-jobs.yaml config for my blog below. Jenkins configuration Views If you have a lot of jobs or just want to group them by project, it makes sense to create a view:...

Click - Implement CLI Without Pain

Published at February 16, 2019 ·  1 min read

I didn’t write reviews for libraries for a while. Honestly, I don’t want to write a review for click because a reading of it will require more time than you try it. It’s an awesome library which is really easy to use. E.g.: @click.command() @click.option('--command', prompt='command name: clone or update', help='Clone or update repos') def main(command): if command == 'clone': clone() elif command == 'update': update() I didn’t find anything like this for Python....

Tags

.net .net-framework .net-framework-3.5 agile ajax ajax-control-toolkit ampq ansible apache asp.net asp.net-mvc automation axum babel bash benchmark blog blog-engine bootstrap buildout c# cache centos chrome ci cinder ckan cli cloud code-review codeplex community config debugger deface dependencies development-environment devices devstack devtime disks django dlr dns docker dockerimage dos easy_install elmah encoding environment-variables error event events everything-as-a-code exception exceptions fabrik firefox flask foreach forms fstab gae gcc gerrit git github go google google-app-engine grep hack hacked hardware headless horizon hound html hugo iaas ienumerable iis internet iptables iron-python ironic iscsi java-script javascript jenkins jquery js jsx k8s kharkivpy kiss kombu kubernetes kvm kyiv lettuce libvirt linux lio loci logging loopback losetup lvm mac-os macos mercurial microsoft microsoft-sync-framework mobile mono ms-office msbuild networking news nginx npm npx offtopic oop open-source open-xml opensource openstack openvswitch os packages paraller-development patterns-practices performance php pika pip plugins pnp podcast popup postgresql profiler project protocols proxy pycamp pycharm pycon pykyiv pylint pypi python python-3 qcow quantum qumy rabbitmq rar react reactjs refactoring rfc rhel search-engine security selenium server shell silverlight socket software-engineering source-control sourcegear-vault sources sql sql-server sql-server-express sqlalchemy ssh static-site sublimetext svg tests tgt tipfy todo tornado typescript uapycon ui uneta unit-tests upgrades usability vim virtualenv visual-studio vitrage vm vue.js vuejs web-development web-server web-service web_root webpack webroot windows windows-live word-press x32 x64 xcode xml xss xvfb интернет-магазин книги

Recent posts

Go 1.18: new features

Всё будет Kubernetes

2022 Relaunch

Everyday Blogging

I don't want this CI


Archives

2022 (3)
2019 (73)
2018 (2)
2017 (3)
2016 (2)
2015 (3)
2014 (5)
2013 (17)
2012 (22)
2011 (36)
2010 (25)
2009 (35)
2008 (32)
2007 (2)