@gogolang

Страница 1295 из 1630
Алексей
15.08.2018
19:06:55
А defer?
Хмммм.... Можно... Про него я не подумал...

Google
Kirill
15.08.2018
19:10:16
А сегодняшний представитель Омска - лицо компании ООО "Капитан Очевидность" — @zelenin

Илья
15.08.2018
21:51:40
Доброго времени сутокт. Уважаемые знатоки подскажите пожалуйста в чем я ошибся... Есть метод который запускает две goroutine, по окончании которых я хочу удалить объект из массива подобных объектов. Но каждый метод является бесконечным циклом... func (client *Client) Listen() { var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() client.listenWrite() }() go func() { defer wg.Done() client.listenRead() }() wg.Wait() fmt.Printf("Listen у клиента %d работу закончил", client.id) AppServer.DelClient(client) } func (client *Client) listenWrite() { for { select { case <-client.doneCh: fmt.Println("BBBBBBBBBBBB") client.doneCh <- true fmt.Printf("listenWrite у клиента %d работу закончил", client.id) return } } } func (client *Client) listenRead() { for { select { case <-client.doneCh: fmt.Println("AAAAAAAAAAAA") client.doneCh <- true fmt.Printf("listenRead у клиента %d работу закончил", client.id) return } } } В определенный момент происходит запись в канал: client.doneCh <- true Но из всех принтов выводится только BBBBBBBBBBBB И горутина не заканчивает работу... если закомментировать client.doneCh <- true в горутинах то отрабатывает только listenWrite и вроде как завершается, тогда не понимаю как зыкрыть вторую горутину... Единственное что приходит в голову это на каждую горутину создавать по своему каналу для закртия... но решение не очень нравится... может есть методика закрыть все горутины через один канал?
Context with cancel, может подойти

Alexander
16.08.2018
03:12:10
Забавно, немного unsound, хотя можно понять почему так.

Janserik
16.08.2018
07:45:58
всем привет! как в mgo.v2 искать слово по всей коллекции?

Denis
16.08.2018
07:48:42
регуляркой или https://docs.mongodb.com/manual/core/index-text/

Alexander
16.08.2018
08:34:47
Коллеги, что бы такого почитать о том, когда использовать ссылку на структуру, а когда структуру в методе? func (r *rect) area1() int { return r.width * r.height } func (r rect) area2() int { return r.width * r.height }

Alexander
16.08.2018
08:37:08
@Am1rkin Спасибо!

Pawel
16.08.2018
08:47:24
Забавно, немного unsound, хотя можно понять почему так.
мотому что ацтой этот твой хаскиль

Pawel
16.08.2018
08:50:38
Есть у меня функция которая худо бедно конвертит UTF8 строки в швиндовый 1251. На символах типа ₄ или ∑ она предсказуемо валится. Есть ли какой то способ понять что в строке символ не кастуемый в 1251 ?

цикл по рунам, в нём каждую руну скармливать функции преобразования из UTF8 в 1251 и проверять ошибку преобразования?

Dmitry
16.08.2018
08:54:35
Google
Pawel
16.08.2018
08:56:40
я эту либу и юзаю примерно так. но мне надо находит невалидные руны и чем-то разумных их заменять, хоть знаком воароса , и возвращать строку сконверченную в любом случае

Dmitry
16.08.2018
08:57:31
А вы смотрели в err ? там нету служебной инфы?

Pawel
16.08.2018
08:59:47
там - encoding: rune not supported by encoding. и всё. Какая именно руна - сие не ведомо

Dmitry
16.08.2018
09:03:05


я так полагаю что эта ошибка вываливается

и она содержит байт

err.(RepertoireError).Replacement()

Pawel
16.08.2018
09:11:35
Lesha
16.08.2018
09:49:51
Возник вопросик. У меня есть N запущенных гошных аппликух. Каждое работает с одним ядром. Я выставляю GOMAXPROC=1 и через taskset назначаю ядро проца. Вопрос в следующем, есть ли такая возможность, выделить каждой аппликухе по два ядра, но что бы первое у всех было свое, а второе общее для всех N? И горутины по этим ядрам раскидывать? Или я губу раскатал слишком сильно?

Daniel
16.08.2018
09:54:00
нет, ничего такого сделать нельзя

но - зачем это вам?

Lesha
16.08.2018
09:55:04
у меня в одном процессе есть горутина которая жрет много cpu, а есть которая работает с io. так вот горутины которые работают с io почему-то иногда тупят и по таймеру не вовремя запускаются.

ну условно воркер и координатор воркер - cpu, координатор io.

Lesha
16.08.2018
09:56:06
после каждой итераци??

Vadim
16.08.2018
09:56:14
Угу

Попробуйте

Daniel
16.08.2018
09:56:28
Vadim
16.08.2018
09:56:38
Будет красота)

Daniel
16.08.2018
09:56:55
а я бы cpu intensive вынес бы в отдельный сервис

Google
Lesha
16.08.2018
09:57:09
Вот так? > runtime.Gosched()

Daniel
16.08.2018
09:57:45
да

Lesha
16.08.2018
09:59:56
о действительно кул! Таким образом я даю гарантию, что горутина с ожиданием io будет чекать все вовремя.

спасибо

Vadim
16.08.2018
10:01:15
?

Aleksey
16.08.2018
11:24:42
Чятик, подскажи либу для vk? А то чот их много и половина брошена, а полвина не умеет того, что надо. Собсно, нужно получить список постов на стене и получать/удалять/изменять посты.

Aleksandr
16.08.2018
11:26:34
Любой клиент бери который голые запросы шлет

Полноценных обвязок нет

Aleksey
16.08.2018
11:27:01
Я ленив. И лучше я допишу, чем напишу с нуля

Aleksandr
16.08.2018
11:27:35
Про то и говорю

Не http клиент, а vk клиент

Aleksey
16.08.2018
11:28:20
Ну дык. Есть чо не брошеное, чтоб pr замержили?

Aleksandr
16.08.2018
11:29:42
Я искал, ничего не видел. Все очень низкого качества. Взял первый попавшийся, умеющий авторизовываться

Aleksandr
16.08.2018
11:33:02
Не дописывал

Aleksey
16.08.2018
11:34:01
Окей. Я тебя услышал. Хочу ещё мнений

Vladimir
16.08.2018
11:36:44
Aleksandr
16.08.2018
11:55:11
да и обсуждать нечего. vk в поиск на гитхабе, фильтр по языку, сортировка по звездочкам, открываем первые 10, убеждаемся что ничего в этом нет

Lesha
16.08.2018
11:57:09
уже сделал, там по большей части брошено всё
больше, по сути-то, не где искать

Google
Aleksey
16.08.2018
11:58:47
Эт понятно. Но вдруг тут есть автор одного из трупов и он готов принять pr, например. Или кто-то знает что-то, что не лежит на поверхности. Всяко тут профильный чят на 1.5к человеков, а социалка самая популярная в рф (и снг?), есть шанс

Lesha
16.08.2018
11:59:47
по своему опыту скажу, что брал для вк библиотеку, и допиливал под свои нужды, ломая обратную совместимость. Выкладывать нет смысла такое

напишите issue с вопросом прямо в репозиторий. мол, если допилю, смержите?

Aleksey
16.08.2018
12:01:07
Да там почти у всех реп висит по пр уже больше года, тут и ишью не надо

Artem
16.08.2018
12:01:17
делал сам для себя как раз что б дергать постики

Aleksey
16.08.2018
12:01:44
Мех. Пойду писать парсер для официальной доки, пусть либа сама напишется. Опять жи, полезный опыт :)

Admin
ERROR: S client not available

Artem
16.08.2018
12:01:59
там вроде сваггер, не?

Aleksandr
16.08.2018
12:08:14
а сваггер покрывает кейсы, когда возвращается массив, первый элемент которого int (count), а последующие - объекты? [10, {...},{...}]

апи вк проектировал не очень хороший человек

Aleksandr
16.08.2018
12:30:05
не видел такого в основном апи, там count и value возвращаются
Все списки возвращаются в новом формате, в виде объекта с полями count и items. https://vk.com/dev/version5

только в 5-й версии исправили

а это совсем недавно

Artem
16.08.2018
12:31:38
год назад?

Aleksandr
16.08.2018
12:35:56
что-то около того

можно в доке поиграться, версию 4.* выставить и посмотреть формат респонса

Artem
16.08.2018
14:22:39
а есть возможность сбилдить валидный ast.File в рантайме и заиспользовать его там же (минуя запись в файл и вызов go build ...)?

Google
Artem
16.08.2018
14:27:35
so we use temporary file to achieve that. ясно понятно

Artem
16.08.2018
14:37:27
ну типо есть же плагины

pkg/plugin

Dk
16.08.2018
14:40:21
Подскажите, пожалуйста, как сравнивать слайсы и можно мне немного критики по качеству кода? https://play.golang.org/p/lSl-3cc8vgz Это задание https://go-tour-ru-ru.appspot.com/concurrency/8

Dk
16.08.2018
14:49:24
В задаче сказано, что вернёт дерево из 10 элементов? Не придумал как break сделать (думал через close, но не додумался)

Илья
16.08.2018
14:49:54
в main нужно читать канал, а не в same

Dk
16.08.2018
14:50:43
А зачем тогда Same принимает два дерева и возвращает bool?

Илья
16.08.2018
14:53:08
хем, вообще я не прав, в дереве этом всегда 10 элементов, но для реализации функции можно об этом не думать

Dk
16.08.2018
14:54:09
Поэтому и попросил code review. tr1, tr2 - тоже режут глаз

Илья
16.08.2018
14:55:55
причем тут code review что у вас в same происходит? почему канала 2, walk запущен 1 раз, и не из входящего дерева, а из заного созданого? зачем там слайсы?

V
16.08.2018
14:55:57
не компилируется - чем не код ревью? ?

Dk
16.08.2018
14:57:20
https://play.golang.org/p/IzSAtrhNjsj Отвечаю по порядку. Чтобы скомпилировалось - надо сравнить слайсы. Слайсы использую - потому, что ещё нет опыта в выборе правильной структуры, прошу подсказать. walk запустил 2 раза ^

Страница 1295 из 1630