Chat:Ru/2020-08-12
mabu: Не поможет.
gsomix: vrabosh, посмотри еще bat для подсветки, он с less интегрируется.
https://github.com/sharkdp/bat
tutubalin: кто как Code of the Ring делал?
tutubalin: хардкодили или нет?
amurushkin: я скопировал с гитхаба чужое
Uljahn: тупо в лоб делал, но давно, предлагаешь зарубиться?
amurushkin: ради ачивки. мне чет это задание вообще не нравится
Uljahn: я сортировал расстояния до ближайших букв с учётом переключения и передвижения
Uljahn: ого, даже на деках сделал
Uljahn: 60 строчек говнокода :/
Uljahn: в экспертные правила даже не смотрел
gtj: ты можешь даже wgetpaste сделать
gtj: хз толку от этого майнкрафта
gtj: это уже кому что нравится)
gtj: мне 3 раза вдалбливали бфс и изза стресса я его забыл)
gtj: не знаю как сделать я знаю только как емаксом пользоваться
BorisZ: я делал 4 года назад, и на руби, сейчас не разобраться без бутылки, без хардкода и без экспертных правил
BorisZ: дерево какое-то, расстояния какие-то, хз что к чему (
BorisZ: 100 строчек кода
tutubalin: я нашёл на гитхабе валидаторы
tutubalin: и вот пока думаю: попробовать всё-таки алгоритмически решить или ручками сделать
BorisZ: самому оно почетнее, но опасно - затянет еще )
Uljahn: вон mykeich как затянулся в CG reverse contest, аж в топ вышел
gsomix: Optimization отличается от Bot programming тем, что есть рейтинг, но нет соперников в игре?
Uljahn: да, optimization - это по сути соло-контест с лидербордом по счёту, а bot programming - мультиплеер
Uljahn: т.е. в bot programming твой результат зависит от уровня других игроков, а в оптимизациях - нет
Uljahn: в bot programming твой ранг на арене определяется по формуле TrueSkill путём подбора игроков для матчей по хитрой формуле с учётом их относительной силы
gsomix: Спасибо.
mykeich: Дальше предлагают достичь 2% в code golf мне. Осталось найти пазлы
Uljahn: странная ачивка, проще получить раньше, а новым участникам придётся придумывать всё более навороченные решения
amurushkin: они в разделе code golf
gsomix: Code Golf мне кажется странным соревнованием. :)
amurushkin: впринципе доступная ачивка. по крайней мере пока еще
amurushkin: gsomix: это своеобразная штука конечно. на знание всяких трюков. теоретически нужно лучше знать язык и его возможности чтобы успешно гольфить
amurushkin: плюс мышление наверное чуть другое
Uljahn: главное, чтобы в привычку не вошло - плохая практика
Uljahn: с другой стороны, помогает разбираться в чужом не очень чистом коде
Uljahn: или в своём древнем :smiley:
amurushkin: ага это пока пишешь еще может что то понимаешь. а потом смотришь на это все и уже не помнишь что за задача была ))
gsomix: Попробовал для фана.
gsomix: У меня строка с чтением инпута содержит больше символов, чем топовое решение на перле.
amurushkin: топ наверное не достижим. там вроде юзали сетевые обращения.а сейчас они закрыты
BorisZ: любое соревнование с заранее известными правилами имеет право на существование
BorisZ: главное чтобы людям нравилось
inoryy: я как-то собрался в CSB че-нить попилить - убил пару вечеров, понял что говнокод что псц и проще с нуля писать
BorisZ: новых мульти вон сколько появилось, лучше уж их начинать
BorisZ: чем старый проект переписывать
BorisZ: мне когда приходится переписывать - все время ловлю себя на том что второй раз на те же грабли наступаю что и в первый
BorisZ: ну не на все конечно, но все равно обидно )
tutubalin: codegolf затягивает
tutubalin: к сожалению, на CG с ним не очень хорошо дела
tutubalin: во-первых, мало задачек
tutubalin: во-вторых, нет борьбы с читами
wlesavo: да, разве что клеши кодгольфить, но там времени мало для перфекционизма
tutubalin: написать решение, которое работает только для определённых тестов и только с определённой вероятностью - это уже не совсем гольф
tutubalin: но польза от гольфа есть. 1. изучаешь такие возможности языка, о которых мало кто знает 2. понимаешь, насколько на самом деле важны читабельность и длинные мнемонические идентификаторы
tutubalin: 3. это тоже своего рода оптимизация. просто не быстродействия, а объёма. затягивает сам процесс, когда смотришь-смотришь на код, который дальше сделать короче просто невозможно. а потом - бац! - и находишь как убрать 2 символа. такой кайф
tutubalin: кстати, что в 2% войти, не обязательно сильно крутое решение. можно просто на нескольких языках сделать хорошие.
tutubalin: оппа. тора поменяли. теперь наше коллективное решение вниз улетело
Uljahn: угу, теперь на север ходит
Uljahn: я недавно в чате упоминал, но смыло быстро)
amurushkin: там 2 теста не проходит. я побыстрому не смог адаптировать под новые чтобы на 100% было
tutubalin: ну вот как раз потому что там прям очень много оптимизаций именно под тесты было
wlesavo: а, так они и ресабмитнули сразу
gtj: получается если я прохожу по массиву н на н и мне нужно выдавить определенные поляиз этого массива мне придется проверять поля неймана(4 соседа), тоже самое почти 1 в 1 я проделаю и в бфс получается так?
gtj: тоесть двойная проверка уже
gtj: чтобы ребра установить соседней определяешь чтобы двигатьсЯ все равно получается опять еще раз эта проверка
BorisZ: массив как карта лабиринта - неудобен для алгоритмов на графах, не то чтобы невозможно сделать, просто смысла нет
gtj: мне понять надо остальное в топку
BorisZ: граф представляют в виде списка или массива из нод. Проходимая ячейка карты - это нода, препятствия\стены не фигурируют
gtj: у меня есть рабочий пример
BorisZ: каждая нода - это список или массив соседей, с которыми есть связь, можно перейти то есть
gtj: теперь я хочу выдавить точки просто и всё
gtj: есть дофига мелких рабочих примеров которые я понимаю
BorisZ: и потом все алгоритмы обращаются к графу за списком соседей для конкретной ноды
gtj: есть дофига обьяснений которые я тожде понимаю теперь я просто корпею над тем как понять и как сделать 1 рабочую итерацию типо того
gtj: Борь списками графы не кончаются
gtj: самое простое сделать граф 0 и единиц
gtj: матрицу и пройтись в нем бфс
gtj: у меня проходит но там мудреное решение
BorisZ: матрица - тоже неудобно, во первых слишком большая, если карта MxN, то матрица будет квадрат стороной M*N, всего (M*N)^2 ячеек
BorisZ: 99% которых будут нулями, так как соседей максимум 4 в случае простого лабиринта
gtj: http://chat.codingame.com/pastebin/1d44901e-b52b-4a0a-9c35-10058d2d0a0a
Uljahn: простейший пример представления графа - многосвязный список, в каждом элементе - ссылки на элементы-соседи, в случае четырёх соседей будет четыре ссылки максимум (для угловых элементов две, для тупиков одна), один раз пройтись по карте и заполнить список соседями, потом можно пользоваться
amurushkin: gtj: в бфс когда проходишь по карте лабиринта то да, проверяешь всех соседей куда можно пойти а куда нет
gtj: получается 2йная проверка
amurushkin: ну смотря что ты подразумеваешь под "мне нужно выдавить определенные поляиз этого массива"
amurushkin: я с лабиринтами обычно не парюсь и когда делаю обход то делаю просто 4 ифа. типа if cango(x+1,y), if cango(x-1,y) и т.д
gtj: линки по карте хочу сделать в отдельную сущность
gtj: тоесть будет граф где только ребра проходимые
gtj: обход это вначале или обход бфскогда?
amurushkin: ну тогда можно список списков например сделать
gtj: такая это мутотень я сделал через пару пар и понял что по сути это тоже самое
gtj: но доделать так надо хтябы раз
gtj: както работает доходит до 0 и телепортируется
gtj: и так телепортируется пока не придет к моему финишу
gtj: http://chat.codingame.com/pastebin/b121eeab-d31e-4d59-94c0-0ac7cc3060e6
amurushkin: где то баг значит
gtj: просто понимаю пока что тут происходит более менее
gtj: смотрел пример олимпиадника
gtj: но не понимаю как его трансформировать в опр задачу
gtj: вот видосы смотрю но везде свои задачи
gtj: ну и у него без мапы было просто двойным массиов мапу я на хабре читал
gtj: https://habr.com/ru/post/469967/
gtj: Ассоциативный массив смежности
gtj: хз что это такое я так понял как у меня написано
gtj: вернее как понял так и написал
Uljahn: на мой взгляд, не самый удачный пазл, чтобы изучать применение графов: тут туман войны, дополнительные условия на посещение особых мест, ограничения по ходам, т.е. легче бфс по карте сразу делать, без промежуточных абстракций
gtj: так я понимаю что я зависим от частоты
gtj: я пока пытаюсь приблизится к решению в более простых условиях чтобы далее фиксить условия
gtj: я иду с другого конца по решению этой задачи
Uljahn: тут уровень hard, в тэгах BFS и Pathfinding, лучше что попроще выбрать из https://www.codingame.com/learn/graphs
gtj: мапа быстрее работает чисто теоретически я смогу фиксить каждый кадр бфсом тут сначало азы понять надо
gtj: ты кинул меня в граф теорию ок
Uljahn: азы для карт - это волновой алгоритм - floodfill, с него всё начинается
gtj: мне совесть не позволит я вложился ментально в бфс я обязан его понять
Uljahn: https://habr.com/ru/post/264189/
gtj: да я видел волновой вчера счмотрел
Uljahn: floodfill - это и есть bfs, с нюансами
gtj: нет там по разному работает
gtj: бфс не так работает как зполнение водой
gtj: след прыжок будет в след или следслед столбце и строке
gtj: находит кароче финишь но я не пойму некоторые нюансы как посмотреть его путь
Uljahn: в статье картинки суперпонятные
gtj: потом тут недавно смотрел отрисовку бфс понял что я лурацкий вопрос задал?
gtj: отсюда у меня вопрос в бфс чей путь я буду смотреть
gtj: бфса или мой путь который надо
mykeich: что бы понять надо сделать код, где код? самый простой для обхода графа или карты?
gtj: http://chat.codingame.com/pastebin/95429c06-aa37-4955-b367-27097b773700
gtj: я хочу понять как вывести хоть чтото дебажещее
mykeich: с++ с его очередями не читабельный совсем:) после запуска bfs что на выходе у тебя?
gtj: на мапу не обращай внимания мапа обертка для людей просто оснавная инфа в 3 поле
gtj: посути как массив интов просто есть еще авто координаты
gtj: http://chat.codingame.com/pastebin/c949b901-425d-401c-b480-bfbd8bccb23a
mykeich: Если тебе для поиска кратчайшего пути, то когда добавляешь узел в список посещенных ты запоминаешь для него соседний узел с которого на него попал.
mykeich: Не знаю как проще объяснить.
gtj: да я смотрю и твой код и код оллимпиадника
gtj: с нейборами пока я не вкурик
mykeich: Твой код дотошно не изучал, но почему visited не заполняется?
gtj: это типо подход был я его хотел поменять на д
gtj: а взитед типо ему на смену шел но я потом быстро потерял понимание как его туда прикрутить
gtj: а как вы ходы своих юнитов выводите куда они идут?
gtj: как это вывести во время исполнения цикла или алгоритма
gtj: или надо очередь выводить?
tomatoes: после исполнения выводил
mykeich: после работы алгоритма у тебя таблица visited в которой для каждой точки карты есть информация с какой соседней точки на не пришел. Дальше тебе нужен алгоритм который построит пройдет путьпо этой карте .
gtj: тот алгоритм немного другой у меня тупо выводит 1
gtj: это после возврата чо это значит?
gtj: там вектор и сую все равно ту карту свою
gtj: https://e-maxx.ru/algo/bfs#4
gtj: http://chat.codingame.com/pastebin/c748564d-74fc-4040-a5ab-2b68f67a1265
gtj: кароче я понял определил себя я настоко туп что не могу понять делает он эту часть или нет
gtj: нет с координатами я если врубаю наработку он делает но телепортируется
gtj: телепортируется там встречает преграду телепортируется в финишь
gtj: а эти где 0 1 хрен отладишь
gtj: https://cpp.mazurok.com/e-olymp-4852/
mykeich: разобрался?
tutubalin: начни отсюда: https://www.codingame.com/playgrounds/5470/graph-theory-basics/basics
tutubalin: потом можно вот эту порешать: https://www.codingame.com/training/medium/skynet-revolution-episode-1
gtj: нет я не буду сейчас переключаться
gtj: буду решать пока не пойму
gtj: тут все не так сложно пока как эта байда
gtj: пока нет, буду пробовать щас както передавать состояния в или д или визитед я так понял должен получится в визитед отпечаток лабиринта
gtj: а потом уже искать кратчайший
gtj: но по примерам понял что ктото это делает в бфс
gtj: плюс по координатам бфса своего карактера я вижу что он может обходить лабиринт и возвращаться обратно если препятствие
gtj: вот координаты и лабиринт
gtj: http://chat.codingame.com/pastebin/fab4865b-7aff-4371-94c9-0b8146919589
gtj: лабиринт 1 это можно ходить 0 преграда
gtj: а цифры снизу это координаты персонажа
amurushkin: чистый бфс назад не возвращается
gtj: рекурентный видимо ему видимо когда он встретил преграду надо подсунуть не то что обычно подсовывают или состояние переключить
gtj: но по сути все будет в том 1 цикле стандартом работать
amurushkin: бфс чаще всего работает на приоритетной очереди
tutubalin: amurushkin не совсем. приоритетная очередь нужна дейкстре
tutubalin: бфс используется для невзвешенных графов, длина пути определяется просто количеством дуг, которые надо пройти
tutubalin: на первом шаге посещаешь все вершины, до которых расстояние 1. на втором шаге - все вершины, до которых расстояние 2 и так далее
tutubalin: иногда можно не заморачиваться с шагами и просто пихать всё в одну очередь
tutubalin: в любом случае она сама собой будет получаться упорядоченной - вершины, до которых ближе, будут в начале, а до которых дальше - в конце
BorisZ: tutubalin +
mykeich: обычная очередь, первый вошел первый вышел
BorisZ: бфс можно использовать не только для поиска расстояния или компонент связности, но и для каких-то переборов, когда ближайшие ячейки надо раньше дальних рассматривать
BorisZ: по мне тут на КГ для 90% задач кроме бфс и не нужно ничего
BorisZ: никаких других алгоритмов на графах
tutubalin: если надо просто найти есть ли путь из точки A в точку B, то можно использовать очередь
tutubalin: если нужно ещё и найти расстояние, то тут я обычно вместо очереди использую два списка
tutubalin: список вершин, которые достигли на шаге N (по нему и итерируем)
tutubalin: список вершин, которые достигнем на шаге N+1 (в него добавляем новые непосещённые ранее вершины)
tutubalin: после цикла: список_1 = список_2 список_2 = [ ]
tutubalin: плюс в том, что проще отслеживать расстояние
BorisZ: расстояние обычно зарание расчитано
gtj: щас попытаюсь на том языке как ты выше описал описать свою идею
gtj: есть позиция я ее пихаю в очередь потом тут же извлекаю
gtj: проверяю соседние вершины я так понял именно видимо вершины
gtj: метю и доступные вершины пихаю в очередь если не преграда
gtj: это так работает дефолтовый бфс
BorisZ: да, помещаешь в очередь всех непосещенных соседей
gtj: на выходе мы получаем не путь а снимок путей как я понял по правде если по крайней я так понял почемуто
gtj: тоесть снимок путей это выдавленый лабиринт
gtj: но у меня к примеру дефолтовый толи я не то вывожу толи хз
BorisZ: смотря что ты хочешь получить на выходе, если путь из всех вершин в начальную, то надо отдельных массив путей
gtj: то бфс может 1 карентом пройтись по всему лабиринту и записать свой путь
BorisZ: не путей а шагов из текущей вершины в начальную, потом надо из этих шагов восстановить путь и перевернуть если надо
gtj: щас попробую вывести то что я в вектораъх выводил если выведет весь путь покажу наглядно
BorisZ: то в какой последовательности сам бфс обходит ячейки - в общем не важно
gtj: и тогда он 1 указателем запишет последовательно весь путь в 1 сущность
tutubalin: https://pastebin.com/aewqFpCg
gtj: и там можно будет по меткам старта и финиша найти еще раз уже путь
gtj: секунду щас еще пока я в неправильной позици отддебажу идея появилась у меня же теперь кооржинаты есть
gtj: ну кароче как ты написал просто у меня тут приведение пары в инт
gtj: хрен отследишь координаты потомучто вершины тоже в инте
gtj: еслибы вершины хранить с координатами было бы тру можно было бы весь путь алгоритма отслеживать
gtj: тоесть если знать что такое в и его координаты то можно видеть весь проход алгоритма любого бфс
gtj: а пока я вижу только такое
gtj: http://chat.codingame.com/pastebin/0eb338e4-3b04-4ea8-8388-96535d836451
tutubalin: переименуй d, p и прочее во что-то читаемое
tutubalin: вот бфс с очередью: https://pastebin.com/vDJ3JR7c
gtj: да я согласен пока не знаю во что их переименовывать
gtj: д это расстояние или путь
tutubalin: расстояние - это distance
tutubalin: путь - это path
gtj: так я распаковал тебе проход карента
gtj: 1 1 1 2 1 3 1 4 1 5 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 3 15 3 16 3 17 3 18 3 19 3 20 3 21 3 22 3 23 3 24 3 25 4 28 7 26
tutubalin: я не понимаю что такое v, что такое i
gtj: я передаю ему старт он идет по верхнему как будто идет от старта
tutubalin: потому что у тебя не бфс, а дфс получился, видимо
gtj: щас если баг попытаюь понять его
gtj: он явно показывает куда он пошел
tutubalin: а телепортится потому что ты неправильно связи посчитал
gtj: я думал координаты баганули но нет
gtj: у меня еще свежая сборка на подходе с адж листом
tutubalin: мне кажется, ты координаты с индексами напутал
tutubalin: в итоге у тебя связи левые
gtj: 1 1 2 1 3 1 4 1 5 1 7 1 8 1
tutubalin: у тебя есть резиновая уточка?
gtj: вот посмотри я поменял v i
gtj: он идет по единицам из 11 в 8 1
tutubalin: вот посмотри: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0
gtj: http://chat.codingame.com/pastebin/b1436f9d-60d0-4d73-888b-39666eec026c
tutubalin: клетка - и есть вершина
tutubalin: клетка, где нет стены
gtj: на выходе он получает из примера
gtj: я получаю такие цифры но не понятно что это такое
gtj: я пытался их оддебажить координатами
gtj: я так подозреваю вершина это немного не то
gtj: мб вершины нумеровать надо отдельно
gtj: к вершине циплять состояние 0 или 1 и координаты
gtj: и тогда я смогу оперировать в бфс конкретными вершинами
gtj: тоесть начать с 50 вершины ну к примеры она посчитана как старт и прочее
gtj: какойто зип архив получается
tutubalin: уточка. расскажи это уточке
gtj: если ты так не зная чего изучаешь то мне жаль тебя
tutubalin: ты прочитал по ссылке?
gtj: http://chat.codingame.com/pastebin/7c9f22e0-36cc-4b07-a6d2-c88f56536ec8
tutubalin: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0
tutubalin: рассажи уточке как ты понимаешь вершины и что ты хочешь с ними сделать
gtj: ns vju 'nj cjj,otybt yt gbcfnm vyt
gtj: если ты пользуешься этим методом не мешай людям
gtj: очень низко с твоей стороны если ты действительно разбираешься в этом всем про такое говорить печально осознавать что такое бывает в нашей жизни
gtj: преподователи отродясь такого не говорили ниразу
tutubalin: это широко известный метод, которым многие пользуются
tutubalin: ты им тоже пользуешься, только вместо уточки ты используешь этот чат
tutubalin: а нужно использовать уточку
tutubalin: или любой другой предмет
tutubalin: https://www.youtube.com/watch?v=QTa62x_q7Es
gtj: ты явно вводишь в заблуждение
gtj: есть такие вещи о которых ты и знать не знал, никакая книга тебе не поможет пока тебе не покажут не скажут об этом, грубо говоря пока тебе не сказали ты не знаешь, тоесть, если тебя не было в момент создания ОС в AT&T и ты не знаком с ричи и страуструпом то ты уточкой своей не достигнешь тех знаний которые они изучали тогда
gtj: так что уточка твоя холодная история по изучению времени в ОС
gtj: там конкретная информация
gtj: тоесть единственный выход гуглить переписки
gtj: а уточкой сдесь не пахнет
Uljahn: бывает ещё абстрактная теоретическая информация, её понять сложнее, тут уточка может быть полезна
gtj: даже дргая личность не доверяла такому подходу Дюрер например
Uljahn: не говори мне что мне делать (ц)
tutubalin: у тебя в коде баг этот баг сделал ты только ты можешь его найти поговори с уточкой и сразу найдёшь
tutubalin: https://www.youtube.com/watch?v=vHxlWMIOZgE
gtj: уточка не помогает о том чего ты не знаешь вообще
tutubalin: посмотри видео и сделай как там сказано
Uljahn: не бывает так, что вообще не знаешь, чаще бывает, что кусочки пазла переклинило, и они не складываются
gtj: не было тебя в при создании процессора ты и знать не знал чо там делали в фйти и ти и уточки хоть пускай хоть не пускай толку никакого
gtj: а вот если ты загуглишь переписки
tutubalin: тут всё просто. у тебя есть баг. у тебя есть уточка. у тебя есть обучающее видео https://www.youtube.com/watch?v=QLClMf6yO-k
Uljahn: а задействование речевых центров помогает выровнять кусочки
gtj: Ульян давай уточкой прыгни в прошлое и кинь мне кусок кода nexstep
Uljahn: кстати, не мешало бы хотя бы принести извинения за своё поведение в чате, раз уж вознамерился обойти второй бан и вернуться в коммьюнити. а то получается, что только тебя все обижают, а ты никого не пытался оскорбить
Uljahn: жду
gtj: да посмотрим когда тебе про уточку скажу в твой вопрос
tutubalin: предыдущие 3 видео возможно были не очень доходчивые. вот четвертое https://www.youtube.com/watch?v=IBYrQs38gQo
gtj: я не буду мешать тебе нравится делай так
gtj: я не против чтобы ты так делал
tutubalin: вот откуда бы ты узнал про RDD? хорошо что я тебе подсказал хороший подход. и даже обучающее видео подогнал https://www.youtube.com/watch?v=fdaqudiSo5c
tutubalin: красивые девушки тоже используют уточку https://www.youtube.com/watch?v=r05LfpoPjDo
gtj: если ты с 0 так уточкой то молодец
gtj: тоесть с позиции ты не знаешь до позиции уточкой прошел ты знаешь без книг без людей без всего этого изза чего тебя тригерит то я одобряю
Uljahn: обычно вместо RDD у меня Tak Blya Debugging: https://pbs.twimg.com/media/CXjCZTYUkAAp2t9?format=jpg
gtj: раскрыли тайны теперь я как дюрер не буду искать истины а силой мысли щас пойму то чего не знал никогда
gtj: а на деле вам все обьясняют как и всем вот что смешно
gtj: с 1800 года жил человек описал как это все работает а увас тут уточки
tutubalin: отладка - дело тонкое. к счастью, на ютубе всегда можно найти обучающее видео про передовые RDD-методики. https://www.youtube.com/watch?v=huOPVqztPdc
tutubalin: причём тут обучение? это не про обучение, а про отладку
tutubalin: во всех видео, что я запостил, говорятся простые мысли:
tutubalin: 1. не надо приставать со своими багами к другим людям
tutubalin: 2. в процессе объяснения своего кода ты сам поймёшь, что не так
tutubalin: вывод: объяснять свой код лучше всего неодушевлённому предмету
gtj: кстати про WM я тоже сам понял по твоей логике
gtj: а по правде у китайца посмотрел код
gtj: я тебе могу сказать к чему дюрер пришел
gtj: но это тема не того чего ты добится хочешь
gtj: если коротко то к чему ютуб стремится
tutubalin: напиши про свои проблемы здесь: https://rubberduckdebugging.com/cyberduck/
gtj: только теперь тебе ехать никуда не надо
gtj: тоесть ты постя видео сам по интуитиву работаешь по принципу дюрера
gtj: ищешь истину у других людей
gtj: он кстати этот метод четко сформулировал
gsomix: Быстро же он съехал на стандартную манеру общения. :)
gsomix: ечязб
gtj: тоесть ты и носителем не хочешь быть и не хочешь чтоб тебе вопросы задавали
gtj: а сам ссылаешься на носителя при обучении прочем
tutubalin: ты задаешь вопрос тебе дают чёткий подробный ответ ты игнорируешь ответ зачем тогда спрашивал?
gtj: тоесть уточкой тут не пахнет
gtj: надо чтоб твой носитель тебе про уточку флейманул
tutubalin: кроме того, помимо вопросов ты льёшь очень много информации о своём процессе разработки это информация никому не интересна кроме уточки
tutubalin: уточка внимательно выслушает, почему у тебя телепортируется
tutubalin: ты ей расскажешь свой код строчка за строчкой
tutubalin: объяснишь каждую букву
tutubalin: зачем она и почему здесь
tutubalin: и до того как уточка успеет указать тебе на проблему, ты сам всё поймёшь
gtj: послушай то что ты щас пишешь про уточку это всего лишь твое отношение не более
tutubalin: это всего лишь распространённая методика у профессиональных программистов
tutubalin: если тебе не интересно программирование, можешь забыть про уточку
gtj: если ты такой не меряй всех по себе
amurushkin: блин, я не профессиональный программист выходит. хнык хнык. я не знаю про уточку :)
gtj: да это его отношение не бери в голову
amurushkin: ну а ты как думал? что другие люди захотят в твоем коде разбираться?
amurushkin: сделай дебаг вывод. выясни почему у тебя телепортируется
amurushkin: так все делают
inoryy: уточка легит, неоднократно помогало
gtj: тыбы тогда был не на своем месте а гденить в майкрософт или ОС свою написал уже
gtj: попробуй уточкой зацепить то чего ты не знал
inoryy: забавный агрумент про майкрософт :)
gtj: ну или бы показал как надо ОС сделать из скратч прям с нуля на С++
gtj: типо вам потребует компилятор и повторяйте за мной
amurushkin: свою ос писать я в школе хотел. потом понял что в одиночку нефиг и начинать. сейчас есть перспектива только riscos патчить под новое железо. но мне не интересно это направление
inoryy: причем тут с нуля, тебе сверху доступно объяснили зачем уточка
gtj: ну ты мне пишешь про уточку зачем?
wlesavo: уточка это как teddy bear? ато я только про медведя историю слышал, но видимо суть одна
gtj: это твое отношение а не аргумент используй уточку
inoryy: wlesavo https://en.wikipedia.org/wiki/Rubber_duck_debugging
amurushkin: кстати полюбому работает. сколько раз было. начинаешь обьяснять пробелму жене. пока обьясняешь в голову приходит решение
wlesavo: а ну да, а я помню про историю что прежде чем обратиться в тех поддержку надо было объяснить свою проблему медведю на ресепшене, и этот медведь решал 2/3 всех обращений
inoryy: первый раз слышу про такую историю
wlesavo: https://en.wikipedia.org/wiki/Talk:Rubber_duck_debugging#%22Talk_to_the_Bear%22
gtj: прицнип дедукции работает только в хорошо изученой области
gtj: если у тебя нету понимания области никакая уточка тебе не поможет
wlesavo: на самом деле это не только в дебагинге работает, еще когда учился было такое, что вроде зашарил, начинаешь кому-то объяснять предмет и сразу все слабые места в твоей картине мира вылезают
gtj: дедукция не вернет время вспять и не даст понимания откуда это все и почему так следственно ты обманываешься в неизученой области пользоваться уточкой и все равно тебе будут обьяснять носители
gtj: наличие носителя ломает принцип уточки
gtj: к тому же ты будешь говорить своих носителей другим людям которые тоже находятся на ближайшем к тебе расстоянии от носителя
gtj: а тот кто будет интересоваться с высока твоими знаниями уже будет пользоваться твоей уточкой потомучто эту область он знает лучше
Uljahn: проговаривание (вербализация) превращает сложную и местами неявную модель в последовательную и явную, поэтому слабые места сразу видно, и нелогичные связи проявляются моментально
inoryy: wlesavo 4 курса матана не подготовили меня к ведению практикумов и разнообразию способов не понять материал первокурами )) знатно переосвоил все ключевые моменты
gtj: смотри ты не понял когда человек находится на уровне впитывания тоесть он 0 ты ему хоть говори про своих уточек хоть не говори он не поймет если он тебе говорит что не понимает
wlesavo: это да, вообще опыт преподавания очень полезен
tutubalin: старый анекдот про препода: "три раза им объяснял, даже сам уже всё понял, а они всё ещё не понимают"
gtj: я сам видел человека воочию который считал что его метод обьяснения полезен а весь колоквиум не понимал его
inoryy: хз к чему эта стенка текста про носителей и из-за неё история давно улетела, но смею предположить что вопрос уточки подняли как замену чата для потоков мысли которые всё равно никто не читает
gtj: все 300 человек не понимали его весь симестр
tutubalin: inoryy +1
gtj: да тут уже все вопросы скатывают в такое
Uljahn: когда лабораторки вёл у оболтусов-контрактников, приходилось им пересказывать задания, которые поставил профессор, но уже своими словами, чувствовал себя переводчиком с профессорского на нубский
tutubalin: не правда. на вопросы мы отвечаем
tutubalin: и даже баги помогаем найти иногда
gtj: ну ты же скатил в такое всё
tutubalin: но вот когда человек начинает просто флудить чат каждой своей идеей, которая ему в голову пришла - пусть лучше расскажет это уточке
tutubalin: в какое? я тебе рассказал про ведущий метод отладки, используемый по всеми миру, в том числе в серьёзных компаниях
gtj: ты как то определил что я именно флудил и тролил
tutubalin: привёл массу видеопримеров
tutubalin: ты 10 раз подряд написал одно и то же
gtj: поделись как ты определил что я именно флудил и тролил
tutubalin: я, например, видосы каждый раз новые находил
Uljahn: всё так же рыдает шарманка, Automaton2000
gtj: вот так чел подойдет к тебе и скажет что не понял и еще 10 раз тебе скажет а ты его пошлешь
Automaton2000: но у меня и у кубера
tutubalin: а ты писал одно и то же: у меня телепортируется, у меня телепортируется
Uljahn: лол
tutubalin: ахахаха.))
tutubalin: автоматон в теме ))
gtj: ну ответ на то как ты определил что я флудил и тролил расплывчатый
gtj: поделись я тоже определять буду
tutubalin: вот сейчас ты повторил одно и то же сообщение трижды за 2 минуты
gtj: я тебе кинуло 3 реализации
tutubalin: это называется флудом
gtj: потом повторил что телепортирует и показал тебе цифры
tutubalin: меня не бомбануло
amurushkin: я могу свой метод определения рассказать. когда несколько часов не заглядывал в чат и потом заебуешься листать до того места где ты был последний раз ))))
tutubalin: я тебе предложил ведущий способ отладки, используемый по всему миру в том числе в крупных компаниях
tutubalin: а вот тебя уже бомбануло
wlesavo: или заглядываешь в чат а там сообщения только от одного человека
tutubalin: причём, повторяющиеся
Uljahn: на решение задачи уже все забили, Automaton2000
Automaton2000: ну а в этот раз
Uljahn: Automaton2000: один раз - не гугл-глас
Automaton2000: да я не про то
gtj: нет я все это время пробую
gtj: просто мне тут про уточку втирали
tutubalin: и так и не втёрли
Uljahn: то есть тебе можно всем втирать про жль, а другим почему-то нельзя
tutubalin: если человек не способен учиться даже на ютуб видосах...
tutubalin: пять или шесть разных видео
tutubalin: на русском, на английском
tutubalin: мальчики, девочки
tutubalin: все старались объяснить ему
tutubalin: и так и не смогли
gtj: о чем ты кинул видео я смотрю другие уроки я смотрю о бфс
tutubalin: наверное что-то не так с мальчиками и девочками
gtj: я смотрю как другие бфс применяют пытаюсь понять
gtj: а ты считаешь флудом это и тебя бомбит
tutubalin: ты попытайся уточке объяснить как работает бфс
tutubalin: так и смотри дальше
tutubalin: сюда то зачем пишешь?
gtj: ты просишь смотреть какието другие видео и я тебе пишу что я смотрю о бфс
Uljahn: смотришь и пишешь в чат?
Uljahn: понятно, откуда такие глубокие знания
gtj: да я неделю смотрю про это
tutubalin: потому что мало смотреть. нужно ещё рассказать то что понял.
tutubalin: если не хочешь делиться с уточкой, расскажи ютубу
tutubalin: поставь видео на паузу, посмотри в глаза рассказчику, и распиши ему подробно, что ты понял
gtj: мне кажется ты меня в заблуждение вводишь бфс то у меня работает
tutubalin: помогла методика!
Uljahn: вот это поворот
Uljahn: бфс-то работает, но в проге баг
gtj: да потомучто я нифига не понимаю
Uljahn: у меня тоже винда работает, и я нифига не понимаю
gtj: я тебе написал на твое сообщение выше
tutubalin: Uljahn а работал бы в микрософте, написал бы винду сам
Uljahn: и уточке бы объяснил
tutubalin: вот у разработчиков WindowsMe не было уточек...
gtj: у меня были вопросы по бфс не потомучто уточка у тебя какаято а потомучто конкретно чото не ясно
gtj: http://chat.codingame.com/pastebin/f3f46d73-9ca5-495d-99dd-76f89b7a2d7f
gtj: теперь не телепортируется и доходит до тупика и останавливается
Uljahn: :rolling_eyes:
gtj: тут вопрос в том нифига не понятно что я не так делаю может тут другое чтото выводить надо
gtj: может очередь выводить надо
gtj: а рабочий пример мне в обратный путь после поиска и установки обратного маршрута только 2 пишет
gtj: какие тут уточки я просто не понимаю что так а что не так что есть что вообще
Uljahn: а кто этот код написал?
Uljahn: скопипастил чтоли откуда?
gtj: самый простейший куда только матрицу подставить
Uljahn: т.е. ты хочешь сразу запрыгнуть на поезд, идущий на полном ходу
gtj: что такое 2 как это понять вообще
gtj: как эту 2 мне глядя на матрицу найти
tutubalin: ты свой код можешь строчку за строчкой сам себе объяснить?
gtj: с вектором более менее понятно
Uljahn: это не его код, оказывается
gtj: с мапой я просто запутался
Uljahn: бфс рабочий скопировал, а мапу не получается в него засунуть?
tutubalin: раз идея ясна
gtj: мапа выдает Ульян по координатам ближайший тупик
tutubalin: объясни её уточке
tutubalin: уточке пока не ясна
gtj: а дальше я просто не понимаю что делать рекурсию запускать или что
gtj: на нашла она тупик вывела
gtj: и он стоит там и все остановилось
tutubalin: я тебе рабочий код скидывал
tutubalin: ты даже не посмотрел
tutubalin: всё ясно с тобой
tutubalin: просишь совета
tutubalin: тебе советуют
Uljahn: а я ведь писал про это, что тут условия поиска меняются в зависимости от этапа исследования лабиринта
tutubalin: ты тупо игноришь
tutubalin: и задаёшь тот же самый вопрос снова
gtj: потомучто мне 1 итерацию его надо превратить в свои сущности и ассоциации и перенести в свой код а скопированное и у меня работает
gtj: ток не понятно что 2 значит
tutubalin: он нас то ты что хочешь?
gtj: а в моем все понятно но остановился в тупике
Uljahn: сначала ищещь вопросики ближайшие, идёшь к ним, когда их не осталось - идёшь в центр управления, запускаешь аларм и тикаешь на выход по кратчайшему пути, у меня так сделано
gtj: а как мне определить что я делаю?
Uljahn: задать условия поиска для бфс
gtj: я просто ищу ближайшие 1 и получается в тупик его веду?
Uljahn: на карте несколько видов символов
gtj: Ульян я его превращаю в звешеный граф
gtj: но вес там у всех 1 это 1чка
Uljahn: тогда ты не сможешь логику поиска написать для разных условий
Uljahn: у тебя только проходимость учитывается
tutubalin: а что за задача?
Uljahn: зря взялся за такой сложный пазл, он уже для профи в бфс
Uljahn: the_labyrinth
gtj: у меня только проходимость учитывается типо был или не был смогу не смогу
gtj: значит из тупика опять поиск надо вызывать
Uljahn: по идее да
gtj: мне просто понть надо принцип
gtj: сфокусируюсь на этом значит я не правильно сделал в коде 1 проходом не решаемо типо проход (может раундом назвать)
Uljahn: def bfs(obstacles=set('#'), target='?') вот такая у меня универсальная функция поиска, где задаются непроходимые символы и символ-цель
gtj: ааа кстати у тебя клевый алгоритм
gtj: его введути в вове как игровую механику
Uljahn: и для разного этапа исследования вызывается одна функция, но с разными параметрами
gtj: по стенке проходить генерируемый тунель
Uljahn: нет, у меня в ширину исследует и выбирает ближайшую цель
gtj: показалось что ищет стенку и только по стенкам идет
Uljahn: если это вопросик, то идёт к вопросику, туман рассеивается, вопросики пропадают
Uljahn: не, стенки - это непроходимые, сначала это стенки и командный центр, чтобы аларм не тригернуть раньше времени
Uljahn: потом все вопросики поудалял, иду в центр, запускаю аларм, иду на выход
Uljahn: всё одной функцией
Uljahn: просто параметры разные
gtj: хм значит еще подвид идти только вдоль стен
Uljahn: там вроде нет особо широких проходов, полюбому будешь вдоль стен ходить
Uljahn: главное вначале идти к вопросам - разведывать территорию
Uljahn: поэтому надо иметь начальную карту
Uljahn: со всеми символами
Uljahn: и по ней бфс-ить
Uljahn: начальную, в смысле которую в инпутах дают в начале каждого хода
Uljahn: там карта обновляется с учётом твоего предыдущего хода
Uljahn: туман войны отодвигается
gtj: ну как будто я иду втемноте как в диабло
gtj: но тут туман именно рассеивается
gtj: а в темноте тоже клево былобы пришлось бы искать и путь назад)
Uljahn: путь можно было бы запомнить, карта-то не изменяется
vrabosh: всетаки незря книгу купил unix and linux
vrabosh: почуть вырисовывется картина..
vrabosh: оказывается к моему впс хотят активно подобать пароль на ссх
vrabosh: надо и пароль длиней придумывать. и колво попыток уменшать и может еще чтото делать.
Uljahn: разрыв сессии или бан входящего айпи после нескольких неудачных попыток
Uljahn: чс на сутки
vrabosh: пока это еще не умею делать) гуглить не охото, буду книгу читать
Uljahn: да я тоже не умею, но интересуюсь кибербезопасностью и криптографией)
Uljahn: с одной стороны, везде предостерегают от написания своих велосипедов - типа нужно пользоваться проверенными опенсорсными продуктами, с другой стороны сканнеры портов работают по более-менее стандартной схеме (стандартные настройки портов и протоколов), т.е. при нестандартной конфигурации большинство скрипт-кидди-кулхацкеров обломается
Uljahn: я когда-то в ирц тусил с такими чуваками, они сканнили всё подряд с помощью nmap/zmap/shodan, свои тулзы какие-то писали
Uljahn: только я тогда мало что понимал
vrabosh: из тысячи может 1 попадется который все стандарное ввел.
Uljahn: угу, на это и расчёт, как телефонные мошенники
vrabosh: или устаревшее оч имеет
Uljahn: ну, они в основном вебкамеры незапароленные или с дефолтным паролем искали, по приколу, ну и всякие сетевые артефакты
Uljahn: netstalking
vrabosh: но в наше время лучше таким не заниматся.. нужны будут спецы службам, быстро вычислят таких людей и заберут к себе)
vrabosh: как рабскую силу
Uljahn: ага, или работай у нас, либо присядь на пятнашку
gtj: там все проще щас реализовано
gtj: и просто и сложно одновременно плюс пересекается с законом
gtj: остальное пресекается сейчас законом
gtj: недавно слушал как раз про это и мой простейший алгоритм который я вам показывал получает редирект почти со множества ресурсов вопрос почему а вот потомучто я выше написал если браузер не может в редирект значит это потенциальна угроза но пока не является угрозой
gtj: как только ты начнешь делать перебор это уже будет разбор
gtj: надо просто писать браузер
gtj: дали редирект делай редирект
gtj: тоесть основную информацию что делать в большинстве своем сейчас задают ресурсы в том числе если они в безопасность ушли
gtj: а гугл пока не делает редирект все как 10 лет назад
gtj: тоесть простой запрос гет он проработает а наши ресурсы нет они редиректят
gtj: это и есть та самая безопасность
gtj: это кстати отсеивает большинство запросов которые могут повлиять на нагрузку
gtj: Ульян а по опенсорсу тоже много сейчас камней
gtj: я про те что с сетью связаны другое я не слышал в том обзоре
Uljahn: мы про удалённое администрирование виртуальным сервером по ssh, какие браузеры и редиректы, ты о чём?
gtj: можно перенаправлять можно не обрывать сессию
gtj: перенаправлять запрос на тот же ресурс но https
Uljahn: да можно, я об этом писал
gtj: это и есть кибербезопасность
gtj: а если клиент не может этого он либо уходит либо ты наблюдаешь его неправомерные действия
Uljahn: задача - ограничить количество попыток подбора пароля
gtj: хотя этого мало ведь софтина с гуем может быть
Uljahn: да это понятно, но раз устанавливают сессию, значит наружу торчит порт, который насканили
gtj: в интервью говорили эти переборы видит хостер
Uljahn: если там ботнет шурудит, то хостер не поможет
gtj: там щас усилено все в том числе и опенсорсом
gtj: и тебя отсканировать так же могут
gtj: там кароче наука целая теперь
gtj: тоесть я все к тому что я понял если ты пишешь браузер то лучше писать запрос и ничего не делать просто показывать и пытаться описывать все эти редиректы
gtj: метод касперского никто не отменял как я понял
Uljahn: https://yvision.kz/post/81000 хд
gtj: https://youtu.be/4oLzvhDRZT4
Uljahn: сканер открытых портов на компьютере из браузера
gtj: еще я слышал порты тоже редиректят чувак в колледже помню мне все ужжи прожужжал этим
gtj: кароче это своя наука свое направлению кому это интересно
gtj: если интересно глянь про реверс инжинеринг
gtj: ладно сорян пошел дальше разбираться я тут уже на яве примеры нашел пишу вот если заработает перепишу на ++
vrabosh: https://www.youtube.com/watch?v=ZuHW4fS60pc - вот видео bfs поясняет как в школе черед блоки или хз как они называются
Uljahn: блок-схемы
gtj: да уже другой вопрос работать оно все работает и в примерах работает вопрос интерпретации
gtj: у меня тут дофига кода он работает я просто интерпретирую
gtj: я теряюсь когда вижу эти ноды и иногда в своем коде теряюсь с интерпретацией
Uljahn: я первые раз пять, когда писал floodfill, тоже тупил, но потом въехал и теперь пишу не думая
Uljahn: главное не сдаваться
Uljahn: кстати, в jupyter настроил подсветку sql синтаксиса, но работает только в браузере, в VSCode свой движок, хз где там прописывать, курю API
gtj: видел какойто json конфиг файлик толи проекта толи чего еще
gtj: кароче щас сделаю в лоб добавлю руками 130 нод
gtj: и руками запущу стартовую поззиуцию и посмотрю эталонную работу
Uljahn: давно бы сделал, на тестовом примере проще дебажить локально
Uljahn: на CG с инпутами и аутпутами заморачиваться надо
gtj: слушай нежели ява медленнее ++
Uljahn: в джяве прослойка - JVM и сборка мусора, насколько я знаю
Uljahn: а в плюсах более агрессивные оптимизации при компиляции
Uljahn: т.е. на плюсах уже прагмами можно добавить перформанса, а на джяве надо заморачиваться с прогревом кода, чтобы JIT вкурил или типа того :upside_down:
Uljahn: и объекты переиспользовать, т.к. создание дорогое и порождает мусор
Uljahn: правда, я не настоящий сварщик
inoryy: (прагмы для перформанса это чиста CG фишка потому что они 4 года не могут разобраться как правильно флаги ставить)
Uljahn: вообще, сами языки сравнивать сложно, в пределе - да, плюсы в несколько раз быстрее, но в среднем зависит от глубины знания и прямоты рук, наверное можно и на плюсах написать код, который будет медленнее питоновского работать
inoryy: это надо постараться :)
Uljahn: использовать самые неэффективные структуры данных для данной задачи и алгоритм с самым хреновым Big-O а в питоне наоборот
Uljahn: ну, это специально надо стараться, конечно
NuclearBeast_50a6: нам можно все
gtj: кароче скажу свои наблюдения я заметил если автоматизировать поиск вершин и добавлению получается по сути 2 почти одинаковых алгоритма 1 ищет путь и связывает все вершины с опр значениями а второй по алгоритму но уже с графом из точки в точку б