Задать вопрос
  • Доступ к IP посетителя из JS?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Скрипт от Google Analytics выполняет запрос по адресу
    https://www.google-analytics.com/collect?....
    где вместо многоточия что-то около 20 параметров, включающие в себя все то, что смог собрать этот скрипт. Соответственно на стороне сервера к этой информации уже добавляется IP адрес (сервер в любом случае знает откуда этот запрос пришел) и все вместе уже сохраняется в вашу статистику. Другие подобные сервисы действуют аналогичным образом.
    Ответ написан
    2 комментария
  • Textarea в firefox?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    почему так происходит?

    Потому что у вашего textarea margin в 1px сверху и снизу:
    c0100e21ca134563895a73bc10ffced6.png
    как это исправить?

    • Добавить margin: 0 для textarea
    • В будущем использовать normalize.css
    Ответ написан
  • OWL Carousel - стрелки постоянно видны. Как сделать?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    .owl-buttons .owl-prev {
        left: 0;
    }
    .owl-buttons .owl-next {
        right: 0;
    }
    Ответ написан
    Комментировать
  • Как сократить код?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Продолжая мысль Алексей Ярков, можно вспомнить про стрелочные функции:
    myElement.onclick = () => alert("Та-да-дам!");
    :)
    Ответ написан
    Комментировать
  • Насколько корректно пользоваться LocalStorage для взаимодействия между вкладками бразуера?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Смущает тот факт, что браузер должен записывать эти данные на диск и при частом их изменении будет лишняя паразитная нагрузка на диск.


    Провел небольшой эксперимент:
    VK_STORAGE=https_vk.com_0.localstorage
    
    cd ~/.config/google-chrome/Default/Local\ Storage
    
    while inotifywait -q -e modify $VK_STORAGE >/dev/null; do
        stat $VK_STORAGE | grep Modify
    done


    При этом слушал музыку в ВК, читал сообщения, имел несколько открытых вкладок. Эксперимент показал следующее:

    Modify: 2016-10-27 20:22:12.327308601 +0300
    Modify: 2016-10-27 20:23:12.328580890 +0300
    Modify: 2016-10-27 20:24:12.325855398 +0300
    Modify: 2016-10-27 20:25:12.327132042 +0300


    Похоже, что Chrome (53) достаточно умный и сбрасывает все это добро на диск раз в минуту, так что можно не беспокоиться о паразитной нагрузке. Полагаю, что другие современные браузеры тоже стараются работать с оперативной памятью, а не писать постоянно на диски.
    Ответ написан
    1 комментарий
  • Как сделать чтобы сумма отнималась при выборе checkbox?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В демке есть специальный скрипт, который позволяет выбрать только 1 checkbox из двух

    Не придумывайте велосипед и используйте radio button.
    Ответ написан
  • Что нужно скорректировать в коде, чтобы он начал работать?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Во-первых:
    Uncaught TypeError: document.getElementsByClassName(...).appendChild is not a function

    Соответственно нужно по крайней мере что-то такое:
    document.getElementsByClassName("input-field")[0].appendChild(crElement);


    Во вторых - document.createTextNode принимает один параметр, так что если уж используете - используйте как полагается
    var crInfo = document.createTextNode(getNumber + " " + getSurname + " " + getNumber);

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

    В третьих - значения инпутов нужно доставать с помощью value, а не innerhtml:
    var getName = document.getElementById("name").value;
    var getSurname = document.getElementById("surname").value;
    var getNumber = document.getElementById("number").value;


    Да, и еще на будущее: прикладывайте ссылку на codepen/jsfiddle - это приятно отвечающим, не нужно самим брать ваш код, выдирать из него части и копировать туда.
    Ответ написан
    Комментировать
  • Как реализуется подобный эффект 3d на сайте?

    sfi0zy
    @sfi0zy Куратор тега HTML
    Creative frontend developer
    Вы имеете ввиду parallax? Если да, то существует множество готовых решений, конкректно на вашем сайте используется вот этот плагин для jquery.
    Ответ написан
    Комментировать
  • Как отправить больше одного значения в localStorage?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Вы можете положить в localStorage любой объект, пропустив его через JSON.stringify. Соответственно достав его обратно нужно будет пропустить его через JSON.parse. А в этом объекте вы можете хранить все, что вам угодно.
    Ответ написан
    Комментировать
  • Выбор языка программирования для написания 2d игр?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    не очень разобрался с ООП

    Стоит все-таки разобраться. И не только с ООП. Если вы начинали Javascript - пусть будет он - полистайте хотя бы книжки от O'Reilly с животными на обложке и разберитесь со всем, что там есть. Для начала про сам Javascript, потом про паттерны проектирования, потом еще и еще - системы контроля версий, системы сборки... У вас есть время что-то изучать - пользуйтесь этим. Да и просто про структуры данных и алгоритмы почитать будет не лишним - кругозор расширяет и может внезапно пригодиться. По теме я обычно предлагаю почитать алгоритмы Роберта Седжвика, но это дело вкуса.

    типа змейки, крестики-нолики, тетриса

    Можно это дело совместить с предыдущим - на canvas вполне можно все это нарисовать, а логика там не сложная.

    Стать хорошим программистом в данной области (2д игр)

    2д-игры - понятие растяжимое. Есть разные платформы - для ПК будут рекомендовать одно, для консолей - другое, для мобильных устройств - третье... а простые игрушки можно и просто в браузере запускать. Я бы посоветовал (личное мнение, не совпадающие с мнением окружающих) изучить С++ и разобраться с такой штукой как SDL. Есть соответствующая книжка SDL Game Development. Это такое кроссплатформенное (linux, windows, mac, ios, android...) решение многих задач, возникающих при разработке игр (не только 2d) - звук, клавиатура, мышь, джойстики, тачскрин и.т.д. В качестве бонуса можно на примере этой книжки понять примерное построение движка для платформера и написать свой (необходимы знания из пункта 1).
    Ответ написан
    Комментировать
  • Можно ли один и тот же текст расположить в два слоя поверх друг-друга?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно воспользоваться data-аттрибутами в html
    <div data-text="Lorem ipsum..."></div>

    И поиспользовать attr() для их использования
    div:before,
    div:after {
        content: attr(data-text);
    }


    Общая идея должна быть понятна, но codepen тоже приложу.
    Ответ написан
    1 комментарий
  • Можно использовать шрифт Helvetica для сайтов или нужно покупать?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Шрифты семейства Helvetica платные. С ценами можно ознакомиться здесь: https://www.fonts.com/font/linotype/helvetica
    Ответ написан
  • Как нарабатывать мышление "правильного" программиста?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Можете попробовать посмотреть книжку Роберта Седжвика - Алгоритмы на С++. Темы в целом пересекаются с тем, о чем пишет Кнут (фундаментальные вещи не меняются), но меньше математики и больше картинок и примеров кода с "сишным" синтаксисом. Субъективно кажется, что эта книжка читается куда проще и занятнее.

    Но это только про общие алгоритмы и структуры данных. Мышление как вы выразились "правильного" программиста - это ведь не только теория - это и практика, практика и еще раз практика...
    Ответ написан
    Комментировать
  • Как переписать вложенный цикл for при помощи одного цикла while?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Ну в целом вам правильно в голову приходит, но вариант с двумя циклами, данный изначально, выглядит более понятным что-ли, более читаемым. Ну только счетчики переименовать можно (обычно i,j,k используют во вложенных циклах именно в таком порядке - обратный порядок сбивает с толку).
    int i = 1, j = 1;
    do {
      std::cout << j;
      if (++j > i) {
        j = 1;
        i++;
      }
    } while (i < 3);

    P.S.: вообще-то можно еще с goto поизгаляться, но это уже слишком...
    Ответ написан
    Комментировать
  • Ubuntu 15.10 не может установить php 7?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    В репозитории, который вы добавили, отсутствуют пакеты для 15.10. Эта версия Ubuntu вообще уже почти три месяца не поддерживается. Соответственно вам нужно или обновиться, или искать репозиторий в котором еще лежат старые пакеты для вашей версии Ubuntu.
    Ответ написан
    Комментировать
  • Знание С++ помогут?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    1. Нет, знания конкректного языка (С++) сильно в этой области не помогают.
    2. Вы пытаетесь сравнить теплое с мягким. Node.js в контексте вопроса можно рассматривать как набор готовых решений, что-то вроде стандартной библиотеки (крайне некорректно так говорить, но да ладно), с помощью которых можно на Javascript`е за несколько минут скомпоновать простой сервер. На C++ вам будут необходимы или другие готовые решения, или придется писать все с нуля на самом низком уровне. Этот вопрос достаточно сложен и требует несколько большего, чем знание какого-то там одного языка.
    3. Не совсем понятен вопрос, но скорее всего имелся ввиду тот факт, что написанное на C++ выполняется на железе, на Java - в ее виртуальной машине, на Javascript - его интерпретатором. Соответственно что-то поломать, намеренно или случайно, и осознать как работают какого рода атаки проще всего на С++ (имеется ввиду что-то вроде переполнения буфера).
    4. Java медленный потому что см. предыдущий пункт. По той же причине Java проще переносится с платформы на платформу. Для игр это очень полезно.

    В целом я соглашусь с ответом, данным выше - учите технологии и алгоритмы.
    Ответ написан
    Комментировать
  • Почему стоит использовать CentOS или fedora вместо Ubuntu?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Если вы про сервер, то Centos имеет более длительную поддержку - 10 лет, при этом Ubuntu (LTS) - 5 лет. Иногда это может иметь значение. Остальное - дело вкуса и личных предпочтений.
    Ответ написан
    Комментировать
  • Правильно ли вносить изменения в стандартный bootstrap.css файл?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    К словам aleserkan хочется также добавить, что bootstrap достаточно хорошо кастомизируется с помощью изменения соответствующих переменных и его пересборки. При этом вы у себя храните только эти сами переменные - пересобрать можете в любой момент. Должно остаться очень небольшое количество стилей, которые вам нужны для дополнительной кастомизации - там и important в количестве нескольких штук в отдельном файле сгодится (не очень красиво, но понятно что и где меняется).

    Если же у вас получается свой файл размером с половину bootstrap, в котором вы переписываете его стили, стоит поставить вопрос ребром - скорее всего логично будет отказаться от его использования и написать все руками. Да, я знаю, что такую постановку вопроса обычно не любят, но не стоит забывать о таком варианте: бывают такие дизайны, что при верстке от bootstrap остается только сетка и пара кнопок - в таком случае его использование теряет смысл.
    Ответ написан
    Комментировать
  • Как пофиксить этот hover?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это известная проблема с округлениями в хроме. Можно таким образом подкостылить (проверил в Chrome 53):
    .fun-hover {
        background-size: calc(200% + .5px);
    }
    .fun-hover:hover {
        background-position: calc(-100% - .5px);
    }
    Ответ написан
    1 комментарий