- 1
normalize((a+b)/2)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+15
normalize((a+b)/2)
Stertor 12.12.2013 17:18 # −9
Stertor 12.12.2013 19:18 # −8
bormand 12.12.2013 18:22 # 0
3.14159265 12.12.2013 18:34 # −1
Stertor 12.12.2013 18:38 # −10
Прошу извинить, не в тему.
bormand 12.12.2013 18:50 # −1
Как ты вообще умудрился это сделать в одном потоке? Запускаешь ProcessMessages из функции, делающей что-то важное с тем объектом? Тогда замути банальный флаг и проверяй его.
> Возникает при MoveFileW с защищенной флешки
Исключений там никаких быть не должно, просто функция вернет не 0, и выставит код ошибки, который ты заберешь через GetLastError. А если винда сама показывает окошко о защищенном от записи диске - то х.з. что делать, это очередные виндопроблемы. Ты никак их не обработаешь ;) Попробуй MoveFileEx, может быть там какой-то флажок поможет.
Stertor 12.12.2013 18:57 # −5
* имя файла
* размер
* дата помещения
все это делается через критическую секцию, но опасность в том, что если юзер во время сканирования вздумает обновить содержимое карантина, то произойдет возможное обращение из 2 потоков к 1 стриму, со всеми вытекающими. В synchronize тем более нельзя, форма зависнет. Вот и изобретаю всякую х..
bormand 12.12.2013 18:58 # 0
Ну может стоит просто заблокировать кнопку "обновить" на время сканирования?
Stertor 12.12.2013 19:04 # −5
bormand 12.12.2013 19:08 # −2
Но на самом деле - всем похуй. Если юзер сам полез портить прогу всякой хуйней для разблокировки кнопочек, все что случится с его инфой - его личные проблемы. Как говорится - ССЗБ.
Stertor 12.12.2013 19:08 # −5
bormand 12.12.2013 19:11 # −1
Ну не баг, а говнофича. И ты неправильно проверяешь результат movefileex. Он не может кидать исключений (т.к. его могут юзать и из языков, не умеющих в исключения). Смотри результат, который она тебе вернет. И если вернуло 0 - проверь код ошибки в GetLastError. От окошка ты не избавишься, но хотя бы как-то отреагировать на непереместившийся файл сможешь.
P.S. Тарас обидится на оффтоп в его треде.
Stertor 12.12.2013 19:13 # −7
if movefileex(''')=true then
...
Я так и делаю, это просто примерчик.
Упс. всех ботов забанили. Заминусуйте, люди добрые! Прости, Тарас!..
anonimb84a2f6fd141 12.12.2013 20:41 # −2
Серьезно чтоли?
bormand 12.12.2013 21:21 # +2
Свершилось! Аплодисменты Страйко :)
Stertor 12.12.2013 21:25 # −6
Прастите меня люди.
LispGovno 12.12.2013 21:26 # +2
bormand 12.12.2013 21:29 # +3
Stertor 12.12.2013 21:30 # −7
bormand 12.12.2013 21:26 # +2
А при чём тут прокся?
Stertor 12.12.2013 21:29 # −5
bormand 12.12.2013 21:30 # +1
Stertor 12.12.2013 21:36 # −3
bormand 12.12.2013 21:44 # +6
Молодец. Сила воли - это хорошо.
Stertor 12.12.2013 21:58 # −5
guest6 18.10.2021 00:09 # +1
nemyx_B_3AKOHE 18.10.2021 00:11 # +1
bormand 18.10.2021 00:12 # +1
Desktop 18.10.2021 01:00 # +2
иного объяснения тому, что он иногда пишет, я не вижу
j123123 18.10.2021 02:23 # +1
А почему не хуй?
bormand 18.10.2021 06:51 # 0
Desktop 18.10.2021 11:36 # 0
Всё к хуям свёл наш рассказчик
https://youtu.be/Hh0RbfK7Qec
j123123 18.10.2021 12:27 # +1
TOPT 18.10.2021 12:36 # 0
Банный хуй — главный лекарь.
Баня без хуя — что стол без соли.
В бане хуй дороже денег.
Без хуя баня не парит, а пар не жарит.
Банный хуй душу тешит да тело нежит.
Хуй в бане — всем начальник, всему голова.
Хуй — банный командир, всех побил и царю не спустил.
Хуй мал, да удал — всем порку задал.
Хуй в бане господин, или набольший.
Баня без хуя — что клумба без цветов.
Desktop 18.10.2021 11:38 # 0
defecatinho 18.10.2021 13:15 # 0
Desktop 18.10.2021 13:17 # +2
типа это был не ты
ну мы поверим конечно
ObeseYoung 18.10.2021 00:22 # 0
anonimb84a2f6fd141 12.12.2013 19:12 # 0
Урааааа! Алилуйя!!!!
Stertor 12.12.2013 21:31 # −12
anonimb84a2f6fd141 12.12.2013 19:11 # 0
Котаны, нахуя так жить? Нахуя коды возврата в 2013?
bormand 12.12.2013 19:12 # +6
Неправильный вопрос. Правильный вопрос - "Котаны, нахуя так жить? Нахуя юзать WinAPI в 2013?"
anonimb84a2f6fd141 12.12.2013 20:42 # −2
LispGovno 12.12.2013 20:06 # 0
bormand 12.12.2013 20:28 # 0
Stertor 12.12.2013 20:37 # −19
Бля, да неуместен тут минус, как ты не понимаешь?
bormand 12.12.2013 20:48 # +1
Что в нем грязного? Майкрософт в своей доке даже рекомендует его вызывать: "Best practice is that all applications call the process-wide SetErrorMode function with a parameter of SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application.".
http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621%28v=vs.85%29.aspx
P.S. А по дефолту показывает окошки, видимо, ради рукожопых программистов, которые не проверяют коды возвратов и игнорят исключения ;)
Stertor 12.12.2013 21:04 # −28
"Что в нем грязного? Майкрософт в своей доке даже рекомендует его вызывать: "Best practice is that all applications call the process-wide SetErrorMode function with a parameter of SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application.".", учат заметать дерьмо под палас.
bormand 12.12.2013 21:09 # +4
Блядь! Обрабатывать ошибки учат, обрабатывать, а не заметать их под палас. А из-за рукожопых заметателей дерьма, которые игнорят коды ошибок и исключения, винда по дефолту все показывает сама.
Так что включаешь нужные ErrorMode и обрабатываешь ошибки. Либо не трогаешь ErrorMode и удовлетворяешься тем, что винда сделала все за тебя.
P.S. А те, кто включает ErrorMode "чтобы винда не материлась" и не смотрит коды возврата - действительно долбоёбы, заметающие говно под палас.
Stertor 12.12.2013 21:19 # −26
Я это и имел в виду. Я много раз был свидетелем, когда эта API использовалась в качестве аналога on error resume next в бейсике. Прога давно сошла с пути истинного, казнить давно ее пора, а рантайм, знай себе, один хуй выполняет ее. Пидарасы.
anonimb84a2f6fd141 12.12.2013 22:20 # −1
bormand 12.12.2013 22:21 # +1
Ну да, это один из основных плюсов исключений - нельзя случайно забыть их обработать.
LispGovno 13.12.2013 01:27 # 0
guest 13.12.2013 05:15 # −2
LispGovno 13.12.2013 07:19 # +4
Stertor 13.12.2013 11:08 # −25
LispGovno 13.12.2013 17:46 # +2
TarasB 13.12.2013 18:08 # +2
Stertor 13.12.2013 22:22 # −26
>>
сразу же забанен как буранчик
как бАранчик
TarasB 14.12.2013 16:32 # 0
Stertor 14.12.2013 21:32 # −25
Кто есьм Буранчик?
Stertor 14.12.2013 21:44 # −24
Что ж делать, неужели пиздовать к упырям на форумы?
1024-- 15.12.2013 06:39 # +3
Надо дать пользователю то, чего он хочет. Вместо "Подскажите, у меня прога не работает" (даём пользователю повод для троллинга) надо "И вот такое говно мне приходится поддерживать на новой работе :(" или "В наше время в вузах ничему не учат" (даём пользователю повод для повышения ЧСВ путём перечисления всех ошибок).
В случае буранчика надо говорить "Буранчик - потрясающее изобретение советской науки. Жаль, что так всё случилось" :)
LispGovno 15.12.2013 08:16 # +2
Stertor 15.12.2013 13:57 # −24
LispGovno 14.12.2013 22:12 # 0
Это не я.
Abbath 13.12.2013 22:54 # 0
bormand 13.12.2013 23:11 # 0
На гейдеве.
LispGovno 13.12.2013 23:54 # 0
Stertor 14.12.2013 01:23 # −28
(___)o(___)
LispGovno 14.12.2013 07:16 # +7
Stertor 14.12.2013 21:34 # −25
bormand 13.12.2013 05:59 # 0
LispGovno 13.12.2013 07:20 # 0
bormand 13.12.2013 10:18 # 0
Почему? Случай, что кто-то намеренно их съест и ничего не напишет в лог мы в рассчет не берем т.к. ССЗБ ;)
LispGovno 13.12.2013 17:42 # 0
bormand 13.12.2013 19:43 # +4
Ты не понял мою мысль ;)
Если ты не обработал код возврата - программа молча продолжит работу, и натворит что-то не то. Ты даже не узнаешь, что что-то случилось, не говоря уж о причине. Впрочем опытный сишник всегда проверяет все коды возврата, и не парится по этому поводу :)
Если ты не обработал исключение - худшее, что случится - программа просто упадет, показав это исключение. Если же, к примеру, это сервак, и есть catch-all обработчики на уровне запроса/сессии, то просто запишет в лог бектрейс, ответит клиенту, что не выполнен запрос, или порвет с ним связь. При этом корректно освободятся все нужные ресурсы, закроются транзакции и т.п.
С исключениями нет главной проблемы кодов возврата - их нельзя молча и случайно проигнорировать.
LispGovno 13.12.2013 19:53 # 0
-Wunused-result or __attribute__((warn_unused_result));
+
-Werror
bormand 13.12.2013 20:11 # 0
Там не or, там and. Ты предлагаешь пометить все функции всех библиотек этим атрибутом? Удачи, она тебе понадобится ;)
LispGovno 13.12.2013 20:49 # 0
bormand 13.12.2013 20:58 # 0
Ну или я не умею искать, или его нет. Найди :)
LispGovno 13.12.2013 22:40 # +2
defecate-plusplus 13.12.2013 22:42 # +4
defecate-plusplus 13.12.2013 22:51 # +3
компилятору невозможно да и не нужно отслеживать за качеством использования return value
получились бы уёбищные checked exceptions, только хуже
учитывая насколько сишники упороты в своих char * my_const_string = "ololo!", они бы просто охуели от таких репрессий со стороны вшивого ворнинга
LispGovno 13.12.2013 23:53 # 0
defecate-plusplus 14.12.2013 00:26 # +2
наелся в свое время retcode говна в сишечке
гораздо лучше передавать в функцию boost::system::error_code & - одни профиты
и ссылочный аргумент влёгкую не заигноришь, и засунуть можно куда нить в глубокий коллбек, и не напрягает особо, и в исключение обернуть никогда не сложно
TarasB 14.12.2013 16:32 # +1
if not DoSomeShit(MyCoolObject) then Exit;
а более детальная информация об ошибке - это одно из полей этого MyCoolObject
bormand 14.12.2013 17:16 # +1
Просто ты с тредами мало работал. Вот попадется задачка, в которой какой-то объект надо будет трогать из 100500 тредов, поймешь, почему не стоит пихать в него информацию об ошибке ;)
А для однопоточной проги - сойдет.
TarasB 14.12.2013 17:53 # 0
а булевый возврат успешности - для удобства
а ещё можно
return
DoSmth1() && DoSmth2() && DoSmth3()...
anonimb84a2f6fd141 15.12.2013 09:57 # +2
Одному мне запахло?
anonimb84a2f6fd141 15.12.2013 09:56 # 0
LispGovno 12.12.2013 21:17 # −1
bormand 12.12.2013 21:20 # +2
А, да я не обращаю внимания на минусы в тредах, где какой-то чудак "въебал всем по минусу".
Stertor 12.12.2013 21:20 # −32
минуснул, чтобы не повадно было.
anonimb84a2f6fd141 12.12.2013 22:17 # −2
bormand 12.12.2013 22:29 # +2
Потому что у него безвыходное положение - delphi 7.
anonimb84a2f6fd141 12.12.2013 22:41 # −1
bormand 12.12.2013 22:46 # 0
Stertor 12.12.2013 23:18 # −31
А разве это не обертка над MoveFile?
bormand 12.12.2013 23:21 # 0
А хер его знает. Скорее да, чем нет. Вот только почему есть перемещение, но нету копирования?
Stertor 12.12.2013 23:24 # −27
anonimb84a2f6fd141 12.12.2013 23:36 # −3
Stertor 12.12.2013 23:36 # −32
anonimb84a2f6fd141 12.12.2013 23:19 # −2
Stertor 12.12.2013 23:27 # −32
Кстати, Борманд, может, они просто дописали функции, которых "в лоб" нет, чтобы как бы расширить набор файловых функций?
bormand 12.12.2013 23:28 # +2
anonimb84a2f6fd141 12.12.2013 23:36 # −2
bormand 12.12.2013 23:44 # 0
Почему нет? Есть. Тот же StrToFloat кидает исключение.
> Или исключения без сборки мусора противопоказаны?
Да почему. Просто аккуратней надо быть, чем в языках с гц.
anonimb84a2f6fd141 12.12.2013 23:48 # −3
Stertor 12.12.2013 23:51 # −32
guest 13.12.2013 05:17 # 0
Stertor 13.12.2013 22:24 # −32
bormand 12.12.2013 23:53 # 0
Это риторический вопрос? ;)Потому, что д7 написано как бы не 10 лет назад... А в новых может быть и получше ситуация.
TarasB 13.12.2013 09:35 # +1
roman-kashitsyn 13.12.2013 10:16 # +1
Знаешь, я с годами всё больше убеждаюсь, что ты прав. Исключения действительно не нужны.
LispGovno 13.12.2013 17:37 # 0
roman-kashitsyn 13.12.2013 17:44 # +1
LispGovno 13.12.2013 17:51 # 0
Может ты пояснишь, чего они так тащутся от boost::call_traits? Совершенно же многословные унылые сопли.
defecate-plusplus 13.12.2013 23:01 # 0
а где работаешь ты, %юзернейм%?
LispGovno 14.12.2013 22:13 # 0
roman-kashitsyn 14.12.2013 23:15 # +5
я и не думал, что скилл гугления может быть меньше нуля. Поздравляю.
LispGovno 14.12.2013 23:55 # +4
anonimb84a2f6fd141 15.12.2013 09:59 # 0
3Doomer 16.12.2013 21:51 # +3
"Отзывы
Всем привет, на данный момент купил себе BMW X5... Пригнал мне из Германии Роман Кашицын, огромное спасибо ему!
Михаил, 09.03.2013."
LispGovno 16.12.2013 23:14 # 0
Тут должно быть что-нибудь про кавказцев.*
На аве у него хороший кавказец.
anonimb84a2f6fd141 15.12.2013 10:01 # 0
anonimb84a2f6fd141 12.12.2013 20:42 # −1
LispGovno 12.12.2013 20:49 # −1
Борманд нам ещё нужен.
bormand 12.12.2013 20:50 # +1
Первый этаж, можно и в окно :)
WGH 12.12.2013 21:39 # +5
bormand 12.12.2013 21:43 # +1
anonimb84a2f6fd141 12.12.2013 22:21 # 0
bormand 12.12.2013 22:27 # +2
1024-- 13.12.2013 07:50 # 0
Stertor 12.12.2013 22:00 # −33
istem 12.12.2013 22:50 # +4
bormand 12.12.2013 22:58 # +3
Stertor 12.12.2013 23:16 # −32
"Школьнику" около 40 лет, он средней упитанности а еще у него темные волосы и карие глаза.
bormand 13.12.2013 10:14 # −2
Идентификация Борманда.
Stertor 13.12.2013 11:01 # −31
defecate-plusplus 13.12.2013 11:47 # +4
http://s2.developerslife.ru/public/images/gifs/4e69d8e4-ba48-4a60-b70a-af673a56b7a3.gif
anonimb84a2f6fd141 15.12.2013 10:00 # +2
Stertor 17.12.2013 13:50 # −29
Узрел себя в оном отроке?
nemyx_B_3AKOHE 17.10.2021 23:16 # 0
bormand 17.10.2021 23:21 # 0
nemyx_B_3AKOHE 17.10.2021 23:26 # 0
TOPT 17.10.2021 23:52 # +1
bormand 18.10.2021 00:00 # 0
nemyx_B_3AKOHE 18.10.2021 00:03 # 0
bormand 18.10.2021 00:16 # +1
guest 13.12.2013 05:13 # −5
Stertor 13.12.2013 15:18 # −32
"Визуальный бот" от Stertor-а.