e0ne's comments

Boring and Routine Tasks

Published at February 5, 2019 ·  1 min read

Nobody likes boring and routine tasks at all. It’s a good idea to do something interesting and challenging each day. I’m sure that you can find such a task on any kind of job you have. You just need to find 5-10 minutes for it and you’ll find something interesting to do.

I failed today. Only boring ad routine tasks during the day. I’ll do my best to fix this tomorrow and post something interesting for you.

...

OpenStack Horizon: integration tests for plugins (part 2, CI)

Published at February 4, 2019 ·  2 min read

It’s a small addition to my previous post. I don’t like to edit my previous posts. The only exception is when I have to fix some typos, spelling error, links, etc.

During the previous post, I described how to implement integration tests for the Horizon plugins, but I didn’t have enough time to implement and verify CI for it. It’s time to fix this.

We’ve got really awesome CI in the OpenStack. Zuul works great for OpenStack needs and allows to configure cross-project jobs. A big thank you to our Infra team for the help during CI setup.

...

Using JSX outside React application

Published at February 3, 2019 ·  1 min read

I’m not a fan of the React at all. I prefer to use VueJS wherever it’s possible. But React is really one of the most popular JavaScript libraries now. There are a lot of people who use it and like it.

One of the most important parts of React is JSX - “a syntax extension to JavaScript. It is similar to a template language, but it has full power of JavaScript”. Honestly, it’s the one reasons why I don’t like React. But if you’re using React, it’s really painful to not use JSX too.

...

Dependencies management: versioning

Published at February 2, 2019 ·  2 min read

It’s a really complicated topic. Almost everyone has own opinion on it. I’ll try to describe you several patterns with pros and cons for each.

It doesn’t matter if it’s a python dependency in requirements.txt or a javascript one in package-lock.json file.

What could go wrong? First of all, there are several approaches how dependency could be described:

Case 1: without version

It’s a great approach for development on early stages. You always use the latest version and you’ll be notified soon if your application stopped to work. On the other hand, it’s a nightmare for production deployment. Everything could stop work at any moment after any operating system update.

...

OpenStack Horizon: integration tests for plugins

Published at February 1, 2019 ·  3 min read

Ideally, I need to push this post into the Horizon documentation, but I would like to publish it here as HOTO for me before everything will be approved and I move this into the official documentation.

About one week ago we, finally, included integration tests job to our gates in non-voting mode. A big thanks to everyone who helped to get this done. We’ve got about 80 integrations tests in the horizon repository. Also, it could be used as a base framework to implement tests for plugins. Unfortunately, these tests work only with python2 now, but we’re going to fix it soon.

...

One Month of Blogging

Published at January 31, 2019 ·  1 min read

It was some kind on New Year challenge for me to write a post every day. Something went good, something not but I feel pretty good on this initiative and want to continue. It’s really hard to post something every day. I started to post some notes that don’t feet into Twitter’s limit. There are a lot of drafts in progress so I’ll try post more technical things next month.

...

Config Inheritance

Published at January 30, 2019 ·  2 min read

Continuing the topic from the previos post about project configuration, I would like to metion one more important thing. It’s a config inheritance or config overriding. I don’t want to argue if my approach is good or not. I just like it and I try to follow it wherever it’s possible.

I will write about possible configuration location in the order where the next level will override the previous one:

  • Default values in the code. It’s a common location for defaults if it’s possible. Sometimes you can’t have any default value due to the different reasons.

    ...

The Price of Open Source Software

Published at January 29, 2019 ·  1 min read

Open source software is not free. Sometimes it’s not cheap at all. It even could be more expensive than some proprietary software with any high price.

I like Open Source. I use it. I contribute to some open source project even on my personal time. But you must know, that price for the open source software could be very high.

You always need to think about how many time do you spend during troubleshooting/deploying/fixing or improving some open source software. It could take a lot of time for it. Sometimes it’s better and cheaper than open source.

...

Default Config Options

Published at January 28, 2019 ·  2 min read

Once your project becomes a bit bigger than ‘Hello, World’, you need to add an ability to configure it. It could be config in the code like in Django or Flask, pass environment variables, CLI arguments or a special config file located somewhere in the filesystem.

At this point, everyone should ask themselves this question: What should I consider as a default option? Should it be production-like or developers friendly options?

...

Code review: why do we need it?

Published at January 27, 2019 ·  1 min read

I don’t want to argue about necessary of code review now. It’s to each team to specify rules on how to do it. I just want to share with you my opinion why do we need it on each project.

  • First of all, it’s about code knowledge sharing. It’s a great chance to share knowledge about the project with a team. More code reviews you do - more knowledge about the project you’ve got.
  • To learn something new. New practices, approaches, etc - you may know a lot of interesting doing the code review.
  • To be on the same page with a team. More code reviews mean more communications between team members. It helps you to understand what the team expects from you and how to write good code for the particular project. It’s kind of formal type of communications which helps to build a good Team.
...

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 p'n'p packages paraller development patterns & practices performance php pika pip plugins 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)