На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто kanes 17-02-2009: Введите причину закрытия темы здесь

Страницы: (1182) « Первая ... 1014 1015 [1016] 1017 1018 ...  1181 1182  ( Перейти к последнему сообщению )  
> Windows vs Linux - Как десктоп , и игровая станция.
    Цитата
    Куда-куда вызова? Самба-сервер, только и всего. А кодировка, как я понял, может быть любая - линуксовые ФС воспринимают имена, как кучки байтов, а не как текст. Каменный век, в общем :)

    Вообще-то, ты сделал одну ошибку. У тебя была какая-то кодировка (системная). Довольно просто было бы создать просто codepage=cp866 в конфиге Самбы. Это определяется тем, что окромя виндовз, Самба поддерживает ещё и старый LanManager. Насчёт "каменного века" я конечно не знаю, но то, что мне не составляет труда поменять кодировку под свои нужды, просто радует. Тссс... А то сейчас AQL придёт и всё опошлит... А чем же являются "строки", как не кучками байт? Если подробно рассмотреть тот же класс, порождаемый из CString, то на самом нижнем уровне абстракции это будет структура, включающая в себя некую "кучку байт" и указатели на функции, обрабатывающие эту "кучку байт". Можно конечно, и в "кучках битов", но это несколько сложнее.

    Можно было поставить системную кодировку cp-1251 и так же определить такую же кодовую страницу для Самбы. Не совсем кошерно, ну да Бог бы с ним. Можно и так. Можно и по-другому -- просто указать желаемую codepage. Системную не трогать. Важно было указать что-то, что Самба восприняла бы как руководство к действию.
    Цитата
    Какая разница?

    Этточно. Определяется это конфигурацией хранения на диске.
    Цитата
    А смб протокол в каком виде предусматривает передачу имен файлов?

    ASIS. Обрабатывается всё по месту.

    Цитата
    И чем ты хотел похвалиться? Дебаггер шейдеров и в студии давно есть.

    Нет. Не то. Поддержка COLLADA... Вот это интереснее.

    Цитата
    Фря маст дай!

    Не показывайте это e-yes'у. Он обычно крайне бурно реагирует на моё FreeBSD -- R.I.P. Вам оно надо -- потом потолок отмывать? Он же в потолок кипятком начнёт... :D:D:D
    Сообщение отредактировано: the_Shadow -
      Leprecon, тебе сюда за модельками -> http://sketchup.google.com/3dwarehouse Фишка в том, что всё, что там представлено, именно в этом формате. Он же, кстати, и Blender'ом поддерживается, если я не ошибаюсь...
      Вот здесь я обеими руками за XML. Ибо не фиг между платформами перетаскивать что-либо в каком-то маловразумительном DXF/DWG а то и IGES...
      Сообщение отредактировано: the_Shadow -
        Цитата the_Shadow @
        Вообще-то, ты сделал одну ошибку. У тебя была какая-то кодировка (системная). Довольно просто было бы создать просто codepage=cp866 в конфиге Самбы.

        Разумеется, я пару раз ошибся при настройке. Но это совершенно не имеет к делу отношения, ибо сама возможность любой софтины создать файл с именем в любой кодировке - нонсенс. Особенно, когда нелатинское имя в однобайтовой кодировке случается при системной utf-8 :)
          Цитата
          ибо сама возможность любой софтины создать файл с именем в любой кодировке - нонсенс. Особенно, когда нелатинское имя в однобайтовой кодировке случается при системной utf-8 :)

          Не-аааа... Системная кодировка есть системная кодировка. То, как там и чего будет сохранять Самба -- её дело. Если вдуматься, то у M$ есть некоторые полу-запущеные проекты, которые всё-таки надо поддерживать. Тот же LanManager, который, если я не ошибаюсь совместно с IBM разрабатывался. И для OS/2 и для MS windows. Вот только в те времена для русского превалировала cp866. А откуда бедной Самбе знать -- есть у тебя такая пакость стародавняя или нет? Если тебе нужно, то ты можешь создать файл с именем хоть на "клингонском" (в наборе UTF это есть, теперь осталось найти хоть одного носителя языка, ну да ладно). Только будь добр сказать Самбе, что тебе именно это надо постоянно. Еврейцы (тьфу!) "клингонцы" в городе!!! :D:D:D
          http://forum.sources.ru/index.php?act=Atta...post&id=1056526
          Сообщение отредактировано: the_Shadow -
            Цитата wind @
            Но это совершенно не имеет к делу отношения, ибо сама возможность любой софтины создать файл с именем в любой кодировке - нонсенс.

            А какая наглость записывать на ФС произвольные данные в виде произвольного потока байт! :D
            Просто не смог удержаться. Что дальше? Будем «писать бинарники в кодировке utf-16»? :D
              Кодировки-шмадировки... Почему же ни один плеер из просмотренных мной в лине нормально не распознает русские теги в мп3 кроме как в utf? При этом винда вразумительно реагирует на любые теги. Что там винда - из встречавшихся мне флэш-плееров только один не распознал русские теги в мп3 (при этом из wma они читались нормально). А вот линь капризный такой. Конечно, тут можно гнать на разрабов самих плееров, но тогда объясните, почему в винде ситуация нормальная, несмотря на обилие говнософта (со слов линуксоидов, конечно).
                $im, про кодировки я уже писал, у меня почему-то все как проигрывалось влц (и тэги читались) в винде, так и в убунте все хорошо, однако WMP их читать отказывался на отрез, после переименования их в WMP аналогично поступал WinAmp / VLC. Проблема на лицо.
                  Цитата $im @
                  Кодировки-шмадировки... Почему же ни один плеер из просмотренных мной в лине нормально не распознает русские теги в мп3 кроме как в utf? При этом винда вразумительно реагирует на любые теги.
                  Ща задам дурацкий вопрос: у тебя винда - плеер?
                    Цитата Green Light @
                    Ща задам дурацкий вопрос: у тебя винда - плеер?
                    Знаешь, в винде в свойствах файла есть такая вкладочка, где отображаются свойства медиафайлов, в т.ч. теги. Так вот независимо от кодировки (хотя вот KOI8 еще не пробовал) они отображаются нормально. Да и все виндовые плееры (даже WMP, уж не знаю, зачем он там дюку капризничать начал) распознают теги нормально. А в убунте куда не ткнись (кроме, пожалуй, VLC - не пробовал еще), подавай UTF. Вопрос и вправду дурацкий.
                      Упс! Пропустил. Сорри.
                      Цитата
                      А что используется вместо XML-схем? Для проверки значений есть какие-нибудь готовые инструментальные средства? Есть аналоги средств для реализации чего-либо, аналогичного XML-data-binding'у, XPath и XQuery?

                      Просто есть опасения, что сообщения об ошибке вроде "файл плохой" вместо точного опеределения - что в нём не так - это нормально. Это нормально?

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

                      Пример #1.
                      Пусть, например, мне нужен uploader из-под Апача понадобился.
                      Если мы о коде на С, например, то там всё довольно просто -- значения проверяются в ходе работы. То есть, если к примеру, я в кофиге указал например путь для чего-то при работе из-под web-сервера. Например, если я изваял какую-то fastcgi-аппликуху (для них конфиги иной раз имеет смысл писать). Пусть это будет выглядеть как-то так:
                      my.conf
                      ExpandedWrap disabled
                        ...
                        my_work_dir = /usr/local/apache2/htdocs/fcgi/tmp
                        ...

                      Теперь, положим, я стартую эту fcgi'шку из Апача как "статический сервер" (FastCGI весьма интересная технология и позволяет делать очень и очень много всякого-разного). А теперь, предположим, есть косяк -- нет такого каталога. Админ оказался полным дятлом и не прочитал файл INSTALL, где сказано -- создайте этот каталог и присвойте ему права апача.

                      В этом случае есть два пути -- либо создать таковой (если это не совсем критично по требованиям безопасности), либо выкинуть сообщение в ЛОГ и завершить работу. Апач не заметит потери бойца. Админ в логах увидит сообщение типа "date, time -- uploader.fcgi, can't find a valid directory: /usr/local/apache2/htdocs/fcgi/tmp" (например, хотя создать произвольную запись в логах не проблема). Причём, админ практически сразу заинтересуется -- почему же этот супер-пупер аплоадер не работает-то??? Сунется в логи, а там всё написано (если программист знает своё дело).

                      Либо, тихо и молча (вариант -- пукнуть в лог) создать потребный каталог и продолжить работу как ни в чём не бывало. Этот вариант имеет так же право на жизнь, т.к. с точки зрения безопасности, fcgi'шка в таком случае работает на уровне тех прав, которые она унаследовала от родительского процесса -- Апача. А он как правило, запускается от совсем "бесправного" по отношению к операционной системе пользователя, входящего в такую же бесправную группу. Как правило, в "букварях" пишут о пользователе nobody из группы nobody, но я просто создаю пользователя и группу apache. Это для того, чтобы если что-то произошло, то это бы не повредило всей системе в целом и можно было бы понять -- какой пользователь и группа повинны в том, что
                      произошло.

                      Пример #2.
                      Всё хуже. Я должен написать некую приблуду, в которой есть граничные условия -- например интервал для каких-то данных. Пусть это будет какая-нибудь телеметрия. Граничные данные -- температура двигателя автомобиля. Она может быть от -30-40 (от -90 может быть, но мне не известна электроника под такие температуры) и до +100 (предположим). Выше +100градусов -- орать что всё плохо (по логике вещей, так и есть). Но пользователь имеет право сконфигурить свои параметры. Пусть он может задать чисто под свои автомобили граничные значения. Выше и ниже -- сообщать пользователю незамедлительно.

                      Однако, ему может показаться, что электроника будет работать в интервале от -150 и до +150, не будет, скажу сразу, но пользователь этого не понимает -- он в прошлом шофёр с 30-летним стажем и User's Manual не воспринимает ни в .PDF, ни в .DOC, ни в каком другом виде... Он может попытаться вбить эти данные в настройках и сохранить их в файл конфигурации. Но программа (защита от дурака) ему укажет на недопустимость этих значений. Тогда он сделает по-другому -- откроет файл конфига, вобъёт данные и сохранит файл. При следующем старте программа, считав данные, в том месте где она проверяет граничные значения, считанные из конфига, тихо выматерится мессейдж боксом и по-правит на то, что является максимальными допустимыми граничными условиями.

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

                      Ну, пример с движками по значениям немного некорректен, оговорюсь сразу. Но мне хотелось просто продемонстрировать логику. :D:D:D
                        the_Shadow, ну проверка существования каталога это отдельная история, конечно это придется проверять в приложении и писать логи или что-либо. А как насчет "статических" проверок? Когда есть на выбор пять значений, какое-либо шестое использовать нельзя. Когда кокой-либо тег (точнее настройку) можно использовать, только с одним из этих значений? Когда набор определенных настроек должен располагаться в определенном порядке. Написав ХМЛ схему или DTD можно просто наложить ее на ХМЛ файл и узнать корректно он составлен или нет... А ты не замучаешься все это проверять в приложении? Писать кучу кода на С только ради проверки? Хотя я то понимаю, что ты ответишь - не замучаешься :D :D :D Однако - подумай? А что делать если мне нужэен какой-нить рекурсивный конфиг, как мне использовать для этого пару "имя"="значение"?
                          $im, ну согласись, что за юникодом будущее. То что сейчас встречаются грабли это да.

                          Кстати, провел эксперимент поставил русскую убунту, тэги нормально читаются. Что в общем-то ожидаемо. Понимаешь, если у тебя используется 8битная кодировка, то угадать, какая именно весьма проблематично :)

                          ЗЫ и не надо говорить, что в винде усё хорошо, попробуй засандалить имя песни на немецком (с умляутом), вместо умляута получишь большую русскую букву. Чудес не бывает.
                            my.conf
                            ExpandedWrap disabled
                              ...
                              # Есть пять тэгов. Пусть они будут некоторыми целочисленными значениями. Не вопрос, если они будут символьными строками. Целые в данном
                              # примере использованы от 1 до 5 с целью иллюстрации того, что 6 или более использовать нельзя.
                              # Порядок следования тэгов определён и не должен изменяться.
                              tag1 = 5
                              tag2 = 3
                              tag3 = 2
                              tag4 = 1
                              tag5 = 4
                              ...

                            В коде я читаю этот конфиг, считываю значения параметров tag1-5 и обрабатываю что-то в своих безумных алгоритмах. :D:D:D
                            Ты можешь заметить, что пользователь может прописать некорректные значения. Может. Кто ему мешает. Но при такой постановке задачи, если честно, то я даже проверять не буду ничего. Объясню почему -- если порядок и правила описания предопределены, то они взяты не с потолка, а из Т.З. Следовательно, заказчик знает о том, что он должен сделать для эксплуатации программы. Он Т.З., вообще говоря, подписывал. Если он не в состоянии сконфигурировать заказанную систему, прочитав "букварь", то... За отдельные деньги я проведу ему "мастер-класс". Не вопрос. :) "Скупой платит дважды, глупой -- трижды, а лох платит по жизни"... :D:D:D

                            Lepr, это не корректная постановка вопроса. Если мы делаем полностью предопределённый конфиг, то тут и думать нечего. Если мы делаем конфиг более "свободный", то алогоритм примерно таков (для описываемого тобой случая):
                            пока_не_закончили_чтение_конфига
                            {
                            считать параметр;
                            сравнить с именами параметров;
                            - если "tag1", считать значение, проверить_на_корректность(), если "да", то присвоить переменной val1;
                            break;
                            - если "tag2", считать значение, проверить_на_корректность(), если "да", то присвоить переменной val2;
                            break;
                            - если "tag3", считать значение, проверить_на_корректность(), если "да", то присвоить переменной val3;
                            break;
                            - если "tag4", считать значение, проверить_на_корректность(), если "да", то присвоить переменной val4;
                            break;
                            - если "tag5", считать значение, проверить_на_корректность(), если "да", то присвоить переменной val5;
                            break;
                            }

                            Ты можешь заметить что по идее я просто добавил одну функцию. Не более. Ту, что проверяет значения. Если ты скажешь что пользователь может ввести в конфиг произвольное число тэгов, то Бога ради. В этом случае в функции "проверить_на_корректность()" я просто добавлю пять булевых переменных и буду переводить их в true при успешной проверке каждого из значений. А перед проверкой смотреть -- true или false. Если true, то мы значит уже считали значение и это означает ошибку в конфиге. Просто "би-бикаем" (пишем в лог чего-нибудь или выкидываем сообщение об ошибке конфига) и exit( -1 ). Без долгих рассуждений. Причина проста -- "задача построения абсолютно дуракозащищённых систем не учитывает гениальнейшей изобретательности круглых идиотов". Не помню кто сказал. Пусть "буквари" читают.

                            Здесь вся проблема сводится либо к коду который написал ты (сам проверяешь, в своей программе). Либо к коду, который написал кто-то. То есть, по идее, проверяют за тебя. Но вот смотри -- linuxfan приводил конфиг на XML от TV-tuner'а. Как ты думаешь -- средства проверки корректности XML знают что-либо о сетке частот, подстройке тюнера? Думаю, нет... И для корректной верификации этого конфига, тебе надобно будет... Правильно. Подстроить средства верификации под конкретную задачу. Чем это отличается от моего подхода? Тем, что пишешь не С-код? Ну, это не больно. вообще-то... :D:D:D

                            Добавлено
                            "Рекурсивный конфиг"? Хэх! :D:D:D
                            Вот посмотри -- тот же Апач. Живёт без рекурсии. И по функционалу в версии 2.2.х, конфиги раздельные -- что к виртуальным хостам или к SSL , то вынесено в свои отдельные файлы. Ибо не фиг. Знаешь, я давно пришёл к выводу, что когда я сталкиваюсь с крайне сложным решением какой-то задачи, то я просто ищу решение, упрощающее эту самую задачу. На мой взгляд, не следует решать ошибки проектирования за счёт интсрументальных средств. Нужно пересматривать алгоритм. "Усложнять просто. Упрощать сложно". Кстати, на С для этого все возможности есть -- он ведь очень прост и безискусен... :D:D:D
                              Цитата the_Shadow @
                              Не-аааа... Системная кодировка есть системная кодировка. То, как там и чего будет сохранять Самба -- её дело.
                              Цитата linuxfan @
                              А какая наглость записывать на ФС произвольные данные в виде произвольного потока байт!

                              Ой, не смешите меня :lool: Поиск как осуществлять в такой помойке? Или давайте уже избавимся от ФС - зачем? Пусть каждая софтина имеет прямой доступ к диску и пишет всё, что программахеру заблагорассудилось :lool:
                                Эээ, ребята с конфигами, а вы это вообще к чему? При чем тут винда и линь?
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (1182) « Первая ... 1014 1015 [1016] 1017 1018 ...  1181 1182
                                Закрыто kanes 17-02-2009: Введите причину закрытия темы здесь



                                Рейтинг@Mail.ru
                                [ Script execution time: 1.5547 ]   [ 15 queries used ]   [ Generated: 5.11.26, 02:30 GMT ]