Уже лучше, но такой подход приводит к тому, что конфиг-файл не является изолированным хранилищем всех локальных настроек приложения, а дополнительно зависит от внешней среды, чего быть не должно. К примеру, настройки приложения нельзя перенести на другую машину простым копированием конфига.
Тезис «конфигурировать ПО надо через переменные окружения» — ОЧЕНЬ спорный.
Зависимость приложения от переменных окружения гораздо менее прозрачная, чем от переменных текстового конфига или от входных параметров. В конфиге аккумулированы все переменные (как правило, там указывают абсолютно все параметры и ненужное закомментаривают), он более-менее самодокументирован; в случае же переменных окружения задача аккуратно изолировать их в одном месте ложится целиком на совесть разработчика, и мало кто решает её так, как надо. Гораздо чаще разработчик где-то в глубинах кода втыкает что-то вроде «if $MYENV=xxx», в особо тяжёлых случаях ещё и не документировав MYENV. Особенно этим страдают приложения на интерпретируемых языках.
Я писал плагинытолько на Perl, для него есть костыль Vim::Perl (http://metacpan.org/pod/Vim::Perl) — умеет обращаться к VimScript-переменным и выражениям. Но вообще да, доступа абсолютно ко всему, как в VimScript, из перла нет. Про другие языки не знаю, мб к ним есть похожие модули.
Будем надеяться, что они сделают его нормальным опциональным компонентом (в «Add or remove Windows features»), а не как, например, Remote Desktop, для которого единственным способом поставить серверную часть является апгрейд всей системы до Professional.
> Ситуацию частично спасает пересохранение исходников в кодировке UTF-8 с обязательным символом BOM, без него Visual Studio начинает интерпретировать «широкие» строки с кириллицей весьма своеобразно.
Использовать Byte Order Mark? Серьёзно? Этот костыль времён CP1251 просто не имеет права на существование. Равно как и IDE/системы сборки, которым, видите ли, нельзя сказать «воспринимайте это как UTF-8».
Это если известно, что компания, об IP которой идёт речь, занимается хранением данных пользователей из России. Я не очень понимаю, с какой радости зарубежные компании будут раскрывать Роскомнадзору приватные детали своей инфраструктуры (в частности, где и как они хранят данные) и своих клиентов (страну которых они сами, тем более, могут не знать).
ИМХО это переводится как «Невозможно монтировать rootfs, расположенную на блочном устройстве».
Сообщение, как правило, означает, что указанного блочного устройства просто-напросто нет. У меня такое наблюдалось, когда ОС находилась на usb флешке, а usb драйвера в initrd включены не были. В вашем случае не знаю в чём дело. Предположу, что в скрипте init пропущен этап заполнения /dev. Измените скрипт init, вставив вызов "/bin/bash -i" перед попыткой скрипта что-то смонтировать. Потом как попадаете в этот bash при старте, уже в интерактивном режиме пытайтесь что-то смонтировать, выяснить что не так с системой, и т.д.
У вас личная неприязнь к автору? Это уже второй коммент с общей мыслью «не знаю зачем эта ваша initrd-only ОС, у кого-то избыток свободного времени, у меня на SSD всё работает с той же скоростью.» Высокомерие — плохая черта. Статья нужна потому, что она демонстрирует, что можно поместить ОС за пару простых действий целиком в память. Это как минимум стимулирует тех читателей, кто раньше не знал / не задумывался о такой возможности, глубже познакомиться с устройством init в дебиане, с initramfs/unionfs, задуматься о плюсах переноса какого-нибудь содержимого с харда на виртуальный диск. Люди разные, машины и задачи у них разные, у кого-то SSD, у кого-то HDD, у кого-то бездисковый тонкий клиент. В комментах выше пару кейсов привели, когда initrd нужен.
Под неубиваемостью скорее всего имелась в виду возможность любую поломку вылечить ресетом.
По поводу пропадания изменений: я бы не сказал, что прямо все изменения исчезают.
Они пропадают ровно по тому же принципу, как и в обычной системе на hdd: то, что было в памяти — пропадёт, то, что было на hdd/nfs/samba/… — не пропадёт. Т.е. никто не мешает, например, загрузить ОС в память, как делает автор, затем примонтировать HDD или NFS шару и редактировать данные там.
Вот с этим не понял — «но у меня получилось так подшаманить систему контроля версий, что нужное исправление просто появилось в коде». Т.е. в компании тестеры правят код? И вообще, какая разница, каким образом изменение появилось в коде — внесено руками или там смердживанием?
Респект, конечно, за разработку, но ИМХО пакеты для математической вёрстки с тач-интерфейсом или виртуальной клавиатурой нецелесообразны.
Скорость ввода по сравнению с клавиатурным вводом не просто ниже — катастрофически ниже. Поэтому по дороге домой или на работу разумнее использовать смарт/планшет для чтения, соцсетей ит.д., а в конце дороги всё равно вас ждёт или док-станция с нормальной клавиатурой, или полноценный ПК.
Нет, вот в этом проекте как раз слива данных нет. Личные данные хранятся на клиенте и сообщаются в исходном виде только вендору сертификатов, который в идеальном мире не собирает данные, а лишь подтверждает их. Если есть сомнения в конкретном вендоре сертификатов — им может стать кто угодно, хоть сантехник дядя Вася, достаточно лишь, чтобы обе стороны процесса обмена данными, клиент и service provider, подтвердили доверие этому вендору.
Производные от этих данных (e.g. возрастные рамки из примера) сообщаются service provider-ам (банкам итд) в обезличенном виде. Грубо говоря, всё, что знает service provider о клиенте, это его одноразовый ключ для обмена данными.
Протокол и клиентский код открыты, клиенту ничто не мешает провести аудит кода и убедиться в ограничениях на его отправляемые данные.
> Столмэн по идейным соображениям ненавидел идею коммерческого ПО
Это неверно. Столлман против проприетарного ПО, а коммерциализацию свободного ПО он, наоборот, поддерживает. На gnu.org это уже разжёвывалось неоднократно, например здесь: www.gnu.org/philosophy/selling.html
> и воровал код из Symbolics, копируя его в бесплатный продукт
Первый раз слышу о том, что он у кого-то в Symbolics что-то воровал и кому-то угрожал. Пытался в одиночку разработать аналог ПО, производимого Symbolics, — это да. Перманентно ругался с Symbolics — тоже да, но на этом всё.
> статья… о Лиспе (точнее о современном диалекте этого языка — Common Lisp)
Статья может создать у начинающего ложное впечатление, что Emacs использует Common Lisp и тесно с ним связан. Это неверно: основной диалект лиспа, используемый в Emacs, — это Emacs Lisp, и он является довольно ограниченной реализацией лиспа. Есть пакет cl, но это фактически слой совместимости c Common Lisp, а не реализация.
В теории было бы хорошо такое иметь даже в vim, но реальное положение дел следующее:
— На стандартной клавиатуре до шифта большим пальцем не дотянуться. И вообще, зажатие клавиши-модификатора обездвиживает руку, особенно это видно на составных командах vim («2dW» или «d(» не набрать с какой бы то ни было зажатой modkey без страданий).
— Нет редакторов (известных мне), которые бы позволяли при зажатой modkey функциональность как в vim command mode. Одиночные команды ещё ладно, а вот аналогов для составных команд нет.
Зависимость приложения от переменных окружения гораздо менее прозрачная, чем от переменных текстового конфига или от входных параметров. В конфиге аккумулированы все переменные (как правило, там указывают абсолютно все параметры и ненужное закомментаривают), он более-менее самодокументирован; в случае же переменных окружения задача аккуратно изолировать их в одном месте ложится целиком на совесть разработчика, и мало кто решает её так, как надо. Гораздо чаще разработчик где-то в глубинах кода втыкает что-то вроде «if $MYENV=xxx», в особо тяжёлых случаях ещё и не документировав MYENV. Особенно этим страдают приложения на интерпретируемых языках.
Использовать Byte Order Mark? Серьёзно? Этот костыль времён CP1251 просто не имеет права на существование. Равно как и IDE/системы сборки, которым, видите ли, нельзя сказать «воспринимайте это как UTF-8».
Во-первых, как они установят национальную принадлежность владельцев аккаунтов? По полю «страна», которую можно сменить нажатием кнопочки?
Во-вторых, как они вообще собираются определять субъектов этого ФЗ?
Сообщение, как правило, означает, что указанного блочного устройства просто-напросто нет. У меня такое наблюдалось, когда ОС находилась на usb флешке, а usb драйвера в initrd включены не были. В вашем случае не знаю в чём дело. Предположу, что в скрипте init пропущен этап заполнения /dev. Измените скрипт init, вставив вызов "/bin/bash -i" перед попыткой скрипта что-то смонтировать. Потом как попадаете в этот bash при старте, уже в интерактивном режиме пытайтесь что-то смонтировать, выяснить что не так с системой, и т.д.
Вот с этим не понял — «но у меня получилось так подшаманить систему контроля версий, что нужное исправление просто появилось в коде». Т.е. в компании тестеры правят код? И вообще, какая разница, каким образом изменение появилось в коде — внесено руками или там смердживанием?
Скорость ввода по сравнению с клавиатурным вводом не просто ниже — катастрофически ниже. Поэтому по дороге домой или на работу разумнее использовать смарт/планшет для чтения, соцсетей ит.д., а в конце дороги всё равно вас ждёт или док-станция с нормальной клавиатурой, или полноценный ПК.
Единственная проблема — низкоуровневая криптографическая библиотека idemix от IBM, отвечающая непосредственно за ключи, закрыта.
Вы понимаете, что всего лишь сводите задачу к задаче эквивалентной сложности?
Странный мир, в моём мире математические тексты почему-то верстают в TeX
Производные от этих данных (e.g. возрастные рамки из примера) сообщаются service provider-ам (банкам итд) в обезличенном виде. Грубо говоря, всё, что знает service provider о клиенте, это его одноразовый ключ для обмена данными.
Протокол и клиентский код открыты, клиенту ничто не мешает провести аудит кода и убедиться в ограничениях на его отправляемые данные.
> Столмэн по идейным соображениям ненавидел идею коммерческого ПО
Это неверно. Столлман против проприетарного ПО, а коммерциализацию свободного ПО он, наоборот, поддерживает. На gnu.org это уже разжёвывалось неоднократно, например здесь:
www.gnu.org/philosophy/selling.html
> и воровал код из Symbolics, копируя его в бесплатный продукт
Первый раз слышу о том, что он у кого-то в Symbolics что-то воровал и кому-то угрожал. Пытался в одиночку разработать аналог ПО, производимого Symbolics, — это да. Перманентно ругался с Symbolics — тоже да, но на этом всё.
> статья… о Лиспе (точнее о современном диалекте этого языка — Common Lisp)
Статья может создать у начинающего ложное впечатление, что Emacs использует Common Lisp и тесно с ним связан. Это неверно: основной диалект лиспа, используемый в Emacs, — это Emacs Lisp, и он является довольно ограниченной реализацией лиспа. Есть пакет cl, но это фактически слой совместимости c Common Lisp, а не реализация.
Я педалью пользуюсь для смены режима vim =)
www.kinesis-ergo.com/shop/savant-elite-2-pedal/
Но всё это привязывает к конкретной машине
— На стандартной клавиатуре до шифта большим пальцем не дотянуться. И вообще, зажатие клавиши-модификатора обездвиживает руку, особенно это видно на составных командах vim («2dW» или «d(» не набрать с какой бы то ни было зажатой modkey без страданий).
— Нет редакторов (известных мне), которые бы позволяли при зажатой modkey функциональность как в vim command mode. Одиночные команды ещё ладно, а вот аналогов для составных команд нет.