[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]

[Burichan] [Futaba] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1287851845301.jpg -(50840 B, 454x550) Thumbnail displayed, click image for full size.
50840 No.41405  

/c/ нульча потонул в говновойнах, хотя когда-то... Но это дела давно минувших дней. Поэтому, объявляю этот тред кодачем новеря.

>> No.41407  
File: 1287853957669.jpg -(77925 B, 774x899) Thumbnail displayed, click image for full size.
77925

>>41405
а что сюда нужно постить? Быдлокод?

>> No.41412  
File: 1287854989972.jpg -(153783 B, 545x700) Thumbnail displayed, click image for full size.
153783

>>41407
Как вариант. Но в целом не вижу смысла задавать какие-либо существенные ограничения - новерь же! Например здесь можно обсуждать AI, различные свистелки и перделки, ну и велосипеды - куда без них. Алсо, надеюсь что здесь есть таки достаточное количество кодерастов.

>> No.41414  

У меня постоянно возникают вопросы, но при наличии 3-х персональных тредов по разным чанам, где я мог бы спросить, я стесняюсь это делать, и в итоге придумываю какие-то костыли. Как бороться с костылями, кроме полного рефакторинга? Хотя, даже не так. Как заставить себя начать рефакторинг?

>> No.41417  
File: 1287863183225.png -(2129984 B, 1416x1002) Thumbnail displayed, click image for full size.
2129984

>>41414

> Как заставить себя начать рефакторинг?

Желание начать рефакторинг начинается как правило после осознания того, что написанный тобой код - полное добро, и делает совсем не то, что нужно или делает это слишком медленно. Олсо можно избежать рефакторинга, если перед тем как начать писать код, все как следует продумать.

>> No.41419  
File: 1287864010381.jpg -(128737 B, 744x768) Thumbnail displayed, click image for full size.
128737

>>41414
Просто научись полноценно пользоваться ООП, по себе знаю - огромные стены кода переписывать гораздо сложнее, чем отдельные функции.

>> No.41421  
File: 1287864317428.png -(70040 B, 858x639) Thumbnail displayed, click image for full size.
70040

>>41414
Код ничего не стоит. Важны идеи, концепции и архитектура. Большинство программистов этого не понимают, и стремятся напрогать как можно больше кода, считая это самой целью, потом тратят кучу времени на костыли, поиск ошибок, рефакторинг, снова костыли, ошибки, невозможность расширяемости, несовместимость.

До того, как что-то написать, берёшь лист бумаги. И рисуешь схемы с разными уровнями абстракции, рассматриваешь гипотетические проблемы, возможность расширяемости. Пишешь куски кода для проверки реализации элементарных идей. Исправляешь схему с учётом полученных данных. Очень полезно, советую. Также посмотри в сторону UML, например, Umbrello

Со временем придёт опыт строить такие штуки для простых приложений в голове. Но всё, что чуть сложнее хеллоуворлда требует серьёзного обдумывания, и решения большинства серьёзных проблем до того, как ты что-то вообще написал.

>> No.41423  
File: 1287864801365.jpg -(266108 B, 700x800) Thumbnail displayed, click image for full size.
266108

>>41421
И разумеется не стоит бояться переписывать что-то заново. Код ничего не стоит. Если ты при появлении первой потребности в костылях перепишешь то, что есть, впоследствии при рефакторинге тебе не придётся переписывать то, что было надо переписать, плюс костыли, плюс то, что к ним прикручено.

>> No.41424  

>>41417

>Олсо можно избежать рефакторинга

Наивное заблуждение. Избежать полностью его невозможно в сколько-нибудь крупных и долгоживущих проектах. Другое дело, что рефакторинг можно здорово облегчить.
Кажется у Брукса написано, что нужно писать первую версию кода, изначально понимая, что она будет полностью выкинута. В те времена этому понятию еще не дали названия, в наше время это называется прототипированием.

>>41421

>Код ничего не стоит.

Это еще что за глупость?

>>41419

>Просто научись полноценно пользоваться ООП

Уже нужно говорить об использовании обобщенного программирования. А ООП (особенно java-style с огромными иерархиями, начинающимися с какого-нибудь Object) само по себе ничуть не уменьшает потенциальный объем рефакторинга, я бы сказал, что скорее увеличивает.

>> No.41426  

>>41424

> >Код ничего не стоит.
>Это еще что за глупость?

Рано или поздно любой код будет переписан. И не раз. Поэтому не надо за него цепляться, и не надо бояться удалять и писать заново.

>> No.41432  
File: 1287872544389.jpg -(133371 B, 1019x1277) Thumbnail displayed, click image for full size.
133371

>>41421
UML... Разве он не ориентирован на разработку бизнес-приложений? Не думаю, что он подойдёт во всех случаях. Алсо в Рашке он не особо популярен.

>> No.41433  

>>41432

>в Рашке он не особо популярен.

В Рашке популярно быстро и через жопу. Не раз сталкивался с заявлением "нам дешевле компы обновить, чем тратить время и деньги на оптимизацию софта". UML, разумеется, не панацея от всего. И быдлокодер с ним продолжит писать чудеса на зависть индусам. Просто прицепился к одной фразе.

>> No.41436  
> UML

сферический конь в вакууме. Полезен главным образом психологически.

>> No.41444  

>>41426

>Рано или поздно любой код будет переписан. И не раз. Поэтому не надо за него цепляться, и не надо бояться удалять и писать заново.

Не так. Любой код стоит чего-то (времени, денег). Если цена поддержки и рефакторинга при добавлении новой фичи больше, чем переписывание, тогда уже код переписывается, но не иначе (да, предусмотрительные руководители делают это заранее). В стоимость рефакторинга могут также входить стоимость рефакторинга во внешних проектах, которые используют изменяемые интерфейсы текущего, в этом случае, стоимость рефаторинга может достигать астрономических величин.
Рядовому программисту о таких вещах не стоит беспокоиться - этим занимается руководство.

>UML

Это только нотация. Это гарантия того, что твои квадратики на листке кто-то, кроме тебя, поймет. В наше время подобные вещи становятся необходимыми. Но не стоит думать, что имея диаграммы на руках, проект готов.

>> No.41448  

>>41444
Вот из-за этого мы и имеем то, что имеем. Чёрт с ним, что код выглядит как говно и никто уже не помнит, как оно вообще работает.

Экономически выгодно писать код быстро. Невыгодно тратить много человекочасов на оптимизацию, если оно хоть как-то работает. Если кому-то придётся через год добавлять новые фичи - это уже будет его проблема, какие костыли он приделает.

Я понимаю, что так диктует нам рынок, и никто не станет пытаться бороться с этим. Просто всё это в глобальном смысле глупо, это как пузыри в экономике - успей сорвать бабло и хрен с ним, что будет потом. Набери десять индийцев по цене одного специалиста и успей сделать раньше остальных чтобы завоевать новые рынки, монополизируй, а потом мучай мир этим говном, они уже не смогут сопротивляться - всё работает по твоим стандартам.

>Но не стоит думать, что имея диаграммы на руках, проект готов.

Подобные вещи не гарантируют, что с ними всё будет лучше. Но подобное планирование в прямых руках существенно повышает шанс написать нормальный по архитектуре проект, с годным разделением сущностей по уровням абстракций.

>> No.41451  

>>41448

>никто уже не помнит, как оно вообще работает

Ну это же ведь прекрасно! Это говорит об отличном проектировании прежде всего.

>Невыгодно тратить много человекочасов на оптимизацию, если оно хоть как-то работает.

Вы говорите так, словно должно быть наоборот. От оптимизации больше проблем, чем плюсов.

По-вашему, компании должны делать "идеальный софт" себе в ущерб?

>Подобные вещи не гарантируют, что с ними всё будет лучше. Но подобное планирование в прямых руках существенно повышает шанс написать нормальный по архитектуре проект, с годным разделением сущностей по уровням абстракций.

Да никто же не спорит, что голова на плечах и дополнительные затраты на этапе проектирования приносят пользу проекту. Я о том говорю, что не стоит переоценивать UML.

>> No.41454  
File: 1287925889953.jpg -(60589 B, 640x480) Thumbnail displayed, click image for full size.
60589

>>41451

>Ну это же ведь прекрасно! Это говорит об отличном проектировании прежде всего.

Это говорит о том, что код писали непрофессиональные мудаки. Если код был написан по индивидуальному заказу, то разработчик обязан предоставить документацию в надлежащей форме, равно как и прописать комментарии в коде.

>По-вашему, компании должны делать "идеальный софт" себе в ущерб?

"Идеальный код" оправдывает себя, проблема в том, что специалистов, способных его написать довольно мало.

>не стоит переоценивать UML

UML не нужно оценивать, его следует использовать. Всегда.

>> No.41457  

>>41451

>не стоит переоценивать UML.

А никто и не переоценивает. Если не умеешь рисовать, планшет тебя не спасёт. Но если умеешь, с ним всё-таки лучше выйдет, чем мышкой.

>> No.41458  

>>41454

>Это говорит о том, что код писали непрофессиональные мудаки. Если код был написан по индивидуальному заказу, то разработчик обязан предоставить документацию в надлежащей форме, равно как и прописать комментарии в коде.

Ну я так понял, что речь шла о каких-то фрагментах и небольших модулях, которые имеют задокументированный интерфейс, но уже никто не помнит, что в действительности внутри происходит.
Гораздо хуже бывает, когда разработчики помнят и знают, как работают все слои системы и каждый модуль по той причине, что из-за кривизны архитектуры им приходится это знать.

>"Идеальный код" оправдывает себя, проблема в том, что специалистов, способных его написать довольно мало.

Ну можно привести много примеров, когда та или иная компания прогорала из-за того, что выпускала свою продукцию лучше, но позже конкурентов.

>UML не нужно оценивать, его следует использовать. Всегда.

Если бы туда хорошо вписывались тэмплэйты, я бы может и согласился.

>> No.41484  
File: 1287956724145.jpg -(98865 B, 571x800) Thumbnail displayed, click image for full size.
98865

Господа, как вы считаете, когда разработают такой интерфейс, что любой пользователь сможет вербально создавать то на что сейчас уходят годы у профессиональных команд разработчиков, а мы, тащемта, даже "кодить за еду" не сможем? Например, уже сейчас пользователь может существенную часть своих потребностей реализовать через дружественный интерфейс, причём код генерируется не хуже чем у среднего кодераста.

>> No.41485  

>>41484
Не думаю, что он сможет полностью заменить кодеров.

>> No.41486  

>>41484

>любой пользователь сможет вербально создавать то на что сейчас уходят годы у профессиональных команд разработчиков

Сейчас "любые пользователи" зачастую даже вербально не могут описать, что они хотят, подробнее, чем "сделать пиздато".
Так что не переживай.

>> No.41510  

>>41484

>когда разработают такой интерфейс

Брукс "Мифический человеко-месяц"

>Глава 16 Серебряной пули нет — сущность и акциденция в программной инженерии
>Нет ни одного открытия ни в технологии, ни в методах управления, одно только использование которого обещало бы в течение ближайшего десятилетия на порядок повысить производительность, надежность, простоту разработки программного обеспечения.

Это написано в 1975 году. Ситуация на данный момент ничуть не изменилась и скорее всего не изменится в ближайшее время. Мы видели появление и падение всяких Rational Rose и т.п. Не стоит беспокоиться, что какая-то "технология" выкинет программистов с рынка труда.

>> No.41514  

>>41510
Технология "дешёвый китайский программист(25шт)" способна выкинуть программистов с рынка труда, а вкупе с недавними заявлениями Медведева о том, что "каждый китаец выучивший русский язык получит работу в России" эта перспектива отнюдь не иллюзорна.

>> No.41522  

>>41514
Вспомнилась еще более древняя книга, кажется, Жюля Верна, где еще в его времена боялись, что китайцы заполонят мир и называли этот феномен "желтой чумой". Как видим, прошло ~150 лет, а ничего кардинально не изменилось.

>> No.41534  

>>41522
Ты знаешь как обстоят дела в EA, например? Там большинство работников - из третьего мира, живут там же, где и работают. И с каждым годом общий процент индийцев и китайцев среди программистов других стран растёт.

>> No.41580  
File: 1288055328395.jpg -(152063 B, 909x1000) Thumbnail displayed, click image for full size.
152063

>>41534
их банально больше, теперь ещё и с образованием.

>> No.41624  
File: 1288116405816.jpg -(62122 B, 672x950) Thumbnail displayed, click image for full size.
62122

Водятся ли на новере lispофаги? Какое практическое применение у этого языка, кроме написания ИИ, который в Рашке никому не сдался? Алсо, что с велосипедами?

>> No.41625  
File: 1288119464935.png -(1328 B, 201x151) Thumbnail displayed, click image for full size.
1328

>>41624
Недавно садился за изучение Haskell. Много кто мне рассказывал, что лиспы - прям переворот сознания по сравнению с императивными языками. Честно говоря, я был разочарован - на порядок большим переворотом сознания для меня было шаблонное метапрограммирование на C++. Может, мое разочарование связано с тем, что с функциональными трюками я уже давно наигрался вместе с бустом.
Хотя лиспером себя назвать не могу, да и на другие языки, кроме хаскеля не смотрел, но все же могу поделиться своими мыслями по поводу функционального программирования.
Во-первых, смысловая плотность у программ на хаскеле гораздо больше, чем на классических языках. Это значит, что заскриптовать что-то побыстрому на них очень удобно. И в то же время по субьективным наблюдениям, после компиляции в нативный код, программа на хаскеле бегает заметно быстрее пайтона и даже луа. Отсюда вытекает ряд применений.
Понравилась статическая типизация хаскеля, тут все как надо.
Понравилось, что есть встроенный целый тип с неограниченным размером (на ряду с обычными целыми числами) - это может быть полезным для каких-нибудь олимпиадных задачек.
Однако есть и минусы. Самое главное, не понятно, сколько программа будет жрет ОП и процессорного времени (lazy-eval делает свое дело тут). Да и не в восторге лично я от того, что все вертится вокруг списковых структур - не самая гибкая структура данных все-таки.
Без понятия, удается ли работать с этими языками в крупных проектах. Глядя на стандартные библиотеки языка и всякие биндинги популярных либ, создается впечатление, что все сводится к процедурному подходу и C-style'у.
По сему, на мой взгляд, самым удобным применением языков является скриптование.

>> No.41629  
File: 1288123757061.jpg -(41010 B, 360x480) Thumbnail displayed, click image for full size.
41010

>>41625
Значит оставляю свой VS. Благодарю, за столь полный, для борд разумеется, обзор. Думаю, что такому прикладнику как я подобный инструмент не пригодится, да и, насколько я знаю, крупные разработчики коммерческого ПО используют более стабильные классические языки со всеми их костылями и велосипедами.

>> No.41643  
File: 1288149639884.jpg -(156712 B, 360x578) Thumbnail displayed, click image for full size.
156712

>>41625
а мне вот почему-то кажется, что функциональные языки программирования нужны для написания систем, а не программ "ввод-обработка-вывод". динамическое программирование(тащемто вообще отлично со скриптованием исполнения кода), системы уравнений, балансирование какой-нибудь системы, нейросети. вот как-то так.

>> No.41661  
>нейросети

Числодробилка- это си или фортран, хаскель тут пока проигрывает в скорости (и скорее всего будет проигрывать дальше). Хотя из функциональных он самый быстрый (т.к. компилируемый).

>> No.41671  

>>41643

>а мне вот почему-то кажется, что функциональные языки программирования нужны для написания систем, а не программ "ввод-обработка-вывод"

Я ни на чем не настаиваю. Я писал со своей прагматичной точки зрения.

>>41629

>что такому прикладнику как я подобный инструмент не пригодится

Инструментов много не бывает. Для общего развития, оно, наверное, полезно. Это все же лучше, чем изучать очередной шарп. Но, конечно, к этим языкам лучше приходить, когда уже есть солидный опыт классического программирования.

>> No.41675  
File: 1288180548187.gif -(46230 B, 401x537) Thumbnail displayed, click image for full size.
46230

>>41671

>Это все же лучше, чем изучать очередной шарп

Шарп достаточно эффективен, да и мультьиплатформенность у него не отнять. А про то, что уровень ООП в шарпе выходит на новый уровень говорить излишне - на первых порах, конечно, непривычно, но потом приходит понимание.

>к этим языкам лучше приходить, когда уже есть солидный опыт классического программирования

К счастью, моя специальность этого не требует, так как достаточно умения грамотно описать чёрные ящики программистам - то есть сформулировать алгоритмы и взаимодействие функций, а уж как и на чём они это реализуют, по большому счёту вторично.

>> No.41676  

>>41675
самофикс

>что уровень ООП в шарпе выходит на новый уровень говорить излишне

качество ООП, может так лучшее... Да и вообще, как можно измерить ООП

>> No.41678  

>>41675

>уровень ООП в шарпе выходит на новый уровень
>мультьиплатформенность у него не отнять

ага, очень смешно.

>> No.41680  

>>41678

>ага, очень смешно

А что не так? C# без проблем конвертится в любой другой популярный язык, а также он объектно-ориентирован.

>> No.41681  

>>41680

>C# без проблем конвертится в любой другой популярный язык

Это его характеризует, как мультиплатформенный?

>oн объектно-ориентирован.

А что там качественно лучше? И качественно лучше по сравнению с чем?

>> No.41682  
File: 1288186225583.png -(783677 B, 800x1000) Thumbnail displayed, click image for full size.
783677

>>41680

>C# без проблем конвертится в любой другой популярный язык
>мультьиплатформенность у него не отнять
>а также он объектно-ориентирован
>уровень ООП в шарпе выходит на новый уровень

difference.

тебе надо в политику идти, мастерски пиздеть будешь.

>> No.41683  

>>41682
от себя добавлю, что шарп- говно для говноедов, источник всего зла.

>> No.41688  
File: 1288189711188.jpg -(99322 B, 800x600) Thumbnail displayed, click image for full size.
99322

>>41681
Платформа .net имеет версии для всех популярных осей, как следствие, C# можно считать мультиплатформенным.

>А что там качественно лучше? И качественно лучше по сравнению с чем?

По сравнению с C++, другие ООП языки мне неведомы, да и не нужны, об этом я уже писал.

>от себя добавлю, что шарп- говно для говноедов

Причём говноедство оптимизировано под самую популярную ось и многие гуру считают его перспективным и да, тогда я говноед.

>> No.41693  

>>41688

>Платформа .net имеет версии для всех популярных осей, как следствие, C# можно считать мультиплатформенным.

Это такие платформы, как windows xp, vista и 7?

>По сравнению с C++, другие ООП языки мне неведомы, да и не нужны, об этом я уже писал.

И что же там такого выдающегося в плане ООП? Неужели, ты имеешь в виду наличие делегатов?

>> No.41695  
File: 1288190908450.jpg -(76033 B, 264x720) Thumbnail displayed, click image for full size.
76033

>>41688
я так понимаю, что ты системный архитектор. так вот, тебе, по-хорошем, вообще ничего кроме хороших навыков общения, вникновения в тему заказчика и юмл нахуй не нужно. а вот на местах, у программистов,

>Платформа .net
  • падающее, уёбищное говно.

да, эти твои гуру- баллмеровы подпевалы и хуесосы, которые за большие деньги производят энтерпрайз-говно, которое продаётся только потому, что вся айти-индустрия по принципу минимизации энергии производит энтерпрайз-говно(и это считается переспективным). то есть среди энтерпрайз-говна нет ничего, что бы могло составить ему конкуренцию, а младших программистов вытеснили прикладные программисты на .net-говне. ах да, за использование говношаблонов из .net-говна нужно бить по рукам. программист должен не конструкторы из забагованой хуйни собирать, а писать осмысленный код. ему и так дают задание на сраный класс, ну опиши ты этот несчастный класс нормально, нет говорит, хочу жрать говно. и кругом говно, даже небо, даже аллах, и всё падает. алсоу, здесь отчасти вина хуёвых системных и старших программистов, которые за своими рабами плохо следят.

>> No.41759  
File: 1288333231975.png -(1598975 B, 800x1032) Thumbnail displayed, click image for full size.
1598975

я вот тут пытаюсь пропатчить вайн патчем из этого треда http://bugs.winehq.org/show_bug.cgi?id=13490 а то иначе НИПАИГРАТЬ в хисоу под линями, но одна проблема: автор не указал для какого вайна этот патч. к 1.0r2 и 1.2 не подходит, можно конечно выкачать все вайны и смотреть где есть нужные хидеры, для начала, но таки может можно менее анально определить? там же правильные версии пропатчили прыщедрузья.

>> No.41761  
File: 1288333601018.jpg -(428326 B, 848x1200) Thumbnail displayed, click image for full size.
428326

>>41759
Ты о http://bugs2.winehq.org/attachment.cgi?id=30608 ? Он же небольшой, вполне можно и ручками наложить. Если настолько лень, попробуй 1.3.1.

>> No.41762  
File: 1288333975621.jpg -(29965 B, 327x283) Thumbnail displayed, click image for full size.
29965

>>41761
так ты смотри, тут же вот что в инклюдах есть

#include "config.h"

#include "d3d9_private.h"

  • #include <fpu_control.h>

а в 1.3 и 1.2 последних двух хидеров нету.

>> No.41764  
File: 1288334105932.jpg -(150517 B, 650x777) Thumbnail displayed, click image for full size.
150517

>>41762
На #include "d3d9_private.h" попробуй забить, а #include <fpu_control.h> как раз таки и добавляется патчем.

>> No.41766  
File: 1288335333027.png -(408668 B, 580x812) Thumbnail displayed, click image for full size.
408668

>>41764
я вообще ничего не понял? как это хидер добавляется патчем?

>> No.41767  
File: 1288335947681.jpg -(226452 B, 1000x750) Thumbnail displayed, click image for full size.
226452

>>41766
В этом есть что-то противоестественное?

>> No.41768  

>>41767
он создает файл хидера, или что? как вообще понимать синтаксис патча?

>> No.41770  
File: 1288336766480.jpg -(173011 B, 850x680) Thumbnail displayed, click image for full size.
173011

>>41768
Он добавляет строку

#include <fpu_control.h>
> как вообще понимать синтаксис патча?

Синтаксис очень простой:

> *** ./device.c 2010-08-21 00:23:50.000000000 +0700

имя файла который патчится;

> *** 22,27 ****
> --- 22,28 ----

строки, в которых следует искать нужный кусок кода;
строки, которые начинаются с пробела остаются без изменений, даны для проверки на предмет правильности патча и/или возможности сориентироваться, если что-то было сдвинуто;
строки, которые начинаются с '-' удаляются;
строки, которые начинаются с '+' добавляются;
строки, которые начинаются с '!' заменяются.

>> No.41772  

>>41770
ага, ясно. но тем не менее, где берётся fps_control.h. может это не вайновский хидер?

>> No.41773  

>>41770
я понял в чём дело. тут несколько разных девайсов есть, я не там искал.

>> No.41774  

>>41759
хисоу = хисотенсоку?

http://hisouten.koumakan.jp/wiki/Linux_support

Патч на игру чтобы в вайне работало.

>> No.41775  
File: 1288338770816.jpg -(217219 B, 800x600) Thumbnail displayed, click image for full size.
217219

>>41770
спасибо, запихал патч в ебилд, конпелируется сейчас.
>>41774
там нет фикса, фикс недавний на багзилле, но что-то такое.

>> No.41776  
File: 1288340474311.png -(413773 B, 864x1174) Thumbnail displayed, click image for full size.
413773

>>41775
если ещё заработает сетевая игра- я буду рад как кот.

>> No.41777  

>>41775
Просто установи патч по моей ссылки на Хису и у тебя всё заработает в любой версии вайна. Не надо сам вайн патчить. У меня с этим патчем всё работает в линуксе и барсике, даже сетевая игра. И свар, и хисотенсоку работает.

>> No.41779  
File: 1288342263156.jpg -(70292 B, 288x472) Thumbnail displayed, click image for full size.
70292

>>41777
вайн я патчил потому что у меня x64 система, а от тех патчей никакого проку.

>> No.41782  

>>41777
у меня категорически отказываются работать шрифты. что же делать?

>> No.41790  

>>41782
В папку блеать где на маке тильда ±/drive_c/windows/fonts скопируй шрифты из венды, должно помочь.

>> No.41791  

>>41790
~/.wine/drive_c/windows/fonts

>> No.41795  

>>41790
бесполезно, это какой-то странный баг перевода.

>> No.41815  

>>41795
Запускай с правильной локалью.

>> No.41818  

>>41815
вот тогда шрифтов и нет.

>> No.41830  

>>41818
Патчи ставил на прозрачные тексты, тонкие шрифты, etc? Какая версия вайна? Недавно пофиксили невидимые шрифты.

>> No.41831  
File: 1288448991546.jpg -(435137 B, 571x800) Thumbnail displayed, click image for full size.
435137

>>41830
нет, 1.2, шрифтов нет в локализации и при запуске под японской локалью. без локали в оригинале нормальные квадратики и точки вместо буковиц.

>> No.41847  
File: 1288472126938.jpg -(42184 B, 440x600) Thumbnail displayed, click image for full size.
42184

Программач, стоит ли изучать Java? Какие здесь могут быть подводные камни?

>> No.41861  
File: 1288498732908.jpg -(5719467 B, 4104x3927) Thumbnail displayed, click image for full size.
5719467

>>41847

>Программач, стоит ли изучать Java?

да.

>Какие здесь могут быть подводные камни?

если других языков не знаешь- можно стать джавабыдлом.

>> No.41864  

>>41847
Начинал c явы. Через год возненавидел ее, взялся за C++, через 3 года полюбил его. К яве сейчас отношусь нормально, наверное, по той причине, что с ней редко работаю.
Основной подводный камень - баги и глюки на некоторых реализациях виртуальной машины (особенно, это касается java me). Еще есть риск стать ООП-зомби, насмотревшись на индусские поделки.

>> No.41867  

Что нужно изучить чтобы без проблем устроиться программистом в дс? 8 лет прогаю на с и с++. Прозреваю, что есть необходимые требования к знаниям, которые стоит подтянуть заранее, вместо того, чтобы проебать выгодное предложение.

>> No.41869  
File: 1288516766259.jpg -(201577 B, 578x840) Thumbnail displayed, click image for full size.
201577

>>41867
Программисты, они разные бывают, в том числе и на C и CXX, кто-то интерфейсы рисует, кто-то драйвера пишет. Проще всего будет наведаться в целевую контору и поинтересоваться на предмет требований.

>> No.41918  
File: 1288546580335.jpg -(140466 B, 778x1098) Thumbnail displayed, click image for full size.
140466

>>41861

>если других языков не знаешь- можно стать джавабыдлом.

Только ли? Учитывая ненависть, с которой жаберы относятся к остальным программистам - в яве есть что-то "не то", родовая травма, так сказать. Алсо знаю пяток языков, которые считаются наиболее популярными,алсо - быдлокодерскими(в основном те языки, которые форсит MS, да)
>>41864

>на индусские поделки

Реквестирую кулстори, про индусские поделки.

>> No.41920  

>>41918

> Реквестирую кулстори, про индусские поделки.

http://govnokod.ru/

>> No.41921  

>>41920
О, он поднялся, я думал, он лег навсегда.

>> No.41922  

>>41869
Я до этого работал в нетребовательных конторах, писал кому-то драйвера, кому-то интерфейсы, кому-то плагины для проприетарного софта, разок даже руководил. Разного рода опыт есть везде, но. Друга админом не взяли из-за того, что не смог перечислить назначения всех портов, не хотелось бы какую-нибудь глупость не вспомнить на собеседовании, хоть и понимаю, что кто такое спрашивает - не самые лучшие работодатели.

>> No.41924  
File: 1288551619276.jpg -(267117 B, 965x1000) Thumbnail displayed, click image for full size.
267117

>>41922
Тебе действительно хочется работать там, где обращают много внимания на всякие мелочи?

>> No.41925  

>>41922
http://blog.gamedeff.com/?p=64
http://www.rsdn.ru/forum/cpp/1866114.flat.aspx#1866114
Почитай, может, поможет.

>> No.41926  

>>41924
Если на собеседовании обращают внимание на мелочи, значит они серьёзно не разбираются в вопросе, а значит в дальнейшем мешать работать не будут.

>> No.41927  
File: 1288552144303.jpg -(125031 B, 671x867) Thumbnail displayed, click image for full size.
125031

>>41924
может платят хорошо.

>> No.41929  

На собеседованиях бывает забавно глумиться над интервьерами, когда те сами не уверены в своих знаниях, но это, конечно, касается слабеньких контор.

>> No.41936  
File: 1288554107072.jpg -(138271 B, 696x840) Thumbnail displayed, click image for full size.
138271

>>41926
Иногда это означает, что к тебе будут лезть со всевозможными абсурдными идеями или задергают по пустякам или будут оценивать твою работу по какому-нибудь глупому критерию типа количества строчек или красивости интерфейса. Хотя естественно раз на раз не приходится, тут многое от удачи зависит.

>> No.41938  

>>41936
Не всегда на собеседовании тот человек, под началом которого ты будешь работать.

>> No.41940  
File: 1288555060588.jpg -(107184 B, 850x689) Thumbnail displayed, click image for full size.
107184

>>41938
Если на фирме есть знающие люди, но в собеседовании они не участвуют, то это еще один повод задуматься над нужностью работы в такой фирме.

>> No.41941  

>>41940

>на фирме

айлолд.

>> No.41945  
File: 1288557120937.jpg -(65514 B, 500x430) Thumbnail displayed, click image for full size.
65514

Нередки случаи, когда сначала проводят интервью какие-нибудь HR-менеджеры (часто по телефону). Делают они это только по ключевым словам и вопросам, на которые предполагается 1 внятный ответ. Именно на этом этапе можно легко завалиться, если не готов, ведь полуправильные ответы или знание, как узнать ответ в течение минуты, здесь уже не катят.

>> No.41948  
File: 1288560772325.jpg -(33806 B, 400x450) Thumbnail displayed, click image for full size.
33806

>>41945
HR-менеджер как правило не может правильно оценить уровень компетентности специалиста, хороший HR менеджер это должен понимать, и просто задать несколько более-менее общих вопросов, исходя из которых сделает вывод о том, являешься ли ты тем, за кого себя выдаешь, или нет, и на основании этого либо назначить тебе собеседование с участием компетентного специалиста, либо же сразу сообщить, что ты не подходишь. Так же он должен понимать, что на многие вопросы ответов может быть больше одного и не на все вопросы каждый специалист сходу может дать ответ. Бывает, что HR по совместительству айтишник или бывший айтишник, или же считает себя таковым, хотя и не является им. В первых двух случаях ответ на твой вопрос будет засчитан, даже если он не будет являться стандартным, в последнем перед тобой потенциальный источник проблем.
Если ты видишь, что разговаривающий с тобой человек не разбирается в вопросе, но пытается задавать узкоспециализированные вопросы, думаю для тебя не составит труда загрузить его уточняющими вопросами или забросать терминами до состояния забывания исходного вопроса.
И самое главное - если ты по каким-то причинам провалил собеседование то конец света от этого не наступит, у тебя еще есть неограниченное количество попыток пройти его в других фирмах или даже в этой, спустя какое-то время. Успехов тебе!

>> No.41990  
File: 1288709624776.jpg -(15745 B, 350x390) Thumbnail displayed, click image for full size.
15745

Анон, см пикрелейтед. Как ты думаешь, сможет ли эта мелкомягкая технология вытеснить Adobe и HTML5 video?

>> No.41994  
File: 1288710651144.jpg -(422646 B, 1000x786) Thumbnail displayed, click image for full size.
422646

>>41990
Сомневаюсь, оно не разу не кроссплатформенное. HTML5 поддерживается большинством браузеров "из коробки", уже сегодня. Так же простота интеграции видео в страницу на нем не может не порадовать большинство вебмастеров.

>> No.41998  

>>41990
Они опоздали лет на 5, уже не конкурентно.

>> No.42004  
File: 1288722031723.jpg -(36190 B, 500x500) Thumbnail displayed, click image for full size.
36190

>>41994

>оно не разу не кроссплатформенное

Ни разу
Но это придирки. Как думаешь сколько всего обычных пользователей-unixоидов? Правильно, так мало, что их интересами можно пренебречь. Кроссплатформенность, в данном случае, не критерий.

>HTML5 поддерживается большинством браузеров "из коробки", уже сегодня.

Да, поддерживают, но если Балмер поднажмет будет и Silverlight.

> Так же простота интеграции видео в страницу на нем не может не порадовать большинство вебмастеров

А мне кажется, что S более стабильна и производительна...

>Они опоздали лет на 5, уже не конкурентно.

Пять лет назад бал правил Adobe - а новая война началась около года-двух назад.

>> No.42006  
File: 1288731506484.jpg -(167849 B, 600x839) Thumbnail displayed, click image for full size.
167849

>>42004

> Как думаешь сколько всего обычных пользователей-unixоидов?

Компьютер сегодня (не говоря уже о завтра) не единственное устройство, позволяющее просматривать видео на веб. Кстати доля того-же мака порядка 5%, что не так уж и мало.

> А мне кажется, что S более стабильна и производительна...

Каким образом дополнительная прослойка между браузером и видео может улучшить производительность?

>> No.42007  
File: 1288732435085.jpg -(16264 B, 300x364) Thumbnail displayed, click image for full size.
16264

>>42004

>Как думаешь сколько всего обычных пользователей-unixоидов?

А сколько серверов на базе ос, поддерживающей сервелат? У него же не только клиентская часть. Или ты возлагаешь на mono большие надежды? Я бы не стал.

>> No.42009  
File: 1288733530967.jpg -(81071 B, 500x356) Thumbnail displayed, click image for full size.
81071

>>42006

>Компьютер сегодня (не говоря уже о завтра) не единственное устройство, позволяющее просматривать видео на веб

И на этих устройствах, в большинстве своём, нужна приблуда от Adobe, что мало отличается от Silver...

>Кстати доля того-же мака порядка 5%, что не так уж и мало.

Да, немало. Вот только MS может сними договориться, либо поиметь, что тоже неплохо - Джобс для них как заноза, да, там...

>Каким образом дополнительная прослойка между браузером и видео может улучшить производительность?

Увы - этого я не знаю, тут эмпирика...

> Я бы не стал.

Технология то молодая, возможно пойдёт и на кросс...

>> No.42010  
File: 1288733966621.jpg -(101431 B, 600x848) Thumbnail displayed, click image for full size.
101431

>>42009

> И на этих устройствах, в большинстве своём, нужна приблуда от Adobe, что мало отличается от Silver...

Эти устройства как правило неплохо умеют html5 video.

> Увы - этого я не знаю, тут эмпирика...

Тесты в студию.

> Технология то молодая, возможно пойдёт и на кросс

А возможно и закопают.

>> No.42011  
File: 1288734305747.jpg -(29887 B, 500x287) Thumbnail displayed, click image for full size.
29887

>>42009

>Технология то молодая, возможно пойдёт и на кросс...

Ты бы эксперимента ради попробовал, как оно есть сейчас.

>Увы - этого я не знаю, тут эмпирика...

Довольно трудно убедить в том, чего нет.

>Балмер поднажмет будет и Silverlight.

Ютуб на сервелат не пойдёт, они уже сейчас поддерживают (пока экспериментально) HTML5. И вообще гугл совершенно не заинтересован в поддержке этой поделки. Стоит ли говорить, что девелоперсдевелоперсдевелоперс на гугл не подействует?

>> No.42012  
File: 1288737441435.jpg -(335931 B, 604x900) Thumbnail displayed, click image for full size.
335931

>>42007
господа, вы как-то упустили

>на mono
>на mono

закапывайте это говно обратно.

ах да, слава бороде столлмана, фаерфокс пока что никуда с рынка уходить не собирается, и вот они вряд ли будут продвигать совместимость с баллмеровским говноподелием.

>> No.42015  
File: 1288739481090.jpg -(124763 B, 670x850) Thumbnail displayed, click image for full size.
124763

>>42012

>закапывайте это говно обратно.

Микрософт всерьёз предлагает использовать сервилат именно в связке с моно в случае никсовых серверов, или ты знаешь другой способ запускать дотнет на линуксе? Я сразу намекнул, что идея - говно.

Кстати никакой ненависти к М$ не испытываю, но поделка уж больно дурацкая, и если её будут пытаться агрессивно насаждать она всё равно не приживётся, но нервов всем попортит.

>> No.42023  

>>42009

>Технология то молодая, возможно пойдёт и на кросс...

Принципиально нет смысла портировать. Silverlight это .net для нужд web, это однозначная привязка к одной популярной оси и в клиенте и в сервере.

Но бог с ним. Как там поживают непростые отношения гнома со Столманом? Не планируют выход из gnu?

>> No.42090  
File: 1288876081330.jpg -(124062 B, 800x636) Thumbnail displayed, click image for full size.
124062

господа, а вы никакой консольной поеботы для обработки звука не знаете? я хочу, чтобы мне гладос зачитывала все системные сообщения.

>> No.42092  

>>42090
Для обработки или для генерации?
Если для генерации, то фестиваль или еспеак.
while true; do espeak -vaf+whisper -a 200 -z "killl all humansss"; done

>> No.42093  

>>42092

>для обработки звука
>> No.42094  

>>42090
sox?

>> No.42110  

По поводу silverlight: http://www.3dnews.ru/software-news/microsoft-pereklyuchaet-fokus-s-silverlight-na-html5

>> No.42149  

Кстати, вдруг кто-то еще не знает: youtube.com/html5

>> No.42150  

>>42149
Только большинство роликов все равно на флеше играется.

>> No.42264  
File: 1289155853330.jpg -(283437 B, 1053x1404) Thumbnail displayed, click image for full size.
283437

>>42092
не, я фестивалем проигрываю с качественными голосами. только один вопрос теперь стоит: а что собственно проигрывать? у меня же система выдаёт сообщения практически только во время emerge -uD.

>> No.42269  

>>42264
dmesg

>> No.42282  

>>42269
смысл?

>> No.42285  

>>41405
Как устроен ArtMoney? Последовательно прибавляет к значению базового адреса выбранной программы растущую переменную, приводит к искомому типу, проверяет и сравнивает?

>> No.42288  
File: 1289210553020.jpg -(261707 B, 675x600) Thumbnail displayed, click image for full size.
261707

>>42285
Открывает виртуальную память целевого процесса и ищет значение в ней.

>> No.42289  

>>42285
Вот что нашёл:

Предмет повествования состоит в изучении принципов сканирования виртуальной памяти процессов (этим занимаются такие программы как ArtMoney и др.), создании и реализации алгоритма целочисленного "универсального обманщика игр".

Задача:
Найти адрес переменной в адресном пространстве целевого процесса.
Ограничения: Для простоты рассматриваются целочисленные переменные размером dword, поиск проводится по младшему байту.

Идея:
Организация поиска в страницах памяти, доступных для чтения и записи, целевого процесса начиная с адреса 010000h по 7FFF0000h [1]. Для получения информации о страницах памяти внешнего процесса естественно использовать VirtualQueryEx. Для чтения памяти - ReadProcessMemory.
Поиск адресов происходит многопроходным образом, причем начальный этап отличается от остальных: сначала необходимо сохранить адреса всех байтов, имеющих заданное значение, далее сужать поиск по сохраненным адресам при изменении значения искомой переменной.
Алгоритм верхнего уровня детализации для первого прохода выглядит так:

Получить описание страницы памяти чужого процесса;
ЕСЛИ страница принадлежит диапазону поиска то п. 3 ИНАЧЕ выход;
ЕСЛИ страница не доступна для чтения и записи ТО п. 5;
сохранить в список все адреса переменных, значения которых равны заданному;
Перейти к следующей странице и п. 1;
Алгоритм последующих проходов:
Прочитать значение переменной по адресу из списка (в памяти исследуемого процесса);
ЕСЛИ значение равно заданному ТО п. 4;
Удалить адрес из списка;
ЕСЛИ список не закончился ТО Перейти к адресу следующей переменной и п. 1;

Алгоритм
Общий алгоритм программы состоит из нескольких частей:
Организация списка адресов.
Так как заранее неизвестно количество найденных переменных при первом проходе (в дальнейшем оно будет уменьшаться), логично зарезервировать некоторый объем памяти, скажем 4*VARMAX, где VARMAX - это наибольшее возможное количество найденных переменных. Это число, на практике, небесконечно и определяется, с одной стороны, временем максимально долгого возможного поиска, а с другой, - достаточностью объема для проведения поиска. В среднем хватает 10*1024*1024 переменных. Причем, следует отметить, что при начальном поиске переменных со значением 0, велика вероятность нехватки указанного объема, по нескольким причинам, в том числе и из-за чтения зарезервированных областей (еще не используемых процессом), которые возвращают 0. Множитель 4 введен исходя из размера хранимого адреса переменной равного dword. Легко видеть что нет необходимости передавать всю зарезервированную память адресов сразу (это можно сделать при первом обращении к ней), т.о. можно считать подготовку списка адресов переменных завершенной:
;резервирование с передачей физической памяти при обращении.
invoke VirtualAlloc,0,BSIZE,MEM_RESERVE+MEM_COMMIT,PAGE_R EADWRITE

;ЕСЛИ не удалось выделить память, ТО выход
;(далее для краткости обработка ошибок опускается)
test eax,eax
jz NotEnoughMem

;ИНАЧЕ сохранение адреса начала блока памяти.
mov [addrbuffer],eax
Примечание: здесь и далее программный код приводится в соответствии с синтаксисом flat assembler (fasm)[2].
Получение Handle процесса для чтения, записи.
Предлагается следующий путь: Сначала получим Handle окна необходимого процесса, затем получим идентификатор процесса создавшего окно, затем "откроем" процесс для проведения операций с памятью.
;ebx содержит адрес названия необходимого окна.
invoke FindWindow,0,ebx

;создать в стеке переменную, и передать ее адрес из esp в параметры
push eax
;для получения идентификатора процесса
invoke GetWindowThreadProcessId,eax,esp
pop eax ;вынуть из стека результат.

;получить Handle процесса для операций с памятью
invoke OpenProcess,PROCESS_QUERY_INFORMATION+PROCESS_VM_O PERATION+PROCESS_VM_READ+PROCESS_VM_WRITE,0,eax
mov [hProcess],eax ;сохранить Handle открытого процесса.
Организация считывания целевых (RW) страниц.
Итак, по порядку: получаем адрес начала и размер текушей страницы памяти, проверяем права доступа на чтение и запись. Создаем блок памяти требуемого размера в текущем адресном пространстве (для копирования), читаем блок из исследуемого процесса в созданный блок. После отработки поиска байтов освобождаем уже не нужный блок.
;Сначала [fmbi.BaseAddress] = начальному адресу 10000h,
;а [fmbi.RegionSize] = 0, BaseAddress+RegionSize = адресу первого блока
getblock:
;в дальнейшем BaseAddress+RegionSize = адресу следующего блока
mov eax,[fmbi.BaseAddress]
add eax,[fmbi.RegionSize]

mov [address],eax
;прочитать состояние блока
invoke VirtualQueryEx,[hProcess],[address],fmbi,MBIsz
cmp [fmbi.Protect],PAGE_READWRITE ;проверить доступ
jne getblock ;ЕСЛИ нет возможности чтения и записи, ТО перейти к новому блоку

;создать блок нужного размера блока
invoke VirtualAlloc,0,[fmbi.RegionSize],MEM_COMMIT,PAGE_READWRITE
mov [buffer],eax

;скопировать в него память исследуемого процесса
invoke ReadProcessMemory,[hProcess],[fmbi.BaseAddress],eax,[fmbi.RegionSize],BytesRead

;... осушествить поиск и сохранение адресов

;освободить блок
invoke VirtualFree,[buffer],0,MEM_RELEASE
Сохранение адресов искомых переменных.
Запустить сканирование до совпадения байта или конца строки, получить адрес совпадающего байта в пространстве искомого процесса (учитывая то, что поиск ведется в созданном блоке текущего процесса), сохранить адрес в списке.
;вход:
; ecx = edx = количеству прочитанных байт
; esi содержит адрес блока (в текущем адресном пространстве)
; edi - адрес списка
; ebx - адрес начала блока в адресном пространстве исследумого процесса

lfind:
xchg edi,esi
repne scasb ;поиск до совпадения al с байтом из строки edi
xchg edi,esi

jne getblock;ЕСЛИ ничего не найдено ТО к следующему блоку

;Адрес = Адрес начала блока в исследуемом процессе + смещение в текущем
;Смещение в текущем = количество прочитанных байт edx - оставшиеся байты ecx
neg ecx ;изменить знак
lea eax,[edx+ecx] ;получить смещение
dec eax ;учесть что считаем с 0, а не с 1
add eax,ebx ;добавить [fmbi.BaseAddress]
stosd ;сохранить адрес в список адресов

neg ecx ;проверить последний ли это байт
jz getblock ;ЕСЛИ да ТО перейти к следующему блоку
jmp lfind ;ИНАЧЕ проболжать поиск в текущем блоке
Примечание: В [3] использование префиксов описано с ошибками.
Определение действительных адресов искомых переменных (дальнейший поиск).
Получить адрес из списка, прочитать память процесса, сравнить прочитанное значение с заданым, если 1= то удалить адрес.

>> No.42290  

>>42289
http://www.wasm.ru/article.php?article=fb2 А вот тут уже что-то дельное. Подгрузить свою библиотеку к процессу, и сканировать его память в ней. Много непонятного, но есть с чего начинать копать.

>> No.42295  

Анон, реквестирую список бесплатных центров тестирования и сертификации по направлению Computer Science. Цель - измерить свой... свои знания.

Прошел сертификацию от braintech, качество вопросов сносное, но как-то больно легко далось - я даже не готовился, а вытянул на "c++ master". Тест можно пройти тут: http://www.brainbench.com/xml/bb/common/testcenter/testcenter.xml, промо-код (чтобы нахаляву) - pcworld536

>> No.42357  

>>42295
hax.tor.hu не сертификация, но измерить свои знания сгодиться.

>> No.42483  

>>42289
>>42290
Я полный идиот. Почему я сразу не догадался почитать Рихтера? Помнил же, что там что-то такое было. Иногда стоит читать книги перед тем, как искать решение в интернете.

>> No.42737  

Как отключить выполнение фрагментного шейдера (оставив выполнение вершинных) в OpenGL когда нужно только значение глубины? Запрет на рисование в цвет

glColorMask(0,0,0,0);
glReadBuffer(GL_NONE);
glDrawBuffer(GL_NONE);

по-идее должен помочь, но откуда тогда разница в производительности на ATI при замене фрагментных шейдеров на

void main()
{
glFragColor(0.0);
}

? Неужели придётся хранить по 2 версии шейдеров - для отрисовки в буффер глубины и нормальных?

С этими Ати как с IE6, сплошные костыли.

>> No.43510  
fpos_t pos1;
fgetpos(file1,pos1);
pdata1= (uchar*)malloc((size_t)pos1.__pos);

что это за __pos такой, и зачем он нужен? Компилятор ругается, что pos1 не класс и не структура, чтобы к мемберу обращаться.

>> No.43511  

>>43510
Попробуй убрать '.__pos'.

>> No.43512  

>>43511
Это я уже сделал, мне просто интересно, что оно должно было собой символизировать.

>> No.43561  

>>42737
А почему ты решил, что запрет на рисование отключает выполнение шейдеров? Сомневаюсь, что спецификация требует такое поведение.

>Неужели придётся хранить по 2 версии шейдеров - для отрисовки в буффер глубины и нормальных?

Это не самое страшное. Люркай, что такое убершейдеры.

>С этими Ати как с IE6, сплошные костыли.

Я все-таки склонен думать, что все немного наоборот: нвидия так хороша, что кушает любое говно, которое криворукие кодеры ей подсовывают. Но часто ати лажает, да.

>> No.43562  

>>43512

>Это я уже сделал, мне просто интересно, что оно должно было собой символизировать.

Похоже, у тебя в руках быдлокод, который ориентируется на какую-то конкретную реализацию fpos_t на каком-то конкретном компиляторе и платформе. Очевидно, что твоя платформа и/или компилятор отличается от той, что используется автором этого поделия.

>> No.43563  

>>43510
Кстати, приведение fpos_t к size_t - тоже быдлокод.

>> No.43574  

>>43561
Вот в том и дело, что много важных вещей в спецификации никак не отражено. Например, если фрагмент не проходит z тест, на большинстве видеокарт и драйверов для него не выполняется пиксельный шейдер. Этого нет в спецификации, но тем не менее большинство современных игр лишний раз рисуют сцену с отключеными каналами цвета чтобы при отрисовке поверх этого z тестом порезало лишнее. Разумеется всё это дело работает только если шейдер не пишет ничего в глубину (z-корректный параллакс идёт лесом, а жаль, он-то как правило самый тяжелый).
Никак не описано в спецификации поведение шейдеров при обрезании стенсилем.
Тем не менее, по здравому смыслу так ДОЛЖНО быть. Почему этого нет в спеках, это отдельный разговор, до сих пор ничего не делается несмотря на многочисленные жалобы.

>нвидия так хороша, что кушает любое говно,

Это у неё не отнять. У меня иногда такое впечатление, что у всех китайцев поголовно нвидиа и им совершенно насрать как будут работать их поделки у остальных.

>которое криворукие кодеры ей подсовывают.

Ко мне это не относится. Мои шейдеры работают и там и там, про 2 версии я имел в виду чтобы добавить в каждый шейдер вариант с пустым фрагментным для z-only прохода.

И вообще, ты насколько близко с Ati знаком? У них такие неожиданные чудеса временами, что я просто хренею с них. Приходилось пользоваться особой OpenGL-магией, жаль не припомню уже - это было во времена радеонов 9ххх.

>> No.43576  

>>43574

>про 2 версии я имел в виду чтобы добавить в каждый шейдер вариант с пустым фрагментным для z-only прохода

Я тебя понял и не вижу в этом ничего ужасного.

>И вообще, ты насколько близко с Ati знаком?

Близко, но до секса у нас с ней еще не дошло.

>> No.43578  

>>43563
Сишная манера обращению к файлам в проекте на c++ тоже быдлокод. Особенно вперемешку с stl.

>на каком-то конкретном компиляторе и платформе.

Это еще ничего. Когда быдлокодеры пытаются написать подо все платформы встречаются и такие перлы:
#if _MSC_VER == 1200
for(int i;
for(int i;
#else
for(int i;
for(i;

>> No.43579  

>>43578
И даже это не идёт ни в какое сравнение с комментариями на родном языке. НЕНАВИСТЬ НЕНАВИСТЬ НЕНАВИСТЬ

>> No.43668  
File: 1290446810555.png -(121796 B, 600x600) Thumbnail displayed, click image for full size.
121796

>>43579
названия_переменных_транслитом

kolishestvo

>> No.43686  

var jatah = 300;

function perang(jumlah){

if (jumlah > 0) {
unsafeWindow.$j('#fight_btn').click();
window.setTimeout(function () { perang(jumlah - 1); }, getDelay(2.0, 1.0));
}

}

function mulai(){

if (typeof unsafeWindow.$j == 'undefined')
window.setTimeout(mulai, 1000);
else {
if (unsafeWindow.SERVER_DATA.onlySpectator != 0) return;
bacaStatus();
var textAsli = $('div[id="pvp_header"] h2').html();
$('div#sidebar').append('<br/><input id="btnGattling" type="button" value="Gattling Gun" />');
$('input#btnGattling').click(function(e){
tombolNyala(false);
perang(Math.floor(health / 10.0) - 2);
tombolNyala(true);

... и т.п.

>> No.43691  

>>43579
Что делать тем, для кого английский - родной язык?

>> No.43716  

>>43691
Писать комментарии на русском а названия переменных в ромадзи.

>> No.43735  

>>43691
Бить плёткой индусов, которые пишут за тебя код.

>> No.43910  

http://www.lighthouse3d.com/opengl/glsl/index.php?ogloverview
Какой вариант предпочтительней? Сразу требовать поддержку OpenGL 2.0 (все нужные расширения уже включены в ядро) или требовать поддержку только нужных расширений?
Вопрос возник после того, как на карточках Ати не нашлось поддержки даже OpenGL_1_2, но при этом поддерживаются GL_ARB_vertex_shader && GL_ARB_fragment_shader.

>> No.43911  

>>43910
Ах да, видеокарта directx10-совместимая, так что все нужные расширения в ней заведомо есть.

>> No.44819  
File: 1291311213704.jpg -(197454 B, 500x652) Thumbnail displayed, click image for full size.
197454

Новерь, а новерь. Хочу жабу изучить. Есть желание, есть время, есть учебники, есть скиллы гугления.
Есть также мнение, что обучаться в процессе проще. Как выбрать какой-нибудь небольшой (для начала) проект, с которого и начать изучение? Примеры в учебнике скучные и уж точно нахуй никому не нужные.

Тред не читал.

>> No.44828  

>>44819
сделай чтобы с данборы кочались пикчи с коментарриями(это там где перевод) и сохранялись как-нибудь, а потом можно было переводы манги в оффлайне опять же через твою программу читать.
тут тебе и изображения и сетевой код и интерфейс и всё есть. а анонам радость.

>> No.44830  

>>44828

>коментарриями

блджад, как я делаю такие ошибки? это дисграфия какая-то, что ли?

>> No.44836  

>>44828
Поддерживаю, можно просто сохранять их в html чтобы читать в браузере, или рисовать перевод прямо на картинках и сохранять. А совсем круто если будет все 3 варианта в опциях.

>> No.44845  

>>44819
Жаба. Тяжкий монстр копроративных приложений. Брр. Хорошо, что я могу не изучать жабу.

>> No.44848  

>>44845
Глупости, быстро настрогать какой-нибудь сетевой демон/клиент - самое оно!
И, вообще, глупая позиция - радоваться своим незнаниям.

>> No.44850  

>>44848
вот и пусть нумер 55819 нам качалку данборы запилит. бысррраблджад!

>> No.44852  
File: 1291320581353.jpg -(124173 B, 1500x1024) Thumbnail displayed, click image for full size.
124173

>>43910
Думаю что в таком случае придется проверять последовательно все нужные расширения. И да, кажется тем, кто пишет драйвера в ati, уже все высказали до меня, так что не будут повторяться.
>>44845
Увы, сейчас многое пишут абы как, не задумываясь ни о эффективности, ни о расходах ресурсов. Если бы не такая мода, многое могло бы работать на куда более слабом железе.

>> No.44854  

>>44848
В некоторых знаниях слишком много печали. Если ты считаешь иначе, попробуй изучить оснастки в windows.

>> No.44855  

>>44852
Если игра не стоит свечь, никто не будет разрабатывать высококачественный софт.
Железо, на котором крутится софт вполне может оказаться в несколько десятков раз дешевле, чем человеко-часы программистов. Поэтому проще наклепать что-то быстро и грязно на яве, чем садиться, скажем, за C++.
Речь разумеется идет не о каком-то retail софте, а о заказном, который на яве в основном и пишется.

>> No.44867  
>наклепать что-то быстро и грязно

А потом они удивляются: а чего-то у нас все глючит и тормозит?

>> No.44869  

>>44867
Да речь идет не о неспособности выполнять основные функции и наличии багов. Речь идет о неспособности к расширению, завязанности на какие-то API, не слишком шикарной производительности (но достаточной на целевом обрудовании) и т.п.
Грязный код не обязательно глючный.

>> No.44871  
File: 1291322813236.jpg -(392219 B, 1024x1280) Thumbnail displayed, click image for full size.
392219

>>44855
Так и есть. Просто такое положение дел меня несколько печалит, поскольку является причиной отсутствия хороших программистов при большом числе низкоклассных кодеров. Результатом этого есть очень низкое качество большинства программных продуктов, как коммерческих так и свободных.

>> No.44877  

>>44871
Ну а что поделать. Таков капиталлизм.

>> No.44880  
File: 1291323606915.jpg -(1317043 B, 1295x1688) Thumbnail displayed, click image for full size.
1317043

>>44871
Сейчас популярны языки с низким порогом вхождения, человек сразу начинает писать программы в лучшем случае почитав хотя бы основы, а так как при этом его программы при этом успешно работают, это избавляет его от желания знать больше. Чего потом удивляться, что память течёт даже в managed со сборщиками мусора, или средние требования к процессору едва успевают за выпуском новых моделей.

>> No.44881  

>>44871
Не забываем про закон "количество переходит в качество". Так что поживем-увидем, что там дальше будет.

>> No.44884  
>память течёт даже в managed со сборщиками мусора

Как это? Просто не ставить delete()?

>средние требования к процессору едва успевают за выпуском новых моделей.

Параллелизм. Чем дальше, тем его будет больше. Будущее за эрлангом.

>> No.44886  

>>44881
Здесь это не работает. Зачем становиться хорошим программистом, если за ту же зарплату достаточно хреначить говнокод? Зачем платить хорошим программистам больше, если можно за меньшие деньги купить компьютер быстрее?

>> No.44887  
File: 1291324145423.jpg -(353691 B, 1024x768) Thumbnail displayed, click image for full size.
353691

>>44871>>44855
а просто в заказном софте мозгов нифига не надо. это чаще всего база данных+с десяток каких-нибудь алгоритмов школьного уровня. то есть пресвятой хаскелль, например, просто некуда воткнуть. там вообще можно не программы, а скрипты писать.

>> No.44894  

>>44884
Если ничего не удалять, память чистится, когда количество использований экземпляра равно нулю но я встречал такие адовые образцы говнокода, которые умудрялись наебать даже автоматический мусоросборщик - обезьянки так всё завязали друг с другом, что экземпляр считал себя нужным, при этом создаваясь безумное количество раз в циклах в качестве временной переменной. Это талант.

>> No.44941  

>>44828
Раздел Comments? В нём практически всё под тегом translated - на лунном.

Может чего не понимаю, просто практически не пользовался этим ресурсом.

>> No.44942  

Алсо, такой даунлоадер вроде уже есть.
http://rghost.ru/1130642

>> No.44943  

>>44942
а поцоны говорят, что там вирус.

>> No.44944  

>>44943
Не выкладываю ссылки, предварительно не проверив.

%%В Ханюше и куклоскрипте тоже вирусы, ага%%

>> No.44953  

>>44894
class A;
class B{

//ref counted smart pointer
boost::shared_ptr<A> mPtr;

};
//...
class B;
class A{

boost::shared_ptr<B> mPtr;

};
Быдлокод в таком ключе всегда вызывал утечки.

>> No.44961  

>>44942
http://410chan.ru/dev/res/773.html
Ты не можешь называться программистом, если ты не написал свою качалку.

>> No.44962  

>>44961
Обертку над wget ты хотел сказать?

>> No.44963  

>>44962
Или CURL.

>> No.44964  

>>44962
Ну, в принципе, да. Хотя, можно и полностью свое. Мне, например, работать с сокетами было лениво, поэтому использовал сторонние библиотеки, хотя не вижу никих сложностей.

>> No.44966  

>>44964
я вот не понимаю, нахуя эти качалки нужны, когда можно за 3 минуты скрипт с вгетом написать?

а вот чтобы переводы кочало, да ещё и с каким-то внетренним форматом, да чтобы потом отображалось красиво- вот такого нигде нет.

>> No.45042  

>>44966
Оно есть у меня в todo. Вот только гуй намного дальше по списку.
Да, думаю в качестве формата рационально оставить жсон, он просто парсится, и его совсем не нужно преобразовывать, так как данные получаются в жсоне.

>> No.45054  

>>45042
Можно эти данные в конец файла писать, как в rarjpg и плагин к GPicView или что у вас не в LXDE за имиджвьюверы там

>> No.45068  

>>45054
Это мне кажется не столь хорошим решением. Дописывать в картинки мусор, при возможности их дальнейшего движения ничем не отличается от хранения мусора в отдельном файле, только во втором случае файлы могут не перемещаться вместе с изображением. Ох, я сам запутался, в общем ты понел, а я спать пойду.

>> No.45075  

>>45068
Одна из причин моей нелюбви к маку в том, что он создаёт кучу ._ файлов в которых хранит thumbnail-ы. Если в венде это один thumbs.db на папку, то здесь это для каждого файла. И где это можно отключить я так и не нашёл. Вставляешь флэшку друга, и у него тут же появляется ворох ненужных ему файлов.

>> No.45093  

>>45075
А как насчет чего-нибудь вроде sqlite-базы, например. Хранить хеш картинки, и соответствующие ей данные, сверяется по хешу, создается один файл на всю библиотеку изображений. Я все еще не вижу причин, почему взяв у тебя картинку, я должен тащить с ней какой-то важный тебе мусор, работающий только через ${forgottenviewername}_0.1.prealpha.dillo_plugin. БИ обновляется при открытии картинок или при просмотре файлов в папке. Сообщается о совпадающих хешах, можно отслеживать одинаковые изображения. Можно использовать теги. Я сейчас делаю себе листер сервера с показом миниатюр, пришел к чему-то подобному. Вполне можно натянуть базу и на качалку. Проблемы вижу только в путях, потому что удаление/перемещение происходит без затрагивания базы, и для того, чтобы в ней не было лишнего, необходимо выполнять какую-нибудь пародию updatedb ежесуточно.

Алсо, программач-тред, а существуют ли встраиваемые nordbms, как скулайт?

>> No.45094  

>>45093
В KDE3 такой подход применялся - тумбнейлы хранились централизованно. Как в 4й версии - не знаю, поскольку слез с кед до выхода 4й версии.

>> No.45102  

Интересно, что быстрее - хранить по 4 лайтмапа в 1 текстуре на разных каналах, или хранить их в одноканальных текстурах и переключать для разных объектов.

>> No.45306  

Если (вдруг) кто-то решит написать собственный Крузис, эта книга ему пригодится:
http://books.google.ru/books?id=ZcEx2yWLwecC

>> No.45801  

Посоветуйте наиболее популярные кроссплатформенные библиотеки c++ для:
-Линейной алгебры (матрицы, векторы, кватернионы)
-Работы с сетью (соединение по ip и обмен пакетами)
-Загрузки шрифтов

>> No.45804  

>>45801

>Линейной алгебры (матрицы, векторы, кватернионы)

обычно пишутся велосипеды. В бусте есть этот функционал. Я писал велосипеды для своих целей, чтобы все было под контроллем.

>Работы с сетью (соединение по ip и обмен пакетами)

boost::asio

>Загрузки шрифтов

Не понял, что именно ты собрался загружать и зачем? Если шрифты для последующего рендеринга - посмотри на FreeType.

>> No.45806  

>>45804
У меня сейчас целых 3 реализации векторов в проекте из-за того, что каждая используемая либа приносит с собой велосипед. Решил хотябы во врапере использовать что-то общепринятое.

>В бусте есть этот функционал.

uBLAS и Math Quaternion, да. Значит, всё-таки привяжусь к бусту.

>> No.45814  

>>45806

>Значит, всё-таки привяжусь к бусту.

Конечно, привязывайся. Правда вот кватернионы и матрицы мне лично не нравятся бустовские. Слишком обобщенный код, он скорее для математиков полезен, а для геймдевелоперов - не очень подходит.

>> No.45828  
File: 1291938495151.jpg -(183574 B, 2100x1335) Thumbnail displayed, click image for full size.
183574

>>45801

>-Линейной алгебры (матрицы, векторы, кватернионы)

http://eigen.tuxfamily.org/index.php?title=Main_Page
Eigen is a C++ template library for linear algebra: vectors, matrices, and related algorithms. It is:

>-Работы с сетью (соединение по ip и обмен пакетами)

http://curl.haxx.se/libcurl/
libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more!
http://www.alhem.net/Sockets/
?

>> No.45925  

Чем отличается

void DoSomething(char*str){}

от

void DoSomething(const char*str){}

ну и собственно говоря для std::string

void DoSomething(const std::string & str)
>> No.45930  

>>45925
В случае void DoSomething(const char*str){} ты получишь ошибку, попытавшись писать в str.

>> No.46384  

Как правильно организовать зависимости от небольших либ? Компилировать вместе с проектом и включить их в проект (лицензия позволяет), компилировать либами статично (скачивать либы придётся только для пересборки) или динамически (отсутствие зависимостей в бинарном пакете)? Со всякими gtk, понятное, дело, последний вариант. Но заставлять пользователя искать кучу небольших либ которые ему, скорее всего, больше нигде не понадобятся, как-то не гуманно.

>> No.46391  

>>46384
Насколько небольших? Если ты используешь только одну функцию, то даже не линковать, а просто украсть к себе в код. Обычно сразу понятно, что с библиотекой делать, достаточно посмотреть на ее сайт. Если он выглядит как: "привет, вот вам мой фреймворк из одной функции, который я написал на коленке и поддерживать буду в 3015 году", то только статическая линковка. Если он выглядит как "Мы уже джва года делаем эту штуку, и даже есть в репозитории $distroname", то линковать динамически. Вообще ориентируйся на репозиторий дебиана, если туда вошло, то статическая линковка не уместна точно. Также попробуй поставить себя на место пользователя лфс и подумать, настолько твое приложение ценно, чтобы ради него собирать что-то еще и насколько проблемна его сборка.

>> No.46392  

>>46391
Вот например. http://code.google.com/p/pugixml/
Что с ней делать? Включить в проект? Я на том же гуглокоде планирую выложить сорцы. Там есть какой-нибудь функционал по приделыванию сторонних проектов к своему, или просто скопировать?

>All code is distributed under the MIT license, making it completely free to use in both open-source and proprietary applications.
>> No.46393  

>>46392
Скопипасть кусок кода, можешь даже написать что ты это скопипастил и откуда.

>> No.47967  
File: 1294137903088.jpg -(500157 B, 817x825) Thumbnail displayed, click image for full size.
500157

Проект, содержащий код из GPL2 не может быть MIT?
Если вырезать кусок из GPL2 и оформить в виде либы, можно это оформить как LGPL2, чтобы при динамической линковке в соответствии с лицензией можно использовать совместно с другими лицензиями?

>> No.47983  

>>47967
Нельзя насильно принуждать к свободе. GPL2 говно, дискас.

>> No.48002  
File: 1294167245598.jpg -(316078 B, 1280x800) Thumbnail displayed, click image for full size.
316078

>>47983

>Нельзя насильно принуждать к свободе

оно нужно, чтобы проприепидоры не смогли спиздить свободный код и продавать его ignorant мудакам-потреблядям, как было с бздой.

>> No.48011  

>>48002
Пропрепидоры спокойно спиздят и никто не узнает, а узнав не докажет. А принуждение к свободе заставляет сторониться gpl, они своей свободой ограничивают мою свободу выбора лицензии. Ёбаный lgpl заставляет пользователей собирать каждую сраную либу, о которой никто и не знал никогда просто потому, что лицензия требует динамической линковки. и не позволяет ей быть частью по под другой лицензией. Уж лучше самому велосипеды писать, чем об это говно мараться.

>> No.48013  
File: 1294168024229.jpg -(704553 B, 806x620) Thumbnail displayed, click image for full size.
704553

>>48011

>собирать каждую сраную либу

будто это так сложно. есть всякие портажи, для конечного пользователя.

>> No.48016  
File: 1294168420664.jpg -(22511 B, 360x269) Thumbnail displayed, click image for full size.
22511

>>48013
Под линуксом проблем меньше, даже не смотря на то, что специфических либ там может и не оказаться, виндовс-пользователь же просто пройдёт мимо, а если ему это жизненно важно, то в процессе проклянёт всех красноглазиков и пообещает себе никогда больше не связываться со свободным по. Пользователь убунту тоже не станет убивать нормально работающий пакетный дистрибутив сборкой того, чего нет в репозитории. И для кого, спрашивается, пригоден конечный продукт? Для пары гентушников?

>> No.48018  

>>48002
Тем не менее, gpl совсем не запрещает проприепидорам продавать свободный код ignorant мудакам-потреблядям.

>> No.48021  

>>48018
если есть сорцы. вуаля- бесплатный форк.

>> No.48022  
File: 1294169145253.jpg -(1901058 B, 2229x1632) Thumbnail displayed, click image for full size.
1901058

Кстати интересное отличие MIT от BSD: используя обе ты можешь написать "для реализации %function% использован %library%", но под BSD нельзя написать "потрясающая реализация %function% от %library_creators%" потому что

>Ни название <Организации>, ни имена ее сотрудников не могут быть использованы в качестве поддержки или продвижения продуктов, основанных на этом ПО без предварительного письменного разрешения.
>> No.48109  
File: 1294245073199.jpg -(86504 B, 860x1004) Thumbnail displayed, click image for full size.
86504

Может кто-нибудь юзерскрипт для лисы, который посты без заглавных букв в нормальные? Мне очень такой скрипт.

>> No.48110  

>>48109
Писать такие скрипты.

>> No.48129  

>>48110
Было бы здорово, если бы кто-то такой написал. Надоело ломать глаза, разбирая сплошной текст.

>> No.48148  

>>48021
Да зачем? Первый же пункт:

>Каждый приобретатель экземпляра Программы именуется в дальнейшем "Лицензиат".
>1. Лицензиат вправе изготовлять и распространять экземпляры исходного текста Программы в том виде, в каком он его получил, без внесения в него изменений на любом носителе, при соблюдении следующих условий: на каждом экземпляре помещен знак охраны авторского права и уведомление об отсутствии гарантий; оставлены без изменений все уведомления, относящиеся к настоящей Лицензии и отсутствию гарантий; вместе с экземпляром Программы приобретателю передается копия настоящей Лицензии.
>Лицензиат вправе взимать плату за передачу экземпляра Программы, а также вправе за плату оказывать услуги по гарантийной поддержке Программы.
>> No.48155  
File: 1294267885729.jpg -(69201 B, 500x361) Thumbnail displayed, click image for full size.
69201

Обожаю комментарии на китайском. Нет, это же просто великолепно:
http://translate.google.ru/#zh-CN|ru|%E4%BB%96%E5%AA%BD%E7%9A%84%E7%9A%84%E6%9D%B1%E8%A5%BF

>> No.48156  
File: 1294268079760.png -(25783 B, 200x163) Thumbnail displayed, click image for full size.
25783

>>48155

>> No.48372  

>>48011

>Ёбаный lgpl заставляет пользователей собирать каждую сраную либу, о которой никто и не знал никогда просто потому, что лицензия требует динамической линковки. и не позволяет ей быть частью по под другой лицензией.

Разве?

>> No.48382  

>>48372

>LGPL, в отличие от GPL позволяет связывание (но только динамическое) библиотеки с любой программой, не обязательно свободной.

http://ru.wikipedia.org/wiki/GNU_Lesser_General_Public_License

>> No.48385  

>>48382
А если у меня библиотека, состоящая только из заголовочных файлов? (C++ тэмплэйтная)
И динамическое связывание технически невозможно. Я не могу распростронять ее по LGPL?

>> No.48388  

>>48385
Нет. Свободный код должен быть сепарирован от несвободного, они на это напирают. Ты можешь выбрать более свободную лицензию, которая будет отличаться только этим пунктом, но она уже не будет GPL и не получит одобрения FSF.

>> No.48389  
File: 1294413242522.png -(8074 B, 110x95) Thumbnail displayed, click image for full size.
8074

>>48388
Зато пикрелейтед с радостью одобрят любую лицензию с открытым исходным кодом.

>> No.48393  

>>48388
Мне бы какую-то свободную лицензию, которая бы разрешала все на свете, только закрепляла бы мое авторство. Я думал, LGPL - как раз такая лицензия, а оказывается у нее еще какие-то шизофреничные накруты. Наверное, перейду на MIT, там никаких подводных камней нет? Или не парится и выложить все в open-domain?

>> No.48394  

>>48393
Судя по краткому описанию в MIT нет ничего подобного. Годная лицензия.

>> No.48399  

http://www.youtube.com/watch?v=-d2-PtK4F6Y
Это охуенно. У меня нет слов, насколько это просто и красиво.

>> No.48592  

а чем отличаются реализация new() delete() и malloc() free()?

>> No.48593  

алсоу, такой вопрос: с использованием тредов и кучки процессоров можно как-то привязать разные области памяти к разным процессам, чтобы лишних реаллокаций не происходило?

>> No.48597  
File: 1294540297855.jpg -(458297 B, 1200x1113) Thumbnail displayed, click image for full size.
458297

>>48592
malloc не запускает конструктор, и у malloc возвращаемый тип (void *) а не тип созданного объекта. new появилось в с++, malloc сишная. То же самое с free - не умеет вызывать деструктор класса.

>> No.48598  

>>48597
ну это для классов. а что с обычными интежерами, например?

>> No.48599  

>>48598

>afxmem.cpp
void* __cdecl operator new(size_t nSize)
{
void* pResult;
#ifdef _AFXDLL
_PNH pfnNewHandler = _pfnUninitialized;
#endif
for (;;)
{
#if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG)
pResult = _malloc_dbg(nSize, _NORMAL_BLOCK, NULL, 0);
#else
pResult = malloc(nSize);
#endif
if (pResult != NULL)
return pResult;
>> No.48624  
File: 1294571507607.jpg -(653262 B, 850x1062) Thumbnail displayed, click image for full size.
653262

>>48598
>>48592
new эксцепшенами кидается :3
Это удобно. В С++ использование malloc плохой тон и лишняя головная боль при отладке.

>> No.48856  

Может, сильно туплю, но всё же.

struct timespec r;
if(clock_gettime(CLOCK_MONOTONIC, &r)!=0) return (time_t) -1;
return r.tv_nsec;

Аналогом для виндовс будет

return timeGetTime*1000;

или я неправильно перевёл величины?

>> No.48857  

>>48856
return timeGetTime()*1000;
нэ?

>> No.48907  

>>48857
Ну, скобки это от рассеянности. timeGetTime() у вендоняш то ли в милли то ли в микросекундах. Кстати, никто не встречал реализацию на ассемблере, претендующую на кроссплатформенность?

>> No.48911  
	class Vertex
{
public:
D3DXVECTOR3 pos;
D3DXVECTOR3 normal;
float s;
float t;
D3DXVECTOR3 tangent;
D3DXVECTOR3 binormal;
		Vertex::Vertex():pos(0.0f ,0.0f ,0.0f )
,normal(0.0f ,0.0f ,0.0f )
,s(0.0f )
,t(0.0f )
,tangent(0.0f ,0.0f ,0.0f )
,binormal(0.0f ,0.0f ,0.0f ){}
};

Что это за странная конструкция:

>Vertex::Vertex():pos(0.0f ,0.0f ,0.0f )

gcc её тоже не понимает. Говорят, в вижалстудии компилится. Разумеется, можно просто инициализацию внести в {}, просто интересно что это вообще такое. Впервые вижу.

>> No.49046  
File: 1294780755755.jpg -(72517 B, 400x400) Thumbnail displayed, click image for full size.
72517

А я и не заметил, как в описании XVisualInfo появились строчки:

#if defined(__cplusplus) || defined(c_plusplus)
int c_class; /* C++ */
#else
int class;
#endif
>> No.49066  
File: 1294809589143.png -(764137 B, 1059x800) Thumbnail displayed, click image for full size.
764137

а почему все хают goto и лэйблы в сях? что в них такого преступного?

>> No.49069  

>>49066
Помимо того что затрудняют понимание кода и неприятны в отладке? В запущенных случаях проблемы с областью видимости переменных, из-за чего генерируется не самый оптимизированный код, в основном в плане использования памяти.

>> No.49075  
File: 1294820225956.jpg -(394450 B, 1486x1072) Thumbnail displayed, click image for full size.
394450

>>49069

>в основном в плане использования памяти

насколько большие проблемы? у меня в линейном коде из нескольких циклов выход лейблами, чтобы не делать множество переключателей и их проверок. по другому там не перепишешь.

>> No.49175  
>по другому там не перепишешь

по другому я не могу
fxd4tgj

>> No.49475  
File: 1295192712069.jpg -(767902 B, 2142x1514) Thumbnail displayed, click image for full size.
767902

Какой скриптовый язык лучше всего использовать для анимации системы частиц? Нужна высокая производительность, сам скрипт - практически пару формул, желательно возможность условных конструкций.

>> No.49476  

>>49475
lua, наверное, самый легковесный и быстрый.

>> No.49480  

>>49476
Согласен, но мне большинство его возможностей не нужно. Есть совсем простые скрипты на уровне строкового калькулятора?

>> No.49509  

>>49480
Ну если что-то экстра-легкое, можешь накодить свой парсер на основе, скажем, boost::spirit или даже без него.

>> No.49514  

>>49509

>boost::spirit

Не очень люблю на нём писать - компилится долго, малейшая опечатка - полотно ошибок темплитов.

>> No.49515  

>>49514
Возьми какой-то генератор компиляторов.

>> No.49520  

>>49515
Погуглив, чувствую себя лётчиком. Что это за чертовщина? Программа, которая пишет другую программу, которая компилирует ещё одну программу?

>> No.49522  

>>49520
Добро пожаловать в мир метапрограммирования.

>> No.49586  
File: 1295231017802.jpg -(30258 B, 590x590) Thumbnail displayed, click image for full size.
30258

Возникла странная идея. Использовать парсер glsl, при загрузке создать ключевые кадры через каждые 0.1с (частицы живут секунд по 10, число в среднем 20-200, итого 7.5кб) и интерполировать при отображении.

>> No.49941  
File: 1295428860235.jpg -(143856 B, 1000x711) Thumbnail displayed, click image for full size.
143856

>>48907

static inline unsigned long int timeGetTime()
{
unsigned long long d;
__asm__ __volatile__ ("rdtsc" : "=A" (d) );
return d/1000000;
}
>> No.49946  

>>49941

>return d/1000000;

Почему-то правильно работает с return d/3000000;

>> No.49976  

>>49946
3000000 - частота процессора в герцах.

>> No.49977  
File: 1295469385378.jpg -(456686 B, 600x700) Thumbnail displayed, click image for full size.
456686

>>49976
Что делать счастливым или не очень обладателям процессоров с динамически изменяющейся частотой?

>> No.49978  

>>49977
видимо есть вызов для получения текущей частоты.

>> No.49981  
File: 1295469908104.png -(133870 B, 500x500) Thumbnail displayed, click image for full size.
133870

>>49978
Я о том, что частота процессора может поменяться в процессе выполнения программы.

>> No.49983  
File: 1295470463915.jpg -(714367 B, 1011x1200) Thumbnail displayed, click image for full size.
714367

>>49978
Нет. Причем с этим связан очень забавный быдлокод от M$:

// Determine the MHz for the processor
//
KeGetCurrentPrcb()->MHz = 0;
if (KeFeatureBits & KF_ RDTSC ) {
Index = 0;
pSamp = Samples;
for (; ;) {
//
// Collect a new sample
// Delay the thread a "long" amount and time it with
// a time source and RDTSC .
//
CPUID (0, &Junk, &Junk, &Junk, &Junk);
pSamp->PerfStart = KeQueryPerformanceCounter (NULL);
pSamp->TSCStart = RDTSC ();
pSamp->PerfFreq.QuadPart = -50000;
    KeDelayExecutionThread (KernelMode, FALSE, &pSamp->PerfFreq);
    CPUID (0, &Junk, &Junk, &Junk, &Junk);
pSamp->PerfEnd = KeQueryPerformanceCounter (&pSamp->PerfFreq);
pSamp->TSCEnd = RDTSC ();
    //
// Calculate processors MHz
//
pSamp->PerfDelta = pSamp->PerfEnd.QuadPart - pSamp->PerfStart.QuadPart;
pSamp->TSCDelta = pSamp->TSCEnd - pSamp->TSCStart;
    pSamp->MHz = (ULONG) ((pSamp->TSCDelta * pSamp->PerfFreq.QuadPart + 500000L) /

(pSamp->PerfDelta * 1000000L));

    //
// If last 2 samples matched within a MHz, done
//
    if (Index) {
if (pSamp->MHz == pSamp[-1].MHz ||
pSamp->MHz == pSamp[-1].MHz + 1 ||
pSamp->MHz == pSamp[-1].MHz - 1) {
break;
}
}
}
>> No.50158  

Как можно в приложении X11 отключить автоповтор кнопок, чтобы не спаммили keyPressEvent и keyReleaseEvent?
Я использовал вот такой обход:

       case KeyRelease:
{
unsigned short is_retriggered = 0;
             if (XEventsQueued(dpy, QueuedAfterReading))
{
XEvent nev;
XPeekEvent(dpy, &nev);
                 if (nev.type == KeyPress && nev.xkey.time == event.xkey.time &&
nev.xkey.keycode == event.xkey.keycode)
{
// fprintf (stdout, "key #%ld was retriggered.\n",
// (long) XLookupKeysym (&nev.xkey, 0));
                     // delete retriggered KeyPress event
XNextEvent (dpy, &event);
is_retriggered = 1;
}
}
             if (!is_retriggered)
{
KeySym key=XLookupKeysym(&event.xkey, 0);
ButtonUp(key);
}
}
break;

Но он не всегда работает и периодически проскакивают автоповторы.

>> No.50592  

Как узнать количество памяти между 2мя указателями в си?

>>50158

>if (nev.type == KeyPress && nev.xkey.time == event.xkey.time &&
                 nev.xkey.keycode == event.xkey.keycode)
if (nev.type == KeyPress &&
nev.xkey.keycode == event.xkey.keycode)

Очень грязно и тратится время на обработку сообщений, но вот это:

int XAutoRepeatOff(Display *display);

отключает автоповтор на всём x-сервере, что есть плохой тон.

>> No.50594  
File: 1295861266111.jpg -(291711 B, 500x600) Thumbnail displayed, click image for full size.
291711

>>50592

> Как узнать количество памяти между 2мя указателями в си?

Отнять от одного другой, очевидно же.

>> No.50606  

>>50594
Чёрт возьми, надо поспать.

>> No.51201  

бамп 2.

>> No.51312  

http://rainman-rocks.livejournal.com/122876.html

>> No.51371  

>>50594
А единицу прибавить не надо??

>> No.51372  
File: 1296513452924.png -(2755501 B, 1600x1400) Thumbnail displayed, click image for full size.
2755501

>>51371
Нет.

>> No.51498  
File: 1296587894426.jpg -(212420 B, 600x800) Thumbnail displayed, click image for full size.
212420

Няши, в c# есть дефолтная функция для записи строки в буфер?

>> No.51550  

>>51498

> c#

Не нужен.

>> No.51552  
File: 1296600436044.jpg -(1039825 B, 1748x2500) Thumbnail displayed, click image for full size.
1039825

>>51550

>Не нужен.

Это ещё почему?

>> No.51555  

>>51552

>c#
>> No.51556  
File: 1296602557262.jpg -(4969220 B, 3516x5556) Thumbnail displayed, click image for full size.
4969220

>>51555

>c#

Ты меня затролить хочешь? Чем тебе язык не угодил?

>> No.51559  

>>51556

>Не нужен.
>> No.51560  
File: 1296604223467.jpg -(89143 B, 1024x768) Thumbnail displayed, click image for full size.
89143

>>51559

>Не нужен.

А пруфы где?

>> No.51561  

>>51560

>c#
>> No.51562  
File: 1296605814059.jpg -(155765 B, 1024x768) Thumbnail displayed, click image for full size.
155765

>>51561

>c#

Это не пруф. Нужен пруф.

>> No.51563  
File: 1296606953792.jpg -(86390 B, 600x759) Thumbnail displayed, click image for full size.
86390

>>51562

>Не нужен.
>> No.51578  
File: 1296641015071.jpg -(568179 B, 1280x1024) Thumbnail displayed, click image for full size.
568179

>>51498
В шарпе есть STL? Попробуй

strstream s;
std::string str;
s << "Test: " << str;
>> No.51610  
File: 1296675939782.jpg -(2181179 B, 2268x2835) Thumbnail displayed, click image for full size.
2181179

>>51578

>В шарпе есть STL?

Увы, STL в шарпе не водится - говорят, что есть альтернативы в коллекции, но без RTFK в них не разобраться.

>> No.51614  

>>51610

>RTFK

RTFM

>> No.51958  
File: 1297111326273.jpg -(67814 B, 500x436) Thumbnail displayed, click image for full size.
67814

>>41405
Помогите организовать многопоточность. Должно быть 2 нити, одна выполняется 50 раз в секунду, считая данные, которые должна иметь возможность при каждой итерации читать вторая нить, не синхронизированная по времени (выполняется порядка 40-70 раз в секунду). Размер данных небольшой, порядка 30 байт. Как лучше всего это сделать?
Была идея писать по очереди в 2 массива, тогда хотя бы один из низ будет свободным в любой момент времени.
И какую реализацию использовать? boost thread, ttb, или самостоятельно описать?

>> No.52027  
File: 1297194573719.jpg -(1760205 B, 1000x1399) Thumbnail displayed, click image for full size.
1760205

>>51958
Пайпы (pipes), используй их.

>> No.52115  
File: 1297263021797.jpg -(563212 B, 800x800) Thumbnail displayed, click image for full size.
563212

>>52027
Не понял как они мне помогут. Я привык к мьютексам, поэтому представляю как-то так программу:

цикл в потоке1
рассчёт
Lock-запись массива-Unlock
подождать некоторое время чтобы вышло 50 итераций в секунду
цикл в потоке2
подождать если массив локнут
рассчёт

Но возникла необходимость не останавливать поток2 даже на то незначительное время пока массив локнут, поэтому возникает такая концепция:

цикл в потоке1
рассчёт
Lock-запись массива1-Unlock
Lock-запись массива2 (копия массива1)-Unlock
подождать некоторое время чтобы вышло 50 итераций в секунду
цикл в потоке2
если массив2 локнут, прочитать массив1
рассчёт

В чём моя концепция ошибочна? И как организовать ожидание заданного интервала времени?

>> No.52116  
File: 1297264532253.jpg -(488230 B, 1400x1232) Thumbnail displayed, click image for full size.
488230

>>52115
Как-то так:
1. Создаешь пайп.
2. Создаешь расчетный поток.
3. В расчетном потоке делаешь fd пайпа блокирующим.
4. В рассчетном потоке в цикле забираешь структуры задачи из пайпа и обсчитываешь их.
5. В основном потоке делаешь fd пайпа неблокирующим, по мере появления скидываешь туда задачи.

>> No.52149  
File: 1297307295461.jpg -(727309 B, 1061x1500) Thumbnail displayed, click image for full size.
727309

>>52116
Что-то без блокировок тесты миллион раз уже прогнал, ни одной ошибки. Что предотвращают блокировки - то, что массив будет переписан только частично (в данной задаче не страшно), или что в момент записи конкретного байта второй поток его прочитает и всё упадёт? Или не упадёт? Никогда раньше не пробовал без локов писать и как-то не задумывался, можно ли без них.

>> No.52160  
File: 1297335105602.jpg -(1114486 B, 1000x1200) Thumbnail displayed, click image for full size.
1114486

>>52149

> что массив будет переписан только частично

Только от этого.

>> No.52162  
File: 1297335409956.jpg -(714790 B, 1748x2480) Thumbnail displayed, click image for full size.
714790

>>52160
Значит, в моей задаче они вообще не нужны. Спасибо.

>> No.52541  

Хорошая критика метапрограммирования: http://users.livejournal.com/_winnie/265924.html?thread=3365316#t3374020

>> No.54358  

Ну вот... Оказывается я порядком подзабыл плюсы, в особенности теоретическую часть. Как можно восстановить знания,которые уже год как невостребованы, учитывая то, что времени на это не так много? Перечитывать Кнутострауструпа и КО? Так ведь эти талмуды перенасыщены, как мне кажется, да и читать их долго. Реквестирую quick guide по плюсам, короче говоря.

>> No.54361  

>>54358
google://то, реализация чего забыта
Или тут спроси в крайнем случае.

>> No.54421  

>>54358
Кнут пожалуй черезчур, а вот Страуструпа почитать дропая лишнее было бы неплохо.
http://lib.ru/CPPHB/cpptut.txt
В последнее время модно знать stl и всякие парадигмы-идиомы-паттерны. Если найдёшь что-то дельное, скидывай, нам тоже не повредит.

>> No.54429  
File: 1299448127419.jpg -(83902 B, 497x759) Thumbnail displayed, click image for full size.
83902

>>54421

>Страуструпа почитать дропая лишнее было бы неплохо

Если мои отечественные учебники не помогут, придётся.

>В последнее время модно знать stl и всякие парадигмы-идиомы-паттерны. Если найдёшь что-то дельное, скидывай, нам тоже не повредит.

Хорошо, вот только сдавать я буду олдфагам, которым веяная моды по-барабану. А что такого стало с STL, всего что там есть не упомнишь же?

>> No.54433  
File: 1299450185919.jpg -(327901 B, 1085x765) Thumbnail displayed, click image for full size.
327901

>>54429

>вот только сдавать я буду олдфагам, которым веяная моды по-барабану

Тогда лучше Страуструпа сложно что-то предложить. Любимый вопрос преподов старой закалки про то как объект класса создаётся и в частности про таблицу виртуальных функций, и чётко знать определения инкапсуляции, полиморфизма и наследования. За плавание в этих вопросах сразу отправляют на пересдачу.

>А что такого стало с STL

Я думал тебе для собеседования у работодателей. Об STL требуется знать в общих чертах реализацию vector и map и в особенности ограничения, которые они накладывают: например, что при добавлении новых элементов реалочится в другой области памяти что ограничивает использование указателей.

>> No.54446  

Кстати, об stl. Я последнее время смотрю на него, и хочу отказаться. Есть какие-нибудь годные альтернативы? Листаю сейчас документацию по glib, вроде выглядит неплохо, только обертки придется писать.

>> No.54449  
File: 1299487320455.jpg -(402938 B, 800x800) Thumbnail displayed, click image for full size.
402938

>>54446
Если уж отказываться, то писать самому под конкретную ситуацию. Все минусы stl от его обобщённости, в действительности он не такое уж зло, его не полные дураки писали. В большинстве ситуаций код с ним проще и чище, что, как я считаю, гораздо важнее мелочных оптимизаций. А там, где важна производительность лучше вообще отказаться от сторонних обёрток.

>> No.54454  

>>54449

>его не полные дураки писали

Это еще одна причина, почему я не решаюсь. Мне кажется, что более быстрые вектора и мапы с моими навыками написать будет трудно.

>> No.54455  

>>54454

>быстрые вектора

http://eigen.tuxfamily.org/index.php?title=Main_Page

>> No.54460  

Программач, объясни мне метод Ниблэка. Суть такова:
Идея данного метода состоит в варьировании порога яркости B бинаризации от точки к точке на основании локального значения стандартного отклонения. Порог яркости в точке (x, y) рассчитывается так:

B(x, y)=m(x, y)+k s(x, y),

где m(x, y), s(x, y) – среднее и стандартное отклонение выборки для некоторой окрестности точки. Размер окрестности должен быть минимальным, но таким, чтобы сохранить локальные детали изображения. В то же время размер должен быть достаточно большим, чтобы понизить влияние шума на результат (для изображений, приведенных здесь, радиус окрестности составляет 16 пикселей). Значение k определяет, какую часть границы объекта взять в качестве самого объекта. Значение k=-0.2 задает достаточно хорошее разделение объектов, если они представлены черным цветом, а значение k=+0.2, – если объекты представлены белым цветом.
Но как это выглядит в коде? Я что-то совсем ничего не пойму.

>> No.54462  

>>54421

>В последнее время модно знать stl

Сейчас моден буст и в частности instrusive'ы, как замена stl. И еще в некоторых областях моден минимализм со статическими массивами и POD. STL был моден лет 5-7 назад, сейчас это обыденность, от которой многие отказываются.

>> No.54463  
File: 1299520811457.jpg -(59639 B, 600x510) Thumbnail displayed, click image for full size.
59639

>>54462
Буст многие воспринимают с ненавистью: время компиляции увеличивается на порядок, стены ошибок из-за одного неправильного символа и отсутствие бинарной совместимости разных версий библиотек. Большая часть буста интересна разве что поиграться и посмотреть экзотические возможности языка. Сама идея достойна уважения, использовать или нет каждый решает сам (чаще это решает Главный).

>STL был моден лет 5-7 назад

Тем не менее несколько вопросов по нему могут многое сказать о программисте. А мне на собеседованиях больше всего понравился не относящийся к stl вопрос что означает if(a!=a) если a - float

>> No.54465  

>>54463

>что означает if(a!=a) если a - float

1 всегда?

>> No.54466  

>>54465
или это ловушка?

>> No.54468  

>>54466
>>54465
Истинно когда a = NaN (Not A Number), например результат sqrt(-1), так как по стандарту IEEE754 NaN != NaN.

>> No.54469  
File: 1299522083824.gif -(197271 B, 150x169) Thumbnail displayed, click image for full size.
197271

>>54468
и в нанах вся ловушка? а, вот, почему при чтении в текстуру нормализованного выхода шейдеров получаешь 0.99.. и даже 0.98..

>> No.54470  

>>54463

>Буст многие воспринимают с ненавистью: время компиляции увеличивается на порядок, стены ошибок из-за одного неправильного символа и отсутствие бинарной совместимости разных версий библиотек. Большая часть буста интересна разве что поиграться и посмотреть экзотические возможности языка. Сама идея достойна уважения, использовать или нет каждый решает сам (чаще это решает Главный).

Речь шла об интрузивах: все, что ты написал, к ним не относится.

>А мне на собеседованиях больше всего понравился не относящийся к stl вопрос что означает if(a!=a) если a - float

Если ты намекаешь на проблемы с точностью у чисел с плавающей точкой, то тут эти проблемы, на сколько я понимаю, не проявятся. Если бы ты написал что-то типа: float a = 3.0f;
assert(a == (a / 3.0f * 3.0f));
то тут еще могут быть варианты.

>> No.54471  

>>54469

>и в нанах вся ловушка?

Ловущка скорее всего не столько в них (это вообще мало кто помнит, что простительно), сколько в неправильном предположении по поводу ответа.

>при чтении в текстуру нормализованного выхода шейдеров

На видеокартах всё очень вязко и липко со стандартами. В зависимости от выбора режима производительности пользователем в настройках драйвера может значительно отличаться точность вычислений и даже принудительно выбираться формат данных с меньшей точностью.

>> No.54472  

>>54470

>Если бы ты написал что-то типа: float a = 3.0f;
>assert(a == (a / 3.0f * 3.0f));

Это было бы слишком простым и неинтересным вопросом. Кроме того приличный компилятор сосчитает константу (1.0f/3.0f)*3.0f и заменит деление умножением. Выкинет ли он умножение на единицу я не знаю, надо будет проверить

>> No.54473  

>>54472

>Это было бы слишком простым и неинтересным вопросом. Кроме того приличный компилятор сосчитает константу (1.0f/3.0f)*3.0f и заменит деление умножением. Выкинет ли он умножение на единицу я не знаю, надо будет проверить

Ну выдели отдельную переменную для 3.0f и пометь обе переменные, как volatile. Не в этом суть. Я имел в виду, что всякие "странные" результаты появляются только в следствие каких-то операций с числами с плавающей точкой. А если сравнивать число с самим собой, ничего непредвиденного (кроме случая с NaN'ами не произойдет).

>> No.54474  

>>54473
Правильный ответ в >>54468, ты же выдвинул неверное предположение о некорректности вопроса и открыто усомнился в компетентности опрашивающего. Заодно показал незнание процесса оптимизации, а это очень важно, ведь позволяет писать в коде перемножение множества осмысленных констант вместо бессмысленных конечных результатов. Действительно хороший вопрос.

>> No.54483  

>>54474

>Заодно показал незнание процесса оптимизации, а это очень важно, ведь позволяет писать в коде перемножение множества осмысленных констант вместо бессмысленных конечных результатов.

Где я показал свое незнание?

>> No.54495  

>>54483
(a == (a / 3.0f * 3.0f) компилится в то же, что и (a==a), таки *1.0f затирается, няшно.

>> No.54517  

>>54495
float a = 3.0f;
volatile float b = 3.0f;
volatile float c = 3.0f;

assert(a == (a/b*c));

>> No.54895  
File: 1300066189384.jpg -(100333 B, 417x599) Thumbnail displayed, click image for full size.
100333

http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms

>> No.54928  
File: 1300128504170.jpg -(107046 B, 540x771) Thumbnail displayed, click image for full size.
107046

Объясните пожалуйста разницу между

if(sock&&sock_dest)

и

if((sock!=NULL)&&(sock_dest!=NULL))

В первом случае у меня segfault. sock и sock_dest - указатели, проинициированы NULL.

>> No.54930  
File: 1300130229398.png -(192500 B, 183x200) Thumbnail displayed, click image for full size.
192500

>>54928

>if(sock&&sock_dest)
>sock и sock_dest - указатели
>проинициированы NULL

как-то так, наверное.

>> No.54931  

>>54928
Если sock и sock_dest - убычные указатели, то разницы нет. Ищи ошибку в другом месте.

>> No.54934  

>>54931
#define NULL ((void*)0)
чем-то отличается от
#define NULL 0
в линуксе (там работают оба варианта)?
>>54930
Я предполагал что в моём случае это эквивалентно if(0)

>> No.54935  
File: 1300131220466.jpg -(480050 B, 1920x1200) Thumbnail displayed, click image for full size.
480050

>>54928
Зачем так извращаться?
Во-первых в твоём случае разницы нет.
Во-вторых, что тебе мешает открыть любую книгу по плюсам или другим сям и прочитать про указатели?

>> No.54936  
File: 1300131466785.jpg -(24935 B, 450x337) Thumbnail displayed, click image for full size.
24935

аноны, а помогите собрать класс, в котором при инициализации новой переменной можно было бы в ней описывать любую структуру данных. короче говоря интерфейс к классам для самой программы. плюсы.

>> No.54937  

>>54936
или это через темплейты/буст реализовать. но мне бы хотелось чтобы все операции с памятью были прозрачными, это своего рода байтодрочерство.

>> No.54938  
File: 1300131591348.jpg -(741088 B, 2050x1761) Thumbnail displayed, click image for full size.
741088

>>54934

> в линуксе

Не отличаются, и тот и другой 0x00000000.

> там работают оба варианта

Да.

>> No.54939  
File: 1300131850300.jpg -(729857 B, 2500x1748) Thumbnail displayed, click image for full size.
729857

>>54936

> собрать класс, в котором при инициализации новой переменной можно было бы в ней описывать любую структуру данных. короче говоря интерфейс к классам для самой программы

Что-то мне подсказывает, что чисто такую приблуду написать будет сложно.

>> No.54940  

>>54939
да почему же, я думаю через войд поинтеры как-то.

>> No.54941  

>>54940
хотя видимо нужен буст. кто-нибудь в нём разбирающийся может подтолкнуть в нужном направлении?

>> No.54942  

>>54936
Люркай, что такое рефлекшн и почему чаще всего это плохой выбор. Если уж ты уверен, что оно тебе надо, то я бы посоветовал boost::mpl для того, чтобы твой рефлекшн был типобезопасным и компайл-таймовым. Другой вариант - кодеген, что не рекомендуется.

>>54934
По старндарту в C++: 0 - специальное значение для указателя (адрес), которое не получит никогда никакой объект в динамической и статической памяти. Нет необходимости в Си-шных NULL'ах, которые теоретически могут быть на разных платформах разными согласно Сишным стандартам (хотя тут могу ошибаться). Используй просто 0, так делают взрослые дяди (можешь убедиться, что в бусте никто NULL не использует простым грепом).

>> No.54943  
File: 1300134230393.jpg -(612540 B, 1000x1000) Thumbnail displayed, click image for full size.
612540

>>54942
ну допустим мпл. а можно реализовать на нём ещё и автоматическое написание программой кастов между типами? алсоу это всё очень хорошо пока код работает, но вот можно ли ещё как-то ввести сохранение информации по всем сгенерированным типам?

>> No.54944  
File: 1300135854662.jpg -(174542 B, 759x900) Thumbnail displayed, click image for full size.
174542

>>54938

> > там работают оба варианта
>Да.

Вопрос был не в этом, в линуксе у меня всё нормально. Я неправильно предложение построил.
>>54935
Это не извращение.
>>54936
Подумай над архитектурой ещё раз - не лучше ли наследовать от этого класса и в наследниках добавлять данные и переопределять специфику работы с ними? >>54942
С 0 действительно всё работает. Но ради проверки, if(0==NULL) истинно. Экзотерика какая-то.

>> No.54945  

>>54944

>не лучше ли наследовать от этого класса и в наследниках добавлять данные и переопределять специфику работы с ними?

нет. да и всё равно программе придётся самой собирать наследников.

>> No.54946  
File: 1300136176660.jpg -(2290550 B, 2483x3401) Thumbnail displayed, click image for full size.
2290550

>>54944

> Экзотерика какая-то.

Ты точно убедился, что сегфолтится именно на этой строчке?

>> No.54947  
File: 1300136427217.jpg -(19513 B, 200x256) Thumbnail displayed, click image for full size.
19513

>>54943
Напиши подробнее, что тебе нужно (и зачем), можно с псевдокодом, я попробую подсказать, по какому пути пойти. А то слишком все расплывчато, сложно что-то посоветовать.

>> No.54948  
File: 1300136881282.jpg -(17203 B, 350x352) Thumbnail displayed, click image for full size.
17203

>>54947
ну гляди, у меня есть идея написать класс пространств. соответственно каждая переменная типа пространство должен хранить класс- описание возможных характеристик объекта в этом пространстве. ну, грубо говоря, пространство точек на ограниченной плоскости хранит 2 интежера, в ограниченном мире 3 интежера, пространство сфер хранит ещё и радиус, и всё это должно создаваться самой программой.

>> No.54949  
File: 1300137537619.jpg -(1164752 B, 2160x3026) Thumbnail displayed, click image for full size.
1164752

>>54948

>пространство точек на ограниченной плоскости хранит 2 интежера, в ограниченном мире 3 интежера, пространство сфер хранит ещё и радиус, и всё это должно создаваться самой программой.

А чем тебя простое наследование не устраивает, особенно если классов не так много?

>> No.54950  

>>54948
алсо есть потребность динамически организовывать из переменных одного пространства граф, с произвольным количеством ссылкок на места других переменных в памяти, для быстроты лукапов.

>> No.54951  

>>54948
Но ведь все равно невозможно задать data-driven способом любое математическое пространство, зачем в данном случае стремиться к обобщенности, если к ней ты все равно не приблизишься?

>> No.54952  

>>54949
точки это хуита. допустим у меня есть пространство некоторого языка, которое состоит целиком из имён и трансформаций в различные формы слова/ассоциации(со ссылками на эти формы), да ещё и с переводами слов в пространства наборов точек, геометрических фигур на плоскости или вообще комбинаций слов.

>> No.54953  

>>54952

>точки это хуита. допустим у меня есть пространство некоторого языка, которое состоит целиком из имён и трансформаций в различные формы слова/ассоциации(со ссылками на эти формы), да ещё и с переводами слов в пространства наборов точек, геометрических фигур на плоскости или вообще комбинаций слов.

Ты все это хочешь завернуть в 1 класс?

>> No.54954  

http://alenacpp.blogspot.com/2006/04/volatile.html
Что думаете по этому поводу? volatile нужен или не нужен если всё равно есть локи?

>> No.54955  

>>54953
нет, я хочу получить возможность новые пространства быстро создавать средствами си- в виде класса.
>>54951
я ничего не понял.

>> No.54968  
File: 1300184202210.jpg -(356028 B, 661x886) Thumbnail displayed, click image for full size.
356028

>>54954
Нужен. Особенно при работе с mmap().

>> No.54985  
File: 1300192795483.jpg -(600124 B, 800x1196) Thumbnail displayed, click image for full size.
600124

>>54968
Когда уже gcc научится сам локать вокруг volatile (как в вижалстудии)? Не то чтобы было лень, но читаемость снижает. Да и забыть можно.

>> No.54990  

>>54985

>как в вижалстудии

Что мешает перейти на VS?

>> No.54995  
File: 1300204999179.png -(430443 B, 600x510) Thumbnail displayed, click image for full size.
430443

>>54990
Угадай по глазам.

>> No.54996  

>>54995

>Угадай по глазам.

Фу быть таким. Не использовать преимущества разных осей глупо же. Языки(многие) вне осей же.

>> No.55003  
File: 1300208466515.jpg -(482852 B, 1280x1024) Thumbnail displayed, click image for full size.
482852

>>54996

>Языки(многие) вне осей же.

В данном случае это особенности реализации компилятора, а не стандарт языка.

>Не использовать преимущества разных осей глупо же.

При использовании преимуществ разных осей теряется кросплатформенность, на этот раз оно того не стоит.

>Фу быть таким.

Фу быть привязаным к одной ос.

>> No.55007  

>>55003

>В данном случае это особенности реализации компилятора, а не стандарт языка.

Я к тому, что не имеет значения на какой оси(в какой среде) был реализован алгоритм.

>преимуществ разных осей теряется кросплатформенность

Как она может теряться, если действовать в рамках языка? Всегда можно в дистрибутив библиотеки вшить же.

>Фу быть привязаным к одной ос.

Непонимат. Разве я не то же самое сказал?

>> No.55011  

>>54985

>Когда уже gcc научится сам локать вокруг volatile (как в вижалстудии)?

Не надо такого. И не спроста в стандарте такой глупости нет.

>> No.55012  
File: 1300210348683.png -(394201 B, 600x818) Thumbnail displayed, click image for full size.
394201

>>54985
Разве он не умеет? Во всяком случае вот этот баг http://gcc.gnu.org/ml/gcc-bugs/2000-08/msg00038.html пофиксили.

>> No.55013  

>>55007

>Непонимат. Разве я не то же самое сказал?

Я не брезгую вижалстудией, но предполагаю что мой код придется компилировать не только в ней.

>Я к тому, что не имеет значения на какой оси(в какой среде) был реализован алгоритм.

В данном случае имеет, потому что скомпилированный код будет разным.

>Как она может теряться, если действовать в рамках языка?

Не оговорено стандартом. Зависит от реализации компилятора.

>Всегда можно в дистрибутив библиотеки вшить же.

Очень спорное утверждение. В общем случае этого может не позволять лицензия (например прямо запрещающих использование продукта в конкурирующих средах некоторые лицензии Microsoft shared source) и отсутствие порта самой библиотеки под другую ос. В данном случае этот код будет корректно выполнятся только будучи скомпилирован в вижалстудии, под линукс и мак она, вроде, ещё не умеет компилировать бинарники, amirite?

>> No.55015  

>>55013

>Я не брезгую вижалстудией, но предполагаю что мой код придется компилировать не только в ней.

Написать в студии, скомпилировать сорцы в никсах не?

>она, вроде, ещё не умеет компилировать бинарники, amirite?

Нет, на сколько я знаю.

>> No.55019  
File: 1300211870106.jpg -(26096 B, 600x200) Thumbnail displayed, click image for full size.
26096

>>55015

> Написать в студии, скомпилировать сорцы в никсах не?

Какой смысл тогда в студии?

>> No.55021  

>>55019

>Какой смысл тогда в студии?

Удобный и адаптивный интерфейс же.

>> No.55022  
File: 1300212570204.jpg -(29146 B, 262x427) Thumbnail displayed, click image for full size.
29146

>>55021

>Удобный и адаптивный интерфейс
>в студии

да ты же ебанутый.

>> No.55024  
File: 1300212749989.jpg -(93376 B, 358x446) Thumbnail displayed, click image for full size.
93376

>>55015

>Написать в студии, скомпилировать сорцы в никсах не?

Блядь, как с наркоманом разговариваю. Какая разница где писать? Разница на этапе компиляции. Один и тот же код компилирует вижалстудия и gcc по-разному в отношении volatile.

>> No.55026  
File: 1300213113918.jpg -(69626 B, 700x491) Thumbnail displayed, click image for full size.
69626

>>55022>>55024

>> No.55030  

>>55022
Мне в 6й нравится. В последних версиях безумие какое-то, я не понимаю как этим можно пользоваться.

>> No.55031  
File: 1300213488623.jpg -(56636 B, 500x292) Thumbnail displayed, click image for full size.
56636

>>55030
там с подключением библиотек и включением всяких спермоопций какая-то клоунада, ну его нахуй, я лучше в консоли буду писать.

>> No.55033  

>>55031
Use /NODEFAULTLIB, Luke

>> No.55035  
File: 1300213909122.gif -(57478 B, 361x365) Thumbnail displayed, click image for full size.
57478

>>55030

>не понимаю как этим можно пользоваться.

Зато там можно обои менять + несколько мониторов поддерживает + автоподставновка и прочие кошерности удобнее + справка годная + командная работа и ещё много чего в 10, новая эра же!
>>55031

> в консоли буду писать

Ололо, прыщи заменили мозг.

>> No.55036  
File: 1300214064245.jpg -(181569 B, 550x600) Thumbnail displayed, click image for full size.
181569

>>55024

>Один и тот же код компилирует вижалстудия и gcc по-разному в отношении volatile.

А мне померещилось, что в интерфейсе дело, тогда предлагаю >>55015>>55021 забыть и, да, я слоупок.

>> No.55038  
File: 1300214368082.jpg -(125897 B, 524x286) Thumbnail displayed, click image for full size.
125897

>>55035

>Ололо, прыщи заменили мозг.

попридержи СПЕРМОЛИКОВАНИЕ, я пишу в эклипсе. но даже чистая консоль с gcc --help более прозрачна относительно процесса конпеляции чем ваша спермостудия с галочками.

>> No.55042  

>>55038

>прозрачна относительно процесса конпеляции

Как будто ты что-то после этого меняешь.

>> No.55043  
File: 1300214901326.png -(30227 B, 600x600) Thumbnail displayed, click image for full size.
30227

>>55042
в спермостудии я последний раз копался-копался в опциях, всякии ддлки устанавливал, какие-то пакеты указывал, и так нихуя и не заработало.

а в прыщах надо только указать папку хидеров и возможно либу. всё эти СПЕРМОКОСТЫЛИ нахуй не нужны.

>> No.55045  
File: 1300215010778.jpg -(326757 B, 623x520) Thumbnail displayed, click image for full size.
326757

>>55035

>Зато там можно обои менять

Серьёзное преимущество. Не поспоришь.

>автоподставновка

Вообще она меня бесит, и не только в вижалстудии, везде отключаю. Проблемы как у Т9.

>справка годная

Тебе недостаточно msdn.com ?

>командная работа

Говорят, у них это неплохо удалось. Но для большинства задач достаточно cvs/svn

>новая эра же!

Если неповоротливый перенасыщенный до неюзабельности интерфейс на шарпе это новая эра, наше будущее проёбано.

>> No.55047  

Пользуйте cmake и радуйтесь жизни.

>> No.55048  

>>55045

>Серьёзное преимущество. Не поспоришь.

Я к тому, что можно различные допилы подключать. Раньше такого не было.

>Вообще она меня бесит, и не только в вижалстудии, везде отключаю. Проблемы как у Т9.

ORLY? Какие могут быть проблемы? Это же не телефон, где на клавишу по четыре символа.

>Тебе недостаточно msdn.com ?

Приятнее на русском и влёт.

>перенасыщенный до неюзабельности интерфейс на шарпе это новая эра, наше будущее

то голодать в нём мне не придётся.

>> No.55049  
File: 1300215640821.jpg -(39487 B, 496x454) Thumbnail displayed, click image for full size.
39487

>>55038
>>55031
А какие существуют консольные средства отладки?

>> No.55050  

>>55049
gdb

>> No.55054  

>>55049
gdb, valgrind, bash, grep, ed, perl, awk, python, lua, ...

>> No.55072  
File: 1300223064109.png -(949 B, 100x100) Thumbnail displayed, click image for full size.
949

с опенкалом уже кто-то работал? как впечатления?

>> No.55074  

>>55072
Работал, CUDA веселее.

>> No.55077  

>>55074
а что так?

>> No.55104  
File: 1300242361231.png -(252239 B, 750x700) Thumbnail displayed, click image for full size.
252239

nVidia отожгла:

>glUniform causes a slow down
>All the glUniform calls are relatively fast except that it has been reported that on some nVidia drivers, when certain values are sent to the shader, the driver recompiles and reoptimizes your shader. This is obviously a problem for games. Values are 0.0, 0.5, 1.0. There is no solution other than to avoid those exact numbers. Has nVidia solved this issue in recent drivers? Unknown.

Редкостная в своём идиотизме идея.

>> No.55108  
File: 1300271918382.jpg -(209241 B, 850x816) Thumbnail displayed, click image for full size.
209241

кг-кун, я решил приобрести карточку с opencl для весёлой физики, ну и встал перед выбором.

чем отличаются жифорсы 470 и 560?
далее, под количеством универсальных шейдерных блоков что подразумевают? неужели это всё ядра, и каждое с частотой ~700mhz? там же какие-то безумные числа, под пять сотен этих самых блоков.

далее, чем различаются карты ати и нвидии? там есть Radeon HD 5850, так вот в нём конвееров вроде как вообще 1440, и я думаю, почему бы его не купить. работать буду под леенупсом, так что если у ати есть какие-то ПРЫЩЕПРОБЛЕМЫ, то соответственно ну их нахуй.

>> No.55109  

>>55108
алсоу, насколько исполнение opencl-кода процессоронезависимо? процессор-то я старый пока оставляю.

>> No.55115  

>>55108
560 меньше греется, на 15% быстрее, 1 263.4 GFLOPs против 1088 у 470.

>под количеством универсальных шейдерных блоков что подразумевают?

CUDA cores

>там же какие-то безумные числа, под пять сотен этих самых блоков.

Темпы развития видеокарт меня тоже пугает.

>далее, чем различаются карты ати и нвидии?

Ворохом неочевидных проблем с первыми, хотя и у нвидиа бывают заскоки. CUDA на ати не работает, они пилят свой Stream, но он пока что малоюзабелен. Хотя, я за ним не слежу, могли допилить уже.

>так что если у ати есть какие-то ПРЫЩЕПРОБЛЕМЫ

Три года назад всё было плохо с драйверами. Очень сомневаюсь, что что-нибудь поменялось.

>алсоу, насколько исполнение opencl-кода процессоронезависимо? процессор-то я старый пока оставляю.

Сложно сказать. Будет ли видеокарта простаивать из-за слабого процессора? Нет. Будет ли на мощном процессоре быстрее? Да, в перспективе процессоры будут считать opencl параллельно с видеокартой, но у интела дальше альфа-версий под висту пока не дошло.

>> No.55116  
File: 1300276822103.jpg -(162866 B, 1050x1475) Thumbnail displayed, click image for full size.
162866

>>55115

>они пилят свой Stream

так opencl же везде один и тот же, нэ?
тут просто такая штука что этих самых ядер на радеоне больше в 4 раза. должна и производительность быть много выше, нэ?

>в перспективе процессоры

вот в перспективе процессор новый и буду покупать.

>> No.55118  
File: 1300280142239.png -(2463246 B, 2150x1550) Thumbnail displayed, click image for full size.
2463246

>>55116

> ядер на радеоне больше в 4 раза. должна и производительность быть много выше, нэ?

У радеонов вполне могут быть другие попугаи.

>> No.55119  
File: 1300280587891.jpg -(612923 B, 1600x1200) Thumbnail displayed, click image for full size.
612923

>>55118
у этой конкретной карты никаких ПРЫЩЕПРОБЛЕМ замечено не было.

>> No.55120  
File: 1300283249847.jpg -(222902 B, 1125x1125) Thumbnail displayed, click image for full size.
222902

>>55119
Речь шла о производительности конвейеров.

>> No.55121  

>>55108
Бери nvidia 560 ti, сейчас это, наверное, лучший выбор. На количество ядер у радеонов и у нвидии даже не смотри, это совершенно разные вещи.
У меня был опыт с OpenCL полтора года назад (на тот момент спецификации было всего полгода). Работал с нвидией под линухом, драйвера для этого дела стояли экспериментальные. На моих приложениях CUDA-реализации были в ~7 раз быстрее, чем OpenCL (opencl реализация работает, разумеется, поверх куды). На тот момент у ati не было ничего нормально работающего, кроме всяких close to metal. Думаю, и сейчас радеоновское GPGPU - неблагодарное дело. Короче, если хочешь нормально работать, бери нвидию - не ошибешься. Радеоны только на то и годны, чтобы наебывать синтетические тесты и подгонять драйверы под определенные игры, ухудшая качество картинки (это мое имхо). Они не могут нормально реализовать OpenGL 3.+, а ты про OpenCL говоришь...

>> No.55122  
File: 1300284086765.jpg -(376921 B, 1280x2073) Thumbnail displayed, click image for full size.
376921

>>55120
а. ну вроде как частоты те жи, насчёт имплементации опенкл не знаю. но должно быть схоже, теоретически.

>> No.55123  
File: 1300284178190.jpg -(121700 B, 850x724) Thumbnail displayed, click image for full size.
121700

>>55121
намёк понял.

>> No.55124  
File: 1300285659326.jpg -(385217 B, 800x600) Thumbnail displayed, click image for full size.
385217

>>55122

> частоты те жи

Распространенное заблуждение - мерить производительность по частоте.

>> No.55125  
File: 1300286081287.jpg -(324229 B, 1152x864) Thumbnail displayed, click image for full size.
324229

>>55124
ну ясное дело, что реализация у них разная, однако амдшные процессоры как бы всегда были более производительны при меньших частотах, так что я решил что и атишки сейчас не должны отставать.

>> No.55127  

>>55125

>однако амдшные процессоры как бы всегда были более производительны при меньших частотах

Это было только во времена атлонов и 4-х пней.

>> No.55131  

>>55121
Подписываюсь под каждым словом. Я не раз отписывался по поводу наёбок ати, хотя надо отдать им должное - без их существования монополия нвидии позволила бы им расслабиться и взвинчивать и без того высокие цены.

>> No.55132  

>>55108

>если у ати есть какие-то ПРЫЩЕПРОБЛЕМЫ

Разумеется есть, куда же без них. Я почти целый год ждал, когда купленной карточкой можно будет пользоваться. Сейчас из гита евергрины работают, даже с 3д, но я не играю в крузисы, поэтому по качеству ничего не скажу.

>> No.55137  

>>55131

>Подписываюсь под каждым словом. Я не раз отписывался по поводу наёбок ати, хотя надо отдать им должное - без их существования монополия нвидии позволила бы им расслабиться и взвинчивать и без того высокие цены.

Согласен. Печально то, что в ближайшем будущем, если ati/amd не подтянется в плане GPGPU у нее могут быть реальные проблемы.

>> No.55141  
File: 1300299604577.png -(312043 B, 900x700) Thumbnail displayed, click image for full size.
312043

>>55137
Реальные проблемы у них уже не первый год. Они всегда занимали догоняющую позицию, предлагая более дешевые, простые, но производительные решения. Нвидиа, как правило, превосходила их технологически. Однако, в последнее время видеокарты сделали большой скачёк вперёд, и производительность уже не так важна как специфические возможности. Из-за высоких темпов роста низкая планка производительности оказалась на значительном отставании, а в большинстве своём игры (как основной двигатель прогресса) выпускают под максимально широкую аудиторию, поэтому топовые видеокарты пока остаются не у дел. Забавно, что у АМД, купившей Ати похожая судьба, и если они ничего принципиально нового не предпримут, нас ждёт безрадостное будущее с безальтернативной монополией на рынке железа.

>> No.55142  
File: 1300299921270.jpg -(96550 B, 600x450) Thumbnail displayed, click image for full size.
96550

>>55141

>безрадостное будущее с безальтернативной монополией на рынке железа

алсоу, кг-кун, ты как производишь инициализацию окна в своём движке? потому что глют меня выводит этим своим лупом, в который надо запихать алгоритм. может быть я хочу рендерить не по таймеру, а в следствии внутренних событий.

>> No.55147  

>>55142

#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/extensions/xf86vmode.h> //libxxf86vm-dev libXxf86vm.a
#include <GL/glx.h>
#include <GL/gl.h>
#include <X11/X.h>
#include <X11/keysym.h>
#include "../Common/ErrorLog.h"
static int snglBuf[] = {GLX_RGBA, GLX_DEPTH_SIZE, 16, None};
static int dblBuf[] = {GLX_RGBA, GLX_DEPTH_SIZE, 16, GLX_DOUBLEBUFFER, None};
Display   *dpy;
Window win;
XVisualInfo         *vi;
Colormap cmap;
XSetWindowAttributes swa;
GLXContext cx;
XF86VidModeModeInfo     desktopMode;
int screen;
bool  doubleBuffer = true;
bool fullscreen = false;
void fatalError(const char *message)
{
fprintf(stderr, "main: %s\n", message);
Log(LOG_ERROR,"Fatal error: %s\n", message);
exit(1);
}
void InitGL()
{
int dummy;
    dpy = XOpenDisplay(NULL);
if (dpy == NULL)
fatalError("could not open display");
    if(!glXQueryExtension(dpy, &dummy, &dummy))
fatalError("X server has no OpenGL GLX extension");
    vi = glXChooseVisual(dpy, DefaultScreen(dpy), dblBuf);
if (vi == NULL)
{
vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf);
if (vi == NULL) fatalError("no RGB visual with double buffer");
doubleBuffer = GL_FALSE;
Log(LOG_ERROR,"Error: unable to set double buffer\n");
}
if(vi->c_class != TrueColor)
fatalError("TrueColor visual required for this program");
    cx = glXCreateContext(dpy, vi,None,GL_TRUE);
if (cx == NULL)
fatalError("could not create rendering context");
cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone);
swa.colormap = cmap;
swa.border_pixel = 0;
swa.event_mask = KeyPressMask | ExposureMask
| KeyReleaseMask | StructureNotifyMask;
}
typedef struct{
unsigned long flags;
unsigned long functions;
unsigned long decorations;
long inputMode;
unsigned long status;
} Hints;
bool InitFullScreen(int &width,int &height)
{
InitGL();
    XF86VidModeModeInfo **modes;
int modeNum, bestMode;
int vmMajor, vmMinor;
    bestMode = -1;
    screen = DefaultScreen(dpy);
XF86VidModeQueryVersion(dpy, &vmMajor, &vmMinor);
Log(LOG_NORMAL,"XF86 VideoMode extension version %d.%d\n", vmMajor, vmMinor);
XF86VidModeGetAllModeLines(dpy, screen, &modeNum, &modes);
desktopMode = *modes[0];
    for (int i = 0; i < modeNum; i++)
{
if ((modes[i]->hdisplay == width) && (modes[i]->vdisplay == height))
bestMode = i;
}
if(bestMode==-1)
{
Log(LOG_WARNING,"Unable to change resolution. Aviable modes:\n");
LogInc();
for (int i = 0; i < modeNum; i++)
Log(LOG_NORMAL,"%dx%d\n", modes[i]->hdisplay, modes[i]->vdisplay);
LogDec();
bestMode=0;
Log(LOG_WARNING,"Chosen resolution %dx%d\n\n", modes[bestMode]->hdisplay, modes[bestMode]->vdisplay);
}
    XF86VidModeSwitchToMode(dpy, screen, modes[bestMode]);
XF86VidModeSetViewPort(dpy, screen, 0, 0);
fullscreen=GL_TRUE;
width = modes[bestMode]->hdisplay;
height = modes[bestMode]->vdisplay;
    XFree(modes);
    win = XCreateWindow(dpy, RootWindow(dpy, vi->screen), 0, 0,
width, height, 0, vi->depth, InputOutput, vi->visual,
CWBorderPixel | CWColormap | CWEventMask |CWOverrideRedirect, &swa);
    XSizeHints *size_hints;
size_hints=XAllocSizeHints();
if(size_hints!=NULL)
{
size_hints->flags= USPosition | PAspect | PMinSize | PMaxSize;
size_hints->min_width=width;
size_hints->min_height=height;
size_hints->max_width=width;
size_hints->max_height=height;
        XSetWMNormalHints(dpy,
win,
size_hints
);
}
    Hints   hints;
Atom property;
hints.flags = 2; // Specify that we're changing the window decorations.
hints.decorations = 0; // 0 (false) means that window decorations should go bye-bye.
property = XInternAtom(dpy,"_MOTIF_WM_HINTS",true);
XChangeProperty(dpy,win,property,property,32,PropModeReplace,(unsigned char *)&hints,5);
glXMakeCurrent(dpy, win, cx);
XMapWindow(dpy, win);
XGrabPointer(dpy,win,True,0,GrabModeAsync,GrabModeAsync,win,0L,CurrentTime);
XGrabKeyboard(dpy,win,False,GrabModeAsync,GrabModeAsync,CurrentTime);
    //Hide cursor
Cursor invisibleCursor;
Pixmap bitmapNoData;
XColor black;
static char noData[] = { 0,0,0,0,0,0,0,0 };
black.red = black.green = black.blue = 0;
    bitmapNoData = XCreateBitmapFromData(dpy, win, noData, 8, 8);
invisibleCursor = XCreatePixmapCursor(dpy, bitmapNoData, bitmapNoData,
&black, &black, 0, 0);
XDefineCursor(dpy,win, invisibleCursor);
XFreeCursor(dpy, invisibleCursor);
    return true;
}
bool InitWindowed(int x,int y,int width,int height)
{
InitGL();
    win = XCreateWindow(dpy, RootWindow(dpy, vi->screen), x, y,
width, height, 0, vi->depth, InputOutput, vi->visual,
CWBorderPixel | CWColormap | CWEventMask, &swa);
XSetStandardProperties(dpy, win, APP_NAME, APP_NAME, None,
0, 0, NULL);
XSizeHints *size_hints;
size_hints=XAllocSizeHints();
if(size_hints!=NULL)
{
        size_hints->flags= USPosition | PAspect | PMinSize | PMaxSize;
size_hints->min_width=width;
size_hints->min_height=height;
size_hints->max_width=width;
size_hints->max_height=height;
        XSetWMNormalHints(dpy,
win,
size_hints
);
    }
glXMakeCurrent(dpy, win, cx);
XMapWindow(dpy, win);
    return true;
}
void ReleaseGL()
{
if( cx )
{
if( !glXMakeCurrent(dpy, None, NULL))
{
printf("Could not release drawing context.\n");
}
glXDestroyContext(dpy, cx);
cx = NULL;
}
if( fullscreen )
{
XF86VidModeSwitchToMode(dpy, screen, &desktopMode);
XF86VidModeSetViewPort(dpy, screen, 0, 0);
XUndefineCursor(dpy, win);
}
XCloseDisplay(dpy);
}
bool DispatchMessages()
{
XEvent event;
while(XPending(dpy))
{
XNextEvent(dpy, &event);
switch (event.type)
{
case KeyPress:
{
                KeySym key=XLookupKeysym(&event.xkey, 0);
if(key == (KeySym)XK_Escape)
return false;
ButtonDown(key);
}
break;
case KeyRelease:
{
bool is_retriggered = false;
if (XEventsQueued(dpy, QueuedAfterReading))
{
XEvent nev;
XPeekEvent(dpy, &nev);
                    if (nev.type == KeyPress  &&
nev.xkey.keycode == event.xkey.keycode) //&& nev.xkey.time == event.xkey.time
{
// Key wasn’t actually released
is_retriggered=true;
// delete retriggered KeyPress event
XNextEvent (dpy, &event);
}
}
if(!is_retriggered)
{
KeySym key=XLookupKeysym(&event.xkey, 0);
ButtonUp(key);
}
}
break;
}
}
    return true;
}
void UpdateFrame()
{
// if (doubleBuffer)
glXSwapBuffers(dpy, win);/* buffer swap does implicit glFlush */
// else
// glFlush(); /* explicit flush for single buffered case */
}
>> No.55149  
File: 1300301314775.jpg -(24818 B, 500x335) Thumbnail displayed, click image for full size.
24818

>>55147
а для винды ифдефы у тебя в другом каком-то месте? мультиплатформа?

>> No.55152  

>>55149
Да. Вот для MacOS X пока не осилил, Objective-C вместе с Cocoa вызывает у меня когнитивный диссонанс и я ничего не могу написать. Если интересует мультиплатформа, попробуй http://www.glfw.org/ Если глут подходит только для демок, то тут вполне годное решение для разных задач.

>> No.55154  

>>55152
а глут+сдл чем плох?

>> No.55155  

>>55154
Количеством лишних сущностей.

>> No.55157  

>>55155
модульность же.

>> No.55167  

>>55157
Смотри сам. Инициализацию не так уж сложно написать на все случаи жизни, зато ты сам решаешь что и как и не зависишь от

> глют меня выводит этим своим лупом, в который надо запихать алгоритм. может быть я хочу рендерить не по таймеру, а в следствии внутренних событий.
>> No.55331  

Кодач, смотри, есть такой код:

for( std::map< signed int, std::map< signed int, MapTile* > >::iterator it = Tiles.begin(),
end = Tiles.end(); it != end; ++it ){
for( std::map< signed int, MapTile* >::iterator vit = it->second.begin(), vend = it->second.end();
vit != vend; ++vit ){
MapTile* t = vit->second;
if( t->RealX > right || t->RealX < left ||
t->RealY > top || t->RealY < bottom ){
DeleteTile( vit->second );
vit->second = NULL;
it->second.erase( vit );
}
}
if( it->second.empty() )
Tiles.erase( it );
}

Под линуксами работает нормально, начинаю собирать под виндами, падает с прикрелейтед руганью. Я так понял, все дело в it->second.erase(vit); после которого почему-то не может выполниться инкремент.
Да, собираю с помошью gcc в обоих случаях.
Вопрос забыл: что делать? inb4 менять компилятор на msvc, он какой-то безумный, я его не осилил.

>> No.55332  
File: 1300451919901.png -(7850 B, 703x96) Thumbnail displayed, click image for full size.
7850

>>55331
Теперь я забыл пикрелейтед, ох.

>> No.55334  

>>55331
Вычисли, на какой именно операции он падает, дальше ковыряй то, как ты определил эту операцию.

>> No.55877  
File: 1301000911725.jpg -(181433 B, 346x600) Thumbnail displayed, click image for full size.
181433

Плюсоняши, насколько хватает STL для практического программирования(как показывает практика, для академического из него что-то бывает нужно то не часто) и как часто вы пользуетесь шаблонами?

>> No.55880  

>>55877
Часто std::vector, почти всегда std::string и std::isstream, редко std::map. Собственным шаблонам нечасто находится применение, как правило вспоминаю о них во время рефакторинга чтобы избавиться от похожих сущностей.

>> No.55908  

>>55877
В основном string, так же достаточно часто часто vector, мапом реже, но от вектора и мапа стараюсь отказываться в пользу более простых структур. Самописные шаблоны использовал, когда нужно было преобразовывать разные конфиги с варьирующейся структурой.

>> No.55932  
File: 1301063297785.jpg -(115583 B, 700x700) Thumbnail displayed, click image for full size.
115583

>>55908

>от вектора и мапа стараюсь отказываться в пользу более простых структур.

Почему? Stl в большинстве случаев обеспечивает приемлимую производительность, надо только выбрать правильный тип контейнера в зависимости от задачи. Плюс использования stl помимо сокращения кода ещё в том, что другим программистам будет легче разобраться в твоём коде. Конечно, если известен размер массива я тоже использую new[] вместо контейнеров.

>> No.55933  

>>55932
Нэ, нэ, а профессиональное программирование это тоже несколько недель агонии, брейнфака и чтения спецификаций или это уже превращается в рутину?

>> No.55936  

>>55933

>несколько недель агонии, брейнфака

Ты что-то делаешь не так.

>чтения спецификаций

Никогда не бывает лишним.

>> No.55940  
File: 1301065758696.jpg -(101767 B, 425x600) Thumbnail displayed, click image for full size.
101767

>>55936

>Ты что-то делаешь не так.

Возможно это потому, что каждый третий проект сопровождается изучением нового языка или изменением правил написания кода(переход на ООП. например)?

>> No.55947  
File: 1301068763232.png -(196597 B, 995x996) Thumbnail displayed, click image for full size.
196597

>>55940

>переход на ООП

ООП после С++ всегда откровение.

>> No.56531  

Можно ли выполнить код, иногда приводящий к эксепшену, не роняя (в случае эксэпшена в этом коде) основную нить программы?

>> No.56532  

>>56531
fork()?

>> No.56533  

>>56532

>fork()

Мне не нужна копия всего процесса, только небольшой участок кода, никак не зависящий от того, что выполнялось в программе до этого, но было бы полезно, если вдруг запустится, получить результат выполнения хотя бы в виде строки. Например, несколько ассемблерных инструкций, поддерживаемых не всеми процессорами, или вызов функции из очень кривой проприетарной библиотеки.

>> No.56534  

>>56533
Если ребенок упадет то родителя это никак не затронет. Если выполнится успешно - забери результаты и сам прибей его.

>> No.56540  

>>56531
Поймай exception сам, а не пускай его валить всю программу.
В чем проблема?
гугли try catch

или я что-то не так понял?

>> No.56544  
File: 1301590267682.jpg -(170063 B, 1175x795) Thumbnail displayed, click image for full size.
170063

>>56531 >>56533
Повесить обработчики/игноры на SIGILL, SIGFPE, SIGSEGV или что там еще у тебя вызывает падение.

>> No.56551  

>>56544

>игнор на SIGSEGV

Кстати, интересно, как программа будет работать в случае, если игнорировать сегфолты.

>> No.56554  

>>56544
А разве при этом мусор в стэке не будет причиной undefined behavior?

>> No.56559  

>>56544
SIGKILL?

>> No.56560  
File: 1301597635674.jpg -(114765 B, 450x675) Thumbnail displayed, click image for full size.
114765

>>56559
ILL от illegal instruction:
ILL_ILLOPC недопустимый код операции
ILL_ILLOPN недопустимый операнд
ILL_ADR недопустимая адресация
ILL_ILLTRP недопустимая ловушка
ILL_PRVOPC прививилегированная операция
ILL_PRVREG привилигегированный регистр
ILL_COPROC ошибка сопроцессора
ILL_BADSTK ошибка стека
SIGKILL обработать нельзя.

>> No.56561  

>>56560
Ну я и намекаю на то, что после игнорирования сегфолта может появится kill.

>> No.56575  
File: 1301605365237.png -(231038 B, 512x640) Thumbnail displayed, click image for full size.
231038

>>56551
Вывалится с сегфолтом. Если назначить пустой обработчик то уйдет в loop.
>>56554
Можно каким-нибудь хаком собрать мусор из стека/восстановить исходные значения стековых регистров/использовать другой стек.
>>56561
Обработчик то не валится, значит и программа может продолжить работать как минимум в рамках этого обработчика, пусть это и будет страшным хаком.

>> No.56612  

Есть, скажем, две таблицы:
[Employers]
________________
PersonalID (int)|
... |
Branch (int) |
________________|

[Branches]
________________
BranchCode (int)|
Title (nchar(15))
________________
Также имеется связь "один ко многим" из Branches.BranchCode to Employers.Branch

Теперь я хочу вывести таблицу "Сотрудники" так, чтоб вместо кода специальности отображалось название специальности.
Нет ли способа это сделать, кроме использования подобного запроса: "SELECT Employers.PersonalID, Branches.Title FROM Employers, Branches WHERE Employers.Branch = Branches.BranchCode"?

>> No.56613  

>>56612
Можно join использовать, например. Твой запрос вообще работает? Что-то меня сомнения терзают.

>> No.56615  
File: 1301659817722.jpg -(904332 B, 1200x1200) Thumbnail displayed, click image for full size.
904332

>>56612
Можно названия выгребать подзапросами, но это это еще более ресурсоемко, нежели твой запрос.

>> No.56616  

>>56613
Да, запрос работает. Но как для моих целей использовать JOIN?

>> No.56623  

>>56616
SELECT Employers.PersonalID, Branches.Title FROM Employers JOIN Branches on Employers.Branch = Branches.BranchCode;
Как-то так. Возможно нужно еще Employers.Branch и Branches.BranchCode вытащить для сравнения.
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html Виды джойнов в картинках.

>> No.56658  

И снова я выхожу на связь.
В MS SQL нет типа enum, а в программе требуется, чтобы одно из полей таблицы содержало либо "да", либо "нет". Как тут быть? Заводить отдельную таблицу вида "1 Да, 0 - Нет" как-то совсем не хочется.

>> No.56660  

>>56658
char(1), либо 'Y', либо 'N'

>> No.56661  

>>56660
Т.е использовать CHECK? Как это сделать в запросе на выборку?

>> No.56662  

>>56661
Проверяй уже в конечном софте, если что-то отличное от перечисленного - пусть ругается страшным матом.

>> No.56783  

извиняюсь за дико тупой вопрос, но я в этой сфере ничего не смыслю, тащемта у меня на ноутбуке процессор intel core 2 duo p8400, гугол сказал что он поддерживает 64-разрядные инструкции(как я понимаю система команд х86-64), могу ли я поставить на него 64-разрядную венду? сейчас стоит 32-х

>> No.56785  
File: 1301837813065.jpg -(430078 B, 1024x683) Thumbnail displayed, click image for full size.
430078

>>56783
да. но смысл?

>> No.56786  

>>56783
Конечно, можешь. Только вот для этого поступка есть всего несколько причин, но ни одна из них для тебя вроде не подходит. Тут где-то был тред про то, кому нужны 64-битные ОС на данный момент.

>> No.56787  

>>56785
не знаю, просто так, а если процессор все-таки не поддерживает 64-разрядную ось мне во время попытки поставить ее вылезет окошко типа "ты мудак чего творишь" и чем вообще может грозить такая попытка?

>> No.56789  
File: 1301838494217.jpg -(51076 B, 343x472) Thumbnail displayed, click image for full size.
51076

>>56787

>а если процессор все-таки не поддерживает 64-разрядную ось мне во время попытки поставить ее вылезет окошко типа "ты мудак чего творишь"

вроде как да, оуинодс же, эту ось может поставить даже домохозяйка.

>чем вообще может грозить такая попытка

ну не знаю, начиная с висты вроде как венда при установке все данные аккуратно бэкапит. так что- чистой системой, наверное. ты же спермёрочку будешь ставить?

>> No.56790  

>>56789

>ты же спермёрочку будешь ставить?

угу, все лучше чем это тормозное говноедство на висте

>так что- чистой системой, наверное.

ну не самое страшное из предполагаемых мной событий типа сгоревшего процессора

>эту ось может поставить даже домохозяйка.

угу, меня очень забавляют расклеенные объявления у подъезда и в лифте типа "поставим венду с вашего диска за 500р, настроим вафлю за 700" и пр.
>>56786

>Тут где-то был тред про то, кому нужны 64-битные ОС на данный момент.

на ноуте 4гб оперативки, все-таки хочется чтобы полностью индексировалась без всяких костылей

>> No.56791  

>>56790

> типа сгоревшего процессора

Любой Линукс ещё на этапе загрузки установщика скажет что твой процессор не поддерживается и всё. Сомневаюсь что у вендоняш всё хуже.

>intel core 2 duo p8400

Взлетит.

>> No.56792  

>>56791

>скажет что твой процессор не поддерживается

ты хотел сказать вывалится с сегфолтом на загрузке ливсиди?

>> No.56794  
File: 1301841012637.jpg -(148315 B, 572x800) Thumbnail displayed, click image for full size.
148315

>>56790

>предполагаемых мной событий типа сгоревшего процессора

у тебя имеются безумные компьютерные умения, хех.

>на ноуте 4гб оперативки

у меня на всех пека столько в сумме нет. зависть.

>> No.56796  
File: 1301841339338.png -(13999 B, 648x375) Thumbnail displayed, click image for full size.
13999

>>56792
Я сказал именно то, что хотел сказать.

>> No.56797  
File: 1301841749716.jpg -(50845 B, 605x586) Thumbnail displayed, click image for full size.
50845
> тормозное говноедство на висте

Она мало чем отличается от спермёрки, на самом деле.
Я особых различий не заметил, довольно долго сидел на лицензионной спермёрочке, потом пришлось две недели юзать не менее правильную висту. Тормоза если и были, я их не заметил.
крокодил

>> No.56798  
File: 1301842032910.jpg -(132907 B, 593x331) Thumbnail displayed, click image for full size.
132907

>>56794

>у меня на всех пека столько в сумме нет. зависть.

Да брось ты. Она дешёвая сейчас, у меня даже в ноуте 8 (иначе никак - Лоджик с Омнисферой очень прожорливы). При растущих ценах на продукты&коммунальные услуги и дешевеющей электроникой апгрейд основного предмета времяпрепровождения уже не кажется неоправданным выкидыванием денег. Другое дело что не всем нужно много оперативки, но тогда вопрос откуда зависть.

>> No.56800  
File: 1301842613850.jpg -(229618 B, 1024x683) Thumbnail displayed, click image for full size.
229618

>>56798

>Она дешёвая сейчас, у меня даже в ноуте 8

а мне не надо просто, лол. леенух-то память не жрёт. буду новую покупать под ddr1000-или какая-там-самая-быстрая когда оновлю процессор и мать. если обновлю.

>откуда зависть

бытовая любовь к блестяшкам.

>> No.56801  

>>56794
виста вместе с лисой выжирает до 2гб из индексируемых 3 на 32-х разрядной, так что толку от нее мало
кстати, раз уж зашел такой разговор, у ноутбука можно самому заменить различные аппаратные компоненты типа процессора или видюшки? слышал что нвидиа выпускает свои карточки для ноутбуков по какому-то стандарту и они заменяемы, если есть такая возможность то имеются ли такие карточки в продаже?

>> No.56802  
File: 1301842780979.jpg -(103274 B, 900x617) Thumbnail displayed, click image for full size.
103274

>>56801
ну вроде как там какие-то миниатюрные псиэкспрессы впаяные. алсоу видел память для ноутов.

>> No.56805  
File: 1301843315659.png -(9890 B, 300x300) Thumbnail displayed, click image for full size.
9890

>>56801
Если в описании ноута дискретная видеокарта, значит заменяемая. А зачем мощная видеокарта в ноутбуке? В игры поиграть зарядка не даст, а дома для этого консоль или стационарный компьютер есть как несомненно более пригодные.

>так что толку от нее мало

Обработка изображений(уже не так актуально) и видео, запись музыки. Обычно чем больше, тем комфортнее работать, причём необходимый минимум всё время растёт. Оно и понятно, по сравнению с ценой на софт докупить ещё оперативки не будет проблемой, а на пиратов им совершенно логично похуй. Для сидения в интернете и прочих повседневностей даже нетбука многим хватает.

>> No.56806  

>>56802
ну память-то понятно, процессоры тоже под определенный сокет в принципе заменяемы, винты саташные под 2.5" тоже вроде стандартизированы, а вот про видюшки единого мнения не слышал, кто-то говорит что атишные вообще незаменяемы, а нвидивские теоретически заменяемы, но нигде нет

>> No.56809  

>>56805

>Если в описании ноута дискретная видеокарта, значит заменяемая. А зачем мощная видеокарта в ноутбуке? В игры поиграть зарядка не даст, а дома для этого консоль или стационарный компьютер есть как несомненно более пригодные.

ну понятное дело что если бы была интегрированная то у меня и вопросов не возникло, вопрос в том что ходят слухи что и дискретные на ноуте просто так не заменить, а нужна она потому что ноутбук у меня заменяет пека, старому уже лет 7 а на новый денег нет, да и как-то нет и особой потребности в нем, пока

>> No.56813  
File: 1301845461046.jpg -(355677 B, 900x737) Thumbnail displayed, click image for full size.
355677

Может кому и поможет, учитывая сабж ИТТ. На современных нубуках легко меняется оперативка и винт. Однако же обычно выходит дорого, ибо слотов для оперативки обычно не более двух, а для харда редко более одного. По видихам - на сколько я помню даже нвидивские хоть и дискретны, но нуждаются в пайке,что при рашкинском уровне сервиса может привести к потребности в новом ноуте.
>>56805

>А зачем мощная видеокарта в ноутбуке? В игры поиграть зарядка не даст, а дома для этого консоль или стационарный компьютер есть как несомненно более пригодные.

Подумал бы ты о бедной студентоте, особенно если она учится в другом городе, а если уж живёт в общаге... Алсо, на счёт непригодности нубука к играм я бы поспорил - хуже конечно, дороже, но быть на волне позволяет пару лет, а затем требует замены зверя(но у них и оф. срок службы редко больше двух лет).

>> No.56814  

а вот я всегда считал ноут чем-то ультрамобильным, чтобы его можно было на коленке разместить. ыместо ноута для студента больше подойдёт пека на маленькой матери в чемоданчике, ящитаю. хотя тут нужен мэдскиллз.

>> No.56815  
File: 1301846404709.jpg -(342879 B, 578x818) Thumbnail displayed, click image for full size.
342879

>>56814
Когда студентом жил в общаге за 600км от дома, у меня был обычный пк с элт-монитором. Не понимаю, о каких неудобствах он говорит и зачем выдумывать всякие

>пека на маленькой матери в чемоданчике
>> No.56817  
File: 1301847497346.jpg -(424308 B, 650x1016) Thumbnail displayed, click image for full size.
424308

>>56814

>а вот я всегда считал ноут чем-то ультрамобильным, чтобы его можно было на коленке разместить

А я всегда считал, что ноут это просто удобно, особенно для проведения презентаций, да.
Но, господа, посмотрите статистику. Ноут - не роскошь, мобильных платформ на рынке уже не меньше чем стационарников. Если не нужна сверхвысокая производительность - то, так называемый, домашний ноут с 17-18" верное решение и место экономит.

>пека на маленькой матери в чемоданчике, ящитаю.

С каких пор ноут перестал быть ПК? Алсо, таскать полноразмерное чудище в чемоданчике конечно здорово, но рынка у них нет как такового, а это намекает. Тогда уж проще неттоп завести.
>>56815

>у меня был обычный пк с элт-монитором.

В маленькой комнатке не очень то приятно терпеть подобный предмет. Алсо, сколько всего стационарников было в комнате?

>Не понимаю, о каких неудобствах он говорит и зачем выдумывать всякие

О возможности уединиться вместе со своим компьютером. Взять его в библиотеку, например, показать преподу сорцы на своей VS 10, а не пересобирать под 2005-ю, например, принести к друзьям, например. И "например"-ов у меня ещё много.

>> No.56903  

http://www.kompoblog.ru/?p=514

>> No.56912  

Ноут дома не нужен, разве в сортир таскать. Клавиатура не удобна, монитор не поставить в удобное положение относительно рук, стоит дороже, греется сильнее.

>> No.56914  

>>56912

> в сортир таскать.

Но зачем?

>Клавиатура не удобна

Можно купить внешнюю.

>монитор не поставить в удобное положение относительно рук

Для этого есть подставки, костыльно, но действенно.

>стоит дороже

Миниатюризация всегда стоит.

>греется сильнее.

Наоборот, просто охладить сложнее.

>> No.56917  

>>56914
То есть купить клаву и подставку, доплатить за сам комп(кстати, мониторы в доступных ноутах - глянцевые ТN) и все равно остаться с шумной грелкой на столе перед носом? Причем если брать мощный ноут "для работы", то без розетки он долго не проработает.
Если уж очень нужен, то брать простую модель за ~15к и хороший комп за такую же сумму домой(20к если монитор какой-нибудь dell 2211H).

>> No.56924  

Комп выбирает каждый сам себе, основываясь на своих потребностях. Плюс, грамотная настройка софта нередко позволяет компенсировать недостатки железа. Как студент-общажник, гарантирую это. Брал ноут примерно 2,5 года назад за 35000 руб, до сих пор дает фору, новым поделкам на i5 и i7, YOBA-шедевры не лагают на максималках (особенно после удаления).

>> No.56936  
File: 1302010145117.png -(1687799 B, 2695x1648) Thumbnail displayed, click image for full size.
1687799

>>56917
Также неплохой вариант ноут и консоль. Экономия на апгрейде железа ради новых игр. Аниму/интернет/офис ноутбук за 15к обеспечивает. Можно подсесть на тоху и не нужен будет ни стационарник ни консоль.

>> No.56937  
File: 1302011572626.png -(365111 B, 2031x2031) Thumbnail displayed, click image for full size.
365111

>>56936

>cонсоль
>Экономия на апгрейде железа ради новых игр

правильно. ИГОР-ТО НЕТ.

>подсесть на тоху
>ни стационарник

я после прохождения ночью в лежачем положении неизгоняемой ночи+моко, в 8 часов утра, не мог решить что же у меня болит больше: руки, глаза или голова. нахуй такой гейминг.

>> No.56939  
File: 1302012289843.jpg -(300263 B, 463x600) Thumbnail displayed, click image for full size.
300263

>>56937

>ИГОР-ТО НЕТ.

Игр достаточно. При таких-то ценах всё равно много не купишь. Зато игры с душой, а не йоба-говно которое сносишь в первый же день.

>> No.56941  

>>56939

>Heavy Rain
>игра

Ты, наверное, шутишь.

>> No.56942  
File: 1302014073349.png -(42170 B, 346x229) Thumbnail displayed, click image for full size.
42170

>>56939

>игры с душой
>плоечка

и почему на твоём прикриплейтеде кинцо за 2300?

>> No.56944  
File: 1302020544355.jpg -(90893 B, 435x500) Thumbnail displayed, click image for full size.
90893

>>56941
>>56942
Что насчет этой? Тоже придираться к чему-то будете?

>> No.56947  
File: 1302021711853.gif -(1959141 B, 270x180) Thumbnail displayed, click image for full size.
1959141

>>56944
единственная игра для ps3, которая вышла в.. каком году?

>> No.56948  

>>56947

>единственная игра для ps3
>ИГОР-ТО НЕТ

Уже начинаются неувязочки, да?

>> No.56949  

>>56948

>которая вышла в.. каком году?

ну одна вышла, и больше нет.

>> No.56953  

>>56949
А больше и не надо. Плойка только ради MGS существует.

>> No.57183  
File: 1302313187327.jpg -(158658 B, 850x572) Thumbnail displayed, click image for full size.
158658

Имеется массив в котором каждому элементу соответствует строка имени (имена и значения загружаются из файла). Было бы очень удобно обращаться к элементам массива в коде по строке (статической), но при этом чтобы в рантайме все обращения были по индексу. Как реализовать такое шаблонами на с++? Сейчас я решаю это приблизительно так:

struct array_el
{
string name;
some_class value;
};
vector<array_el> array;
int elem_foo=-1;
int elem_bar=-1;
....
void LoadFromFile(string file_name)
{
    ...
    for(uint t=0;t<array.size();++t)
{
if(name=="foo")
elem_foo=t;
else if(name=="bar")
elem_bar=t;
...
}
}
void Calculate()
{
do
{
array[elem_foo]+array[elem_bar]...
...
>> No.57196  

>>57183
Мне кажется, ты пытаешься сделать map через вектор, либо я ничего не понял. А зачем обращение по индексу?

>> No.57199  
File: 1302349835637.jpg -(121007 B, 500x769) Thumbnail displayed, click image for full size.
121007

>>57196
На самом деле это упрощённая сферическая задача, меня интересуют возможности шаблонов и compile-time вычисления.

>А зачем обращение по индексу

Чтобы было О(1). В map в худшем случае O(logn). Задача написать контейнер, который будет заменять уникальными индексами строчки на этапе компиляции, а при добавлении элементов размещать их по этим индексам. На заранее незнакомые строчки при добавлении элементов не добавлять ничего.

>> No.57203  

>>57199
Содержимое строки не может быть аргументом для шаблона, значит, и диспетчеризация в компайл-тайме так просто не получится.

>> No.57208  

>>56939
Как же толсто. Плохих игр (почти) нет, есть плохие платформы и уебаны-игроки.

>> No.57407  

http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

>> No.57409  

>>57407
Как я и ожидал, самые интересные варианты в конце.

>> No.57413  
File: 1302518833321.png -(371481 B, 1920x1080) Thumbnail displayed, click image for full size.
371481

Наткнулся в сети:
http://cppforeach.wordpress.com/2008/05/19/around_access_modifiers/

>Напоследок приведу несколько приёмов, с помощью которых можно «достучаться» до закрытых функций или данных.

К чёрту инкапсуляцию!

>#define private public

ДА!

>> No.57447  

>>57409

>Как я и ожидал, самые интересные варианты в конце.

О чем конкретно идет речь?

>>57407
Интересно, что я в свое время не наткнулся на эту ссылку, но самостоятельно добрался (и прочитал) многие из книг, которые тут "в топе". Наверное, в IT до сих пор не так и много действительно хороших книг.

>> No.57448  

>>57413

>Создать класс с таким же расположением в памяти и воспользоваться reinterpret_cast для преобразования указателей

Это на самом деле даже глупее, чем:

>#define private public
>> No.57449  

>>57448
Я всегда считал что то, что описано в статье люди делают по незнанию (принципов ооп) или от большой глупости. Оказывается, их этому специально учат.
>>57447

>Наверное, в IT до сих пор не так и много действительно хороших книг.

В IT вообще мало книг по программированию выше начального уровня, и то половина из них о каких-то специфических вещах.

>> No.58076  

Сломал мозг:

void func (int *&val);

Это ссылка на указатель.

>> No.58082  

>>58076
и?

>> No.58500  

старая добрая паста
Небольшой словарик ключевых фраз в объявлении, который должен помочь молодому соискателю вакансии программиста.

  1. «Быстро растущая компания» – несколько корешей срубили, наконец, нормальные бабки с клиента. Надо срочно нанять народ, чтобы попытаться сделать работу.
  2. «Гибкие agile методики» – в конторе никто ни ухом, ни рылом не сечёт в предметной области. Программистам придется «гибко», с разворотами на 180 градусов, менять свой код по мере постепенного и страшного осознания, а какую, собственно, прикладную задачу они выполняют.
  3. «Умение работать в команде» – в бригаде никто ни за что не отвечает, документация отсутствует. Чтобы понять, как выполнить свою задачу, требуется ласково просить объяснить коллег, как интегрироваться с уже написанным ими кодом.
  4. «Умение разбираться в чужом коде» – никто не знает, как это работает, поэтому п.3 «умение работать в команде» не помогает. Отсутствуют даже минимальные стандарты на кодирование. Документация отсутствует либо датирована прошлым десятилетием. Переписать код нельзя, потому что в отсутствии системы автоматизированных тестов это мгновенно дестабилизирует систему.
  5. «Гибкий график работы» – программировать отсюда и до обеда. А потом после обеда и до устранения всех блокирующих ошибок.
  6. «Опыт работы с заказчиком» – заказчик не знает, чего хочет. Но очень хочет заплатить по-минимуму и увидеть исполняемый танец живота по максимуму.
  7. «Отличное знание XYZ» – на собеседовании вам могут предложить тест по XYZ, где в куске «говнокода» нужно найти ошибку или объяснить, что он делает. Это нужно для проверки п.4. К собственно знанию XYZ тест имеет очень далёкое отношение.
>> No.60041  

Мне нужны спеки и хоть какой-то стандарт по Objective-C++

>> No.60049  

>>60041
Такого языка нет, есть либо Objective-C либо C++.

>> No.60051  

>>60049
Objective-C++ - это Objective-C + C++. То есть это надмножество C++ с фичами из Objective-C. Обычно прослойки между Objective-C и C++ пишут именно на этом.

>>60041
Читай стандарт по C++ (ISO/IEC 14882), по Objective-C стандарта вроде нет, есть куча книг и мануалы от эпла.

>> No.60054  

>>60051
Именно про соответствие стандарту С++ было интересно. При подключении библиотек С++ пишутся врапперы на Objective-C++, чтобы затем использовать в Objective-C, писать проект на Objective-C++ почему-то избегают.

>То есть это надмножество C++

То есть ограничений на возможности С++ нет, это радует.

>Обычно прослойки между Objective-C и C++ пишут именно на этом.

От прослоек, как правило, много и не требуется. Интересно как он ведёт себя при глубокой интеграции с использованием темплитов.

>> No.60086  

Какие есть утилиты для приведения кода в чистоту? Правильно расставить табуляции, имена внешних переменных с большой/с маленькой для членов класса, добавление префиксов по шаблону? Мне какой-то пиздец принесли, надо разобраться и дописать.

>> No.60088  

>>60086
sed?

>> No.60089  
File: 1305387132315.jpg -(48089 B, 450x600) Thumbnail displayed, click image for full size.
48089

>>60000

>> No.60161  
File: 1305506625691.png -(211865 B, 1280x1024) Thumbnail displayed, click image for full size.
211865

>>60086

>Правильно расставить табуляции, имена внешних переменных с большой/с маленькой для членов класса, добавление префиксов по шаблону?

в эклипс-cdt есть опция "форматирование", но сначала надо задать шаблон.

алсоу, меня одного раздражают табуляции-хуеляции и большие буквы в именах переменных? пишу только в столбик, без отступов, всё маленькими буквами, иначе совершенно не могу разобраться даже в собственном коде.

>> No.60180  

>>60161

>пишу только в столбик, без отступов, всё маленькими буквами, иначе совершенно не могу разобраться даже в собственном коде.

fuuuuuuu

>> No.60182  
File: 1305577800687.png -(13797 B, 600x600) Thumbnail displayed, click image for full size.
13797

>>60180
проблемы, кодер?

>> No.60185  

>>60161
Да я не удивлён, если честно

>> No.60186  
File: 1305579437591.png -(27360 B, 799x536) Thumbnail displayed, click image for full size.
27360

>>60185
я не понимаю, что вам не нравится. ну проще же так код читать, глазами водишь только вертикально, а с отступами добавляется ещё и горизонтальное измерение, сразу всё путается к хуям.

>> No.60187  

>>60161

>пишу только в столбик, без отступов, всё маленькими буквами, иначе совершенно не могу разобраться даже в собственном коде.

Вот такие они - быдлокодеры. Плевать им на нотации. Да и вообще, как можно в таком дерьме разобраться?

>> No.60188  

>>60186
Попрогай на Питоне, лол.

>> No.60189  

Уже не актуально, перегнал регекспами. Надо будет на будущее накатать утилитку, мало ли какое ещё говно принесут.

>> No.60192  
File: 1305580297293.jpg -(446818 B, 800x838) Thumbnail displayed, click image for full size.
446818

>>60187
быдлокодеры как раз пишут шарпохуйню с автоматическими нотациями, а я байтодрочер. вы в асме, например, видели хоть раз нотации?
>>60188
зойчем?

>> No.60194  
File: 1305580695549.jpg -(46092 B, 694x229) Thumbnail displayed, click image for full size.
46092

>>60192
Затем, что в питоне форматирование кода влияет на результат компиляции, а { и } нет вообще.

>а я байтодрочер

Подписываюсь на цикл лекций про cache-friendly code в твоём исполнении.

>вы в асме, например, видели хоть раз нотации?

Ты не поверишь…

>> No.60198  
File: 1305581392321.jpg -(280991 B, 736x900) Thumbnail displayed, click image for full size.
280991

>>60196

>всё равно нотации нужны только чтобы кто-то незнакомый с кодом мог быстро найти в нём нужные части. если пишешь для себя- она только мешает.

Ты ведь ещё и не комментируешь правда? А теперь разбери ка свой "понятный" код двухлетней давности.

>> No.60203  
File: 1305582307239.jpg -(141087 B, 719x807) Thumbnail displayed, click image for full size.
141087

>>60196
Ты не прав, со временем поймёшь. Возможно, для небольших проектов из одного файла твой подход и сгодится (хотя в нём в любом случае нет ничего хорошего), но для чего-то большего это может вылиться в неочевидные трудности.
>>60198
В комментария смысла мало. Комментарии нужны только для эзотерики, в остальном лучше писать визуально понятный код, чтобы о назначении было понятно из имён переменных, функций и неймспейсов и придерживаться общих правил именования: когда в одной либе схожие объекты уничтожаются функциями ->Dealloc() ->Kill() ->Remove() ->Clear() хочется поочерёдно применить их к автору.

>> No.60218  

>>60203
Комментарии ведь не только для себя нужны. А вдруг тебе кто-то внезапно решит помогать? Ну еще можно мысли записывать типа TODO: Ну и конечно чтобы через несколько лет разобраться в ерунде, которую переусложнил.

>> No.60224  

>>60218
Если код не спагетти, чаще всего комментарии излишни. А там, где чушь написана, там и с комментариями много не разберёшь. Я совсем не против, но большинство комментариев оставляет капитан очевидность.

>> No.60239  

>>60224
Если читающий мало знаком с языком, но ему нужно понять,
что происходит, то комментарии могут помочь.
совсем-другой прохожий

>> No.60240  
File: 1305663268400.jpg -(3415 B, 126x109) Thumbnail displayed, click image for full size.
3415

>>60239
Пусть читает сопроводительную документацию. И вообще, что значит "мало знаком"? Если там не перл и прочий брейнфак, не будет особой разницы, с комментариями или без. Надо стараться писать вменяемый код, комментарии - костыли.

>> No.64567  

Неочевидная особенность в синтаксисе определения переменных C++
http://habrahabr.ru/blogs/cpp/68796/

>> No.64669  

Обязателен ли O_LARGEFILE, если файл может быть больше 4Gb, но на нем не выполняется ни одного seek?

>> No.64968  
File: 1311004652627.jpg -(340350 B, 792x624) Thumbnail displayed, click image for full size.
340350

http://www.theregister.co.uk/2009/05/07/verity_stob_cplusplus/

>> No.64972  
File: 1311006155658.jpg -(733173 B, 800x920) Thumbnail displayed, click image for full size.
733173

http://www.theregister.co.uk/2006/08/08/cplusplus_loops/

>> No.64979  

>>64567
Это апгрейденная версия одних граблей, на которые любят наступать новички. Часто пытаются создать объект, вызывая пустой конструктор следующим образом:
Foo bar();
Вместо создания объекта типа Foo с именем bar, декларируется функция bar, которая возвращает объект типа Foo. Компилятор выдает ошибку в месте использования bar.function(), что типа нельзя применять точку к функции, что вызывает у новичка ступор, типа "какая нахрен функция, что ты мне тут городишь, это ж объект!"

>> No.64980  

>>64979
В языке не должно быть подобных ситуаций. А что ты думаешь о C++0x? По-моему станет только запутанней. Вместо нескольких редких ситуаций (лень поставить скобки в && ? Как пример) получаем совершенно запутанный синтаксис. Тенденции, может, и верные, но без фанатизма явно не про них, и вмето исключений новичкам теперь всем придётся знать оба варианта. совместимости для.

>> No.64982  

>>64980

>В языке не должно быть подобных ситуаций.

В хорошем, конечно, не должно.
О C++0x я пока не думаю, хотя, конечно, читал про сабж. Мелкие изменения я поддерживаю (типа того, что теперь, наконец можно не ставить пробелы между закрывающими скобками шаблонов: std::vector<boost::shared_ptr<MyShit>/* тут пробел уже не обязателен */> ). Поддерживаю новые применения слову auto, хотя это будет еще одна из фич, которые нужно использовать только там, где надо, а не повсеместно (не очень улыбает иногда писать что-то типа for(std::vector<boost::shared_ptr<MyShit> >::iterator i = vec.begin(); ...
Тайпдефы, конечно, решение (его я и применяю в данный момент в таких ситуациях), но они тратят как минимум лишнюю строчку, auto тут смотрится просто отлично.)
Многие сложные нововведения я не поддерживаю, они все усложняют, а особо ничего не дают.
По поводу новичков, даже не знаю, что им теперь делать. С++ и сейчас тяжело изучить на хорошем уровне даже при большом желании и таланте, а с новым стандартом все будет еще печальнее. Хотя можно его по-началу игнорировать.

>> No.65026  

>>64669
Как оказалось из обязательного только

#define _FILE_OFFSET_BITS 64

иначе с >2G файлами работать не получается. Хотя наверное это тут никому не интересно.

>> No.65030  

>>65026
Интересно, но с большими файлами никогда не работал. Есть какие-то пенальти? Я так понимаю, больше 3 гб уже не прямая адресация?

>> No.65041  

>>65030
Вполне прямая, просто off_t 64х-битный используется. Чтобы он стал таковым, нужно указать соответствующие #define.

>> No.65046  

>>65038
А откуда ты там вообще n^2 взял? У тебя 3(n-1) для трёхмерного случая (6 соседей, но каждую пару одна проверка). Другое дело что в случае связей требуется несколько раз подряд пересчитывать позицию чтобы расстояния устаканились.

>> No.65056  
File: 1311097214003.jpg -(29474 B, 320x614) Thumbnail displayed, click image for full size.
29474

Кто-нибудь встречал годные гайды по OpenGL ES, только не про рисование чайников, а про отличия от старшего брата, про баттлнеки и подводные камни? Просто глубокое погружение без сравнений тоже сойдёт. Интересуют архитектурные особенности и приоритеты при оптимизации.

>> No.65066  
File: 1311107886575.jpg -(39660 B, 550x422) Thumbnail displayed, click image for full size.
39660

>>65056
Sort of http://www.fabiensanglard.net/dEngine/index.php

>> No.65206  
File: 1311272134489.jpg -(827104 B, 850x708) Thumbnail displayed, click image for full size.
827104

>>65120
Вот например:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch29.html

>29.1.4 Collision Detection
>> No.65213  
File: 1311280088125.png -(377531 B, 765x972) Thumbnail displayed, click image for full size.
377531

>>65038

>вектор рассчитан на то, чтобы быстро добавлять элементы или нет?

Больше подойдёт list, std::vector гарантирует хранение непрерывным куском памяти, при добавлении время от времени выделяет больше памяти с копированием. Добавление в середину для std::vector тоже не самый быстрый вариант. Для высокопроизводительных алгоритмов вообще советую обойтись статическими массивами, пусть и с ограничениями. Алгоритмы с nearest и сортировками плохо ложатся на GPU, сетки в этом плане удобнее.

>> No.65238  
File: 1311319766750.jpg -(186977 B, 672x792) Thumbnail displayed, click image for full size.
186977

>>65213
а в куде можно во время испонения работать с памятью?

я вот хочу вместо сетки хранить в каждой частице набор указателей на соседей, а так же не хранить частицы внутри объёма вообще, добавляя их по мере надобности тогда, когда во время просчёта пересечений внешнее тело воздействует на границу объёма(это для земли). это возможно будет портировать на куду?

>> No.65367  

а как у нас схоронить блок памяти и гарантировать его загрузку в в том же виде? чтобы потом указатели только скорректировать относительно начала и всё было.

>> No.65382  
File: 1311523307581.jpg -(472445 B, 800x600) Thumbnail displayed, click image for full size.
472445

>>65367

> схоронить блок памяти и гарантировать его загрузку в в том же виде?

man 2 write
man 2 read

>> No.65390  
File: 1311526801283.png -(146156 B, 739x576) Thumbnail displayed, click image for full size.
146156

>>65382
а рид гарантирует integrity блока в памяти, кэп?

>> No.65394  
File: 1311528155802.jpg -(290067 B, 516x729) Thumbnail displayed, click image for full size.
290067

>>65391

>Объявить массив, чтобы он не занимал память.

Либо ты наркоман, либо я чего то не понимаю в сях.

>> No.65398  

>>65394
я это уже с указателями запилил, потом лишние выкидываю.

>> No.65421  
File: 1311537547241.jpg -(302785 B, 1000x703) Thumbnail displayed, click image for full size.
302785

>>65390
Если ты не отличаешься особой кривизной рук то все у тебя будет читаться и писаться в целости и сохранности.



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]