LINUX.ORG.RU

translate 0.3

 


1

4

Состоялся релиз программы translate, делающей парсинг словарей stardict намного удобнее.

Улучшения:

  • настраиваемое цветовое оформление;
  • постраничный вывод.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: DeadEye (всего исправлений: 3)

Ответ на: комментарий от u0atgKIRznY5

А я буду знать больше

А вот и нет, потому что ты будешь тратить кучу времени на рутину, которую в сишке приходится выполнять. А в моём примере человек решит далеко не одну задачу (+++опыт), освоит, как ты правильно заметил, разные алгоритмы и стандартные функции, и у него ещё останется время почитать статьи, книги, или же покодить ещё. Ну или ничего из этого, но такая возможность будет.

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

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

Да что ты там напишешь, какой нибудь медленный код? Если ты незнаешь как может программа выполнятся быстрее, то твоё спасение наверное только от того, что кто-то написал язык программирования на языке программирования си и ассемблера, тот, который знает как увеличить производительность, чтобы любая программа выполнялась ещё быстрее.

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

Если ты незнаешь как может программа выполнятся быстрее

Не переживай, знаю, и использую, когда оно оправдано. Ты непробиваемо упёрт, уж не знаю, намеренно или нет

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

Хорошо, как из неё вывести в файл?
Я хочу результат сохранить. Без иксов у меня нету курсора, чтобы выделить и скопировать. Я пишу translate утконос > ./platypus_article, я внезапно получаю упс, ибо программа чего-то ждёт там в своём мирке без нормального ввода и вывода.

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

Например, из последнего, что писал именно на сишке — посылка health-статусов на сервер с непременным условием — уложиться в один 508-байтный пакет. Тут, в моём случае это оправдано, т. к. я не знаю, можно ли было реализовывать это в виде демона на чём-то более скриптовом, а изучение вопроса могло занять больше времени. Тестер памяти, помнится, писал на сишке. Остальное предпочитаю писать на плюсах либо скриптах, в зависимости от задачи.

Это что-то меняет?

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

Это имеет смысл явно не в твоём случае. У тебя не высоконагруженная система, обрабатывающая множество соединений (да и там-то на C разве что самый-самый backend писать станут, типа самого сервера), у тебя не математическое ПО, которое что-то считает и разница выльется в четыре недели, не математическая библиотека, откуда функция будет использоваться в двойном цикле где-нибудь в обработке сигнала. Это даже не какое-то ПО, которому банально нужно быть быстрым, типа операционной системы, видеокодека и т. д. От того, что оно выполняется на 100 мс быстрее (а я сомневаюсь) в этом мире ничего не изменится. Никто и не заметит.

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

Они как захотели, так и написали. Чего хотели, того и получили. Я что хотел, то и реализовал. И зачем тебе less, если в моей программе есть данный функционал? Ещё раз напоминаю, зачем сравнивать функции с программами. Вот что ты хочешь написать.

Итак. Программа считывает команды из файла. Надо использовать cat, зачем использовать мою функцию, если можно использовать cat. А так, чтобы отсортировать команды нужна cut. Ещё sed, less, короче, ты из всего этого списка только less узнал. Так много чего можно придумать. Ты стал бы использовать мою программу, если бы тебе нужно было бы использовать вместе с cat и grep? Я сделал чтобы программа была удобная. Можешь свою написать и использовать с less. У меня лучший код.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от evilface

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

u0atgKIRznY5
() автор топика
Ответ на: комментарий от evilface

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

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

Ты не столько ускорил программу, сколько накатал кучу говнокода, с которым тебе никто никогда помогать не станет. Да-да, предвижу, ты и не задавался целью, чтобы кто-то кроме тебя разрабатывал. Но что тогда новость делает в «Open Source»?

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

А что программа с исходным кодом должна быть не в open source? Как бы ты не назвал бы мой код, вряд-ли ты станешь удалять программу. Ну вот, ещё пример, насчёт ассемблера и си. Есть например новая операционная система, для нее нет никаких языков, кроме как ассемблера. Тогда нужно писать высокого уровня, чтобы хоть как то ускорить разработку. Вот я написал язык программирования си. Тут мне захотелось сделать ещё один язык программирования, на котором будет всё медленно выполняться, с другим синтаксисом. Зачем? Тогда чтобы написать ещё один язык, то я буду писать на си и ассемблере. Либо я использую си и ассемблер создавая новые программы. Наверное если ты был бы в этой операционной системе, ты бы сказал - что? А где другие языки программирования? Есть ли на чём можно программы запустить, которые будут медленней выполнятся? А то нужно загрузить систему, ведь мне быстрый код нужен когда нужен быстрый код, а не когда он нужен постоянно. Я буду использовать тормознутый код, а когда нужен будет быстрый код, то я буду использовать быстрый. У меня есть выбор использовать быстрый код и медленный. Но я буду использовать медленный код только потому, что на си пишут не пользовательские программы, только из-за этого я буду использовать программы тормознутые. А на си код выполняется лучше, хоть тебе и кажется что плохо написано.

Я не стану менять язык программирования для написания чего захочется.

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

Я правильно понимаю из твоих слов, что языки, отличные от C создаются лишь чтобы программы помедленней работали?

evilface ★★
()

Я и не думал, что там кто-то что-то править попытается.

Так подожди, как то странно, зачем ты мне навязываешь исправленные ошибки? На что ты претендуешь?

Жесть. Этот гад чуть права на авторство у ТСа не перетянул.

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

Python 3.
В плане разработки — быстрее.
А часы разработчика дешевле миллисекунд пользователя, в в большинстве случаев.

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

Эх. Я как-то раньше незнал как сделать random для числа на си, но знал как сделать на python'е. Я использовал случайность для того, чтобы выбрать видео файл, который запустится через линукс фреймбуфер при входе в систему. Когда я узнал как это делать на си, я стал использовать си. Программа начала выполнятся быстрее.

u0atgKIRznY5
() автор топика

Особенно эффектно было, это когда черная консоль 1920x1080. Зайдя в систему, в видео через фреймбуфер, взрывалась ядерная бомба, класно выглядело, наверное что нибудь в этом роде сделаю.

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

у моей программы нет аналогов

А вот это действительно посмешило.

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

Я могу. Если мне это будет надо. Но мне не надо, ибо просто не нужна подобного рода программа. Займёт это гораздо меньше строк, так как не придётся велосипедить парсеры.

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

Кстати, есть ли какие-то доказательства, что твой код на сях работает быстрее стандартной библиотеки питона? Кроме фанатичной веры, что сишка быстрая?

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

Скажи, оптимизатор, зачем ты зануляешь память ( https://github.com/xverizex/translate/blob/master/main.c#L365 ), если копируешь туда нуль-терминированную строку? Чем в данном случае calloc() вместо malloc() простительней высокоуровнего языка против сей?

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

Тем более, у моей программы нет аналогов.

Сто лет перевожу слова в консоли, а тут такая новость!

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

вот твой вариант

./translate слово | less -R

Можно ж просто изнутри программы $PAGER вызывать (если он установлен).

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от u0atgKIRznY5

И зачем тебе less, если в моей программе есть данный функционал?

Твой самописный пейджер умеет, например, искать вперёд/назад по регуляркам? Отображать только те строки, которые совпадают с шаблоном?

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

Программа не занимается форматированным дублированием существующего словаря в новый файл.

Правильно, для этого предназначено перенаправление потоков в шелле. Только твоя программа с ними работать не сможет.

theNamelessOne ★★★★★
()

Судя по строкам 128, 133, 138

sprintf(target, "<k>%s</k>",word);

while (fgets(line, 1024,dictionary) != NULL){

if ((ptr = strstr(line, target))!=NULL){
твоя программа использует линейный поиск в словаре. На высокоуровневом языке ты мог бы применить более оптимальный алгоритм, в частности, с использованием файла индексов idx, который является частью словаря stardict.

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

Тогда наводящий вопрос: для чего были созданы плюсы, жаба и, допустим, тот же питон? Почему первые два стали отраслевыми стандартами, а на последнем пишут всё, что не лень, ведь есть же чудесная сишечка, на которой можно писать всё, что угодно и результат, судя по твоим словам, обязательно и всенепременно будет быстрее?

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

После этого я склоняюсь к мысли, что это всё же школьник

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

Он еще и не подумал что произойдет, если искомое слово между двумя 1024-байтными страницами.

mix_mix ★★★★★
()

Пацан, пиши на чистом Си. Быстрые алгоритмы поиска можно реализовать на любом языке, и необязательно это будет «оболочка stardict».

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

Тем более, у моей программы нет аналогов.

Своим несуществованием, видимо.

evilface ★★
()

Аффтар, пеши ысчо!

P.S. Модераторам зачет, повеселили народ :)

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

уважаемый про нет аналогов прочтите тут -> https://habrahabr.ru/post/69041/ это как минимум, момент еще один, вы говорите моя программа, моя программа, и что ? вы написали себе инструмент (который уже и реализован),но это не инфоповод для новости, ваш инструмент делает профит только вам, судя по комментам выше, этот инструмент используете только вы +- несколько знакомых. Вам тут объективно сказали, что у вас не так. Примите критику и исправите, а пока только видно, что это ваша программа (что извините, но напоминает Попова).

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

Судите по комментариям выше? Об этой программе долго бы никто не узнал, если бы я в новостях не сделал новость. Тем кому надо скорее всего обновили программу с гит хаба, тем кому скорее всего нужны score отписываются здесь. Новость может заинтересовать кого нибудь. А тем более новая версия, с новыми возможностями.

u0atgKIRznY5
() автор топика

Вот даже интересно стало...

Автор - это чукча-школьник ближе к младшим классам, которому поставили неуд по русскому языку и логике и теперь он пытается отыграться на программировании? Или же тролль под веществами, которого так и не отпустило, что он даже не поленился потратить несколько часов, что бы наваять поделие и создать репозитарий с ним? )))

anonymous
()

Да и вообще подозрительно как то, говорить о sdcv, которая как бы есть. Которую не получилось скомпилировать. Я чуть ли не как скрипт кидди запустил не проверив весь код. Но мой код нормальный. Главное работает. Тут даже просматривают некоторые, наверное если бы что нибудь подозрительное заметили, сразу бы отписались.

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

Аффтор пиши на лепру, там у тебя даже поклонники появятся

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

Об этой программе долго бы никто не узнал

О моих хелло-ворлдах тоже никто не знает, не беда.

Тем кому надо скорее всего обновили программу с гит хаба

Кому надо — отслеживают репозиторий. Упс.

тем кому скорее всего нужны score отписываются здесь.

Комментарии в новостях скора не дают.

Новость может заинтересовать кого нибудь. А тем более новая версия, с новыми возможностями.

Возможности сомнительны, в less можно было и раньше направить, опять же.

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

как собирал sdcv-то?

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

cetjs2 ★★★★★
()
Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от u0atgKIRznY5

Но мой код нормальный. Главное работает

Ты неправильно оцениваешь код на Си. «Работает» — на главный критерий. «Нормальный код» читаем. Ему не нужны ассемблерные вставки (за редким исключением, не у тебя). Он компилируется с минимальным количеством варнингов (а это у тебя ещё стоит проверить). В общем, ты зазнался.

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

Кстати, можешь уточнить, какой стандарт ты используешь?

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

И да, у тебя даже мейкфайл кривой. rm *~ выглядит подозрительно, а на деле просто ломается. Ты сам-то после своего configure запускал make; make clean?

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