LINUX.ORG.RU

Сообщения age

 

Аппараты от Fly: насколько они надежны?

Сабж. Ищу замену текущему Nokia E65, приглянулась пара моделей от Fly: IQ440 и 442. Хорошее оснащение за свою цену, но знакомые напугали страшилками про ненадежность телефонов этого производителя, дословно: «больше года ни один из виденных аппаратов не прожил».

Интересно мнение лоровских экспертов по стресс-тестированию телефонов, также нужны истории успеха и неуспеха в долгосрочном использовании сабжа. Условия использования весьма мягкие, текущий аппарат за четыре года из видимых повреждений имеет только стертое покрытие джойстика и камеры.

Перемещено Dimez из talks

 , ,

age
()

В чем рисовать функциональные схемы?

Привет, ЛОР!

Курсач сам не сделается, а поэтому есть надобность нарисовать схему на логических элементах. Выглядеть должно вот так: http://dl.dropbox.com/u/9838488/scheme.jpg

Насколько мне известно, схема на фотографии рисовалась в Visio. А в чем подобное нарисовать под gnu/linux?

Уже попробовал: OOo/Libreoffice Draw, Dia, KTechlab, gEDA/gschem, xcircuit, logisim. Пока остается Inkscape (знаю, что не для того, но небольшую схему можно и осилить), либо поставить на оффтопик Visio.

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

Курсач оформляется в латексе, но TikZ и подобные не предлагать — слишком сложно.

age
()

[C][FIFO] Чатик, не ходят данные

Пытаюсь запилить чатик между двумя процессами, используя 2 FIFO: в первое FIFO первый запущенный процесс пишет, из второго читает. Второй запущенный - наоборот.
Определение первый-второй работает, а вот данные ни один процесс не читает. Происходит зависание на «reading». ЧЯДНТ?


#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>

#define RFIFO ".rfifo"
#define WFIFO ".wfifo"

int main(void)
{
  FILE *rf, *wf;
  int rd, wd;
  char buf[1024];

  mknod(WFIFO, S_IFIFO | S_IRWXU, 0);
  mknod(RFIFO, S_IFIFO | S_IRWXU, 0);

  wd = open (RFIFO, O_WRONLY | O_NONBLOCK);
  if ((wf = fdopen (wd, "w")) == NULL) /* если никто не читает, вернет NULL. если читают - процесс второй, так и используем для записи */
    {
      close (wd);
      rf = fopen (RFIFO, "r");	/* блокируется до открытия на запись */
      wf = fopen (WFIFO, "w");
      printf ("first. FIFO open.\n");
    }
  else
    {
      sleep (1); /* во избежание одновременного открытия двумя процессами */
      rf = fopen (WFIFO, "r");
      printf ("second. FIFO open.\n");
    }

  while(1)
    {
      if (fgets (buf, 1024, stdin) != NULL)
      	{
      	  if (fputs (buf, wf) != EOF)
	    printf ("put\n");
      	}
      printf ("reading\n");
      if (fgets (buf, 1024, rf) != NULL)
      	{
      	  printf ("%s", buf);
      	}
      printf ("read\n");
    }
  
  fclose (rf);
  fclose (wf);
  
  return EXIT_SUCCESS;
}

 ,

age
()

[PDF] Страницы разного размера?

Сгенерировал тут через LaTeX/ESKDX, в документе А4 есть страница А3. В Evince нормально не показывается, обрезано. Нагуглил только, что адобовский Acrobat может такое печатать. А чем бы посмотреть нормально?

 

age
()

Как передать пароль на запароленный HDD?

Привет, ЛОР!

Имеется 2.5" WD из мертвого ноута, запароленный. Пароль известен - устанавливал его я. При попытке подключения к стационарнику - диск определяется, но ничего насчет пароля в BIOS нет. При подключении через eSATA-карман к ноуту пароль ввести тоже негде, в dmesg ошибки.

В замешательстве, прошу помощи.

age
()

[выбор-тред] Помогите выбрать из нескольких моделей ноутов

Привет, ЛОР!

Присматриваю ноут, пока что есть три потенциальных кандидата, нужны мнения:

  • HP ProBook 6555b - хорош надежным корпусом и матовым экраном
  • HP ProBook 4520s - здесь оснащение получше
  • ASUS N53Jg - оснащение на уровне, смущает клавиатура и способ крепления дисплея (на умершем Studio такие крепления порастрескивались)

UP: HP ProBook 4520s

ThinkPad, которые часто рекомендуют - рассматривать не хочу, дороговаты. Возможны другие варианты с потолком в $900.
Ах да, Linux при том, что его я первым делом поставлю на новенький ноут.

age
()

[gnome] Пункты меню для несуществующего софта

Привет, ЛОР!
Пришлось на днях запускать TeamViewer чтобы помочь родителям. Поделие это идет в комплекте с вайном. После запуска в контекстном меню появились пункты типа iexplore и т.п., хотя в системе вайн не установлен. Выглядит вот так. Что делать?

 

age
()

[железо][кривые руки] чем заменить термопрокладки?

Привет, ЛОР. Ищу спасения от собственной глупости и криворукости.
Некоторое время назад, я решил немного «охладить» свой ноут чисткой системы охлаждения. Сняв радиатор, я обнаружил, что между ним и некоторыми чипами есть небольшие кусочки чего-то, похожего на резину. Очевидно, термопроводящего. Кусочки оказались хрупкими и для повторной установки не подходят. Сейчас вместо них «бутерброды» из марли и термопасты.
Где купить замену уничтоженным прокладкам - не нашел. Посоветуйте. Я вот подумываю о медных пластинках.

tl;dr - чем заменить термопроводящую резину между радиаторами и чипами? такой же резины уже не достать.

Линукс при том, что ужасно тормозит когда от перегрева включается троттлинг.
Ах, да, ноут - Dell Studio 1535.

 ,

age
()

[лоргугл / посоветуйте] модем dsl + wifi

Привет, ЛОР!
Посоветуй, пожалуйста, производителя или конкретную модель девайса, который бы мог подключаться по dsl и раздавать интернеты по wifi. Интересуют именно мнения опробовавших ту или иную модель. На данный момент есть нечто от d-link, с глупым тормозящим интерфейсом.
Плюсом была бы возможность подключить по usb и расшарить флешку или хард.

age
()

[C] segfault при модификации строки

Привет, ЛОР! Пишу для разминки калькулятор. Дописался вот, что оно падает, хотя вроде-бы я в других программах делал так же, ничего не падало.

Погуглил бы, да не знаю, что именно нужно. Подскажите, пожалуйста.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

double
next_expr (char expr[])
{
  double tv, r;
  char *ns;
  size_t p, len;
  unsigned int act;
  
  tv  = 0;
  r   = 0;
  len = strlen (expr);
  ns  = NULL;
  enum  ACT {ADD, SUB, MUL, DIV};
  
  switch (expr[0])
    {
    case '+':
      act = ADD;
    case '-':
      act = SUB;
    }
  
  for (size_t i = 1; i < len; i++)
    {
      
      if (ns == NULL && isdigit (expr[i]))
        ns = &expr[i];
      else
        if (isspace (expr[i]))
          {
            printf ("%d\n", i);
            expr[i] = '\0';
            sscanf (ns, "%lf", &tv);
            switch (act)
              {
              case ADD:
                r += tv;
              }
            ns = NULL;
          }
    }
  return r;
}

int
main (void)
{
  char *expr = "+ 1 2 3 ";
  
  printf ("%lf\n", next_expr(expr));
  return EXIT_SUCCESS;
}

age@normandy:~/Sources$ ./nc 
1
Segmentation fault

-----

Starting program: /home/age/Sources/nc 

Program received signal SIGSEGV, Segmentation fault.
0x08048547 in next_expr (expr=0x8048694 "+ 1 2 3 ") at nc.c:36
37		    expr[i] = '\0';

 

age
()

[Xlib] Список окон через XQueryTree, segfault

Привет, ЛОР!

Помоги, пожалуйста, искать ошибку в коде. Или подскажи, как сделать лучше. Хочу получить список окон. Получить-то получаю, но заодно и segfault там, где вроде-бы должно быть root window.

Еще вопрос: XQueryTree() возвращает у меня около 20 дочерних окон для root window, хотя вижу я только 3. Откуда остальные, что это за окна?

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <X11/Xutil.h>

static Display * dpy;
static Window root;

int main(int argc, char ** argv)
{
  dpy = XOpenDisplay (NULL);
  assert (dpy);
  root = DefaultRootWindow (dpy);
  assert (root);

  Window rw, pw, *cw, *wlist;
  unsigned int nchildren, i, nwindows = 0, w_indexes[256];
  XWindowAttributes wa;

  assert (XQueryTree (dpy, root, &rw, &pw, &cw, &nchildren));
  for (i = 0; i < nchildren; i++)
  {
    assert (XGetWindowAttributes (dpy, cw[i], &wa));
    if (wa.map_state == IsViewable)
    {
      /* сохраню номер видимого окна в общем списке окон */
      w_indexes[nwindows++] = i;
    }
  }
  printf ("%d windows:\n", nwindows);
  wlist = malloc (sizeof (Window) * nwindows);
  assert (wlist);
  for (i = 0; i < nwindows; i++)
  {
    wlist[i] = cw[w_indexes[i]];
  }
  for (i = 0; i < nwindows; i++)
  {
    XTextProperty wp;
    XGetWMName (dpy, wlist[i], &wp);
    printf ("%s\n", wp.value);
  }

  XCloseDisplay (dpy);
  return EXIT_SUCCESS;
}

Результат:

% gcc pwkl.c -o pwkl -lX11 -ggdb3
% ./pwkl 
4 windows:
Xlib Programming Manual: XQueryTree - Chromium
emacs@lamarr
evgeny@lamarr:~/devel
Ошибка сегментирования

 

age
()

[жаббер] [лоргугл] посоветуйте интересные жаббер-комнаты

Сабж. А то скучно стало.

 

age
()

[велосипед] Файловый менеджер: «С» или Ruby?

Доброго времени суток всем.

Исторически сложилось, что ни один из опробованных мной файловых менеджеров не понравился абсолютно и полностью, и помочь в разработке особо понравившихся я по некоторым причинам не хочу или не могу. Таким образом хочу покататься.

Писать я могу на двух языках: C и Ruby, и мне сложно решить какой из них использовать. Программа будет консольной, поэтому для интерфейса будет использована библиотека ncurses. В применении одного из вышеназванных языков, я вижу следующие достоинства и недостатки:

Ruby:

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

«C»:

  • Тепло и уютно
  • Пишется уже не так быстро, как на Ruby, но, возможно, большая степень контроля чего-то стоит в данном конкретном случае
  • Работает еще как быстро, но зачем мне это?
  • Расширять немного сложнее, чем с Ruby
  • Хочу поупражняться в этом языке

Хотелось бы услышать мнения. Очень вероятно что я упустил что-то важное в своих рассуждениях, если это так - дополните пожалуйста.

Прошу не предлагать изучить некий язык Х, который для поставленной задачи лучше С и Ruby вместе взятых, потому как предвижу флейм «какой язык круче для всего-всего».

 

age
()

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