LINUX.ORG.RU

Сообщения alman

 

Кодовая страница 866

Всем привет.

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

MS-DOS использовала кодовую страницу CP866 для русскоязычных пользователей. А какую кодовую страницу использовала украинская локализация MS-DOS? Также хочу спросить о VGA фонте, используемом в DOS украинцами - откуда бралась i и другие украинские символы - использовалась первая половина знакогенератора или вторая? Какова раскладка украинской клавиатуры времён MS-DOS и как расположены украинские клавиши на современных клавиатурах?

Может быть кто-нибудь поделится украинской раскладкой - соответствие сканкодов клавиатуры алфавиту?

alman
()

Прошли времена...

Прошли времена, когда в Сети можно было получить квалифицированный ответ на любой технический вопрос по программированию. Сейчас вместо ответа скорее получишь тонкий (или не очень тонкий) троллинг. Апофеозом бессмысленности является раздел «Программирование» на ответах mail.ru. Но даже общепризнанные ресурсы, типа linux.org.ru, habrahabr.ru, stackoverlow.com просто молчат, когда задаёшь более-менее сложный вопрос.

Почему так? Никто не знает ответов? Или те, кто знает ответ, предпочитают «умолчать» его для себя?

Разумеется, я в курсе того, что для получения правильного ответа, нужно правильно задать вопрос. С этим, я полагаю, проблем нет.

alman
()

Unicode и портирование приложений

Добрый день.

Программа написан на C# под Windows. При за пуске этой программы на Ubuntu под Mono частично теряется функциональность. После изучения проблемы, обнаружено, часть кода программы завязана на Win API.

Решение проблемы - убрать системно-зависимый код из программы. Но есть маленький нюанс - не все вещи можно безболезненно выкинуть из кода. Например, использование

        [DllImport("usp10.dll")]
        private static extern int ScriptItemize(
            [MarshalAs(UnmanagedType.LPWStr)] string pwcInChars, int cInChars, int cMaxItems,
            ref SCRIPT_CONTROL psControl, ref SCRIPT_STATE psState, [In, Out] SCRIPT_ITEM[] pItems, ref int pcItems);
        [DllImport("usp10.dll")]
        private static extern int ScriptLayout(
            int cRuns,[MarshalAs(UnmanagedType.LPArray)] byte[] pbLevel,
            [MarshalAs(UnmanagedType.LPArray)] int[] piVisualToLogical,
            [MarshalAs(UnmanagedType.LPArray)] int[] piLogicalToVisual);
        [DllImport("usp10.dll")]
        private static extern int ScriptShape(
            IntPtr hdc, ref IntPtr psc, [MarshalAs(UnmanagedType.LPWStr)] string pwcChars,
            int cChars, int cMaxGlyphs, ref SCRIPT_ANALYSIS psa,
            [Out, MarshalAs(UnmanagedType.LPArray)] ushort[] pwOutGlyphs,
            [Out, MarshalAs(UnmanagedType.LPArray)] ushort[] pwLogClust,
            [Out, MarshalAs(UnmanagedType.LPArray)] SCRIPT_VISATTR[] psva, ref int pcGlyphs);
        [DllImport("usp10.dll")]
        private static extern int ScriptPlace(
            IntPtr hdc, ref IntPtr psc, [MarshalAs(UnmanagedType.LPArray)] ushort[] pwGlyphs,
            int cGlyphs, [MarshalAs(UnmanagedType.LPArray)] SCRIPT_VISATTR[] psva,
            ref SCRIPT_ANALYSIS psa, [MarshalAs(UnmanagedType.LPArray)] int[] piAdvance,
            [Out, MarshalAs(UnmanagedType.LPArray)] GOFFSET[] pGoffset, ref ABC pABC);
        [DllImport("usp10.dll")]
        private static extern uint ScriptRecordDigitSubstitution(uint lcid, ref SCRIPT_DIGITSUBSTITUTE psds);
        [DllImport("usp10.dll")]
        private static extern int ScriptApplyDigitSubstitution(
            ref SCRIPT_DIGITSUBSTITUTE psds, ref SCRIPT_CONTROL psc, ref SCRIPT_STATE pss);

Как можно отсюда увидеть, программа активно использует методы работы с юникодом библиотеки Uniscribe. Что мы знаем об Юникоде? Аналог Uniscribe для POSIX систем - Pango. Но Uniscribe и Pango API совершенно различны. Что делать?

В сети находится вот такая интересная библиотека из Wine: usp10.dll.so. Как думаете, реально ли использовать её из C# приложения?

alman
()

Как запустить OKL4 на Atmel AT91SAM9G45?

Есть плата AT91SAM9G45 и есть исходники OKL4.

Собираю так:

tools/build.py project=ktest machine=versatile_uboot PYFREEZE=False VERBOSE_STR=True TOOLCHAIN=gnu_arm_eabi_toolchain pistachio.TOOLCHAIN=gnu_arm_toolchain

Затем делаю загрузочный образ для платы:

mkimage -A arm -O linux -T kernel -C none -n «OKL4:ktest» -a 0x80000000 -e 0x80000000 -d okl4_3.0/build/image.elf at91_sd.bin

Затем пытаюсь загрузиться с него и... ничего.

Что и где подправить, чтобы тестовая сборка запустилась на плате AT91SAM9G45?

alman
()

Взять Demos Commander и ...

Взять Demos Commander и оторвать от него оригинальную библиотеку curses. А ещё написать на основе «оторванной» библиотеки утилиту dialog.

Это не вопрос, это предложение. Сколько попросите за такую работу?

alman
()

Странный копирайт.

The License of Crypto++ is somewhat unusual amongst open source projects. A distinction is made between the library as a compilation (i.e., collection), which is copyrighted by Wei Dai, and the individual files in it, which are public domain.

The library is copyrighted as a compilation in order to place certain disclaimers (regarding warranty, export, and patents) in the license and to keep the attributions and public domain declarations intact when Crypto++ is distributed in source code form. The fact that individual files are public domain means that legally you can place code segments, entire files, or small sets of files (up to the limit set by fair use) into your own project and do anything you want with them without worrying about the copyright.

Because one purpose of the project is to act as a repository of public domain (not copyrighted) cryptographic source code, the code in Crypto++ was either written specifically for this project by its contributors and placed in the public domain, or derived from other sources that are public domain.

Нашёл здесь: www.cryptopp.com/

alman
()

/etc/shadow [holywar] [Slackwae][нытиктреад][много букв]

А знаете ли вы, что /etc/shadow может прочитать только root? Да, это конечно круто - ни один засранец, не сможет подбирать пароли пользователей перебором. Но! При этом ни один честный пользователь не сможет реализовать авторизацию.

На всех системах, за исключением Slackware (Патрик, ты молодец и хороший человек), getpwnam вернёт вам что-то типа '*' вместо хэша пароля, если вы не root. Объяснить это легко - а нефиг пользователю знать хэши паролей. Во всяком случае так думают современные разработчики.

Ладно, забиваем на getpwnam и смотрим в сторону pam_authenticate. И что мы видим? При авторизации через модуль pam_unix.so мы попадаем на те же грабли. Динамическая библиотека работает в контексте программы и, соответственно, имеет те же самые права, что и программа её использующая - /etc/shadow по прежнему недоступна обычным пользователям.

И вот тут интересный момент - всё говорит о том, что не существует _универсального_ и _правильного_ способа дать пользователю возможность проверять авторизацию. Есть вариант использовать «костыли» в виде rpc сервера, работающего от root и дающего возможность локальным пользователям проверять авторизацию. Но без костылей - варианта нет.

И да, почему бы просто не поставить suid и не заморачиваться с проблемой? Как минимум три причины:

1. У пользователя может не быть прав, чтобы установить suid root

2. Программа может содержать ошибки и даже наличие исходного кода программы не даёт гарантии что среднестатистический админ обнаружит ошибку.

3. Программа может распространяться в бинарном виде. На Земле не так много людей, готовых поставить suid на программу без исходного кода.

Таки образом - выхода нет?

alman
()

Проблема с pam_authenticate

Проверял на FreeBSD 6.0-RELEASE.Не работает :(

int is_password_correct(char *username, char *password)
{
        int                             result;

        do {

            pam_handle_t *      pamh;

            result = pam_start("ftpd", username, NULL, &pamh);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }
            result = pam_set_item(pamh, PAM_AUTHTOK, password);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }
            result = pam_authenticate(pamh, PAM_SILENT);
            pam_end(pamh, PAM_SUCCESS);
            if( result != PAM_SUCCESS )
            {
                printf("PAM Error: %s\n", pam_strerror(pamh, result) );
                break;
            }

        } while(false);
        return result;
}

В чём могут быть грабли?

alman
()

Вопрос по getpwnam()

Вот тут мне не ответили - http://www.linux.org.ru/forum/talks/5824709 , поэтому спрашиваю в правильном месте.

Программа запущена от непривелегированного пользователя. Почему на FreeBSD следующий вызов

struct passwd * p = getpwnam( username );

в p->pw_passwd возвращает «*», в то время как под Linux возвращается хэш пароля?

Как проверить авторизацию на FreeBSD?

alman
()

Пожалуйста, помогите с альфа-тестом

Прошу помочь с альфа-тестом многопоточного FTP сервера.

Вот здесь лежит бинарник динамически слинкованый под Slaсkware:

http://narod.ru/disk/4140907001/xameleon_ftpd.html

Загрузите, затем

chmod +x xameleon_ftpd

Затем создайте нового пользователя на своей системе и от него запустите:

$ xameleon_ftpd 1025

где 1025 - номер порта, на котором будет слушать FTP сервер.

Программа альфа-версии, поэтому настоятельно не рекомендую запускать от реального логина (например своего) и не рекомендую запускать от рута.

Допустим, IP вашей системы 192.168.1.1 В этом случае строка подсоединения FTP клиента будет выглядеть следующим образом:

ftp://192.168.1.1:1025

Авторизация происходит на основе /etc/passwd

Прежде всего мне необходимо проверить, будет ли работать исполняемый код под другими версиями Linux, отличными от моей Slackware 12. Или придётся делать статическую сборку?

Если заработает, то прошу проверить функциональность и сообщить в этой теме о найденных ошибках. Спасибо.

alman
()

Найти человека из Перми

Россия, Пермь Андреев Андрей Юрьевич 1966 года рождения Окончил Пермский государственный университет, механико-математический факультет, программист

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

alman
()

IP Router Alert Option. Нафига?

Сижу... Размышляю... Не могу понять...

В чём сакральный смысл этой опции?

«The goal, then, is to provide a mechanism whereby routers can intercept packets not addressed to them directly, without incurring any significant performance penalty.»

«Цель IP Router Alert Option - предоставить механизм, с помощью которого маршрутизаторы могут перехватывать пакеты, не адресованные непосредственно им, без значительного падения производительности».

Ну перехватит маршрутизатор пакет и что с того? Что с ним дальше-то делать?

alman
()

Разыскивается исходный код простейшего telnet клиента.

Казалось бы, что может быть проще, чем rfc854? Да не тут-то было! Во первых, сначала надо договориться с сервером о параметрах удалённого терминала, во вторых, судя по всему, обмен данными происходит асинхронно. Во всяком случае даже после согласования параметров терминала, режим запрос-ответ не работает. Насколько я могу судить по результатам отладки, данные от сервера могут приходить по частям.

Собственно вопрос, можно ли написать полноценный telnet клиент без использования select()?

И ещё вопрос, есть ли где в сети код простейшего telnet клиента под лицензией public domain ?

Спасибо.

alman
()

Атомарны ли UDP данные?

Клиент посылает 512 байт в UDP сокет.
Сервер читает 128 байт.
Потеряются ли остальные 384 байта или их можно прочитать следующим вызовом recvfrom()?

alman
()

Зацените проект

Я не знаю, слышали ли вы о проекте Xameleon или нет, но не так давно сайт этого проекта полностью переработан, как и переработана и дополнена информация на сайте.

Ради Бога, прошу не глумиться, а отнестись серьёзно: http://l4os.ru

alman
()

Исходники google android где взять?

Хочется поглядеть внутрь андроида. Где можно глянуть?

alman
()

Фонд «Сколково»

Что вы думаете об этом проекте?

Я вот для себя не могу решить - хорошо или никак.

alman
()

Где же звёзды?

Почему на этой фотографии не видны звёзды?

http://www.nasa.gov/images/content/219147main_s123e008424_full.jpg

Почему не слепнет от солнца?

>>>

alman
()

Слава промышленным роботам!

Хочется поговорить о промышленных роботах. Насколько мне известно, в России это направление удачно заглохло, так и не успев набрать силу. В общем, расскажите, кто что знает о промышленных роботах. Кто видел, кто настраивал, кто знает где какие модели и для чего производятся. В общем, не оставайтесь равнодушными к теме.

p.s. Неолуддитам вход в тему запрещён.

>>>

alman
()

[office life] По сколько вы скидывались на подарки женщинам к 8 Марта?

Сабж. :)

>>>

alman
()

RSS подписка на новые темы