
Alexander
03.08.2018
09:27:20
let a = vec![1, 2, 3, 4, 5, -20];
let min = vec.iter().min();

Lesha
03.08.2018
09:27:33
на таких данных:
rand.Perm(100000)
и это ожидаемо. в первом случае ты просто итерируешься по сласу, во втором у тебя еще проверка лишняя и получение элемента по индексу

Kirill
03.08.2018
09:41:55

Google

Lesha
03.08.2018
09:45:19
а Half ваш случай:
for i, v := range ints {
if i >= len(ints)/2+1 {
break
}
if v < min {
min = v
}
if mirrorV := ints[len(ints)-i-1]; mirrorV < min {
min = mirrorV
}
}

Tigran
03.08.2018
09:46:16

Alexander
03.08.2018
09:46:57

Kirill
03.08.2018
09:47:34

Sergey
03.08.2018
09:47:56
for i := 0; i < len(...); ... { ... }
и т.д.

Kirill
03.08.2018
09:48:37

Sergey
03.08.2018
09:48:59
это было сокращение на len(collection)

Kirill
03.08.2018
09:49:44

Lesha
03.08.2018
09:49:59

Kirill
03.08.2018
09:50:03
Как вам функция math()? :)

Google

Alexander
03.08.2018
09:50:50
тогда по индексу
тогда наверное все стоит по индексу писать, ибо одниковые с точностью до типа алгоритма должны быть записаны одинаково, а желательно вообще сгенерированы

Sergey
03.08.2018
09:51:10

Andrey
03.08.2018
09:51:16
ммм, кодогенерация

Kirill
03.08.2018
09:51:21

Andrey
03.08.2018
09:51:23
это запах опасности

Kirill
03.08.2018
09:51:56

Olzhas
03.08.2018
09:52:38

Lesha
03.08.2018
09:53:14
var s = rand.Perm(100000)
func BenchmarkMinInt(b *testing.B) {
for n := 0; n < b.N; n++ {
MinInt(s)
}
}
func BenchmarkMinIntHalf(b *testing.B) {
for n := 0; n < b.N; n++ {
MinIntHalf(s)
}
}

Alexander
03.08.2018
09:53:54

Lesha
03.08.2018
09:58:31
l := len(ints)
v := 0
for i := 0; i < l; i++ {
v = ints[i]
if v < min {
min = v
}
}
VS
l := len(ints)
lHalf := l/2 + 1
v := 0
for i := 0; i < lHalf; i++ {
v = ints[i]
if v < min {
min = v
}
if mirrorV := ints[l-i-1]; mirrorV < min {
min = mirrorV
}
}
BenchmarkMinInt-4 30000 61284 ns/op
BenchmarkMinIntHalf-4 20000 77583 ns/op

Artem
03.08.2018
09:59:41
а вот такое чюдо, выдает быстрее
func minHalfDevide(ints []int) int {
l := len(ints)
lHalf := l/2 + 1
a := minInt(ints[:lHalf])
b := minInt(ints[lHalf:])
if a < b {
return a
}
return b
}
BenchmarkMin-4 200000 6350 ns/op
BenchmarkMinHalf-4 200000 11031 ns/op
BenchmarkMinHalfDev-4 200000 5965 ns/op

Alexandr
03.08.2018
10:02:05
коллеги, подскажите, пожалуйста, как на gin-gonic сделать регистрацию длля сайта? логин пароль, хеши, куки, вот это всё. Есть ли какой-то готовый пакет?
имею ввиду нормальную регистрацию и аутентификацию, не basicauth

Artem
03.08.2018
10:04:39
а первые ссылки в гугле не подошли?

Alexandr
03.08.2018
10:05:26
я вообще ни одной не нашёл. Везде только аутентификация

Lesha
03.08.2018
10:05:43
BenchmarkMinInt-4 20000 60241 ns/op
BenchmarkMinIntHalf-4 20000 76567 ns/op
BenchmarkMinHalfDevide-4 20000 62515 ns/op
BenchmarkMinHalfDevideParallel-4 50000 39124 ns/op
func MinHalfDevideParallel(ints []int, wg *sync.WaitGroup) int {
l := len(ints)
lHalf := l/2 + 1
wg.Add(2)
a := 0
go func() {
a = MinInt(ints[:lHalf])
wg.Done()
}()
b := 0
go func() {
b = MinInt(ints[:lHalf])
wg.Done()
}()
wg.Wait()
if a < b {
return a
}
return b
}
хах

Google

Tigran
03.08.2018
10:06:00
хватит анроллить циклы, ироды

Artem
03.08.2018
10:06:26

Alexandr
03.08.2018
10:06:38

Artem
03.08.2018
10:07:10
и хранить у юзера всякое можно
слишком астрактно для готовой либы, особенно на го

Alexandr
03.08.2018
10:07:53
почему абстрактно?
стандартный функционал который есть в любом php-фреймворке

Александр
03.08.2018
11:54:16
все привет, кто работал с гоботом на малине?
может вкурсе кто, можно ли запустить 2 проги использующие гобот на малине
проги будут использовать разные пины

Zver
03.08.2018
12:09:47

03.08.2018
12:59:03
как получить разницу в миллисекундах между двумя промежутками времени?

Aleksandr
03.08.2018
12:59:46

Zver
03.08.2018
13:00:18

Alexei
03.08.2018
13:00:48

03.08.2018
13:05:56
а понятно
мне надо было сделать truncate чтобы в мс перевести

Alexey
03.08.2018
13:42:26
Всем привет! Надеюсь я в тему. Есть предложение для разработчиков/начинающих стартаперов.
Я – senior дизайнер по enterprise/SaaS/веб/мобилки.
Сейчас нахожусь в активном поиске работы уже несколько месяцев, потому что мне постоянно то компания, то проекты не подходят. Но я не могу не заниматься дизайном и простаивать. Я делаю или бесплатно или очень дорого. Поэтому предложение:
Готов бесплатно выделять +-8 часов в неделю на разработку вашего продукта, начиная от полного проектирования по бизнес-процессам/идеям и заканчивая hi-fi мокапами. Вы разработчик, который хочет сделать проект для портфолио с крутым дизайном? Пишите мне. Вы стартапер, у которого нет бюджета на хороший дизайн? Пишите мне.
С вас какие-то гарантии, что проект будет в продакшене и отсутствие NDA.


Alexandr
03.08.2018
15:11:58
Ребята подскажите а есть какой-нибудь способ струкруту сохранять в бд? Если в структуре все поля соответствуют таблице (кроме id) ?
сейчас делаю так:
db.Exec("INSERT INTO mytable(param1, param2) VALUES($1,$2);", myStruct.Field1, myStruct.Field2)
или есть какой-то способ сразу вставлять?

Илья
03.08.2018
15:12:57
https://github.com/jmoiron/sqlx

Google

Илья
03.08.2018
15:13:14
NamedQuery

Alexandr
03.08.2018
15:13:55
спасибо
но я так понимаю что проще оставить как есть

Aleksandr
03.08.2018
15:17:21

Alexandr
03.08.2018
15:20:27
если ты не хотел того, о чем спросил, то да.
хотел то хотел, вопрос в соотношении эффективности вариантов и что я получаю в результате применения предложенного.
Вообще я думал может штатный способ какой-то есть какой мне не известен. Но раз нет, то на мой взгляд, мне на мой простой случай смысла не имеет это натягивать. Вы не согласны?

Aleksandr
03.08.2018
15:23:02
если у тебя запрос один, то да. а так имеет смысл sqlx по умолчанию использовать

Admin
ERROR: S client not available

Alexandr
03.08.2018
15:23:58
спасибо .

Kirill
03.08.2018
23:02:04
с beta3, поцоны

Аркадий
03.08.2018
23:22:31

Zaur
03.08.2018
23:33:18

Аркадий
03.08.2018
23:33:46
Так гораздо понятней, спасибо

Zaur
03.08.2018
23:34:19
Обращайся

Kirill
04.08.2018
00:10:43

Aleksandr
04.08.2018
06:11:16
не нацдена запись

Алексей
04.08.2018
13:14:41
добрый день

Vadim
04.08.2018
13:53:26
https://play.golang.org/p/V2sQWICuuEz
Нужна помощь
Ибо в документации ничего не объясняется, а в issue полярные ответа(все не работают)

Daniel
04.08.2018
13:55:35
компилятор жалуется

Google

Aleksandr
04.08.2018
13:56:05

Vadim
04.08.2018
13:56:34

Aleksandr
04.08.2018
13:56:49
ну значит bot == nil
все как всегда в общем-то

Vladimir
04.08.2018
13:57:27

Aleksandr
04.08.2018
13:58:14
хотя нет, скорее всего ошибку при энкодинге не проверяешь, и там картинки нет

Vadim
04.08.2018
13:58:20
Байты записаны

Daniel
04.08.2018
14:01:11
коллега, тот код, что вы нам показывааете, не компилится
что вы от нас хотите?

Vladimir
04.08.2018
14:01:51
Рекомендую логировать значение каждой переменной в этой функции в таком случае. И станет понятно

Vadim
04.08.2018
14:02:00

Daniel
04.08.2018
14:02:22
тогда я повторю вопрос - чего вы от нас хотите?

Vladimir
04.08.2018
14:02:52
А он и не скомпилируется, там же требуется импорт сторонних либ

Vadim
04.08.2018
14:03:05