• Как создать превью страницы сайта?

    AItF4
    @AItF4
    Помог ответ? Отметь решением.
    Геннадий Уваров, чтобы это сделать, вам нужно добавить в head страницы теги:

    <meta property="og:title" content="">
    <meta property="og:site_name" content="">
    <meta property="og:url" content="">
    <meta property="og:description" content="">
    <meta property="og:image" content="">

    Далее нужно каждому мета-тегу заполнить параметр content=""

    За что отвечает каждый тег:
    og:title - заглавие страницы, он же тайтл. Можете скопировать из тега title.
    og:site_name - название сайта.
    og:url - ссылка страницы, где вы добавляете этот код. Если это однастраничник, то это просто ссылка на главную сайта. Если сайт на CMS или самописный и у него много страниц, то вам придется для каждой указать свой тег, со своей ссылкой.
    og:description - описание страницы. Можете скопировать из тега description для страницы, на которую добавляете теги.
    og:image - ссылка на картинку, что характеризует страницу. Можете указать ссылку на лого сайта, или нарисовать конкретную картинку для этих целей.
    Ответ написан
    2 комментария
  • Можно-ли скачать видео с YouTube используя DevTools?

    Есть такая «секретная» ссылка: www.youtube.com/get_video_info?video_id=XXXXXX
    Вместо XXXXXX подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU после слеша.

    По этой (первой) ссылке вернутся URL-encoded данные. Распакуйте их и возьмите параметр url_encoded_fmt_stream_map. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url – это ссылка на единый скачивабельный видеофайл.

    Например, в консоли браузера:
    function getUrlParams(search) {
        let hashes = search.slice(search.indexOf('?') + 1).split('&')
        let params = {}
        hashes.map(hash => {
            let [key, val] = hash.split('=')
            params[key] = decodeURIComponent(val)
        })
    
        return params
    }
    var s = '------'; // здесь длиннющая строка из ответа /get_video_info
    var a = getUrlParams(s);
    var b = getUrlParams(a.url_encoded_fmt_stream_map);
    console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл


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

    BBmike
    @BBmike
    Во-первых, убытки / ущерб должны быть реальны обоснованы и документально доказаны, поэтому он не могут просто взять и насчитать 100500 миллиардов

    Во-вторых, суды всегда применяют 333 ГК РФ.

    В-третьих, полное возмещение убытков гарантировано тем же ГК РФ так что это и в договор писать не надо
    Ответ написан
    3 комментария
  • Вернуть клиенту деньги, за проделанную работу?

    iamd503
    @iamd503
    Верстальщик
    Посчитай всё, что сделала, вычти из аванса и если там что то осталось, то верни деньги ему, накуй его пошли и не переживай.
    Ответ написан
    Комментировать
  • Redmine. Стоит ли связываться?

    Занимался EasyRedmine(фултайм), в основном потеря времени и квалификации. Без нужды лучше не связываться.
    Ответ написан
    Комментировать
  • Redmine. Стоит ли связываться?

    BacCM
    @BacCM
    C++ почти с рождения
    Могу судить как пользователь. Учитывая, что существует куча форков, в том числе платных, пробовать однозначно стоит. Плохо написанные вещи не должны были бы пользоваться такой популярностью.
    Ответ написан
    3 комментария
  • Redmine. Стоит ли связываться?

    MetaAbstract
    @MetaAbstract
    Архитектор информационных систем и баз данных. Ful
    Хорошая тема. Стоит заниматься.
    Остальное технические детали)
    Ответ написан
    Комментировать
  • Redmine. Стоит ли связываться?

    @spaceatmoon
    Делал простой модуль, при этом ни разу Ruby в жизни не видел. Внутри по ощущениям вроде не булшит. Если знаете Ruby, то я думаю вам будет еще легче. Дерзайте.
    Ответ написан
    Комментировать
  • Redmine. Стоит ли связываться?

    @Tab10id
    Болшая часть кода redmine сложно назвать чем-то хорошим. Методы на 50+ строк тут считаются нормой. В проекте тонны легаси-кода. Так как история редмайна началась ооочень давно, когда даже rails еще не был мейнстримом, часть решений redmine стали конфликтовать с аналогичными решениями rails, которые появились несколько позже. Все эти проблемы решаются стандартным для руби способом, манкипатчингом. В итоге нет нормальной поддержки i18n, нет sprockets (подключить костылями можно, но даже после того как оно заведется, проблем будет достаточно), фронт из нулевых (и внешне и внутренне), адекватность внутренней логики часто под большим вопросом, особенно что касается старого кода.
    Стабильная версия redmine работает на rails 4.2, но на подходе новая версия с rails 5.2.

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

    Но при всем при этом, так как это руби, обходные пути можно найти почти всегда, положительные тенденции в кодовой базе имеются, хотя и на низком уровне. С минимальными костылями можно переиспользовать систему фильтров как в задачах. Хотя с некоторой кривостью данной сиспридется смириться или долго и мучительно слать пулл-реквесты (которые в случае redmine оформляются в виде задач на redmine.org с прикладыванием патчей).

    О себе. 5 лет работаю с redmine, но, так как задачи не связаны напрямую с redmine и rails, особой боли не испытываем. Жить можно.
    Ответ написан
    1 комментарий
  • Стоит ли сегодня переплачивать за сайт на ruby? Или сэкономить на php?

    @vsuhachev
    Расширяемое и производительное приложение можно разработать на любом языке, вопрос как всегда в исполнителях.

    Вы рассуждаете слишком наивно: вложу в 2 раза меньше и получу то же самое. Увы, получить вы можете все что угодно от в 10 раз лучше до в 10 раз хуже, независимо от технологии.

    Если речь идет об одном и том же разработчике - все равно одной технологией (PHP) он владеет лучше и возможно вам предлагают еще и оплатить свое обучение (Rails) с не прогнозируемым для вас результатом.

    Если это разные разработчики, то тут нужно смотреть и сравнивать. Возможно те кто просят дешевле и делают хуже. Или, например, стандартные требования укладываются в их CMSку, а вот расширенные - ценник может вырасти в 5 раз.

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

    PS: почитал тут про тормознутость ruby от коллег php-шников, кратко - это миф из давнего прошлого, современному положению дел не соответствует
    Ответ написан
    Комментировать
  • Стоит ли еще раз проверять данные из формы на сервере, если ее уже проверил javascript на клиентской стороне?

    viktorvsk
    @viktorvsk
    Проверка у клиента - для удобства клиента
    Проверка на сервере - для безопасности клиентов
    Ответ написан
    Комментировать
  • Как делать такие условные заголовки?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Белый или черный
    https://github.com/Taraflex/Brackets-Color-Highlig...
    https://github.com/Taraflex/Brackets-Color-Highlig...
    Цвет из картинки лучше вычислить заранее на сервере, ибо на клиенте не выйдет отобразить цветную карточку до загрузки картинки
    https://github.com/ksubileau/color-thief-php
    https://github.com/thephpleague/color-extractor
    https://github.com/brianmcdo/ImagePalette
    https://www.phpclasses.org/package/3370-PHP-Extrac...
    ну и еще можно нагуглить

    UPD
    Градиентный блур на js
    https://jsfiddle.net/8ujmn5zs/62/
    Ответ написан
    Комментировать
  • Как соместить Masonry + ajax + infinitescroll?

    @zggb Автор вопроса
    Да, нужно было повторно вызывать Masonry.

    Вот, что добавил и сработало.
    $( document ).ajaxComplete(function() {
        $container.masonry('reloadItems').masonry();
    });
    Ответ написан
    Комментировать
  • Как находить и участвовать в проектах на гитхаб?

    sim3x
    @sim3x
    Делаете работу
    В процессе находите ошибку в стороннем коде
    Находите ее источник
    Пишите багрепорт и тесткей
    Так как всем пофиг
    Сами фиксите баг
    Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
    Он вас посылает, тк ето не баг
    Ответ написан
    10 комментариев
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Хорошая архитектура снижает необходимость в приведении типов.
    5af00f1b811b0153622827.png
    А придумали и используют динамическую типизацию потому, что она существенно снижает TTM.
    Ответ написан
    4 комментария
  • Что делать веб разработчику, если уже всё придумано?

    AgentProvocateur
    @AgentProvocateur
    Правильно заметили, что есть люди-исполнители, а есть люди-генераторы идей. Нужно реально взглянуть на себя и...принять это. Быть профессиональным исполнителем гораздо кошернее, чем быть генератором провальных идей. По статистике, 9 из 10 стартапов провальны...зачем пополнять собой этот список? Если ты - рыба, то многого ли ты добьешься от фрустрации по поводу неумения залезать на дерево?

    Самый верный путь к рабочей идее:
    1. Проработать в какой-либо сфере достаточное количество времени;
    2. Познать её изнутри на собственной шкуре;
    3. Выявить в ней боли/проблемы/недостатки;
    4. Решить их с помощью прикладного навыка (программирования);
    5. Обкатать в собственной работе;
    6. Упаковать решение и реализовать коллегам по сфере;
    ...
    7. PROFIT!

    Далее...даже если завтра в голову залетит рабочая идея, готов ли ты её реализовать? У тебя есть команда, готовая работать минимум полгода-год бесплатно на время создания беты, тестов, обкатки, раскрутки? Она сможет действительно реализовать всё как надо? Если нет команды, имеются ли у тебя средства на зарплатный фонд хотя бы для 5 человек на эти полгода-год? А с учетом налогов и отчислений (+30% к зарплате на руки)? У тебя есть условия для работы этих 5 человек? Есть ли у тебя сумма на маркетинговое исследование твоей идеи (или лучше облажаться на авось)? Есть ли у тебя хотя бы миллион на первичный трафик из директа? Или надеешься донести свой стартап до пользователей путём емэйл-спама?)) Я не указал и доли того, что потребуется для реализации небольшого web-сервиса, даже при наличии действительно рабочей идеи. Может быть, идеи не прут именно потому, что ты просто не готов к их реализации, и неча порожняка гонять?)

    Как выглядит стартап глазами романтичного юноши, начитавшегося глянцевых историй успеха:
    1. Придумать гениальную идею;
    2. Закодить в гараже в одну харю или в паре с дружбаном;
    3. Разместить на сервере и получать от мира благодарности, признание и мешки денег.

    Как выглядит стартап на самом деле:
    1. Пахота минимум 10 лет в одном направлении/сфере;
    2. Наработка профессионализма, идей, контактов, связей, клиентской базы, понимания всех нюансов сферы;
    3. Угон базы, угон клиентов на себя, переманивание лучших коллег/сотрудников, оформление юрлица, открытие "своего дела" на рабочей идее)))

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

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

    P.S. Понимаю, что вряд ли отметишь мой ответ решением, ведь тебе хочется подбадриваний вида "Не сдавайся! Ищи и обрящешь! Не опускай руки и всё получится! Вот тебе ссылочки, вот тебе инструкции!", а не режущей глаза суровой реальности. Но в некоторых случаях действительно полезно осознать своё место в пищевой цепочке - антилопа или гепард, слесарь или архитектор, промо-изготовитель или промо-заказчик и т.д. И исходя из этого уже взращивать свои амбиции, комплексы и фрустрации. Повторюсь - в стремлении стать самым крутым слесарем нет ничего постыдного, и даже в финансовом плане может оказаться куда выгоднее и стабильнее других амбициозных вариантов.
    Ответ написан
    4 комментария
  • Что можно считать глубокими знаниями в js?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Немного дополню, чтобы новички не пугались. А то страшилок много о том, что надо знать все, хотя в реальности, тех кто действительно "знает все" можно пересчитать по пальцам:

    Как работает браузер - можно знать лишь в общих чертах, для общего развития. В повседневной жизни это в 99% случаев не нужно. Браузер предоставляет нам API и мы его используем. То как оно устроено внутри пусть остается инкапсулировано внутри.

    Как работает V8 - опять же, достаточно общего представлени об event loop. Все остальное пусть остается скрыто и используется через API.

    Оптимизация кода под браузерные движки - в большинстве случаев вообще не надо.

    Утечки памяти - если умышленно не стрелять себе в ногу, то тоже никаких проблем с этим не будет.

    Написание быстрого кода - практически не нужно (он и так будет достаточно быстрый). Лучше сосредоточиться над написанием читаемого, тестируемого и поддерживаемого кода.

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

    BBmike
    @BBmike
    1. Правильно все понял
    2. Можешь не отдавать деньги
    3. Прокуратура / трудинспекция

    И скажи этому дебилу, что проект просрочен не потому, что ты медленно кодил, а он хреново управлял.
    Ответ написан
    6 комментариев
  • Ноутбук для учебы и программирования?

    longclaps
    @longclaps
    Отличный бюджетник.
    Проц припоздал на 5 лет - это ничего, и что по производительности застрял в прошлом десятилетии - тоже не беда, главное - есть крутая дискретная видеокарта, которая почти догоняет свою бюджетную сестру из 2008 года. А без неё какие ж учёба и программирование?
    Ответ написан
    1 комментарий
  • Открывать ИП или нет?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Несмотря на то, что ты уже принял решение, всё же не смогу не написать пару строк.

    Вот уже почти 3 года работаю как ИП, до этого работал N лет "в чёрную". Напишу кратенько, что явилось причиной такого решения и почему я сейчас счастливее и доходнее, чем был. Однако если тебя не волнуют перспективы роста, можешь далее не читать.

    Когда доходы маленькие, то вроде как нет смысла открывать ИП, потому что "и так денег мало, ещё и налог платить, взносы какие-то". На самом деле эта ситуация очень аккуратно и незаметно вдавливает тебя в грязь. Ты подсознательно стремишься "не высовываться", потому что чем больше у тебя доходы, тем вероятнее получить внимание от налоговой инспекции (а ты скорее всего уже прочитал, что бывает за незаконное предпринимательство).

    Сейчас существуют проблемы с получением денег на счёт физлица - можно один-два раза получить большую сумму, а на третий раз карту заблокируют и попросят прийти в отделение для "выяснения обстоятельств" - такое было с моим бывшим партнёром, в настоящее время он тоже уже оформился как ИП.

    Что касается трудностей ведения ИП - их нет. Конечно, всё приходится делать в первый раз, и мне пришлось чесать репу о том, как правильно оформить документы и проч., много читать и спрашивать совета у уже прошедших этот путь. Но это приходится делать только однажды. Потому что сейчас, когда уже всё мне известно - это больше не проблема. Бухгалтерию ведёт Моёдело за 8 тыр в год. Открыт счёт в банке, с которого 6% идут на пользу родной стране. Договор с очередным клиентом - это шаблон, в котором я просто меняю название и пару строк о проекте. Всё занимает 15 минут от силы.

    С зарубежными заказчиками тоже всё "в белую". Paypal рулит.

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