← All posts tagged погроммирование

смотрю я иногда жуйк, читаю разные треды, смотрю на свой код даже иногда, и врубаюсь в который раз, что корни всех зол исходят от отсутствия документации.
ну т.е. понятно, что JavaDoc/haddock/... (нужное подчеркнуть) — это must have.
но в то же время все нюансы вылезают из деталей.
а эти детали (допустим) документированы на разных уровнях системы.
т.е. есть система, есть её архитектура: пакеты там всякие, модули (или наоборот..).
т.е. есть диаграммы связности.
вот тут база — тут её модель.
смотришь чуть поодаль: тут сервер приложений. тут диаграмма классов/пакетов/модулей.
смотришь: тут клиент, баааа, да это не SPA. и т.д.
смотришь на всё это и видишь, опа трёхзвеночка родименькая.
иногда видишь, что тут базы нет, а тут кафка, а там трешак.
и т.д. и как бы не хватает наглядности и связности во всём этом многообразии.
а если сместиться от архитектуры и перейти к фичам, которые шарашат насквозь, так и вообще — мрак и лес.
и хочется думать о хорошем, о снижении сложности ПО, о самодокументируемых системах. хочется не просто думать, но видеть это хорошее. а значит, и делать. но наверняка, об этом уже многие подумали, это уже многие сделали, и сложности как таковой нет, она иллюзорна, сложность эта..

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

1. получается 3 часа и 2 гига контента на субъект федерации, из которых мне надо 2 мб. всего же их 85+. самый пик — Москва — 162 минуты. раз в неделю — не вариант пускать. ищу альтернативы.

2. удалось выяснить опытным путем, что телефон без рута не может принимать интернет, раздаваемый с вайфая на Bluetooth порт по, соответственно, Bluetooth.

3. удалось прослушать траффик с телефона на компе, в том числе и HTTPS. побочный эффект: да, телеметрии слив есть, по HTTP.

4. удалось вытащить токены авторизации и заодно все заголовки запросов и ответов, зареверсил API.

5. запиливаю клиента под это дело. может, починю сайт раньше, подкрутив клиента под API. а пока продолжу опрос в оффлайне через селениум.

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

анализ и написание сценариев для web scraping в связке с REPL — одно удовольствие!
— продумываю уменьшение нагрузки на целевой ресурс, чтобы не засылать туда 400K запросов.
— нужен ещё один сценарий для сбора метаданных.
— нужно понять, что не так со скроллингом, он, как бы это сказать, проскальзывает. возможно, и существующие сценарии для фантома с заглушками есть шанс реанимировать. проблема с ним воспроизвелась и локально. имея на руках REPL+браузер + любимый хаскелль, в которых можно производить отладку сценариев наглядно, без JS, видеть живую страницу в любой момент времени.

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

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

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

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

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

интересно, а сеньор-программист должен уметь разобраться, что такое "port forwarding"? вот такой чувак пришёл на мою замену на следующую фазу проекта. ему надо всего-то пробросить порты через туннель, чтобы можно было с помощью SSMS или sqlcmd достучаться к базе данных в другой сети. не знаешь — гуглится это на раз. ну ёлки, можно пару часов потратить повтыкать, поиграться, поразбираться...

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

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

HtmlUnit тоже не подходит, при попытке подгрузить сайтец, падает эксепшн, и ему рвёт голову. Если и фантом уйдёт вникуда, значит, придётся тащить браузер на сервер.

Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot modify readonly property: constructor.

— Сегодня мы продолбали аж целых 2 майлстоуна (из 4).
— И теперь мы заняли лавры первенства косячников года, оставив коллег из Индии далеко позади.

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

в общем, недолго думая, я принёс тем из вас, кто часто путешествует, тулу для упрощения подсчёта оставшихся или доступных в будущем дней по визе/нерезиденству/безвизу с ограничениями (X за Y).

an-pro.org

Самое простое.
— Шенгенская виза: 30 дней в течение 90.
— Эквадорский безвиз: 90 дней за 180.
— Нерезиденство: 183 за 365 дней.

Чистый клиент, родного общения с сервером лишён by design, из запросов во внешний мир — лишь аналитика от гугла. В первый раз долго грузицца, я знаю и работаю над тем, чтобы pulp browserify взлетел. Ну и плашки всякие, да, они тоже скоро появятся.

#2905635 тут хотелось очень странного + код писался бессонной ночью. в результате пришлось переписать его с третьей попытки с рекурсивным обсчётом, получилось o(n^2 — n + n), т.е. o(n^2). да и хрен с ним. оптимизировать лениво уже. на после релиза отложу. если тест выстрелит.