• Вам тоже не нравится, что модераторы удаляют самые интересные вопросы на Тостере?

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

    Stalker_RED
    @Stalker_RED
    Можно как-то так
    var allValues = {
        1: {
            price: [2150,2200,2350,1600,1450,1500,1650,900],
            itogo: [1450,1500,1650,900,2150,2200,2350,1600]
        },
        2: {
            price: [1800,1850,2000,1250,1150,1200,1350,600],
            itogo: [2300,2400,2700,1200,3600,3700,4000,2500]
        },
        3: {
            price: [1617,1667,1817,1100,1017,1067,1217,467],
            itogo: [3050,3200,3650,1400,4850,5000,5450,3300]
        },
        4: {
            price: [1525,1575,1725,1025,950,1000,1150,400],
            itogo: [3800,4000,4600,1600,6100,6300,6900,4100]
        },
        5: {
            price: [1470,1520,1670,980,910,960,1110,360],
            itogo: [4550,4800,5550,1800,7350,7600,8350,4900]
        }
    }
    
    function setValues(allValues, i) {
        var currency = ' руб.'
        var valuesGroup = allValues[i]
        for (var n in valuesGroup.price) {
            $('#price' + n).html(valuesGroup.price[n] + currency)
        }
        for (var n in valuesGroup.itogo) {
            $('#itogo' + n).html(valuesGroup.itogo[n] + currency)
        }
    }
    
    setValues(allValues, 2)
    Ответ написан
    Комментировать
  • Как обращаться к константам моделей из контроллеров?

    MegaMufa
    @MegaMufa
    Я обычно использую первый вариант. В принципе во втором не вижу ничего плохого, но мне больше первый нравится. А вот третий - плохо. Зачем загрязнять глобальное пространство?

    Константы в моделях размещать нормально. Не представляю, как это может усложнить тестирование. ПО сути их можно рассматривать как обычные статичные свойства класса, но которые нельзя изменять.
    Ответ написан
    2 комментария
  • Как и когда вы повышаете квалификацию?

    @FoxInSox
    Не очень понятно какого ответа вы ожидаете, т.к. чудес не бывает: в сутках 24 часа и выхода всего два:
    1. Повышать квалификацию на работе: внедрять в текущие проекты современные фреймворки, языки и/или менять платформы со старых на новые. Само собой начальству необходимо объяснить какую они выгоду получат и сколько им будет стоит внедрение (Пример: внедрение CI и написание тестов. Плюсы: уменьшает количество багов на продакшене, увеличивает качество кода. Стоимость: 4 часа настройка CI сервера, от 0 до 1 часа в день на тесты). И тут либо вы не умеете объяснять, то это ваша проблема, либо начальство не слишком адекватное и выход тоже очевиден: смена работы.
    2. Повышать квалификацию после работы и/или в выходные: на Курсере в среднем 2-х или 3-х месячный курс требует около 5 часов в неделю - это меньше часа в день. Собственные проекты прекрасно так же разрабатываются если им уделять около часа в день. Вы не правы что с "таким графиком" новые технологии не получится изучать. С учетом того что 90% разработчиков в принципе ничего не изучают, то даже час в день даст плоды в перспективе. Самообразование в свободное время это всегда компромисс между инвестициями в знания и отдыхом/семейными делами/едой и прочими бытовыми вещами. Этот компромисс можете найти только вы сами и никто больше.


    PS1 работа с 9 до 18 это 9 часов. Вы что целый час обедаете или что? Обедайте 15-20 минут, это +40-45 минут в сутки. Можно либо раньше уходить с работы, либо прямо на работе за эти 40 минут почитать, пописать свой проект или на Курсере посмотреть лекцию.
    PS2 насколько я понял в день на дорогу вы тратите около 4 часов - это очень много. Сейчас не вспомню, но есть разработчик местный(на хабре) который тратит на дорогу чуть меньше и читает по несколько технических книг в месяц делая это в основном в транспорте. Если вы на собственной машине, то тут опять выбор за вами: либо держать руль в руках 4 часа в день, либо держать книгу 4 часа в день.
    PS3 причем тут удаленная работа и фриланс не понял в принципе.
    Ответ написан
    5 комментариев
  • PHP цикл - как убрать запятую?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Вы чего так усложняете?)
    echo implode(', ', range(1, 10));
    "" . - это вообще жесть какая-то.
    Ответ написан
    4 комментария
  • Почему не работает $(document).on("ready" ...?

    viwoam
    @viwoam
    I solve problems!
    1. Alert блокирует главный поток и до его завершения ничего не может происходить.
    2. Страница (DOM) уже загружена но поскольку алерт происходит атомарно (и как уже выше сказано блокирует главный поток исполнения) браузер "не уверен" в том что все снаружные скрипты / стили загружены так как $(document).ready не гарантирует "полной" загрузки страницы, там могут присутствовать асинхронные задачи.
    P.S это ответ на ваш вопрос (Почему не работает) а не решение как исправить.
    Для решения можете посмотреть куски кодов от других пользователей.
    Ответ написан
    3 комментария
  • Как не прописывать gulp install каждый раз?

    @lnked
    Написал для этого shell script, создание нового проекта выглядит так ./install.sh
    #!/bin/bash 
    
    folder_name=$1 #присваиваем переменной parametr1 значение первого параметра скрипта
    
    # тут нужно указать правильный путь
    ROOT='/Applications/MAMP/htdocs/markup.dev'
    GREEN='\033[0;32m'
    RED='\033[0;31m'
    NC='\033[0m'
    
    echo -e " "
    
    # Создаем папку проекта если ее нет
    #
    if [ -d "$folder_name" ] ; then
    	echo -e "${RED}Папка $folder_name существует${NC}\n"
    else
    	mkdir $folder_name
    	echo -e "${GREEN}Создана папка $folder_name${NC} \n"
    fi
    
    # Переходим в папку
    #
    cd ./$folder_name
    
    # создаем ссылку на папку node_modules, в итоге у нас 1 папка с плагинами и диск не захламляется 
    ln -s ${ROOT}/clean/node_modules/ ${ROOT}/$folder_name/
    
    mkdir assets dist assets/template assets/scripts assets/images assets/styles assets/fonts
    
    # Копируем файлы
    
    cp -r ${ROOT}/clean/.jshintrc ${ROOT}/$folder_name/.jshintrc
    cp -r ${ROOT}/clean/gulpfile.js ${ROOT}/$folder_name/gulpfile.js
    cp -r ${ROOT}/clean/package.json ${ROOT}/$folder_name/package.json
    cp -r ${ROOT}/clean/assets/template/* ${ROOT}/$folder_name/assets/template/
    cp -r ${ROOT}/clean/assets/styles/* ${ROOT}/$folder_name/assets/styles/
    cp -r ${ROOT}/clean/assets/scripts/* ${ROOT}/$folder_name/assets/scripts/
    
    echo -e "Проект ${GREEN}$folder_name${NC} успешно создан"
    
    gulp build
    gulp
    
    exit 0
    Ответ написан
    4 комментария
  • Как в mysql сделать уникальный индекс при таком условии?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Сделайте is_main NULLABLE и замените везде 0 на NULL. NULL-ы всегда уникальные, если можно так выразиться) Поэтому уникальный индекс по item_id + is_main будет ОК.
    Ответ написан
    Комментировать
  • Где найти эти Ваши "основы программирования"?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Первое что вам нужно сделать - отбросить всё лишнее. Разброд и шатание между андройдом или десктопом или какими-то скриптами - только распыление усилий. Сосредоточьтесь только на андройде например и отбросьте всё лишнее. Далее купите любую книжку, откройте официальный туториал и разбирайте шаг за шагом и пишите хоть что-то. Какое-то приложение, чтобы был какой-то вещественный результат.

    Основы программирования, о которых вы тут говорите, так просто не получить. Уйдет очень много времени, прежде чем появится глубинное понимание: "Ах, вот оно как работает!". Я тоже закончил юридический и у меня ушло много лет после, чтобы научиться программировать.
    Ответ написан
    4 комментария
  • Как одновременно редактировать один html код с двух разных пк?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Была у людей задача - совместная разработка. Придумали они удобный инструмент - vcs (git). Встала перед верстальщиком DmitriySin такая же задача - и он идёт против системы, не признавая ничего, усложняя себе жизнь дропбоксами, конфликтами и всем остальным. Казалось бы. что может быть проще, чем программа из двух текстовых полей и одной кнопки?
    screenshot-overview@2x.png
    Ответ написан
    Комментировать
  • Laravel 5 почему конфиги хранятся в .env?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Во-первых, очень странно, что у вас .env доступен из вне, потому как корень сайта должен смотреть в папку public.
    Во-вторых, в .env хранятся важные и хостозависимые конфиги — ключи к разным сервисам, пользователи и пароли от БД и прочее.
    В-третьих, папка config содержит в себе все конфиги приложения, а важные и хостозависимые берёт из .env. Вам никто не мешает удалить файл .env и жёстко вбить все параметры в соответствующие файлы в папке config.

    Так же рекомендую почитать, что говорит про это документация.
    Ответ написан
    1 комментарий
  • Каким образом рассчитывается функция фибоначчи?

    keksmen
    @keksmen
    Just a programmer
    Во-первых, ваш алгоритм не совсем корректен.
    function Fibo(n) {
        if (n<2)
            return n;
        else
            return FIBO(n-1)+FIBO(n-2);
    };

    Во-вторых, в принципе, такой алгоритм является крайне медленным. Вот пример его стэка вызовов для пятого числа.
    78d000dd78de4f5c92b57cc8d2e8d4f0.png
    Если не вдаваться в подробности, то уже 50-е число такой алгоритм будет считать несколько минут.

    Посему могу предложить использовать memoize подход (как в underscore)
    var FIBO2=_.memoize(function(n) {{
        if (n<2)
            return n;
        else
            return FIBO2(n-1)+FIBO2(n-2);
    });

    либо воспользоваться итеративным алгоритмом
    function FIBO3(n) {
        if (n<2) return n;
        var x=0,
            y=1,
            z;
        for (var i=1; i<n; i++) {
            z=x+y;
            x=y;
            y=z;
        }
        return z;
    };


    Итеративный алгоритм опережает остальные по скорости на несколько порядков при разовых вычислениях, однако memoize подход позволяет сэкономить на вычислениях при частом использовании функции (+за одно выполнение закэшируются результаты для всех n, стоящих перед требуемым).
    Ответ написан
    7 комментариев
  • Как навесить событие на элемент если он выводиться динамически?

    @kirill-93
    В современных версия jquery так, как сказал Алексей Уколов , в старых $('#listClients button').live('click', function(){})
    Ответ написан
    3 комментария
  • Как сделать JSON читаемым?

    @iSensetivity
    бухгалтер, програміст-самоук
    php.net/manual/en/function.json-encode.php
    Смотрим options -> JSON_PRETTY_PRINT
    json_encode($a, JSON_PRETTY_PRINT);
    Ответ написан
    Комментировать
  • Как сделать так чтобы форма не отправлялась по нажатию кнопки?

    Soldata
    @Soldata
    Программист, владелец IT-компании.
    Укажите у кнопки тип button, поскольку по умолчанию кнопка в форме имеет тип submit, поэтому и отправляет. А если указать тип button, то отправка не произойдет.
    <button type="button">Нажать, но не отправить</button>
    Ответ написан
    Комментировать
  • Объясните пожалуйста код на js?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Самовызываемая анонимная функция
    (function(){
    })();

    Такая функция будет тут же выполнена. jQuery - это параметр, который передается в функцию. $ - переменная, по которой будет доступен переданный параметр внутри функции.
    Эта конструкция эквивалентна следующей
    var myFunc = function($){
    };
    myFunc(jQuery);

    За исключением того, что не создается лишняя переменная в глобальной области видимости (myFunc), ради чего все и делается.
    Ответ написан
    1 комментарий
  • Стоит ли ставить PhpStorm для фронтенщика?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Смотря насколько часто надо что-то подправить. Если раз в месяц две строчки — это можно сделать и без подсветки синтаксиса, прямо в WebStorm или в тупом блокноте. Если через день две строчки — можно сделать в VIM/Notepad++/любой редактор с подсветкой. Если каждый день по пять строчек — можно и купить PHPStorm.

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