Профиль пользователя заблокирован сроком с 20 сентября 2021 г. и навсегда по причине: систематические нарушения правил сервиса
  • Как парсить зашифрованный JSON?

    bask
    @bask
    Это НЕ зашифрованный JSON.
    Это обычная строка, но в UTF-кодировке
    Изучай и пробуй:
    tutorials.jenkov.com/java-internationalization/uni...
    techidiocy.com/replace-unicode-characters-from-jav...
    Ответ написан
    1 комментарий
  • Актуальна ли ниша PHP на Upwork?

    opium
    @opium
    Просто люблю качественно работать
    Что вам мешает просто зайти и посмотреть, там же все открыто
    Ответ написан
    Комментировать
  • Актуальна ли ниша PHP на Upwork?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Хотелось бы узнать, насколько ниша PHP актуальна на данный момент на Upwork

    Актуальна.
    Много ли заказов с Европы/США

    Много.
    Какой средний процент заданий / отклики

    Зависит от уровня заданий, сложнее задание == меньше откликов. У одного исполнителя он будет один, у другого - другой. Если Вы хотите в среднем по больнице, то соберите список заказов и откликов, затем делите их друг на друга и получите то, что искали.
    Как во Frontend куча индусов рвётся за заказами или нет

    Много, но как и в любой другой ЯП.

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

    Хорошо, когда вопросы по существу!
    Ответ написан
    Комментировать
  • Хочу сделать API, с чего начать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Следует начать с проектирования API. Возмите https://swagger.io/ и набросайте все, что нужно.
    Swagger вам позволяет объединить роутинг, документацию и примеры вызовов в единое целое.
    Кроме этого он позволяет сгенерировать заглушки для разных языков программирования и фреймворков.
    В принципе вы можете найти значительное количество интеграций для разных фреймоворков.

    В целом API лучше делать с помощью фреймворков, поскольку в них уже реализованы тривиальные моменты по безопасности, аутентификации и авторизации. Вы можете использовать микрофреймворки, например тот же Slim. Вы даже можете сгенерировать роутинг для него используя генератор от Swagger.

    В REST есть 6 принципов, прекрасно изложенных в Wiki. В REST нет ничего сложного и особенного. Это просто надстройка над стандартным протоколом HTTP. Именно поэтому нет никаких особенных уроков. Изучите работу HTTP и вы поймете как работает веб в целом и REST в частности.

    По поводу отдельного сервера для API. Есть множество разных подходов. В последнее время все более актуальными становятся Serverless-приложения. Serverless архитектура идеально вписывается в REST. Но думаю для вас это пока рановато и сложновато. Слишком много для начала.

    Логичнее всего держать проект в моно-репозитарии, если он не будет большим. Если вы точно не знаете насколько большим он будет, то можно разбить проект на компоненты и использовать Composer для управления зависимостями (советую полность прочитать эту страницу от корки до корки).

    По поводу best practices есть очень хороший ресурс https://12factor.net/ru/
    Он в целом применяется для всех приложений.

    Запомните: первый блин всегда комом. Прочитайте все ресурсы, которые я привел для вас. В них много ссылок на другие, походите по ним, присмотритесь. Напишите первую версию API так, как вам кажется удобно. Постарайтесь применить практики из статей.
    Вам нужен опыт и вы его не наберетесь, пока не сделаете что-то сами. Вы можете потратить год на чтение, но останетесь на том же месте, с которого начали. А другой человек напишет на коленке API за неделю, а потом перепишет его 20 раз за год и он вам расскажет в 10 раз больше, чем то, что вы изучили за год.
    Дерзайте!
    Ответ написан
    16 комментариев
  • Калькулятор на mvc с историей операций?

    Для лога можно использовать паттерн Memento: https://en.wikipedia.org/wiki/Memento_pattern
    Ответ написан
    Комментировать
  • Как происходит совместная работа бэкенд- и фронтенд-разработчиков над большими проектами?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В разных компаниях это делают по-разному. Процитирую свой старый ответ на эту же тему, но про Django.

    Есть три способа:
    1. Верстальщик делает для каждого типа страниц рыбу, бэкендер напяливает её на шаблонизатор. При дальнейших правках верстальщик правит рыбу, бэкендер правит шаблон. Плюс в простоте включения верстальщика в процесс, минус в дополнительной нагрузке на бэкендера. Хорошо подходит для привлечения верстальщиков со стороны.
    2. Поднимаете отдельный сервер для разработки. Настраиваете на нём FTP. Запускаете на нём нужные проекты, выдаёте права только на шаблоны. Запускаете верстальщика по FTP с chroot'ом в каталоге с проектами. Минус - нужен дополнительный сервер и понимание языка шаблонизатора со стороны верстальщика. Плюс - снижение нагрузки на бэкендера и возможность тестировать правки на живом проекте.
    3. На комп верстальщика ставится python и git. Верстальщик клонирует проект, запускает из корня проекта специально подготовленный батник, который активирует виртуальное окружение, ставит зависимости и запускает dev-сервер. Требует от верстальщика умения работать с git (а других нанимать и не надо), а от бэкендера делать нормальные приложения, которые не требуют долгих танцев с бубном для запуска.
    Ответ написан
    Комментировать
  • Как реализовать такой динамический график?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Ответ написан
    Комментировать
  • Как защититься от парсельщиков?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Существует несколько способов борьбы.

    Вектор усложнения доступа к информации

    Информация отдается с сервера с постоянной меняющейся структурой. Например блоки меняются местами и CSS генерируется налету, причем классы собираются рандомной цепочкой и имеют абсолютно рандомные названия. Это может повлиять на SEO.
    Если этого мало, то контент рендерится с помощью JS аналогичными алгоритмами. Сам JS тоже генерируется и обфусцируется. Доставка контента происходит через сложные технологии, например через WebRTC DataChannel или WebSockets. Про SEO не может быть и речи, плохо работает через мобильник.
    С подобным подходом прийдется писать парсер под ваш сайт. Скорее всего он будет делать скриншот и скармливать его распознавалке.

    Вектор контроля доступа к информации

    Доступ к информации предоставляется определенному кругу лиц. Например клиентам. Объемы доступа регламентированы и превышение карается расторжением договора или штрафом.

    Вектор ограничения доступа к информации с помощью каптчи

    Для идентификации клиентов используются evercookie+fingerprinting. Используется рейтинг адресов и подсетей.
    Для недоверенных подсетей (ip принадлежат в основном разного рода хостинг-провайдерам) captcha отображается сразу. Аналогично при появлении трафика из необычного места, например внезапный трафик из Индии или Китая.

    Вектор "медленный сервер"

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

    Вектор для реального отваживания воришек

    Кроме выше перечисленных способов, есть очень простые, но действенные способы. При обнаружении парсинга, парсильщику отдается неверная/искаженная определенным образом информация. Например, если есть подозрение на конкурента ворующего цены, можно отдать цены чуть выше настоящих и немного подменить название товара, например заменить определенным образом букву "а" на "a". Затем такая штука ищется поисковиком и находится сайт конкурента.
    Далее вопрос решается так, как это удобно бизнесу. Обычно жалуются на нарушение копирайта. Ну или у конкурента внезапно сгорает склад. Тут уж кто на что горазд.

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

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

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

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

    @HellWalk
    Ваши бы рассуждения, да работодателям привить...

    Из свеженького:
    https://hh.ru/vacancy/19557940

    В самом начале:
    "Мы ищем активных, инициативных, ответственных сотрудников, а не «планктон», который в 18:00 выключает компьютер и уходит на «заслуженный отдых»"

    Т.е. работодатель совершенно спокойно переходит на оскорбления по отношению к тем, кто работает по трудовому кодексу РФ (пришел вовремя, ушел вовремя). Это просто феерическая наглость и хамство.
    Ответ написан
    2 комментария
  • Как, где и кем начать карьеру в IT-индустрии?

    @Reversaidx
    Сейчас самое доходное быть киберспорсменом, я бы выбрал это направление)
    Ответ написан
    5 комментариев
  • Как можно безопасно общаться с другом?

    Jump
    @Jump
    Системный администратор со стажем.
    Очень просто - шифровать.
    Тут важный момент - шифровать самому, а не доверять это дело мессенджерам.
    Например шифруете банальным PGP и уже зашифрованные данные отправляйте абоненту с помощью e-mail, вайбера, ватсапа, телеграма, и.т.д.

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

    Уже ясно что крипта будет интегрироваться в реальную экономику и сейчас ее надо майнить и складывать

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

    @prohodil_mimo
    Дублирую из комментария, не туда запостил.

    Все, кто здесь хвалит рукапчу, либо рекламные боты, либо очень большие счастливчики, либо это было давно и неправда!

    Кроме как мошенническим сервис rucaptcha.com назвать не могу никак! За первые же ДВА дня работы с ними СТОЛЬКО косяков и обманов, что мне стало жалко даже те 10 рублей, что я закинул к ним для теста!

    Подробности, мой отзыв о rucaptcha.com. Скрины прилагаются!

    1. Обман начинается уже с первой страницы сайта. "От 18 руб. за 1000 капч". Забудьте! Цена на текущий момент - 44 рубля! Цена якобы плавающая, но за несколько дней наблюдения она ни разу не упала ниже 39 рублей. Т.е. ни 18, ни 20, ни даже 30 рублей за 1000 капч вы не получите НИКОГДА! А когда вы прочтёте до конца, поймёте, что реальная цена будет под сотню!

    2. Уровень общения тех. поддержки примерно на уровне буфетчиц в советской столовой. Хорошо, хоть матом не посылают, хотя я всего пару дней там, может всё ещё впереди ;)

    3. Распознавание капч - 90% от силы. Иногда на десяток - 3 неправильные! Но десять неправильных на сотню - это вообще, считай, повезло!

    4. Но это не самое смешное. А самое - это как с этим работать дальше. Есть сервис отправки жалобы. НО, он платный. Независимо от того, что решат по вашей жалобе, вы заплатите за это!

    5. И это не всё - дело в том, что жалоба, по сути, бессмысленна, модерация ПОЧТИ ВСЕГДА признаёт, что вы неправы! Смотрим нотариально заверенные скрины - 7 из 8 модераций неправильные. При этом в ФАКе конечно же написано: "ОБЖАЛОВАНИЕ МОДЕРАЦИИ НЕВОЗМОЖНО т.к. процент таких случаев у нас минимален (но есть)". Как вам? Процент ошибок минимален, всего-то от 85%! Ответ поддержки (вопрос задавал, когда ещё было 4 жалобы): "4 жалобы это не показатель. Если бы вы прислали их сотню, то увидели бы реальный процент ошибок. А 3 из 4-х просто случай." Вот бы в рулетку так везло - 3 из 4 и 7 из 8!

    Скрины:
    imgdepo.com/id/i9963340
    imgdepo.com/id/i9963526

    6. Но и это не всё! Вам могут заблокировать возможность жаловаться! Да-да! Шлёте много жалоб - идите... ну вы поняли. Лезут тут со своими жалобами! Время на подачу жалобы тоже ограничено - несколько минут, потом всё. Кстати, на скрине вы видите, что одна капча уже удалена - да-да, чтобы вы не успели много жаловаться, ваши картинки хранятся тоже ооочень не долго.

    7. Статистика ровно никакая - с вас что-то списывают, но что - вы не сможете понять НИКОГДА, особенно, если будете слать реально пачками. В мониторе - только пара десятков последних. Видимо, их система пририсовывания не имеет тонкой настройки, на больших объёмах, наверное, это должно было быть незаметно))

    8. В ФАКе вообще много интересного! Например, как вам такое:
    "Почему в спорных случаях, когда капча распознано не верно, мы не возвращаем заказчику средства: Распознание изображений это достаточно тяжёлый труд. Поэтому, если работник старался распознать верно, но у него это не получилось по причине того что можно двояко интерпретировать один из символов. Мы исходим из принципа что любая работа должна быть оплачена и если работник приложил усилия для верного решения, но ему не повезло, то он всёравно получает заработанное."
    Нравится? Искали сервис, где заботятся о клиенте и стремятся к максимальному результату? Поищите ещё! Неважно, что работник может левой ногой печатать вашу капчу, он же старался! Он же хотел... наверное... Поэтому вы должны ему заплатить! Я вот тоже хотел создать корпорацию размером с майкрософт - где я могу получить мои миллиарды за то, что я хотел и тяжело старался? Фраза "но у него это не получилось по причине того что можно двояко интерпретировать один из символов" - вообще убила! Распознание капчи - это ПРОЦЕСС ИНТЕРПРИТАЦИИ НЕОДНОЗНАЧНЫХ СИМВОЛОВ! Сюрпрайз, мазафака! Поэтому за это ПЛАТЯТ! Если бы они были однозначные - я мог бы их обычной распознавалкой парсить! Поэтому я щас решил переключиться на написание бота, который будет сидеть и под видом работника слать в качестве распознанных любой набор символов, думаю, с таким наплевательским подходом администрации на клиентов "раБОТнику" можно заработать!

    9. Описание API - это нечто. Курица левой ногой - примерно так. Вместо описания отправляемых данных - какие-то ХТМЛ-формочки. Наверное, создатели АПИ думают, что это работает так - я на каком-то сайте не могу распознать капчу сам, сохраняю картинку себе на компьютер, потом захожу на свой сайт, загружаю туда картинку через их формочку и отправляю, чтобы кто-то другой мне её распознал:) Автоматические отправки из приложений? Не, не слышали.

    В общем, хамоватый, некачественный, наплевательский сервис, где из вас обманом выжимают каждую лишнюю копейку. На небольших объёмах и хрен бы с ними, но отправьте им несколько десятков-сотен тысяч капч и за сомнительное качество вы заплатите кругленькую сумму сверху ожидаемой. С учётом обмана в цене, сомнительной и непрозрачной финансовой статистики, некачественного распознания, неправильной модерации, скрытых поборов и комиссии при пополнении цена 1000 правильно и вовремя распознанных капчей может долетать до 100 рублей и выше! Такая вот рукапча!
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    Jump
    @Jump
    Системный администратор со стажем.
    Чего опасаться и какие меры принимать?
    Поздно чего-то опасаться!
    С выходом пакета поправок Яровой ничего не измениться для простого пользователя.


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

    Правильно ли я понимаю, что перехвата трафика Dropbox, Google Docs и других зарубежных сервисов, работающих по https, можно не опасаться?
    Как это не опасаться? Вся ваша информация которую вы сливаете в дропбокс, гугл - храниться на серверах соответствующих компаний в незашифрованном виде, и они имеют к ней полный доступ.

    Есть золотое правило - все ваши секреты, и информацию утечки которой опасаетесь не храните на компьютере подключенном к интернету, и уж тем более не сливайте в облачные сервисы.
    Ответ написан
    18 комментариев
  • Что же мне выбрать?

    @deliro
    0) В ВУЗах не учат программировать. Ни в Москве, ни в Смоленске. Тебе дадут общие знания по алгоритмам, дискретке, матану и, возможно, ты научишься думать.
    1) Корочка играет там, где она нужна. В данный момент единственное её применение - миграция в другую страну и получение рабочей визы (для этого нужен диплом). Устраиваться в пределах РФ - разницы нет. Исключение - госструктуры.
    2) Реально
    3) В Москве можно обзавестись связями и работой трени/джуна, т.к. удалённо вряд ли тебя кто-то захочет брать без опыта. Я б поехал, не ради ВУЗа.

    UPD.
    Вася Пупкин написал, что общага развращает. Это действительно так для развратных и инфантильных людей, которые отбились от ежовых руковиц родителей. Для целенаправленного и отвественного человека это будет лишь сменой места жительства и круга общения. Ну и некоторые неудобства в виде соседей-свиней или полуразбитых душа/туалета.
    Ответ написан
    9 комментариев
  • Как динамически с сервера обновить класс в Android?

    @Copperfield
    Android dude
    Ответ написан
    Комментировать
  • Как Яндекс.Директ узнал о запросе в Гугл?

    Henryh
    @Henryh
    Веб-программист
    Думаю всё было так.
    Яндекс знает ваш профиль в ВК (узнал ранее по другой связке), вы запостили картинку, Яндекс проверил по базе и увидел что эту картинку чаще всего ссылаются по ссылке "щебень". Сложил 2+2 и понял что вы проявили интерес к щебню.

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

    А ещё у них с Адсензом какие-то договорённости есть, рекламой своих продуктов 100% обмениваются, может и ещё о чём договорились.
    Ответ написан
    Комментировать
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев
  • Какие книги по разработке под Android сейчас актуальны?

    Rou1997
    @Rou1997
    чтобы там не рассказывалось про ListView и прочие deprecated вещи

    Что, простите?
    ListView уже не комильфо? Как так? Почему? На Android очень мало контролов, если еще и умышленно ограничивать себя, это нужно совсем уж крышей поехать.
    Ответ написан
    7 комментариев