LINUX.ORG.RU

>http://xneur.narod.ru/

sf.net уже не катит? :)

P.S. так и не понял, зачем на сайте описание на английском :)

P.P.S. с%ки, kneur загубили... =( GTK - в домну. Зачем было портить нормальную QT-шную софтину?

Ramen ★★★★
()

Главное, чтобы Альфекс свой код в проект не контрибутил... Анекдоты на Си все помнят?

anonymous
()

И зачем это надо?

ssh2 ★★★★★
()
Ответ на: комментарий от anonymous

Сча запробуем. Вообще когда проект стал "русским", то пользоваться им стало проще. Хотя до Punto Switcher ему очень далеко.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

> Главное, чтобы Альфекс свой код в проект не контрибутил... Анекдоты на Си все помнят?

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

anonymous_incognito ★★★★★
()

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

Burbaka ★★
()
Ответ на: комментарий от Burbaka

А она плагином к gnome-keyboard-applet или как он называется умеет прикидываться?

dn2010 ★★★★★
()
Ответ на: комментарий от Burbaka

Не будет... Во второй и третьей же функции, на которые пришло в
голову взглянуть, имеем утечку памяти:

Страшно подумать, что в остальном коде...

eReport *eReport_make (status eType, char *eString, void *eData, char *_FILE, num _LINE)
{
  eReport *ereport = NULL;

  ereport = (eReport *) xnmalloc (sizeof (eReport));

  ereport->eString = (char *) xnmalloc (sizeof (char) * strlen (eString) + 1);

  memset (ereport->eString, NULLSYM, strlen (eString) + 1);
  memcpy (ereport->eString, eString, strlen (eString));
  ereport->eType = eType;
  if (eData != NULL)
    memcpy (&ereport->eData, eData, sizeof (void *));
  else
    ereport->eData = NULLSYM;
  ereport->eLoc.filename = _FILE;
  ereport->eLoc.linenum = _LINE;

  return ereport;
}

status eReport_free (eReport * ereport)
{
  if (ereport)
    free (ereport);
  else
    return WARNING;
  return SUCCESS;
}

anonymous
()
Ответ на: комментарий от anonymous

И в трех подряд строчках strlen(eString). Вот, оказывается, зачем нужны мощные компьютеры - выполнять один и тот же цикл по много раз.

Можно также обратить внимание на оригинальное присваивание указателя ereport->eData. Тоже, наверное, чтобы процессор не простаивал попусту.

В общем, анекдоты на Си продолжаются. А жаль.

anonymous
()

Юникод видимо тоже тулз не асилит o_O Собсно фдомну такие проги ибо смысла в них нет.

Metallic
()
Ответ на: комментарий от anonymous

>Зачем оно нужно?

Чтобы не тратить время на переключение раскладки. И чтобы не переписывать слово, если ошибся.

Только сабж пока ещё не слишком юзабелен. Когда догонит Punto по базовому функционалу - обязательно поставлю :)

KRoN73 ★★★★★
()

Ну чтож, по крайней мере, люди работают над проблемой..

MiracleMan ★★★★★
()
Ответ на: комментарий от Ramen

>sf.net уже не катит? :)

а оно там есть, но судя по всему в редакции другого автора.

fghj ★★★★★
()

На самом деле, гораздо интереснее было бы поиметь аналог вот этого: http://softforfree.com/programs/aml_maple-4050.html

Надо искоренять ПРИЧИНУ (юзеру лень перемещать взгляд к индикатору раскладки, который находится х.з. где), а не бороться со следствием.

anonymous
()
Ответ на: комментарий от anonymous

Да уж. Код ацкий.

Вот этот фрагментик порадовал 

memset (ereport->eString, NULLSYM, strlen (eString) + 1);
memcpy (ereport->eString, eString, strlen (eString));

Это вообще - перл 

memcpy (&ereport->eData, eData, sizeof (void *));

Вот это заставляет немного улыбнуться 

xnmalloc (sizeof (char) * strlen (eString) + 1)

Насчет утечки - надеюсь они удаляют память от ereport->eString в каком-нибудь отличном от eReport_free месте :) 


Но все равно! Прога то работает! У меня даже не упала еще ни разу. 

Burbaka ★★
()
Ответ на: комментарий от anonymous

> Не будет... Во второй и третьей же функции, на которые пришло в голову взглянуть, имеем утечку памяти:

Какие проблемы? Перепишут на жабе :)

anonymous
()
Ответ на: комментарий от anonymous

>>Надо искоренять ПРИЧИНУ

Сажать русский и английский переключатели на разные клавиши в X Типа, нажав левый Ctrl+Shift всегда уверен, что вводишь русские буквы, а правый - английские. Не знаю можно ли такое сделать в Х. Где-то такой патч я видел, но забыл где именно.
А ПунтоСвитчер я видел в каком-то отделении кибер-почты, который всегда переключался, когда я вводил пароль в Путти. После трех неудачных попыток я этот Пунто прибивал.

geekkoo
()
Ответ на: комментарий от geekkoo

> Сажать русский и английский переключатели на разные клавиши в X Типа, нажав левый Ctrl+Shift всегда уверен, что вводишь русские буквы, а правый - английские. Не знаю можно ли такое сделать в Х. Где-то такой патч я видел, но забыл где именно.

В KDE? :)

anonymous
()
Ответ на: комментарий от anonymous

Индикатор переключения раскладки это лишняя условность. Как и сами раскладки впрочем. Мне как пользователю гораздо удобнее вообще не думать о раскладках. Я набираю текст - машина сама угадывает на каком языке его нужно воспринимать. Если такой механизм работает правильно хотя бы на 95% я уже буду этим пользоваться.

Burbaka ★★
()
Ответ на: комментарий от anonymous

Не, вряд-ли. Я KDE вообще только на скриншотах видел ;)

geekkoo
()
Ответ на: комментарий от Burbaka

>>Мне как пользователю гораздо удобнее вообще не думать о раскладках.

Тебе все равно - говорить на английском или на русском?

geekkoo
()
Ответ на: комментарий от geekkoo

> Тебе все равно - говорить на английском или на русском?

Эээ... что-то я параллели не уловлю. Говорить это одно, а печатать это другое.

Burbaka ★★
()
Ответ на: комментарий от Burbaka

> Индикатор переключения раскладки это лишняя условность. Как и сами раскладки впрочем. Мне как пользователю гораздо удобнее вообще не думать о раскладках. Я набираю текст - машина сама угадывает на каком языке его нужно воспринимать. Если такой механизм работает правильно хотя бы на 95% я уже буду этим пользоваться.

Это хорошо, когда один только человеческий текст пишешь. В чатах, например. А при программировании - одна херня получается.

anonymous
()
Ответ на: комментарий от Burbaka

>>>что-то я параллели не уловлю. Говорить это одно, а печатать это другое.

Потрясён. Предполагается, что в том и другом случае результат должен быть примерно одинаковый - передача осмысленной информации. Даже не знаю, как это объяснить :(

geekkoo
()
Ответ на: комментарий от anonymous

> Это хорошо, когда один только человеческий текст пишешь. В чатах, например. А при программировании - одна херня получается.

Это да. Поэтому такая программа должна иметь возможность избирательного применения. Например, в текстовых редакторах, где я пишу документацию мне нужна такая возможность, также нужна такая возможность в браузерах, в jabber-клиенте, в почтовой программе. В среде разработки автоматическое переключение нафиг не надо.

Burbaka ★★
()
Ответ на: комментарий от geekkoo

> А ПунтоСвитчер я видел в каком-то отделении кибер-почты, который всегда переключался, когда я вводил пароль в Путти. После трех неудачных попыток я этот Пунто прибивал.

У Пунто есть полезная фича - список приложений, в которых он не работает. Заносишь туда putty, emacs, среды разработки - и все хорошо.

anonymous
()
Ответ на: комментарий от geekkoo

> Потрясён. Предполагается, что в том и другом случае результат должен быть примерно одинаковый - передача осмысленной информации. Даже не знаю, как это объяснить :(

Вспоминается: ... телефона телефона, чукча кушать хочет ... :)

Попробуй как-нибудь поговорить со своим компьютером, мобильным телефоном или микроволновкой по душам. Попроси их что-нибудь сделать для тебя :)

Печать - способ передачи информации от человека машине, разговор - способ передачи информации от человека человеку. Вот в этом разница.

Информация о текущей раскладке это информация которая нужна компьютеру чтобы адекватно воспринимать то, что я печатаю. Для меня эта информация совершенно лишняя. Она не несет никакой полезной нагрузки. Когда я переключаю раскладку я делаю ненужную работу.

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

Burbaka ★★
()

Что ж, пора мне как разработчику ответить на текущие вопросы.
1. Зачем надо? Многим удобно. В первую очередь мне. А кто не хочет, тот не пользуется.
2. Переключение в IDE. Для xneur есть список обрабатываемых программ, просто не включайте туда IDE, и все.
3. Кусок кода с утечками. Если бы пишущий об утечках взял на себя труд посмотреть исходники внимательно, то обратил бы внимание, что этот кусок кода не используется. Это просто некоторые наброски на будущее. В прочем, я не утверждаю, что утечек нет.
4. Местечковая кривость работы. Да, местами есть недочеты. Если принять во внимание то, что я в линуксе всего около 8 месяцев, а на Си не программировал со второго курса института, то результат, на мой взгляд, довольно неплох. :)

Crew
()
Ответ на: комментарий от Burbaka

> В конце концов, когда я разговариваю с человеком и употребляю иностранный термин я же не говорю "внимание сейчас я перейду на английский язык", говорю термин, а потом "внимание сейчас я перейду на русский"

Человеческая речь и набивание текста - вещи абсолютно несопоставимые. В речи используюется интонация, громкость, скорость и пр. Компьютер всего этого не понимает - поэтому и нужны костыли типа переключалки. А что касается иностранных слов, то Вы, видимо, не в курсе. Объясняю. Человек подсознательно сперва пытается идентифицировать каждое произнесённое слово по слуховой памяти, и только уже потом проверяет правильность реконструкции по смыслу. При этом язык распознаётся на довольно поздней стадии, а при быстрой речи может и не распознаваться вовсе. Например, когда я говорю быстро на немецком, у меня начинают к месту и не к месту проскакивать английские слова. Я сам этого не замечаю - и, что самое важное, не замечает собеседник (немцы), я убеждался в этом много раз. Просто потому, что мозгом эти слова воспринимаются просто как синонимы, безотносительно к языку. А когда надо выделить иностранное слово, немцы обычно используют правила произношения (акцент) соответствующего языка (restaurant, orange, sceduling и пр.), поэтому слово легко распознаётся без "переключения раскладки". Повторяю: прямое сравнение неуместно.

anonymous
()
Ответ на: комментарий от Burbaka

>Информация о текущей раскладке это информация которая нужна компьютеру чтобы адекватно воспринимать то, что я печатаю. Для меня эта информация совершенно лишняя.

Экономия на спичках получается - всего одно движение переключателя, в том случае если ты точно знаешь в какую сторону переключаешь - в английскую или в русскую. С toggled переключателем раскладки проблемы возникают не потому, что трудно его лишний раз нажать, а из-за того, что забываешь в каком состоянии он до этого находился, а глянуть на индикатор раскладки - рассеивает внимание. С двумя переключателями такой проблемы не возникает, поскольку автор всегда знает на каком языке он сейчас собирается выступать, и нет проблем с лишним нажатием клавиши для перевода клавиатуры именно в этот язык, независимо от того какой был выбран до этого.

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

С таким же успехом можно набирать в текст в русском или английском транслите. Кому надо поймут.

geekkoo
()
Ответ на: комментарий от Crew

> Кусок кода с утечками. Если бы пишущий об утечках взял на себя труд посмотреть исходники внимательно, то обратил бы внимание, что этот кусок кода не используется. Это просто некоторые наброски на будущее. В прочем, я не утверждаю, что утечек нет.

Это не оправдание. Мне сложно поверить, что потом, когда этот набросок будет включаться в активный код, ты примешься проверить корректное освобождение им памяти (и просматривать его весь на предмет наличия прочих огрех). Скорее всего, нет. Отсюда вывод: писать надо сразу нормально, а не потом приделывать костыли. Либо просто делать комментарии для себя: "в этом месте я собираюсь позже реализовать следующее". Так, кстати, все нормальные программисты и делают.

anonymous
()
Ответ на: комментарий от anonymous

Да я вроде и не возражаю.

Короче: человек сам понимает в зависимости от контекста и произношения, на каком языке говорит его собеседник (если он конечно знает этот язык).

Так и пусть компьютер также умеет, только применительно к печати и в соответствии с другими критериями. Разве это плохо ? Я "за". Если будет нормальный процент "угадывания", то я буду пользоваться этой функцией.

Burbaka ★★
()
Ответ на: комментарий от Crew

Уважаемый Crew

Я пока не смотрел код подробно, но есть несколько вопросов:

1. Я правильно понял, что лицензия - GPL? Т.е. возможно подлинковывать к другому GPL-ному коду? Не планируется ли выделение отдельной библиотеки?

2. Насколько алгоритмы завязаны на конкретный набор поддерживаемых языков?

3. Не было ли идеи использовать хотя бы glib (не gtk!) - все-таки структуры данных и портируемые функции там намного богаче, чем в обычном позиксе и иксах? Накладные расходы - минимальны.

4. Где почитать об используемых алгоритмах?

Да, СПАСИБО за неиспользование плюсов;)

svu ★★★★★
()
Ответ на: комментарий от Burbaka

> Так и пусть компьютер также умеет, только применительно к печати и в соответствии с другими критериями. Разве это плохо ? Я "за". Если будет нормальный процент "угадывания", то я буду пользоваться этой функцией.

Никто не спорит. Если функция удобна многим - она должна быть реализована, но быть отключаемой и настраиваемой. Это то, что обожает игнорировать GNOME, часто пытаясь навязать ВСЕМ свой собственный (единственно правильный, разумеется) взгляд на то, как и что надо делать.

anonymous
()

Странно, в KDE 3.5.5 при включении/выключении роняет kdesktop и kicker :(

zodiac ★★
()
Ответ на: комментарий от svu

Относительно gxneur.
Это даже не поделка - это откровенная халтура :( Абы было.
Сам же xneur не завязан на DE. Напишите свой фронт-энд, люди будут благодарны ;)

Crew
()
Ответ на: комментарий от Crew

xneur как отдельная прога меня не очень интересует. Хочется либку с внятным документированным API;) И как насчет остальных вопросов?

svu ★★★★★
()
Ответ на: комментарий от Crew

Поразило в моск, кстати -

Removing gxneur ...

dpkg - warning: while removing gxneur, directory `/usr/local' not empty so not removed.

Это у меня апт сглючил или шуточки? :)

zodiac ★★
()
Ответ на: комментарий от svu

Ответы на несколько вопросов:

>> 1. Я правильно понял, что лицензия - GPL? Т.е. возможно подлинковывать к другому GPL-ному коду? Не планируется ли выделение отдельной библиотеки?
Да, на здоровье.

>> 2. Насколько алгоритмы завязаны на конкретный набор поддерживаемых языков?
Алгоритмы не завязаны - это же алгоритмы :)

>> 3. Не было ли идеи использовать хотя бы glib (не gtk!) - все-таки структуры данных и портируемые функции там намного богаче, чем в обычном позиксе и иксах? Накладные расходы - минимальны.
Богаче, а смысл?

>> 4. Где почитать об используемых алгоритмах?
Да на этом форуме в разделе разработки поищи, я там писал когда-то.

Crew
()
Ответ на: комментарий от zodiac

> dpkg - warning: while removing gxneur, directory `/usr/local' not empty so not removed.

Просто ни один вменяемый пакет не ставится в /usr/local. Этот был единственным. Но что-то там все-таки есть (поставленное руками). APT, глядя в базу, видит, что /usr/local можно удалять. Но не удаляет, так как непустая.

(Кстати, deb без зависимостей, это типа "Сделаем слаку изо всего, что видим"?)

anonymous
()
Ответ на: комментарий от zodiac

>> Это у меня апт сглючил или шуточки? :)

Может apt, а может и checkinstall что подкинул...

Crew
()
Ответ на: комментарий от Crew

> Да, на здоровье.

Дык библиотечка-то будет, чтоб было с чем линковать?

> Алгоритмы не завязаны - это же алгоритмы :)

А реализация?;)

> Богаче, а смысл?

Ну, ЕСЛИ будет нормальный API - хорошо б, чтоб передаваемые структуры данных были внятными...

> Да на этом форуме в разделе разработки поищи, я там писал когда-то.

Спасиб, бум поискать.

svu ★★★★★
()
Ответ на: комментарий от svu

Библиотечки я делать не умею :( Про свой опыт я уже писал.
Реализация в xneur в данный момент движется к языко-независимости, но без сильного желания.

Crew
()
Ответ на: комментарий от Crew

Библиотечку надо б сделать. Надеюсь, Вы понимаете это так же как и я;) Если что - могу помочь с автотулзами. Но API таки должно быть предложено Вами;)

Да, а языковую независимость надо б обязательно, если кто меня спрашивает.

svu ★★★★★
()
Ответ на: комментарий от geekkoo

> А ПунтоСвитчер я видел в каком-то отделении кибер-почты, который всегда переключался, когда я вводил пароль в Путти. После трех неудачных попыток я этот Пунто прибивал.

а просто указать, что в putty не срабатывать не пробовал?

vadiml ★★★★★
()
Ответ на: комментарий от zodiac

> Removing gxneur ...

> dpkg - warning: while removing gxneur, directory `/usr/local' not empty so not removed.

> Это у меня апт сглючил или шуточки? :)

Это мстя за попытку удаления такой полезной программы :)

anonymous
()
Ответ на: комментарий от vadiml

Компьютер же не мой. Говорю же, что я за ним сидел в отделении Кибер-почты. И не настолько хорошо я в виндовз разбираюсь, чтобы в нем чего-то там настраивать. Мне бы побыстрее через ssh и в родную bash консоль ;)

geekkoo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.