Вадим
делаю задачку у меня есть три воркера которые генерируют значения и передают их по каналу в другую горутину для вывода Вопрос в какой момент закрывать канал?
Vasilii
lol kek git  в каждый дом =)
Локальные облака гита в локальных куберах подерутся с глобальными облаками гита в глобальных кубернетах 😂
Danil
Всем привет, пытаюсь разобраться с указателями и возник вопрос. Зачем они вообще нужны если и без них все нормально отрабатывает?
Danil
пока не скажу насчет костыльно но при выполнении результат был одинаковый "Test"
Andrey
пока не скажу насчет костыльно но при выполнении результат был одинаковый "Test"
Ну давай подумаем. Есть вот два вопроса: 1) что будет быстрее работать, делать копию 1 объекта весом 100 КБ в 100 функции, или просто передать уже готовый 2) как уже сказали выше, как ты хочешь изменить поля структуры у оригинальной сущности, если это надо сделать на 6 функции в стэке вызовов
Danil
Такс я понял) нужно больше почитать про указатели
Yegor
Такс я понял) нужно больше почитать про указатели
Или валить на питон - там никаких указателей
Артем
Или валить на питон - там никаких указателей
Там ж вроде уже сразу все изначально указатель, не?)
Yegor
Почему Указатель а не Pointer?
Dmitrii
в питоне всё под капотом ссылка
Dmitrii
он и так интерпритатор, а если еще в памяти будет сущности копить...
Артем
в питоне всё под капотом ссылка
ну вот я про это же, там ж нет переменных как таковых, их называют просто так. По факту все ссылки на объекты)
Andrey
чем ссылка от указателя отличается?
Илья
чем ссылка от указателя отличается?
загугли "ссылка с++" и "указатель с++"
Dmitrii
неа
ну лан
Айрат
ну лан
не всё ссылка
Roman
Добрий день, подскажите как реализовать. Мне нужно вывести текст среднего размера, не хочу его помещать в main что бы не засорять код, куда его можно поместить и как вызвать в main?
Andrey
сам написал, буду дописывать от руки, не часто
Возможно ли хранить в файле? В main просто считать из файла и вывести. В этом случае даже код не придётся менять.
Andrey
к примеру файл text.txt?
Да, можно и так. Любой текстовый файл, в который удобно вносить изменения.
Andrey
Если можно тут давать ссылки, то вот простые примеры записи и чтения в/из файла https://metanit.com/go/tutorial/8.3.php
kostyaBro
не всё ссылка
Там вроде все значение или нет. Типо написал а=1 б=1 , у них одна ссылка, потом б=2 и это две ссылки
Артем
Всем привет. Кто может подсказать, почему при отправке запроса к авито (на страницу с объявами), она может отвечать тем, что забанила мне айпи или с ним какие то проблемы? Поясняю. На домашнем пк с динамическим айпи отправлял с большим таймаутом запросы, ожидаю, что придет статик хтмл. Приходит всегдс страница с проблемами айпи. Попробовал с дефолтным клиентом, потом с какой то либой с гита ( хттп клиент ). Не работает. Залил скрипт на cloud function ( aws lambda ) от яндекса, тоже самое. Купил впску у яндекса ( два раза поменял айпи у впски), тоже самое =) Самое интересное в том, что постман справляется даже с домашнего пк и скрипт на ноде(NodeJS), который делает гет запрос с либы axios тоже улетает стабильно всегда. Подскажите, пожалуйста, куда копать 🤯
Артем
вот такая
Не ну это
ну или дай прямую ссылку, я руками попробую (на вкус)
Артем
скопировал курл с браузера, юзнул тулзу curl-to-go, отправил. Потом ради интереса убрал все куки и хедеры, отправил голый запрос (с постмана) и все равно работало, поэтому решил хедерами не засорять. На ноде скрипт тоже без хдеров шлет.
Не ну это
так а куда стучишься то? На свои объявления?
Артем
извиняюсь за линк, но попросили - https://www.avito.ru/moskva?p=2&q=%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D1%8B
Артем
в q=...лежит кверя закодированная ("telefony")
Не ну это
db;e lf
Не ну это
вижу да
Артем
получилось?
Не ну это
А мне сразу бан на лицо падает
Не ну это
👍
Артем
дауж
Andrey
получилось?
У меня и с VPN, и без запрос прошёл 🧐 Заголовки пустые.
Артем
проходит
Артем
Артем
это у них защита какая-то стоит, да?)
Andrey
это у них защита какая-то стоит, да?)
Может стоять много защит, в т. ч. и количество запросов в единицу времени. Особенно для тех, что без заголовков ))
Не ну это
Но вообще, если тебе прям не часто нужно, на го, то попробуй хромдп
Aleks
К вопросу о тестовом задании для джуна, на парсинг авито, при этом не сообщая критерии срабатывания защиты и т.п. :) Джун гарипоттер. :)
Andrey
К вопросу о тестовом задании для джуна, на парсинг авито, при этом не сообщая критерии срабатывания защиты и т.п. :) Джун гарипоттер. :)
Возможно, никто не ждёт живых данных, чтобы сравнить цены )) Будут смотреть на саму реализацию, архитектуру, подход к задаче.
Aleks
Насколько знаю у Авито одна из самых сложных защит от парсинга.
Артем
да, неудивительно
Артем
просто меня смутило, что с разных клиентов по-разному улетает. Причем как-то стабильно все
Артем
с ноды и посмтана - да, с го - ни единого раза
Aleks
Возможно, никто не ждёт живых данных, чтобы сравнить цены )) Будут смотреть на саму реализацию, архитектуру, подход к задаче.
Не факт, может просто дурные или верят в сказку. Иначе нужно было не Авито писать а какой нибудь testapi.com...
Aleks
Причем идеальная защита от парсинга не скажет сразу что она сработала, но в данных будет мусор валидный с точки зрения типа данных. И потом ересь в базе парсерщика...
Roman
откуда у вас этот текст? его планируется менять, как часто надо будет менять?
возможно под него создать отдельный пакет где он будет храниться как переменные?
Andrey
возможно под него создать отдельный пакет где он будет храниться как переменные?
1. Да, возможен такой вариант. Тогда нужно будет импортировать пакет. 2. Возможно использовать большой кусок текста в этом же пакете, но в другом файле. К примеру, есть файл my_application.go пакета main, и файл big_text.go пакета main (оба файла должны быть в одной директории). Тогда во втором файле можно объявить переменную или константу с текстом и использовать её в функции main пакета main в 1-м файле.
Roman
go mod init надо сделать
да, и путь надо указывать на основе go mod init <name> , спасибо
Andrey
как похорошел го при собянине, а ареньше реально надо было gopath настраивать, потом были миллион пакетных менеджеров, каждый писал свой
Eugene
Ребзя, а сталкивался кто с парсингом выдачи гугла? Кеш и новости нормально плюс минус идут а вот выдача, чет очень туго вечно отстреливает Направьте на путь истенный куда копать
N
Ребят, всем 🖐, есть тут кто в fintech варится?
N
Было дело
Можно в ЛС?
kostyaBro
Можно в ЛС?
Сейчас впадлу
N
Сейчас впадлу
Не, я не просто так, по делу!!!
Sebor▂▅▇█▓▒░
Не, я не просто так, по делу!!!
Успешный стартапер?
N
Успешный стартапер?
Это не мой стартап! Есть задача и бюджет, вот пляшу во....круг него😉
anhckie
почему в консоли БД запрос выполняется, а через sql/database - нет? BEGIN; create table rows_to_keep select edh.* from exch_d_hist edh LEFT JOIN curr c ON c.id = edh.curr_id WHERE DATE_SUB(NOW(), INTERVAL 30 minute) <= edh.created_at; truncate table exch_d_hist; insert into exch_d_hist select * from rows_to_keep; drop table rows_to_keep; COMMIT; const ctasDelete = ` create table rows_to_keep select edh.* from exchange_data_history edh LEFT JOIN currencies c ON c.id = edh.currency_id WHERE DATE_SUB(NOW(), INTERVAL 30 minute) <= edh.created_at; truncate table exchange_data_history; insert into exchange_data_history select * from rows_to_keep; drop table rows_to_keep; ` func (q *CreateExchangeDataParams) CTAS() error { ctx := context.Background() tx, err := q.db.BeginTx(ctx, nil) if err != nil { fmt.Println(fmt.Sprintf("%#v", err)) return err } defer tx.Rollback() _, err = tx.ExecContext(ctx, ctasDelete) if err != nil { fmt.Println(fmt.Sprintf("%#v", err)) return err } if err = tx.Commit(); err != nil { fmt.Println(fmt.Sprintf("%#v", err)) return err } return nil }
anhckie
"Error happened at CTAS: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'truncate table exch_d_hist; insert into exch_d_hist select *' at line 1"}