03-04-2008 22:00
Ужасно запарился со своим проектом. Где-то идёт утечка памяти, всё облазил - нигде нет. Проверка памяти на входе и на выходе, самое интересное, иногда даёт положительный результат, а вот иногда сообщает об утечеке. 2 грёбаных дня из-за всяких таких косяков не могу продолжать дальше кодить логику, с которой до конца ещё тоже не всё ясно. Жутики, жутики...

Музыка: Nightmare
Комментарии:
04-04-2008 19:12
абструктор
Память может теряться не столько на входе/выходе, а скорее в теле функций, который забывают очищать указатели. Проблема висяков, как известно, приводит не только к тотальным и резким падениям :)
Тёмный ангел
Не, я имел в виду, что сравниваю количество свободной памяти при запуске программы и после её завершения. И разница этих значений не равна нулю( причём иногда-то равна). И это очевидно, что ни моя прога, ни виндовс не ругаются по поводу этой утечки. Но, блин, меня жутко расстраивает...
04-04-2008 19:44
абструктор
aidez
Хе. А ты понаблюдай тогда уж, как ведут себя другие программы :)
Даже если бы ты не использовал никаких внешних библиотек и все сделал на основе минимума С++, есть ряд процедур и действий, которые ОС выполняет перед стартом и завершением любой программы. Не говоря уже о том, что полную очистку памяти может гарантировать лишь управляемая среда.
Тёмный ангел
terR0Q
Когда писал под Dos на паскале, очищал всё под ноль (Хотя всё же проверить на 100% это нельзя. Виртуальная машина может тоже с утечкой написана, кто её знает )

А теперь получается, что банально при рисовании средсвами GDI в определённый момент происходит захват памяти(которая, может быть, потом и очищается, но во время выполнения после уничтожения каждого экземпляра объекта теряется 16 байт). Но в этот момент я вроде как не сильно переживаю - GDI не я писал, "обратитесь к разработчиккам". Главное, чтобы это не у меня было...
04-04-2008 20:05
абструктор
aidez
А какая платформа? Елси управляемая среда (Java machine или .NET), то там вообще никто не гарантирует сиюминутной уборки мусора. Рекомендую почитать статьи на тему. Сборщики тока гарантируют, что мусор будет убран, а вот насколько быстро - вопрос используемого алгоритма. Плюс к этому, в том же дот нете все удалённые объекты по сути какое-то время ещё живы. То есть все значения из стека вычищаются, а вот в куче что-то ещё остаётся занято. В общем, вопрос достаточно скользкий и жёстко и строго решается лишь при подготовке встраиваемого ПО и игрового (и то, ессно что не всегда).
Тёмный ангел
terR0Q
Delphi

Там чувствую вообще что угодно может происходить. Меня шок хватил, когда пришлось после паскаля там все указатели убирать и оставлять разбираться со всем компилятору. Раньше я и не знал, за что профи косо смотрят на Delphi, а тут получается, что вот оно.
04-04-2008 20:25
абструктор
aidez
OMG. Это немало объясняет. Конечно, в умелых руках и все такое, но все таки жуткая штука. По проблематичности в эксплуатации разве что Oracle можно вспомнить. Такие огроооомные, и порой такие убоооогие :))
Тёмный ангел
terR0Q
Да, я бы с радостью писал в MSVC, но универ от нас требует. Хуже того, что на следующий год у нас будет OpenGL в том же Delphi, при чём программу надо писать, чтобы она адекватно работала на(!!!) Riva TNT2 =\ По-моему, там в одном из комп. аудиторий специально машины не апгрейдят, чтобы студенты помучались. А ну к чёрту эти шейдеры, даёшь графику 90-х... не знаю, как мы это переживём.

p.s. Кстати, я хотел с тобой как раз поговорить о перпективах в IT сфере: чему учиться, что сейчас востребовано, что пригодится, а чем зарабатывать можно. Но думаю это можно будет в аське обсудить, чтобы ПЧ не смущать?
04-04-2008 20:52
абструктор
aidez
это наманый выбор, учиццо проще на азах графики, это будет простейшая обработка.

ага, стучись гденидь вечерком :)
04-04-2008 22:08
Наивный идеалист
та ладно, ламо в лице мну тоже послушать хотело (
Тёмный ангел
Мист
Да тут вопрос как раз не на знания в области IT, а скорее человеческий: чем на жизнь зарабатывать?

terR0Q
Раз нас уже трое, то можно немного начать...

Я вот всё задаюсь вопросом, что сейчас наиболее востребовано и где нет перенасыщения кадрами: PHP, Java, MySQL, AJAX, 1C() ?
И в не интернет сфере, что всё-таки стоит изучать подробно, старый добрый C++ или C#? .Net вроде как тоже важен, но насколько? И вообще, реально ли сейчас вот так вот, просто фрилансом прикладным программированием(написанием ППО) заниматься?

Вообще меня ещё тема микроконтроллеров с некотрого времени заинтересовала, но я даже не предсталяю, как к этому подступиться...
Камрад
и где нет перенасыщения кадрами: PHP, Java, MySQL, AJAX
В крупных городах вроде как ещё требуется.
1с - не только в крупных.

ещё тема микроконтроллеров с некотрого времени заинтересовала
Я так думаю подступиться с той штуки которая их штампует. С инструкции к программатору.)
06-04-2008 13:15
абструктор
aidez
Один банальный ответ: хорошие программисты нужны всегда, потому как в этой профессии нехватка постоянна. В целом же, программисты весьма требуются для работы с Java и .NET. Знание основ баз данных обычно требуется в любом случае. Лучше хорошо представлять себе различия MySQL, Oracle и SQL Server. В среде С++ слишком продавленная кривая обучения получается, а поднатаревших специалистов за последние лет 20 набралось немало. Это и свежие выпускники последних 5 лет, и дяди лет за 35. В Delphi программеры требуются всегда - на этой платформе полно ПО написанного, да и просто используется там, где то и дело с нуля пишут стандартный софт.

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

JAVA вкупе с разными базами данных активно используется при построении корпоративных систем в нашей стране. Собственно такой же популярностью и распространением обладает только Oracle. Причина вполне банальна: есть хороший инструментарий, который даже при официальном оформлении не требует особых затрат (самое известное и крайне качественное решение - Eclipse, чего только не умеет), а также в фирмах-клиентов чаще предпочитают распространить JVM, а не продукты Microsoft (вопрос цены, а 3й группы в общем-то и нет в среде клиентского ПО). Плюс к этому полно официальных референсов в сети, множество форумов и мэйл-листов самого разного толка. Да и язык хороший.

Платформа .NET пока еще остаётся свежей для нашей страны, т.к. обычно с трудом до людей доходит, что это бесплатная платформа и для неё есть хороший софт. Но так же обычна и другая проблема: дороговизна Windows. Хотя очень часто на компах стоит именно Винда, и вот тут выбор JVM против дотнэт не всегда адекватен. Производительность у платформы выше, простота использования и разворачивания приложений отличная. Да и клиентские приложения под винду делать тут намного эффективнее: тут и технология WinForms, и хорошая среда разработки. Плюс ко всему ASP.NET позволяет делать сайты качественнее и эффективнее, чем в случае с PHP. Да и потом на дотнэте почти стёрта грань между веб- и вин-приложениями: не стёрта дальше разумного, но вот подключить на том же сервере страниц какую-то внешнюю программу здесь куда проще.

PHP весьма активно используется в среде веб-приложений. Но тут устаревший и местами громоздкий синтаксис перемежается с основной проблемой: это изначально парсер. Попробовав эту технологию и asp.net, могу как минимум 2 преимущества последнего отметить:
1) Объектное представление каждой страницы и ее элементов (можно использовать простые html-теги, а можно юзать т.н. серверные элементы, которые в нужный момент рендерят определенную разметку).
2) Отделение программного кода от разметки.
На php можно делать хорошие приложения, но у них будет проблема масштабируемости, а также требуются очень хорошие программные навыки, чтобы не наделать дырок и тех же утечек.

AJAX - это совокупность технологий, необходимо владение только в среде веб-разработок. По сути это JavaScript, обрабатывающий фоновые запросы и ответы к серверу. Соответственно требуется добавление дополнительных обработчиков на сервере и знание XML и/или JSON для обработки пересылаемых данных.

C++ - сфера уже низкоуровневого программирования. В принципе применим везде, но за счёт некоторых своих аспектов (скорее архаичности) неэффективен во многих случаях. Обычно используется при написании драйверов, переписывании или создании "узких" мест программ, а также при поддержке "старого хлама", который по определённым причинам предпочитают поддерживать нежели переписывать. Плюс ко всему это доминатор в среде встроенного программирования. Могу и ошибаться, но я не слышал, чтобы Eiffel или Smalltalk использовали бы в этой среде.

Про Delphi сказал вначале.

1С - эээ... хех :) Во-первых, насколько могу судить, это относится к вопросу С++. Но сверху садится вопрос жуткого объёма их приложений и проблем плохого дизайна этих монстров. Ну а также, что банальнее, это настройка приложений клиентам.
Камрад
terR0Q Сам эту хрень набирал или скопипастил?
06-04-2008 22:59
абструктор
PALADIN
сам. just a humble opinion
Тёмный ангел
terR0Q
Спасибо за подробный экскурс.
Но вот в чём ещё вопрос: что будет в самое ближайшее время будет более востребовано. Прикладное программирование или всё-таки web?

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

+ На игровое программирование я пока ещё не забил. А это, блин, до сих пор С++ и вряд ли что-то тут изменится. Но будущее явно не за ним. А, да! Есть to Flash с ActionScript, практика вроде хорошая, но про денежную отдачу от такой практики не слышал(ну условно говоря, чтобы стабильный был доход)

PALADIN
Понимаешь, у меня ещё не отложилось в голове, что такое программатор %) Какие тут инструкции...
07-04-2008 21:39
абструктор
aidez
Моё мнение, что ни классическое клиентское ПО, ни веб-приложения не перетянут полностью одеяло. Как минимум несколько обрисуются их ниши, как максимум - чаще будет встречаться их взаимодействие (а примеров уже и сейчас полно). Тут уже вопрос, что тебе больше нравится - работать над пользовательскими интерфейсами, или же над библиотеками. Во 2м случае уже почти не важно о какой среде речь - везде есть что поделать.

Что до чистого веба, то есть Html+css+js, то интернет бизнес уже несколько перегрет. Куда интереснее ты будешь разрабу, если помимо веб технологии будешь знать что-то ещё. Если именно про код говорить, то речь о распределённых системах и многопоточности.

Хе, флэш докидывай в багаж веб-разработчика :)

Плюс одно могу ещё сказать. Учитывай перспективу проф. роста. Она означает, что в определённый момент ты займёшься управлением кем-либо, или же уйдёшь в дебри специализированных деталей. А тут в любом случае вопрос уже не в технологии, а в том, что тебе больше нравится. Вот и представь где бы ты хотел кем-то управлять или же прогрызаться в самые толстые камни.
Тёмный ангел
terR0Q
Мне нравится писать логику, т.е. фактически модели реальных и не очень систем. Но это с одной стороны, а с другой мне интересна разработка средств разработки. Это получается всё прикладное. Но есть у меня ещё некоторые предчувствия, что через некоторое время возможен полный переход на клиент-серверные приложения или вообще браузерские( Photoshop Express) Поэтому с вебом хочу познакомиться поближе... С чего лучше всего начать? Понятно, что html+css+js+flash пропустим - это базовый багаж, хотя если честно с js у меня довольно мало опыта.

А вообще, вообще... Вообще мне нравится придумывать, проектировать, дизайнить проекты. Но на руководящую работу 20-ти летних не берут) По-любому надо начинать с ремесленника.


И ещё по поводу игрового dev'a. Осознание того, что вот так просто собрать людей и сделать практически нереально, пришло давно. Но! Есть такая вещь, как indie, которая по сути отличный старт для карьеры. Инди проект собрать проще, но не менее интересно, плюс никаких издателей, возможность фактически реализовать только одну идею и от неё выстроить всю игру. Одному тут тоже не справится. Но всё же такую возможность я не исключаю, потому что это намного реальней, чем собраться и сделать какой-нибудь экшн или даже квест.
09-04-2008 15:51
абструктор
aidez
Полный переход? Движение происходит там, где оно эффективно. А для ряда приложений это бред. И потом, даже в случае разделения, логика то по обе стороны все равно есть, а вот сложность только наращивается. По этому поводу вообще лучше не заморачиваться, а вот уметь налаживать сетевое взаимодействие и строить архитектуру с применением оного - очень важно.

С сетью ты сам назвал основное, причем flash не всегда нужен и не во всем, хотя знать нужно. Будет желание и время, поизучай Silverlight, это будущее. Как сказал выше, обязательно нужно освоиться в основах сетей и наладки взаимодействия. Это что в играх, что в других приложениях уже почти всегда обязательно.

Так кто ж говорит, что прям сразу - я ж там про перспективы, то есть после лет эдак 5 работы :) Вообще карьерная лестница - отдельная тема. Была кстати в одном из INSecure интересная статья на тему.

Вообще, хороший вариант, который пробовал когда-то с камрадами, это сделать дизайн-проект, подкрепленный или собственным двиглом (пусть и сыроватым) со своими моделями, или же в виде хорошо проработанного мода (ну или продукта из поставляемого с игрой редактора) и подробно развитого сюжета. Собственно у нас все завалилось на отсутствии моделлеров и исчезновении сценариста %)
Камрад
Поэтому с вебом хочу познакомиться поближе... С чего лучше всего начать? Понятно, что html+css+js+flash пропустим - это базовый багаж, хотя если честно с js у меня довольно мало опыта.
js и нужно учить, если хочешь web. Обязательно понадобится php. Коснутся баз данных придётся. php + js выйдёшь на AJAX.
Вот в общем и всё что я поверхностно знаю, и чего мне хватает, чтобы рпг-зону админить.

Ваш комментарий:
Камрад:
Гость []
Комментарий:
[смайлики сайта]
Дополнительно:
Автоматическое распознавание URL
Не преобразовывать смайлики
Cкрыть комментарий
« Вернуться
Закрыть