Кто-нибудь помнит из здесь присутствующих, что за события разыгрались в далеком 2003 году? www.linux.org.ru/forum/talks/380209
Читаю тред, плачу до слез, сотрудники на меня уже косо смотрят :)
Как вы относитесь к тэгу @author, используете ли его при написании кода?
Как в IntelliJ Idea можно получить аннотации того, кто изменял/создавал строки в коде?
Кто-нибудь знает готовое решение для организации менеджера транзакций между множеством application-серверов, которые обращаются к одной базе данных? В серверах крутится Java+Spring+Hibernate. Можно ли как-нибудь приспособить спринговский механизм для работы странзакциями к функционированию на распределенной системе клиентов?
В последнее время стал замечать, что при запуске firefox начинает интенсивно грузить процессор и читать/писать что-то на hdd в течение первых 20-25 секунд (мигает led-индикатор, хрустит hdd). Причем во время этой процедуры интерфейс браузера практически полностью замерзает. После все восстанавливается в нормальный режим.
Кто-нибудь сталкивался с такой проблемой?
Firefox 3.6.12. Ubuntu 10.10 (то же было и на 10.04 до апгрейда).
Подскажите, пожалуйста, есть ли для latex какое-нибудь готовое решения для построения диаграмм иерархии файловой системы вида:
Level 1
|
|-- Level 2
| |
| |-- Level 3
| +-- Level 3
+-- Level 2
Компилирую такой кусок кода:
#include <libconfig.h>
int main() {
/* skipped */
char *interface;
if ( !config_setting_lookup_string(setting, "interface", &interface) )
fprintf(stderr,"init: can't find interface\n");
}
и получаю ворнинг такого содержания:
test.c:62: warning: passing argument 3 of ‘config_setting_lookup_string’ from incompatible pointer type
в libconfig.h говорят, что
extern LIBCONFIG_API int config_setting_lookup_string( const config_setting_t *setting, const char *name, const char **value);
ЧЯДНТ?
Стоит задача управления несколькими девайсинами. Централизованное приложение по сети передает пакеты с заданиями для каждого из этих устройств моему серверу. Тот должен в соответствии с той или иной командой выполнить кое-какие расчеты и, в конце-концов, переслать данные по последовательному порту собственно адресату.
Пока что на ум пришло выделять отдельный поток для каждого из этих устройств и в нем производить вычисления / организовывать связь по ttyS*. Сразу же за этим появляется вопрос по поводу передачи управляющих данных в отдельные треды. Это надо как-то в главном цикле программы обрабатывать приходящие данные, определять идентификатор устройства и уже потом давать знать соответствующему потоку, что он может забрать посылочку? Если так, что что лучше использовать для передачи информации потоку? пайп, юникс сокет?
ПК соединен с контроллером через переходник USB->serial. По определенному сигналу контроллер швыряет на последовательный порт около 200 байтов (но каждый раз разное количество). Пытаюсь их получить следующим образом:
/* ..здесь какой-то код... */
if (!portOpen()) return 0;
if ((count=portScan(points, maxlen)) <= 0) {
fprintf(stderr, "getData: Таймаут ожидания данных\n");
portClose();
return 0;
}
инициализация выглядит вот так:
#define DEVNAME "/dev/ttyUSB0"
static int _openPort(void)
{
int fd;
fd = open(DEVNAME, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
fprintf(stderr, "_openPort: can't open %s\n",DEVNAME);
}
else
fcntl(fd, F_SETFL,0);
return fd;
}
static struct termios _initPort(int fd)
{
struct termios options, oldopt;
tcgetattr(fd, &oldopt);
bzero(&options, sizeof(options));
options.c_cflag |= (CLOCAL | CREAD | B9600);
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_iflag = 0;
options.c_lflag = 0;
options.c_oflag = 0;
options.c_cc[VTIME] = 10; /* 1 second */
options.c_cc[VMIN] = 0;
tcflush(fd, TCIFLUSH);
tcsetattr(fd, TCSANOW, &options);
/* этот участок необходим по схемотехническим требованиям */
int rts = TIOCM_RTS;
int dtr = TIOCM_DTR;
ioctl(fd, TIOCMBIC, &rts);
ioctl(fd, TIOCMBIS, &dtr);
return oldopt;
}
static void _closePort(int fd)
{
close(fd);
}
static int serial;
static struct termios oldopt;
int portOpen(void)
{
if ((serial=_openPort())!=-1) {
oldopt = _initPort(serial);
return 1;
}
return 0;
}
void portClose(void)
{
if (serial != -1)
tcsetattr(serial,TCSANOW,&oldopt);
_closePort(serial);
}
int portScan(void *buf, int count)
{
if (serial == -1) {
fprintf(stderr, "portScan: port is not opened!\n");
return 0;
}
return read(serial, buf, count);
}
Проблема в том, что вызов portScan(points, maxlen) возвращает всегда только 4 байта. Сказать, первые ли это 4 байта, я не могу. Но если после обращения read(...) сразу же вызвать read еще раз, то успешно прочитываются еще 4 байта.
Подскажите пожалуйста, с чем это может быть связано? (Аппаратное/программное управление событиями не требуется)
Собственно, возник следюущий вопрос: есть два файла *.c -- main.c и notmain.c, а также заголовочный header.h.
notmain.c:
int var;
void initVar() { var = 5; }
main.c:
#include <stdio.h>
#include "header.h"
int main()
{
initVar();
var++;
printf("var: %d\n", var1);
}
При этом выводится ответ 6 независимо от того, каким образом переменная var объявляется в header.h:
header.h:
int var; /* или extern int var */
void initVar();
единственное различие заметно при вызове nm для main.o:
для случая extern int var:
nm main.o
U initVar
00000000 T main
U printf
U var
для объявления int var без extern:
nm main.o
U initVars
00000000 T main
U printf
00000004 C var
Есть ли подвох?
Собственно, сабж: недавно был приобретен нетбук Acer Aspire One D250 с винХР. Виндоуз была благополучно снесена, на ее место поставлен Arch-2009.08.
После установки, lspci определил сетевые устройства:
# lspci -v
01:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: Foxconn International, Inc. Device e016
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at 57100000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel <?>
Capabilities: [160] Device Serial Number 00-15-17-ff-ff-24-14-12
Capabilities: [170] Power Budgeting <?>
Kernel driver in use: ath9k
Kernel modules: ath9k
03:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
Subsystem: Acer Incorporated [ALI] Device 022f
Flags: bus master, fast devsel, latency 0, IRQ 29
Memory at 55000000 (64-bit, non-prefetchable) [size=256K]
I/O ports at 2000 [size=128]
Capabilities: [40] Power Management version 3
Capabilities: [48] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [58] Express Endpoint, MSI 00
Capabilities: [6c] Vital Product Data
Capabilities: [100] Advanced Error Reporting
Capabilities: [180] Device Serial Number ff-f2-d5-29-00-23-5a-ff
Kernel driver in use: atl1c
Kernel modules: atl1c
Интерфейсы:
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:23:5A:F2:D5:29
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:29
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wlan0 Link encap:Ethernet HWaddr 00:26:5E:58:03:E4
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wmaster0 Link encap:UNSPEC HWaddr 00-26-5E-58-03-E4-00-00-00-00-00-00-00-00-00-00
[NO FLAGS] MTU:0 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
после подключения кабеля от ADSL-модема в eth0 начинает появляться множество ошибок:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:23:5A:F2:D5:29
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4294967293 errors:4294967278 dropped:4294967290 overruns:4294967293 frame:4294967281
TX packets:4294967293 errors:4294967284 dropped:0 overruns:4294967293 carrier:4294967291
collisions:4294967281 txqueuelen:1000
RX bytes:4294967293 (4095.9 Mb) TX bytes:4294967293 (4095.9 Mb)
Interrupt:29
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Попытка настроить и поднять pppoe-соединение ни к чему не приводит.
pppoe-start
................TIMED OUTпри этом в /var/log/errors.log появляется запись
ep 26 19:21:26 archi pppoe[1807]: Timeout waiting for PADO packetsПосле ребута устройство вообще перестает определяться в lspci, а попытка ifconfig eth0 up заканчивается руганью:
eth0: unknown interface: No such deviceВ процессе многочасового гугления были найдены следующие ссылки:
http://forums.linuxmint.com/viewtopic.php?f=49&t=31963
http://forum.ubuntu.ru/index.php?topic=60167.0
https://bugs.launchpad.net/ubuntu/+bug/363691
http://forums.remote-exploit.org/newbie-area/25490-aspireone-d250-no-network.html
Предложенное решение с драйвером AR81Family не срабатывает. Скачиваю, собираю, записываю в /etc/rc.conf:
MODULES(atl1e !atl1c)Все равно железка не подает признаков жизни в lspci.
Где-то встречал, что с ядром старше, чем 2.6.30 таких проблем не было. Сейчас попробую установить Lenny-netinstall. Если что-нибудь получится -- отпишусь.
Установил себе emacs-snapshot из deb http://emacs.orebokech.com lenny main. Сабж вот в чем: команда
ls /usr/bin | grep emacsb2m.emacs-snapshot
ctags.emacs-snapshot
ebrowse.emacs-snapshot
emacs
emacsclient
emacsclient.emacs-snapshot
emacs-snapshot
emacs-snapshot-gtk
emacs-snapshot-x
etags.emacs-snapshot
grep-changelog.emacs-snapshot
rcs-checkin.emacs-snapshot
Подскажите пожалста, чем отличается emacs от emacs-snapshot и emacs-snapshot-gtk и emacs-snapshot-x, а также emacsclient от emacsclient.emacs-snapshot?