
Slava
02.06.2018
09:26:16

Dmitry
02.06.2018
09:28:06

Slava
02.06.2018
09:29:54
Почему убогая?

Fastumkruk ✅
02.06.2018
09:30:31

Google

Dmitry
02.06.2018
09:31:44
как результат этой связаности ты не можешь свободно заменить парсер аргументов, не ?

Slava
02.06.2018
09:33:51
а зачем мне менять парсер аргументов, если я пользуюсь всей инфраструктурой внутренней и библиотеками?

Dmitry
02.06.2018
09:36:12

Slava
02.06.2018
09:38:03
сам пакет и гарантирует, но клиент тоже может проверять, конечно

Dmitry
02.06.2018
09:39:35

Slava
02.06.2018
09:39:57

Daniel
02.06.2018
09:39:57
коллега

Dmitry
02.06.2018
09:40:06
почему другой пакет это левый, а вот sflags - родной и правильный?

Slava
02.06.2018
09:40:28

Daniel
02.06.2018
09:40:30
мы все ответы, какие были у нас, вам выдали

Google

Roman
02.06.2018
09:40:46
https://flaviocopes.com/golang-does-not-support-indexing/ может кому будте полезно, угробил минут 15 на разбор почему после переписания на указателях перестало работать

Dmitry
02.06.2018
09:40:46

Daniel
02.06.2018
09:41:00
теперь вы можете сами решить, лучше ли он

Stanislav
02.06.2018
09:41:33

Dmitry
02.06.2018
09:41:35

Slava
02.06.2018
09:41:35

Dmitry
02.06.2018
09:42:53

Slava
02.06.2018
09:43:55
только так можно заработать миллиарды ^_^

Dmitry
02.06.2018
09:45:30

Stanislav
02.06.2018
09:46:51

Dmitry
02.06.2018
09:48:54

Daniel
02.06.2018
09:56:22
передать, конечно
не надо общий конфиг втаскивать в кишки
но!
правильно организованный конфиг будет состоять из структур, которые как раз и можно будет отправить в сервис

Dmitry
02.06.2018
10:04:09

Daniel
02.06.2018
10:04:42
Возможно
А, возможно, удобно указать инфу для парсера тегами

Kirill
02.06.2018
10:34:47

Daniel
02.06.2018
10:35:15
имя параметра, описание параметра

Google

Kirill
02.06.2018
10:35:19
Шорткат? Так если их на самом нижнем уровне задавать, могут со временем появиться конфликты
Я, конечно, не настоящий сварщик, а маску я на стройке нашёл, и сверхкрупные cli, возможно, и не делал, но всё же - смотря какую инфу там писать
Описание-то можно из коммента вычитать при желании

Maxim
02.06.2018
11:00:14

Fastumkruk ✅
02.06.2018
11:00:47


Maxim
02.06.2018
12:50:07
хорошо
Не знаю в чём у вас проблема. У меня кнопка спокойно тречится после клика
func main() {
bot, err := tg.New(accessToken)
errCheck(err)
for update := range bot.NewLongPollingChannel(nil) {
switch update.Type() {
case tg.UpdateMessage:
upd := update.Message
dlog.D(upd)
if !bot.IsCommandToMe(upd) {
continue
}
msg := tg.NewMessage(upd.Chat.ID, "hello world")
msg.ReplyMarkup = tg.NewInlineKeyboardMarkup(
tg.NewInlineKeyboardRow(
tg.NewInlineKeyboardButton("click me!", "super secret"),
),
)
bot.SendMessage(msg)
case tg.UpdateCallbackQuery:
upd := update.CallbackQuery
dlog.D(upd)
default:
dlog.D(update)
}
}
}
func main() {
bot, err := tg.New(accessToken)
errCheck(err)
for update := range bot.NewLongPollingChannel(nil) {
switch update.Type() {
case tg.UpdateMessage:
upd := update.Message
dlog.D(upd)
if !bot.IsCommandToMe(upd) {
continue
}
msg := tg.NewMessage(upd.Chat.ID, "hello world")
msg.ReplyMarkup = tg.NewInlineKeyboardMarkup(
tg.NewInlineKeyboardRow(
tg.NewInlineKeyboardButton("click me!", "super secret"),
),
)
bot.SendMessage(msg)
case tg.UpdateCallbackQuery:
upd := update.CallbackQuery
dlog.D(upd)
default:
dlog.D(update)
}
}
}
ID: (string) (len=18) "1234567890",
InlineMessageID: (string) "",
ChatInstance: (string) (len=20) "-1234567890",
Data: (string) (len=12) "super secret",
GameShortName: (string) "",
From: (*telegram.User)(0xc4201a13b0)({
ID: (int) 1234567890,
IsBot: (bool) false,
FirstName: (string) (len=5) "Maxim",
LastName: (string) (len=7) "Lebedev",
Username: (string) (len=6) "toby3d",
LanguageCode: (string) (len=2) "ru"
}),
Message: (*telegram.Message)(0xc4203e0380)({
ID: (int) 1488,
ForwardFromMessageID: (int) 0,
From: (*telegram.User)(0xc4201a1400)({
ID: (int) 1234567890,
IsBot: (bool) true,
FirstName: (string) (len=32) "Давай до свидания",
LastName: (string) "",
Username: (string) (len=12) "toby3d_robot",
LanguageCode: (string) ""
}),
ForwardFrom: (*telegram.User)(<nil>),
LeftChatMember: (*telegram.User)(<nil>),
Date: (int64) 1527943720,
ForwardDate: (int64) 0,
EditDate: (int64) 0,
MigrateToChatID: (int64) 0,
MigrateFromChatID: (int64) 0,
Chat: (*telegram.Chat)(0xc42029c960)({
ID: (int64) 1234567890,
Type: (string) (len=7) "private",
Title: (string) "",
Username: (string) (len=6) "toby3d",
FirstName: (string) (len=5) "Maxim",
LastName: (string) (len=7) "Lebedev",
Description: (string) "",
InviteLink: (string) "",
StickerSetName: (string) "",
AllMembersAreAdministrators: (bool) false,
CanSetStickerSet: (bool) false,
Photo: (*telegram.ChatPhoto)(<nil>),
PinnedMessage: (*telegram.Message)(<nil>)
}),
...
И даже что-то делать могу на её основе:
...
case tg.UpdateCallbackQuery:
upd := update.CallbackQuery
dlog.D(upd)
ans := tg.NewAnswerCallbackQuery(upd.ID)
ans.Text = "sosi pisos"
bot.AnswerCallbackQuery(ans)
Более того, режим inline mode в папаботе не влияет на работу кнопок. Только на режим поиска в поле ввода


Fastumkruk ✅
02.06.2018
13:16:58

The
02.06.2018
17:52:28
Друзья, кто юзал либу tealeg/xlsx, можете подкинуть идей? Пишу в файл хидер (заголовок таблицы) - все ок. Начинаю писать ниже - и ничего не пишеться. Что за хрень может быть? Кто-то может сталкивался?

The
02.06.2018
17:54:40
Причем есть метод WriteHeader(), в нем пишется хидер, есть метод Save() который сохраняет таблицу, если в нем вызвать x.sheet.Cell(10, 2).Value = "TEST", то в таблицу запишет тест.
а вот метод AddPosition у моей структуры вообще ничего не хочет писать. Дебагером ловлю брейкпойнты, все вызывается, значения все ок, но в тупую ничего не пишет.

Dmitry
02.06.2018
18:02:31

The
02.06.2018
18:03:08
не, AddPosition это метод моей структурки, внутри которой есть *xlsx.File и *xlsx.Sheet
Я уже даже написал метод FillDemoData, и оттуда тоже ничего не пишет.

Dmitry
02.06.2018
18:05:13
1 вариант : ты пишешь не туда . 2 вариант: ты пишешь рано или поздно
3 вариант - это баг, но он маловероятен в репе с 2к звездочками

The
02.06.2018
18:08:36
да это мой ебак скорее всего, потому что:
у меня есть 4 метода:
1. RegisterSuppliers([]string) - регистрирует поставщиков (шапка файла), тут все ок, они записываются
2. AddPosition(Sku) - записывает артикул в ячейку (отсюда ни одна запись не происходит)
3. AddDemoData() - написал для дебага, отсюда тоже ни одна запись не попадает
4. Save() - сохраняет файл, отсюда вся запись происходит нормально. Все методы определены через pointer reciever.
2 метод пробывал в тупую писать "TEST", ни в одну ячейку ничего не попало

Google

The
02.06.2018
18:09:15
асинхронщины тут нет
т.е., вариант 1: я пишу не туда. но как это может быть - ума не приложу.
func (x *XlsxWriter) AddPosition(sku Sku) error {
for row := 0; row < 10; row++ {
for col := 0; col < 100; col++ {
x.sheet.Cell(row, col).Value = "test value"
}
}
return nil
}
вот в тупую итерируюсь по ячейкам и пишу везде один и тот же текст: "test value"
а вот файл: https://i.imgur.com/qKFsWhQ.png
а сейчас, ради прикола скопирую цикл в RegisterSuppliers
https://i.imgur.com/DRcrLqy.png
ну что за дичь то, а?

Admin
ERROR: S client not available

The
02.06.2018
18:15:38
func (x *XlsxWriter) RegisterSuppliers(suppliers []string) error {
for row := 0; row < 10; row++ {
for col := 0; col < 100; col++ {
x.sheet.Cell(row, col).Value = "test value"
}
}
return nil
}
перенес цикл в метод Save(), видно даже что стили сохранились от RegisterSupplier(): https://i.imgur.com/cDDvZjw.png

Dmitry
02.06.2018
18:17:48
ну значит ищи между вызовами этих двух функций
Register и AddPosition
такое чувство что у тебя задвоился xlsxwriter где то

The
02.06.2018
18:20:54
вот смотри, три вызова, одинаковые до безобразия:
1. RegisterSupplier() - пишет в первый столбец
2. AddPosition() - во второй столбец
3. Save() - в третий столбец
https://i.imgur.com/jDAGkdm.png
вот тестовый метод: https://pastebin.com/raw/wadr59se

Dmitry
02.06.2018
18:22:09
ну значит не в методах проблема а в данных что в них передаются

The
02.06.2018
18:22:33
ну как в данных-то? методы тупо одинаковые.
сам интерфейс, хз чем он может помочь правда:
type ParsingResultWriter interface {
RegisterSuppliers(suppliers []string) error
AddPosition(sku Sku) error
Save(name string) error
}
я уже вышвырнул из методов всю логику, оставил тупо запись в разные столбцы, для дебага

Google

The
02.06.2018
18:23:45
блядь, я дебил
я же дергаю в тесте сохранение раньше
всем спасибо за помощь

Slava
02.06.2018
21:46:14
никто не хочет в посёлок программистов на поучиться программированию на свежем воздухе? http://hutorium.ru/

Alan
02.06.2018
21:48:38
Там написано, что для детей)

Slava
02.06.2018
21:48:47
а так же их родителей =)

Александр
02.06.2018
21:49:48
а можно я поеду и буду умничать с задней парты?
ну позязя
/me готовит плакаты "ООП для лохов" "вы не знаете на что подписались"
еще пару истории для "у костра" в стиле "1 ночь для выкладки и допила в прод" ?

Slava
02.06.2018
21:58:11
ну если не боишься опростоволоситься перед школьниками
а то дети умные нынче пошли

Александр
02.06.2018
22:11:59
стандартное заблуждение

Антон
02.06.2018
22:51:05

Dmitry
02.06.2018
23:35:47
неужто менеджеры слова continous integration не знают ?