Задать вопрос
  • MySQL - Длина/Значения - int(1) и tinyint(1) - это то же самое? В чем разница?

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

    Adamos
    @Adamos
    Для обучения не нужно ограничиваться одной ОС, но нужно поставить себя в рамки, вынуждающие ей действительно пользоваться.
    Если вы будете продолжать сидеть в Виндах и ковырять Линукс потихоньку в виртуалке - процесс затянется.
    Я бы советовал сменить основную ОС на ту же Убунту (или, скорее, тот дериватив, который больше зайдет), сжечь мосты и все такое. А настройку серверов изучать, поставив в виртуалку все подряд по тому же списку. Работать все равно придется именно так.
    Таким образом, вы будете вынуждены ближе познакомиться с системой (работать-то как-то надо) и при этом не будете постоянно доводить ее до проблем, которые сами не сможете решить без переустановки.
    Ответ написан
    Комментировать
  • Что значит базовая математика для программиста?

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

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

    Простейший пример - jQuery.cookies. Кукисы в браузере хранятся неудобно для редактирования, но это проблемы внутри черного ящика, снаружи их быть не должно. Снаружи вам надо поставить куку и прочитать куку. С коротким списком возможных свойств. Вот это класс и реализует, вполне успешно. Буквально одним методом.
    Мог бы этот метод быть простой процедурой? Да, конечно. Но как раз это - неважно.
    Ответ написан
    2 комментария
  • Как перенаправить браузер с http:// на file://?

    Adamos
    @Adamos
    Адрес file:// открывается браузером только в двух случаях.
    1. Если это адрес открываемой страницы (непосредственно пользователем открываемой, через меню "открыть" или вбиванием адреса в адресную строку).
    2. Если этот адрес - ссылка на странице, имеющей адрес file://
    Любые другие варианты считаются небезопасными по умолчанию, и без специально выполненной пользователем перенастройки браузера работать не будут.
    Ответ написан
  • Фреймворк или чистый код для разработки социальной сети?

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

    Берите CMS с фреймворком под капотом и не пытайтесь создать вселенную за семь дней. Если, конечно, ваша цель - не обучение, болезненное и убыточное.

    P.S. Оптимизация самопальной соцсети под высокую нагрузку (при статистике провалов таких проектов практически 100%) - это что-то вроде эргономики нижней стороны туалетного сиденья. Может быть очень увлекательно, но никогда не будет полезно.
    Ответ написан
    Комментировать
  • А можно ли, создать железный Интернет браузер, который будет полностью изолирован от OS?

    Adamos
    @Adamos
    Браузер - наиболее часто обновляемая программа в современных ОС.
    При этом за любым браузером стоит команда высококлассных спецов - и все равно в каждом обновлении латают обнаруженные дыры.
    Железное воплощение программы в первую очередь затрудняет ее обновление.
    Так что ваша идея - "давайте ходить на четвереньках, так же быстрее должно быть".
    Ответ написан
    4 комментария
  • MySQL server has gone away. Как исправить?

    Adamos
    @Adamos
    $col_article      = intval( $col_article );
    $col_name      = intval( $col_name );
    
    if($col_article == 0) {
      $col_article = "";
    }
    if($col_name == 0) {
      $col_name = "";
    }

    foreach(['col_article', 'col_name'] as $field) {
      $$field = (int) $$field;
      if($$field === 0) $$field = '';
    }

    $sql = "SELECT searchArticle and brand from `dk_prices` where searchArticle = ?s and brand = ?s";
        $result = $db->query($sql, $articleSearch, $brand);
        if(mysqli_num_rows($result) > 0) {
          $sql = "UPDATE `dk_prices` SET ?u WHERE searchArticle = ?s and brand = ?s";

    INSERT INTO dk_prices SET ?u ON DUPLICATE KEY UPDATE ...
    Ответ написан
  • Система оплаты на сайте?

    Adamos
    @Adamos
    Да можно просто на втором сайте продавать ключи доступа к первому.
    Но что-то эта схема попахивает, а у Палки на такой запашок чутье натренированное...
    Ответ написан
    Комментировать
  • Как научится понимать Bitrix за один вечер?

    Adamos
    @Adamos
    1. Стоит сделать себе копию сайта.
    Править Битрикс на живом сайте человеку, который в нем не разбирается - весьма рискованно и чревато.
    2. Вам обязательно нужен административный доступ к сайту, иначе вы не сделаете ничего в принципе.
    3. Основной шаблон - делаете копию папки, которая используется сейчас (какая-то из /bitrix/templates - какая именно, смотрите в админке). Там правите основные два файла - header.php и footer.php, прописываете стили в .css файлах, туда же сваливаете нужные для дизайна картинки.
    4. Дальше идете по всем подряд страницам и смотрите, где, кроме основного шаблона, используются компоненты (там останется старый дизайн). Ходите администратором, включив в верхней панели "режим правки". Он позволяет увидеть, где какой подключен компонент и шаблон к нему.
    Важно! Не правьте шаблоны, если они не в вашей папке! Сначала скопируйте (все тот же режим правки позволяет это сделать).
    5. Учите РНР, если еще не знаете. Придется.
    Ну, и удачи. Привет от скряги Авгия...
    Ответ написан
    Комментировать
  • Переадресация после оплаты Robokassa?

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

    Adamos
    @Adamos
    Зачем хранить тонны информации, которая уже завтра станет неактуальной. Храните одну запись - с перечисленными вами данными.
    А для конкретного дня делаете 2 запроса к базе. Сегодня будут экскурсии, у которых:
    1. Дата начала - сегодня.
    2. Дата начала в прошлом и:
    2.1 повтор - ежедневно
    2.2 повтор - еженедельно и сегодня тот же день недели (разница в днях кратна 7). Можно оптимизировать, записывая день в отдельный столбец, чтобы не вычислять его каждый раз.
    2.2 повтор - ежемесячно и сегодня тот же день месяца. Тоже возможна оптимизация.
    И все. Благодаря тому, что вы не будете пихать в таблицу ежедневные записи, она останется небольшой, и по ней вполне можно будет ходить такими запросами без особых тормозов.

    Естественно, сразу предусмотреть архивацию устаревших экскурсий. Флагом-датой в той же строке или отдельной таблицей, где на один столбец (дату окончания) больше и куда сбрасываются устаревшие данные.
    Ответ написан
    3 комментария
  • Как из ключей $_POST сделать переменные?

    Adamos
    @Adamos
    $expectingValues = ['name', 'surname'];
    foreach($expectingValues as $ev) {
      $$ev = $_POST[$ev];
    }

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

    Adamos
    @Adamos
    Вы за какие "следы"-то боитесь?
    История, куки и прочее того же Тора? Ну, смонтируйте папку, где он все это хранит, на tmpfs - при перезагрузке его не станет.
    Спрятать конкретные файлы? Ну, truecrypt или его наследники.
    Использовать при этом можно какую угодно систему, которую вам удобнее настраивать. Хоть банальную Убунту.
    Ответ написан
  • Риск авторских прав если программист заливает приложение в AppStore под корпоративным аккаунтом, но используя личную электронную почту?

    Adamos
    @Adamos
    Дисклеймер: я не юрист и могу ошибаться.
    Отсебятина: авторским правом обладает автор. Даже его работодатель обладает не авторскими правами, а всего лишь исключительными правами на результат авторского труда - интеллектуальную собственность.
    Вы, как наемный работник, написав программу, обладаете на нее авторскими правами, но не можете распоряжаться интеллектуальной собственностью, поскольку полностью передаете ее работодателю.
    Как ответственный за публикацию работник, вы можете публиковать ПО со своей почты.
    Если вы уволились - подобные действия с вашей стороны будут неправомерными.
    Не вижу, где тут какие-то проблемы у заказчика.
    Ответ написан
    5 комментариев
  • По ошибке купили комплектующие к ПК и OEM-лицензию. Что можно сделать?

    Adamos
    @Adamos
    Пол-России покупает винду ровно так же. Вы купили версию для одного компьютера - вот этот компьютер, вот документы о покупке ПО вместе с ним.
    Никакого убытка от ваших действий M$ не понесла, и на этом полномочия проверяющих заканчиваются.
    Ответ написан
    Комментировать
  • Как конвертировать pdf в html и обратно?

    Adamos
    @Adamos
    Алгоритм работы построен неверно, ибо исходит из ошибочной предпосылки возможности 100% корректной конвертации PDF в HTML.
    Лучше бы вам вернуться к ТЗ и изложить его.
    Есть, например, возможность использовать PDF как подложку для нового PDF.
    Кроме того, формат PDF предусматривает поля для заполнения (формы в PDF обычно делаются именно с их использованием).
    А ваша идея - это колхоз на костылях, нормального результата она не даст, только время потратите.
    Ответ написан
    Комментировать
  • Как можно из DOCX вытащить и отобразить на HTML-странице формулу, созданную с помощьюMicrosoft Equation 3.0?

    Adamos
    @Adamos
    Также, я уже обращался с подобным вопросом на ru.stackoverflow.com и мне написали, что из XML-файла можно вытащить все, что угодно.

    Это правда, но есть один нюанс: как из этого "чего угодно" отрисовать формулу - знает только майкрософтовский пакет. А вам данные из этого XML не дадут ровным образом ничего. Открытость по-майкрософтовски.
    Все, что вы можете сделать - это открыть документ в Офисе и попробовать экспортировать его в какой-нибудь реально распространенный графический формат. Можно попробовать начать с PDF...
    Ответ написан
    Комментировать
  • Как избежать race condition при переводе денег?

    Adamos
    @Adamos
    1. получаем баланс пользователя из базы
    2. проверяем хватает ли средств для перевода по полученному балансу в пункте 1
    3. обновляем значения у одного пользователя и другого в базе

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

    Adamos
    @Adamos
    Редко задаю вопросы, но в последний раз столкнулся с тем, что сервис требует закончить заголовок вопросительным знаком.
    Имхо, идиотизм и провокация безграмотных конструкций типа "Сделать нужную мне фичу?". Рекомендации - это замечательно, но принудиловка - глупо.
    Ответ написан
    15 комментариев