• Как сгруппировать правильно данные в таблице при этом не теряя их значений?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Можно ли в масиве вставить if?

    Используйте тернарный оператор.

    '{music}' => $settings['music'] ? '<embed src="/new.mp3" volume="-300" hidden="true" autostart="true">' : '',
    Ответ написан
    2 комментария
  • Как правильно понять этот код?

    function preloadImages() {
        // создаем функцию с помощью Function declaration (инструкции объявления функции)
        // как бы говорим интерпретатору "создай функцию и помести ее в переменную preloadImages"
        if (typeof arguments[arguments.length - 1] == 'function') {
        // в javascript нет "перегрузки" функций, функция может принимать сколько угодно значений
        // доступ к переданным аргументам можно осуществить через "псевдо-массив" arguments
        // arguments.length - возвращает количество переданных аргументов
        // в arguments можно обращаться к аргументу по номеру
        // arguments[arguments.length - 1] - последний параметр функции
        // typeof x - возвращает строку, содержащую информацию о типе операнда x
        // в конечном счете проверяется, является ли последний переданный аргумент функцией
            var callback = arguments[arguments.length - 1];
        // копируем ссылку на эту функцию в переменную callback
        // эта переменная еще в момент вхождения интерпретатора в функцию preloadImages поднимется и будет 
        // в лексическом окружении (LexicalEnvironment) функции
        } else {
            var callback = false;
        // иначе остаемся без коллбэка
        }
        if (typeof arguments[0] == 'object') {
        // если первый аргумент функции является объектом (всё, кроме чисел, строк, true, false, null, undefined)
        // здесь, видимо, мы ждем в первом параметре массив изображений
        // вызов вида preloadImages(['img1.jpg',..., 'imgN.jpg'])
            var images = arguments[0];
        // копируем ссылку из первого аргумента-объекта в переменную images
            var n = images.length;
        // записываем количество элементов в массиве в переменную
        } else {
        // если первый аргумент не объект,
        // скорее всего, на входе ждем список строк-урл картинок
        // preloadImages('img1.jpg',..., 'imgN.jpg')
            var images = arguments;
        // здесь уже копируем ссылку на весь список аргументов
            var n = images.length - 1;
        // записываем в переменную n количество параметров с вычетом одного,
        // видимо, задумывалось, что последним аргументом будет функция-callback
        // иначе последнее изображение не обработается
        }
        var not_loaded = n;
        // временная переменная, количество незагруженных изображений
        for (var i = 0; i < n; i++) {
        // обычный цикл с инкрементом на каждой итерации
            jQuery(new Image()).attr('src', images[i]).load(function() {
        // new Image() - создаем HTMLImageElement, 
        // jQuery(new Image()) - делаем из него jquery объект для возможности работы с ним с помощью методов jquery
        // .attr('src', images[i]) - проставляем объекту атрибут src, что сразу запустит загрузку изображения
        // load(function() { - и привяжемся к событию load изображения
                if (--not_loaded < 1 && typeof callback == 'function') {
        // сначала уменьшаем, потом сравниваем с 1 нашу временную переменную
        // отлавливаем когда у нас все изображения загрузятся,
        // порядок загрузки не важен тут
        // и если в переменную callback попала функция, то
                    callback();
        // вызываем ее
                }
            });
          }
        }
    Ответ написан
    1 комментарий
  • Какой скрипт красиво расставляет фото в блоке?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Ответ написан
    Комментировать
  • Куда двигаться в веб-разработке?

    @rsi
    software engineer
    Перво наперво определитесь, хотите ли вы стать профессионалом или просто хорошо делать сайты. Я бы предложил выбрать путь профессионала.

    Во вторых определитесь, каким именно профессионалом вы хотите стать:
    1. web - мастером
    2. Front end
    3. Back end
    4. Desktop
    5. Другого направления


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

    Здесь вам советовали сменить язык, не слушайте этих советов. Да Ruby имеет некоторые преимущества перед php, но имеет и недостатки. Не думайте, что если вы выберите Ruby (python) ваша жизнь измениться, вы не получите ничего, что не может вам дать php и на оборот, эти увеличенные зп и прочее миф, язык не важен. Помните, ЯП это всего лишь инструмент, вы конечно должны иметь инструмент, и должны знать свой инструмент в совершенстве, но умение программировать заключается не в этом. Да, плотник алкоголик, который зарабатывает на жизнь забивая гвозди, может хвалить свой молоток и всем рассказать, что молоток его кормилец, но согласитесь настоящий строитель умеет не только гвозди мотком забивать, не говоря уже об архитекторе, который молоток и в руках мог вообще не держать.

    И так предположим, вы выбрали свой путь, вы выбрали направление и выбрали инструмент. Теперь вам нужно работать в этом направлении (как над собой, так и в буквальном смысле работать). Читайте статьи, читайте книги (я всегда рекомендую только одну книгу - "Совершенный код", ее без преувеличивания должен прочитать каждый программист), изучайте новые фреймворки, технологии, отрасль постоянно движется вперед, вам нужно двигаться вперед еще быстрее, что бы хотя бы не стоять на месте. В процессе работы над проектами вы будете чувствовать нехватку знаний (вы упоминали js, ООП), устраняйте эти пробелы книгами (не стоит бояться 900 страниц, книги вы ничем не замените, их необходимо читать), статьями и конечно практикой. Не переживайте по поводу отсутствия высшего образования, оно не дает глубокого знания, никто не расскажет вам ни каких трюков, если у вас не будет толкового преподавателя. Но толковый преподаватель, это не обязательно учитель в универе, это может быть автор книги (например Макконел), автор хорошего инструмента (например Taylor Otwell), большинство очень известных и авторитетных людей генерирует тонну информации, книги, статьи, записи в соц. сетях, код, все это можно читать и это даст вам куда больше чем ВО. И да, мы с вами живем в уникальное время, время интернета, где нет расстояний, и это дает намного больше возможностей, чем нагуглить очередной костыль для jquery от школьника, вы можете общаться лично например со Страуструпом или тем же Тейлором, ни в одном учебном заведении России у вас не будет возможности поговорить с такими людьми.

    Подведя итог:
    1. Определите путь (хотя бы примерно)
    2. Определите специализацию (хотя бы примерно)
    3. Выберите инструмент (один основной язык, один основной фреймоврк, одну основную cms и тд)
    4. Изучите свой инструмент в совершенстве
    5. Пробуйте другие инструменты (да я сказал один яп, один фреймворк, но один вы должны знать в совершенстве, остальные должны попробовать)
    6. Расширяйте кругозор
    7. Работайте над собой
    8. Работайте
    9. Выберите наставников и учитесь у них


    Следуя этим советам вы увеличите свой скилл, сможете сами отвечать на вопрос заданный в заголовке и станете профессионалом. И помните путь профессионала, это постоянная работа (как буквально работа, так и работа над собой, если просто писать сайты 24/7 вы тоже профессионалом не станете), гораздо больше чем 8 часов в день, 5 дней в неделю.
    Ответ написан
    Комментировать
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    @vilgeforce
    Раздолбай и программист
    Если вы собираетесь заниматься программированием (вышиванием/выгулом собак/плеванием в потолок) только ради денег - не стоит. Тратить свое время и силы на то, что неинтересно (иначе как в связи с баблом) - плохая идея.
    Ответ написан
    3 комментария