Используем Xfce4 Terminal как выпадающую консоль (quake-like)

За всё время использования linux, я почти с самого начала "подсел" на так называемые quake-like выпадающие терминалы, и уже просто не могу представить свою повседневную работу за компьютером без выпадающего терминала. Когда пару лет назад я пересел на Xfce4, был приятно удивлён когда обнаружил, что стандартный xfce4-terminal может работать как выпадающий.

Читать дальше →

Запуск Flask приложения c uWSGI, virtualenv и nginx

В мире python существует довольно много различных приложений "супервизоров" предназначенных для запуска веб-приложений: uWSGI, gunicorn, gevent, twisted web и т.д. Однако, пожалуй, наиболее производительным и гибким супервизором является uWSGI. В этом посте я расскажу как запустить ваше Flask приложение под uWSGI. Конечно же, настроим nginx для проксирования запросов и отдачи статического контента.

Читать дальше →

Xfdashboard - дашборд в духе gnome shell для xfce

Xfdashboard - это небольшая программа которая добавляет в Xfce дашборд очень похожий на тот, который в gnome-shell. При запуске программы слева будет док панель с приложениями, справа миниатюры рабочих столов, сверху строка поиска и основную часть экрана будут занимать миниатюры запущенных на данном рабочем столе приложений.

Читать дальше →

Удаляем случайно закомиченные приватные данные из git репозитория

Однажды, работая с git репозиторием вы можете случайно отправить (закомитить) в репозиторий свои личные логины, пароли или SSH ключи. Конечно, с помощью git rm можно удалить файл, но файл так же будет присутствовать в истории. К счастью есть утилиты которые позволяют удалить файл из git репозитория полностью. В это статье описано как использовать BFG Repo-Cleaner и git-filter-branch для полного удаления файла из git репозитория.

Важно: после того, как файл с приватными данными попал в репозиторий, все данные в нем можно считать скомпроментированными, и необходимо незамедлительно предпринять меры (поменять пароли, и т.д.). Нет возможности проследить успел ли кто либо посмотреть или скачать эти файлы.

Читать дальше →

Django - делаем дамп базы данных и восстанавливаем из него с dumpdata и loaddata

Сколько лет пишу на django, и только недавно внезапно обнаружил, что у неё оказывается есть встроенные стредства для дампа и последующего восстановления схемы базы данных. Это бывает довольно полезно, когда надо по быстрому кому-то передать дамп с тестовыми данными чтобы воспроизвести проблему, или просто передать фикстуры.

Читать дальше →

Статические сайты и форма обратной связи

Я люблю статические блогие и веб-сайты. Они простые и быстрые, но это все таки простые статические страницы. Если с комментариями все довольно просто, и можно использовать disqus, то с формой обратной связи все несколько сложнее. К счастью и в этом случае можно обойтись без полноценного сервера.

Читать дальше →

Дополнение Speeddial2 в Vivaldi

Когда-то давно, ещё до появления браузера Vivaldi, я несколько раз пробовал перейти с Firefox на Chrome. Eдинственное что мне нравилось в Chrome, и чего не было в Firefox - это дополнение Speeddial2. Недавно Vivaldi обновился до версии 1.2, и в нем появилась возможность задать стороннюю страницу для новой вкладки, и, соответственно использовать Speeddial2.

Читать дальше →

Python flask фреймворк - правильная структура приложения

Многие фреймворки диктуют свою структуру приложения при разработке. С одной стороны это хорошо: в больших проектах человеку знакомому с фреймворком будет легче и проще вникнуть в проект. С другой стороны - это накладывает определенные ограничения, и иногда вынуждает использовать методы и паттерны без которых вполне можно было обойтись. Во всех таких фреймворках есть определенные инструменты позволяющие разделять приложение на модули. Во flask так же есть подобный инструмент, и называются он blueprints.

Вопреки частому заблуждению, flask прекрасно подходит для больших проектов. В нескольких таких крупных проектах мне даже довелось учавствовать. Поэтому, если вас убеждают, что flask никто не использует не верьте им. Ещё как используют. Flask прекрасный, небольшой фреймворк подходящий для очень широкого круга задач.

В этой статье я расскажу про наиболее популярную, гибкую и правильную на мой взгляд структуру flask приложения. Используя подобную структуру при разработке, вы сможете построить гибкое и удобное приложение модули которого можно будет с легкостью переиспользовать в других проектах. Определенно стоит уточнить, что серебряной пули нет, и далеко не всем может подойти такая структура, но если вы не очень хорошо знакомы с flask, то вам определенно стоит как минимум взять её за основу.

Для тех, кто не знаком с Flask - это небольшой фреймворк написанный на языке python c весьма большим сообществом, и множеством модулей на все случаи жизни. В отличии от, скажем, Django, Flask не навязывает определенное решение той или иной задачи. Вместо этого, он предлагает использовать различные сторонние или собственные решения по вашему усмотрению. Я ни в коем случае не хочу сказать, что Django плохой фреймворк. Просто в некоторых случаях Django вынуждает писать много лишнего кода попутно залезая все глубже и глубже во внутренности самого фреймворка. Так что flask - это лишь ещё один инструмент, подходящий под определенные задачи.

Disclaimer: в этой статье нет ничего принципиально нового и неизвестного. Все это общеизвестные практики, только собранные в одном месте. Эта статья ориентирована в основном на тех, кто не знаком с flask и новичков.

Читать дальше →

Backup restore postgresql базы данных с pg_dump

pg_dump - это утилита позволяющая делать бэкап базы данных из postgresql. Она сохраняет в файл набор SQL команд которые полностью воссоздают структуру исходной базы данных. Для последующего восстановления из подобного файла достаточно psql которая почти всегда идет в комплекте с самим postgresql.

С помощью pg_dump, вы можете сделать бэкап базы данных в текущий момент времени, и в дальнейшнейм развернуть его без каких либо проблем. Для тех, кто раньше работал с mysql, pg_dump может показаться весьма знакомым. С mysql в поставке идет аналогичная утилита под названием mysqldump.

В этой небольшой статье мы рассмотрим несколько полезных примеров использования pg_dump.

Читать дальше →

Tmux автозапуск при подключении по ssh

У меня часто бывает, что я подключусь к серверу по ssh и запускаю какую либо задачу (копирование, проверки) которая может затянуться. Потом внезапно либо ssh отвалится ибо подключился с ноутбука или, что чаще всего случается - перевожу комп в спячку напрочь забыв про то, что там где-то что-то на сервере выполняется. Выполняемая на сервере задача при этом само собой прерывается. Все это от того, что я забываю запустить tmux при подключении. Чтобы этого не происходило, я настроил автозапуск tmux при подключении по SSH.

Читать дальше →

Временно отключаем всплывающие уведомления Ubuntu с индикатором NoNotifications

У меня часто бывает, что во время презентаций или демонстрации экрана у меня внезапно всплывает уведомление поверх всех окон. Это довольно раздражает, а иногда даже показывает нежелетальную информацию, такую как личную переписку. К счастью, не меня одного этого беспокоило, и есть небольшой апплет, позволяющий временно отключить всплывающие уведомления в Ubuntu.

NoNotifications - это небольшой, простой апплет для панели Ubuntu (Unity) позволяющий временно отключить все уведомления и посторонние звуки в системе. Апплет крайне полезен во время презентаций, или когда необходимо сосредоточится на работе и все эти уведомления лишь отвлекают.

Индикатор крайне простой, и предоставляет всего две опции:

  • Do Not Disturb - которая собственно, отключает все всплывающие уведомления и звуки. Цвет индикатора так же меняется на красный;
  • Show Notifications - которая, очевидно, включает все отключенные уведомления и звуки;
Читать дальше →

Webtorrent - Bittorrent клиент с поддержкой DLNA, chromecast и Airplay позволяющий смотреть видео из torrent файла без скачивания

WebTorrent Desktop - это простой, OpenSource BitTorrent клиент который позволяет просматривать видео-файл из торрента без скачивания. WebTorrent доступен для Linux, Windows и Mac.

Я уже писал о Peerflix, приложении которое позволяет делать тоже самое, но Peerflix не такой удобный для использования, и заметно уступает даже WebTorrent, у которого тоже только самый необходимый набор функций.

У WebTorrent отсутствует какая-то база данных, или поиск по популярным торрент-трекерам. При первом запуске, приложение отображает самые популярные open source видео. Позже там будут отображаться последние добавленные пользователем торренты. В самом низу приложения есть поле, на которое можно переместить торрент файл с нужным фильмом, или нажать на него и в диалоговом окне найти и открыть файл.

Читать дальше →

Как подключиться к Cisco VPN с помощью Openconnect (альтернатива anyconnect) в Ubuntu Linux

У cisco есть пакет с клиентом anyconnect для linux. Только совсем не обязательно пользоваться их официальным клиентом, когда можно просто установить пакет из проверенно репозитория, и не захломлятять систему. Так что если вам нужно просто подключиться к cisco vpn под linux, но не критично использование официального cisco vpn клиента, то эта заметка для вас.

Читать дальше →

Загружаем последние комментарии из Disqus используя jquery/javascript

Как я уже писал, недавно я переехал с Wordpress на статический генератор блогов Pelican. Так как обработку комментариев на стороне сервера сделать нельзя, я перенес все комментарии в disqus. На старом блоге в боковом меню у меня отображались последние комментарии, и я хотел чтобы после переезда на новую блог платформу они сохранились. К счастью, у disqus есть API с помощью которого можно это реализовать.

Читать дальше →

Глобальное меню в Xubuntu 16.04 / Xfce4 с TopMenu

Не все пользователи любят окружение Unity, но нельзя отрицать, что многие вещи которые cannonical добавили в unity - действительно удобные, и полезные. Одна из таких полезных и удобных вещей - это глобальное меню. В этой небольшой заметке я расскажу как добавить глобальное меню в Xubuntu 16.04 / Xfce. Для добавления глобального меню, будем использовать апплет TopMenu созданный для MATE.

TopMenu - это апплет для панели, доступный для рабочих окружений MATE, Xfce и LXDE, добавляющий глобальное меню в эти окружения. Он доступен в официальных репозиториях Ubuntu 16.04 и прекрасно работает во всех остальных окружениях, несмотря на то, что создавался изначально для MATE. Есть лишь небольшой нюанс, который необходимо учесть для того, чтобы TopMenu заработал в других окружениях.

Следует обратить внимание, что TopMenu работает только для GTK2 и GTK3 приложений, и не работает для приложений написанных с использованием Qt а так же в LibreOffice, Firefox и Thunderbird.

Читать дальше →