Задать вопрос
  • Как задать необязательные параметры в mysql?

    @IceJOKER
    Web/Android developer
    нужно в ручную проверять есть такой параметр или нет, и если есть, то уже дополнить строку запроса.
    $sql = 'select * from table where 1=1';
    
    if($param1)
      $sql .= " AND param1=param1";
    Ответ написан
    Комментировать
  • Как правильно структурировать mongodb?

    @bromzh
    Drugs-driven development
    Лучший способ - взять реляционную БД, раз тут зреет структура и отношения. Для этого они и нужны.
    Когда начинаются вопросы "какую структуру выбрать" или "как хранить, всё в 1 документе или по коллекциям" сразу становится понятно, что выбор БД был неверным.

    Но раз уж монга, то лучше хранить всё в 1 документе, а не размазывать всё по кучи коллекций. А чтобы быстро искалось (в том числе, и по полям внутренних объектов) есть индексы.
    Да, у монги есть и подобие транзакций, и джойны. Но в реляционных БД это всё сделано лучше и надёжнее, ACID всё же. Так что минимум коллекций, потолще документы.
    Ответ написан
    1 комментарий
  • Функция объекта не видит поля объекта при вызове из setInterval?

    petermzg
    @petermzg
    Самый лучший программист
    setInterval(function() { a.getXplusY() }, 1000);
    Ответ написан
    Комментировать
  • Функция объекта не видит поля объекта при вызове из setInterval?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Современное решение:
    setInterval(a.getXplusY.bind(a), 1000);
    Ответ написан
    Комментировать
  • Как безопасно передать пароль?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вариант первый, самый правильный - регистрацию пользователя делать только по https.
    Вариант второй - использовать асимметричное шифрование, для каждого сеанса на сервере генерировать пару ключей, передавать открытый ключ клиенту, на клиенте шифровать этим ключом данные, на сервере расшифровывать закрытым ключом.
    Ответ написан
    Комментировать
  • Какие сайты сейчас наиболее востребованы?

    petermzg
    @petermzg
    Самый лучший программист
    Самыми востребованными всегда были и будут порносайты.
    Ответ написан
    4 комментария
  • Как запустить 1 node.js приложение на нескольких поддоменах?

    Вы можете все поддомены и домены настроить на один свой сервер, а в коде приложения через req.host смотреть с какого домена/поддомена идет запрос, и отдавать нужный контент.
    Ответ написан
    3 комментария
  • Как забить весь блок без процентов?

    Stalker_RED
    @Stalker_RED
    Старая добрая табличка же jsfiddle.net/94suv0ah
    Можно еще с флексбоксом поробовать jsfiddle.net/putpyo16
    Ответ написан
    4 комментария
  • Можно ли использовать letsencrypt в коммерческих проектах?

    Scorpi
    @Scorpi
    Commercial users are welcome to use Let's Encrypt for commercial and for-profit purposes. This is an intended use; we don't have any desire to restrict the use of our services to non-profit or non-commercial purposes.
    https://community.letsencrypt.org/t/are-they-limit...
    Ответ написан
    Комментировать
  • Как решить проблему при рисовании на канвасе с координатами пикселей, когда получаются дробные значения?

    Ivanq
    @Ivanq
    Знаю php, js, html, css
    ...
    var w = 400 / 29; // или 28
    var x1, x2;
    for(var i=0;i<29;i++) {
      x1 = Math.floor(i * w);
      x2 = Math.floor(x1 + w);
      // И тут рисуете прямоугольник от (x1, y1) до (x2, y2), где y1 - где заканчивается "февраль", а y2 - конец экрана.
    }
    Ответ написан
    Комментировать
  • Как правильно настроить индексы?

    romy4
    @romy4
    Exception handler
    Используйте не user_id=0 а user_id=null. так правильнее со всех точек зрения и не рубит индексацию
    Ответ написан
    6 комментариев
  • Как усовершенствовать код и избавиться от множества глобальных переменных?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    https://jsfiddle.net/koceg/66dd35hr/

    В вашем коде, несмотря на то, что он небольшой, довольно много проблем. Давайте пойдем по порядку:

    1. Он в принципе не работает, потому что переменной body не существует. Нужно обращаться через document.body.

    2. У вас всё в одной функции. Отсюда и глобальные переменные (на самом деле они не глобальные, а ограничены этой функцией, но всё же) и дублирование одного и того же кода.

    3. Использование того, что в глобальной области видимости создаются переменные для каждого элемента с id (ul1, ul2) - плохая практика. Чуть раньше вы корректно воспользовались document.getElementById().

    4. Использование label в continue - приравнивается к goto и является уголовно наказуемым деянием.

    5. Вместо собственной реализации поиска нужно использовать стандартный метод indexOf, тогда и goto не понадобится.

    6. Из-за использования innerHTML, достаточно просто перенести закрывающий тег </li> на новую строку, чтобы элемент задублировался.

    7. Код срабатывает при старте страницы, а не тогда, когда он реально нужен. Это и само по себе проблема - зачем делать вычисления, которые неизвестно понадобятся ли, и не позволит изменить результат при изменении списков.

    8. Есть еще несколько мелочей, которые я не стал править, вроде установки обработчиков событий через .onclick, это будет домашнее задание.
    Ответ написан
    Комментировать
  • Есть ли такой инструмент?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега CSS
    gulp/grunt/наёмный верстальщик
    Ответ написан
    2 комментария
  • Почему массив, сформированный на php, не определяется как массив в js?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    ведь и то и другое - массив?
    В php - да. А в javascript - это разные типы данных. У массива в js могут быть только числовые ключи и только по порядку, иначе этот json распарсится как объект.
    Ответ написан
    Комментировать
  • Почему числа в JS такие странные?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Javascript просто следует стандарту.

    Squeezing infinitely many real numbers into a finite number of bits requires an approximate representation. Although there are infinitely many integers, in most programs the result of integer computations can be stored in 32 bits. In contrast, given any fixed number of bits, most calculations with real numbers will produce quantities that cannot be exactly represented using that many bits. Therefore the result of a floating-point calculation must often be rounded in order to fit back into its finite representation.

    What Every Computer Scientist Should Know About Fl...

    P.S. Это вы еще 0,1 и 0,2 не складывали.
    Ответ написан
    3 комментария
  • Как создать сайт вроде спрашивай.ру?

    HoHsi
    @HoHsi
    Не стоит сразу же замахиваться на большой сервис, начните постепенно. Каждый начинающий программист первым своим проектом грезит сделать убийцу ВК / FB. Скажу сразу, это с первого раза не выйдет. Как не выйдет и с 10. Но! Это не повод, что-бы не развиваться и не учиться. Итак если вы все же решили потрать пару месяцев на обучение, или вы уверены, что пойдет меньше, начните так:

    Шаг первый
    Html. Это язык разметки, на котором написано 100% веба, то есть это необходимая вещь де-факто. Он позволит вам разместить текст на странице, оформить ее.
    В базовой аналогии, это ворд для интернета (кышь Ъ праграммысты, это довольно хорошая аналогия для новичка, продолжим...).

    Это займет +- 1 неделю

    Вам помогут:
    * htmlbook

    Шаг второй
    CSS. Это язык стилизации. Перекрасить текст, увеличить отступы, сделать тень у блоков это к нему. Все крависости в интернете делаются на нем. 99% веба использует для стилизации именно его, так что опять же это стандарт.

    Это займет +- 2 недели

    Вам помогут:
    * Sorax

    Шаг третий
    PHP. Это уже язык программирования (плохой, больной, уродливый, но язык. Да начнется холивар). Он поможет вам понять как это работает, как устроена кухня. Поковыряйте его, обучитесь начальной логике и алгоритмам. Он поможет вам выводить HTML более осмыслено, т.е. вы сможете уже составлять динамические страницы, которые могут подстраиваться под пользователя, добавлять посты, вопросы, картинки и т.д.

    Это займет +- 2 месяца

    Вам помогут:
    * php.net

    Шаг четвертый
    Wordpress. Это почти готовый сайт. В нем уже есть все, что вам нужно. Вы можете писать посты, делать обсуждения и т.д. На его основе вы сможете вылепить что угодно, даже тот самый вопросник. Он написан на PHP, так что он будет дополнять ваши знания. Как только научитись ставить WP, попробуйте написать для него шаблон, потом плагин, и еще и еще. Это закрепит и разовьет ваши предыдущие знания.

    Это займет +- 2 месяца

    Вам помогут:
    * wp-kama

    Шаг пятый
    MySQL. И в частности язык запросов SQL. Это база данных. Они нужны, что-бы хранить информацию вашего сайта в удобном виде. Т.е. по своей сути это таблица экселя, в ней есть поля и их значения. Это так же необходимые знания, так как ваши вопросы из вопросника будух храниться именно там.

    Это займет +- 1 месяц

    Переломный момент
    Наступает переломный, это значит что по истечению полу-года вы должны сесть и подумать, нравится ли вам, что вы делали. Это важно. Так как дальше не будет проще, не будет легче. Начнутся такие вещи как Асинхронность, Брокеры сообщений, ООП, MVC, и другие страшные слова, которые ровно как и предыдущие шаги по-началу будут вас пугать, но потом станут лучшими друзьями.

    Если вам действительно интересно большее, то можете изучить шаги приведенные ниже. Если же вы просто хотите развлечься, то вам вполне хватит перечисленных выше.

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

    Шаг пятый
    JavaScript. Ура, вы решили, что вы хотите быть программистом, похвально. Этот язык позволит вам сделать ваши страницы более динамичными. Добавить на них анимацию, логику. Этот язык использует 90% веба, так что сомневаться в его значимости нет смысла. Он позволит вам добавить жизнь на ваш сайт.

    Это займет +- 2 месяц

    Вам помогут:
    * Sorax
    * learn.javascript.ru

    Шаг шестой
    Jquery. Это продолжение JS. Это фреймворк (набор готовых функций). Он облегчит вашу работу с JS и позволит делать ее более качественно и быстро.

    Это займет +- 1 месяц

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

    Если вам нравится PHP, он удобен, тогда продолжите изучать именно его, но не стоит бездумно и слепо защищать язык. Если вы чувствуете, что он вас смущает, не противьтесь и просто попробуйте что-то другое. А поверьте этого много.

    Итак развилка:
    Мне нравится PHP, мама я женюсь!
    Ок, тогда вам стоит взглянуть на фреймворки Laravel, Yii 2, вполне хороши. Они довольно мощные и позволят много чего на себе сделать.

    PHP какой-то странный, но мне понравился JavaScript
    Шикарно, значит есть смысл попробовать NodeJS. Это версия языка (Да, я знаю, что нода это среда а не язык, дайте уже объяснить человеку) расчитаная на составление страниц, как PHP. Это очень мощный инструмент, поняв который, вы вряд ли захотите уйти с него. Он поможет вам писать не только сайты, но и приложения для телефонов / планшетов, программы для ПК, возможно игры (но не стоит. По крайней мере с текущим развитием инструментов), демоны, сервисы, консольные приложения и т.д.

    Они оба мне не нравятся
    Что ж, тогда вам могут приглянуться Python, Ruby - эти два языка более близки к PHP, чем JS.
    Или вы за год стали адептом скорости, и не видите большей радости в жизни чем оптимизация и быстрото рендеренга. Ну тогда вам точно понравятся GO и Rust.
    А может быть Dart к тому временем станет мейн стримом, это уже покажет время.

    Что-бы вы не выбрали, это будет хорошим решением.

    Шаг восьмой
    Как говорится, я просто оставлю это здесь. Сейчас нет смысла объяснять, что это, зачем оно и с чем его едет, вы просто взглянете через год на этот список и все поймете.

    CSS:
    * Sass / Less / Stylus

    JS:
    * CoffeeScript / LiveScript / TypeScript
    * Angular
    * Promise

    NodeJS:
    * NPM
    * Express

    Ускорение работы:
    * Gulp
    * Jade
    * Yo

    Остальное:
    * MongoDB
    * MariaDB
    * RabbitMQ

    Шаг 7 и 8 займут у вас всю жизнь
    Это не в коем случае не значит, что язык будет тем же, просто Язык / Технолигия будут заменяться на другую, а смысл будет тем же. Будут новые технологии, будут новые подходы, новые языки. Будет интересно и весело.
    Ответ написан
    15 комментариев
  • Как создать сайт вроде спрашивай.ру?

    @Div100
    Попробуй сделать декомпозицию.
    Разбей задачу от "сделать сайт" на много мелких, "регистрация", "авторизация", "добавление вопроса".
    А потом уже сможешь думать отдельно над каждой из задач. Это будет проще нежели думать, над тем как создать "спрашивай.ру" .
    Ответ написан
    1 комментарий
  • Где точнее буду производится математические операции с плавающей запятой на Java или на C++?

    @komjaga
    Программист встроенного ПО
    Точность будет одинаковая, это зависит не от языка, а от типа данных

    смотрите типы данных float и double
    Ответ написан
    1 комментарий
  • Как изменить данные в iframe?

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