Как стать автором
Обновить
-1
Карма
0
Рейтинг
Агафонов Олег @JayDi

Программист

20 млн рублей в год на парсинге сайтов

Если это инкрементный парсинг только новых данных, то нормальные цифры. Там на трафик будет больше уходить на порядки (например, на 1 гб данных потребуется скачать 10 тб текстового трафика).

GitHub упал — и сайт, и сервер (upd: поднялось 2ч50м спустя)

Сайты на гитхаб.ио открываются. Пример: https://jaydi85.github.io/xmage-web-news/news.html

МФТИ внесён в санкционный список США

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

Как я разблокировал Upwork профиль и заработал более $250k за год

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

Китайские учёные заверили, что получили квантовое превосходство

Нет, не шутка. Идею о переименовании много кто поддержал из научного сообщества:

https://en.wikipedia.org/wiki/Quantum_supremacy#Criticism_of_the_name

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

По статье сложилось впечатление, что люди, отвечающие за "защиту от парсеров", сами не совсем в теме, как они работают.

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

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

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

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

По мне, так это вовсе не победа, а признание поражения.

Дилемма блокировки: когда мы знали, что у нас хостится мошенник, но не имели решения суда

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

Вкладки браузера разрушают ваш мозг

Тратит. Как процессора, так и SSD. Собственно, поэтому и обратил внимание на эту настройку, когда заметил странную работу диска и начал разбираться, кто его так нагружает -- оказалось, что фаерфокс. После увеличения интервала -- всё прекратилось.

Вкладки браузера разрушают ваш мозг

Возможно, это не плагин, а сам фаерфокс. Он по умолчанию список всех открытых вкладок сохраняет в бекап на жесткий диск. И делает это каждые несколько секунд. browser.sessionstore.interval в about:config (в миллисекундах).

Невыносимая легкость контрибьюта в Open Source

Одно дело, когда исправление неправильное, и можно сразу об этом написать/отклонить, а другое дело -- когда чего-то не хватает или реальная проблема где-то в другом месте находится. Я сам не знаю точного ответа и в этом случае требуется самому провести исследования и собрать материал по тем местам, что требуют проверки/исправления. Т.е. сделать фактически половину работы.

Невыносимая легкость контрибьюта в Open Source

Плюс код был некорректно оформлен (не соблюдено форматирование, используемое в проекте).

Невыносимая легкость контрибьюта в Open Source

Скажу как мейнтейнер одного крупного (1.5 млн строк) java-проекта:

  • Новичку зачастую не знакома история проекта и история различных "багов". В результате появляются исправления вида "я тут посмотрел код и нашел решение". Формально оно исправляет баг, но де-факто лишь прикрывает костылем одну из дырок.

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

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

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

Невыносимая легкость контрибьюта в Open Source

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

Длинная история про то, как мы веб-разработчика на фрилансерских сайтах искали, но так и не нашли

Подробное тз как раз и отпугивает. Когда заказчик допытывается до конкретных библиотек и кода, до дизайна/макетов (в моем случае десктопной разработки), то сразу возникает вопрос — почему он сам этого не сделал. Значит есть какие-то скрытые проблемы или трудности в коммуникациях (например, тз осталось с прошлого фрилансера, который ушел с проекта).

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

Графика для JVM

У JavaFX проблемы с дистрибуцией и поддержкой. До относительно недавнего времени была только реализация JavaFX от Oracle (которая включалась в обычную поставку джавы), поэтому многие дистрибутивы линукса с OpenJDK вместо Oracle тупо шли лесом. Собственно, и сейчас ситуация похожа, т.к. OpenFX необходимо устанавливать отдельно в дополнение к OpenJDK.

Это не работает

библиотеки с коллбэками, которые исполняются в непредсказуемых среда

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

Это не работает

Являясь мейнтейнером крупного опенсорс проекта (карточная онлайн игра, MTG) — я положительно отношусь к обратной связи от пользователей. Количество переходит в качество.

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

Как я нашел в публичном доступе исходники нескольких сервисов ФНС

>> данные находятся под угрозой утечки.

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

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

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

15 заповедей IT-фриланса и мелкой разработки

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

Цитата 1: сотня отчетов в системе… Разработка отчета обычно занимает не более нескольких минут.

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

Цитата 2: Инструкция в простом случае займет у вас 3-4 часа работы

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

P.S. В статье нет самого главного — не гонитесь за заказами и не снижайте бюджеты ради этого (и уж тем более не пытайтесь уложиться в те суммы, что указаны в заявке на каком-нибудь фрилансе — типичная ошибка новичков). Вы пришли зарабатывать на жизнь, а не выживать. Давайте реальную оценку сроков и стоимости, исходя из своих ставок. Пускай заказчик и выберет «самого дешевого» — но он все-равно вернется, уже за нормальным специалистом и с горьким опытом «сэкономить».

Проверка кода XMage и почему недоступны специальные редкие карточки для коллекции Dragon's Maze

Все исправления для статьи можно посмотреть в этом PR. Так же дополнено:

Предупреждение N7
Код корректный и лишний else не имеет смысла. Там просто немного сломанная логика в самом коде. Оба вызова для selectUser используют поиск пользователя по имени. В первый раз происходит попытка создания новой сессии. Если она успешна (такого пользователя нет онлайн) — возвращается сессия. Если же она провалилась (такой пользователь уже онлайн) — возвращается пустое значение и запускается дополнительная проверка (можно ли этого пользователя переподключить). Соответственно, во втором вызове поиск по имени будет всегда возвращать результат, и else не нужен.

Информация

В рейтинге
Не участвует
Откуда
Сызрань, Самарская обл., Россия
Зарегистрирован
Активность