• Объясните пожалуйста код на js?

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

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

    За исключением того, что не создается лишняя переменная в глобальной области видимости (myFunc), ради чего все и делается.
    Ответ написан
    1 комментарий
  • Есть ли тема Tomorrow Night в вариации сайта CodePen.io для текстовых редакторов?

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

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Левые сайты/порносайты, странный софт (с кучей adware), левые антивирусы и пр. Все это ведет к вашей ситуации, независимо от браузера.

    Я рекомендую вам пересмотреть то, как вы пользуетесь своим компом.
    1. Переустановите винду начисто.
    2. Создайте 2 акка, аккаунт администратора и аккаунт обычного пользователя.
    3. Когда пользуетесь компом, используйте обычный аккаунт и запрещайте установку всего.
    4. Никогда не ставьте никакой софт с известных софтопомоек, там весь софт обвешан ужасающим количеством adware, malware и прочих троянов.
    5. Не пользуйтесь странными антивирусами.
    Ответ написан
    4 комментария
  • Чем заинтересовать заказчика?

    @art_karetnikov
    Лучший мой проект: Мобильный банк Сбербанка РФ.
    Плюнуть на российские биржи и качать английский. Либо вступить в преступный сговор с тем, кто английский знает и все равно идти на elance.com и т.д. Пример, по моей теме: одна и та же задача, у людей упали небольшие базы данных, надо восстановить. fl.ru - 400 рублей за проект, elance.com - 150-200 долларов. Имеет смысл сидеть на русской бирже, как полагаете?
    Ответ написан
    1 комментарий
  • Почему все хотят во фронтенд?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Почему все хотят во фронтенд?

    1. Кто вам такое сказал?
    2. Каковы практические навыки того, кто себя называет фронтенд-разработчиком?

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    С точки зрения производительности - без разницы, так как второй вариант эквивалентен циклу. Но сами понимаете что первый вариант лучше. Если вас парит производительность - то бинарный поиск. Но ни в коем случае не тот ад что вы привели. Быстрее всего поиск производить по хэш-мэпе, так как там сложность выборки всегда O(1).

    Вообще как, для большинства языков, в том числе для интерпритируемых, развертка цикла дает прирост производительности. За счет чего происходит ускорение? А за счет того что все эти инструкции внутри цикла независимы друг от друга, у нас нет конфликтов по записи (и не может быть) и посему процессор спокойно так паралелит выполнение инструкций. Это удобно когда надо посчитать какой-нибудь длинный массив (например добавить на картинку яркости).

    Пример. Возьмем массив на 1 000 000 чисел, и попробуем сделать его копию, с увеличенным в два раза значением:
    var data = range(1000000);
    var result = range(1000000);
    // обычный вариант
    for(var i = 0;i<1000000;i++) {
        result[i] = data[i] * 2;
    }
    
    // развертка цикла
    for(var i = 0;i<1000000;i+=4) {
        result[i] = data[i] * 2;
        result[i+1] = data[i+1] * 2;
        result[i+2] = data[i+2] * 2;
        result[i+3] = data[i+3] * 2;
    }


    jsperf.com/loop-unroll-simple

    На этом примере уже видно что развертка работает, хоть и прирост производительности не такой большой. Оптимизирующий компилятор JS-а и там умеет это делать.

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

    Конечно, люди разные, но я не могу. Лучше это время тратить на личные проекты (опенсорс) и на развитие (новые языки, улучшать фундаментальные знания), либо еще на какое-то хобби (у меня это музыка, например). В долгосрочной перспективе это принесет больше пользы, а качество жизни будет выше. Работать на двух работах, совмещать работу/учебу - все это либо для очень-очень организованных людей (феноменально организованных, которые могут жить четко по плану каждый день), либо для тех, кто особо-то и не вникает (а это напрямую влияет на качество скилла). Кроме того, как не пытался, предел продуктивной работы в сутки - это порядка 6 часов. Все остальное не только не приносит удовольствия, так еще и по качеству получается хуже. Лучше делать одну задачу, "быть медленнее", но делать ее реально круто.
    Ответ написан
    4 комментария
  • Кто нибудь пробовал работать во фрилансе после работы?

    agent10
    @agent10
    Software Engineer
    Также работал когда-то, но впоследствии отказался.
    Получилось так, что соотношение "потраченное свободное время (время на семью) / доход" довольно хилое.
    Т.е. было легче сменить основную работу и повысить зарплату, чем тратить все вечера и выходные на фриланс.
    Лучше потратить это время на отдых, себя, родных и близких.
    Ответ написан
    1 комментарий
  • Стили :hover переопределяются селектором по типу + класс, почему?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Вам бы почитать про каскад и специфичность. Только очень прошу, не на htmlbook.
    Ответ написан
    1 комментарий
  • Какие плюсы дает template engine?

    1) Ускорение написания кода, по-большей части для тех, кто не владеет (или кому не нравится) Emmet
    2) Возможности по использованию различных функций, условий и циклов построения верстки
    3) На основании пункта 2, возможности по использованию миксинов, инклудов, блоковых переменных, фильтров, слоев и прочих плюшек
    4) Как результат - сокращенный код верстки создает удобочитаемый текст и облегчает дальнейшую поддержку, благодаря преимуществам пункта 3 вы можете поменять один шаблон, правки по которому разойдутся по всем местам его использования автоматически

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

    kumaxim
    @kumaxim
    Web-программист
    Господин начинающий, у Вас извращенный подход к программированию в целом.
    Программа - это способ более эффективно решить какую-то задачу... способ достижения какой-то заданной цели с меньшим количеством ресурсов.

    Возьмем, как пример, тот же бух.учет на предприятии. Как Вы думаете, почему 1С Бухгалтерия так широко распространилась в РФ и СНГ? Эта программа позволяет бухгалтеру в 2-3 клика мышки сформировать отчет для регулятора(ФНС, ПФР и т.д.), вместо того чтобы человеку сидеть руками искать платежные поручения, вычислять налоги и т.п. Софт просто подтягивает выписку из банка, анализирует ее и выдает готовую для печати бумажку, что экономит бухгалтеру сильно много времени. Расчет заплатанный налогов и отчеты в соц.фонды это вообще красота - 8 кликов мышкой и все готово :-)

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

    И вот, далее Вы для себя определитесь, какая Ваша основная цель? Какой Ваш основной посыл обществу?

    Личной мой посыл - "Я помогаю людям экономить: время, деньги, нервы и т.д.".

    Как я это делаю?
    У меня сначала был маленький интернет-магазин по продаже катализаторов для бензина(в поиск "кондиционеры метала для а/м"). При соблюдении определенных условий, расход топлива на малометражках снижался от 20% до 45%
    Вторым моим проектам было небольшое мобильное приложение для отслеживания хода исполнительного производства в ФССП(для взыскательней, уже сдохло). Мне и моим знакомым(не юристы) это экономило достаточно много времени на ругань с приставами, чего они должны делать и т.д. Кто сталкивался с этой службой должен знать эффективность и оперативность их работы, особенно в регионах...
    Сейчас я пишу небольшой конструктор сайтов, который поможет одной дружественной мне веб-студии сильно оптимизировать процесс создания низкобюджетных сайтов визиток

    К чему я все здесь это пишу? Я пытаюсь донести до Вас, что нет Вам смысла учить программирование на какой бы то ни было языке ради самого программирования. Нет смысла Вам учить алгоритмы, структуры, паттерны и т.д. ради их самих.

    Когда Вы пишите программу Вы должны понимать с какой целью Вы ее пишите. Сможет ли ее написание приблизить Вас хотя бы на пару сотых процента к осуществлению Вашей цели, будет ли это укладываться в Ваш посыл обществу. Осознайте это чисто для себя, не нужно это где-то писать.

    Если говорить о чисто практических инструментах(функции стандартной библиотеки, фреймворки и т.д.)... Лично я могу считать себя профессионалом в какой бы то ни было технологии, ни когда я прочитал 1-2 книги и/или написал 1,5 задачи оттуда же. С таким уровнем я не могу сказать что я знаю язык/технологию в принципе, просто знаком - да, но я ее не знаю. Считать себя профессионалом я могу после того как решу не менее сотни задач, используя эту технологию и написал не менее 1 млн строк кода, именно написал, а не сгенерировал rake/gii/artisan или чем-то там еще.

    Вам же я желаю не останавливаться, развивайтесь. Мастерство приходит с опытом.

    P.S.: от холиваров на тему 1С прошу всех воздержаться
    Ответ написан
    11 комментариев
  • Как лечится кризис начинающего программиста?

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

    Сколько книг нужно прочитать токарю или плотнику, чтобы стать высококлассным специалистом? Не стоит полагать, что в программировании что-то иначе.

    Пишите свои велосипеды. А вот на их основании книги начнут читаться уже совсем иначе.

    Ну и не Шилдтом единым.
    Ответ написан
    3 комментария
  • Как отправить HTML письмо?

    3vi1_0n3
    @3vi1_0n3
    Открыть письмо в виде HTML в браузере, потом Ctrl+A, Ctrl+C, в гмэйле начать новое письмо и там вставить Ctrl+V.
    Есть шансы, что даже верстку не покоробит. Лучше себе отправить первое, проверить, как это будет выглядеть
    Ответ написан
    2 комментария
  • Как стать хакером в 2015-ом?

    voidnugget
    @voidnugget
    Программист-прагматик
    В принципе хакерские скилы ничем примечательным в наше время особо не отличаются от того что было 10 лет назад. Нужно знать ассемблер и сишку - без плюсов и досконально, что бы фраза "Си (без плюсов) может быть очень даже ООП" не могла вызвать странную ухмылку на вашем лице и воспринималась довольно обыденно.

    1. Перво-наперво нужно научится пользоваться отладчиком OllyDbg, IDA и т.п.
    2. Потом нужно разобраться в архитектуре х86 на уровне понимания распределения прав доступа, работы с памятью и различных SIMD/MIMD операций.
    3. От ОС ничего не зависит - знания и навыки в kmdf/umdf и linux kernel device drivers дополняют друг друга. Также нужно разобраться с системными вызовами самих ОС и как это всё оперируются со стороны старых добрых glibc и т.п. вещей.
    4. Из языков нужно брать и эксперементировать со всем - даже в той же Java в рамках OpenJDK есть куча эксперементальных вещей, типа Project Graal и Project Sumatra, в которых очень даже полезно покулупаться ради собственного развития. Никогда не знаешь что найдёшь и как это можно будет потом использовать - главное искать и не останавливаться.
    5. Конвертируют полученные навыки и знания самыми разнообразными способами - лучше всего разрабатывать под ядрышка ОС различные вундервафли, становиться известным и ити работать в IBM / Intel. WhiteHat/GreyHat зароботки в постсовке нереальны, а BlackHat грозит сроком.
    Ответ написан
    Комментировать
  • Почему ширина блока становится ноль пикселей, если в переменной другое значение?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Как только вы установили элементу display:none, запускается рендеринг и его размеры становятся нулевыми.
    Достаточно поменять порядок выражений jsfiddle.net/petroveg/fnwhfv8s/1
    Ответ написан
    3 комментария
  • Что учить, не могу определиться!?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    идите постепенно, вещи вроде Angular и React намного проще изучить когда у вас уже есть определенный уровень в JS, а именно четкое понимание базовых концепций. А так это будет просто тыканье на месте и не продуктивно потраченное время.

    Берусь за jquery, json, sass,lessи ничего толком выучить не могу

    Учить JSON? бред. Осоздайте необходимость появления форматов типа JSON/XML/etc. Целенаправленно учить less/sass, то же не ок. Учите CSS (less/sass/postcss это лишь инструменты которые позволяют вам более грамотно организовать ваш код), и не в плане свойства/селекторы, а в плане подходов к верстке (БЭМ, MCSS и т.д.). Ну и да, заучите что такое DRY и почему вообще возникла необходимость в инструментах типа less/sass.

    ajax

    Не изучайте AJAX, изучайте HTTP. Тогда будет проще отделить реализацию от общей концепции. Хватит бездумно говорить "сделаю AJAX запрос", давайте говорить "сделаю HTTP запрос".

    короче направление простое - когда у вас будет более мение стабильный фундамент - то можно приступать к более высокоуровневым вещам.
    Ответ написан
    15 комментариев
  • Как скрыть последний элемент (last-child)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Для пополнения коллекции в зоопарке — можно не переопределять, а записать сразу как нужно:

    Используем псевдокласс отрицания
    #main-navigation li:not(:last-child) a {
    	border-right: 1px dashed #39f;
    }

    Используем комбинатор ближайшего соседа
    #main-navigation li + li a {
    	border-right: 1px dashed #39f;
    }

    А ещё вам совет — используйте классы. Не полагайтесь на имя тэга.
    Ответ написан
    Комментировать
  • Использовать CSS framework или писать свое?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    тот же бутстрап поставляется в виде кучи less файликов, вы можете просто выкинуть лишнее. Еще есть uncss для оптимизации, еще есть куча других штук.

    Имхо, писать свой "фреймворк", если вас смущают дополнительные 40 кб - ничем не обоснованная трата времени. Если же это ваш личный проект и вам хочется - то вас никто не остановит.
    Ответ написан
    4 комментария
  • Как исправить баг с opacity и ссылками в firefox? И баг ли это?

    rajdee
    @rajdee
    Front-end developer
    opacity меньше 1, воспринимается, как z-index: 0. У вас ссылки оказываются ниже остального контента
    Ответ написан
    6 комментариев
  • Как быстро работает find в jquery?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Гарантированно производительнее будет так:

    $(document).on('click', '.item', (function (e) {
    	$('.image', this).text('ok');
    });

    Вопрос задаёте хороший, но ограничиваете себя только траверсом элементов, в то время как предпочтительней использовать фазу всплытия события без какого-либо предварительного поиска. Ах, и да — при динамической генерации контента такой вариант безотказен.

    Можно обратить внимание на синтаксис поиска — различные варианты вызова jQuery описаны в документации.
    Ответ написан
    3 комментария