LINUX.ORG.RU

Сообщения xterro

 

Английские слова каждый день

Форум — Development

День добрый, хочу запилить аплёт для гнома, который каждый день показывал бы мне новое слово на английском и его перевод, в связи с этим появились some questions:

  • Откуда брать слова и перевод к ним(можно с примерами, отображаться будет вместе)?
  • Как получать эти слова? Т.е наверняка я должен формировать какой-либо xml файлик и отправлять его «на сервис», в ответ мне придёт xml файлик со словом(как я себе это представляю)?

Может пропустил чего, дополните? :)

xterro
()

[ libxml2 ] как получить значение атрибута?

Форум — Development

Доброго времени суток, разбираюсь тут с libxml2, есть такой кусочек кода:

 
if(!xmlStrcmp(node->name,(const xmlChar *)"Position")) {
    xmlAttrPtr attr = node->properties;
    for(; attr; attr=attr->next) {
        printf("%s\n", attr->name);
    }				
}
здесь я прохожу по всем атрибутам ноды и вывожу имя атрибута, а как получить значение атрибута? В мануале по этой структуре видим:

struct _xmlAttr {
    void *	_private	: application data
    xmlElementType	type	: XML_ATTRIBUTE_NODE, must be second !
    const xmlChar *	name	: the name of the property
    struct _xmlNode *	children	: the value of the property

т.е children - значение атрибута? ничего не понимаю, растолкуйте :)

xterro
()

Mercurial, ответвление и bitbucket.org

Форум — Development

ДВС, в своём проекте дал команду hg branch mv, затем hg commit - m «bla-bla» по идее должна была создаться новая ветка, она и создалась, команда hg branches показывает две ветки mv и default. Затем я выгружаю свой проект на bitbucket.org(hg push https://bitbucket.org/...) и смотрю там вкладку Changesets, но там как шла «одна линия» без ответвлений, так и идёт, хотя как я понимаю, должно быть нарисовано ответвление, а его нет, почему, может не так ветку создал, или так и должно быть?

xterro
()

Как подключить старую хому?

Форум — General

Доброго времени суток, переустанавливал linux и при установке забыл указать один свой раздел(sda3) как домашний(на этом разделе находилась моя /home, со всеми файлами), после установки оказалось, что этот раздел болтается 'сам по себе', т.е я его монтирую как отдельный раздел, моя же новая хома создалась на другом разделе(куда я ставил корень /), вот теперь интересует, как вернуть свою хому, т.е как их подменить? Т.е я так понимаю надо прописать раздел в fstab и грохнуть старую папку? Только в fstab каждому разделу присваивается UUID, с этим как быть?

xterro
()

Сломался apt-get...

Форум — General

Скачал с какого-то сайта бинарник Firefox-а(deb пакет), при попытке инсталяции на что-то поругался и не установился, но после этого у меня не устаавливается ни один deb пакет через apt-get, пишет такое:

E: Пакет firefox нуждается в переустановке, но найти архив для него не удалось. E: Внутренняя ошибка при открытии кэша (1). Пожалуйста, сообщите об этом разработчикам.

Хотя если устанавливать через dpkg -i то ошибки такой не выдаёт, в чём проблема?

xterro
()

[GTK+] поддержка прокручивания в собственном виджете

Форум — Development

ДВС, клепаю свой контрол, интересует, как сделать поддержку прокручивания? чтобы можно было кинуть его в ScrolledWindow и появились полосы прокрутки. Как я понял нужно добавить в свой виджет пару GtkAdjustment-ов и сделать свои «слоты» для них(судя по докам от scrolledwindow), но что это за слоты, да и в общем, что и как делать?

xterro
()

E17 как вынести иконку на рабочий стол?

Форум — Desktop

ДВС, Собственно сабж, в E17 есть свои средства, или надо стронними пользоваться, по примеру Openbox/Fluxbox? Хочется пару папок выкинуть на раб. стол, для быстрого перемещения :)

xterro
()

Ветка в Mercurial, как это выглядит на диске?

Форум — Development

Доброго времени суток! представим такую ситуацию, есть репозитарий repo в ~/projects/repo. В repo 2 папки: src(где сам код) и test(где мелкие тестовые програмульки). В нём делаем всё как полагается hg init, hg add, hg commit. Я захожу в ~/projects/repo/src/ открываю там файлик скажем test.c правлю его, потом делаю коммит. Всё это в основной ветке. Теперь я делаю новую ветку скажем feature: hg branch feature и переключаюсь на неё hg update feature. Снова вносим изменения в файлик и снова коммитим. И так может быть несколько раз. Теперь я хочу поработать со старой веткой, переключаюсь снова на default. Вопрос, что будет с моим файликом(test.c)? Ведь в этой ветке он другой, в этой ветке правок(как в ветке feature)я ещё не вносил. Т.е я зайду в папку ~/projects/repo/src/ открою мой test.c и он будет со всеми моими изменениями, что я внёс для ветки feature? Объясните на пальцах, как всё это будет выглядеть? И как работать с кодом, если я буду прыгать с ветки на ветку, что будет с файлами на диске?

xterro
()

Куча процессов, что есть что?

Форум — General

Доброго всем времени суток, набираю команду ps -A и получаю:


PID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:03 ksoftirqd/0
    4 ?        00:00:00 migration/0
    5 ?        00:00:00 watchdog/0
    6 ?        00:00:02 events/0
    7 ?        00:00:00 cpuset
    8 ?        00:00:00 khelper
    9 ?        00:00:00 netns
   10 ?        00:00:00 async/mgr
   11 ?        00:00:00 pm
   12 ?        00:00:00 sync_supers
   13 ?        00:00:00 bdi-default
   14 ?        00:00:00 kintegrityd/0
   15 ?        00:00:00 kblockd/0
   16 ?        00:00:00 kacpid
   17 ?        00:00:00 kacpi_notify
   18 ?        00:00:00 kacpi_hotplug
   19 ?        00:00:00 ata_aux
   20 ?        00:00:00 ata_sff/0
   21 ?        00:00:00 khubd
   22 ?        00:00:00 kseriod
   23 ?        00:00:00 kmmcd
   25 ?        00:00:00 khungtaskd
   26 ?        00:00:00 kswapd0
   27 ?        00:00:00 ksmd
   28 ?        00:00:00 aio/0
   29 ?        00:00:00 ecryptfs-kthrea
   30 ?        00:00:00 crypto/0
   36 ?        00:00:01 scsi_eh_0
   38 ?        00:00:00 scsi_eh_1
   42 ?        00:00:00 kstriped
   43 ?        00:00:00 kmpathd/0
   44 ?        00:00:00 kmpath_handlerd
   45 ?        00:00:00 ksnapd
   46 ?        00:00:04 kondemand/0
   47 ?        00:00:00 kconservative/0
  272 ?        00:00:00 jbd2/sda1-8
  273 ?        00:00:00 ext4-dio-unwrit
  335 ?        00:00:00 upstart-udev-br
  338 ?        00:00:00 udevd
  611 ?        00:00:00 kpsmoused
  629 ?        00:00:00 hci0
  636 ?        00:00:00 scsi_eh_2
  638 ?        00:00:00 usbhid_resumer
  642 ?        00:00:00 usb-storage
  666 ?        00:00:00 cfg80211
  667 ?        00:00:00 pccardd
  712 ?        00:00:00 ipw2200/0
  734 ?        00:00:00 jbd2/sda3-8
  735 ?        00:00:00 ext4-dio-unwrit
  758 ?        00:00:00 i915
  821 ?        00:00:00 rsyslogd
  837 ?        00:00:00 dbus-daemon
  840 ?        00:00:00 NetworkManager
  843 ?        00:00:00 modem-manager
  875 ?        00:00:00 wpa_supplicant
  896 tty4     00:00:00 getty
  900 tty5     00:00:00 getty
  913 tty2     00:00:00 getty
  915 tty3     00:00:00 getty
  917 tty6     00:00:00 getty
  918 ?        00:00:00 acpid
  929 ?        00:00:00 cron
  930 ?        00:00:00 atd
  954 ?        00:00:00 fbguard
  956 ?        00:00:00 fbserver
  979 ?        00:00:00 bluetoothd
  991 ?        00:00:00 l2cap
 1044 ?        00:00:00 apache2
 1046 ?        00:00:01 kslowd000
 1047 ?        00:00:00 apache2
 1048 ?        00:00:00 apache2
 1049 ?        00:00:00 apache2
 1051 ?        00:00:01 kslowd001
 1112 ?        00:00:00 gdm-binary
 1121 ?        00:00:00 console-kit-dae
 1193 ?        00:00:00 gdm-simple-slav
 1199 ?        00:00:00 krfcommd
 1232 tty7     00:03:48 Xorg
 1274 ?        00:00:00 dbus-launch
 1334 tty1     00:00:00 getty
 1343 ?        00:00:00 gdm-session-wor
 1347 ?        00:00:00 hald
 1348 ?        00:00:00 hald-runner
 1374 ?        00:00:00 upowerd
 1403 ?        00:00:00 polkitd
 1444 ?        00:00:00 hald-addon-ipw-
 1445 ?        00:00:00 hald-addon-inpu
 1447 ?        00:00:00 hald-addon-rfki
 1456 ?        00:00:00 hald-addon-cpuf
 1457 ?        00:00:00 hald-addon-acpi
 1462 ?        00:00:01 hald-addon-stor
 1491 ?        00:00:00 gnome-keyring-d
 1510 ?        00:00:00 sh
 1537 ?        00:00:00 ssh-agent
 1540 ?        00:00:00 dbus-launch
 1541 ?        00:00:00 dbus-daemon
 1554 ?        00:00:01 xfce4-session
 1556 ?        00:00:00 xfconfd
 1562 ?        00:00:02 xfwm4
 1563 ?        00:00:00 xfsettingsd
 1564 ?        00:00:05 xfce4-panel
 1565 ?        00:00:00 xfdesktop
 1567 ?        00:00:01 xfce4-settings-
 1569 ?        00:00:00 gam_server
 1574 ?        00:00:00 xfce4-power-man
 1576 ?        00:00:00 nm-applet
 1588 ?        00:00:00 xfce4-volumed
 1592 ?        00:00:00 gvfsd
 1596 ?        00:00:00 gconfd-2
 1598 ?        00:00:00 polkit-gnome-au
 1601 ?        00:00:00 gvfs-fuse-daemo
 1606 ?        00:00:00 xfce4-menu-plug
 1610 ?        00:00:54 pulseaudio
 1612 ?        00:00:00 rtkit-daemon
 1616 ?        00:00:01 notify-osd
 1618 ?        00:00:01 xfce4-terminal
 1624 ?        00:00:00 gnome-pty-helpe
 2700 ?        00:00:27 exaile
 2703 ?        00:00:00 gvfsd-http
 2754 ?        00:00:00 udevd
 2755 ?        00:00:00 udevd
 2774 ?        00:00:00 flush-8:0
 3033 ?        00:00:00 gvfsd-trash
 3035 ?        00:00:00 gvfs-gdu-volume
 3037 ?        00:00:00 udisks-daemon
 3038 ?        00:00:00 udisks-daemon
 3040 ?        00:00:00 gvfs-afc-volume
 3045 ?        00:00:00 gvfs-gphoto2-vo
 3068 ?        00:00:00 mount.ntfs
 3073 ?        00:00:00 flush-8:16
 3076 pts/1    00:00:00 bash
 3112 pts/1    00:00:00 ps


объясните собственно что это за процессы(чего делают, особенно из первых десятков) и какие из них можно убрать(ну кроме apache и fbserver - это я знаю что такое :) ) и собственно как убрать, а то меня почему то смущает такое количество процессов, не знаю почему, но кажется что можно спокойно обойтись без доброй половины из них, а то и 2/3. А то загрузишь какой-нибудь Slitaz смотришь, а там всего десяток процессов и всё работает, тут же кучище непролазное :)

P.S. система Xubuntu 10.10

xterro
()

Lubuntu 10.04 Иногда не завершаются процессы

Форум — General

Доброго всем времени суток... Иногда замечаю, что после того как я закрыл приложение в ps -A оно всё равно болтается, например закрыл Chromium, делаю ps -A смотрю, болтаются все мои «вкладки», приходится принудительно делать им kill, причём это может быть и например с Thunar-ом, пока правда на этих приложениях чаще всего замечал, за другими ещё понаблюдаю, мож кто сталкивался с таким, что это, откуда ноги растут и как лечить?

xterro
()

[textview_expose] Тормоза после скролига...

Форум — Development

Доброго всем времени суток... Доделываю простенький текстовый редактор, добавил нумерацию строк для GtkTextView, для этого подцепился к событию expose виджета и в нём рисую номера:

gboolean textview_expose(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
	GtkTextView * 	textview 	= GTK_TEXT_VIEW(widget);
	GdkWindow 	* 	win ;
	cairo_t 	* 	cr 			= gdk_cairo_create(event->window);	
	GtkTextIter 	iter; 
	int 			layout_width;
	int 			col 		= 5; // line number rectangle will be include 5 digits only 
	int 			margin 		= 5;
	char 		* 	empty_str 	= g_strnfill(col, 0x30);
	int 			yrange;
	int 			line_height;
	PangoLayout * 	layout 		= gtk_widget_create_pango_layout(widget, empty_str);
	g_free (empty_str);
	
	pango_layout_get_pixel_size(layout, &layout_width, NULL);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW (textview),
										 GTK_TEXT_WINDOW_LEFT,
										 layout_width+margin);
	
	win = gtk_text_view_get_window(textview, GTK_TEXT_WINDOW_LEFT);
	if (event->window != win)
		return FALSE;
	
	// draw left rectangle for line numbers 
	cairo_set_source_rgb(cr,0.90,0.90,1);
	cairo_set_line_width(cr, 1);
	cairo_rectangle(cr, 0,event->area.y, layout_width+margin, event->area.height);
	cairo_fill_preserve(cr);
	// draw line numbers 
	cairo_set_source_rgb(cr,0.5,0.5,0.5);
	gtk_text_view_get_line_at_y(textview, &iter, event->area.y, NULL); 
	while(!gtk_text_iter_is_end(&iter))  { 
		gtk_text_view_get_line_yrange(textview, &iter, &yrange, &line_height); 
		gtk_text_view_buffer_to_window_coords(textview, GTK_TEXT_WINDOW_TEXT, 0, yrange, NULL, &yrange);
		int line_number = gtk_text_iter_get_line(&iter);  
		char * line_num_str = g_strdup_printf ("%d", line_number+1);
		pango_layout_set_text(layout, line_num_str, -1);
		int ph = pango_layout_get_height(layout);
		int pw = pango_layout_get_width(layout);
		pango_layout_get_pixel_size(layout, &pw, NULL);
		cairo_move_to(cr, layout_width-pw, yrange-ph);
		pango_cairo_show_layout (cr, layout);
		gtk_text_iter_forward_line(&iter); 
		g_free(line_num_str);
	} 
	cairo_destroy(cr);
	return FALSE;
}

TextView лежит в GtkScrolledWindow, код работает, номера строк выводятся, всё в порядке, проблема в том что если я начну скролом крутить вверх-вниз, то через некоторое время начинаются жуткие тормоза, начинает сильно тормозить интерфейс и шуршать винт. Вот думаю что не так сделал, в какую сторону покопать? :)

xterro
()

Что есть интерфейсы на Си?

Форум — Development

Доброго всем времени суток, интересует такой вопрос, как реализовать интерфейсы на Си(например как в С++ IApplication), как они вообще реализуются и что это будет, это будет какая-либо структура или просто набор функций? К примеру:

struct IApplication {

   void (*load)(void);
   void (*shutdown)(void);

};

Объясните на пальцах :)

xterro
()

CMake как подключить GTK в проект?

Форум — Development

Доброго всем времени суток, пытаюсь перенести проект на cmake, написал простенький скрипт:

cmake_minimum_required (VERSION 2.6) 
 
set (PROJECT sb) 
 
project (${PROJECT}) 

set (HEADERS 
	./src/main_window.h
	./src/main_window_cb.h
	./src/route.h
	./src/draw.h
	./src/values_window.h)
 
set (SOURCES 
	./src/main_window.c
	./src/main_window_cb.c
	./src/route.c
	./src/draw.c
	./src/values_window.c
	./src/sb.c) 
 
add_executable (${PROJECT} ${HEADERS} ${SOURCES} )

но при компиляции ругается что не «видит» хидеров и либов GTK, как их прописать в cmake? Погуглил, но что-то там какие-то страшные решения пишут, как я понял нужно какие-то модули использовать, FindGTK вроде, правда сумбурно себе всё это представляю, что и как, объясните а пальцах :)

xterro
()

И снова GtkTextView как делать подсветку... Какие мысли?

Форум — Development

Доброго времени суток, интересуют идеи и мысли по поводу того, как делать подсветку синтаксиса в GtkTextView, я вижу его так: 1) Создаём тег 2) идём по буферу и ищем слова которые нужно подсветить, при это получается что идём(парсим по одной букве). Например так: берём два итератора, начинаем проверять слово, первый итератор ставим вначале слова, второй продвигаем вперёд, при этом проверяем слово, если совпало с нужным(if, else, while... etc) переходим к п.3 если нет, идём дальше. Таким образом эта пара итераторов будет постоянно передвигаться по тексту. 3) Применяем тег к куску буфера «выделенного» итераторами

Соответственно всё это дело оформляем в одну функцию, которая работает со всем текстом в буфере, её можно вызвать при загрузке из файла, а как быть при вводе данных, когда я сам взял и вбил служебное слово(тот же if) на каждое нажатие вызывать эту функцию, чтобы она снова весь буфер шелестила? Или лучше ловить позицию курсора и от неё плясать влево и вправо, смотря что за слово вбиваем(получается способом по п.2).

У кого какие мысли на этот счёт?

xterro
()

[GtkTextView] «Замазываются» номера строк

Форум — Development

Доброго времени суток, сделал в gtktextview нумерацию строк, всё работает, но проблема в том что когда я проматываю текст скролом(ползунком сбоку) нумерация «смазывается», номера встают один на другой, стираются и т.д , достаточно развернуть окно или наоборот его свернуть и всё становится нормально, т.е виджет перерисовывается и всё становится ок, gtktextview лежит в gtkscrolledwindow, как лечить? Добавлять в обработчике scroll-child вызов функции отрисовки textview-a?

Вот код события перерисовки gtktextview:

gboolean textview_expose(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
	cairo_t 	* 	cr 			= gdk_cairo_create(event->window);	
	GtkTextView * 	textview 	= GTK_TEXT_VIEW(widget);
	GtkTextIter 	iter; 
	int 			layout_width;
	int 			col 		= 4; /* line number rectangle will be include 4 digits only */
	int 			margin 		= 5;
	char 		* 	empty_str 	= g_strnfill(col, 0x30);
	int 			yrange;
	int 			line_height;
	PangoLayout * 	layout 		= gtk_widget_create_pango_layout(widget, empty_str);
	
	g_free (empty_str);
	pango_layout_get_pixel_size(layout, &layout_width, NULL);
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview), layout_width+margin+1);
	/* draw left rectangle for line numbers */
	cairo_set_source_rgb(cr,0.85,0.85,1);
	cairo_set_line_width(cr, 1);
	cairo_rectangle(cr, 0,event->area.y, layout_width+margin, event->area.height);
	cairo_fill_preserve(cr);
	/* draw line numbers */
	cairo_set_source_rgb(cr,0.5,0.5,0.5);
	gtk_text_view_get_line_at_y(textview, &iter, event->area.y, NULL); 
	while(!gtk_text_iter_is_end(&iter)) { 
		gtk_text_view_get_line_yrange(textview, &iter, &yrange, &line_height); 
		int line_number = gtk_text_iter_get_line(&iter);  
		char * line_num_str = g_strdup_printf ("%d", line_number+1);
		pango_layout_set_text(layout, line_num_str, -1);
		int ph = pango_layout_get_height(layout);
		int pw = pango_layout_get_width(layout);
		pango_layout_get_pixel_size(layout, &pw, NULL);
		cairo_move_to(cr, layout_width-pw, yrange-ph);
		pango_cairo_show_layout (cr, layout);
		gtk_text_iter_forward_line(&iter); 
		g_free(line_num_str);
	} 
	cairo_destroy(cr);
	return FALSE;
}
xterro
()

[cairo] толщина линии, как лечить?

Форум — Development

Доброго времени суток, рисую с помощью каиро линию и устанавливаю её толщину с помощью функции cairo_set_line_width (cr, 1), но это не помогает, линиия всё равно остаётся толстой, мож кто сталкивался с таким, как лечить?

 

xterro
()

[GtkTextView] Как сдвинуть вывод текста?

Форум — Development

Hi all! Как в GtkTextView сделать чтобы текст выводился(ну и вводился тоже) не у левого края, а со смещением от него(например на 1 см, в «сантиметре хочу отрисовать полоску с нумерацией строк»)?

xterro
()

[IceWM] Как добавить интерактивность?

Форум — Desktop

Доброго всем времени суток, как в IceWM добавить интерактивность, чтобы менюшки раскрывались по наведению мышки? А то приходится кликать по пункту меню чтобы субменю открыть?

 

xterro
()

bmpanel2 есть ли события?

Форум — Desktop

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

xterro
()

FVWM сколько же он памяти жрёт?

Форум — Desktop

Погуглил тут на досуге, не могу найти нормального сравнения, сколько же памяти есть FWVM, больше аль меньше чем например те же openbox, fluxbox и т.д. Поделитесь своими наблюдениями, как оно? :)

xterro
()

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