LINUX.ORG.RU

Сообщения olegk

 

Lisp(Scheme) парсеры

Встречал ли кто-нибудь статью по написанию лексических и синтаксических анализаторов на Scheme. Интересуют не генераторы, а написание анализаторов «вручную». Очень интересная статья была "
Оптимизирующие парсер-комбинаторы" Практика функционального программирования. Но она посвящена OCaml. Мне интересные именно детали реализации на Scheme, т.е. получение данных из порта, откат и т.д. Какие-нибудь практики, шаблоны и т.д.

olegk
()

ECL + ASDF

Помогите, пожалуйста, освоиться с Embedded Common Lisp.

Хочу распарсить XML с помощью одного из множества парсеров для CL.

Проблема в том, что у меня не получается подключить пакет ASDF. Делаю так:

(require 'asdf)

(push «/путь/к/xmls/» asdf:*central-registry*)

(require 'xmls)

Получаю

Internal error:
;;; ** (SYSTEM «i486-linux-gnu-gcc и т.д.


erred while invoking #<ASDF:COMPILE-OP NIL 155795840> on #<ASDF:CL-SOURCE-FILE „xmls“ 155710184>

Available restarts:

1. (TRY-RECOMPILING) Try recompiling xmls
2. (RETRY) Retry performing #<ASDF:COMPILE-OP NIL 155795840> on #<ASDF:CL-SOURCE-FILE „xmls“ 155710184>.
3. (ACCEPT) Continue, treating #<ASDF:COMPILE-OP NIL 155795840> on #<ASDF:CL-SOURCE-FILE „xmls“ 155710184> as having been successful.
4. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at ASDF:PERFORM. In: #<process SI:TOP-LEVEL 0826afc0>.

Очевидно, что ECL пытается запустить gcc, но такого нет есть i686-linux-gnu-gcc.

В связи с этим два вопроса:

1. Если я не хочу, чтобы файлы компилировались в нативный код (хочу байткод)?

2. Если хочу, как мне указать правильную версию GCC?

Пробовал переменную среды CC, но не помогло.

olegk
()

GNU guile

Добрый день! Очень понравился subj в качестве языка настройки программы, написанной на C. Хотелось бы использовать в приложении. Но тут возникла проблема - необходима кроссплатформенность. Под Win программа собирается в VC. Знаете ли вы хорошую сборку guile под Win(без всяких там костылей типа cygwin). Как-то нагуглить не удалось.

olegk
()

Помогите понять Ubuntu DNS

Недавно обнаружил, что бубунта находит компьтеры в локальной сети.

Т.е. ping testcomp и все находится.

Вопрос как это получается, ведь DNS не параметрировал и раньше такого поведения не замечал (давно привык пользоваться IP адресами). Как это достигается в новых версиях linux?

Вообще все эти новые рюшечки типа автоматической настройки Wi-Fi немного напрягают: не понятно откуда, что идет.

Ubuntu 10.04

olegk
()

skype ubuntu 10.04 микрофон

Все перепробоавл не могу понять как включить микрофон в скайпе. Запись звука в гноме работает, а в скайпе нет. Установил регулятор громкости от пульсаудио: все каналы включены, а в скайпе всеравно ничего. Дистрибутив Ubuntu 10.04 Netbook remix на Asus EEE PC 1201T. Заранее благодарен.

olegk
()

Emacs speedbar

Подскажите, как сделать, чтобы в emacs speedbar открывался как на картинке
http://laterrevuedailleurs.fdn.org/fr/informatique/message_integrer_la_speedb...

olegk
()

Простой алгоритм шифрования

Добрый вечер!

Подскажите, пожалуйста, простой алгоритм шифрования с открытым ключом. Задача заключается вот в чем. Необходимо зашифровать строчку (длиной 30 байт) с помощью закрытого ключа, а расшифровать с помощью открытого ключа. Т.е. стандартная схема. Проблема в том, что расшифровку необходимо встроить в программу, так чтобы она не зависела от внешних библиотек (gnupg, openssl). Особо жестких требований к криптостойкости нет (скорее защита от дурака, но можно чуть по сложнее). Требований по быстродействию так же нет.

Лучше конечно ссылку на какую-нибудь статью, где разжеван алгоритм на C (желательно не большой до 1000 строк). При всей очевидности задачи мне так и не удалось найти адекватной статьи на эту тему (везде есть завязка на openssl). Т.е. гуглить по RSA, например, сложно стало нынче. В идеале также хотелось бы что-то стандартное и адекватное (не велосипедный вариант).

olegk
()

Erlang OTP запуск приложений

Написал тестовое приложение на Erlang. Один супервизор + один worker -gen_server.

запускаю так:

erl -boot start_sasl -config elog

далее ввожу в оболочке:

application:load(test).
application:start(test).

С помощью rb смотрю логи.

Далее возникает вопрос как это использовать на практике. Предположим есть реальный сервер, на котором я хочу пускать это приложение. Время от времени хочу смотреть логи.

Мне хотелось бы узнать как запустить с помощью скрипта все это удовольствие:

#!/bin/sh

erl erl -boot start_sasl -config elog <название моего приложения>

Когда писал без OTP использовал следующий способ

#!/bin/sh

erl -noshell -s module function arg

Второй скрипт, который хочется иметь, это просмотр логов. Запустил и он автоматически подгрузил логи для просмотра в erl shell.



olegk
()

Ubuntu 9.10 разочарование

Добрый вечер!

Обновил по традиции Ubuntu с 9.04 до 9.10. Просто было интересно посмотреть. Во-первых скорость загрузки: время загрузки увеличилось субъективно значительно и составляет 1 мин 32 сек. (Dell Inspirion 1525). Раньше не замерял, потому что не особо не интересует, но так как это заявили, то решил проверить. При чем х.з. на чем оно висит до появления анимируемой заставки почти минуту. В остальном не заметил ничего нового.

Не понятно как рулить сервисами . На redhat есть chkconfig и service (для убунту тоже есть, но не понятно как оно выруливает upstart сервисы). Не понятно как отключить сервис, как включить. Спрашивается какого меняли стандартную загрузку на эту фигню, которая медленнее в полтора раза и менее понятна для тех, кто пользуется линукс не первый день.

В сборке какой-то колеченный фаерфокс. Где-то убрали какие-то иконки и все.

Может кто что подскажет и развеет мой скепсис по поводу новой убунты. Как вы управляете скриптами загрузки и т.д.

olegk
()

SQL проектирование

Добрый день!

Возник вопрос по проектированию базы данных (в книге своей не нашел, а как спросить у гугла не знаю). Может вопросы покажутся простыми, но мне никак не додуматься, как сделать правильно.

Как принято решать такую задачу в SQL:

Есть сущности Сущность1, Сущность2, Сущность3, Сущность4.

Сущность1 может иметь несколько Сущность2 (т.е. отношение один ко многим). Сущность2 может быть двух типов либо Сущность3 либо Сущность4.

Т.е. между Сущность2 и (Сущность3 или Сущность4) есть отношение многие к одному. Но одновременно связи между (Сущность2-Сущность3) и (Сущность2-Сущность4) быть не может

Например,

Table A (Сущность1)
id


Table B (Сущность2)
id
A_id -> A.id
C_id -> C.id
D_id -> D.id

Table C (Сущность3)
id

Table D (Сущность4)
id

Т.е. в таблице B не может одновременно быть NOT NULL C_id D_id, но один быть NOT NULL обязан.Есть предположение решить через CHECK ().
Правильно ли это? Или есть более изящный способ?




olegk
()

Ubuntu 9.04 KDE 4.2

Обновил я намедни свою бубунту с 8.04->8.10->9.04

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

Но вот не задача он весит мертво мой ноут. Решил я еще подождать пока допилят.

Вместе с бубунтой у меня обновился еще krusader до 2.0 (теперь на базе kdelibs 4). Его редактор, который всегда использовал kwrite Kpart, стал жутко тормозить при пролистывании (текста всего-то 300 стр.) И иногда не корректно рисует (т.е. вставляет куски других окон). Это все я уже тестил под Gnome (с минимальными эффектами), т.к. от KDE пока отказался из-за подвисаний.

Что-то наводит меня на мысль, что дело в видео карте (или настройках xorg.conf, который сам уж как сто лет не настраивал, последний раз во времена RH9). Железо Dell Inspiron 1525

lspci

00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)

olegk
()

libipq set mark

Можно ли с помощью libipq добавить отметку к пакету (чтобы потом использовать эту отметку для tc)?

olegk
()

JavaEE транзакции

Можно ли такое сделать:

- на одном хосте работает AS и на нем же сервер БД

- на втором хосте (клиенте) работает некоторая сторонняя система

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

Ответом может быть любой пример возможно какое-то требование к сторонней системе и т.д.

Заранее благодарен.

olegk
()

C++ to C

Просто в порядке интереса имеется ли такой инструмент, который компилирует C++ не в маш код, а в C код, который можно потом было бы использовать для сборки на платформе, не имеющей С++ компилятора?

olegk
()

ASN.1 Open source

Если у кого опыт работы с ASN.1? Пересмотрел много кодировщиков, компиляторов (C,C++,Java). Более менее нормальный и open source: http://lionet.info/asn1c/ Слышал про поддержку в Erlang, но язык слишком специфичен. Остальные по большей части не доделаны. Если у кого опыт работы ASN и ISO протоколами? Какой выбирали кодировщик для своих проектов?

olegk
()

WL-500gP + WPA + Ubuntu 8.04

Запарился настраивать Ubuntu для подключения к роутеру WL-500gP. Вроде в логах асуса есть, но dhclient не может получить IP адрес. Проверил на другом Vista все работает. Ноут DELL 1525. Может кто уже боролся WiFi у меня это первая попытка. Даже не уверен что проблема в авторизации, но все же.

olegk
()

Ubuntu+Dell 1525+Grub install

При установке убунту на DELL 1525 устанока прировается на grub-install(hd0) failed типа неисправимая ошибка. На ноуте установлена Vista параллельно. В чем может быть косяк?

>>>

olegk
()

Qt 4.4+ODBC+MSSQL

Раньше с модулем Qt SQL никогда не работал (так как предпочитаю Java для работы с базами) Захотелось написать небольшую прогамку, работающую c сервером MS SQL (не моя прихоть). Так вот настроил я ODBC так

cat /etc/odbc.ini

[ODBC Data Sources][1]
MSSQL = MSSQL Server

[MSSQL]
Driver = /usr/lib/odbc/libtdsodbc.so
Description = MSSQL Server
Server = 192.168.9.2
Database = test
Port = 1433
TDS_Version = 8.0

[Default]
Driver = /usr/lib/odbc/libtdsodbc.so

Вот кусок кода:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("");
db.setDatabaseName("mssql");
bool ok = db.open("test","test");
qDebug() << ok;

if (!ok) return;

QStringList list = db.tables();

for (int i = 0; i < list.size(); ++i){
qDebug() << list[i];
}



QTableView *view = qFindChild<QTableView*>(this,"tableView");
QSqlTableModel model;
model.setTable("test_table");
model.select();
model.setEditStrategy(QSqlTableModel::OnFieldChange);
view->setModel(&model);
view->show();

Вместо списка таблиц какой-то мусор. В QTableView пусто. isql отлично работает. Что я сделал не так?

>>>

olegk
()

AverMedia 507

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

OpenSuSE 10.3

uname -a

Linux xroot 2.6.22.13-0.3-default #1 SMP 2007/11/19 15:02:58 UTC i686 i686 i386 GNU/Linux

lspci

02:0c.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)

dmesg | grep card

saa7133[0]: subsystem: 1461:a11a, board: Avermedia AVerTV Studio 307 [card=45,insmod option]

card=102 пробовал тоже не работает. Может что-то в последующих ядрах меняли?

>>>

olegk
()

TCP Options

Незнаю насколько корректен мой вопрос, но все же попытаюсь. Как можно в TCP отрубить отправку в заголовках Options (Timestamps например)? Можно ли это сделать в настройках сокета или только на общесистемном уровне?

>>>

olegk
()

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