• Какую роль играет PHP PDO и SQLite в "боевых" проектах?

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

    @InoMono
    Легко автоматически подчищать комментарии.
    Хоть в веб-сервере перед отдачей клиенту.
    Хоть перед при выкладке на сервер.

    А CSS - да, должны быть отдельными.
    Ответ написан
  • Переменная $PATH что это и для чего нужно?

    @InoMono
    Массив строк по сути.
    Разделенных символом ":" (в Windows - аналогично все, только разделено символом ";")

    Используется при запуске программ прежде всего (иногда и для других вещей)
    Список каталогов, где будет искаться программа, если не будет найдена в текущем каталоге.

    Является просто строкой. Одной строкой.
    Но некоторые GUI-шные утилиты при редактировании разделяют её на отдельные элементы. Для удобства редактирования.
    Ответ написан
    4 комментария
  • Как вы оцениваете вклад проект менеджмента и маркетинга в компании по отношению к разработке?

    @InoMono
    Слышал различные мнения по этому поводу, от "маркетинг важнее производства", до "50/50" и ниже.


    Зависит от того - что именно вы производите:

    Если вы производите простые зубные щетки - маркетинг не важен. Важна минимизация цены на производстве, дешевая логистика и тп.
    Если вы решите производить "премиальные" зубные щетки, то вам нужно будет объяснить потенциальным покупателям как именно щетина ваших щеток позволит им выигрывать в лотерею, например.
    Если же ваша щетка - это самолет, и ваше имя Боинг, то конкурентов у вас по всему миру - ну 2-3-4 фирмы. Маркетинг тут чисто условный.
    Если же вы собрались представить миру новый супер проект, вложили миллиард (ну что то вроде первых iPhone) - разумеется вы не захотите рисковать весь вложенный миллиард просрать. И весь проект будет хорошо согласован с маркетингом.

    То есть ситуации с важностью маркетинга в каждом конкретном случае есть разные - вплоть до противоположенных.

    Понимаю что бывает по разному, много факторов, но предлагаю взять за реальный или выдуманный пример компанию веб-разработки до 10 человек.


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

    По поводу менджмента не все так просто.

    Но если фирма наприрает на схему - дешевые разработчики, много. Да, тут нужно хороших менеджеров-погонщиков иметь.

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

    Если же вы полагаетесь на специалиста-разработчика. Если его квалификация высока, если он достаточно обязателен, а вы не боитесь получить от него полную зависимость (bus factor) - можно минимизировать менеджерскую составляющую. Что уменьшит и себестомость вашу. Но поднимет риски.

    То есть и с менеджментом есть в корне различные варианты.
    Ответ написан
    Комментировать
  • В чем проблема webstorm показывает весь код в ошибках и предупреждениях, но код работает и корректен?

    @InoMono
    JS - он такой. Он может быть местами некорректен. Но все равно работает.
    Браузер многое переваривает.

    Мы не телепаты - нужны конкретные примеры.
    Ответ написан
    4 комментария
  • Правильно ли использовать Docker для хостинга сайтов?

    @InoMono
    Он не для этого предназначен.
    Но можно и так.

    Хотя, изначально подразумевается, что ваше приложение целиком помещено в контейнер, вместе со всеми конфигурационными файлами и вместе с, как вы выражаетесь, "директорией самого сайта".

    Монтируется только то, что изменяется:
    например, логи (хотя в Docker считается нормой логи снимать с stdout и stderr)
    загружаемые пользователями файлы (хотя в подобных системах их все больше хранять на специализированных файловых сервисах типа AWS S3, Google Cloud, Openstack Swift)
    файлы базы данных (хотя не рекомендуется весьма и весьма аккуратно использовать такие нагруженные stateful-приложения в Docker)

    Изначально Docker предполагает, что вы просто взяли контейнер, перенесли куда угодно - и оно работает.

    Поэтому ответ - НЕТ.
    Вы используете Docker не по его задуманному авторами назначению.

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

    @InoMono
    Я бы не пытался сделать это самому.
    Люди уже ломали головы по этому поводу.
    И регулярное выражение, решающее проблему (решающее, с учетом разных нюансов), очень даже не простое.
    (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
    )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
    \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
    ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ 
    \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
    31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
    ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
    (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
    (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
    |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
    ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
    r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
     \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
    ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
    )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
     \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
    )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
    )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
    *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
    |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
    \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
    \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
    ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
    ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
    ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
    :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
    :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
    :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
    [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] 
    \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
    \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
    
    @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
    (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
    )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
    :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
    \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
    \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
    ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
    :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
    ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
    .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
    ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
    [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
    r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] 
    \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
    |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
    00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
    .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
    ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
    :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
    (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
    \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
    ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
    ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
    ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
    ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
    \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
    ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
    ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
    :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
    \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
    [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
    ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
    ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
    ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
    ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
    
    @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
     \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
    ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
    )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
    ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
    (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
    \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
    \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
    "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
    *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
    +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
    .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
    |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
    ?:\r\n)?[ \t])*))*)?;\s*)


    Взято отсюда www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

    Хотя есть и упрощенные версии.
    Ответ написан
    6 комментариев
  • Пойдет ли gta 5 на мой компьютер?

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

    @InoMono
    Головоломка - сильно зависит от возраста и пр.
    Для головоломки - только тесты на подопытных кроликах.

    Для игр другого типа, можно было бы хотя бы предварительно балансировать заставляя биться противников-ботов друг против друга.

    В головоломах - вам нужны живые люди.
    Ответ написан
    Комментировать
  • Форк из удалённого репозитория?

    @InoMono
    Что мешает самому проверить?
    Регистрация на ГитХабе бесплатна. Можно зарегистрировать второй аккаунт без проблем.
    Ответ написан
    Комментировать
  • Какие запросы к бд mysql можно считать быстрыми и какие медленными?

    @InoMono
    При грамотно построенной структуре БД, грамотных индексах и грамотном запросе - собственно выполнение запроса осуществляется за доли секунды, да.

    А вот получение отобранных данных, а тем более отправка этих данных, в например, браузер на другом конце света - долго.

    Поэтому в вашем конкретном запрос - есть еще много чего для оптимизации по скорости.

    Ну вот скажите мне, пожалуйста, зачем вам СЕМЬ ТЫСЯЧ строк?
    Ведь скорее всего это какое-то интерактивное взаимодействие с пользователем, типа веб-сайта.
    Он никогда не будет листать эти 7000. Хорошо еще, если первые 50 просмотрит.
    Даже если вы хотите угодить дотошному пользователю, который долистывает до последней страницы - вряд ли целесообразно извлекать из БД более 200-1500 записей.
    Так зачем вам мучать сервер данными, которые никому никогда не покажите.
    Ответ написан
    8 комментариев
  • Как правильно составлять акт приемки?

    @InoMono
    Проще написать в договоре - "факт оплаты является фактом признания работ выполненными". Это не потребует отдельных актов.

    Как именно отправлять - побеседуйте с бухгалтером ТОЙ организации.
    Есть очень и очень разные мнения.

    Я вот уже 15 лет с одной конторой работал - ничего, никаких лишних бумаг, хотя платили по банку.
    А теперь решили за каждое плевое дело, образно говоря, на сто рублей - полный пакет документов видите ли им стало надо.
    Ответ написан
    4 комментария
  • Как настроить соединение виртуальная машина (на комп 1) - вин7 (комп 2)?

    @InoMono
    В настройках виртуальной машины (что там у вас - Virtual Box, поди) в разделе "Сеть" есть различные режимы доступа к сети из виртуальной машины.
    Ответ написан
    2 комментария
  • Какая есть программа помощи в ответах операторам call центра?

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

    @InoMono
    Начать карьеру с фриленса - плохая идея.
    1) Получаем крайне низкий рост квалификации
    2) Получаем потолок роста
    3) Получаем дичайшую конкуренцию фактически "за еду". Ибо в нижнем сегменте фриленса - все переполенно.
    Ответ написан
    6 комментариев
  • Где взять бумагу для принтера, чтобы печатать билеты как в кинотеатре?

    @InoMono
    В типографии (в фирмах полиграфических) можно заказать любую перфорацию и любой размер и любой фоновый рисунок.

    И принтер не обязательно должен быть термо-, может и лазерный годится.
    Ответ написан
  • Как запустить ещё одну копию программы под Windows?

    @InoMono
    App Cloner нужен под Android просто потому что это требуется, ведь согласно общепринятым правилам работы программы аккаунты должны быть в AccountManager.

    Если вы про обычную Windows - нет такой необходимости.

    Можно запускать программы с параметром, указывающим какой аккаунт/профиль использовать.
    Можно установить программы в разные каталоги.
    Ответ написан
    6 комментариев
  • Как сделать переадресацию с мобильного на IP телефонию?

    @InoMono
    Если у вас Билайн, то они даже сами такую услугу предоставляют.
    Ответ написан
  • По какому принципу работает отложенный постинг в социальных сетях?

    @InoMono
    Cron не обязателен.
    Вполне может быть программа-sheduler, запущенная постоянно. Она и вплоть до секунды запускает публикации
    Ответ написан
    Комментировать
  • Можно ли получить информацию, что в БД появилось запись?

    @InoMono
    Во первых есть триггеры в базе данных
    Во вторых для высоких нагрузок это делают не так. Не через БД, а через MQ.
    Ответ написан
    Комментировать