• MYSQL foreign key on delete set NOT NULL (default, 0) - как исправить?

    metamorph
    @metamorph
    Нет такой возможности, а если в каких-то косячных базах и есть - это большая ошибка, поскольку нарушает ссылочную целостность данных.
    Внешний ключ обязан иметь либо существующее значение, либо NULL. == "значение неизвестно".
    Вам поможет смена типа данных с NOT NULL на NULL, я не понимаю, почему Вас это напрягает.
    Ответ написан
    3 комментария
  • Как сделать Q&A на Yii?

    Эммм... Пишите модели, контреллеры, делаете виды... В общем, так же как и большинство веб-приложений на Yii. Или вы хотите, что бы здесь за вас архитектуру придумали? Может еще и код написать?
    Ответ написан
    2 комментария
  • Какой CSS, HTML фреймворк выбрать для сайта визитки

    Diode-Bot
    @Diode-Bot
    Выбирай HTML - очень гибкий язык программирования.
    Ответ написан
    1 комментарий
  • Правильное хранение изображений на сервере

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Странный вопрос. Вы думаете, что есть какие-то хитрые способы хранения изображений?) На диск кладете картинку, в БД кладете путь к ней. Все.
    Ответ написан
    Комментировать
  • MySQL - как узнать, начался ли новый час?

    Возможно если я правильно понял задачу вам просто держать в таблице дату и время окончания почасового лимита, и каждый раз при отправке запроса сравнивать её с текущей датой и временем, вот и все. Дополнительных предвычислений не требуется а следовательно снижается нагрузка на сервер.

    Если конечно вам не нужно будет её каждый час пролонгировать, тогда лучше воспользоваться способом описанным @shogunkub
    Ответ написан
    Комментировать
  • MySQL - как узнать, начался ли новый час?

    shogunkub
    @shogunkub
    Программист+Инженер-электронщик
    Если условие проверяется хотя бы раз в час, то достаточно HOUR(last_limit_error) != HOUR(NOW()).
    Ответ написан
    Комментировать
  • Как указать корневой каталог сайта в .htaccess?

    nepster-web
    @nepster-web Автор вопроса

    Options +FollowSymlinks
    RewriteEngine On

    # deal with admin first
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} ^/(assets|css)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
    Ответ написан
    1 комментарий
  • Как правильно спроектировать БД?

    metamorph
    @metamorph
    Зависит от того, что именно Вы делаете.

    Если это, грубо говоря, лабораторная работа по нормализации таблиц - тогда ТОЛЬКО через промежуточную таблицу, за иные варианты Вам снимут голову.

    Many-to-many через pivot table чаще всего не нравится тем, что для добычи результата приходится делать двойной джойн, а потом каким-то образом разгребать дублирующиеся данные "основной" таблицы.

    Если не требуется искать блюда по ингредиентам ("найти все блюда, в которых есть чеснок") - тогда можно и схитрить немного.

    Обычный вариант обхода - добавить немного скриптовой части:
    - выгребаем данные основной таблицы: select * from meals where ...;
    - скриптом собираем полученные ID в массив и выполняем второй запрос: select * from ingredients inner join meals_ingredients where meals_ingredients.meal_id IN (...тут список полученных на первом шаге id)
    - разгребаем полученные данные по конкретным meal_id.

    Немного более извращенный - сериализовать список использованных ингредиентов в отдельное поле блюда (например, тип text). При этом в базах, отличных от mysql, можно будет еще и отлично искать по этому полю. Этакий noSQL в условиях, максимально приближенных к боевым.

    Фишка в том, что классическая нормализация many-to-many заранее учитывает тот факт, что первичные ключи могут (внезапно!) меняться. На практике же это ооооочень редкий случай.

    При этом скоростные тесты показывают, что выполнение двух запросов по времени сравнимо с выполнением одного мегаджойна, просто за счет того, что объем отдаваемых БД данных существенно меньше.

    Так что, как говорится, не Коддом единым.
    Ответ написан
    1 комментарий
  • Yii Framework: как настроить авторизацию и аутентификацию?

    fornit1917
    @fornit1917
    Неправильная проверка пароля. Если у вас в модельке в поле password реальное значение пароля, то в Identity вы его хэшируете и с собой же сравниваете.
    Если в модельке хэш, то опять fail: вы его снова хэшируете и с собой же сравиваете.
    Ответ написан
    Комментировать
  • Есть ли смысл в перезапуске Apache & Nginx по крону?

    @yokes
    Так делать нельзя.
    Apache сам умеет перезапускать child процессы, параметр MaxRequestsPerChild (см. гугл).
    MySQL начинает потреблять больше памяти потому что при запросах некоторая часть данных попадает в память чтобы в следующий раз быстрее ответить. И потребление памяти помогает повысить производительность.
    Nginx является связующим между внутренними процессами сервера и пользователями, он должен работать круглосуточно и поэтому работа с памятью там очень хорошо проработана, посмотрите модули и конфиг, может проблема в каких-то кешах.
    Ответ написан
    Комментировать
  • Как убедить программистов реализовать свой продукт (создать новый стартап) в свободное время?

    Anonym
    @Anonym
    Программирую немного )
    Что может заинтересовать программистов:
    - Должность. Например: Вася, ты будешь полгода пахать внеурочно, потом станешь директором компании "Коробочный продукт"
    - Зарплата. Например: Вася, ты будешь полгода пахать внеурочно, потом будешь получать в 3 раза больше, чем сейчас
    - Знания. Например: Вася, ты будешь полгода пахать внеурочно, сможешь освоить %технологию_а%, %технологию_б% и %технологию_в%

    Что не заинтересует программистов:
    - Неизвестность. Например: Вася, ты будешь полгода пахать внеурочно, но не факт, что это будет тебе интересно, не факт, что ты за это что-то получишь и не факт, что ты не помрешь с голода.
    Ответ написан
    Комментировать
  • Как убедить программистов реализовать свой продукт (создать новый стартап) в свободное время?

    @Wol_fi
    php, js, mysql, highload
    Сергей: Привет! Ты же программист? ВордПресс или другие движки знаешь?
    Предлогаю стать моим помощником по проекту. В проекте будет команда разработчиков.
    Проект интересный, но без бюджета, за работу платить не буду.
    В дальнейшем буду привлекать инвесторов с которыми уже имею положительные отношения.
    При финансировании если мне понравится твоя заинтересованность в проекте, будем проект продолжать развивать в месте уже на бюджетной основе.

    Если проект не заинтересовал тебя, удались пожалуйста из списка контактов.

    Если интересно, давай продолжим общение, есть ТЗ, наработка.
    Сергей: ?
    Григорий: Привет! Ты же человек? Кушать и одеватся нужно?
    Предлагаю бесплатно поработать на меня.
    В проекте будет толпа таких же как и ты.
    Проект интересный, но зп платить не буду.
    В дальнейшем буду привлекать инвесторов, и если ты не сдохнешь от голода и холода за это время, возможно у тебя появится копеешная зп.
    Ты согласен?

    Программисты такие же люди, как и все. И у них есть ежемесячные обязательные платежи, как и у всех. Так же им надо кушать, одеваться, как и всем. Вот Вы бы согласились работать за 50% шанс получения зп? Вот представьте, приходите за зарплатой, а бухгалтер кидает монетку, и говорит: "Извини, решка, в этом месяце ты без зп". Если вы верите, что проект успешный, то возьмите кредит, в конце концов. Но работать за туманные возможности, это уж извиняйте, никто на такое не согласится.
    Ответ написан
    Комментировать
  • Как доходчиво объяснить back-end разработчику значимость маркетинга?

    @IamG
    Я как представитель "той стороны", пришёл к выводу что "продажники это наше всё", только запоров два года фултайм работы на собственный стартап и потеряв существенные для себя деньги. Технологически мы были лучше конкурента, а про маркетинг думали - "фигня",какой на хер маркетинг.
    Поэтому в следующее своё начинание я позвал на ведущую роль именно продажника. Да, я не хожу на фуршеты к клиентам, не получаю похвал от них (но и пиздю..й тоже не получаю) про меня вообще из них никто не знает. Мне главное чтобы проект приносил деньги.
    Мне достаточно этих пунктов, чтобы не менять своё мнение:
    1) любой софт можно скопировать. даже если ваш программист выпускник МГУ, конкурент наймёт двух таких.
    2) мнение аторитетных людей IT-бизнеса что технология это не более 20% успеха. главное это дистрибуция (дайте ссылку хоть на лекции Тиля что на Хабре)
    3) систему продаж скопировать и воспроизвести значительно сложнее чем софт.
    Ответ написан
    2 комментария
  • Как доходчиво объяснить back-end разработчику значимость маркетинга?

    vinograd19
    @vinograd19
    Перестаньте ныть и просто делайте свою работу, разработчиков вы не исправите. Немного не понятна ваша роль в этой проблеме: вы бабло что-ли распределяете? Если так, то договоритесь с разработчиком заранее, что и когда будете делить. Это очень простой совет, и он самый важный, ибо ставит все точки над i. Также договоритесь, как именно вы будете расходиться: кому отойдут клиенты, кому домен и т.д.
    Ответ написан
    1 комментарий
  • На чем написан toster.ru?

    egor_nullptr
    @egor_nullptr
    nginx.conf
    server {
        server_name toster.ru;
        ...
        add_header X-Powered-By PHP/5.5.5;
        ...
    }

    Да-да, он на PHP :)
    Ответ написан
    Комментировать
  • Почему приложение Amazon Kindle под iOS7 постоянно перегружает экран после возвращения из другого приложения?

    Flanker_4
    @Flanker_4
    Как правило, "перезагрузка" экранов происходит при нехватке памяти. Когда Вы переходите в тот же Abby Lingvo он запрашивает слишком много памяти, система просит потесниться AmazonKindle и он выгружает себя (либо какую-то часть себя). iPad mini слабенький в этом плане

    Как вариант, попробуйте убить(всмысле выгрузить из памяти в панели где отображены все запущенные app) все лишние приложения , оставив только эти два. Ну или поставить другой словарь, который будет кушать меньше ресурсов. Возможно поможет... просто еще есть вариант, что так и было задумано разработчиками Amazon Kindle. Тогда этот совет мимо кассы

    До кучи, вот вам лайфхак
    http://ebookfriendly.com/translate-words-in-kindle-app/
    Ответ написан
    Комментировать
  • htaccess: почему может не отрабатывать правило?

    parmactep
    @parmactep
    Попоробуйте таким образом:
    RewriteRule .* - [L,G]
    А вот вам шпаргалка на всякий случай шпаргалка по mod_rewrite
    Ответ написан
    Комментировать