Archive 2019

Docker Image Collection

Published at January 19, 2019 ·  1 min read

NOTE: There is a new format for my posts. Something like really short reviews. I call it ‘notes’. I’ll publish such posts time to time to share something great with you and to not lost links to them. Somebody likes everything in Docker/container principle, somebody doesn’t. I like this idea more and more each day. I even think that I started looking into the containers too late. Nevertheless, I move a lot of services to Docker just because it’s easier than having 10-15-20+ repos in my apt....


Not a DNS Server for Libvirt

Published at January 18, 2019 ·  2 min read

Sometimes I’m too lazy to repeat the same task so I do some automation to make my life easier. Unfortunately, I don’t have enough time to do it well each time. That’s why I prefer ‘good enough’ way. I implement something good enough for me and refactor it once I have time. I use virtual machines on my desktop a lot. Usually, I have several of them up and running. I don’t like to remember an IP address for each of them, that’s why I prefer to use hostnames....


Diskimage-builder in Docker

Published at January 17, 2019 ·  1 min read

diskimage-builder is a tool for automatically building customized operating-system images for use in clouds and other environments. Unfortunately, I can’t do everything in Docker so I have to use VMs a lot. diskimage-builder helps me a lot to build basic VM images with pre-installed packages, my SSH key, etc. Since I try to have my development environment as clean, as possible I do not install additional packages on my desktop. Any Python package I install in the virtualenv....


Everything as a Code

Published at January 16, 2019 ·  2 min read

Infrastructure as a code… I hear about it during at least last 5-7 years. There are a lot of activities in each company (I hope) to introduce configuration management like Ansible, Puppet, Chef, etc to achieve Continuous Integration and Continuous Deployment(Delivery) aka CI/CD. I saw a lot of successful implementations for CI/CD for small and mid-size projects. It’s harder to introduce full automation on big projects but it’s absolutely doable....


Vue.js, global variables and TypeScript

Published at January 15, 2019 ·  2 min read

It’s pretty easy to pass some environment variable to Vue.js application using webpack.DefinePlugin. You just need to have something like a sample below in your webpack.config.js: var webpack = require('webpack') module.exports = { // ... plugins: [ // ... new webpack.DefinePlugin({ 'BUILD': JSON.stringify(0.0.1') }) ] } It’s a common way to pass some environment variable into your JavaScript application. Technically, webpack.DefinePlugin injects a global variable into your JavaScript application. You may need it for some feature flags or some global configuration....


Front End Development Is Too Complicated

Published at January 14, 2019 ·  2 min read

It becomes more and more complicated. Single Page Applications (SPA) are a great thing. I’m pretty sure that all users like it. I don’t know if many developers like it or not. Personally, I think that its development is too complicated. Maybe it’s not so complicated as I think if you are Front-end Engineer or even full-stack JavaScript Developer. But it becomes extremely hard if you need to integrate your SPA with Python-based API with is working behind Nginx in Docker or Kubernetes....


Easy SVG image manipulations

Published at January 13, 2019 ·  1 min read

If you decided to use SVG images as icons in your UI it becomes extremely important to have these images with different colors. E.g. you need resource status icons for ‘available’ and ‘not available’ states. You can use the same SVG for both of these states but fill it with red or green color depending on the state. It’s one of the possible use cases which could be covered by svg-transform-loader library....


Software Development Is Like a Puzzle

Published at January 12, 2019 ·  1 min read

Software development often looks like a puzzle assembling. You need to fit a few pieces together to make something working. It’s OK when you need to create something fast. Like a new web site on an existing engine with several new features. There are a lot of libraries, frameworks, engines almost for any case. I’m happy that I still can create something new. Something I can’t google about. Something nobody asked and answered on StackOverflow....


Some Useful Git Commands

Published at January 11, 2019 ·  2 min read

Since I started blogging in English, I think I can translate some useful posts even they were written a few years ago. It’s a translation of the same post in Russian I’m tired to blog the same so I created this blog post to have everything in one place. Set username/email for git: $ git config --global user.email "e0ne@e0ne.info" $ git config --global user.name "e0ne" You can omit to set it global and it will be set only for the current repository....


Some Useful Docker Commands

Published at January 10, 2019 ·  2 min read

Five years ago I wrote the post Git: some useful commands (in Russian). Probably, it’s a good idea to translate it into English too but it’s a different story. I used that post as a handbook for some git commands which I had to use really rare. Now I would like to create a similar list for Docker. Some of these commands you can easily find in the manual and help but if you’re such lazy as me, you would like to get such list noted somewhere....


I'm too lazy to not use Bootstrap

Published at January 9, 2019 ·  2 min read

I never liked hit with CSS. I hate to deal with HTML make up a lot. I prefer to work with JavaScript and omit styles if possible. Maybe it’s only because I’m not an expert in this area. That’s why I use Bootstrap framework where it’s possible. It allows everybody to create pretty good UI’s for web application with minimal knowledge of styles and CSS. In a real word, I don’t even want to use Bootstrap directly in web applications based on modern libraries and frameworks like React and Vue....


Vue.js + Python API + Docker in Development Environment

Published at January 8, 2019 ·  3 min read

NOTE: All things described in this post could be not 100% correct. I just described my development environment for a simple project with JavaScript fronted and Python backend. Everything located in the same repository to make example less complicated but it also could work well for small projects and/or when backend and frontend are implemented by the same team. Any contributions are welcome! Intro It’s a story about how I tried to create a simple development environment for web project with Python-based backend and frontend written on Vue....


Minimal OpenStack Cinder setup

Published at January 7, 2019 ·  2 min read

During OpenStack Cinder development you may want to have some minimal working configuration to run the only Cinder on your environment. If you don’t need to test full volume attach flow with Nova, you may need to run only Cinder(cinder-api, cinder-scheduler, and cinder-volume, even cinder-backup is optional), RabbitMQ, and MySQL. Usually, for Cinder development, I don’t need full OpenStack up and running on my virtual machine. I just need to have only Cinder itself and such required things like database and message queue....


Blog Re-launch

Published at January 6, 2019 ·  1 min read

After more or less technical blog I’m ready to say it’s successfully re-launched. I hope, it’ll be interesting to read. I’m going to blog about the following topics this year: Python OpenStack Linux JavaScript (Vue.js and React.js) etc. I’ll try to publish new posts regularly and make them interesting to read. Enjoy the reading!...


Click and Double Click in JavaScript

Published at January 5, 2019 ·  1 min read

Spent a few hours on a simple task: create different handlers for ‘click’ and ‘double click’ events on the same element, onclick handler should not be executed if a double click event is raised. I hope, there is a better solution but I didn’t find it. I leave it here in case if somebody helps me with it: <html> <body> <a href="#" id="clickMe">Click Me</a> <script type="text/javascript"> /* click or double click */ var timeout = null; let link = document....


Learned About Pystone

Published at January 4, 2019 ·  1 min read

pystone is a simple Python benchmark which is included in a standard library. As any other benchmark you need to be careful with its’ results. It was interestings how fast are my environments. All tests were done using python3 -m test.pystone command. Intel Core i5 4590 @ 3.30GHz: Pystone(1.2) time for 50000 passes = 0.19486 This machine benchmarks at 256594 pystones/second Intel Core i7 2600 @ 3....


The Easiest Way to Parse Xml in Python

Published at January 3, 2019 ·  1 min read

I would like to add this as a note here. I really hope that we will not use XML anymore in the nearest future but in case if somebody needs it, you have to use untangle. untangle is awesome pure python library to parse XML withoud pain. You just need to try if if XML still exists in your world....


Pros and Cons of Vue.js

Published at January 2, 2019 ·  3 min read

Since I started to learn Vue.js a few months ago, I realized that it has some benefits I like and some things which I really hate. I’m not an expert in this framework, but I would like to share my thoughts about it. Pros: Simplicity It is really easy to integrate it into your existing web application by just adding one more ~20KB-size JavaScript library. It allows you to start using it with an old or legacy web site like you did with jQuery in the past!...


New Engine

Published at January 1, 2019 ·  1 min read

Actually, it was done some time ago but I think it’s time to make it more official. This blog was finally migrated from outdated blogengine.net to new Hugo. There is still a log of work in progress: restore images, fix theme, RSS and re-enable comments. I hope, it’ll help me to create more awesome posts this year. All sources are available now at GitHub:: https://github.com/e0ne/blog.e0ne.info https://github.com/e0ne/e0ne-hugo ...


Tags

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

Recent posts

Docker Image Collection

Not a DNS Server for Libvirt

Diskimage-builder in Docker

Everything as a Code

Vue.js, global variables and TypeScript


Archives

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