• Какой смысл в повторной валидации данных из формы обратной связи на стороне сервера?

    petermzg
    @petermzg
    Самый лучший программист
    В том, что некоторые могут сделать так:
    wget "http://domain.com/path/action?param1=text&param2=text"
    Ответ написан
    Комментировать
  • Как связать PHP и GO?

    DevMan
    @DevMan
    тут зависит от потребностей и времени обработки.
    - если быстренько получить результат и вернуть назад - сискол через exec/system/etc или микросервисы
    - если колбасить долго - очереди.
    Ответ написан
    2 комментария
  • Как вести множество проектов на Go и не запутаться с папками и импортами?

    Храните ваши проекты в $GOPATH (C:\Go\src\supertool\)
    Зависимости конкретного пакета кладите в C:\Go\src\supertool\vendor
    Пакеты вашего проекта кладите в папку с проектом C:\Go\src\supertool\superpackage

    Собирать это всё дело потом через go build supertool
    Ответ написан
    8 комментариев
  • Как платить налоги с Яндекс.Денег?

    kumaxim
    @kumaxim
    Web-программист
    Ответ на Ваш вопрос - Яндекс.Касса.
    Подписывайте с ними договор как ИП и все платежи получайте от них на свой р\с в банке.
    Ответ написан
    5 комментариев
  • Что лучше JOIN или использование нескольких таблиц в запросе?

    Melkij
    @Melkij
    PostgreSQL DBA
    mysql> explain select test6.i from test6, test9 where test6.i=test9.i;
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    | id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                                              |
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    |  1 | SIMPLE      | test6 | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    2 |   100.00 | NULL                                               |
    |  1 | SIMPLE      | test9 | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    4 |    25.00 | Using where; Using join buffer (Block Nested Loop) |
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    2 rows in set, 1 warning (0,00 sec)
    
    mysql> show warnings;
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    | Level | Code | Message                                                                                                                                 |
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    | Note  | 1003 | /* select#1 */ select `test`.`test6`.`i` AS `i` from `test`.`test6` join `test`.`test9` where (`test`.`test9`.`i` = `test`.`test6`.`i`) |
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0,00 sec)
    
    mysql> explain select test6.i from test6 join test9 on test6.i=test9.i;
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    | id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra                                              |
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    |  1 | SIMPLE      | test6 | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    2 |   100.00 | NULL                                               |
    |  1 | SIMPLE      | test9 | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    4 |    25.00 | Using where; Using join buffer (Block Nested Loop) |
    +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+----------------------------------------------------+
    2 rows in set, 1 warning (0,00 sec)
    
    mysql> show warnings;
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    | Level | Code | Message                                                                                                                                 |
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    | Note  | 1003 | /* select#1 */ select `test`.`test6`.`i` AS `i` from `test`.`test6` join `test`.`test9` where (`test`.`test9`.`i` = `test`.`test6`.`i`) |
    +-------+------+-----------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0,00 sec)

    Как можно заметить, оба стиля переписаны в одно и то же представление.

    Имеет смысл использовать join on по соображениям читаемости человеком, т.к. такой join сразу говорит, по каким полям связаны таблицы, а where органично остаётся для фильтрации.
    Плюс, в случае как у вас со связью по паре одноимённых полей можно написать
    SELECT maker, price FROM Product JOIN PC USING(model)

    Что эквивалентно PC.model = Product.model, но короче и позволяет в дальнейшем ссылаться просто на model - парсер уже знает, что значение поля будет идентично и не будет теряться в догадках, хотели вы получить model из PC или из Product
    Ответ написан
    Комментировать
  • Почему некоторые сайты подключают сразу и Google Аналитику и Яндекс.Метрику, а не что-то одно?

    @danforth
    Поисковики прячут друг от друга ключи по которым приходят пользователи с поисковых систем. В Google Analytics нельзя (или можно, но с большим процентом ошибок) увидеть ключи по которым пришли люди с поиска Yandex, и наоборот.

    Также, каждый поисковик через свои сервисы может снимать поведенческие факторы, которые могут быть оценкой качества сайта. Если запустить сайт, а через год поставить на него Метрику, то с большой долей вероятности если сайт качественный, он подпрыгнет в поиске.
    Ответ написан
    Комментировать
  • MySQL: как можно уменьшить количество процессов mysqld?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    это не процессы, а треды.
    не там копаете, не трогайте.
    Ответ написан
    1 комментарий
  • Можно ли перенести базу данных из phpPgAdmin в phpMyAdmin?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Pg = PostgreSQL, My = MySQL. Это два разных движка SQL. Данные перенести можно. Впрочем, есть нюансы.
    Ответ написан
    2 комментария
  • Как запретить chrome делать screenshot рабочих столов?

    DIITHiTech
    @DIITHiTech
    Fullstack javascript developer
    Ну так там же checkbox есть "Включить этот снимок экрана"... что не так?
    А так любая программа может делать практически все что угодно, доступ к рабочему столу, к камере, микрофону и т.д вообще не имеют никаких механизмов контроля доступа, это не смартфон для игрушек. Виртуальная машина единственный выход.
    Ответ написан
    Комментировать
  • Node.js и php - как совместить?

    @DuD
    Поставьте Redis и по крону лейте в него последние данные из бд. Забирайте из редиса тем же php. Смысл плодить зоопарк технологий не понятен.
    Ответ написан
    8 комментариев
  • Свой почтовый сервер или сервис рассылки?

    plin2s
    @plin2s
    IT, инженер
    Посчитайте затраты на работу специалиста + доработки + внеплановые работы в случае проблем. Отсюда и отталкивайтесь. Скорее всего стоимость готового сервиса окажется ниже, возможно даже в разы.
    Ответ написан
    Комментировать
  • Как лучше создать шаблон битрикса?

    @SergeyZelensky-Rostov

    Установил на хостинг битрикс.
    3.У меня простой однастраничник в который нужно добавить пару инфоблоков

    Этож 3.14здец, для лендинга битрикс ставить
    Ответ написан
  • С каких пор появился фронтенд?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По пунктам:
    Почему в университете стало популярней разрабатывать сайты, ежели учить C++ и писать "толстые" клиенты.
    Потому что скриптовые языки дают существенно бОльшую скорость разработки чем C++ что собственно является главным аргументом. Разработчики стоят дороже железа условно.
    С++ остается в каких-то узко-специфических задачах со сложной математикой где производительности скриптовых языков не хватает. Писать на C++ интерфейс не актуально года с 2000 пожалуй что.

    Когда произошла точка перелома, что "тонкие" клиенты теперь популярней и почему? Хотя ведь мобильные приложения, это ведь тоже "толстый" клиент

    И мобильное приложение, и фронт сайта - могут быть и тонким и толстым клиентом, зависит от конкретного проекта.
    Это всегда баланс между бизнес-хотелками и затратами.
    Толстый клиент - лучше отзывчивость интерфейса, можно вынести часть нагрузки на железо клиента, дороже поддерживать (дорогие ios/android/angular/... разработчики, специфические проблемы синхронизации данных).
    Тонкий клиент - все наоборот :)

    UPD Если трактовать вопрос в стиле "почему веб более популярен чем десктоп":
    1. Как показывает практика любой софт который физически крутится у пользователя можно взломать и получить бесплатно. Если софт не лежит на торентах - скорее всего он никому не нужен.
    2. Многие сервисы сейчас продаются по модели ежемесячной-ежегодной подписки - это даёт существенно лучшие экономические показатели чем продажа платных обновлений.
    3. Интернет становится все более доступным и по географии и по $, все более быстрым.

    Все это делает модель SAAS и её наследников весьма привлекательным.
    Я бы сказал так - сейчас нужны какие-то ОЧЕНЬ веские причины не использовать SAAS.
    Ответ написан
    13 комментариев
  • Как избавиться от привычки усложнять задачу?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    У вас слишком много свободного времени, вот и не знаете куда девать.
    Ответ написан
    Комментировать
  • Как избавиться от привычки усложнять задачу?

    romy4
    @romy4
    Exception handler
    Этот процесс называется определение milestones. Вы сперва определяете MVP (minimal valuable product) — то есть тот уровень завершённости (без рюшечек и плюшек), при котором можно получать выгоду и дальше вы уже строите отталкиваясь от MVP
    Ответ написан
    Комментировать
  • Как сделать так, что бы краудфандинговые платформы сами рекламировали мой проект?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    наверно надо спросить у этих ресурсов?
    Ответ написан
    Комментировать
  • Можно ли при конфликте (INSERT) не обновлять SEQUENCE?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое поведение стандартно для большинства СУБД. Перед началом выполнения INSERT'а запрашивается следующее значение для SERIAL, и СУБД увеличивает счётчик на единицу. Но, поскольку за время выполнения запроса ещё несколько запросов могли потребовать тот же счётчик, то неиспользованные значения обратно не принимаются и образуются пропуски.
    Сделать свой счётчик можно, но ценой производительности (www.varlena.com/GeneralBits/130.php). Как правило, смысла в этом нет.
    Ответ написан
    Комментировать
  • Как должна производиться авторизация пользователя на сервере?

    @aol-nnov
    почему бы не воспользоваться готовыми алгоритмами? например, oauth2.
    Ответ написан
    4 комментария
  • Почему на iphone отображается некорректно сайт?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Это все от того, что эмулятор хрома не умеет эмулировать косяки мобильной оперы и мобильного сафари, а запускает все на своем движке, который гораздо лучше поддерживает стандарты
    Ответ написан
    3 комментария