Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.

what's his name? (his name is Linux. The future is open)

Тема в разделе "Hi Tech", создана пользователем Xitpij_Laban, 15 сен 2003.

  1. Stas

    Stas Аксакал

    В том то и дело, что ее не надо создавать - она уже создана. Это в винде чтобы начать что-то делать надо стащить 3 десятка программ, всех их поинсталить (что не всегда возможно) попрыгать вокруг с бубном и т.д.

    В Линухе же я лично пользуюсь практически только тем, что есть в стандартном дистрибуте RedHat - хватает с головой!

    А все почему ? Потому как истина озвученная 30 лет назад Керниганом (кажется) остается в силе Unix (в нашем случае Linux) the only opereting system made by programers for programers. All others is for USERS!  :hehe:
     
  2. Stas

    Stas Аксакал

    Имеется - свежепоставленная XP proffessional (т.е. для профессионалов). Необходимо написать програмку которая будет читать нечто с ком-порта и показывать на экране.
    2Алексей - реализуйте пожалуйста БЕЗ установки любого дополнительного софта.

    Сделать то же самое на "голом" RedHat 8.0 берусь с полпинка.
    :)  :p  :hehe:
     
  3. Evgenij Koronin

    Evgenij Koronin Модератор

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


    я так понял, в твоих словах была доля сарказма с намеком на ремесленничество твоего коллеги. Однако наверное странно тебе, что я примкну к защитникам этой идеи. Мир с противоречиями и всем остальным - как абстрактная картина, которую ты тоже упомянул - кто то не поймет что намалевано, другой никогда не поймет "как же так?" жизнь снова перевернулась без него, и он не знает почему это вдруг мир так жесток? А без карты в лесу ходить пробовали? Странно что ты пропагандируешь полное отсуствие ориентиров на реальность, мне всегда казалось,что люди, имееющие представление более широкое чем другие - как правило от этого выигрывают и устраиваются неплохо, получше, чем блуждаюшие в темноте.
    Я конечно немного утрирую, как и ты :) Однако программеры не все бывают упертые, как в Programmer's Stone сказано - есть мапперы и есть пакеры. Первые придумывают, вторые набивают! :)
    Это кстати также коррелирует с "...И я думаю, что ремесленник - это хорошо"

    ну это ты просто красиво написал - правда? К действительности это не имеет отношение совсем. Любые перемены могут быть методично "пережеваны", или усвоены (мне так больще нравится), и если это не так, то это проблемы самого ремесленника, отсутсвия у него необходимого опыта, слабая адаптивность и тд все  остальные субъективные факторы. Я не совсем могу определиться с противоположностью твоего ремесленника - то есть ни одной идеи, потенциально составляющей основу мировозрения у меня в голове не должно быть? Как то я с трудом верю, что рубаха-свободный программер или кто еще без целостной системы знаний и умений сможет быть чем то полезен вообше кому либо. Представь, что вместо жизни мы в шахматы играем (что метафорически весьма близко), причем один обладает цельной системой знаний о шахматах, комбинациях, навигации (ходы), и играет 100 лет и тд. А другой нет - ну и кто выиграет?

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

    вы будете смеятся, это действительно так - это называется обучение.
     
  4. evgeny

    evgeny Новичок

    В Windows реализовано то, что нужно людям в повседневной жизни.
    Если народ вдруг решит, что читать из ком-порта - это крайне
    интересное занятие, то Microsoft тут же сгруппируется и выпустит
    сервис-пак или еще что-либо. Логично?
     
  5. Alexey

    Alexey Аксакал

    Тут вы, Стас, лукавите. Что есть голый red hat?
    Вы поставьте ка лучше ядро голое и попытаейтесь поковырятся с ком портом.

    Кстати, я всё ещё жду примеров ваших проектов, которые глючили в винде (из-за винды :))
     
  6. Stas

    Stas Аксакал

    Никакого лукавства - голый редхет это то что идет на 3-х CD лежащих у шапки на FTP.
    Никаких проблем! В том то и дело.

    Все то- же чтение/писание ком порта. Программа великолепно работающая на 95/98/ME/2000/XP вылетает с криками и ругательствами на NT 4. При попытке отладки онной программы на NT 4 вылетает вся NT (blue deth screen)

    Это из-за винды или нет ?
     
  7. Alexey

    Alexey Аксакал

    3 cd это ядро линукса или ядро с разными модулями? Подозреваю, что второе.
    3 cd это слишком много для ядра :)
     
  8. Xitpij_Laban

    Xitpij_Laban Старожил

    ой елки зеленые - пока я работал сколько тут всего понаписали!  :)

    Ann (вряд ли вы это прочитаете) - а вдруг меня убедят в прелести windows? чем черт не шутит? пусть попробуют! (шутка!)  :hehe-sign:

    Alexey
    с большим удовольствием посмотрю книжку. Я вообще коллекционирую так называемые "программистские этюды", так что если есть такие штучки - шли (пиши)

    Stas
    ничего особенного программулька не умеет. это мои тесты и попытки повторить изобретения колеса (на слабО)
    серверная часть, реализует логику и дает кастомизированный интерфейс к БД (postgreSQL) где собственно держим данные. клиентская часть - просто гуевые мордочки. есть возможность запустить серверную часть демоном и цепляться веб-бровзером. логика сама по себе имеет три части: бухгалтер, планировщик и аналитик. соответственно, бухгалтер - иерархичный учет по статьям; планировщик - "растягивание" учета по времени (ака планирование) в будущем (т.е. что и на что будем тратить); а аналитик - скриптовый движок, умеющий (пока еще в проекте) исполнять аналитические скрипты (например, подсчет балланса это простой скрипт). таким образом, аналитик это расширение логики. вот собственно и все. прога эта еще не для "зрителей" - думаю, что 0.1 альфа %)  будет только к НГ.

    Evgenij Koronin
    что ж вы это меня записали под черные знамена анархии?  :pray:
    антоним ремесленнику будет (ИМХО) - криворукий бездельник. а для художника зло - "копировщик". И то, что я могу детально описать ремесленника и практически игнорировать художника говорит о моих корнях - я и сам ремесленник! И вообще, эта дискуссия - лишь часть очень большого вопроса, который я задаю сам себе "что такое хороший программист?"

    dekan
    хороший вопрос - как организовать АРМ разработчика под линуксом? Стас уже в принципе ответил - линукс это уже среда (рабочее место) для разработчика. я лишь немного расширю понятия. прежде всего, мы не говорим о "писании на коленке" ок? то есть мы собираемся работать над чем-то некоторое время - месяц или год, не суть, важно, что не разовое hello_world. Что нужно для нормальной работы? инструменты для создания бинарных модулей (automake, компиляторы и линковщики), автоматизация управления проектами (некая IDE), контроль версий (аналог sourceSafe от m$), вспомогательная информация (аналог msdn) и до кучи всякие мелочи, упрощающие жизнь (debug версии системных библиотек, толковые mail lists и прочее (например mp3 player!)). Даже короткое описание по этой схеме выльется в многостраничный пост.   :turn:
    причем начало поста будет посвящено выбору дистрибутива  :p
    по своему опыту помню, что первое время в линуксе рука по привычке искала  dev studio  подобную среду. после долгих поисков я лично для себя сделал выбор - kdevelop и codeforge (последний - платный, но очень толковый инструмент). Но не надо преувеличивать роль сред. Это всего лишь "мордочки".
     
  9. Alexey

    Alexey Аксакал

    2 Stas
    Насчет проги и вылетов винды:
    Доступ к харду по определению проходит через ось. Ваша прога должна быть написана под конкретную ось. Вы перечислили здесь 5 разных OS. Для какой именно вы дизайнили вашу прогу? Наверное не под NT. Так чего же удивлятся? Если вы хотите написать прогу под несколько осей, то по хорошему, вы должны создать отдельный модуль для каждой оси. И определять в вашей проге на какой оси её запустили.

    P.S. Есть много прог под NT, которые работают с ком портом и не вешают систему..... Как-то же их написали...
     
  10. Alexey

    Alexey Аксакал

    2 Xitpij_Laban

    А вот ещё одна задача (хрестоматийная) из распределенного программинга: Есть сеть из N нодов (компов) каждый их них имеет свое уникальное имя (число). Ноды соединены между собой (самым разнобразным способом. Некоторые имеет много соединений с другими нодами,некоторые только одно). Каждый нод знает имена только свои соседей.
    Задача: Написать прогу которая будет работать на каждом ноде и должна выполнять алгоритм распределенного суммирования. А именно: мы пальцем показываем на любой нод и говорим : А ну ка скажи нам какая сумма всех имен нодов в сети.
    Кстати, число N тоже неизвестно.

    Вот это чистый программинг. Ни линуксов не виндовсов не надо. А только думать надо
     
  11. Stas

    Stas Аксакал

    Нет ОС одна - виндуза и програмка была написана в соответсвии с рекомендациями МСДН.
    Тем не менее результат на лице (точнее на мониторе). Перекомпиляция из сырцов на НТ ничего не дала.

    Для сравнения - если я напишу аналогичную прогу для Unix то скомпилированная из сырцов она будет работать на любом из *nix - от первых версий на PDP-11 до современных солярисов, линухов и бсдей  :cool:



    Это - чистый мозговой анонизм  :)
    Програмирование же всегда должно быть полезным, а не суммировать неизвестно что неизвестно зачем.

    Что же касается ваших "умных" методов выведения кода математическим путем - вот вам практическая задача - имеется сетевая маска типа 0xfffffe00 или что то в этом роде (надеюсь не надо обьяснять что такое netmask ?)
    Выведите пожалуйста ваш умный код который за минимальное колличество тактов процессора (любого) превращал эту маску в ее длину, например
    0xfffffe00 -> 23
    Повторяю - основное требование - скорость работы, а не красиво выглядящий код.

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

    evgeny Новичок

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

    Но я так понимаю, что народ больше интересуется
    программами другого плана. Оффисные продукты,
    интернет приложения, игры, музыка. А ком-порт это
    даже не вчерашний день - это позавчерашний. Любая
    программа написанная для компорта сегодня кроме
    недоумения ничего вызвать не может. Ну может быть
    чуть-чуть - дескать где вы такую древнюю периферию
    нашли? Вот если бы в Линуксе с полпинка можно было
    программы подобные Outlook Express или Civilization или MS
    Word делать - тогда бы это впечатляло. Однако пока что
    так на ура идут только Hello, World ну или работа с
    ком-портом плюс текстовый экран. Все более-менее
    приличные программы требуют не меньше усилий чем
    программирование в других операционных средах и такие
    программы тоже очень сложно портировать между
    разными операционными системами.

    Примеров тому множество. Netscape, Ximian Desktop, Gnome,
    KDE, Mozilla, StarOffice. каждый из продуктов написан для конкретной
    операционной системы. Если продукт поддерживает несколько
    операционных систем, то все равно для каждой операционной
    системы существует отдельная инсталляция, то есть, как
    заметил Алексей, отдельный модуль. Программы, которые
    работали ли без изменений в исходном коде, существуют, но
    они как правило мало кого интересуют, за исключением
    программистов и системных администраторов.

    Кстати конкурс! Назовите бесплатную полезную программу,
    которая бы компилировалоась из исходников на любом
    юниксе и с которой бы с удовольствием работал конечный
    пользователь.
     
  13. Alexey

    Alexey Аксакал

    2 Хитрый Лабан
    Но ведь это не так.


    Да, Стас, абстрактное мышление это не про вас. Так кто тут ремесленик? :)

    С этой задачи начинается курс разработки протоколов :)

    P.S. Кстати, я все таки жду ваших примеров насчет грубых ошибок, которые вы ловко замечали в архитектурах :)



    <!--EDIT|Alexey|1063779768-->
     
  14. Stas

    Stas Аксакал

    Вот вооруженные знаниями полученными на этом курсе решите мой элементарный пример.

    А рассказывать чего я и где нашел это нудно, долго и к тому же содержит элементы коммерческой тайны.
     
  15. Stas

    Stas Аксакал

    bash  :cool:
     
  16. Alexey

    Alexey Аксакал

    :D



    2 раза лол :)
    В вашей постановке задача решения не имеет. Что значит: "за минимальное колличество тактов процессора (любого)"? Алгоритм это одно, имплементация его на каком-то языке программирования другое, скомпиллированный код третье.
    Вы это понимаете?
     
  17. Stas

    Stas Аксакал

    Если коммерческая тайна вызывает у вас только смех - опубликуйте пожалуйста внутреннюю архитектуру ДВД над которым сейчас работаете  :D

    Вы вот тут умничали (да в общем и продолжаете:
    А на самом деле задача имеет массу решений, но только одно из них удовлетворяет моему требованию - максимальному быстродействию, причем на любом процессоре.
    И язык программирования для подобных задач применяется не какой-то, а вполне конкретный - С (без плюсов, решеток и прочего наслоения). Исключения составляют только embeded systems - тогда это пишется на каком-то конкретном ассемблере. Правда в связи с обвальным подешевением памяти сейчас и для этих систем пишут на С. А зря !

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

    Увы, но тут вся ваша математика просто бессильна и нафиг не нужна. А нужно глубокое понимание внутренней архитектуры микропроцессоров и того как они работают. Очень помогает знание нескольких ассемблеров, несколько помогают знания электроники и hardware design, а вот математика и вся ваша теория про алгоритмы - бесполезна.
     
  18. Alexey

    Alexey Аксакал

    Стас, вы путаете разные понятия.
    Повторю ещё раз : алгоритм это одно, оптимизация кода под определенный процессор другое.


    10 разных компиляторов языка С сгенерят 10 разных исполняемых файлов с одного и тоже сишного.
    Вы понимаете?



    <!--EDIT|Alexey|1063792178-->
     
  19. Dmitry Pankratov

    Dmitry Pankratov Аксакал

    максимальное быстродействие, которое можно достичь в этой задаче - один такт. Операция выборки из 4-х миллиардного массива :D
    Вряд-ли это то, что нужно :)
     
  20. Stas

    Stas Аксакал

    Дмитри - вы очень близки к правильному решению  :)

    Просто возможных вариантов то всего 31  :p  - все остальные - должны повлечь сообщение об ошибке. Поэтому правильный ответ выглядит так:

    mask_to_len(u_int32 mask)
    {
    switch (mask){
     case 0xffffffff:
       return 32;
     case 0xfffffffc:
       return 30;
     case 0xfffffff8:
        return 29;
    и так далее до
     case 0x0:
        return 0;
     default:
        fprintf(stderr,"Уйдите противный со своей кривой маской :)");
    }
    }

    2Alexey: Вот этот тупизм без всяких там алгоритмов и дает самый быстродействующий код при любом компиляторе, архитектуре процессора и т.д.
    Вы этого явно не понимаете, но это так!

    А теперь объявляется конкурс на решение обратной задачи (длину превратить в маску) при тех же условиях. Для простоты ограничим список языков до одного - С.
     

Поделиться этой страницей

Загрузка...