Balancer: Все сообщения за 17 Сентября 2004 года

 
ПнВтСрЧтПтСбВс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Balancer

администратор
★★★★★
Реконструктор>Запрос на буфер стандартными средствами дает тебе участок памяти, который не имеет права на выполнение кода

Сходи в "Система -> Свойства -> Дополнительно -> Быстродействие -> Предотвращение исполнения данных" и почитай описание DEP. Даже мой P IV ещё не допускает аппаратной его поддержки. А программная - это тормоза и глюки. И потому по дефолту всегда выключена.

Реконструктор>т.е. попытка выполнить там код заканчивается exception-ом.

Тогда ещё раз перечитай эту новость :)

Реконструктор>Пока не появится 15000 ГГц 1024 бит Пентиум-57

Ты тесты на скорость на чисто вычислительных задачах смотрел в форуме "Forth"? Смотрел, я помню твои постинги. Так что ты тогда бред несёшь? :) C# и Java уступают чистому C++ лишь проценты, а Ocaml - обгоняет C++.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
hcube>Эээ.... так надо больно бить программиста, который такой код написал.

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

hcube>Блин, когда-то я думал, что Windows надежная система. Теперь, после того как вирусы пролезают в систему за среднее время в 10 минут, я уже ни в чем не уверен.[»]

Надёжных систем вообще в природе нет. И чем система сложнее, тем менее она надёжна. В тех же Linux-системах кажды день находят дырки. Пару раз в месяц - дырки серьёзные, например, позволяющие запустить код удалённо (локальные уязвимости менее критичны). Если б Linux был столь же распространён, как и Windows - его бы тоже имели бы и в хвост и в гриву :)

Vale>Давно компилировал что-нить с помощью GCC?

Вчера пара компиляций на GCC 4.3.2

Vale>В последних версиях - постоянные напоминания - "эта функция небезопасна...."

Вот именно. Постоянные напоминания. И что? Это заставит программистов отказаться от них? :)

Vale>на strcpy gets etc.[»]

Это проблема не функций, а языка. Эти же функции на C# или PHP (на нём - вообще прямые аналоги) безопасны. Или на том же Ocaml :) И если скорость PHP тут не позволяет его ставить в один ряд с C++, то C# имеет скорость нативного кода того же уровня, даже на опенсорсном mono, а Ocaml в среднем быстрее.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Vale>Это таки проблемы библиотек.

Это таки проблемы языка. Язык позволяет писать безопасно, но позволяет и опасно. При чём опасно - сильно проще. Потому писали, пишут и будут писать опасно.

А в безопасных изначально языках - и библиотеки безопаснее :)

А так - безопасно и на ассемблере писать можно. Вопрос только в цене.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

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

Встаю сегодня утром и вижу открывшееся окошко Asus Probe, где показывется всякая служебная инфа. Заглядываю и вижу, что температура процессора на грани критической - ~75 градусов и немножко "прыгает", иногда, видимо, пересекая критическую отметку, что и вызвало появление этого окошка.

Первый взгляд - на кулер. Ну, думаю, переклинило. Нет, 5400 оборотов в минуту, всё ок. Руку к нему подношу - обдувает руку тёплым(!) воздухом.

Обегаю глазами панель задач и вижу клиента Ultima Online. А он, зараза, если не в игре, а в окошке логина, то почему-то много ресурсов жрёт. А процессор-то у меня разогнан с 2.8 до 3.2. В общем, вырубаю UO, смотрю, температура, вроде, начала падать. Хотя и не очеьн заметно. Ушёл завтракать.

Возвращаюсь - температура процессора 58 по Цельсию. Прекрасно. Потом вспоминаю вчерашний шум/свист. Сейчас, вроде, такого нет. Смотрю обороты кулера - обычные 3900. О как! Оказывается, у меня теперь обороты кулера регулируемые от температуры процессора :)

Интересно, если все программы закрыть и CPU Idle поставить (если он поможет дополнительно хоть сколько-то) можно ли ещё дальше снизить температуру и обороты? :) (пока писал это сообщение температура немного падала, а обороты кулера чуть подросли)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Vale>Кто-нить видел С# для DOS? :uhaha:[»]

Хм... Дай вспомнить... DOS я видел, кажется, года 4 назад мельком. И даже на QB45 что-то минут 5 для него писал :D

Очень актуально! :)

И что, кстати, все безопасные библиотеки классов C++ под DOS пашут?? :D

А так - мне достаточно того, что C# программы работают на Win32, Linux, MacOS и карманных ПК с ARM, MIPS и SH3 процессорами :)

Опять же, тут Гриша про скорость интересовался. Вот скомпилирована у меня C++ либа под i386 и что толку от её оптимизации на AMD64 будет? А на StrongARM она вообще не пойдёт... В отличие от :)

Да... DOS... Ещё давай CP/M вспомним... помянем... :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

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

Именно так. Ведь и то и другое - байты. А в плоской модели памяти сегментные регистры указывают на одну область памяти.

Centuriones>Ведь для этого как-то надо передать управление на нужный адрес в памяти. Так ведь?

Да.

Centuriones>Можно ли привести пример?[»]

Точный пример сочинять лень, тем более, что практикой переполнения буферов сам не занимался. Но вот такой гипотетический пример. Программы каждый раз грузятся с одних адресов. При одних исходных данных эти данные тоже программа положит в одни и те же адреса. Пусть у нас там где-то хранится и исполняемый код. Выделенные массивы C++ хранит на общем стеке - данных-возврата. В программе есть ошибка, не контролирующая границы массивов. Пользуемся этой ошибкой и переполняем отведённый под данные буфер, залезая в стек возвратов. Заполняем массив данными так, чтобы адрес возврата из подпрограммы оказался затёрт нашим адресом. Подпрограмма заканчивает работу, процессор осуществляет команду возврата. Вот только адрес в стеке уже не оригинальный, а наш.
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Vale>Т.е. если у тебя ХР, CPUIdle не нужен[»]

HLT - да. Но современный CPU Idle, вроде, ещё какой-то фигнёй занимается, с железом возится. М.б. какие-то ACPI-функции использует. Не пробовал, так что не знаю :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Реконструктор>Что это?

Хм. То ты мне про защиту в ОС от выполнение кода в области данных пишешь, то тут же спрашиваешь, что это такое. К тому же я тебе сказал куда смотреть. Вот оттуда хелп:
Understanding Data Execution Prevention

Understanding Data Execution PreventionData Execution Prevention (DEP) helps prevent damage from viruses and other security threats that attack by running (executing) malicious code from memory locations that only Windows and other programs should use. This type of threat causes damage by taking over one or more memory locations in use by a program. Then it spreads and harms other programs, files, and even your e-mail contacts.

Unlike a firewall or antivirus program, DEP does not help prevent harmful programs from being installed on your computer. Instead, it monitors your programs to determine if they use system memory safely. To do this, DEP software works alone or with compatible microprocessors to mark some memory locations as "non-executable". If a program tries to run code—malicious or not—from a protected location, DEP closes the program and notifies you.

DEP can take advantage of software and hardware support. To use DEP, your computer must be running Microsoft Windows XP Service Pack 2 (SP2) or later, or Windows Server 2003 Service Pack 1 or later. DEP software alone helps protect against certain types of malicious code attacks but to take full advantage of the protection that DEP can offer, your processor must support "execution protection". This is a hardware-based technology designed to mark memory locations as non-executable. If your processor does not support hardware-based DEP, it's a good idea to upgrade to a processor that offers execution protection features.
 


Реконструктор>Вычислительные задачи - это не все. Ц#, например (а и многие другие), допускает боксинг. Неумелый программист (которые обычно пользуются такими языками), может неосознанно сделать программу в тысячу раз медленее.

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

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

Так зачем на C# будут этим заниматься? :D Или чем неумелый программист на C# хуже неумелого программиста на C++? Тем, что ему компилятор не позволит совершить кучу рантаймовских ошибок, которые пройдут в C++? :D

И, вообще, давай пример - измерим реальное падение производительности. Я очень сомневаюсь про 1000 раз :D

>Вообще, Ц++ заставляет более углубленно продумывать программы

Можно пример? А то моя практика об обратном говорит :) В C++ больше внимания уделяешь не алгоритму, а реализации. А это - всегда хуже. Ещё во времена программируемых калькуляторов гуру учили - "не экономьте одну команду, экономьте сразу пятьдесят".

Чем выше уровень языка, тем больше внимания можно уделить глобальной оптимизации. И выигрышь на этом будет не в проценты, а в порядки :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Реконструктор>А нафиг проц разгонять? Деньжата экономим? :)[»]

Ну да. Даже сейчас разница между 2.8 и 3.2 в $50+ А в начале лета куда как больше была :)
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Реконструктор>Проблемма переполнения существовала лет десять назад. Она, конечно, и сейчас существует, но только в практике начинающих юношей

Ок. Тогда остаётся признать, что нынешние ведущие программисты многих крупных проектов - начинающие юноши :)

Реконструктор>Ну, это мне не известно. Вообще-то в окнах защита встроенная, вот, читай, если не лень.

Остаётся удивиться, почему в том же MS программисты - такие неумехи :)

А про переносимость такого кода я вообще молчу :)

Реконструктор>Нет, не правда. Язык Ц, в целом, не очень далеко от макроассемблера. Это и причина "быстрого переползания". :)

Ну, здрасьте-приехали!
Жаль, под рукой нет C++ компайлера (кстати, вот ещё один плюс C# - его компайлер в любой системе с .NET есть, благо весит он копейки), а то б я тебе сейчас подобрал примерчик :)

Реконструктор>Давай для начала, ты знаеш что такое боксинг? Давай сначало про него, а потом я тебе расскажу про некоторые особенности языка VB, которые мне причинили много гемороя (когда-то).[»]

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

Потому что даже в таком совершенно идиотском примере:
Пример C# идиотский&nbsp[показать]


в сравнении с таким кодом C++, как

Пример С++&nbsp[показать]

Дальше »»»
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Изобретен робот, питающийся мухами

Как сообщает New Scientist, британские ученые из университета Бристоля изобрели робота под названием EcoRobot II, использующего в качестве топлива мух.


Энергия получается из полисахаридов хитина, из которого состоит насекомое. Для ловли мух робот использует специальную приманку, созданную по аналогии с человеческими экскрементами. При этом скорость его передвижения составляет 10 см/час.

// CNews: Изобретен робот, питающийся мухами
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

Balancer

администратор
★★★★★
Планета у иной звезды: первое изображение

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

Группа астрономов из Южной Европейской обсерватории (Europe Southern Observatory, ESO) объявила о том, что ей удалось впервые в мировой истории получить прямое изображение планеты, находящейся в иной звездной системе. Об этом сообщил журнал Nature.

Астрономам из ESO удалось получить снимок планеты в иной звездной системе с помощью телескопа Yepun, входящего в состав так называемого VLT (Very Large Telescope) высокогорной Южной Европейской обсерватории на горе Парана в Чили. Обнаруженный с его помощью объект предположительно является планетой, обращающейся вокруг тусклой звезды – коричневого карлика - под обозначением 2М1207, расположенной от нас на расстоянии примерно 230 св. лет. Планета находится на расстоянии 778 угловых миллисекунд от звезды.

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

Планета у звезды 2М1207
Сообщение об открытии, сделанном астрономами из ESO, появилось всего несколько месяцев спустя после предварительного заявления другой группы о сделанном ею аналогичном открытии. Группа Штейна Сигурссона (Steinn Sigursson) из университета штата Пенсильвания еще в мае 2004 года объявила о том, что ей удалось получить изображение иной планеты с помощью космического телескопа Хаббла, однако не стала обнародовать информацию о местоположении объекта до окончательного подтверждения своего открытия. Правда, в таком подтверждении нуждаются обе группы, претендующие на первенство. «Идет гонка, и все спешат с обнародованием своих открытий еще до того, как станет возможно говорить об этом с определенностью, - комментирует ситуацию Штейн Сигурссон. – Мы получили свои данные до них, однако те действовали энергично и опередили нас с отправкой статьи на три – четыре недели. Что же, они сделали большое дело, так что остается поздравить их».

Обе группы астрономов проводили поиск планет с помощью изображений, полученных в инфракрасной области, что позволяет различить их в ярких лучах звезды. Удалось также сделать некоторые предварительные выводы относительно химического состава планет у иных звезд. Так, астрономы из ESO уже объявили о том, что на обнаруженной ими планете обнаружены следы наличия воды. Это может свидетельствовать об относительно низкой температуре на ее поверхности. Вместе с тем, все эти данные нуждаются в подтверждении.

«Есть странное ощущение, что этот объект в самом деле может оказаться первой планетной системой у иной звезды, изображение которой удалось получить, - заявил Кристоф Думас (Christophe Dumas), сотрудник обсерватории ESO. «Наше открытие является первым шагом в совершенно новой области астрофизики – исследовании иных планетных систем по их изображениям и спектрам», - добавляет участник группы Анне-Мари Лагранж (Anne-Marie Lagrange), сотрудник обсерватории в Гренобле.

Обе группы в настоящее время с нетерпением ожидают, когда им выделят наблюдательное время для более детального изучения открытых ими систем. Тем не менее, Сигурссон уверен, что почетное звание первооткрывателей принадлежит именно его группе, надеясь подтвердить свое открытие с помощью телескопа Хаббла в ближайшие месяцы. «Думаю, что у соперников на подтверждение их открытия уйдет больше времени», - заявил он.

// 14.09.04, Вт, 17:49, Мск
// 404 - не найдено / Издание о высоких технологиях - CNews
… чтобы понять рекурсию, нужно сперва понять рекурсию …  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru