UPWORK/ODESK guru: Tips and Tricks for clients

skype: upwork.link , email: [email protected]

Archive for November, 2017

openSUSE: установить альтернативную версию python без изменения версии по умолчанию

without comments

Если вам нужно поддерживать разные версии одновременно, лучше всего установить их в свое дерево. configure принимает необязательный аргумент –prefix =/path/to/installation/root.
Мы могли бы установить дополнительный программный пакет в виде файла /opt/local/x86_64-linux-gnu/python-2.6.6. Пользователи, которым нужна эта конкретная версия, могут затем добавить /opt/local/x86_64-linux-gnu/python-2.6.6/bin к их $ PATH или использовать virtualenvили GNU stow .

Для примера следующий набор шагов:

Read the rest of this entry »

Written by spectre

November 27th, 2017 at 3:54 pm

Posted in Python snake

BASH: сохраняем историю со всех терминалов

without comments

Меня давно раздражает поведение файла истории Баша. Если вы используете несколько терминалов, вся история теряется, за исключением закрытия последнего терминала. Правильное поведение должно состоять в том, чтобы сохранить всю историю со всех терминалов! Легкий способ сделать это – просто сохранить команды в файле истории в реальном времени. Благодаря Linux Commando я знаю, как это сделать. Вот секрет:

1
2
shopt -s histappend
PROMPT_COMMAND = "history -a; $ PROMPT_COMMAND"

Поместите эти строки в ваш bash_profile или bashrc. Первая строка говорит bash добавить к истории вместо полной перезаписи. Вторая строка вызывает историю – каждый раз, когда отображается приглашение, которое по существу добавляет последнюю команду в файл истории.

Written by spectre

November 27th, 2017 at 1:42 pm

Posted in Bash,Tips and Tricks

Openstack Horizon: Bug of ‘FileField need clean up temp file….’ or how to remove supefluos files in Horizon/Django after uploading..

without comments

After few day envestigation code I created patch. I hope core developers can use it in horizon …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
234 @@ -442,7 +442,12 @@
235                                      {'data': data})
236          else:
237              def upload():
238 -                return glanceclient(request).images.upload(image.id, data)
239 +                glance_answer = glanceclient(request).images.upload(image.id, data)
240 +                if isinstance(data, TemporaryUploadedFile):
241 +                   if glance_answer[0].ok is True :
242 +                      data.file.close_called = False
243 +                      data.file.close()
244 +                return glance_answer
245              thread.start_new_thread(upload, ())
246
247      return Image(image)

Enjoy! Free!

Written by spectre

November 19th, 2017 at 5:16 pm

Posted in Tips and Tricks