• Минимум для junior web developer в Москве?

    27cm
    @27cm
    TODO: Написать статус
    Нет никакого минимума знаний при устройстве на работу. Это вам не ЕГЭ в школе, когда набрал минимальный проходной балл и поступил куда-нибудь. Никакой минимум вам не гарантирует работу младшего веб-разработчика, тем более в Москве.

    Смотрите, что требуют в вакансиях на эту должность.
    Ответ написан
    Комментировать
  • Почему консоль выводит html?

    voidnugget
    @voidnugget
    Программист-прагматик
    Все элементы DOM дерева с объявленным id автоматически становятся атрибутами глобального объекта window. console.log(box); и console.log(window.box); - одно и тоже. Это стандартное поведение для cовременных браузеров (ES5+ afaik) и одна из причин по которой секторы на основе id выполняются медленее чем уникальные селекторы на основе сlass атрибута, привет БЭМ.

    На примере этой же страницы можно вбить console.log(window.adriver_banner_403766071); в консоль браузера.
    Ответ написан
    3 комментария
  • В чем смысл PostCSS сегодня?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В последнее время началась мода на PostCSS - много постов, статей о нем.

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

    Есть даже версия (не без оснований), что это - прародитель всех современных препроцессоров и веяний.

    Где ж это вы такое прочитали? postcss был попыткой решить проблемы, которые нельзя решить препроцессорами (или можно но долго).

    Окей, будем считать так, тем паче, что история коммитов на Гите это скорее подтверждает.

    Что именно подтверждает? сначала был Sass написанный рубистами что бы CSS можно было бы готовить так же нежно как они готовят HTML на HAML (кофескрипт туда же, рубистам хотелось сделать js похожим на ruby). И это заметте было в 2006-ом году! тогда и js был медленный, и V8 может только в планах был...

    Ведь все, что умеет PostCSS, умеют и препроцессоры

    postcss из коробки не умеет ровным счетом ничего. Он может только загрузить AST CSS файла и слепить из него обратно тот же CSS.

    И именно в этом сила postcss - модульность. Все существующие препроцессоры монолитны. То есть вы не можете просто так взять и добавить что-то свое туда. Да, в последних версиях less (и вроде как sass туда же подтягивается) у вас есть примитивный набор средств что бы вклиниться в процесс обработки AST документа и добавить какие-то примитивные вещи. Но это не удобно. Если вы хотите динамически менять проперти (например пересчитывать rem в em) или добавлять еще (опять же для того что бы руками не плодить в css кастыли для разных браузеров и делать это автоматом, на завязываясь ни на миксины и оставляя CSS чистым) свойств, но сделать это на less/sass сложно.

    Намного проще взять postcss и натравить это дело на результат работы препроцессоров.

    Давайте придумаем пример того, что можно легко и просто сделать при помощи пост процессоров и что сложно сделать с препроцессорами. Самое первое что приходит в голову - инлайнинг ресурсов. Например мелкие png-ки. Или работа с относительными путями, ресолвинг оных точнее. В этом случае мы с postcss напишем маленькую функцию, которая пробежится по всему абстрактному синтаксическому дереву и найдет использование url(). далее мы можем проверить размеры картинки и заинлайнить их (если у них размер достаточно маленький). Или собрать список всех задействованных картинок и использовать их потом (например что бы скопировать только то, что мы реально используем).

    Вот как-то так. А за счет того что мы имеем доступ целиком и полностью к формированию и обработке AST мы можем и синтаксис CSS развивать. Примерами могут служить многочисленные плагины аля cssnext и т.п. Можно даже большую часть фич sass в виде плагинов подключить.

    А самое забавное, что работает это все быстрее того же libsass на плюсах. За счет архитектуры (имею в виду не голый postcss а с набором плагинов добавляющих функциональность sass).
    Ответ написан
    Комментировать
  • Какой выбрать фреймворк для сайта аналога headhunter или habrahabr?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Стоит ли выбрать такой же?

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

    Мой вам совет - оставьте решение этого вопроса команде разработчиков вашего продукта.

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

    tin-iven
    @tin-iven
    Фрилансер до костей
    d4b3d05717394f538a0470236a5d53f8.png

    Все понимаю - козлы, жлобы, эксплуататоры, жмоты - акционеры и руководство.
    Но: хлеб у вас в магазине не дорожал? тюлька не дорожала? услуги провайдера? абонемент в спортзале? и т.д.?
    Все или почти все поднялось в цене. Виноват проклятый доллар (ну, или не доллар, не важно). Поднялись и цены на бирже.

    А теперь конкретно по FL. Как это работает - есть акционеры (Мажирин и аптекари) и руководство (Росошанский и Тараханов). Раз в полгода акционеры собираются и говорят руководству - уровень прибыльности должен быть такой. Аптекари покупали долю в у.е. и получать хотят у.е. Мажирину тоже у.е. нужны - хотя бы на танцы свои. Итак, в начале 2013 прибыль была 200 000 у.е. в месяц, а в начале 2015 стала 75 000 у.е. Акционеры говорят руководству - нужно вернуть хотя бы до 150 000 у.е.

    Как это сделать - проблема не акционеров, а руководства. И руководство начинает действовать - вводит Profi, поднимает цену Pro, добавляет закрепления и прочие мелкие платности, увольняет кучу людей штата - почти 90%! www.the-village.ru/village/blogs/business/221897-c...
    Прибыль пошла в гору. "Ф-у-у-х! Акционеры не уволят, даже премию дадут" - так думает руководство. На первом этапе это так и работает.

    Но. Что имеем с итоге: сервис теряет в качестве - не хватает людей для нормального обслуживания пользователей, кода, серверов - отсюда постоянные падения, взломы и недовольство (https://vc.ru/n/fl-off, https://vc.ru/p/fl-hacked и т.д.). Сервис становится дороже (замечу - в рублях, в у.е. остается на том же уровне или дешевле) - отсюда снова недовольство пользователей.

    Блин, так почему же эта биржа не умирает? Почему все снова идут и платят (судя по анализу количество PRO за последний год не уменьшилось, а только выросло)? А я скажу - потому что есть заказы. Не просто заказы, а много заказов. Смотрим сколько - primelance.com/analytics/. Блин, да столько же, сколько на всех остальных биржах вместе взятых.

    Итог повествования: в обозримой перспективе ничего не изменится. На FL будет много заказов - к ней привыкли, она выделяет денег на рекламу больше остальных, только она обслуживает юриков. Поэтому туда будут идти фрилансеры, будут платить дорогой Pro. Этот самый Pro будет дальше дорожать - думаю, к середине 2016 на уровне 2000-2500 рублей. Если рубль продолжит плохо себя вести - еще больше, или переведут ценник в доллар.

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

    Поэтому - если вы знаете или учите английский - валите по быстрому с отечественного фриланса. Если не знаете и учить не собираетесь - радуйтесь, что FL просят 1600 в месяц с неограниченным числом ответов, а не 600 за 10 ответов в месяц, и дальше по 120 рублей за каждый ответ + 10% с каждого заказа (каждого!), как это есть на Upwork.
    Ответ написан
    8 комментариев
  • Почему параметр key функции sorted принимает key = lambda x: abs(x), но не принимает abs()?

    Avernial
    @Avernial
    Разрабатываю научное ПО на языке Python.
    Потому что вы передаете в качестве key результат вызова функции abs, а не саму функцию. Уберите круглые скобки.
    Ответ написан
    3 комментария
  • Behat не загружает все файлы из features/bootstrap?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    приведенная вами цитата относится исключительно к автозагрузке. Какие контексты использовать - регламентируется в behat.yml.
    Ответ написан
    Комментировать
  • Знаете примеры красивого php-кода?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • Действительно ли Ruby сложнее PHP/Python? Если да, то почему?

    @eoffsock
    Кодер (Rails)
    Я пришел в разработку на Rails четыре года назад, не зная решительно ничего. Учился на ходу. Попутно осваивал SQL в режиме «вот процедура на PL/SQL длиной в шесть экранов, нужно чтобы работало вчера»
    С тех пор вакансий меньше не стало.

    Другое дело, что знать Rails мало. Нужен фронт, хотя бы немного. Slim/HAML.
    В среде RoR фетиш на тесты, значит как минимум RSpec, Capybara. Как минимум один гем для работы с фоном — delayed_job, Sidekiq.
    К этому прибавить умение разворачивать все это дело и стартовать в production — Capistrano/Mina, unicorn.
    Ценится видеть хоть раз в жизни Devise и Cancan.
    Остальное обычно зависит от проекта.

    Дальше — правила хорошего тона.
    https://github.com/bbatsov/rubocop
    https://github.com/railsbp/rails_best_practices
    https://github.com/bbatsov/rails-style-guide

    А потом вы уже внезапно крепкий мидл или начинающий сеньор и советы обычно уже не нужны.

    UPD: Да, в целом стоит начинать с Ruby/Rails. Но мое мнение предвзято — я не люблю PHP, хотя с уважением отношусь к NodeJS.
    Ответ написан
    Комментировать
  • Что такое agile разработка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Методика разработки.

    Waterfall: все тщательно планируем, назначаем сроки, разрабатываем, сдаем.

    Agile: Примерно планируем, анализируем, назначаем конечный срок, планируем на текущую итерацию, разрабатываем, планируем на текущую итерацию, разрабатываем... , сдаем

    Проблемы Waterfall:
    Если кто-то слажал, все ждут. Если нужно что-то добавить, очень сложно, потому что фаза планирования была очень долгой и тщательной и что-либо менять значит надо все менять.
    Если в плане указано, что сперва делаем это, а потом то, может случиться что некоторые люди, которые будут делать "то", будут какое-то время пинать "огурцы" пока ждут что первые люди сделают "это".
    Плюсы Waterfall:
    Все спланировано, все точно знают что когда будут делать.

    Проблемы Agile:
    Люди должны быть достаточно зрелые, чтобы нормально загружать себя работой - Agile в бюрократической среде просто провалится.

    Плюсы Agile:
    Практически нет простоя ни у кого - все всегда могут занять себя задачами.
    В случае появления новых требований, их можно без особого вреда ввести в проект почти на любой стадии. Главное чтобы технически это было возможно (в случае waterfall проблема именно на уровне утверждений и плана, то есть бюрократии)
    Адекватное использование рабочей силы - если у кого-то нет текущих задач, его официально можно занять под другие проекты.

    Agile это не сверхфича, это инструмент, точнее подход к планированию работы, но им нужно уметь пользоваться.
    Ответ написан
    Комментировать
  • Как узнать что передается именно JSON?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В качестве языка

    в качестве языка вы используете javascript. Feel the difference.

    то Node.js сразу вылетает не выдавая никаких ошибок.

    оно где-то внутри выкидывает исключение когда делает JSON.parse.

    строка именно в JSON формате?

    Заголовок Content-Type, но есть шанс что писать клиент может слабоумный который не будет верно выставлять этот заголовок, так что вам надо всеравно наладить обработку ошибок. Это только в PHP позволительно ничего не делать, и то только если придерживаться классической умирающей модели.
    Ответ написан
    Комментировать
  • Можно ли еще бесплатно обновить Win 8 до 10 и как?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Механизм очень сложный, найти его весьма непросто, справиться с ним еще сложней... Уверены, что вам это нужно?
    Если уверены, то запоминайте: нужно произнести волшебные слова "windows obnovlyantus iz centra obnovlenias", зайти в центр обновления, включить обновления, дождаться получения релиза 10ки.
    Потом обновиться и радоваться жизни.
    Но не забудьте про волшебные слова!!!!
    Ответ написан
    4 комментария
  • Как исправить ошибку Python?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Извините, но здесь не личная техподдержка Python и разбирать ваш код с ужасно именнованными переменными никто не будет. Учитесь искать ошибки самостоятельно, иначе выльется в плохую привычку.

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

    Jump
    @Jump
    Системный администратор со стажем.
    Прекратите эксперименты и отнесите профессионалам.
    Читать надо посекторно на исправный диск, а уж там восстанавливать.
    Ответ написан
    Комментировать
  • Почему PDO::fetchAll() очищается после первого использования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    объяснение проблемы - fetchAll забирает все данные до конца. Очевидно да? Что это значит на деле - когда мы выполняем запрос то база данных возвращает нам указатель на начало результата, у нас еще нет всего результата. Сделав fetchRow мы забираем первый результат, указатель переходит на следующую строчку и т.д. Потому то когда у нас уже нет результата мы получаем null.

    Вот и с fetchAll выходит так же. Второй раз не выйдет.

    p.s. пересмотрите свои взгляды на то, как вы работаете с данными. Используйте fetchAll один раз и реюзайте результат для чего вы там хотите странного.
    Ответ написан
    Комментировать
  • Как в socket_bind указать адрес, а не ip?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    мм... почитайте про URI, про сокеты и что все таки делает socket_bind. Тогда вопрос думаю отпадет сам собой.
    Ответ написан
    Комментировать
  • Как сделать чтобы кеш на сайте не сохранялся?

    27cm
    @27cm
    TODO: Написать статус
    Установить HTTP заголовки, запрещающие кеширование:
    sitear.ru/material/zapret-keshirovaniya-stranicy-h...
    Ответ написан
    Комментировать