Да, вы правы, некоторые примеры не самые лучшие в плане безопасности.
Но решения для RDP, VNC, SMB и FTP (не FileZilla) лишены этого недостатка.
Для остальных программ вы можете просто убрать пароль из аргументов команды, и точно так же иницилизировать нуные подключения прямо из keepass, а пароль вводить привычным для вас способом.
Детище Apache до сих пор не может корректно открыть документы формата Microsoft Office OpenXML
Проблемма я думаю не сколько в OpenOffice, нежели в самом формате документа. Думаю разработчики умеют читать спецификации и писать код.
Большинство документов открывается вполне корректно, в то время как встречаются случаи, когда даже разные версии Microsoft Office открывают одни и те же документы по разному.
Дело в том, что при использовании WYSIWYG-редакторов, нельзя добиться 100% соответсвия того, чего хотел пользователь и того как редактор представил это в коде.
Всегда образовывается большая куча мусора, сбивается нумерация, заголовки и все такое. Microsoft еще усугубляют эту проблему упрощая и упрощая редактирование. Теперь редактор сам пытается угадать, что хочет пользователь: пользователю теперь не надо знать как оцентрировать заголовок, достаточно натыкать пробелов перед заголовком и редактор сам поймет, а иногда не поймет. И вот в таких случаях весь этот xml сплетается в такю кашу, что безболезнено передать ее в другой редактор становится невозможным.
На мой взгляд проблему надо решать с другой стороны: обучив пользователей какому-нибудь простому языку разметки, например Markdown. И использовать его повсеместно для обработки документов.
В дополнение к своей статье хочу рассказать про замечательный плагин для браузера: PassIFox для Mozilla Firefox и chromeIPass для Google Chrome.
В отличии от KeeFox он интегрируется вместо встроенной функции сохранения паролей в браузере, не изменяет стандартный интерфейс браузера и не создает новые диалоговые окна. (что особенно радует в тайловых wm)
В зависимости от того какая у вас задача.
Думаю в вашем случае вполне можно пробовать и ReactOS.
Если у вас ограниченное число ресурсов и вы хотите отделаться малой кровью, можете также же попробовать и Lubuntu — она имеет отлично настроенный LXDE из коробки и менее требовательна к ресурсам, чем система с XFCE.
Совершенно верно, у меня был случай, когда некая игрушка на Unreal Engine 4 (достаточно тяжелая для моего компа). Под wine работала несколько быстрее и плавнее нежели под Windows 7.
Подозреваю, что такой результат дорадо то, что компьютер не был загружен виндовым окружением, и мог больше ресурсов уделять непосредственно игре.
Docker registry? — вот это сюрприз! Побежал обновляться…
Для тех кто не знает, есть замечательный образ all-in-one gitlab для docker, sameersbn/gitlab, там уже доступна версия 8.8.3.
Когда вы сами пишите приложение, то да, учесть все это и сделать по правильному намного проще, чем тогда когда вы докеризируете уже написанное кем-то приложение, особенно если оно очень крупное (комбайн), состоящий из множества связанных между ссобой сервисов. Вот вам в качестве примера: gitlab, kolab, или и тот же самый postfix, который без rsyslog логи писать не будет.
Я не говорю что это правильно, я рассказал для чего ипользуется.
Затем, что вы не можете сделать этого заранее. Вы не знаете ни доменного имени которое будет указанно только при запуске контейнера, и конечно же вы не хотите, что бы у всех кто запустит ваш образ были одинаковые ключи.
Можно сделать и так чтобы можно было передать сертификат снаружи, все зависит только от вашей фантазии и функций которые желаете реализовать в вашем образе. :)
Если это контейнер базы данных, то вся персистентная информация должна быть вынесена в data volume.
желательно еще оставить возможность подключать внешнюю директорию на место этого volume (многие недолюбливают и недоверяют консепцию docker data volumes)
Я лишь привел в пример те операции которые должны выполняться внутри контейнера, если это контейнер базы данных, вам нужно создать базу данных с определенным именем, пользователем и паролем, которые, опять же, передает пользователь в виде переменных окружения (взгляните на официальный образ mysql)
Позже, контейнер вашего приложения при помощи --link получает эти переменные и себе, автоматически подключается к этой базе данных, создает таблицы, правит свои конфиги и наконец запускается (примерно так же устроен официальный образ wordpress, за исключением того, что таблицы он создает при начальной установке в браузере)
Концепция верная, всегда правильно пытаться ее придердиваться, но все же периодически возникает такая необходимость, например тогда, когда сервису для нормального функционирования нужны такие служюы как cron и rsyslog. Еще иногда находятся отдельно взятые моменты, когда зависящие друг от друга сервисы просто нецелесобразно пытаться разделить.
Насколько я понял, здесь проблема не сколько в Docker, а сколько в отсутствии нормального init'а. Проблема остается если вы запускаете программу которая плодит кучу процессов. При отсутствии нормального inita, может возникнуть данная ситуация.
Supervisord обычно используется в качестве инит системы для запуска и контроля ваших сервисов.
В официальной документации docker предлагается тогда, когда существует необходимость использовать несколько сервисов одновременно в одном образе.
Так же помогает решить проблему с PID 1 zombie reaping (если она есть).
В целом Sparrow выглядит довольно неплохо, возможно он и сможет помочь в конфигурировании образа.
Про конфигурирование во время сборки образа, здесь вопрос скорее в принципах его построения. Вы предлагаете оперировать образами так же, как и контейнерами: каждый отдельно взятый случай и уже неизбежна пересборка образа.
Это определенно имеет место быть когда у вас есть в этом необходимость, но если честно я так и не смог придумать такую необходимость, при которой нельзя было бы записать все инструкции в обычный Dockerfile.
Повторюсь, я имею ввиду именно установку и сборку ПО, а не его конфигурирование. Под конфигурированием я имею ввиду такие операции, как например: сгенерировать SSL-сертификат, создать базу данных $DATABASE, создать пользователя $USER с паролем $PASSWORD в приложении и т.д.; так как эти операции никак нельзя учесть при создании образа и они должны определяться пользователем при запуске контейнера.
Именно такой подход обеспечивает простое управление контейнерами и правильную работу внутренних механизмов --link в docker, а так же избавляет вас необходимости пересобирать образ для каждой нестандартной ситуации.
Ведь будь вы пользователем, все что вам нужно, это указать значение нужного параметра при запуске контейнера.
Кстати, насколько я понимаю Phusion в своем baseimage исполюзуют тот же подход, что и у вас.
Полностью поддержу,
Не понимаю зачем пытаться все конфигурирование запихнуть в Dockerfile? — на мой взгляд это неправильно.
Dockerfile — нужен непосредственно для создания самого образа и должен включать в себя такие операции как: скачивание исходников, сборка, установка необохожимых пакетов и зависимостей, добавление конфигов и вспомогательных скриптов, а так же для объявление volumes и портов, но не больше.
Все конфигурирование должно выполняться уже при запуске конкретного контейнера, например, стартовым скриптом, который выполняет предварительную настройку(установку?) приложения, исходя из переданных пользователем переменных окружения, непосредственно перед запуском самого приложения.
Project Ara — отлчичный прототип, только было бы круто, если бы вместо геймпада можно было бы установить полноценную клавиатуру.
Давно мечтал о чем-то таком среднем между Sony Vaio P и Nintendo DS и при этом на Android. Эдакая карманная среда для разработки.
К сожалению на данный момент, таких девайсов просто не существует :(
Да, вы правы, некоторые примеры не самые лучшие в плане безопасности.
Но решения для RDP, VNC, SMB и FTP (не FileZilla) лишены этого недостатка.
Для остальных программ вы можете просто убрать пароль из аргументов команды, и точно так же иницилизировать нуные подключения прямо из keepass, а пароль вводить привычным для вас способом.
Проблемма я думаю не сколько в OpenOffice, нежели в самом формате документа. Думаю разработчики умеют читать спецификации и писать код.
Большинство документов открывается вполне корректно, в то время как встречаются случаи, когда даже разные версии Microsoft Office открывают одни и те же документы по разному.
Дело в том, что при использовании WYSIWYG-редакторов, нельзя добиться 100% соответсвия того, чего хотел пользователь и того как редактор представил это в коде.
Всегда образовывается большая куча мусора, сбивается нумерация, заголовки и все такое. Microsoft еще усугубляют эту проблему упрощая и упрощая редактирование. Теперь редактор сам пытается угадать, что хочет пользователь: пользователю теперь не надо знать как оцентрировать заголовок, достаточно натыкать пробелов перед заголовком и редактор сам поймет, а иногда не поймет. И вот в таких случаях весь этот xml сплетается в такю кашу, что безболезнено передать ее в другой редактор становится невозможным.
На мой взгляд проблему надо решать с другой стороны: обучив пользователей какому-нибудь простому языку разметки, например Markdown. И использовать его повсеместно для обработки документов.
В дополнение к своей статье хочу рассказать про замечательный плагин для браузера: PassIFox для Mozilla Firefox и chromeIPass для Google Chrome.
В отличии от KeeFox он интегрируется вместо встроенной функции сохранения паролей в браузере, не изменяет стандартный интерфейс браузера и не создает новые диалоговые окна. (что особенно радует в тайловых wm)
done
ps: Спасибо за рассказ! — обычно я не читаю рассказы на хабре, но за ваш глаз прямо зацепился.
Жителям Казахстана, самый простой способ:
Tor-browser на постоянку, не анонимности ради, но для защиты своих же личных данных.
Что делать компаниям, уже другой вопрос:
Поднять шифрованный канал на сервер снаружи этого беспредела и гонять весь трафик через него.
Не понял. К чему этот комментарий?
В зависимости от того какая у вас задача.
Думаю в вашем случае вполне можно пробовать и ReactOS.
Если у вас ограниченное число ресурсов и вы хотите отделаться малой кровью, можете также же попробовать и Lubuntu — она имеет отлично настроенный LXDE из коробки и менее требовательна к ресурсам, чем система с XFCE.
Совершенно верно, у меня был случай, когда некая игрушка на Unreal Engine 4 (достаточно тяжелая для моего компа). Под wine работала несколько быстрее и плавнее нежели под Windows 7.
Подозреваю, что такой результат дорадо то, что компьютер не был загружен виндовым окружением, и мог больше ресурсов уделять непосредственно игре.
Такое и на Windows совсем не редкость. Подобный баг частенько случается с тем же Excell, хотя казалось бы...
Решается вызовом диспетчера задач, ПКМ по окну и пункт меню "Переключиться"
Docker registry? — вот это сюрприз! Побежал обновляться…
Для тех кто не знает, есть замечательный образ all-in-one gitlab для docker,
sameersbn/gitlab, там уже доступна версия 8.8.3.
Когда вы сами пишите приложение, то да, учесть все это и сделать по правильному намного проще, чем тогда когда вы докеризируете уже написанное кем-то приложение, особенно если оно очень крупное (комбайн), состоящий из множества связанных между ссобой сервисов. Вот вам в качестве примера: gitlab, kolab, или и тот же самый postfix, который без rsyslog логи писать не будет.
Я не говорю что это правильно, я рассказал для чего ипользуется.
Затем, что вы не можете сделать этого заранее. Вы не знаете ни доменного имени которое будет указанно только при запуске контейнера, и конечно же вы не хотите, что бы у всех кто запустит ваш образ были одинаковые ключи.
Можно сделать и так чтобы можно было передать сертификат снаружи, все зависит только от вашей фантазии и функций которые желаете реализовать в вашем образе. :)
Если это контейнер базы данных, то вся персистентная информация должна быть вынесена в data volume.
желательно еще оставить возможность подключать внешнюю директорию на место этого volume (многие недолюбливают и недоверяют консепцию docker data volumes)
Позже, контейнер вашего приложения при помощи
--linkполучает эти переменные и себе, автоматически подключается к этой базе данных, создает таблицы, правит свои конфиги и наконец запускается (примерно так же устроен официальный образ wordpress, за исключением того, что таблицы он создает при начальной установке в браузере)Концепция верная, всегда правильно пытаться ее придердиваться, но все же периодически возникает такая необходимость, например тогда, когда сервису для нормального функционирования нужны такие служюы как cron и rsyslog. Еще иногда находятся отдельно взятые моменты, когда зависящие друг от друга сервисы просто нецелесобразно пытаться разделить.
Supervisord обычно используется в качестве инит системы для запуска и контроля ваших сервисов.
В официальной документации docker предлагается тогда, когда существует необходимость использовать несколько сервисов одновременно в одном образе.
Так же помогает решить проблему с PID 1 zombie reaping (если она есть).
В целом Sparrow выглядит довольно неплохо, возможно он и сможет помочь в конфигурировании образа.
Про конфигурирование во время сборки образа, здесь вопрос скорее в принципах его построения. Вы предлагаете оперировать образами так же, как и контейнерами: каждый отдельно взятый случай и уже неизбежна пересборка образа.
Это определенно имеет место быть когда у вас есть в этом необходимость, но если честно я так и не смог придумать такую необходимость, при которой нельзя было бы записать все инструкции в обычный Dockerfile.
Повторюсь, я имею ввиду именно установку и сборку ПО, а не его конфигурирование. Под конфигурированием я имею ввиду такие операции, как например: сгенерировать SSL-сертификат, создать базу данных
$DATABASE, создать пользователя$USERс паролем$PASSWORDв приложении и т.д.; так как эти операции никак нельзя учесть при создании образа и они должны определяться пользователем при запуске контейнера.Именно такой подход обеспечивает простое управление контейнерами и правильную работу внутренних механизмов
--linkв docker, а так же избавляет вас необходимости пересобирать образ для каждой нестандартной ситуации.Ведь будь вы пользователем, все что вам нужно, это указать значение нужного параметра при запуске контейнера.
Кстати, насколько я понимаю Phusion в своем baseimage исполюзуют тот же подход, что и у вас.
Не понимаю зачем пытаться все конфигурирование запихнуть в Dockerfile? — на мой взгляд это неправильно.
Dockerfile — нужен непосредственно для создания самого образа и должен включать в себя такие операции как: скачивание исходников, сборка, установка необохожимых пакетов и зависимостей, добавление конфигов и вспомогательных скриптов, а так же для объявление volumes и портов, но не больше.
Все конфигурирование должно выполняться уже при запуске конкретного контейнера, например, стартовым скриптом, который выполняет предварительную настройку(установку?) приложения, исходя из переданных пользователем переменных окружения, непосредственно перед запуском самого приложения.
Давно мечтал о чем-то таком среднем между Sony Vaio P и Nintendo DS и при этом на Android. Эдакая карманная среда для разработки.
К сожалению на данный момент, таких девайсов просто не существует :(