
Daniel
19.07.2018
00:39:56
Я на аватарке реальный

Александр
19.07.2018
00:42:40
надо седую и большей длинны :)

Aleksey
19.07.2018
02:30:06

Daniel
19.07.2018
02:30:44
Не противоречит

Google

Денис
19.07.2018
02:33:12
ДОброго времени суток. Столкнулся с проблемой, что ни gofmt ни `goimports`не убирают лишние пустые строки в import.
Получается что сортировка импортов идет криво. Нет ли тулзовины чтобы это пофиксить?

ros
19.07.2018
03:15:35
сами лишних напихали сами и удаляйте.

Hello
19.07.2018
03:20:29

Alexander
19.07.2018
04:16:53

?
19.07.2018
04:29:31

Alexander
19.07.2018
04:48:44
Который, между прочим, сам клал с высокой колокольни на стандарт C

Aleksey
19.07.2018
04:54:44
> прозрачно и предсказуемо
> имплисит тайпкасты
> уб
Да что вы говорите
А вы ничего не путаете? В C код в ассемблер ложиться почти один в один, если не увлекаться прагмами и плюшками какого то одного компайлера и помнить под какую платформу пишешь, никакого ub не поймаешь. Вообще ub это косяк программиста, который некорректно применил инструмент. Даже в C++, не то что в C

Konstantin
19.07.2018
04:57:45
Всем, привет!
Подскажите, пожалуйста, в какую сторону копать? Может есть примеры?
Имеется задача, выполнять через системные вызовы запуск программы, и передачи данной программе команды, при этом результат каждой из команд необходимо анализировать отдельно.

Alexander
19.07.2018
05:02:31
А вы ничего не путаете? В C код в ассемблер ложиться почти один в один, если не увлекаться прагмами и плюшками какого то одного компайлера и помнить под какую платформу пишешь, никакого ub не поймаешь. Вообще ub это косяк программиста, который некорректно применил инструмент. Даже в C++, не то что в C
> ub косяк программиста, учебного заведения где его учили, старших коллег, которые не усмотрели, работеля, который принял этого горе-программиста на работу, статического анализатора, CI системы, которая приняла комит, а не отвергла. Кого угодно, только не языка и его стандарта.
Ага, я это уже миллионы раз слышал. Кто угодно виноват, но не божественная сишечка.


Aleksey
19.07.2018
05:05:54
> ub косяк программиста, учебного заведения где его учили, старших коллег, которые не усмотрели, работеля, который принял этого горе-программиста на работу, статического анализатора, CI системы, которая приняла комит, а не отвергла. Кого угодно, только не языка и его стандарта.
Ага, я это уже миллионы раз слышал. Кто угодно виноват, но не божественная сишечка.
Это уже демагогия. Так в ДТП или разводе или отбитом молотком пальце не принято обвинять себя, а прочих водителей, жену, молоток.
Да и оффтоп, так как к go мало относиться, может даже совсем

Google

Alexander
19.07.2018
05:07:31
Так и в С, если програмист написал код с UB, он конечно виноват, но это не значит, что сишка тут не при чём

Алекс
19.07.2018
05:13:35

Aleksey
19.07.2018
05:14:39
Если произошло ДТП, то всегда виноват автомобиль, дорогоа и, возможно, что-то/кто-то ещё.
В случае ДТП в первую очередь виноват водитель, взявший на себя больше риска, чем потянет. В случае C виноват программист, как минимум выбравший неподходящий к конкретной задаче инструмент, а в случае ub, не знающий, что такое может быть вообще. Особенно часто такое в коде для микроконтроллеров можно встретить, пишут код не учитывая специфику

Nick
19.07.2018
05:46:58

Evgeny
19.07.2018
05:47:06
UB это просто особеность стандарта, который использует этот термин, в других языках этот термин не используется, но UB тоже есть (в Go например точно есть). Просто стандартизировать любое некорректное использование языка невозможно, отсюда и термин, вышли за границу массива, получили segfault (или не получили, зависит от того как далеко вышли, могли просто память испортить), попытались перезаписать int переменную из двух потоков - UB (на практике ничего не упадет, но гарантировать результат никто не может) ну и тд.


DreamingKitten
19.07.2018
05:49:32
UB это просто особеность стандарта, который использует этот термин, в других языках этот термин не используется, но UB тоже есть (в Go например точно есть). Просто стандартизировать любое некорректное использование языка невозможно, отсюда и термин, вышли за границу массива, получили segfault (или не получили, зависит от того как далеко вышли, могли просто память испортить), попытались перезаписать int переменную из двух потоков - UB (на практике ничего не упадет, но гарантировать результат никто не может) ну и тд.
по-моему вы путаете разные вещи. сегфолт или race condition это косяки рантайма, а UB это неоднозначность на уровне синтаксиса языка


Evgeny
19.07.2018
05:51:37
Стандарт ISO 9899 передает привет:
The execution of a program contains a data race if it contains two conflicting actions in different threads, at least one of which is not atomic, and neither happens before the other. Any such data race results in undefined behavior.
В С++ тоже самое, любой рейс это UB, тоже самое с segfault.
Просто я замечал, что люди думают что UB это что-то такое, что делает поведение кода непредсказуемым, типа пишешь обычный код, а он у тебя неправильно работает, потому что С ведет себя как хочет.


Alexey
19.07.2018
06:16:32
Как предпочтительно хранить файлы на сервере? БД с закодированными файлами в base64? Просто файлы?
В файлах, в базе относительный путь. Причём не в одной папке а раскладывая по нескольким, т.к. тысячи файлов в одной папке туго открываются.
Решение хранить в базе уже проходили... когда база начинает измеряться терабайтами, приходит печаль, автовакуум начинает быть заметен пользователям, отключение только усугубляет положение, руками запуск вакуума неизвестно когда делать. Да и с бэкапами средствами базы идущие днями по неделе, тоже беда, люди замечают тормоза. Полный переезд на ссд улучшил ситуацию, но не исправил полностью.
В файлах, в базе относительный путь. Причём не в одной папке а раскладывая по нескольким, т.к. тысячи файлов в одной папке туго открываются.
Решение хранить в базе уже проходили... когда база начинает измеряться терабайтами, приходит печаль, автовакуум начинает быть заметен пользователям, отключение только усугубляет положение, руками запуск вакуума неизвестно когда делать. Да и с бэкапами средствами базы идущие днями по неделе, тоже беда, люди замечают тормоза. Полный переезд на ссд улучшил ситуацию, но не исправил полностью.
И вспоминаю время шаред хостинга, когда тоже решил хранить в базе, потом не мог забрать пол гига базу, по таймауту вылетал дамп... писал свой вытаскиватель из базы по кусочкам, чтоб переехать на виртуалку


DreamingKitten
19.07.2018
06:29:01
Опять я что-то накосячил с областями видимости?
Почему второй Printf не показывает nil ?
https://play.golang.org/p/LNIaqh8Rmhn

Anton
19.07.2018
06:30:00
func (mys *MyStruct) Close() {
и будет nil

DreamingKitten
19.07.2018
06:30:50
вау
спасибо )

Aleksey
19.07.2018
06:50:42
А если это беспилотный авто?
Ответственность не перекладывается, сидеть будет не авто, если робот собьет пешехода, в штатах уже был прецедент.

Pavel
19.07.2018
06:52:31
Потому что пока в штатах водитель обязан быть за рулем, чтобы все законы, которые сажают водителя, работали.

Nick
19.07.2018
06:52:40

Google

Alexei
19.07.2018
06:52:57
а где админы? ))))

Pavel
19.07.2018
06:53:01
Если водитель == nil, то они не будут работать. Надо ждать новую ревизию.

Aleksey
19.07.2018
06:53:52

Evgeny
19.07.2018
06:55:40
выкинуть переменную это как?

Pavel
19.07.2018
06:56:04

Vladimir
19.07.2018
06:56:10
Или в теории даже на другой версии компилятора

Nick
19.07.2018
06:56:36

Pavel
19.07.2018
06:56:53

Vladimir
19.07.2018
06:59:08
выкинуть переменную это как?
Я такое на pixman наблюдал, если его собирать шлангом то на O2+ он падает с сегфолтом в некоторых ситуациях, потому что компилятор решает переменную на константный ноль заменить

Evgeny
19.07.2018
06:59:43
Константой заменить.
ну всетаки не выкинуть значит :) я просто не понял о чем речь, речь видимо о том, что без volatile код может не записывать ничего в переменную из-за оптимизиаций (об этом же?), так это не проблема вообще

Vladimir
19.07.2018
07:00:39

Evgeny
19.07.2018
07:02:58
это выглядит как бага, но как правило бага при этом в другом, в Go такого не бывает только потому что у него оптимизатора нет в принципе :)
даже не знаю что хуже ?

Vladimir
19.07.2018
07:05:53

Aleksey
19.07.2018
07:12:56

Sun
19.07.2018
08:40:35
господа, вопрос на засыпку.
Есть Teamcity. Есть проект и под сотню билдов в нём. Необходимо для всех билдов заменить оптом темплейт. То бишь назначить определённый темплейт дефолтным на весь проект.
Я один раз это как-то сделал и забыл как. Точно не через экспорт проекта в xml и регексп, а кнопочками.
уже час не могу вспомнить.
Памагити.

Anton
19.07.2018
09:34:34

Google

Anton
19.07.2018
09:35:01

DreamingKitten
19.07.2018
09:35:24
можно ли в for i:= как-то явно указать тип переменной?

Subbotin
19.07.2018
09:37:51
ээээ. это чат про го?

DreamingKitten
19.07.2018
09:38:16
да вот я тоже удивился
видимо нельзя

Antony
19.07.2018
09:39:42
ну да, чего это я
for i := int64(0); i < 10; i++{
log.Println(i)
}

Oleg
19.07.2018
09:53:11
хочется for int64(i) := range ?

DreamingKitten
19.07.2018
09:54:00
for i := uint16(0); int64(i) < blockCount; i++ {
или даже не так, потому что тут непонятно зачем

Antony
19.07.2018
09:55:12
какое то интересное у вас жонглирование типами

DreamingKitten
19.07.2018
09:55:35
for i := uint16(0); int64(i) < (fstat.Size() / pubBlockSize); i++ {
вот тут из-за fstat.Size() ругалось
а i таки uint16, он потом вызывается в методе

Pavel
19.07.2018
09:59:26
Не знаю, что у тебя в цикле, но что-то типа blocks := fstat.Size() / pubBlockSize перед циклом и i < blocks в for было б намного более читаемо.
И можешь закастовать blocks как надо.
(ну это при условии, что это значение в цикле не меняется)

DreamingKitten
19.07.2018
10:01:32
а надо чтобы в uint16

Google

DreamingKitten
19.07.2018
10:01:55
потому что внутри есть вызов метода принимающего i и ожидающего uint16

Pavel
19.07.2018
10:01:59
почему blockCount нельзя сделать int?
а
ну сделай как выше писали for i := uint16(0); i < blocks; i++.

DreamingKitten
19.07.2018
10:03:20

Pavel
19.07.2018
10:03:36
ну и приведи blocks к uint16
строчкой выше
чтобы обе переменные были одинакового типа

DreamingKitten
19.07.2018
10:04:00
привёл, теперь всё ок

Pavel
19.07.2018
10:04:35
?

Sun
19.07.2018
10:16:32

Anton
19.07.2018
10:16:50

Sun
19.07.2018
10:16:56
10

Anton
19.07.2018
10:17:11
аа. надо глянуть в соотвествующей версии документации наверное
хотя, в 10 тоже самое