Задать вопрос
  • Как нарабатывать мышление "правильного" программиста?

    Adamos
    @Adamos
    Разбор ряда часто используемых алгоритмов. По-русски, подробно.
    Код, правда, на Паскале, но это для понимания практически неважно.
    Ответ написан
    Комментировать
  • Какую платежную систему/агрегатор выбрать для онлайн продаж на Европу и США?

    Adamos
    @Adamos
    Имея опыт работы с Робокассой, подключил PayPal без всяких проблем.
    Впрочем, проблемы были - с документами.
    Они нас месяца три мурыжили, желая все новых подтверждений, что мы не верблюды и выгодоприобретатель - тоже....
    С тех пор - платежи идут себе, все на автомате, никаких нареканий.
    Ответ написан
    Комментировать
  • Правильный подход к установке программ в Linux?

    Adamos
    @Adamos
    Устанавливать что-то из исходников, конечно, имеет смысл, только если этого нет в пакетах.
    Обычно это погоня за более свежей версией.
    Но, гоняясь за более свежей версией при разработке, провоцируешь проблемы при развертывании / распространении результата (если у тебя не было пакетов, их может не быть и на боевом сервере / у пользователей).
    Смысл затеи при этом несколько теряется...
    Ну, а если нужны свежайшие версии каких-то инструментов, то логичнее сидеть на тестовой версии системы, где такие пакеты появляются сразу после кое-какого тестирования. А не превращать стабильную систему в захламленную экспериментами.
    Ответ написан
    Комментировать
  • Как установить OS X на VB?

    Adamos
    @Adamos
    Необходимые требования:
    1) Процессор от Интел с поддержкой виртуализации.
    2) 64-битная система на хосте (чтобы VB мог запустить 64-битную OSX)
    3) Образ El Capitan (это последняя текущая версия)
    4) Инструкции по установке системы в VB - в интернете по запросу "OSX VirtualBox" находятся на первой же странице выдачи, важна не столько установка системы (там ничего сложного), сколько настройка VB.
    Ответ написан
    Комментировать
  • Как вы бы ускорили этот php код?

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

    Не стоит мешать код и верстку. Рано или поздно все равно дойдете до их разделения, лучше рано. Сначала весь PHP: подготовьте все данные, которые будут выведены. Потом пошла страница с минимальными вставками уже подготовленных данных. Максимум допустимой логики - вывод данных в цикле.

    Если у вас тяжелые внешние ссылки, сделайте ленивую загрузку. Хотя бы элементарно - выводите страницу со всей версткой, но без конкретики, а в конце пишите javascript, который назначает конкретным картинкам конкретные src. Это несложно, правда. Впрочем, если для этого познакомиться хотя бы и с общеизвестным JQuery, все станет еще проще...
    Ответ написан
    Комментировать
  • Какой USB wifi-адаптер выбрать, чтобы без проблем работал на Ubuntu 16.04?

    Adamos
    @Adamos
    Дрова? OpenWrt? Серьезно?
    TP-LINK TL-WN722N под Ubuntu - что 14.04, что 16.04 - определился сам без всяких вопросов и просто работает.
    Единственный косяк - после пробуждения машины из спящего режима адаптер может не проснуться. Есть ли аналогичная проблема на винде - не проверял.
    Ответ написан
    Комментировать
  • Причину зависания Apache нашел. Но как решить?

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

    Кто обрабатывает этот файл? Это голый HTML или какой-то скрипт?
    Ответ написан
  • Зачем ставить перед переменной $?

    Adamos
    @Adamos
    Есть такая практика - бакс ставится перед теми переменными, в которых должны быть объекты.
    Просто чтобы легко визуально отличать их от прочих переменных.
    Самому-то языку все равно, а программисту, бывает, требуется их отличать.
    Ответ написан
    Комментировать
  • Мало весящий IDE для С++?

    Adamos
    @Adamos
    Полноценный (с анализом кода и прочими плюшками) и при этом легкий - вещи сугубо взаимоисключающие.
    VisualStudio с С++ ведет себя так, как будто рекламирует С# (ирония, но недалекая от истины). Анализ кода там тормозит безбожно, на слабом железе его просто не дождешься. Хотя, может быть, хэлловорды он и быстро будет прожевывать...

    Eclipse, NetBeans, Clion - это все-таки Java со всеми из нее вытекающими - медленно и печально. Для слабого железа опять-таки противопоказано.

    QtCreator - имеет довольно много плюсов, но объем действительно может зашкаливать, так как он тащит за собой весь Qt в обязательном порядке.

    Есть легкие Code::Blocks и CodeLite - в принципе, настолько легкие, что их просто стоит попробовать, а если будет некомфортно - тогда уже подниматься по этому списку вверх ;)

    Альтернатива в порядке бреда: поставить какую-нибудь древнюю VS, которая еще нормально жевала С++ на слабых машинках (то есть до 2008 версии). Если она запустится на "десятке", то для изучения "крестов" может вполне сгодиться. С++0х и С++11, правда, придется исключить из учебной программы.
    Ответ написан
    2 комментария
  • Как лучше разметить диск?

    Adamos
    @Adamos
    Получается, у вас полезной нагрузки на этом винте - полсотни гиг.
    А разбит он совершенно бездарно - все в логическом томе.
    Я бы сохранил нужное файло и переразбил диск заново.
    Причем не под MBR (в винду ведь потянуло не настолько, чтобы ставить ХР?), а под GPT - и забыть о том, что разделы бывают логическими.
    А усилий по установке систем жалеть не надо. Это практика, она от повторения совсем не портится, наоборот.
    Ответ написан
    31 комментарий
  • Как сделать автоматическую карту сайта php?

    Adamos
    @Adamos
    Вам нужна та карта сайта, которая для пользователей - или sitemap.xml, которая для поисковиков?
    Первая должна бы строиться самой CMS, если у нее внутри не бардак.
    Вторая делается элементарно скриптом Google Sitemap Gen по логам сервера.
    Ответ написан
  • Как работает деинсталятор?

    Adamos
    @Adamos
    А зачем вы пишете деинсталлятор, когда есть готовые, полноценные и при этом бесплатные решения вроде NSIS, например?
    Ответ написан
    Комментировать
  • Подскажете агрегатор платежных систем?

    Adamos
    @Adamos
    Вам все равно надо ознакомиться с API каждой ПС, потому что иногда они меняются (например, идентификатор оплаты конкретно Яндекс.Деньгами на Робокассе менялся за последние годы пару раз).

    Вам все равно надо писать свою логику создания заказа и обработки сигнала о его оплате.

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

    Adamos
    @Adamos
    Как я начал делать, при авторизации с приложения делаю запрос к API такого плана:
    /api/?user.checkAuth={"login":"admin", "pass":"md5('.....)"} проверяю правильный ли хеш,

    А дальше генерирую случайную строку и сохраняю ее на сервере в паре СТРОКА - ПОЛЬЗОВАТЕЛЬ, так же отсылаю ее в ответ приложению, те эдакий сессионный токен, который знаю я, и знает приложение.


    Наоборот.
    Приложение стукнулось на сайт - пока без авторизации.
    Сайт создает запись о новом посетителе и присваивает ему токен. Возвращает id посетителя и токен.
    Приложение возвращает этот id, логин и хэш от (хэш пароля + токен) - сайт сможет повторить это хэширование, а хэш пароля (по которому у вас, получается, можно авторизоваться, даже не зная пароля) в передаче не светится вовсе.
    Заодно логика посетителя позволяет одному и тому же клиенту одновременно авторизоваться с нескольких устройств, не сбрасывая сессию.

    Чем-то грозит реализация, такая, что один user_id может иметь несколько токенов?

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

    Adamos
    @Adamos
    Вы таки будете смеяться, но именно для программиста - если это программист-прикладник - разные поколения одних и тех же железок не отличаются НИЧЕМ!!!
    Ответ написан
    Комментировать
  • Возможно ли использование нейронной сети для ценообразования в строительстве?

    Adamos
    @Adamos
    сметчик работает в определенно заданной среде (Федеральная база, Региональная, Территориальная и.т.д.).

    Попробую угадать: а поскольку эти базы сделаны через задницу, причем каждая - через свою, особенную, то свести их данные к чему-то единому может только человек... ну, или нейронная сеть после долгого обучения. Ведь правда?
    Ответ написан
  • Как пользоваться библиотекой idma/robokassa в laravel?

    Adamos
    @Adamos
    не пойми откуда взялась переменная $order

    Из вашего магазина. Для запроса на оплату нужны уникальный id заказа, его сумма и его название (в примере - просто текст, но его имеет смысл заменить на реальное название, так как пользователю на сайте Робокассы будет предложено именно это оплатить).
    Без этих параметров Робокасса вам, естественно, ничего не предложит. Что оплачивать-то?

    Так же, нужно и создавать отдельную таблицу для платежей?

    Опять-таки вопрос к вашему магазину. У вас должны храниться заказы, чтобы, когда Робокасса подтвердит вам оплату, сверить сумму - не подделал ли ее пользователь по дороге. В той же таблице можно хранить и информацию об оплате этого заказа.
    Ответ написан
  • Почему не компилируется helloworld с использованием wxWidgets?

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

    Adamos
    @Adamos
    Если командная строка не обязательна, то Meld как будто специально создан для вашей задачи.
    Ну, и у diff есть ключ --exclude (он же -x). RTFM.
    Ответ написан
  • Как разбить большую функцию на несколько мелких?

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