@proGO

Страница 1577 из 1674
Daniel
19.07.2018
00:39:56
Я на аватарке реальный

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

Aleksey
19.07.2018
02:30:06
Ути-пуси. Но правда в том, что C - говноязык. То, что он единственный, не делает его лучше
Проблема не в языке, а в отношении к нему. Ну и в том, что пока процы понимают только машинные коды и ассемблер, а чистый C генерит код прозрачно и предсказуемо. Ну а 80% случаев. И главное накоплена огромная база знаний по нему. Так что пока все остальные языки вытеснить C не могут.

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
Что тут не так, ребят? https://play.golang.org/p/nj2w588ip7i
Можно ещё закрыть канал другой горутиной https://play.golang.org/p/vwGLh8dROZb

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

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

> Так что пока все остальные языки вытеснить C не могут. Конечно не могут, но заслуга тут не C, а упрямости Линуса.
Меж прочим, в ядре linux используется не C, а подмножество C++. С другой стороны в ембеддеде на упромясть Линуса плевать с колокольни, но вот предпочитают пока C и даже не ++

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

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

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

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

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

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

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

Aleksey
19.07.2018
06:53:52
Просто я замечал, что люди думают что UB это что-то такое, что делает поведение кода непредсказуемым, типа пишешь обычный код, а он у тебя неправильно работает, потому что С ведет себя как хочет.
И процессор собака ведет как хочет. Может прерывание сгенерить чаще, чем ты расчитывал. И компилятор может выкинуть переменную, так как ты не указал, что она в рантайме может изменятся.

А кто будет сидеть, если водителя не было?)
Ну это когда скайнет будет рулить, тогда водителя не будет. А пока даже в беспилотной машине есть "старший"

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
Ну это когда скайнет будет рулить, тогда водителя не будет. А пока даже в беспилотной машине есть "старший"
Ну тем не менее, когда тестовый робот сбил насмерть велосипедиста, вроде никого не посадила

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

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

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

даже не знаю что хуже ?

Aleksey
19.07.2018
07:12:56
Ну тем не менее, когда тестовый робот сбил насмерть велосипедиста, вроде никого не посадила
Были разборки и выяснилось, что лисопедист сам себе был злой буратин. Тем не менее вопрос вообще ставился а не запретить ли вообще эти роботаратайки, так от греха

Константой заменить.
Может просто код выкинуть.

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

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
И можешь закастовать blocks как надо.
если так написать for i := 0; i < uint16(blockCount); i++ { то i инициализируется в инт

а надо чтобы в 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
ну сделай как выше писали for i := uint16(0); i < blocks; i++.
invalid operation: i < blockCount (mismatched types uint16 and int64)

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
Sun
19.07.2018
10:16:56
10

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

хотя, в 10 тоже самое

Страница 1577 из 1674