Pull to refresh
15
0
Eldar Zakirov @unixod

C++ Software Engineer

Send message
..., но объясните подробнее, что не так с кредитами.

Как минимум то, что деньги сами по себе не могут порождать деньги. Ростовщичество это чистейший абсурд.

Судя по тому что писал Н. С. Лесков («Волки в России», 1869 год), роставщичество, еще не так давно считалось зазорным делом (ниже его цитата):

«Есть у нас и другие волки, которых не мешало бы истребить, это учредители гласных касс ссуд, разврат которых не только не уменьшился с гласностью, но принял более широкие размеры и наглость которых увеличилась пропорционально тому же. Мы не разделяем того мнения, что дозволенное законом ростовщичество — лучше скрытого, и имеем на то свои основательные причины. Прежде ростовщики сознавали, что действуют преступно, и всеми мерами скрывали свое гнусное ремесло, что много ли, мало ли, но оберегало нравственность народа. Тогда ростовщичеством не всякий решался заниматься, не только боясь этого занятия как противозаконного, но и стыдясь его как безнравственного, а потому ростовщиками в то время были только люди, которые, подобно публичным женщинам, могли совершенно отречься от стыда. Дозволение им действовать гласно привело к тому, что теперь многие приучились смотреть на ростовщичество как на простое коммерческое дело, и такое мнение случается не раз слышать от очень порядочных людей. Кроме того, многие лица, даже не совершенно испорченные, занялись теперь ростовщичеством с совершенно свободной совестью, как делом, дозволенным законом, а следовательно, и совершенно нравственным.»
см. подробнее 1
см. подробнее 2

И что мы видим сейчас в головах у людей. Окно Овертона в действии?

Также есть хорошие цитаты на данную тему от Фомы Аквинского, Мартина Лютера и Аристотеля, копипастить не буду, приведены здесь: islam.stackexchange.com/a/7699

Советую еще почитать про понятие частичного банковкского резерва.

А и совсем забыл: youtu.be/joBG79MNCGs
Давайте подумаем, как эту нездоровую практику прекратить.

Еще одно недоразумение которое я вижу во всем проекте это основания к нему, а если быть точнее отсутствие его описания.

В графе «Основание для разработки проекта акта» всего одно предложение:
«Поручение заместителя Председателя Правительства Российской Федерации».

Как это может быть основанием?
Либо у них своя терминология либо я не понимаю «правила игры».
Было время когда я хотел приобрести SDR (HackRf one) для экспериметнов (был вдохновлен идеей визуализации Wifi), но потом вспомнил про нашу таможню и возможные последствия от приобретения радиооборудования и прохождения его через таможню. В результате, решил не рисковать.

Считаю что все эти идиотские запреты, тормозят развитие в стране и мире в целом.
Всем привет!

Я вот чего не пойму в происходящем.

Предлагаемая к внесению в КоАП РФ статья имеет заглавие:

> Статья 13.41 Нарушение правил использования на территории Российской Федерации спутниковых сетей связи, находящихся под юрисдикцией иностранных государств.

Вопрос: где описаны эти правила? Я посмотрел www.consultant.ru/document/cons_doc_LAW_34661 но ничего по слову «спутник» не нашел.

Статья предлагает методы и размеры наказания за нарушения правил которые еще не написаны? Они потом дописываются что ли?
Добрый день!

В посте речь идет про разработку а не про деплой/использование конечными пользователями. Моменты описанные в статье актуальны для любого кроссплатформенного проекта.
По сути все зависит от конкретной реалиции STL ведь.
Всем доброго дня!

Всем интересующимся, в дополнение, советую также прочесть интереснейшую статью Efficient argument passing in C++11, Part1 (Part2, Part3). В ней, вопрос эффективной передачи аргуменов в С++11, охватывается чуть более глобально, а также предлагается подход к реализации runtime perfect forwarding'а (напомню в С++11, perfect forwarding доступен только для шаблонов, т.е. этот механизм нам доступен только в compile time).
Если быть точнее. то это пример технологии D-Pointer, который конечно же является частным случаем Pimpl.
Наверное как и раньше было, т.е. имеется ввиду цена товара.
Я тоже видать не понял суть) — не совсем понятен смысл шага на котором ребятам предлагается выпить крепкий горячительный напиток. Если под этим шагом понимается штраф, то почему бы его не заменить чем нибудь менее пагубным и более полезным, мы ведь за здоровое поколение.
Самое главное это, как написал выше EuroElessar:
compile-time check


Если же было принято решение вынести ключи, в виде строковых констант, например в отдельное пространство имен, можем столкнуться со следующим (вырезка из поста):
* во первых слишком многословно, т.е. информация дублируется (key1 -> «key1», и т.д.).


* во вторых при достаточном количестве ключей и секций, велика вероятность, что придется прописывать константы для всех комбинаций, что не очень удобно.

Тут стоит пояснить поподробнее. Если первый пункт («многословность») можно отнести чисто к взгляду с эстетической точки зрения, то второй пункт затрагивает некоторые практические моменты.

Например предположим что у нас в настройках надо хранить два пароля для FTP и для HTTP серверов:

в предлагаемом мною методе нам достаточно определить два enum's таким образом (дефолтную секцию General для наглядности опустил):

//Settings.h
class Settings{
    ...
public:
    enum Section{
        HTTP,
        FTP
    };

    enum Key{
        Password
    };

    ....

};


Альтернативный вариант c использованием констант:
//Settings.h
class Settings{
public:
    typedef const char * Section;
    typedef const char * Key;

    static Section HTTP;
    static Section FTP;
    static Key Password;

    ...

};

//Settings.cpp
Settings::Section Settings::HTTP = "HTTP";
Settings::Section Settings::FTP = "FTP";
Settings::Key Settings::Password = "Password";


А теперь представим что нам надо добавить еще 2 ключа — URI и Login (для HTTP и FTP серверов)

Вариант с «магическими» enums требует минимальных изменений — всего-лишь надо добавить два элемента в перечисление Key:
//Settings.h
class Settings{
    ...
public:
    enum Section{
        HTTP,
        FTP
    };

    enum Key{
        URI,
        Login,
        Password
    };

    ....

};


Вариант с классическими константами требует куда больше изменений:
//Settings.h
class Settings{
public:
    typedef const char * Section;
    typedef const char * Key;

    static Section HTTP;
    static Section FTP;
    static Key URI;
    static Key Login;
    static Key Password;

    ...

};

//Settings.cpp
Settings::Section Settings::HTTP = "HTTP";
Settings::Section Settings::FTP = "FTP";
Settings::Key Settings::Password = "URI";
Settings::Key Settings::Password = "Login";
Settings::Key Settings::Password = "Password";


Из приведенных выше примеров можно заметить, что вариант использующий классические константы требует больших изменений как в *.h так и в *.cpp файлах. Этого конечно же можно избежать если вынести константы в хеадер в отдельное пространство имен (как описано в посте), или же обозначить их как constexpr (но это уже требует поддержки C++11). Но в любом случае реализация получится более многословной => усложнение модификации.
Можно привести еще много фактов в пользу применения описанного тут метода по сравнения с применением констант, но это потребует куда большего объема текста чем этот комент)
В чем новизна? Что есть у Вас чего нет в официальной документации?
Осмелюсь спросить: Вы читали пост целиком? :)

Задав в поиске на хабре «QSettings» и нашлось больше 5 тем не включая вашу.
Если Вы все же читали пост целиком (ну или хотябы чуть дальше середины), то могли бы заметить что все те статьи, что выдает поиск, никак не касаются вопросов затронутых здесь. Там применяется простой метод использования QSettigns. Здесь же я описываю, метод работы с конфигами и его реализацию, которая не привызанна именно к QSettings, я же написал в статье:
В данной реализации, класс QSettings, используется исключительно для кроссплатформенного доступа к настройкам. Конечно же по желанию QSettgins может быть заменен любым другим механизмом, например SQLite.


Наверное я неправильно начал введение, что у читателей сводится мнение что все дальнейшее будет касаться исключительно работы с QSettigns.
Sannis:
А что мне это даст? Или что это даст заинтересованным лицам?

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

найти в скрипте эту строку
mpg123 -q $URL
и заменить (или дополнить) ее этой строкой
curl -o "$WORD.mp3" $URL

Таким образом будет скачиваться mp3 файл с названием того слова которое давалось в поиске.
Кстати, вроде Anki позволяет в словари добавлять аудиозаписи, так что таким образом можно пополнять и произношения. Насчет плагинов для Anki — надо посмотреть, возможно ли их написание.
Ди и несовсем понял про универсальный способ мультилайн однострочников, можно поподробнее?
Да согласен, лоадер выходит еще проще реализовать)
Интересно возможно ли седом реализовать аналог getAwkProgram (та что в репозитории)?
Да, действительно это тоже вариант, такой синтаксис я встречал однажды, но если честно ни разу не применял) Этот вариант гораздо лучше первого, но всеже считаю второй читабельнее, но это уже вопрос вкуса)

PRG=$(cat <<END
BEGIN{
print «from awk program»
}
END
)
Совет по поводу реализации данного алгоритма на С++:
Не всегда правильно/логично, с точки зрения проектирования, все реализовывать через классы. В данном случае считаю что логичнее было бы реализовать в виде функций. Да понимаю, что обычно всегда есть тяга к «объектности», но просто не всегда она уместна)
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity