e0ne's comments

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....

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....

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:...

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....

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....

Work with Gerrit: git review-update

Published at January 26, 2019 ·  1 min read

If you work with Gerrit you use its CLI tool git review. Working with OpenStack, I use it a lot every day. I need to update the last patch and send it to the Gerrit very often. That’s why I created one line script to execute git commit -a --amend && git review command. I put it into the /usr/local/bin/git-review-update file with a following content: #!/bin/sh git commit -a --amend && git review Now, I can use git review-update command to update the last patch and send it to Gerrit....

Code Search for Your Repos

Published at January 25, 2019 ·  1 min read

Once you have more than one repository with sources you starting to search across all of them. You can use IDE and/or your favorite text editor to search across an open project. Usually, I use ‘grep’ to search in my ‘~/src’ directory. It works pretty well when you have a few repos. But once you’ve got tens of them, it’s it’s time to find something convenient than ‘grep’. This way is good only if you prefer GUI rather than CLI....

I need more (fake) disks

Published at January 24, 2019 ·  1 min read

Sometime I need some additional disks or volume groups to do some testing. E.g. it’s widely used for OpenStack Cinder testing with LVM driver. Usually, I don’t have additional disks to work with:(. That’s why I use loopback devices instead. It’s an easy to configure solution. Of course, it works a but slower than on a real hardware but it’s absolutely acceptable for many scenarios. I’ll show you an example based on Devstack solution....

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 kharkivpy kiss kombu 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 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 интернет-магазин книги


Archives

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