@gogolang

Страница 483 из 1630
Daniel
29.08.2017
11:10:50
"здравствуйте, меня зовут Васлий. и я 15 лет программировал на ПХП" - "здравствуй, Василий"

Ассоциативный массив - самое неправильное название хешмапа
технически - самое правильное, потому что не каждый ассоциативный массив - хешмап

Alexander
29.08.2017
11:12:48
так, не отвлекаемся

есть мап, произвольной длинны, надо собрать INSERT INTO (?,?...?) VALUES(?,?...?)

Google
Mush
29.08.2017
11:14:48
Ассоциативный массив - самое неправильное название хешмапа
как-то н лет назад был я на пхп собесе как испытуемый. господа спрашивали меня про внутреннее устройство типов на пхп. я робко сказал “там все структуры - это нечто вокруг внутреннего типа zval” (вроде так там эта структура в пхп исходниках называется). Господа встрепенулись - как же ты не знаешь хешмап? Это же ассоциативный массив пхп! были уверены что ассоциативный массив это прямо таки хешмапа внутри. и соотв порядок ключей там не хранится. прямо с пеной у рта говорили что это так и очень удивились когда порядок ключе в ассоциативном пхп массиве соответствовал порядку их добавления.

Alexander
29.08.2017
11:14:57
squirrel уже смотрю, спасибо

Daniel
29.08.2017
11:17:05
технически - самое правильное, потому что не каждый ассоциативный массив - хешмап
но, фактически, можно употреблять слова "лист", "мэп" и "сэт"

Alexander
29.08.2017
11:19:22
есть у белки Insert("users").Columns("name", "age") , но не вижу, чтобы можно было сделать Insert("users").Columns(my_map)

Ivan
29.08.2017
11:20:05
это го

Daniel
29.08.2017
11:20:08
есть мап, произвольной длинны, надо собрать INSERT INTO (?,?...?) VALUES(?,?...?)
такого синтаксиса не поддерживает ни одна база

Ivan
29.08.2017
11:20:09
нету магии тут

Alexander
29.08.2017
11:22:20
такого синтаксиса не поддерживает ни одна база
так только? INSERT INTO (field1, field2...fieldN) VALUES(?,?...?)

Andrew
29.08.2017
11:22:38
Alexander
29.08.2017
11:27:28
а я смогу передать в функцию .Exec(), которая принимает разное количество переменных, передать несколько параметров из мапы?

если никто не понял, то как вместо args ...interface{} запихнуть массив?

Daniel
29.08.2017
11:28:47
array...

Google
Kirill
29.08.2017
11:29:30
А мапу - нет

Daniel
29.08.2017
11:31:18
jib,jxrf

вот так правильно: func makeQuery(table string, myMap map[string]interface{}) (string, []interface{}) { keys := make([]string, 0, len(myMap)) vals := make([]interface{}, 0, len(myMap)) for key, val := range myMap { keys = append(keys, key) vals = append(vals, val) } placeholders := strings.Repeat("?,", len(keys)) return fmt.Sprintf( "INSERT INTO %s (%s) VALUES(%s)", table, strings.Join(keys, ", "), placeholders[:len(placeholders)-1], ), vals }

Daniel
29.08.2017
11:35:57
а я не говорил, что так надо делать :)

Konstantin
29.08.2017
11:58:43
да мапу валидатором обработать и пойдет)

Daniel
29.08.2017
11:58:57
нет

реально - нет

динамический запрос, основанный на внешних данных - это путь прямо в ад

Konstantin
29.08.2017
12:00:57
построитель запросов не отвечает за данные)

Mikalai
29.08.2017
12:01:04
А вообще какой в этом смысл, список колонок в таблице обычно ведь редко меняется

Daniel
29.08.2017
12:01:58
да коллега не может от php отвыкнуть, хочет написать себе нанопхп

Konstantin
29.08.2017
12:02:28
короче если это все написать в vim то все ок будет ?

ну а если в gogland preview edition. то все отвественность на тебе))

это я сегодня набрался, извините)

Kirill
29.08.2017
12:06:13
Ловите наркомана!

Sergey
29.08.2017
12:07:14
Вообще, если прогаешь в vim, то там по-умолчанию всегда хорошо получается!

Roman ?
29.08.2017
12:08:02
Особенно бибикать и все ломать ?

Givi
29.08.2017
12:11:43
Тааак....

Google
Konstantin
29.08.2017
12:19:43
panic()

Andrew
29.08.2017
12:27:09
panic()
main.go:1: missing argument to panic

Konstantin
29.08.2017
12:27:39
?

https://highloadcup.ru/rating/ никто тут не участвует? что-то гошники отстают немножко, нужно прибавить)

Egor
29.08.2017
13:49:30
народ всем привет затык слушаю на go проксированный трафик через порт, хочу распарсить то что приходит на порт, читаю всё в []bytes виде, при простом конверте в стрингу приведением типов выходит шляпа по идее там типичные HTTP. как можно это сделать без геморроя?

Irek
29.08.2017
13:50:35
может быть шифрованный трафик?

Egor
29.08.2017
13:51:30
нет, сервер мой и обработка респонса тоже. я по сути стою в середине там всё странного вида с аски символами, среди спецсимволов нужный текст который в нормальном UTF-8



Egor
29.08.2017
13:52:59
хочу распарсить ответ []bytes который видно на скрине в структуру

если чето такое можно вертеть через bufio/url/http модули, то наставьте куда копать хотя бы)

Siarhei
29.08.2017
13:55:28
у тебя там еще на странице лишнее печатается?

а дальше https://github.com/PuerkitoBio/goquery

если я правильно понял

Egor
29.08.2017
13:56:03
у тебя там еще на странице лишнее печатается?
м? пэйдж возвращается в браузер полностью корректным

если об этом речь

Siarhei
29.08.2017
13:56:19
хм...

Google
Irek
29.08.2017
13:56:41
Siarhei
29.08.2017
13:56:52
а DOCUMENT_ROOT и прочие прелести? откуда они берутся?

на какой-то var_dump похоже

Egor
29.08.2017
13:57:11
схема req —> nginx —> go_tool —> php-fpm —> page.php

go_tool я принимаю запрос по сокету в виде []bytes, вывожу его, хатем передаю в php-fpm

xPushkin
29.08.2017
13:58:02
схема req —> nginx —> go_tool —> php-fpm —> page.php
Простите, а зачем сюда намешали php?

Siarhei
29.08.2017
13:58:09
я вот тоже не пойму

либо одно, либо другое уже

Egor
29.08.2017
13:58:24
Простите, а зачем сюда намешали php?
тут есть своя задумка, в данной задаче оно нужно

Admin
ERROR: S client not available

xPushkin
29.08.2017
13:58:43
Irek
29.08.2017
13:58:56
и nginx зачем в вашем случае? )

Egor
29.08.2017
13:59:56
могу заверить, на рабочеспособность не влияет никак - оно работает) просто не могу структурировать данные из []bytes

Irek
29.08.2017
14:00:42
что-то мне подсказывает, что вашу картину nginx портит. Уверены, что он проксирует корректные данные?

Aleksandr
29.08.2017
14:00:43
тут есть своя задумка, в данной задаче оно нужно
у тебя там не просто html, а какая то пуергень. распечаптанный $_SERVER, какуие-то сигналы внизу. это не от го

Egor
29.08.2017
14:02:52
нее.. входная точка - в сокете лежит проксированный nginx-ом запрос я его читаю в []bytes через .Read() и мне приходит то что выше можно посмотреть

по факту там лежит HTTP запрос в виде []bytes и респонс на него в том же виде

задача привести в страктовый вид и разбить хэдеры, бади и тд

Aleksandr
29.08.2017
14:04:01
по факту там лежит HTTP запрос в виде []bytes и респонс на него в том же виде
ок. какой формат этого проксированного запроса/ответа? мы не знаем

Google
Egor
29.08.2017
14:04:20
может быть любым - ограничивается только HTTP протоколом

Aleksandr
29.08.2017
14:04:34
ты хранишь в каком-то неведомом формате. просишь нас помочь тебе распарсить этот неведомый формат. мы не знаем формат. ты знаешь?

Dmitriy
29.08.2017
14:06:07
Привет! Ребят, сможете подсказать? Использую protobuf через grpc. Задался вопросом как идентифицировать сессию клиента между запросами, пока что только в голове решение – token прописать в каждом request message Есть ли у кого-нибудь другое решение?

Egor
29.08.2017
14:06:10
кто-то кладет в сокет. кто кладет?
nginx через фичу проксирования





вопрос как этот хлам с кривой аски превращать в структуру по полям конкретным?

Egor
29.08.2017
14:08:45
как бы вот

Irek
29.08.2017
14:08:53
Заголовки из nginx должны через x-forwarder передаваться

Включено у тебя?

Egor
29.08.2017
14:09:07
угу

Irek
29.08.2017
14:10:33
мне важен не только заголовок
Вообщем смотри nginx, косяк там

Aleksandr
29.08.2017
14:11:54
как бы вот
на последнем скрине видно, что это контрольные символы, а сам текст заголовков и тела корректен в общем-то. опять же это не http, который тебе известен, а попытка хранения nginx запроса-ответа (запроса кстати на скринах я не вижу - только ответ и серверные переменные)

в общем это какая0то nginx-фича, с которой тебе надо разбираться самому, и в целом, кажется, по твоему описанию, это не то что тебе нужно

вот как выглядит http-request в том http, который мы знаем: GET / Host: [host] User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0 это не то, что на твоих скринах

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