Задать вопрос
  • Тег p внутри h2 - хорошо или плохо?

    @Froggyweb
    Открой для себя классы
    тег p точно плохо - у него семантика абзац li - вообще не валидный, это элемент списка..
    вот пример https://codepen.io/anon/pen/eMRzyp
    Ответ написан
    Комментировать
  • Есть ли разница между двумя функциями?

    myjcom
    @myjcom Куратор тега C++
    не изобретайте велосипед)))
    библиотека STL
    используйте std::vector
    и std::rotate

    определение и пример
    en.cppreference.com/w/cpp/algorithm/rotate
    Ответ написан
    Комментировать
  • Как спастись от спама?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    то самое странное, те спамные письма, которые приходят, имеют в поле с ограничением по числу вводимых символов, меньше символов чем дозволено.

    Видимо защита на клиенте, а это никак не мешает отправить post запрос. Сделайте ajax форм и запретите кроссдоменные запросы. Ну и валидацию на сервере реализуйте обязательно.
    Вообще валидация на клиенте, это не защита, это удобство для пользователя. Она обходится без проблем. Так что если и реализовывать валидацию, как защиту, то на сервере.
    Ответ написан
    Комментировать
  • Почему не работает условие else if?

    А почему просто не сделать колонку unique? Зачем плодить в таблице пустые записи, если можно поставить 1 в поле reklama у единственного сообщения при ошибке добавления дубля... или увеличить на 1 - тогда будет счетчик спама )
    Ответ написан
    Комментировать
  • Как из конструктора класса вернуть массив?

    qonand
    @qonand
    Software Engineer
    Само по себе наличие классов еще не означает что Вы применяете ООП-подход. Ваш код как и сам вопрос говорит о полном не понимании ООП-парадигмы. Поэтому лучше разберитесь с ней, почитайте соответствующие статьи/книги, вместо того что бы "с ходу" писать кучу подобного кода. Не хотите разбираться - тогда вообще не стоит строить проект на объектах и всем что с ними связано
    Ответ написан
    Комментировать
  • На чём писать сайт для строительной фирмы? Нужно: форма для предварительного расчёта дома (много параметров), печать документов, регистрация и т.д?

    kotomyava
    @kotomyava
    Системный администратор
    Единственно хороший совет, если вы хотите, чтобы ваша форма была профессионально сделана, и нормально работала, нанять разработчика.

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

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

    Ну и немного критики самой задачи: Расчёт стоимости дома, даже предварительный, должен начинаться с выбора готового проекта. Если его нет, то такой расчёт просто бесполезен - будет огромное расхождение оценки с реальностью. А если есть, то и форма сложная и не нужна - надо просто предоставить выбор одного из проектов и нескольких возможных опций.
    Собственно, посмотрите, как это сделано на других сайтах такой тематики...

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

    longclaps
    @longclaps
    Оставайся под виндой, ты там нужнее.
    Ответ написан
    2 комментария
  • С++ или backend?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    42
    Ответ написан
    Комментировать
  • Почему в вакансии слишком много требований или это стандартные требования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    "по должности модератор сайта"
    Ваша должность модератора по идее никак и не связана с разработкой.

    Если бы вы год не модерировали, а писали код, для вас не было бы сложностью изучить какой-либо js фреймворк, css, получить опыт с VCS, с git и так далее.

    В вакансиях перечислены среднестатистические требования к уверенному джуниору - начинающему мидеру.
    Ответ написан
    Комментировать
  • Как устроена авторизация по паролю в web-приложениях?

    @Alexander1705
    Обычно разделяют сессии и авторизацию:

    Сессия. Чтобы реализовать сессии сервер при первом соединении с клиентом может генерировать некоторый случайный токен и устанавливать его в куки. Тут важно, что куки должны передаваться по защищённому каналу (HTTPS). Таким образом можно сохранять некоторую информацию о сессии в базе данных или же в самих куки, но тогда нужно подписывать куки, чтобы пользователь не мог их изменять.
    В любом случае, сервер будет хранить информацию о активных сессиях в БД.
    Подписать куки можно, например, добавив в них помимо нужной вам информации какой-нибудь HMAC.

    Авторизация. Сервер никогда не хранит пароли. В базе данных хранят логин и хеш пароля (на самом деле нет). Для авторизации пользовтель передаёт логин и пароль (HTTPS). Сервер вычисляет хеш от пароля и, если он совпадает, сессия помечается как авторизованная.

    Соль. Теперь представим, что вы действительно храните логин и хеш пароля в таблице:
    login | pass_hash
    ------+----------
    vasya | 4B32E1C...

    В идеальном мире это бы неплохо работало. Но в реальном мире 90% ваших пользователей будут иметь пароль вида 12345, password, password123, etc. Соответственно в базе данных будет много одинаковых хешей и злоумышленнику не составит труда быстро подобрать пароли большинства ваших пользователей.
    Для этого для каждого пользователя сервер сохраняет некоторые уникальные случайные данные (соль). А вместо хеша пароля хранится hash(pass + salt).
    login | salt   | hash
    ------+--------+-----
    vasya | 4B3... | 2A3B9...

    Таким образом усложняется перебор паролей по словарю.

    Хеш. Возможно вы где-то видели или слышали про MD5. Так вот, MD5 на сегодняшний день не является надёжной криптографической хеш функцией и даже если вы примените MD5 сто или тысячу раз, это не сильно изменит ситуацию. На сегодняшний день рекомендуется использовать SHA-2 или SHA-3.

    P. S. Соль и токены обязательно должны быть сгенерированы с помощью CSPRNG.
    Ответ написан
  • Как в Debian запустить "setup"?

    @Tabletko
    никого не трогаю, починяю примус
    tasksel - и там выбираете нужные компоненты. Остальное доустанивить через apt
    Ответ написан
    1 комментарий
  • Можно ли перенести сайт с сохранением данных с Битрикс на фреймворк?

    "из-за ограниченного бюджета" сразу откажитесь от использования 1C:Битрикс
    Ответ написан
    Комментировать
  • Где посмотреть, какие операции можно применить к определенному типу данных в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Это legacy наследние, которое сейчас считается устаревшим.
    Когда трава была зеленее, а С++ еще слишком молод, в чистом С вообще не было boolean, поэтому использовался int, который использовался в качестве flag переменных.
    При этом 0+1 = true, 1+1 = true, 2+1 = true (все верно)
    Но при этом 1-0=false (верно), однако 2-1=true, 3-1=true.

    Поэтому никогда никто не использовал декремент для подобных значений - иначе это могло привести к ошибке. Собственно инкремент тоже теоретически мог однажды переполниться...

    Когда появился boolean, то для совместимости сохранили возможность инкремента boolean, но с самого начала это считалось deprecated.

    The value obtained by applying a postfix ++ is the value that the operand had before applying the operator. [Note: the value obtained is a copy of the original value ] The operand shall be a modifiable lvalue. The type of the operand shall be an arithmetic type or a pointer to a complete object type. After the result is noted, the value of the object is modified by adding 1 to it, unless the object is of type bool, in which case it is set to true. [Note: this use is deprecated, see annex D. ]


    Кстати это в 2015 году уже официально отменили:
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p...
    "The ++ operator for bool was deprecated in the original 1998 C++ standard, and it is past time to formally remove it.
    Ответ написан
    Комментировать
  • Планирую в новую квартиру проводить интернет 100 Мбит/с, хочу чтобы все было без проводов, хватит ли мне скорости на 2 телевизора и 1 комп +телефон?

    Jump
    @Jump
    Системный администратор со стажем.
    Насколько будет все стабильно через Wi-fi?
    Стабильность и WiFi вещь не совместимая.
    Нужна стабильность -только провода.

    Ну и скорость низкая.
    FullHD может потянет - но если повезет, не повезет, значит не потянет. В любом случае зависит не от вас, а от соседей.
    А скажем с файловой шарой работать вообще невозможно - качать файл со своей шары будете в лучшем случае со скоростью 4-5Мб/с, ну это несерьезно.
    Ответ написан
    Комментировать
  • Авторизация на PHP?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Я бы на вашем месте, начал с понимания интернета и изучения поиска информации в нем.
    банально: заголовок вашего вопроса и поиск на данном ресурсе.

    А уже затем изучать программирование и т.п.
    Ответ написан
    2 комментария
  • В каких бесплатных IDE работают PHP разработчики?

    sabramovskikh
    @sabramovskikh
    Окей, гугл, Гугл ты тупой? Я хочу чтобы люди ответили именно на мой вопрос. Мой вопрос уникальный, а не такой-же как 336 тысяч других вопросов.
    Ответ написан
    1 комментарий
  • Для чего существуют другие парадигмы программирования?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Любую программу можно написать с любым подходом. Разница лишь в том, насколько удобно будет моделировать законы реального мира в программе. ООП потому распространено, что провести аналогию между программным обьектом и обьектом из реального мира очень легко. При программировании предметных областей которые не имеют осязаямых участников, могут быть удобны другие парадигмы. По той же причине когда нужно в ООП отображать неосязаемые сущности, могут возникать определенные сложности с именованием классов. Может замечали. Не все рифмуется в эту парадигму. Иногда вам нужны просто вычисления, тогда декомпозиция задачи на объекты не нужна совсем.
    Парадигма это всего лишь перспектива взгляда на одно и то же. В зависимости от того с какой стороны мы смотрим на предмет, очередность (приоритет) компонент его составляющих для зрителя будет меняться. В какой-то задаче может быть важно время, а в какой-то цвет, а в какой-то измерение. Что является единицей анализа в честь того и парадигма.
    Ответ написан
    Комментировать
  • Как не умудрённому клиенту выбрать честного и эффективного SEO-оптимизатора для своего сайта? Есть ли чек-лист по выбору сеошника?

    Jump
    @Jump
    Системный администратор со стажем.
    А вы уверены что вам вообще нужна SEO-оптимизация, и четко представляете что это такое?
    Рассмотрим комплексно - есть стоматология, ей нужны клиенты.
    Тут следует понимать что такое стоматология и специфику работы - все услуги оказываются на территории исполнителя, клиенты исключительно местные.
    Вы же не будете ставить пломбы дистанционно по RDP? И клиент не поедет в стоматологию в соседний город, или даже в соседний район крупного города. В большинстве случаев клиенты стоматологии это клиенты живущие поблизости, либо регулярно бывающие в районе ее размещения.
    Возможны исключения - если вы оказываете какие-то очень специфические услуги, которые просто не найти у других, или у вас есть уникальное оборудование единственное в стране или регионе.

    А SEO это просто привлечение народа на ваш сайт, там конечно можно таргетировать по географии, но это довольно неточно, и надеяться на это не стоит.
    Ну выйдете вы в первые строчки поиска вбухав кучу денег, что вам это даст? Клиенты все равно будут выбирать что поближе.

    В таком бизнесе сайт как правило это просто визитка, т.е информация, ну и возможность связи, и записи на прием.
    Надеятся на приток клиент исключительно с сайта бессмысленно.
    Нужна реклама, нацеленная на нужную аудиторию - и сайт в принципе можно использовать в рекламе для некоторых целей. Но сам по себе сайт не даст вам клиентов.
    Реклама может дать клиентов, клиенты возможно сразу поедут к вам, а может сначала зайдут на сайт, по ссылке из рекламы.

    Гораздо эффективнее найти хорошего рекламщика, который разместит информацию о вашей стоматологии во всех справочниках - в яндексе, в 2gis, повесит баннер на оживленной трассе, рядом с офисом, и.т.п.

    Хороший сеошник за хорошие деньги сделает ваш сайт популярным и выведет в первые строки поиска, но клиентов это вам не добавит. Поэтому даже если вы найдете хорошего сеошника, вы все равно потратите деньги зря.
    Ответ написан
    2 комментария
  • JSON тип данные в MySQL, в чем минус?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По большому счету это денормализация базы.
    Денормализацию стоит применять когда Вы 100% понимаете что делаете, получая в каких-то конкретных условиях ускорение каких-то конкретных запросов, взамен теряя в гибкости при дальнейшей разработке и в производительности во всех остальных местах.

    Попробую расписать на Вашем примере (хранить категории поста в свойстве поста в json) чтобы было понятней:

    Тут все отлично пока Вам просто нужно выводить категории у поста.

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

    Решение - заводить еще одну денормализованное свойство для категорий - в котором хранить id постов.
    Но дальше всплывают новые задачи которые в нормализованной базе решаются за 5 секунд, а в денормализованной - нужно опять же кодить:
    - поиск по нескольким категориям сразу
    - расчет количества постов у категорий
    - итд итп.

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