Задать вопрос
  • Как изменить строку в файле?

    Adamos
    @Adamos
    Предположим, вы написали программу, которая докапывается до кластеров и заменяет байты прямой записью на диск.
    Теперь представьте:
    - что у пользователя нет админских прав, и хрен система позволит ему напрямую обращаться к диску;
    - что программа запущена под Wine, и подобные функции вызвать невозможно
    - что за время существования вашей программы разработаны другие файловые системы, и хранение файлов в них иное
    - что файл сжат на диске средствами Виндов
    - что файл лежит не на локальном диске, а на подключенном сетевом ресурсе
    - ...
    Вам все еще хочется идти глубже?
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    Adamos
    @Adamos
    Баланс.
    Если проект реально высоконагруженный, но простой, как табуретка - то человек прав, чем меньше в коде будет абстракций, тем меньше оверхеда.
    Но если проект не только высоконагруженный, но и сложный - вы мозг сломаете, делая его функционально. Функции хороши там, где нужны простые решения. Если вы можете разобрать всю архитектуру на простые решения - вам не нужно ООП. Если не можете - то без него проект захлебнется в собственной сложности.
    Ответ написан
    3 комментария
  • Как правильно реализовать авторизацию под эти задачи?

    Adamos
    @Adamos
    Оригинальный подход: сейчас все на сессиях в фс - это нормально, а вот лишний запрос к базе - это почему-то глупо. Давайте все хранить в куках и громоздить постоянные перепроверки того, что пользователь мог туда напихать. А если он, не дай бог, сидит не с одного компьютера, то на другом у него аватарка так и останется старой, пока он не перелогинится. Это же так приятно - разгребать такие мелочи, если они вдруг приведут к проблемам!
    Ответ написан
    1 комментарий
  • Использовать Windows 10 - уже стоит?

    Adamos
    @Adamos
    Мой ответ на заглавный вопрос - УЖЕ НЕТ.
    И меня это, черт возьми, радует!
    Ответ написан
  • Вопрос по подключении Я.Кассы для сайта?

    Adamos
    @Adamos
    К путям checkURL и paymentAvisoURL обращается сервер Кассы, а не браузер пользователя. Какая, к черту, авторизация?
    И этому серверу действительно нужно обратиться из интернета к скрипту на вашем сервере. Как он это сделает, если сервер доступен только локально?
    Вы, похоже, читали документацию не с начала и просто не поняли саму схему работы платежной системы.
    Ответ написан
    Комментировать
  • Устают глаза, какие характеристики у монитора должны быть для комфортной работы за ним?

    Adamos
    @Adamos
    Разница между TFT и IPS в вопросе усталости глаз примерно такая же, как между белыми обоями и бежевыми. То есть пренебрежимо малая.
    А теперь о реальности:
    1. Как подключен монитор? Цифровым шнурком (DVI) или аналоговым (D-Sub)?Второй может давать искажение изображения (главным образом размытие), которое вынуждает глаза постоянно "искать фокус" и не находить. Да, они от этого устают. Кстати, заигравшись с настройками сглаживания шрифтов, тоже можно добиться "мыла", на котором глаза не могут сфокусироваться.
    2. Какие настройки яркости и контрастности у монитора? Приложите хорошо освещенную распечатку на белом листе и попробуйте добиться ровно такого же восприятия черного и белого. Не пугайтесь, что экран стал тусклым и мрачным и поработайте за ним не меньше часа перед тем, как снова поднимать яркость.
    3. Что за монитором и вокруг него? Стена, окно, офис с лампами дневного света? Какие еще источники света (прямого или отраженного) попадают в поле зрения, когда вы смотрите в монитор? Скорее всего, проблема усталости глаз - именно в них или в их сочетании. Ищите, что можно изменить, устранить, заслонить. И проверяйте, насколько изменился комфорт глаз.
    У меня, например, в спальне стоит компьютер. Днем (при солнечном свете), ночью (в темноте) или при включенной люстре все нормально. Достаточно включить бра сбоку - через полчаса глаза истекают слезами. При том, что я к экрану весьма неприхотлив - много лет просидел за CRT, начиная с CGA...
    Ответ написан
    Комментировать
  • Как внедрить систему оплаты PayOnLine в Android приложение?

    Adamos
    @Adamos
    А как вы собираетесь проводить платежи напрямую с мобильного приложения?
    Платежной системе нужен уникальный номер заказа, например.
    После оплаты она сообщает магазину, что оплата этого номера прошла. Как она сообщит это мобильному приложению? На нем поднимается сервер, который держит связь с ПС?
    Но в требованиях ПС однозначно указано, что у вас на сайте должна храниться история операций.
    Ну, и внедрение секретного ключа магазина в приложение, которое свободно распространяется - это хороший такой шаг на грабли...
    Ответ написан
    4 комментария
  • Можно ли в таблице сущности хранить информацию о колличестве ссылающихся сущностей?

    Adamos
    @Adamos
    А что, просто добавить индекс на поле идентификатора товара недостаточно?
    Насколько я понимаю, при его наличии запрос на количество строк с таким индексом базу практически не напрягает.
    Или я ошибаюсь?
    Ответ написан
  • Как правильно привести к типу в C++\Qt?

    Adamos
    @Adamos
    Вообще такое приведение - это наследие С, и в С++ - моветон.
    Если же заменить его dynamic_cast и проверять результат на NULL, могут вскрыться всякие нюансы.
    У меня, например, были проблемы с приведением родительского окна к тому классу, которым оно должно было быть. Исследование показало, что в версии библиотеки под одну из платформ дочерний класс заворачивался еше в одного родителя, и такое приведение вызывало сегфолт...
    Ответ написан
  • Какой наиболее удобный (автоматизированный, простой) способ работы с двумерными динамическими массивами (матрицами) в С++?

    Adamos
    @Adamos
    class MyMatrix {
    public:
      MyMatrix(size_t width, size_t height);
      ~MyMatrix();
      size_t getWidth();
      size_t getHeght();
      MyType get(size_t x, size_t y);
      void set(size_t x, size_t y, MyType value);
    private:
      size_t _width, _height;
      MyType* _memory;
    };

    Если вы знаете С++, то написать реализацию у вас займет что-то в районе получаса...
    Ответ написан
  • Есть ли замена Photoshop?

    Adamos
    @Adamos
    Вопрос не имеет смысла. Автор не ищет замену Фотошопу, он ищет, как получить Фотошоп дешево. Вот только если бы Фотошоп можно было заменить дешевкой, он бы и стоил дешевле.

    Что никак не отменяет факта, что Фотошоп можно заменить. Но не дешевым или бесплатным Фотошопом, как мечтается халявщикам, а сменой принципов работы и изучением не-любительских инструментов. OpenSource решения потребуют не просто замены Фотошопа Гимпом и Инкскейпом, с ними придется еще и разобраться. Что в результате позволит либо профессионально вырасти и повысить производительность работы, либо понять, за что вы платите деньги Adobe.
    Ответ написан
    5 комментариев
  • Как правильно организовать пагинацию страниц с фильтром отображения?

    Adamos
    @Adamos
    Фильтры, отображение и пагинация - это просто набор значений, по которым вы с помощью ajax формируете выдачу.
    Какая разница, сформировался этот набор значений при хождении пользователя по фильтрам и страницам или сразу известен из url? Вы в любом случае подтягиваете ajax-ом соответствующий набор товаров.
    Фактически, параметры, переданные в url, просто заменяют параметры фильтров, отображения и пагинации по умолчанию. Выбор "ajax или url" вообще не стоит.
    Ответ написан
    Комментировать
  • Каковы Ваши доводы за неиспользование транслита в коде?

    Adamos
    @Adamos
    Есть технический вариант: внедрите в используемом IDE проверку синтаксиса и сделайте ее "чистоту" обязательной. Транслит не пройдет, а заодно уменьшите количество опечаток. Особенно актуально для языков с неявным объявлением переменных типа пыха с жабоскриптом.
    Ответ написан
    Комментировать
  • Как использовать $this в анонимных функциях?

    Adamos
    @Adamos
    Анонимная функция - это просто функция, а не метод класса. Какой $this, откуда?
    class A
    {
        public $me;
        
        public function getMe()
        {
            $x = $this->me;
            return $x($this);
        }
    }
    
    $a = new A;
    
    $a->me = function($object) { return $object; };
    
    var_dump($a->getMe());
    Ответ написан
  • Как решить эту задачу без «подбора» значений?

    Adamos
    @Adamos
    Как-то попадалась похожая задача, которая имела успешное решение с линией, разделяющей число 12 на 1 и 2 ;)
    А так - простейшее решение именно перебором. Поскольку перебор-то невелик: считаем сумму, находим половину, предполагаем, что один из концов линии между 12 и 1, проверяем, можно ли куда-то поместить второй конец, затем перемещаем первый между 1 и 2, снова проверяем второй и т.д. Даже для очень больших циферблатов компьютер решит такую задачу за миллисекунды.

    Если хочется интеллекта, пожалуйста: на первом проходе находим единственное решение либо два ближайших неподходящих варианта. На втором получается, что мы из суммы вычитаем то число, на котором начиналась последовательность, но добавляем по 1 на каждый член этой последовательности. Сравниваем результат с теми цифрами, в которые упирается второй конец... в общем, подозреваю, что расчет будет дольше, чем по выше предложенному примитиву.
    Ответ написан
    Комментировать
  • Нужен ли антивирус для LINUX, какой выбрать?

    Adamos
    @Adamos
    Антивирус либо не понадобится, либо не поможет.
    В зависимости от того, будет ли установлен Wine и сможет ли он запустить не то, что вы имели в виду.
    Трояны-шифровальщики, например, под Wine работают совершенно без проблем...
    Ответ написан
    Комментировать
  • Что не так с робокассой?

    Adamos
    @Adamos
    А как вы понимаете "произвольную сумму"? Что ее, клиент должен на Робокассе где-то выбрать?
    Логично у вас же на сайте предложить клиенту указать сумму, сформировать заказ на нее (в полном соответствии с документацией РК) и тогда уже передавать эту информацию платежной системе.
    Ответ написан
    Комментировать
  • На чем лучше всего писать современые прикладныи приложения под Windows?

    Adamos
    @Adamos
    По тем пунктам, которые знаю сам:
    Microsoft Foundation Classes - труп, официально закопанный самой MS
    Visual Component Library - труп, живущий только потому, что студентов годами учили писать под Борланд
    Qt - логичный вариант, минусом тяжеловесность, плюсом кроссплатформенность и развесистость (много готового кода, который можно просто использовать)
    wxWidgets - ну, представьте себе, что независимые программисты посмотрели на MFC и VCL и сделали все то же самое, но кроссплатформенно. Зависимостей нет - все API нативное под каждую платформу. Увы, востребовано оно куда меньше Qt, поэтому развивается вяло и не так богато готовеньким.

    Да, и сейчас уверенно заявлять, что будешь писать только под Windows, довольно неосмотрительно, как мне кажется...
    Ответ написан
    Комментировать
  • Используете ли вы витамины для "мозга"?

    Adamos
    @Adamos
    Во-первых, вы зря торопитесь. Посидите за компьютером лет пятнадцать-двадцать, начнутся проблемы со спиной, невролог вас будет кормить теми же витаминами В-группы в ударных дозах. Наедитесь еще.

    Во-вторых, на такие вопросы в интернетах чудовищное количество ответов, в основном оплаченных. Поэтому, когда вам будут настойчиво советовать пить обычный компливит, вспомните, что обычный ундевит от него отличается только ценой - раз в десять, правда... Ну, и найти его в аптеках труднее, особенно на витрине - там как раз красивые коробочки, прославленные телевизором.
    А так - попить витамины пару раз в год, для профилактики, никому еще не вредило. Но надеяться, что они дадут вам способности, которых у вас нет - как минимум наивно. Они разве что спасут от депрессии, хронической усталости и прочих состояний, граничащих с нерабочим. Подстегивать чем-то здоровый организм - это брать взаймы у собственного будущего. Очень не советую.
    Ответ написан
    8 комментариев
  • Каким образом избавиться от сообщения об неиспользуемых переменных?

    Adamos
    @Adamos
    void check_register( uint16_t status ) { status = status; }
    или
    uint16_t check_register( uint16_t status ) { return status; }
    и вызывать
    check_register(I2C1->SR1);
    нормальный компилятор вызывать такую функцию не будет, но проигнорировать ее тоже не сможет ;)
    Ответ написан
    Комментировать