- 1
- 2
- 3
i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
i := i shr 1; // после этой строчки i становится равно 2147483644
i := (-7) shr 1; // после этой строчки i становится равно 4
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+101
i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
i := i shr 1; // после этой строчки i становится равно 2147483644
i := (-7) shr 1; // после этой строчки i становится равно 4
Delphi7 такой Delphi7...
http://www.gamedev.ru/code/forum/?id=138759&page=25#m367
Тарас любит дельфи.
CPPGovno 06.09.2011 13:00 # 0
jokz 06.09.2011 13:12 # 0
TarasB 06.09.2011 13:20 # 0
CPPGovno 06.09.2011 13:47 # 0
CPPGovno 06.09.2011 13:53 # 0
TarasB 06.09.2011 14:07 # 0
3D треугольники у меня не пойдут, и вообще софтрендер всегда самый стабильный и надёжный.
CPPGovno 06.09.2011 21:53 # 0
Особенно стабильна у него низкая скорость работы, качество и филрейт.
TarasB 06.09.2011 22:25 # 0
Задач, где нужна именно простая графика - дофига.
CPPGovno 06.09.2011 22:37 # 0
Уже сейчас многие расчёты делают на типичной домашней видеокарте и распараллеливают на многоядерные системы. Без шейдеров видяху встретить без шансов. Когда вы будете учитывать наличие видяхи у пользователей, давая им приемлемое качество картинки и разумной скорости при низкой загрузке ЦП?
TarasB 06.09.2011 22:50 # 0
CPPGovno 06.09.2011 23:04 # −1
Это серьёзный повод писать свой квадратноколёсый велик.
>я пишу не только игры
Что например?
>Видеокарта есть не у всех.
Да, согласен. У бомжей, например. Электричество в канализацию не провели и комп не поставить.
TarasB 07.09.2011 09:17 # 0
Ты так говоришь, будто вывести треугольник дико сложно.
> Что например?
На работе программки.
> Да, согласен. У бомжей, например. Электричество в канализацию не провели и комп не поставить.
Это считать сливом?
CPPGovno 07.09.2011 16:46 # −1
У вас на работе нет видеокарты? Это считать сливом? Что-за бомж-организация?
У меня на работе топовая видяха стоит. 8 ядер. 16 гб памяти.
TarasB 07.09.2011 17:48 # 0
Только не надо ляля, что типа у всех на работах топовые компы.
CPPGovno 07.09.2011 17:53 # 0
Можно конкретно услышать про то, что вы делаете? Что эти программки делают?
TarasB 07.09.2011 18:03 # 0
Но топовые компы только в модных офисах, а на производстве и 400 мгц неплохо.
SmackMyBitchUp 07.09.2011 20:23 # +1
CPPGovno 07.09.2011 21:22 # 0
Зачем заниматься не интересным делом, тем более что за него вам совершенно не платят?
TarasB 07.09.2011 21:57 # +2
CPPGovno 07.09.2011 23:23 # 0
Ну страна тут не причём, но я тоже рад. (:
Но все же вы могли бы найти какую-нибудь более удачную комбинации, где хотя бы оплата была высока.
TarasB 08.09.2011 09:20 # 0
CPPGovno 08.09.2011 10:50 # 0
Вы так говорите, будто каждый день пишите новый софтрендер на работе...
TarasB 08.09.2011 11:24 # 0
CPPGovno 08.09.2011 12:31 # −2
Не пидарас?
TarasB 08.09.2011 12:56 # +1
Вот, читай: http://www.gamedev.ru/code/forum/?id=152068&page=5#m65
Все эти модные опенглы и директы годятся только для игрушек, в которых пофигу, если что-то заглючило.
CPPGovno 08.09.2011 13:16 # 0
TarasB 08.09.2011 13:45 # +1
Блин, ну НЕТ в софтрендере ничего сложного!
Просто для тебя треугольник нарисовать - это что-то непосильное, вот и пишешь фигню.
CPPGovno 08.09.2011 13:51 # 0
TarasB 08.09.2011 14:15 # 0
Если ты не умеешь писать софтрендеры, то не надо думать, что тут у всех такой же маленький опыт.
CPPGovno 08.09.2011 16:05 # 0
Ошибка.
Надеюсь вы не считаете написание софтрендера чем-то выдающимся?
Довольно простенькое дельце. Никакие знания, кроме школьных, для этого не нужны. Только вот время на него, кроме как ради развлечения - тратить не нужно. Займитесь лучше чем то действительно сложным, интересным и оплачиваемым. Хватит работать за еду.
TarasB 08.09.2011 16:17 # 0
КАКОЕ ВРЕМЯ?
Ты не умеешь писать софтрендеры, если считаешь, что на них надо дохрена времени.
CPPGovno 08.09.2011 16:25 # 0
Не трать ни минуты на пустое.
Софтрендеры - простейшая задача. Мы уже это обсудили, она не может занять много времени. Но каждая минута дорога.
TarasB 08.09.2011 18:18 # 0
Не то оптимизировать пытаешься.
Если никакие преимущества опенгла (типа скорость и навороты картинки) мне нахрен не нужны, то зачем я должен использовать опенгл? Только для того, чтобы не дай бог, не навелосипедить? Тогда зачем вообще быть программистом - все программы давно написаны, мы все тупо велосипедим.
CPPGovno 08.09.2011 18:35 # +1
Но они и не помешают если вопрос ставить таким образом.
>зачем я должен использовать опенгл?
Мы же уже решили, что опенгл вам не подходит и нужен софтрендер. Зачем опенгл снова вспоминать?
Просто возьмите готовое решение, а не пишите бесполезный код.
>Тогда зачем вообще быть программистом - все программы давно написаны
Написаны элементы программ. Их нужно просто собрать в единую конструкцию и настроить.
Умение писать велосипеды не ценится ни одним работодателем. Вот почему вы до сих пор пользуетесь компом в 600МГц. (Читал ваше признание на геймдев.ру).
roman-kashitsyn 08.09.2011 18:22 # +1
Иногда "Лучше день потерять, а потом за пять минут долететь" (с)
CPPGovno 08.09.2011 18:42 # +1
Это как раз относится к использованию готовых средств, а ни к написанию своих.
День разбираешься со средством, за 5 минут пишешь работающую программу.
А не как это бывает у велосипедистов:
Месяц пишешь велосипед. Полмесяца пишешь программу, тк велосипед не удобный и 4 месяца отлаживаешь, потому что велосипед кривой.
CPPGovno 08.09.2011 18:49 # +3
Это говорит о том, что вы не знаете предметную область.
Много времени отнимает разбирательство с инструментом, только если нормальные инструменты вы не знаете или не умеете читать чужой код\иностранную документацию.
Если не умете читать код и поддерживать чужие продукты, то такой кодер, кроме как для написания простых программок никуда не годится.
roman-kashitsyn 08.09.2011 18:59 # +2
С другой стороны, если у @TarasB есть в наличии собственный движок, уже написанный, отлаженный и пригодный к использованию, почему бы не использовать его? Не нужно тратить время на изучение, написание тикетов и прочие лишние телодвижения. К тому же, он наверняка легче и включает только то, что действительно необходимо именно Тарасу.
Программисты - народ упрямый, вряд ли вам удастся переубедить Тараса. Зачем тратить время? :)
CPPGovno 08.09.2011 19:35 # +1
Не. Есть много умных людей, которые могут поменять свою точку зрения, если она не верна.
CPPGovno 08.09.2011 19:36 # +2
CPPGovno 08.09.2011 19:44 # +1
Практика показывает, что при дальнейшей поддержке, модификации и разрастании продукта, в используемый в нем велосипед приходится добавлять новый функционал, который по прежнему есть в готовом решении, которое мы ранее отбросили, тк в нем есть "лишние", на момент начала проекта, возможности.
Так, каждый раз дописываются новые возможности и новые ошибки в проект.
Готовые решения уже протестированы, а к своему велосипеду приходится каждый раз дописывать все новые и новые Unit-тесты. Это дополнительная трата времени при разработке проекта.
А ведь часто в проекте не один велосипед, а много. В результате затраты времени ещё больше увеличиваются на создание юнит-тестов, поиск ошибок и постоянное допиливание своего велосипеда.
CPPGovno 08.09.2011 13:19 # 0
CPPGovno 08.09.2011 13:36 # 0
eth0 07.09.2011 15:18 # 0
TarasB 07.09.2011 15:37 # 0
eth0 08.09.2011 13:59 # 0
TarasB 08.09.2011 14:11 # 0
Кстати, убейся со своими минусами.
eth0 08.09.2011 16:46 # 0
С какими моими минусами?
roman-kashitsyn 08.09.2011 16:53 # +2
CPPGovno 08.09.2011 18:55 # 0
Это получается во многих промышленных играх или академических\промышленных исследованиях, притом даже на давно устаревших видеокартах. Вам то этого, не знать TarasB, столько времени проводите на геймдев.ру...
TarasB 08.09.2011 18:19 # +1
Стандарт не соблюдаются.
> неоправданных тормозов.
Какие тормоза, софтрендер даже на первопнях рисовал сцену в реальном времени (первоквака).
> В данном случае совершенно не оправдано создание велосипеда
У вас велосипедофобия? Тогда не пишите программ вообще.
eth0 08.09.2011 19:21 # 0
Это не даёт приоритета софтовому рендереру, когда можно использовать аппаратное решение.
> рисовал сцену в реальном времени (первоквака)
Вне всякого сомнения. Фотореализм нужен школьникам с крайзисами, а для всего остального как раз подойдёт неспешный почти-спрайтовый движочек.
> Тогда не пишите программ вообще.
А я и не пишу.
TarasB 08.09.2011 19:52 # +1
Я хотел было ответить на остальную часть твоего поста, но после этого я могу только сказать "идите на хуй".
CPPGovno 08.09.2011 19:55 # +1
Печально. А я только что рассказывал товарищу выше, что TarasB может быть умным программистом...
TarasB 08.09.2011 20:14 # 0
Движок кваки у него "неспешный", ага.
CPPGovno 08.09.2011 20:31 # 0
Если так, то у него есть все основания учить даже меня.
roman-kashitsyn 09.09.2011 09:41 # +3
Молодой человек, не зазнавайтесь :)
CPPGovno 09.09.2011 12:26 # −2
Вы уверены? (:
>не зазнавайтесь
И вам того же. (:
roman-kashitsyn 09.09.2011 13:07 # +2
После появления @LucidFox я уже ни в чём не уверен.
bugmenot 09.09.2011 20:17 # +2
SmackMyBitchUp 09.09.2011 20:34 # 0
eth0 09.09.2011 09:37 # +2
И ви таки не болейте.
CPPGovno 08.09.2011 19:26 # +1
Ага, только графика была далеко не чита современным играм.
>У вас велосипедофобия?
Да, особенно не люблю кривых., полученных в наследство на поддержку от кривописателей, таких как вы, сударь.
>Тогда не пишите программ вообще.
Нормальный процесс написания программ не как не связан с велосипедостроением.
Под велосипедом я понимаю клон некого средства, которое уже есть, при этом оригинал обладает схожими или более хорошими характеристиками.
Но велосипедом не является средство, оригинал которого уже есть даже с гораздо более хорошими характеристиками, но внедрять в проект его нельзя или не желательно по каким то причинам.
Писать велосипеды (в соответствии с приведенном выше понятии) весьма глупо и иррационально.
Ещё глупее писать свой кривой велосипед, кои традиционно и выходят у горе-изобретателей.
Цель настоящего инженера-программиста решить задачу качественно (поддерживаемый код с минимумом ошибок) и с минимальной затратой ресурсов(время и денежных средств).
Дабы было дешевле с точки зрения времени нужно использовать готовые решения, чтобы не писать своё и не тратить время.
Дабы было меньше ошибок и проект было легче поддерживать, нужно использовать проверенное временем и многими людей - готовое решение.
Если решение использовалось многими людьми - оно вылизано с точки зрения удобства использования, а значит дополнительная экономия времени.
Если нет ошибок, тк мы использовали проверенное решение, то опять же меньше времени тратим на отладку - экономия времени.
_______
Цель инженера-программиста достигнута.
CPPGovno 08.09.2011 19:30 # 0
TarasB 08.09.2011 19:54 # −2
А если мне эффекты не нужны?
> Да, особенно не люблю кривых., полученных в наследство на поддержку от кривописателей, таких как вы, сударь.
Процедура вывода треугольника занимает около 100 строк, в ней нечего поддерживать.
> Дабы было меньше ошибок и проект было легче поддерживать, нужно использовать проверенное временем и многими людей - готовое решение.
А вот нифига, не факт. В готовом решении могуть быть свои ограничения.
CPPGovno 08.09.2011 19:58 # 0
На то и нужно быть опытным программистом и знать предметную область, чтобы правильно подобрать готовое решение.
SmackMyBitchUp 08.09.2011 20:08 # −2
Че вы тут флудите?
CPPGovno 08.09.2011 20:12 # 0
>Тарас, я держу вас за дурака.
Повторяю, это исключительно ваше мнение.
SmackMyBitchUp 08.09.2011 20:19 # 0
CPPGovno 08.09.2011 21:15 # −2
>Че вы тут флудите?
Оффтопите и флудите здесь Вы. Я лишь устроил конструктивный спор, притом не с вами.
>Че вы тут флудите?
Это не запрещено правилами нашего уютненького форума (:
TarasB 08.09.2011 20:13 # 0
CPPGovno 08.09.2011 20:15 # 0
TarasB 08.09.2011 20:21 # 0
Вот нафиг оно надо, разбираться в движках, думать, как их соединить, если проще, как говорится, переписать с нуля?
CPPGovno 08.09.2011 20:29 # 0
Тем более умение поддерживать чужой код - одна из отличительных черт настоящего программиста, а не кодера.
TarasB 08.09.2011 20:39 # 0
http://lurkmore.ru/Умение_разбираться_в_чужом_коде
CPPGovno 08.09.2011 20:52 # 0
Если в средстве, которое выбрали для использования в проекте, код - полное говно, то средство не верно выбрали. Сами виноваты.
Более того, можно написать велосипед с таким же говнокодом. Жалко должно быть людей, которые его станут поддерживать после вас.
Представляю, увольняется любой работник и каждый раз за ним вновь пришедший работник полностью с нуля переписывает велосипед предыдущего, тк он не понятен. (:
Проект вообще никогда не завершится, тогда. (:
TarasB 08.09.2011 20:55 # 0
Короче, я тут нечаянно пришёл к тому, что надо вообще всё делать самому, но это не так - просто иногда, в простых случаях, велосипед оправдан. Софтрендер - это простой случай.
CPPGovno 08.09.2011 20:59 # 0
TarasB 08.09.2011 21:05 # 0
CPPGovno 08.09.2011 21:11 # 0
Я все же за автомобиль.
Мне кажется, вам не хватает опыта. Предлагаю закончить спор, тк больше я не слышу аргументов.
Большое спасибо.
TarasB 09.09.2011 09:16 # +1
Первый признак нехватки опыта - это бездумное следование правилам и непонимание того, что из них бывают исключения. Например, "нельзя использовать ГОТО", "нельзя изобретать велосипеды" и так далее. Так как тут народ взрослый, то тут можно, не стесняясь, говорить, что иногда таки можно.
CPPGovno 09.09.2011 12:11 # 0
С чего вы взяли, что я всегда следую правилам? Есть такие ситуации, где этого не достаточно. Я говорил про часто появляющиеся в разработке случаи. Конечно есть исключения. Только вот когда вместо применения правила всегда используют исключение из него, то в этот момент все проекты начинают попахивать и плохо кончать.
TarasB 09.09.2011 15:36 # 0
CPPGovno 08.09.2011 21:05 # 0
Ну если вы не знаете предметную область достаточно хорошо (не знаете хороших средств), то я с вами согласен. Разбираться в предметной области будет гораздо сложнее, чем написать свое небольшое говнецо. Хотя это не отменяет затрату времени на его тестирование, но если оно действительно не большое, то это не должно быть слишком долго.
ctm 09.09.2011 07:04 # +3
про велосипеды же - видел как случаи оправданного использования велосипедов, так и неоправданного.
хотя, все случаи оправданного использования подпадают под "по каким-то причинам использовать нельзя" или "в данном конкретном случае является существенно более эффективным, но менее универсальным". последнее вообще велосипед?
ctm 09.09.2011 07:13 # +3
Однако в процессе ознакомления с готовыми решениями был получен опыт, который позволил четко поставить задачу и решить ее. без этого свое решение оказалось бы типичным убогим велосипедом.
CPPGovno 09.09.2011 12:03 # 0
Горе-проектировщик. Что сказать ещё...
ctm 09.09.2011 15:06 # +1
а проектирование да, было никакое, а пнуть тогда не мог - только начал работать
ctm 09.09.2011 15:16 # +1
Ну требования к ПО изменились и все - что сделать? не делать, бья пяткой в грудь, что это не было обговорено (и конечно не предусмотрено) - так доплачивают же. начальство пинает и вперед. Сами скорее всего с таким сталкивались, если за живые деньги софт писали.
CPPGovno 09.09.2011 12:05 # 0
И ещё одна польза есть от готовых решений. Использовать готовое решение как временную затычку ещё не написанного функционала при ограничении на время выпуска первой версии продукта.
ctm 09.09.2011 15:17 # 0
CPPGovno 09.09.2011 12:01 # 0
Тогда это не велосипед. Я уже говорил.
SmackMyBitchUp 09.09.2011 12:08 # 0
Велосипед есть велосипед независимо от того, насколько оправдана его разработка. А вот спор об необходимости написания именно велосипеда - это уже другая тема.
CPPGovno 09.09.2011 12:19 # 0
Да. "Велосипед" оправдан обычно только в том случае, если нет других его аналогов, подходящих для проекта. Если аналогов других у данного средства нет, то и назвать это велосипедом нельзя, тк ты не изобретаешь его повторно. Этого средства раньше ведь не было.
CPPGovno 09.09.2011 12:22 # 0
В идеальном мире - да, только аналоги не всегда есть, подходящие для разрабатываемого проекта. К сожалению...
ctm 09.09.2011 15:08 # +1
guest8 12.03.2019 03:55 # −999
carsten 14.10.2011 03:40 # +1
опенгл без шадеров последней версии беспроблемно запускается практически на любой платформе уже как лет десять; там и софтверная реализация есть, если карта не поддерживает вдруг.
сам себе злой.
TarasB 14.10.2011 13:14 # −1
Про глюки видях фирмы "Интел" внимательно читал?
guest8 12.03.2019 03:23 # −999
bugmenot 07.09.2011 22:36 # +6
школьник, которому мама купила высокопроизводительную платформу класса «Писюк» детектед
> не качественный
унд конфирмед.
CPPGovno 07.09.2011 23:18 # −2
bugmenot 08.09.2011 00:15 # +4
:-P
CPPGovno 08.09.2011 08:54 # −2
Или вы хотите, чтобы я вам тоже посочувствовал?
SmackMyBitchUp 08.09.2011 05:30 # +2
CPPGovno 08.09.2011 08:03 # 0
Просто почаще заходите в тред и привыкайте к смайлоатмосфере.
На худой конец можете уйти с говнокода, но этот вариант я не рекомендую.
TarasB 08.09.2011 11:25 # +1
Капча 6667, почти
bugmenot 08.09.2011 22:40 # +2
SmackMyBitchUp 08.09.2011 12:21 # 0
CPPGovno 08.09.2011 12:36 # 0
TarasB 08.09.2011 12:57 # +1
CPPGovno 08.09.2011 13:14 # 0
Я просто применил идиоматическое выражение.
>У тебя вот фобия к софтрендеру
Не. У меня фобия к квадратноколёсым велосипедам.
CPPGovno 06.09.2011 23:06 # 0
DD7 Blt хотел сказать.
ctm 06.09.2011 13:30 # +4
в строке 3 сдвиг происходит средствами среды, а в компилированном коде готовый результат.
inkanus-gray 06.09.2011 14:16 # 0
Можно заставить некоторые из этих выражений вычисляться одинаково в неоптимизированном коде, переписав модуль System.
gegMOPO4 06.09.2011 14:18 # 0
SmackMyBitchUp 06.09.2011 14:31 # 0
i:=-7;
i:=integer(i) shr 1 = 2147483644;
TarasB 06.09.2011 14:32 # 0
integer(-7) shr 1 даст -4
SmackMyBitchUp 06.09.2011 14:37 # +1
const a = -7;
i = -7;
i shr 1 = 2147483644
a shr 1 = -4
inkanus-gray 06.09.2011 14:44 # +3
i shr 1 приводит к генерации кода, сдвигающего значение i. Прикол в том, что код, вычисляющий значения во время компиляции, и генерируемый код не совпадают.
SmackMyBitchUp 06.09.2011 14:44 # +1
inkanus-gray 06.09.2011 14:47 # 0
gegMOPO4 06.09.2011 14:40 # 0
Что об этом пишут в спецификации?
TarasB 06.09.2011 15:01 # +1
Будет, очевидно, целое с разрядностью платформы, то есть 32 бита.
gegMOPO4 06.09.2011 15:22 # +2
В C, C++ и некоторых других языках константы разного типа отличаются и вычисления с ними идут как с целыми этого типа. В Go явно сказано, что все целые константы и константные вычисления идут с неограниченной длиной, а обрезаются уже потом. И это правильно.
TarasB 06.09.2011 15:28 # +3
gegMOPO4 06.09.2011 15:55 # −1
inkanus-gray 06.09.2011 15:36 # 0
SmackMyBitchUp 06.09.2011 15:34 # 0
int j = -7;
j=j >> 1; //-4
-7 >> 1 = -4
roman-kashitsyn 06.09.2011 15:39 # +1
SmackMyBitchUp 06.09.2011 15:44 # 0
roman-kashitsyn 06.09.2011 15:51 # 0
SmackMyBitchUp 06.09.2011 15:55 # 0
gegMOPO4 06.09.2011 16:01 # +1
inkanus-gray 06.09.2011 16:19 # 0
TarasB 06.09.2011 16:23 # 0
SmackMyBitchUp 06.09.2011 16:32 # 0
inkanus-gray 06.09.2011 16:57 # +1
В каком-то говнокоде вроде обсуждалось переполнение целых?
roman-kashitsyn 06.09.2011 17:00 # +7
SmackMyBitchUp 06.09.2011 20:42 # +1
TarasB 06.09.2011 15:42 # +4
В новых версиях этот прикол "исправили" - теперь отладчик тоже показывает 2 миллиарда. Короче, по-прежнему для знаковых чисел делается shr бля.
SmackMyBitchUp 06.09.2011 16:30 # +1
guest 06.09.2011 21:53 # 0
TarasB 06.09.2011 22:27 # +2
ctm 07.09.2011 06:04 # 0
TarasB 07.09.2011 09:18 # 0
Будет сравнение на отрицательность, прибавление единицы в случае отрицательности, и только потом сар. И всё это для того, чтобы совпасть с блядским делением по-интеловски.
ctm 07.09.2011 09:45 # 0
ну тогда пишите на асме:)
ибо (i and $80000000) or (i shr 1) совсем уж уродливо
Lure Of Chaos 07.09.2011 00:08 # +4
CPPGovno 07.09.2011 16:49 # 0
SmackMyBitchUp 07.09.2011 14:28 # +1
http://62.166.198.202/view.php?id=17710