• Так когда же всё таки можно использовать !important?
    0
    Что значит «быстро»? Разве узнать необходимый вес селектора для переопределения так сложно и долго? Мы очень активно используем DevTools при разработке, и для решения этой задачи ответ у нас есть там же.



    Разве это долго? Мне кажется, по времени это мало отличается от того, чтобы дописать !important, однако намного правильнее и безопаснее.


    А потом заказчик вас спросит, почему у него на мобильном ничего не поменялось. И нет, окажется, что проблема не в очистке кэша, а в том, что там есть ещё десяток других дублирующих селекторов для разных разрешений, которые вы в инспекторе объектов на десктопе не увидели.

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

    То есть я не спорю, что чем меньше !important, тем правильнее, но таки да, написать !important в основном быстрее. В этом-то и его trade-off.
  • Поиск багов как образ жизни
    0
    Пользователи, которые заглядывают «под капот», будут ругать автора сайта

    Ругать-то будут, и есть за что, но в итоге им будет проще отключить плагин и заказать снова или позвонить по телефону, а не оставаться с плагином и искать другой сайт, а затем те же самые блюда на нём.
  • Поиск багов как образ жизни
    0
    В том, что невозможно создать защиту и при этом обеспечить совместимость с говнокодом плохими практиками написания сайтов для всего.

    В том-то и дело, что возможно, я уже писал выше. Вместо блокировки запросов к Yandex просто перенаправить их на свой сервер, с которого бы создавался yaCounter-пустышка, который ничего не отправляет.
    Цель защиты какая? Отбить навязчивое нарушение конфиденциальности пользователя. Это было сделано? Да. Всё.

    Я уже писал, что цель защиты — делать всё это, не ломая сайты. А тут в итоге пострадал пользователь — потратил лишнее время на попытку создания заказа и разбор того, почему оно не работает.
    Если у пользователя не работает куча сайтов — это проблема. И понятно, почему эту проблему создатели сайтов решать не стремятся, для них это выглядит как «Ходют тут всякие, обмазывают браузер всякой ерундой, а потом жалуются, что у них сайты не работают. У нормальных людей всё работает.»
    Если бы цель защиты была в ломании сайтов с метрикой, то можно было бы их и просто не отображать вообще, и не тратить впустую время пользователя. И да, я не спорю, вас бы очень позабавило, если бы само присутствие метрики полностью ломало бы все такие сайты. Но только если бы это происходило с другими пользователями.
    Проблемы тех, кто живёт нерефелексируя незадумываясь и вставляет в подобные места обязательные анальные зонды — это их проблема. А каспер в данном случае всё сделал правильно, ибо он не обещал беспроблемной работы интернета, он сделал защиту от навязчивых нехороших людей.

    Нет, вашу-то позицию понять несложно.

    Сайт ресторана — плохой, он из племени тех, кто использует метрику.
    Касперский — хороший, он против метрики.
    Давайте очень-очень постараемся придумать будущее, в котором хорошим будет хорошо, а плохим — плохо.

    Вот только в реальности так не работает.
  • Поиск багов как образ жизни
    –1
    То есть это не на сайтах должны использовать бестпрактики, это разработчики всех средств защиты должны подстраиваться под говнокодеров всех разработчиков мира, использующих не лучшие практики?

    Современные браузеры, например, именно так сейчас и работают с html. Они не падают с ошибкой при первом незакрытом или устаревшем теге, дубликате id или некорректном атрибуте. Они продолжают обрабатывать html, даже если он явно написан с ошибками.
    Почему они это делают? Почему бы им просто не сказать, что пускай кривые сайты идут лесом и сами у себя всё исправляют? Я уже ответил выше, почему. Потому, что им (браузерам) нужны пользователи.

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

    Примерно с того же момента, что и автор статьи. По его словам это уже был не первый проблемный сайт. А уж если это повторяется из раза в раз, и когда у других людей сайты явно работают, пользователь начнёт задумываться. Может, в итоге будет брешить на браузер, старый компьютер, медленный интернет или что-то ещё придумает. Но в итоге проб и ошибок таки найдёт конфигурацию, которая работает лучше. И в этой конфигурации уже не будет Kaspersky Protect.
    Тот же адблок не ударил по индустрии, так что из незамеченного явления перерос в то, с чем активно борются?

    Кто активно борется? Владелец самой большой рекламной сети — Google? Который распространяет его в своём собственном Chrome Store? Или Яндекс? Который сам учит людей, как ставить такие расширения на Яндекс.Браузер? Да никого это не волнует, по большому счёту.
    Проблемы кое кого шерифа не волнуют, ага. Пользователь не будет задумываться, почему глючит.
    Нет, потому что все знают бренд касперского, как защиту. Если сайт поломался из-за него — воспримется как то, что сайт делал что-то нехорошее и только, максимум.

    То есть ваш аргумент, что основная причина, почему Kaspersky Protect не должен исправлять эту ошибку — безнаказанность?
    Так в таком мире, где пользователю абсолютно без разницы, что происходит «под капотом» существовало бы и лучшее решение — просто создать расширение, которое ни от чего не защищает, а лишь показывает пользователю значок с буквой К где-нибудь в интерфейсе.
    Обычный пользователь никогда не заметит разницы, защищает его там что-то или нет. Достаточно в рандомное время сообщать, что «угроза остановлена» и он будет доволен. И разработка такого плагина занимает в тысячи раз меньше времени. И сайты никакие не поломает.
    Идеальный продукт, не так ли? Или всё-таки лучше бы им разрабатывать хороший продукт, в расчете и на тех пользователей, которые и «под капот» тоже заглянут? Определитесь.
  • Поиск багов как образ жизни
    0
    Обратный пример чего?

    Обратный пример того, что разработчики расширений безопасности тоже должны следить за тем, что они не ломают сайты. И в тех случаях, когда это возникает сравнительно часто и это легко исправить — исправлять. А данный случай как раз такой.
    Иначе они (расширения безопасности) будут терять пользователей. Пользователи будут уходить на другие расширения безопасности, потому, что там меньше сайтов ломается.

    Ну, то есть, это я думал, что будут уходить. Оказывается не все. Автор статьи, похоже, не допускает даже мысли, что с Kaspersky Protect что-то может быть неидеально.

    Извините, но какую я (как клиент) выгоду получу от того, что буду вот так тыкать и искать, какая защита меньше ломает данный сайт?

    В случае данного сайта — возможность пользоваться данным сайтом. В общем случае — широта выбора и экономия времени.

    Так-то да, вы не останетесь голодным без сайта конкретного ресторана, точно так же как и конкретный ресторан не обанкротится, если их сайт потеряет условные 0.1% пользователей Kaspersky Protect и пр. Тут ещё даже не известно, выгодно ли им вообще оплачивать услуги тестирования и исправления таких редких кейсов.

    А вот конкретный Kaspersky Protect уже может потерять значительную часть пользователей, если за ним закрепится репутация «он часто ломает сайты».

    Так что тут, по-моему, вполне очевидно, «чья» это проблема.
  • Поиск багов как образ жизни
    0
    Обратный пример тоже верен — если с одним расширением безопасности у пользователя ломается 10% сайтов, а с другим — только 1%, то выбор будет очевиден. Особенно, если при этом уровень безопасности будет одинаков.
  • Поиск багов как образ жизни
    +2
    Конечно, в данном конкретном случае веб-разработчик просто мог перенести вызов функции reachGoal вниз, после всех тех интерфейсных реакций, но в целом это не всегда возможно.
    А вот Kaspersky Protect вполне мог бы и убедиться, что раз уж он блокирует создание объекта yaCounter, то и дальнейшие обращения к нему тоже, по-хорошему, должны быть заблокированы. Или создавать свою заглушку вместо него тогда уж.
    Просто я считаю, что если уж хочешь защищать пользователя — убедись, что эта «защита» не принесёт ему больше вреда, чем пользы.
    В итоге получается ситуация, когда у всех пользователей Kaspersky Protect с дефолтными настройками возникают проблемы с работой некоторых сайтов, при этом у самих этих сайтов это лишь, условно, 0.1% пользователей.
    Как в такой ситуации можно утверждать, что сайты должны прогибаться под 0.1% пользователей, а Kaspersky Protect может дальше продолжать ломать работу реально существующих сайтов — загадка сия велика для меня.
  • Поиск багов как образ жизни
    +1
    С помощью пары запросов поисковику удалось выяснить, что это счётчик для Яндекс.Метрики. Интерпретация страницы просто прекращается после отказа любого внешнего компонента. Как говорится, на разработку было выделено много рублей… Так почему же кидается исключение? В моём браузере было установлено расширение Kaspersky Protect. Отключение разного рода маячков и счётчиков, видимо, входит в защиту от отслеживания, включенного по умолчанию. Это было причиной проблемы. Заказ еды я потом сделал на другом, более технически продвинутом сайте.

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


    Интересный градус лояльности, когда даже после такого случая, вы уверены, что это проблема веб-разработчиков, а не разработчиков конкретного Kaspersky Protect.
  • Сказ о том, как по закону потерять готовый бизнес
    +24
    Было бы интереснее, если бы в истории присутствовало чуть больше конкретики, пусть даже своими словами. А так, под эту историю с тремя сотрудниками могут попасть очень разные (с моральной точки зрения) сценарии:
    1. Отделу разработки поручили разработать конвертер из формата ABC в формат XYZ. Этот конвертер планировалось продавать как отдельный продукт. 10 человек работало, а потом трое из них зарегистрировали всё на себя и стали продавать от своего лица, лишив компанию и продукта и денег.
    2. Отделу разработки поручили сконвертировать 10 миллионов файлов ABC в формат XYZ один раз — после этого компания полностью переходила на формат XYZ и все разработки планировалось выкинуть на помойку. 3 человек работало, и они решили, чтобы добро не пропадало, можно создать из этого продукт и продавать. Дела пошли хорошо и компания решила, что не грех с них и отсудить чего-нибудь, раз такие богатые буратины появились.
  • Фриланс-вебдев — как и с кем НЕ стоит работать
    0
    Раньше тоже так делал, но в итоге пересмотрел свои взгляды после одной истории.

    Несколько лет назад активно работал на fl.ru, и случайно наткнулся на баг (не удивлюсь, если он там до сих пор есть) — если просрочить выплату комиссии, то аккаунт временно закрывают до оплаты, а после оплаты и разблокировки у него, как я понял, обнуляется внутренний счётчик дней. То есть в списке популярности фрилансеров по категории (который там фильтровался по количеству денег в день, которые фрилансер приносит платформе) получается, что фрилансер принёс кучу денег за один единственный день. Таким образом я стал «первым вебдевом всея Руси» и ссылку на мой профиль видели все, кто заходил в раздел «Создание сайтов».

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

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

    Так вот, защита сработала — код, который остался у заказчика был неприменим в продакшене и не полнофункционален, а я не попался на обман.

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

    А аккаунт свой на fl.ru я уже через пару дней убрал из того топа — надоело по 10 раз в день отвечать, сколько стоит сайт.
  • Фриланс-вебдев — как и с кем НЕ стоит работать
    +12
    Если бы Битрикс был бесплатным продуктом — у меня к нему было намного меньше претензий. Но при том, сколько он стоит, и на каких условиях нужно платить — считаю своим долгом как минимум упомянуть про него, чтобы принимающий решение (и, часто, не разбирающийся в вопросе) заказчик подумал дважды.
    Но если коротко — нет, не дань моде, это у меня личное.
  • Как я проработала 3 месяца в Я.Маркете и уволилась
    +2
    Чтобы немного скрасить вам вечер и мнение о человечестве — иногда опровержение таки срабатывает.
    Одного гейм-стримера-ютубера (ProJared) обвинили в том, что он мол прикрываясь своей известностью выманивал голые фотки у несовершеннолетних и потом постил на своём закрытом форуме. Обвиняли два человека, каждый рассказывал, что предупреждал о своём несовершеннолетии, но фотки он у них всё равно выманивал. И это на фоне всплывших чуть ранее обвинений в супружеской измене.
    Потом ещё подтянулись куча людей, которые начали про него вспоминать что-то плохое (часто путая его с кем-то другим).
    Начали травить самого стримера, всех, кто с ним связан, «захватили» сабреддит, даже в куче около-ютубовых новостей про это говорили. Короче, абсолютный конец карьеры.
    И, хоть ProJared и слился поначалу из дискуссии (написал пару водянистых постов, обходя стороной конкретные вопросы и заканчивая, мол, «вы же меня знаете, делайте выводы сами») и даже извинился перед обвинявшими, через несколько месяцев(!) выложил видео, в котором всё подробно объяснил. Если кратко:
    — Да, был форум с голыми фотками, он его вёл.
    — Никаких несовершеннолетних фоток там не было.
    — Диалог с одним обвиняемым он привёл — как напрямую спрашивает его о совершеннолетии и тот подтверждает.
    — Диалог со вторым он вообще найти не смог, но он оказался в друзьях первого и обладает целым букетом «особенностей» — типа менял пол, писал на одном из форумов что из-за какой-то проблемы с головой вообще не помнит события определённого года (как раз того, когда должна была происходить эта история).
    — С женой у них давно уже были напряженные отношения и она сама(!) предложила ему свободные отношения, мол мы оба будем встречаться с кем хотим. И вообще, «не ваше дело».

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

    Разговоры на кухне, в смысле таргетированной рекламы, не стоили бы даже цента.

    Они не релевантны (часто анти-релевантны, например частое упоминание слова «холодильник» может быть связано как с тем, что человек сейчас выбирает холодильник, так и с тем, что он уже купил холодильник и предлагать ему второй в рекламе — пустая трата денег).

    Считать, что кто-то ради их получения будет адресно приезжать по подъездам (и работать под статьёй), это примерно как верить, что квартиру ваших соседей выкупило правительство/гугл/масоны/рептилоиды, исключительно чтобы следить за вами.

    Будьте здоровы.
  • Как стать менее доступным для потенциального злоумышленника в Интернете. Личный опыт и наблюдения
    0
    В статье приведено три примера атаки:
    — Рассылка от вашего аккаунта в соцсетях
    — Отмена бронирования в отеле
    — Отмена покупки в интернет-магазине

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

    Поэтому, скажем так, если вы приехали в отель и на ресепшене заструдняются найти вашу бронь, и ваша первая мысль — что это результат работы злоумышленника… Вы знаете, что у вас.
  • Проверьте себя: а на какое количество вопросов ЧГК сможете ответить вы?
    +9
    Соглашусь, что обычно от таких мероприятий ожидаешь худшего качества вопросов, но всё-таки многие из приведённых вопросов напоминают старую цитату с башорга:
    (из одного чата с народ.ру)
    (1): Народ!!! Помогите найти песню… Названия не помню…
    (2): Напой.
    (1): Ну там типа тууууу, туутууууу, туутуууутууууу… Туууу тууутуууу, туууутуууу туууу…
    (2): Rammstein — Du Hast чтоли?
    (1): ООО!!! Она! Спасибо!!!

    (3): ну вы п***ц.

    То есть даже факт правильного ответа ещё не означает правильность задания вопроса.
    Вот например:
    2. В 1979 году, еще до выхода своей компании на биржу, Стив Джобс провел тесты, не имеющие отношения непосредственно к продукции компании.
    Вопрос: А какие именно тесты?

    Так всё-таки, провёл или прошёл? Не сам ведь он там с пробирками сидел.
    Плюс, в такой ситуации непонятно, что делать, если игрок ответит «он проверил, как будет пахнуть от человека, который питается только яблоками». Потому что он таки это проверял, и в 1979 году, вполне возможно, тоже (и у него там было ещё много довольно своеобразных «теорий» в те годы).
    То есть вопрос не просто на эрудицию, а на то, одинаковые ли факты первыми приходят на ум составителю и игроку.
    В других вопросах они попытались это исправить, выбирая вопросы с цитатной конструкцией типа «рассуждая про X, некий человек упомянул угадайте-что», что делает их слегка чётче. «Слегка», потому что, например, в той же статье про HP — Гарри Поттера умоминают и Microsoft между делом.
    Ну или про цветы-оптоволокно, черную дыру — водопад, ДНК и курицу/яйцо. Просто знаю, что когда отвечаешь на такие вопросы, уже самому становится не интересно, какой ответ верный и что там кто-то упомянул — пять твоих версий имеют столько же права на жизнь, сколько и правильный ответ.
    С моей точки зрения, пример хорошего вопроса выглядел бы как-то так:
    Business Insider однажды рассказал историю о том, как инженеры принесли Стиву Джобсу первый прототип iPod. Покрутив его в руках, Джобс сказал, что тот слишком велик. Инженеры запротестовали, сказав что его невозможно сделать ещё меньше. Каким образом Стив Джобс наглядно продемонстрировал, что они ошибаются?
    ответ
    Бросил его в аквариум/в воду и указал на выходящие пузырьки воздуха. www.businessinsider.com/steve-jobs-threw-ipod-prototype-into-an-aquarium-to-prove-a-point-2014-11

    Ну или если хочется посложнее — какие-нибудь менее известные подобные истории.
  • «Гори, гори ясно, пока не погасло», или Чем чревато эмоциональное выгорание ваших сотрудников
    +2
    А вы пробовали сами быть работодателем?

    Да, технически был — заказывал кучу смежных работ на фрилансе — тексты, дизайн, обработка информации (хотя вы, конечно же, скажете, что это не считается). И при этом всегда следил за тем, чтобы лишний раз не напрягать человека, не придумывать сроков с потолка, не придираться к мелочам на приемке, которые сам могу исправить.
    Потому что моё время стоит денег и мне просто выгоднее работать с человеком ненапряжно и долговременно, чем «выжать» всё, что смогу, и потом искать нового. Ведь нужно чтоб новый не пропал с предоплатой и был не балбес, потом всё равно заново всё объяснять, а потом ещё раз объяснять, потому что привычные и очевидные мне вещи могут оказаться неочевидны. И не получится сказать «сделай, как в прошлом проекте» и сэкономить кучу времени. И не получится услышать от него «а, помню эту проблему, в прошлом году такая же была» и увидеть как человек с опытом за 5 минут решает проблему, на которую без опыта не решить и за день.
    И потому что знаю, насколько просто и бессмысленно достигается выгорание. И не только в IT, в других профессиях, которые вы приводите в пример в других комментах оно тоже есть. Сварщик может уйти в запой или вещества, токарь — бросить всё и уехать в деревню с концами.
    У нас вот есть один такой — пахнет мочой и пару месяцев в году спит в подъезде, потому что его жена домой пьяного не пускает, боится за детей. Даже полиция его уже брезгует забирать, когда он в очередной раз посреди ночи в дверь свою громко ломится. А ведь был когда-то по слухам хороший работник, в оркестре играл, грамоты получал.
    И ведь не получится таким людям посоветовать «просто не уходить в запой» и «найти другую работу» — точка невозврата уже пройдена. Когда человек видит, что не может больше работать, уже слишком поздно что-то предпринимать.
  • «Гори, гори ясно, пока не погасло», или Чем чревато эмоциональное выгорание ваших сотрудников
    +8
    В теории работодатель у которого «выгорают» сотрудники должен вроде бы потерять сотрудников и разориться.
    В реальной жизни этого не происходит.

    В том-то и дело, что в реальной жизни бизнесы таки разоряются, куда ни посмотри. А если связано с IT — так и вообще 5 лет для компании это долгожительство.
    Просто занимаюсь разработкой сайтов и вижу это в итоге. Из тех разработок, в которых я участвовал, например, 5 лет назад, половина уже даже не открывается.
    А уж если посмотреть на IT-стартапы, то там статистика ещё хуже. А если копнуть ещё глубже, в игровые компании (где выгорание — одна из самых обсуждаемых тем), то вообще мрак.
    Так что, скажем так, странный аргумент.
  • Почему в Google Play мало инновационных приложений или почему иногда программирование — это магия
    +2
    Но зато прикладывая палец к экрану — возможно.

    Не разбирался глубоко с этим, но предположу, что если тачскрин, то должно быть вполне возможно измерить пульс. Давление так, конечно, не измерить, но небольшие подрагивания пальца должно быть можно засечь, в теории.
  • 5 заповедей TypeScript-разработчика
    +1
    Не критикую, просто интересуюсь.
    function getUserType(id: number): string { /*… */ }

    function getUserType(id: number): 'standard' | 'premium' | 'admin' { /*… */ }

    Вы пишете, что вторая функция лучше, так как более информативна. Но что делать, если (когда) добавится новый тип юзеров, 'banned', например? Ходить по всем таким функциям и исправлять?
    А если мы пишем аналогичные функции getUserCountryName и getUserCurrencyCode — тоже в них все 150 возможных ответов перечислять?
  • 27 вещей, которые я хотел бы узнать заранее, прежде чем начинать программировать
    +1
    А ещё существует японский пробел (ideographic space).
    Но чаще всего спотыкаются о различие ` и ' в MySQL.
  • Как правильно задавать вопросы, если ты начинающий айтишник
    +4
    Вообще говоря, один из самых полезных навыков для начинающего IT-шника — умение экспериментально находить причину проблемы или, как минимум, примерную область, в которой эта проблема обосновалась. И это прям must have для задавания правильных вопросов.

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

    Звучит как очевидная вещь, но на форумах (в т.ч. зарубежных) часто вижу, что этого понимания не хватает.

    Тут главное — не доверять своим предположениям, а просто пробовать. Иначе можно потратить кучу времени на поиск проблемы в логике кода, а потом окажется, что просто выбранный индикатор не работал.
  • SEO для Яндекс.Поиск все?
    0
    И если рекламная компания в Директе вот только что закончилась, это совершенно не значит, что «фирма закрылась, а сайт остался».

    Ну, Яндекс же не знает, что именно это означает в вашем случае, у него есть только статистика и корреляция. И, предположу, что в каких-то случаях в его истории оно и в самом деле это означало.
    Если бы ваш сайт был единственный в тематике, его бы должно было выдавать первым всегда. Или если бы он был центральным и давно известным. А если нет, то на ваше место в выдаче займут все остальные сайты, у которых чуть-чуть больше причин выдаваться первее.
  • SEO для Яндекс.Поиск все?
    0
    К тому же у меня вызывает сильные сомнения его ревалентность для конечного пользователя.

    Ну вот, на пальцах.
    Представьте, что вы — поисковик. У вас в базе есть 10 000 сайтов, у которых в заголовке написано «интернет-магазин сотовых телефонов». 90% из них не являются работающими интернет-магазинами — это либо автогенерированная муть, либо «фирма закрылась, а сайт остался», либо наоборот, фирма ещё не открылась и сайт в разработке. В любом случае — пользователю такие сайты показывать нельзя.
    Вот как их определить с наибольшей вероятностью? Есть сайты, у которых есть активная кампания в директе, а есть другие — у которых её нет. Какая из этих групп содержит больше всего левых сайтов? По-моему, корреляция очевидна.
  • «Мы всегда верили в конкуренцию и право выбора пользователя» © Яндекс
    0
    Да тут юридически что угодно можно притянуть, с любой позиции.
    Например, во многих странах вообще нельзя напрямую упоминать конкурентов где-либо в рамках своего продукта или в рекламе — могут засудить за использование чужого товарного знака.
    Сложно будет сформулировать такое правило, по которому одним это делать нельзя, а другим — обязательно.
  • Гопники теперь и на зарубежных рынках или «Почему так сложно найти нормального программиста?»
    +4
    Мне кажется, вы путаете термины «гопник» и «хам». Это очень разные вещи.
  • AMA с Хабром v.10. Последний* выпуск
    +3
    За всех не скажу, но, например, для меня лайк статье — это не показатель моего согласия со статьёй (или, боже упаси, с автором), а того, что я не жалею о времени, которое потратил на чтение. А раз я не пожалел, значит и другой кто-то может не пожалеть. И, таким образом, поставив лайк, я внесу свою лепту в отделение этой статьи от кучи современного информационного мусора.

    Поэтому не вижу тут парадокса в том, что два противоположных мнения могут собирать лайки. Если изложено грамотно и может натолкнуть на интересные размышления — уже стоит того, чтобы почитать. А там уж мнение каждый сам составит.
  • Бытие современного фуллстек-разработчика
    +3
    Небольшая проблемка: у меня трудности с английским, в образовательных заведениях я учил немецкий. Сейчас третий раз пытаюсь освоить уровень Elementary, и боюсь что эта попытка тоже будет неудачной.

    Это во многом объясняет, почему вы считаете, что для обучения нужна команда, конференции и прочее. И почему те обсуждения на форумах, которые вы читаете, часто выливаются во взаимные оскорбления.

    Скажем так. Если узбек в РФ хорошо владеет только узбекским, у него тоже будет определённый потолок в работах и зарплатах, каким бы умным и талантливым он ни был, и в каком бы услужливом узбекско-язычном комьюнити ни жил. А со знанием русского горизонты несоизмеримо расширяются.

    В IT сейчас примерно то же самое, только IT — это англоязычная «страна». Даже если заказчик русскоязычный, то с самой работой вам придётся «говорить» на английском.

    Присмотритесь к английскому, оно того стоит.
  • Бытие современного фуллстек-разработчика
    +5
    Это просто воспитание и восприятие.

    Сам с этим сталкивался. Просто психологически тяжело вот так взять и сказать заказчику «моя работа стоит 1000 рублей в час», когда вокруг тебя люди за эту же тысячу весь день горбатятся на морозе или преподают в школе (а потом ещё весь вечер домашки проверяют). И при этом жалуются, что работу найти тяжело. А ты, мол, будешь этот час просто сидеть дома и даже не в полную силу работать.

    Мозг стремится придумать хоть какое-нибудь оправдание низким требованиям к зарплате. Например, «ну я же фулстек, а нормальные зарплаты получают только супер-узкие специалисты» (брехня). Или «ну вот был бы я москвич, мог бы в офис к ним приезжать, был бы этим более полезен» (брехня, обустройство рабочего места дорого стоит). Или «ну вот они там, наверно, по 8 часов в день работают, а я разве что пару часов подряд могу код писать, и то с багами» (брехня, у всех так).

    В итоге, даже когда встречаешь вакансии и проекты с нормальной оплатой, просто пролистываешь дальше, пока не найдёшь тёплый и привычный «извините, у нас очень низкие бюджеты, сделайте нам сайт/магазин/приложение». А потом таких завершённых проектов становится много, и с них начинают периодически писать, «просить добавки». Естественно, по тому же тарифу. И так можно надолго застрять.

    И это ещё помножим на парадокс фриланса, когда самые низкобюджетные заказчики — всегда самые требовательные, придирчивые и хотят выжать максимум дополнительных работ (потому что денег на второй заказ нет). В итоге ещё и самооценка не растёт. Мол, еле осилил за месяц проект на 20к сдать, куда уж мне более дорогие.

    Исправлял, в своём случае, просто постепенным повышением требований к оплате. Просто говорил себе — любой следующий проект должен быть выгоднее предыдущего. Поднимай планку. Ведь если работы не будет, всегда можно откатиться. Оказалось, что и за достойную оплату работы — море, а требования там такие же или даже ниже.
  • 7 привычек высокоэффективных программистов
    +9
    Мне вот следующий абзац ещё больше понравился.

    Обращайте внимание тех, с кем вы работаете, на то, как важно писать код, который легко поддерживать, на то, как важны хорошие комментарии. Это ещё сильнее упрочит ваш статус в команде.

    Оно вроде как бы и не враньё — статус оно таки упрочит. Вот только вам этот статус не понравится, скорее всего.
    Самое мягкое, что вы услышите от программиста в ответ на претензии к недостатку хороших комментариев в его коде — «ну так возьми и напиши».

    То же самое про поддержку — чаще всего есть причины, по которым некоторый код тяжело поддерживать. Например, потому что система мгновенных транзакций делалась из системы заявок, которая делалась на основе чата, который делался на основе форума (которым проект был N лет назад). И автор этих переделок вас, конечно, выслушает, но вряд ли согласится с предположением о том, что все проблемы от недостатка планирования наперёд.
  • В пятницу вечером Роскомнадзор послал «н…й» пользователя в Twitter, а потом логично объяснил свои действия
    +3
    А это и не имеет значения.
    Неделю назад средний пользователь интернета лишь отдалённо догадывался, кто следит за матом в СМИ (Минкультуры? Минсвязи? РКН?) и лишь отдалённо представлял себе, что можно, а что нет. Теперь, есть чёткая картина и пример того, что точно разрешено. Пример, который сохранят и запомнят, потому что в него можно будет ткнуть носом, если к какому-то СМИ будут претензии за замаскированный мат.
    И всё это — по цене одного неформатного твита. Когда работу сделали не «как принято», не «как ожидают», а максимально эффективно.
  • В пятницу вечером Роскомнадзор послал «н…й» пользователя в Twitter, а потом логично объяснил свои действия
    +2
    Обсуждают мат разной степени маскировки и роскомнадзор (точнее, ненависть к нему). Куда уж релевантнее.
    А вот если бы они выложили ссылку на три страницы какого-нибудь канцелярита «О публикации материалов, содержащих элементы ненормативной лексики в средствах массовой информации на территории РФ», в которых были бы зашифрованы правила вроде «маскировка нецензурной брани допускается путём добавления буквозаменяющих типографических символов, при сохранении начала и конца слова, но не более N процентов от изначального состава слова, за исключением слов менее 4 букв», то никакого обсуждения бы не возникло. Правила публикации были всегда, но так активно обсуждать их начали только сейчас.
  • В пятницу вечером Роскомнадзор послал «н…й» пользователя в Twitter, а потом логично объяснил свои действия
    –11
    Какую бы разрушительную деятельность в целом ни вёл РКН, стоит признать, что они как минимум этим твитом показали нехилую эффективность работы.
    У них была задача — донести правила маскировки мата и напомнить общественности о себе.
    В итоге, «потратили» 268 символов текста — а охват получили больше, чем у рекламной кампании за 268к рублей. В разы. И релевантное обсуждение, в т.ч. даже тут, на хабре.
    Вот такую бы энергию, да в правильное русло…
  • Как я случайно обнаружил возможное бесконечное пополнение счёта у своего американского сотового оператора
    +2
    чтобы сесть в тюрьму?

    Глупость какая. За $30 в тюрьму не посадят, тем более, если сообщил и не выводил со счёта в виде реальных денег. А то б они так могли сами любому своему абоненту начислить $30 и пойти в полицию, мол, садите его, он их украл.
  • Не нажимай и не утверждай
    +3
    Во-первых, ответственный и уверенный в себе человек должен чётко обозначать своё мне мнение, утверждать то, в чём вполне уверен. Иначе можно превратиться в «скользкого типа», который не хочет брать на себя ответственность, и всегда пытающегося вывернуться.

    Тут без примера сложно понять, что именно имеет в виду автор, но я приведу свои:
    • Если спрашивают «там phpMyAdmin на сервере есть?», то нужно ответить «по стандартному адресу — ошибка 404», либо «по стандартному адресу вижу форму логина, дальше без пароля не смогу проверить». Если ответить просто «нет» или «да» — вы можете серьёзно ошибиться и у этого могут быть последствия.
    • Если спрашивают совета, мол «у меня не открывается файл, что делать?», нужно ответить в ключе «не знаю, я бы сначала попробовал закрыть другие программы, которые могут его использовать». Если сказать просто «закрой все другие программы», то вся ответственность за результат будет на тебе.

    Т.е. утверждать можно только факты и желательно указывать, откуда они взяты. Не то, что бумага белая, а то, что я открыл верхнюю упаковку, достал пару листов и они выглядели белыми.
    В полицейской описи изъятого имущества именно поэтому про кольцо пишут не «золотое», а «из металла желтого цвета» — если потом вдруг окажется, что оно не золотое, будет очень серьёзная проблема.

    И в этом смысле отвечать «постараюсь», это примерно то же, что ответить «сделаю». Т.е. вы обещаете, что у заказчика/начальника возникнет ощущение, что вы постарались. А если работа не сделана, то и ощущения такого не возникнет.

    Я в таких ситуациях отвечаю «на первый взгляд выглядит выполнимо, но я посмотрю на неделе и напишу точнее (о сроках)». А если и в самом деле не знаю (и пока не сделаю, не буду знать, возможно ли это), так и пишу — не знаю. Незачем строить неоправданные иллюзии. Если б я в самом деле знал вообще всё, у заказчика бы не хватило денег, чтобы меня нанять.
  • Почему уходят разработчики: 8 причин
    +5
    Ну вот часть этого бюджета можно сотруднику и отдать, в виде премии — однократной, если уж всем его идея так понравится.
    И на неё он может даже купить акций компании (если есть) или вложить их в компанию и договориться о соответствующей этому вкладу доле.
    А иначе слишком много будет желающих, условно, поставить деньги компании в казино. Выиграем — долю мне, не выиграем — ну, спишите на затраты R&D, чего уж тут.
  • Почему уходят разработчики: 8 причин
    +2
    А долю в бизнесе не предлагаете? Иначе получается благотворительность.

    А если идея окажется убыточной — долю убытков из своего кармана сотрудник будет покрывать?
  • Семь «абсолютных истин» джуниора, от которых пришлось отучиваться
    0
    — 1C (или если код дальше передаётся на поддержку человеку, который только на нём и писал).
    — Обучение детей (школьный возраст).
    — Встречал код китайской команды, у которых даже в названии одной переменной была шутка на китайском про псов-неудачников. Геймдев, продукт с миллионными заработками (AutoChess).

    Но в целом, да, встречается не часто.
  • Семь «абсолютных истин» джуниора, от которых пришлось отучиваться
    +7
    Потому, что качество кода — это то, насколько хорошо код выполняет свою задачу. А задачи у кода могут быть разные (и их может быть больше одной, с разными приоритетами).

    • Есть код, который должен выпоняться как можно быстрее.
    • Есть код, который должен занимать минимум памяти.
    • Есть код, который должен легко читаться.
    • Есть код, который должен легко читаться новичком/учеником.
    • Есть код, который должен легко читаться человеком без знания английского.
    • Есть код, который должен легко отлаживаться.
    • Есть код, который должен легко модифицироваться.
    • Есть код, который должен просто ожидаемо отработать один раз, и тогда все остальные пункты не имеют значения, а единственным критерием качества является отсутствие багов.
  • Мошенники и ЭЦП — всё очень плохо
    +5
    Ну, тут стоит начать с того, что у меня всегда были проблемы с гопниками. Молодо выглядел (в 16 выглядел едва ли на 13), худощавого телосложения (40 кг), постоянно выходил на улицу один без крайней необходимости (родители топили за то, чтобы «гулял больше», нормального интернета не было), не умел молча уйти в ответ на «слыш чо, иди суда на». В итоге, не было такой недели, чтобы меня на улице кто-нибудь не остановил. Обычно оканчивалось просто неприятным разговором и испорченным остатком дня.
    Ну и в очередной раз шёл один и попался на пути гоп-патрулю. Вытащили торчавший из кармана винчестер (время — середина нулевых, флешек нормальных не было, ходили с винчестерами по друзьям переписывать игры и фильмы). Отдавать, естественно, не хотели, но и повода отжать придумать не могли. Поэтому пытались его просто передавать его между собой, пока я говорю с кем-то одним.
    По ходу разговора вокруг собирались всё новые и новые гопники — они друг друга знали. Когда толпа достигла около 10, один из них, поняв что происходит, отвел в сторону и сказал, «если что, я не с ними».
    Я тоже понимал, что происходит, но сделать ничего не мог. В итоге очередной взявший «посмотреть» мой винчестер «отошёл покурить» с другом за гаражи и пропал, а остальные включили обычное «мы их не знаем, да ты тут подожди, сейчас придут» и разошлись.
    В подавленном настроении вернулся домой. Родителей дома не было, в милицию обращаться смысла не видел — думал, ну скажут, пиши заявление, прикрепи серийный номер, будем искать. Ну конечно, будут они искать, думал я.
    В итоге, некоторое время просто сидел и абсолютно ничего не делал. Потом, позвонил родителям, обрисовал ситуацию, сказали звонить в милицию. Ну позвонил, ничего особо не ожидая, назвал адрес и тут…
    Подъезжает машина — минут 10 максимум прошло. Садись — поехали. И ездили с ними по всему городу, к другим патрулям, которые в радиусе от того места замечали и останавливали группы гопников для опознания. И вот тут я в первый раз почувствовал себя очень стыдно — потому что даже не запомнил точное количество, приметы и лица. Вообще, всё как в тумане. Показывают, говорят — «Он там был?», а я и ответить не могу, вроде похож, а вроде и нет.
    Второй раз почувствовал себя стыдно, когда проезжая мимо того места, мне указали в 15 метрах оттуда кнопку вызова милиции у кафе. Мол, зачем домой шёл звонить, тут же кнопка есть, быстрей бы приехали, не потеряли этих минут. А я и не знал, как сказать, что я ещё дома тупил сидел всё это время.
    В конце концов, после нескольких часов(!) такого план-перехвата с работой нескольких десятков(!) человек, привезли в отделение, предложили чая, взяли показания и начали обрабатывать, а мне сказали зайти завтра.
    На следующий день, пришёл утром, там уже были подготовленные фотороботы и несколько подходящих к ним записей из БД (по моим размытым описаниям и с невозможностью даже вспомнить цвет одежды). Дальше вызвали одного на опознание, но он не был одним из тех, кто вообще держал мой винт в руках, поэтому дальше не пошло.
    В итоге, после ещё нескольких разговоров, я сам понял, что не смогу им помочь найти виновных, поэтому прекратил.
    Было стыдно, что люди потратили столько сил, а я им в итоге только статистику раскрываемости испортил своей неспособностью уверенно вспоминать людей и своим старым винчестером с игрушками, которому грош-цена даже по тем временам.
    Но выводы сделал.
  • Мошенники и ЭЦП — всё очень плохо
    +3
    Случаи разные бывают. Тоже в своё время был убеждён, что бесполезно обращаться, а потом, когда припёрло, стало стыдно, что так долго откладывал — когда в первый же день провели мероприятий на цену (по моим прикидкам), в несколько раз превышавшую мой предполагаемый материальный ущерб. И вдвойне стыдно, что со своей стороны не смог в полной мере помочь — не запомнил и не записал важные детали.
    Вот только в рунете о таком не принято говорить.