Dimchik
неее, у меня был свой файл граматики: https://github.com/antlr/grammars-v4/blob/master/json/JSON.g4
типа такого, но еще проще)
Dimchik
и типа парсер генерится используя файлик описания граматики
Alexander
да, я работал с антлр
Alexander
правда мне надо было доработать уже готовую грамматику
Alexander
но няня я у них поел
Alexander
визиторы, вот это все
Dimchik
я как-то джс мини-виртуальную машину с его помощью писал
Dimchik
для динамического анализа кода) эх были времена)
Viktor
Dimchik
Это любопытно. Плагин для айдии какой-то делал?
Плагин тоже, но плагин там не особо был любопытным, хотя vscode апишка порадовала, приятно работать с ней. Я занимался в основном разработкой виртуальной машины и компилятора для анализа кода, в основном по поиску сесюрити уязвимостей, для разных языков, для sql-подобных тоже, но там был чисто статический анализатор, а вот для джски был динамический, с виртуальной машиной, прикольно было :)
Viktor
Плагин тоже, но плагин там не особо был любопытным, хотя vscode апишка порадовала, приятно работать с ней. Я занимался в основном разработкой виртуальной машины и компилятора для анализа кода, в основном по поиску сесюрити уязвимостей, для разных языков, для sql-подобных тоже, но там был чисто статический анализатор, а вот для джски был динамический, с виртуальной машиной, прикольно было :)
У вас не будет проблем с безопасностью джс кода если вы будете его запускать в собственной виртуальной машине? 😅
Dimchik
Неее, мы не пилили свой джс движок типа в8... мы пилили какуй-то специфическую джс машину которая может как бы заранать код немного по своему и понять где может быть сесюрити непригодный код...
Evgeniy
Dimchik
подгрузить рулсет в виртуалку, рулсет который помогает понять де сесюрити страдает и потом подгрузить соср код для анализа, заранать его по своему и отдать результат где можно код поправить
Viktor
Viktor
Dimchik
Неее, небольшая компания немецкая, которая в основном на SAP продукты ориентируется)
Dimchik
Evgeniy
Dimchik
Ну да, мы по сути только ранали чистый сорс код, без зависимостей) все зависимости надо было замокать... представь
import fs from 'fs'
var output = fs.readFileSync('someData.txt')
нам надо было замокать что readFileSync возращает... вообще все это делалось для taint analysis в основном: https://en.wikipedia.org/wiki/Taint_checking
Alexander
Звучит как очень непростая задача
Dimchik
поэтому и патенты открывались) правда не мной)
Dimchik
на самом деле там не так все и сложно, несколько правил чтоб не уйти в бесконечный цикл когда ранаешь код... еще всякие правила как ифы обходить)
Alexander
И ещё немножко правил, и ещё чуть чуть, и вот капелюшечку
Dimchik
там конечно были немалое количество фолс позитивс, но это норм, в целом все работало) мне еще нравился наш редактор для этого всего, чтоб рулсет писать удобно было)
Dimchik
представь ты пишешь на экспрессе сервер и сервер возращает что-то что передал пользователь в реквесте без санити чекинга, такие кейсы можно было поймать легко)
Dimchik
представь ты говоришь что вот если это данные от пользователя... когда ранаете это валью на виртуалке присабачте "ЮЗЕР_ИНПУТ" флаг к этому валью и если вот каким-то образом ЮЗЕР_ИНПУТ валью войдет в сервер респонс res.send без санити чекинга --- это сесюрити уязвимость
Anvar
Я чето упустил в условии и мне кажется там какое-то противоречие
Anvar
в одном случае где 7 они не сортированы потому-что правый короче, но там где 2,3,4 c 4 - это условие не работает
Viktor
Viktor
То есть если получается их сравнить то это ранний выход
Viktor
Кстати, интересно, а если забить это описание из условия в chatGPT он напиши код? По идее должен.
Dimchik
не, нифига, gpt не такой умный, можно спать спокойно)
Dimchik
Dimchik
вот такое решение предлагает chatgpt для первой части которое приводит к rangeerror
Dimchik
chatgpt классный для писем, ревью всяких, где можно воды много лить и от этого будет только хорошо)
Dimchik
в кодинге лучше без воды 😎😆
Vilena
вэлком, Василика😀
Vilena
а кстати, @vitkarpov - как вообще зародилась идея этого чатика?
Sergei
Сюжет задачи интересный, но оказалось неожиданно просто для 14 дня
Sergei
хотя я решил вчера вечером решил таблетки которые прописали не принимать, потому что оказалось, что они когнитивную функцию снижают 🤣
Sergei
Я вчера и сегодня)
Sergei
Viktor
@Likita вот это гости, привет-привет! 🙂
Viktor
а кстати, @vitkarpov - как вообще зародилась идея этого чатика?
чатик изначально привязан к каналу https://t.me/ctci_chat_ru где я сперва вел текстовые разборы задач (теперь в архиве на гитхабе), потом стал писать всякую мурню про работу в фаанге когда там работал, а потом анонсировать стримы на ютубе. но изначально все началось с подготовки к собесам.
Viktor
Alexandr
сегодня даже условие на ранний выход из цикла не ставил, просто сразу for _ in range(100000): 😎
Viktor
автор там какие-то прямо прикольные штуки нарисовал 😄
Viktor
то есть у меня, по идее, эта бочка должна заполниться
Sergei
Надо тоже свой инпут визуализировать, а то я даже не в курсе что там)
Alex Azarov
хммм, про воду и бочки уже было https://adventofcode.com/2018/day/17
Alex Azarov
а вчерашняя задача похожа на https://adventofcode.com/2021/day/18
Alex Azarov
автор сам у себя списывает😅
Dzianis
Sergei
Viktor
мне интересно глянуть на редит потом, кто-нибудь наверняка сделает красивую визуализацию падающего песка
Viktor
Sergei
Sergei
Топ-2 тоже оказывается видео записывает сразу после, подробные с объяснениями https://www.youtube.com/watch?v=Uf_IF_3RbKw
Dimchik
Alexandr
Кстати, а кто как обычно решает такие задачи в плане структур данных? Строите матрицу str[][] или словарь, где (x, y) это ключ или может как-то еще?
Viktor
Viktor
думаю что матрицу тоже можно, но она будет сильно sparse
Viktor
не очень ясно зачем
Alexandr
да, согласен, наверное правило такое, что если границы сразу четко не заданы, то лучше в словаре или сете хранить 👍
Sergei
Alexandr
Dimchik
Решил тоже завизуализировать :)
Dimchik
Dimchik
Dimchik
Просто делал запись экрана, конверт в гифку, и лаги погошли
Viktor
ага, ясно. а чем рисовал?
Dimchik
Это p5.js
Viktor
Это p5.js
это прямо то, что нужно. а то я на скорую руку накидывают что-то в консоли, но это такой себе ASCII-арт получается 😄
Dimchik
https://github.com/StaffEngineer/adventofcode-2022/blob/main/day14/index.html
если этот файлик заранать с python3 -m http.server то можно на локалке посмотреть)