Нет, пока не пишу. Много времени отнимает основная работа. Но как только будет то, что можно потестировать, я напишу администратору этого раздела, так что, думаю, вы не пропустите.
Я как раз разрабатываю такую СУБД :) Не совсем СУБД конечно, моя разработка основана на sqlite.
В рамках работы над своей диссертацией. Самому интересно узнать чем это все кончится, планирую чуть позже открыть исходники. Приятно слышать, что у кого то схожие мысли.
1. Недавно google представила плагин к файфоксу (на основе gcc), который позволяет исполнять бинарники в браузере. как вы думаете есть ли будущее у подобного подхода? Или достаточно flash, silverlight, и т.п. приложений?
2. Возможно ли создание некоего virtual environment для плагинов, которое обезопасило бы IE от падений от ошибок в плагинах?
А Вы знаете толк в извращениях :)
Если предположить, что все операции в циклах атомарны и результат их работы доступен всем потокам сразу, то BINGO мы никогда не увидим.
Почему на практике иначе уже сказали здесь habrahabr.ru/company/metaquotes/blog/50417/#comment_1329798
Ваше решение мне тоже пришло в голову. Насколько я понимаю задача относится к задачам на реккурентные соотношения, т.е. решение должно угадываться.
Предлагаю немного другой вариант. i - счетчик блинов, начиная сверху
1) Берем блин (i = 0), ищем тот, который будет меньше его
2) Если iй самый большой - переворачиваем всю стопку и забываем про него, иначе переворачиваем стопку до найденного, идем в п.1
3) Если верхний оказался самым маленьким, увеличиваем i на 1 и идем в п.1
Мат. доказательства предоставить пока не могу, число переворотов вроде меньше за счет того, что не для каждого блина делаем два переворота в худшем случае.
Этим постом вы подтвердили, что качественное образование в сфере ИТ в России пока невозможно. Какие могут быть C# и .NET на первом курсе, когда у человека еще нет базы? Студенты MIT, насколько я помню, к концу первого курса уже простенькие интерпретаторы реализуют. Да почитайте того же Спольски, там где он пишет про обучение. Вот это я считаю хорошим образованием. И в нагрузку к этому должно быть самообразование. Окошки в winforms всегда клепать научитесь.
Не совсем понятно как ручками?
Да это макрос, но к определенным стандартным макросам ANSI он отношения не имеет.
В отладчик бывает дороговато каждый раз лезть я про то и говорю (и делать это стоит как можно реже, а чаще думать над чем, что пишешь, но это к делу не относится :)), а ваша цитата:
>> Да и этого делать не нужно, вобщем-то. Когда есть отладчик.
Про исключения: нет, способ стандартный вполне (если вы про стандарт, а не про типичное использование исключений). Для реализации подобного способа см. boost.exception например.
P.S. дИректива.
Неправда ваша. В отладчик лезть при каждом чихе? Вы имеете билд сервер. На ночь запускается скрипт (или CruiseControl это делает, не важно), стягивает все что за день накоммитили, собирает все unit-tests, integration tests, начинает запуск всех тестов. Где то падает, она по мылу всем сообщает о падении, полный отчет, чей коммит завалил билд (это уже по возможности), в том числе и логи о том, где упало.
__FUNCTION__ - нестандартая директива, следовательно способ не переносимый.
Ну во-первых кодов возврата будет далеко не 10000. В критичных местах - да, GetLastError() - да. Но у меня нет большого массива описаний ошибок.
А во-вторых это холивар.
А в-третьих сделайте-ка мне, пожалуйста, вывод стека вызванных функций , произошедших до исключения, используя коды ошибок (переносимый). Это будет быстрее? Элегантнее? Удобочитаемее? :)
Я прочитал тучи таких холиваров (exceptions vs. return codes) поэтому я надеюсь что мы тут подобный не разведем :)
>> Именно потому что поддержка кода большого проекта - штука непростая и исключения тут
помогают далеко не так хорошо, как вам кажется.
Мне не кажется. Я делаю такой вывод на основе собственного (может быть и небольшого) опыта
Там где мегагерцы, я уже заметил выше про embedded (там, естественно где не используется Java, что серьезно уменьшает количество таких машинок)
2007 год на дворе.
Как тут уже заметили выше ручной ассемблер сейчас медленнее оптимизированного современными компиляторами кода. И только в редких случаях быстрее (можно глянуть в современные 3D движки, там асм где надо дает плюс).
Ваши оптимизации со строками представляют собой чисто академический интерес. Хотя нет. Это полезно на embedded для остального, имхо, интереса не представляет.
Вы все еще обрабатываете ошибки кодами возврата на C++ (не на Си)? Тогда мы идем к вам (может стоит перейти обратно на Си?). Не надо только с сарказмом замечать про 5-10% penalty на throw/try/catch. Поддержка кода большого проекта - это ключевое слово. Хотя конечно и с исключениями можно такого наворотить)
В рамках работы над своей диссертацией. Самому интересно узнать чем это все кончится, планирую чуть позже открыть исходники. Приятно слышать, что у кого то схожие мысли.
2. Возможно ли создание некоего virtual environment для плагинов, которое обезопасило бы IE от падений от ошибок в плагинах?
Если предположить, что все операции в циклах атомарны и результат их работы доступен всем потокам сразу, то BINGO мы никогда не увидим.
Почему на практике иначе уже сказали здесь habrahabr.ru/company/metaquotes/blog/50417/#comment_1329798
Предлагаю немного другой вариант. i - счетчик блинов, начиная сверху
1) Берем блин (i = 0), ищем тот, который будет меньше его
2) Если iй самый большой - переворачиваем всю стопку и забываем про него, иначе переворачиваем стопку до найденного, идем в п.1
3) Если верхний оказался самым маленьким, увеличиваем i на 1 и идем в п.1
Мат. доказательства предоставить пока не могу, число переворотов вроде меньше за счет того, что не для каждого блина делаем два переворота в худшем случае.
Да это макрос, но к определенным стандартным макросам ANSI он отношения не имеет.
В отладчик бывает дороговато каждый раз лезть я про то и говорю (и делать это стоит как можно реже, а чаще думать над чем, что пишешь, но это к делу не относится :)), а ваша цитата:
>> Да и этого делать не нужно, вобщем-то. Когда есть отладчик.
Про исключения: нет, способ стандартный вполне (если вы про стандарт, а не про типичное использование исключений). Для реализации подобного способа см. boost.exception например.
P.S. дИректива.
__FUNCTION__ - нестандартая директива, следовательно способ не переносимый.
А во-вторых это холивар.
А в-третьих сделайте-ка мне, пожалуйста, вывод стека вызванных функций , произошедших до исключения, используя коды ошибок (переносимый). Это будет быстрее? Элегантнее? Удобочитаемее? :)
Я прочитал тучи таких холиваров (exceptions vs. return codes) поэтому я надеюсь что мы тут подобный не разведем :)
помогают далеко не так хорошо, как вам кажется.
Мне не кажется. Я делаю такой вывод на основе собственного (может быть и небольшого) опыта
Там где мегагерцы, я уже заметил выше про embedded (там, естественно где не используется Java, что серьезно уменьшает количество таких машинок)
Как тут уже заметили выше ручной ассемблер сейчас медленнее оптимизированного современными компиляторами кода. И только в редких случаях быстрее (можно глянуть в современные 3D движки, там асм где надо дает плюс).
Ваши оптимизации со строками представляют собой чисто академический интерес. Хотя нет. Это полезно на embedded для остального, имхо, интереса не представляет.
Вы все еще обрабатываете ошибки кодами возврата на C++ (не на Си)? Тогда мы идем к вам (может стоит перейти обратно на Си?). Не надо только с сарказмом замечать про 5-10% penalty на throw/try/catch. Поддержка кода большого проекта - это ключевое слово. Хотя конечно и с исключениями можно такого наворотить)