• Что такое Mixpanel и почему он загружается в сайт без мои разрешения?

    @IT_Denchik
    web программист
    Если проблема наблюдается только в chrome, а в остальных браузерах все нормально.
    То попробуй отключить расширение Page Ruler в chrome, если оно установлено.
    Ответ написан
    Комментировать
  • Как повысить уровень программирования?

    tiabc
    @tiabc
    Бизнес-партнер и консультант по технологиям
    Хорошие разработчики постоянно развиваются и никогда не стоят на месте. Любое развитие состоит в делании дел, в решении конкретных задач и в обратной связи, которую ты получаешь от других или в результате рефлексии.

    TL;DR: Читайте книжки, делайте дела, читайте чужой код.

    Что можно начать делать прямо сейчас, чтобы стать программистом лучше?

    1. Изучайте базу. Алгоритмы, сети, криптографию, архитектуру, ос, устройство браузеров, компиляторы и т.д. Изучение подобных вещей дает понимание какие задачи бывают в реальном мире и как "большие дядьки" решают возникающие проблемы. Это кладезь инсайтов.

    2. Устройтесь на фултайм-работу с сильной командой даже если джуниором. Я считаю, что есть только один способ расти как разработчик: работать фултайм над одним бизнес-продуктом. Такой подход учит решать проблемы масштабируемости, думать заранее, работать над процессом, которому вы следуете в разработке, решать задачи, возникающие с длительной эксплуатацией, решать проблемы с удобными окружениями и вообще учиться планировать свою работу в связи с нуждами бизнеса.

    3. Написание кода - не самая большая часть работы сеньор-девелоперов, я бы сказал. Но когда речь заходит о самом коде, нужно понимать что ты пишешь и зачем. Есть классические книжки, которые можно найти, например, в матрице компетентности программиста, есть современные, но полезные типа The Art of Readable Code, которую я очень рекомендую. Нужно читать книжки. На собеседовании я всегда спрашиваю какие книжки читал или читает соискатель и если ответ отрицательный, то это большой минус.

    4. Участвуйте в опенсорс. Там вам всегда приходится сталкиваться с образом мысли самых разных людей и кодом, который они пишут. Это учит вас читать чужой код, находить в нем ошибки и критически и аргументированно к нему относиться, предлагая свои решения. Опенсорс-разработка, так же как и книжки, дает вам тот чужой опыт, который бы вы никогда сами не получили от людей, которые часто умнее или опытнее вас в чем-то. В опенсорсе, кстати, в отличие от бизнесовой разработки, есть шанс в удовольствие писать очень качественный код, в котором в бизнесе далеко не всегда есть необходимость.

    5. Наберитесь терпения. Это не случится за один день. Думайте над именованием, разделяйте обязанности, изучайте алгоритмы и экосистему, оптимизируйте ваше рабочее место, изучайте новые технологии, читайте статьи и в течение ближайших лет регулярных усилий вы обретете новый способ мышления и будете разрабатывать поддерживаемое и надежное ПО. Легкого пути, к сожалению, нет.
    Ответ написан
    2 комментария
  • Есть ли ограничения на использование платных ассетов из Unity3D Asset Store?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Код проекта открываете, а саму библиотеку платного ассета - делаете ссылкой на маркет и просите предварительно приобрести для компиляции.
    Также, об этом говорите заранее в описании в разделе "Requirements" (в требованиях к сборке).
    Ответ написан
    4 комментария
  • Как синхронизовать два списка на странице с помощью JavaScript'a?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Два объекта кросс-связей (для более сложных нужно строить "деревья"):
    var sizes = {42: ["Красный", "Синий"], 43:["Зелёный","Синий"]}
    var colors = {"Красный": [42], "Синий":[42,43], "Зелёный":[43]}
    Ответ написан
    Комментировать
  • Что нужно первично выучить для джуниора по JS/Node?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь выполнять на JS начинающему (для NodeJS разработчика надо то, что помечено "важно", включая операции над DOM)

    Для укрепления навыков backend разработки - многопользовательское приложение с сервером на Node и клиентском на JS (angular, durandal, aurelia, backbone), например, игру какую-нибудь, хотя бы шашки или морской бой.
    Ответ написан
    Комментировать
  • Как правильно реализовать систему распределенных вычислений?

    riky
    @riky
    Laravel
    Самый лучший выход на мой взгляд сделать эту возможность как задание в игре. То есть клиент сам выбирает активировать ее или нет и насколько сильно можно загружать проц и взамен за рассчет кадой игры получает какие то внутриигровые бублики, по сути они работают на вас, ведь с таким же успехом вы могли бы майнить битки на их видюхах, вместо рассчета игр, поэтому им за это надо платить, пропорционально работе которую они выполняют, и тогда игроки будут рады это делать. естественно не обязательно говорить им именно про рассчет игр, а обыграть уже геймплеем (например ускоренное изучение магии со сокростью x2 требует дополнительной вычислительной мощности для игрока + обьяснить игроку что чем мощнее комп тем быстрее будет идти изучение). + можно сделать опцию чтобы активировать эту штуку только при питании от сети, таким образом многие игроки будут специально оставлять телефон включенным на зарядке лишь бы получить бонусы.
    Ответ написан
    6 комментариев
  • Как вернуть мотивацию к обучению?

    @uugh
    Джордж Карлин, о мотивации
    https://www.youtube.com/watch?v=FwvUnwJxIBI
    Ответ написан
    Комментировать
  • Будет ли работать mysql с нагрузкой примерно триллион записей?

    jumper423
    @jumper423
    web-developer
    Плохо раскрыли вопрос. Триллион записей в одной таблице или в миллионе таблиц по немного. Какие операции в основном нужно делать. Какая структура данных и тд и тп. Какие мощностями располагаете. Для такого большого количества записей очень много надо учесть. Может Вам больше подойдёт что-то из NoSQL.
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к обучению?

    bondpuoq
    @bondpuoq
    Web-программист с недавних пор
    Мотивация появляется, когда есть цель (накормить своих детей и жену, уехать жить в другую страну, зарабатывать в два-три-подставь сам сколько раз больше, чем сейчас, съездить в классный отпуск, построить/купить дом, заработать на старт для бизнеса или оборудование для нового хобби). Найди свою цель, такую, чтобы прямо зудело ее достичь. За сколько ты ее достигнешь - напрямую зависит от твоих усилий.

    Чтобы поддерживать мотивацию: посмотри мотивационные ролики, фильмы, используй любые источники мотивации, записывай свой прогресс, пости где-нибудь свои результаты, делись с другими тем, что узнал, например в блоге

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

    Главное, чтобы цель была хорошей. А без цели исчезает даже мотивация жить.
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к обучению?

    Я не поддерживаю тех кто смеётся над вами )) Подумайте вот о чём: если ваш организм сопротивляется новым знаниям, значит вы уже знаете достаточно, значит вам надо применить то что вы узнали, поэтому просто садитесь и делайте в процессе работы вы подойдёте к своему пределу, когда новые знания реально понадобятся - там и мотивация уже будет изучать.
    Ответ написан
    1 комментарий
  • Какие задачи нужно уметь выполнять на JS начинающему?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь решать на чистом JS, перед тем как переходить к изучению библиотек и фреймворков?


    Кроме синтаксических конструкций, математических и логических выражений, нужно знать:
    • Область видимости переменных
    • Замыкания
    • Объектно-ориентированное программирование, в частности наследование через прототипы
    • Шаблон проектирования "модуль"
    • Операции над DOM
    • Понимание принципов событийно-ориентированного программирования
    Важно - нужно знать, откуда копипастить.
    Тебе нужно быть очень хорошо знакомым с одной-двумя-тремя популярными библиотеками на JavaScript. В идеале ты должен иметь представление о том, что определённый класс задач может быть решен с помощью определённых библиотек, хотя бы одной, но такие знания приходят с практикой. Вообще ты должен быть знаком с ними так близко, чтобы помнить, в какой части мануала по библиотеке можно найти описание форматов входных данных нужной тебе функции и какой будет результат, чтобы скопировать и вставить в свой код, а потом поправить, чтобы работало.

    Важно - инструменты программиста JavaScript
    У тебя должен быть удобный инструмент для разработки (IDE, Integrated Development Environment), чтобы он тебе подсвечивал код (syntax highlight) и подсказывал о синтаксических ошибках (syntax check), о формальных параметрах функций (type hinting), о стиле кодирования (code style), помогал писать код (live templates).
    Ты должен знать, как отлаживать скрипты в популярных браузерах (Firebug, Chrome Developer Tools и другое). Что такое точки останова, как управлять исполнением во время останова, как посмотреть и поменять содержимое переменных, как настроить останов по условию.

    Хотелось бы узнать что это за задачи(упомянутые вами 80%)


    Реальные задачи джунов:
    1. Возьми из сборника задач по javascript любой скрипт случайно и вслух расскажи, что он делает.
      Важно - читать и понимать чужой код намного важнее, чем писать свой. И на работе тебе это приддётся делать чаще, чем ты думаешь. Чтобы подключить к своему проекту чужую JS либу, нужно понимать что она делает, как она конфигурируется, как управлять её поведением. Скажу точно, что написать свой скрипт, который строит графики, намного сложнее, чем понять, как настраивается highcharts.

    2. Напиши скрипт на JS, который в заданном тексте удалит один или два символа, выбранных случайно
      1. Усложнение: удалять можно только буквы в словах, а знаки пунктуации и цифры удалять нельзя
      2. Усложнение: принять, что этот текст является программной на Javascript, удалить одну-две команды JS, но только если они не в строковых литерах (break как команду удалить можно, а в строке "break my heart" нельзя)
      3. Усложнение: воспользуйся этим скриптом и "попорти" код какого-нибудь другого скрипта на Javascript, а потом отладь, найди ошибку и восстанови работоспособность
      Важно - этим обычно все и занимаются - ищут баги. Только в реальной жизни они и без этого скрипта появляются. И не по одному, а прям пачками.

    3. На страницу HTML нужно встроить график курса доллара по отношению к рублю. Формат входного массива значений курса определи сам, исходя из своего скрипта для построения графиков.
      1. Усложнение: на одном графике должны быть два курса, по разным шкалам. Наприме, курс доллара к евро и курс юаня к рублю
      2. Усложнение: первоначально график вывести в детализации по месяцам, но чтобы можно было "приблизить" (drilldown) детализацию до дней
      3. Усложнение: первоначально график вывести текущем месяце, но чтобы можно было загрузить данные для предыдущего месяца без перезагрузки страницы (AJAX)

    4. При клике по картинкам, вставленным в текст HTML, показывать всплывающее окно для просмотра увеличенной картинки.
      1. Усложнение: в всплывающем окне сделать навигацию по картинкам, вперёд/назад и к нужной картинке
      2. Усложнение: в всплывающем окне вместо картинки показать видео-ролик с Youtube
      3. Усложнение: в всплывающем окне показать текст HTML

    5. По клику на кнопку "Click me" показать всплывающую форму.
      1. Усложнение: реализовать проверку данных на корректность перед отправкой формы (непустое значение, минимальное количество символов, максимальное количество символов, минимальное числовое значение, максимальное числовое значение)
      2. Усложнение: если в значении текстового поля встретилась гиперссылка, то считать её за 22 символа при любой длине этой ссылки (как в твитере)
      3. Усложнение: реализовать отправку формы на сервер через AJAX, без перезагрузки страницы
      4. Усложнение: саму форму в виде HTML загрузить с сервера через AJAX, в момент клика по кнопке "Click me", правила проверок данных должны как-нибудь "извлечься" из самой загруженной формы, например из аттрибутов полей ввода

    6. К форме ввода данных на поле ввода даты "навешать" всплывающий календарь для выбора даты.
      1. Усложнение: сделать форму календаря мультиязычной. Хотя бы через настройки на том же JavaScript
      2. Усложнение: сделать так, чтобы с помощью календаря можно было выбрать диапазон дат, чтобы она была привязана к двум полям формы "дата начала" и "дата окончания", и чтобы значение в поле "дата начала" обязательно была меньше чем в поле "дата окончания"
      3. Усложнение: сделать так, чтобы с помощью в календаре можно было видно визуально этот диапазон
      4. Усложнение: диапазон может быть открытым, но не пустым, то есть пользователь должен задать хотя бы дату начала или дату окончания.

    7. Сделать пред-просмотр веб-страницы HTML с разными темами. Тему страницы выбирать через селектор на javascript, а показывать в фрейме.
      1. Усложнение: сделать селектор "тип устройства", чтобы менять размер фрейма (например, "iPhone 5c 1136x640") и "чекбокс" для смены ориентации страницы "горизонтальная" или "вертикальная" (соответственно 1136x640 или 640x1136)
      2. Усложнение: в селекторе тем предусмотреть поиск тем по подстроке, и аналогично поиск устройств по части названия (авто-дополнение, auto-complete)
      3. Усложнение: тема страницы должна меняться без перезагрузки фрейма



    Задачи повышенной сложности, исходя из личного интереса
    1. Реализовать форму для многошагового мастера: форма должна состоять из нескольких страниц (шагов), пользователь может переключать страницы через какие-нибудь элементы управления "вперёд/назад" или "перейти на страницу".
      1. Усложнение: реализовать функциональную связь значений, когда некоторые данные зависят друг от друга (ввёл число в поле "количество" и в поле "сумма" значение пересчиталось)
      2. Усложение: доступность некоторых полей ввода должна зависеть от данных (например, если указал "есть личный самолёт", то значит можно ввести "марка самолёта")
      3. Усложение: видимость некоторых страниц должна зависеть от данных из предыдущих страниц (например, если указал "есть личный самолёт", значит появилась страница "ТТХ самолёта"; иначе страница должна скрыться)

    2. Реализовать однопользовательскую браузерную игру "змейка", "тетрис", "найди пару"
    3. Реализовать многопользовательскую браузерную игру "крестики-нолики", "морской бой" на два игрока в режиме "hot seat"
      1. Усложнение: два игрока на разных компьютерах, ходы передаются по websocket
      2. Усложнение: ограничение на ожидания окончания хода 15 секунд, по окончании ожидания автоматически делается случайный ход

    4. Реализовать todo-list. Пользователь вводит список, затем он превращается в строки с "чек-боксами". Когда "чекбокс" включен, строка зачёркивается.
      1. Усложнение: пользователь может переименовывать, удалять, добавлять строки
      2. Усложнение: список хранить в localStorage браузера, чтобы при перезагрузке страницы он восстанавливался
      3. Усложнение: пользователь может иметь несколько независимых списков todo

    5. Реализовать простой графический редактор. Пусть рисуется точка в месте, где пользователь кликнул.
      1. Усложнение: добавить переключатель режимов "точка"/"линия", в режиме "линия" рисуются линии между двумя последовательно кликнутыми точками
      2. Усложнение: можно менять толщину, цвет линий, размер точек
      3. Усложнение: последовательность кликов можно воспроизвести ещё раз с самого начала, равномерно или с реальной задержкой между кликами, с обычной скоростью или ускоренно
      4. Усложнение: можно выгрузить получившийся рисунок в формате PNG или SVG, причём SVG c анимацией воспроизведения



    Можно использовать любую существующую библиотеку.
    Например,
    для построения графиков www.highcharts.com
    для загрузки и передачи данных через AJAX: jquery.com + что-нибудь на сервере
    для всплывающих диалогов с картиками, видео и формами: fancyapps.com/fancybox и https://jqueryui.com/dialog/
    для валидации форм rickharrison.github.io/validate.js
    для календаря https://jqueryui.com/datepicker/
    для автодополнения https://jqueryui.com/autocomplete/
    для передачи данных между несколькими пользователями socket.io или обычный AJAX
    Ответ написан
    16 комментариев
  • Как на OpenWRT задать внешний proxy-сервер?

    jidckii
    @jidckii
    system administrator
    Ну по моему логично vpn тоннелями это организовать.
    Каждый роутер цепляется по впн к вашему серверу и весь трафик соответственно ходит через него(учитывайте, что канал в этом случае должен быть широкий).
    По поводу первого коннекта и рекламной странички гуглите в сторону "Captiv portal".
    Ответ написан
    1 комментарий
  • Как стать успешным хакером/программистом?

    sivabur
    @sivabur
    Заблокировали просто так!
    Есть белые хакеры, спецы в информационной безопасности так же занимаются взломом но легально и за хорошие деньги!
    Копай в этом направлении!(так же разделяются на поиск уязвимость -"взлом" сайтов более востребовано и программ(игр)).
    Насчет сайтов/онлайн сервисов
    -больше всего уязвимость"sql injection"(надо знать sql, mysql, http протокол)
    -НА втором месте "XSS"(надо знать html, Java Sript, http протокол)

    По возможности техникум пропускай закончи все классы потом в универ.(на программиста на бесплатноо поступить особых проблем нету систематичиски ток к здачи ЗНО готовся)(нафиг тебе тот техникум)
    Ответ написан
    Комментировать
  • Почему после вызова функции меняется объект?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Нет, это потому что this.game.players является массивом, и, соответственно, ссылочным типом. То есть g.players и this.game.players ссылается на один и тот же объект.

    Вам нужна функция, которая делает deep clone. Самый лаконичный способ, который я знаю — JSON.parse(JSON.stringify(this.game)), если у вас там нет хитрых данных типа дат и регекспов, то все должно быть нормально.
    Ответ написан
    Комментировать
  • Как задать переменную для всех дочерних функций объекта JS?

    @iShatokhin
    JS developer
    myClass.prototype {
      foo: function () {
        var bar = function () {
         // теперь this работает
        }.bind(this);
      }
    }
    Ответ написан
    2 комментария
  • SASS запись, что означает +?

    ByKraB
    @ByKraB
    это стандартный функционал css.
    в данном случае запись header h6 + p обозначает, что стиль будет применен к элементу p который следует за header h6
    Ответ написан
    2 комментария