Задать вопрос
  • Проектирование по контракту. Это для повторного использования или для корректности ПО?

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

    Adamos
    @Adamos
    Можно конкретно для вашего кейса искать закономерности вроде того, что отчество, если оно есть, никто не произнесет иначе, как после имени. И у русских оно обычно определяется по окончанию -вич/-вна. Ну, и по базе имен определяете, что может быть именем. А если не получилось - так, может, просто переспросить? У вас же интерактив ;)

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

    Adamos
    @Adamos
    Для начала - полные, а не относительные пути к файлам. И к программе biom желательно тоже.
    Потом можно взглянуть на документацию exec и обнаружить, что она возвращает то, что было выведено в терминал - ошибки, скорее всего, там.
    Ответ написан
  • Вопрос по паттернам проектирования?

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

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

    Adamos
    @Adamos
    На пальцах: когда вы открываете РНР-страницу, веб-сервер выделяет память и запускает в ней ваш скрипт. Когда вы открываете другую страницу - выделяется другая память. Никакого взаимодействия "на лету" между ними нет и быть не может.
    Ответ написан
  • Можно ли изучить Linux играя?

    Adamos
    @Adamos
    Вы любите играть?
    Удалите Винду - и у вас появится мощный стимул изучить Линукс, чтобы запустить на нем игрушки ;)
    Ответ написан
    Комментировать
  • Как адаптировать интерактивную карту?

    Adamos
    @Adamos
    SVG как раз остается кликабельным. Просто он становится меньше вставленной в него картинки, а по ней щелкать, естественно, бесполезно.
    Нужно закопать этого кадавра и сделать либо полноценный svg с реально отрисованными областями, либо ставить картинку без svg-обертки. Зачем она тут?
    Ответ написан
    Комментировать
  • Почему не срабатывает условие if else?

    Adamos
    @Adamos
    let buttonsOperations = document.querySelectorAll('input[type=radio]:checked');
    if(buttonsOperations.length > 0) {
            calculatorOperator(buttonsOperations[0].getAttribute('data-operation'));
    } else {
            output.innerHTML = '<strong>Ошибка!</strong> Арифметическая операция не выбрана.';
    }
    Ответ написан
    Комментировать
  • Предложите обоснование необходимости внедрения и сопровождения Linux-дистрибутивов (Alt, Mint, etc) в предприятиях малого предпринимательства?

    Adamos
    @Adamos
    Поставил и забыл. Проблемы - если только с поломавшимся железом. В отличие от винды, которая через полгода использования становится тормозной помойкой.
    Не требуется постоянное обновление железа вслед за требованиями Редмонда. У меня большая часть подопечных сидит на Core2Duo и не жалуется. У некоторых до сих пор Pentium4. Новых i3/i5 - считанные единицы, в очередную закупку планирую Ryzen3, разницы в работе все равно нет, а по цене проц+мать+память+SSD выходят в сумме 14 тысяч. Смысла добавлять к этому червонец за Винду, чтобы потом с ней корячиться, не вижу совершенно.

    Перемены, на самом деле, у многих назрели не только в системе, но и в самой организации работы. Многим фирмам давно пора выкинуть Винды и перестать мучить Ёксель, внедрить нормальную CRM - и работать на чем угодно, лишь бы браузер запускался...
    Ответ написан
  • Изоляция данных - следует ли внешней системе-поставщику данных знать о внутренних идентификаторах системы-потребителя данных?

    Adamos
    @Adamos
    "Ну конечно, естественно, само собой разумеется - нет!" (Гэндальф в русском переводе).
    Эта область называется "инкапсуляция", и это самые азы архитектуры.
    Ответ написан
  • Что с переводом идентификаторов?

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

    Adamos
    @Adamos
    Для стартапа с ничем не гарантированным будущим - тот, на котором вы готовы быстрее и дешевле всего сделать MVP.
    Ни в коем случае не тратя средств и времени на проработку масштабирования и прочих проблем роста.
    Потому что именно решение проблем роста до того, как они появились, лишает стартап всяких шансов начать этот рост.
    Ответ написан
    Комментировать
  • Существует ли десктопный клиент под Windows для Bitrix?

    Adamos
    @Adamos
    Можно, но не нужно. Разберитесь лучше, как конкретному пользователю дать права только на работу с новостями, или напишите страничку, где такая возможность будет реализована с использованием API Битрикса.
    Делать специальную программу под винды, чтобы работать с Битриксом - идиотизм. Для винды есть достаточно браузеров, а доступ к сайту все равно понадобится.
    Ответ написан
    8 комментариев
  • Насколько повысит безопасность сайта принцип хранить картинки на другом сервере?

    Adamos
    @Adamos
    Картинки могут использовать три вида уязвимостей:
    1. В настройках вашего сервера. Если у вас можно загрузить картинку и обратиться к ней, и она останется неизменной и может оказаться не картинкой, а скриптом, который выполнится на сервере. Искореняется проверкой MIME и отдачей статики без обработки.
    2. В библиотеках пользователя (старые версии libpng, например). В дикой природе практически не встречается, но если угодно, можно перекодировать файлы, используя ImageMagick.
    3. И вот тут всплывает третий вариант: атака самого IM всякими форматами, в которых поддерживаются внешние ссылки. Искореняется ограничением того, что вообще можно загрузить и обработать, PNG и JPG, и последующей обработкой их IM.
    На практике получаем, что проверка MIME и перекодирование IM решает все ваши проблемы. Заодно и еще одну - вам не навалят файлы такого размера, что внезапно кончится место на хостинге.
    А вынос на другой сервер - вообще ни о чем. Только лаги увеличивать. Так делают для очень высоконагруженных проектов... но там и таких вопросов не задают ;)
    Ответ написан
    3 комментария
  • Как с помощью PHP проверить существует ли номер телефона в месседжерах Viber или Telegram?

    Adamos
    @Adamos
    Вы оперируете неверными представлениями об этом API.
    Вам никто не позволит посылать сообщения произвольным пользователям.
    Только тем, кто подписался на ваш аккаунт.
    Их ID можно получить списком в get_account_info.
    И вам все-таки стоит обратиться к людям, которые умеют.
    Просто потому, что я, например, увидел это API 10 минут назад... а вы с ним без подсказок разобраться не смогли.
    Ответ написан
    5 комментариев
  • GIT-хостинг - удобный, простой, тупой - есть ли?

    Adamos
    @Adamos
    Вы, простите, свой код пишете - в чем? Введите в гугле это название + GitLab - увидите, что маетесь дурью, ища возможности заливать код "бразуером".
    Ответ написан
  • Можно ли вести разработку под iOS в VirtualBox?

    Adamos
    @Adamos
    XCode сам по себе сделан альтернативными людьми для альтернативных программистов, а в виртуалке он еще и адски тормозит. Элементарно неудобно.
    Но если вам удастся поднять Хакинтош, других препятствий не будет.
    Мне вот XCode нужен только для сборки приложения (оно на cocos2d-x С++, основная разработка и отладка идет под Андроид) - для этого вполне хватает виртуалки.
    Ответ написан
    2 комментария
  • Как сделать выполнение команды каждую секунду?

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

    Adamos
    @Adamos
    "Мама, смотри, я еду без рук!
    Мама, смотри, я еду без зуба!"
    Примерно поэтому. Риск напортачить выше, при этом 90% того, что вы делаете после ввода sudo, на самом деле прав суперпользователя не требует.
    Плюс все созданные рутом файлы принадлежат руту, а это часто не то, что вы имели в виду. Вместо шаманства с chmod/chown проще войти под тем пользователем, который будет с ними работать.

    Собственно, рекомендация "не работать под рутом" означает "не путай работу с администрированием, рут - только для второго".
    Ответ написан
    7 комментариев