
Vadim
14.06.2018
06:18:04
Пы. Сы. Не тестил, так как на телефоне.
//go 1.6
package main
import "fmt"
import "time"
import "math/rand"
var ch chan int32
func main() {
ch = make(chan int32)
go input()
go timer()
number := <- ch
print(number)
}
func input(){
var i int32
fmt.Scan(&i)
ch <- i
}
func timer(){
timer := time.NewTimer(time.Second*10)
<- timer.C
ch <- rand.Int31()
}

Kaspar
14.06.2018
06:18:23
Ощущение что его обсуждают всю неделю. Видимо очень насущный вопрос
Или домашку где-то такую задали

Google

Денис
14.06.2018
06:25:50
Или домашку где-то такую задали
Это тестовое задание на стажировку. При чем самое интересное то, что в требованиях к стажерам было написано: "желание программировать на go", а не знание языка go

N
14.06.2018
06:27:20

Денис
14.06.2018
06:28:08
Об этом можно было сразу написать, заодно и количество желающих уменьшилось бы

Stanislav
14.06.2018
06:28:39

Aleksey
14.06.2018
06:31:00

Денис
14.06.2018
06:31:59

Vladimir
14.06.2018
06:33:06

Alexander
14.06.2018
06:33:31
Печеньками

Денис
14.06.2018
06:33:38

Aleksey
14.06.2018
06:33:45

Vladimir
14.06.2018
06:34:27
Как я понял стажировка в Одессе?

Денис
14.06.2018
06:34:41
Да

Google

Денис
14.06.2018
06:37:26
Кстати, мне вот интересно: системы какого уровня разрабатываются на Go?

Kaspar
14.06.2018
06:38:03
Гугл
А вообще под микросервисы идеально у нас.

Vadim
14.06.2018
06:39:12
Микросервисы
Кстати, go kit vs go-micro?)

Alexander
14.06.2018
06:39:53
Гугл
Лол. Что именно ? Поисковой движок там на плюсах. В гугле стопицот разных систем

Kaspar
14.06.2018
06:40:10

Aleksey
14.06.2018
06:40:15

Alexander
14.06.2018
06:40:24
А, ну ок-ок

Kaspar
14.06.2018
06:40:24

Vadim
14.06.2018
06:40:30

Kaspar
14.06.2018
06:40:34

Aleksey
14.06.2018
06:40:56
Нет но ок
Ну ляяяяядно, не очень то и хотелось

Alexander
14.06.2018
06:41:21
Гугл на html написан. Инфа сотка

Michael
14.06.2018
06:41:21

Alexander
14.06.2018
06:41:52
Пруф - заходим на главную и смотрим "показать исходники" в браузере

ainu
14.06.2018
07:01:48
Go как раз реплейсит C++ потихоньку

Google

ainu
14.06.2018
07:03:55
В третьих, vitess - на Go написан, скалит MySQL в youtube
В четвертых, Kubernetes
Это всё ответ на вопрос Денис
еще в дудлах юзают (в серверной части)

Денис
14.06.2018
07:08:53
Понял, спасибо

Pawel
14.06.2018
08:30:57
https://github.com/go-zeromq/zmq4 - pure go Это круто имхо

Alexander
14.06.2018
08:44:21

Vladislav
14.06.2018
09:10:48

14.06.2018
09:12:06
Как удалить элемент из слайса?
[]int
Не зная индекс

Илья
14.06.2018
09:13:51
так же как зная

Илья
14.06.2018
09:14:10
только найдя индекс

Jentry
14.06.2018
09:16:04

14.06.2018
09:16:39

Alexander
14.06.2018
09:33:34
=)

Аркадий
14.06.2018
09:34:01
Не зная индекс
А что, если скопировать слайс в ещё одну переменную и проитерировать его. Если находится нужный элемент - удаляешь из старого

Admin
ERROR: S client not available

Jentry
14.06.2018
09:36:57
Можно собрать map и удалить элемент, а потом собрать обратно слайс, индекс в итоге ты так и не узнал

Google

Димка
14.06.2018
09:37:48
так можно нарушить порядок элементов в слайсе

Alexander
14.06.2018
09:38:15
а условия не нарушать порядок есть?

Aleksey
14.06.2018
09:39:10
Оценил, посмеялся

Alexander
14.06.2018
09:42:22
Годный наброс

Alexander
14.06.2018
09:43:26

Alexander
14.06.2018
09:44:14
Я надеюсь что предположительние что через канал будет быстрее было сарказмом :)
Предположение*

Alexander
14.06.2018
09:44:58
понял) уже чет подустал с утра
там же тот кто кладет в канал тоже цикл =(
эх


mAX
14.06.2018
10:32:24
товарищи, пытаюсь сделать демку такую..
запустить
cmd := exec.Command("sh")
получить
stdin, err := StdinPipe()
stdout, err := cmd.StdoutPipe()
stderr, err := cmd.StderrPipe()
ну и перенаправить их в консоль приложения для начала чтобы оно было для пользователя как консоль, а потом в файл и псевдотерминал /dev/tty*
пробовал сделать подобную консоль для
cmd := exec.Command("docker", "run", "-it", "ubuntu")
но пишет ошибку
the input device is not a TTY
может кто сталкивался с подобным, есть похожий пример..
не получается ни sh запустить, ни докер..
Для демки с sh оказалось совсем просто..
cmd := exec.Command("sh")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Run()
/*
#define _XOPEN_SOURCE 600
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
*/
import "C"
func chErr(err error) {
if err != nil { log.Fatalf("Error: %s", err) }
}
func main() {
cmd := exec.Command("sh")
stdin, err := cmd.StdinPipe(); chErr(err)
stdout, err := cmd.StdoutPipe(); chErr(err)
stderr, err := cmd.StderrPipe(); chErr(err)
err = cmd.Start(); chErr(err)
defer cmd.Wait()
m, err := C.posix_openpt(C.O_RDWR); chErr(err)
C.grantpt(m);
C.unlockpt(m);
name := C.GoString(C.ptsname(m))
tty_io := os.NewFile(uintptr(m), "pty-master")
log.Println("New tty: ", name)
go io.Copy(tty_io, stdout)
go io.Copy(tty_io, stderr)
go io.Copy(stdin, tty_io)
}
вот такое создает /dev/ttys016
открываю как screen /dev/ttys016
но ничего ввести не могу, ответа не вижу..


Andrew
14.06.2018
11:08:21
божечки

K.
14.06.2018
11:08:38
Эва, какая случайность.))

Andrew
14.06.2018
11:08:39
@twentydraft удали нахер эту херь))
а, все

Andrey
14.06.2018
11:40:08
Народ, а кто какими серверами аутентификации\авторизации пользуется?
Я нагуглил какой-то ORY. Хочется больше впечатлений.

Pawel
14.06.2018
11:41:26

Google

Alexander
14.06.2018
11:43:21

14.06.2018
11:58:27
Есть набор структур
Клиент их сериализует с json и отправляет на сервер
Как серверу понять какая структура пришла?
Чтобы в дальнейшем десериализовать

Aleksandr
14.06.2018
12:00:07
отослать тип

Jentry
14.06.2018
12:00:09
отправлять тип в json? лучше использовать protobuf конечно

14.06.2018
12:03:14
Там как делать определение структуры?