Сообщения в develop.16

Re: Черновая сборка для Qt-клиента на винду

Ответ на сообщение
AL> Кстати, может сделать получение не полной эхи? А то вчера под виндой запускал (8.1 полёт нормальный), так кое как дождался загрузки эх из стандартного конфига.
Если ты включишь в настройках "Поддержку расширенного /u/e", то клиент будет скачивать только последние N.
AL> Ну и окно терминала бы скрыть ещё.
Точно, забыл. Но это с PyInstaller'ом связано, а не с самим клиентом, починю. Ты же имеешь в виду чёрную консоль питона, да?
vit01 to Andrew Lobanov (2016-02-05 02:29:33) [ссылка]

Re: Черновая сборка для Qt-клиента на винду

Ответ на сообщение
vit01> И да, ещё можно пожелания высказать.
Кстати, может сделать получение не полной эхи? А то вчера под виндой запускал (8.1 полёт нормальный), так кое как дождался загрузки эх из стандартного конфига.

Ну и окно терминала бы скрыть ещё.
Andrew Lobanov to vit01 (2016-02-05 02:05:17) [ссылка]

Re: Черновая сборка для Qt-клиента на винду

Ответ на сообщение
А как работает? Может быть, есть какие-нибудь баги?

И да, ещё можно пожелания высказать.
vit01 to btimofeev (2016-02-04 23:21:36) [ссылка]

Re: Черновая сборка для Qt-клиента на винду

Ответ на сообщение
vit01> Посмотрите, пожалуйста, что оно вообще запускается.
Устанавливается и программа работает.
btimofeev to vit01 (2016-02-04 16:34:31) [ссылка]

Черновая сборка для Qt-клиента на винду

Сделал через NSIS самым простым способом, какой только был. Это просто для теста, что оно работает.

Посмотрите, пожалуйста, что оно вообще запускается.

http://ii-net.tk/files/iiclient.exe
vit01 to All (2016-02-04 14:18:13) [ссылка]

Re: Wine и Python

Ответ на сообщение
Спасибо, попробую на выходных сделать готовую сборку и отчитаюсь.
vit01 to btimofeev (2016-02-04 00:48:06) [ссылка]

Re: Wine и Python

Ответ на сообщение
vit01> А, и да, ещё как-то установщик сделать и ярлык в меню "Пуск". Здесь я даже не знаю, в какую сторону копать.
Я когда-то давно пользовался установщиком nsis, попробуй его, он один из самых популярных. Пишешь простенький скрипт на встроенном языке, скармливаешь его программе, она тебе создает установщик.

Так же могу помочь с тестированием на winxp, у меня есть одна на нетбуке.
btimofeev to vit01 (2016-02-03 21:21:35) [ссылка]

Re: Wine и Python

Ответ на сообщение
Хорошие новости. Удалось завести pip и PyInstaller. Удалось скомпилировать всё в ехе-шники. Дефолтный редактор работает. Даже кракозябры теперь ясно, как убрать, в ближайшие дни этим займусь.

Остаётся только небольшая проблема со значками. Сейчас клиент их подцепляет из дефолтной темы DE и, естесственно, в винде ничего не работает. Попробую взять где-нибудь сторонние.

А, и да, ещё как-то установщик сделать и ярлык в меню "Пуск". Здесь я даже не знаю, в какую сторону копать.
vit01 to vit01 (2016-02-03 14:13:38) [ссылка]

Re: Wine и Python

Ответ на сообщение
Difrex> Нужен человек с виндой.
Это ясно, но разве у нас такие водятся?
vit01 to Difrex (2016-02-03 10:52:38) [ссылка]

Re: Wine и Python

Ответ на сообщение
Нужен человек с виндой.
Difrex to vit01 (2016-02-03 07:56:24) [ссылка]

Wine и Python

Запустил питон под вайном. Еле-еле он работает. PyQt, как ни странно, тоже работает. И клиент запустился. Правда, там сообщения все в кракозябрах (и дефолт-редактор не работает), но всё же.

Pyinstaller не может найти специфичные для венды модули, но установить их пока не смог, т.к. pip не работает.
>C:\Python34\Scripts\pip.exe
Fatal error in launcher: Job information querying failed
Пришлось убрать (или поменять) в нескольких местах вызовы locale.setlocale, иначе выдавалась ошибка.
vit01 to All (2016-02-03 04:16:05) [ссылка]

Re: Bash и Python развращают мозг

Ответ на сообщение
Всё, решено, буду делать велосипеды в большом количестве =)
Обнаружил пробелы в знаниях в области параллельного программирования и асинхронных запросов в вебе.
vit01 to vit01 (2016-01-14 12:26:13) [ссылка]

Re: Bash и Python развращают мозг

Ответ на сообщение
AL> На самом деле bash это хорошо
AL> Пайтон же хорош для небольших скриптов
vit01>> руки невольно тянутся к тому, что сразу работает. А с помощью чего можно быстро сделать всё, что угодно? Правильно - с помощью баша и питона.
Хотел выразить предыдущим сообщением всё-таки немного другое. Суть не в том, что баш и питон плохие (сабж слишком провокационный), а то, что мне уже надоело писать скрипты/ноды/клиенты для ii (всё равно они уже юзабельные и хорошо работают), хочется чего-то нового и другого, не на этих языках.

И ещё то, что излишний комфорт препятствует самообразованию.

Когда все баги исправлены, нужные софтины и скрипты работают, как часы, фичи все необходимые есть, тогда vit01 становится скучно, и начинается депрессняк. Думаю подыскать какой-нибудь опенсурс-проект и идти пилить, но не знаю, куда податься =(
vit01 to Andrew Lobanov (2016-01-13 13:26:19) [ссылка]

Re: Bash и Python развращают мозг

Ответ на сообщение
vit01> P.S. Извините за такой душевный выброс, но просто не получается держать это внутри
На самом деле bash это хорошо (потому что нет смысла писать на C/Pascal/Fortran/указать свой вариат то, что можно уместить в пайп). Пайтон же хорош для небольших скриптов (на худой конец для ii-ноды или ii-клиента =).

Действительно нет смысла переписывать то, что и так хорошо работает. Лучшее - враг хорошего.

В тему вспоминается старый анекдот про программиста и его сына:

- Пап, почему солнце встаёт на востоке и заходит на западе?

Отец, не отрываясь от монитора:

- Ты проверял?

- Да.

- Точно?

- Да.

- Тогда не трогай ничего.
Andrew Lobanov to vit01 (2016-01-13 07:34:18) [ссылка]

Bash и Python развращают мозг

К такой мысли я пришёл, когда в очередной раз помирал от скуки.

Как известно, лень - двигатель прогресса. И именно поэтому часто приходится писать всяческие скрипты и полезные штуки, чтобы уменьшить количество рутинных действий за компьютером.
Казалось бы, имеется куча интересных языков программирования, с помощью которых можно хорошо повеселиться, получить удовольствие и необычный опыт в процессе написания скриптов. Но нет же: лень диктует своё, поэтому руки невольно тянутся к тому, что сразу работает. А с помощью чего можно быстро сделать всё, что угодно? Правильно - с помощью баша и питона. Пять строк простого, незамысловатого кода, и результат достигнут!
В этом месте лень начинает работать против человека. Зачем переписывать (и, главное, начинать писать) эти штуки на других языках, если всё и так работает? Зачем лишний раз напрягать мозг? Вот здесь и начинается разврат.
Путь к излечению трудный и долгий; придётся иметь дело с ломками, как у наркоманов. Надо каким-то образом загонять себя в жёсткие рамки используемых ресурсов и отказываться от привычных технологий в пользу самообразования. Создать себе на ЭВМ аскетичное рабочее окружение без всяких "плюшек" и пытаться в нём выживать.
В общем, перестать себя баловать всякими фичами и реализовать эти фичи самому.

P.S. Извините за такой душевный выброс, но просто не получается держать это внутри
vit01 to All (2016-01-12 14:32:36) [ссылка]

Re: split-sequence

Ответ на сообщение
Так или иначе, попробовал набросать подобную функцию сам.
Скорее всего, это г...код, но всё же:
(defun split (str delimiter &key (save-empty nil))
	(setq delimiter (coerce delimiter 'character))
	(let ((result nil) (len (length str)) (j 0) (toappend ""))
		(dotimes (i len)
			(if (char= (char str i) delimiter)
				(progn
					(setq toappend (subseq str j i))
					(setq result (append result (list toappend)))
					(setq j (1+ i))
					; если разделитель в конце, добавляем пустоту
					(if (= i (1- len)) (setq result (append result (list "")))))
				(if (= i (1- len))
					(setq result (append result (list (subseq str j len)))))))
	
		(if (equal save-empty nil) ; убираем пустые строки, если они не нужны
			(setq result (loop for s in result when (not (string= s "")) collect s)))
		result))

(defun dotest (vals)
	(dolist (s vals) (print (apply #'split (eval s)))))

(dotest '((list "/x/features/" "/") ; проверяем, что всё верно работает
			(list "/ffggg/kikj//kjjj///" "/" :save-empty t)
			(list "x/features" "/")))
// укажите кто-нибудь на недочёты, пожалуйста
vit01 to Andrew Lobanov (2016-01-02 04:28:07) [ссылка]

Re: split-sequence

Ответ на сообщение
vit01> // ура, наконец-то кто-то из "своих" появился в ii =)
Суета в виде фарша из работы (конец года это жесть), учёбы и предновогодней подготовки отняла всё время.
AL>> split-sequence я взял потому что проще взять готовое. Вот если бы отказаться от drakma или hunchentoot это да, в split-sequence маленький и не критичный.
vit01> hunchentoot, насколько слышал, присутствует в репозиториях дебиана (и, скорее всего, других дистрибутивов). Так что чем меньше посторонних зависимостей, тем проще будет отказаться именно от quicklisp, а не от самого нужного.
Я противник в данном случае завязывания на систему. quicklisp это вполне себе штатное уже решение, которое даёт гарантию простого запуска на любой системе, где есть лисп-машина и интернет.
Andrew Lobanov to vit01 (2015-12-30 08:41:02) [ссылка]

Re: split-sequence

Ответ на сообщение
// ура, наконец-то кто-то из "своих" появился в ii =)
AL> split-sequence я взял потому что проще взять готовое. Вот если бы отказаться от drakma или hunchentoot это да, в split-sequence маленький и не критичный.
hunchentoot, насколько слышал, присутствует в репозиториях дебиана (и, скорее всего, других дистрибутивов). Так что чем меньше посторонних зависимостей, тем проще будет отказаться именно от quicklisp, а не от самого нужного.
vit01 to Andrew Lobanov (2015-12-30 08:02:46) [ссылка]

Re: split-sequence

Ответ на сообщение
vit01> Вопрос Андрею, как знатоку CL.
Я не знаток CL, к сожалению. Катострофически не хватает времени на всё. Так что знаю его весьма поверхностно.
vit01> Заглянул тут в код iicl и задумался: а зачем же использовать сабж? Для нужд ii вполне можно взять какую-нибудь самописную функцию и не тянуть лишние зависимости через quicklisp.
iicl - мой учебный проект, на котором я учился писать хоть что-нибудь на CL. Там многое сделано очень плохо и криво. split-sequence я взял потому что проще взять готовое. Вот если бы отказаться от drakma или hunchentoot это да, в split-sequence маленький и не критичный.
vit01> Или дело в каких-нибудь заморочках с производительностью?
Дело в ламерстве =)
Andrew Lobanov to vit01 (2015-12-30 05:18:19) [ссылка]

split-sequence

Вопрос Андрею, как знатоку CL.

Заглянул тут в код iicl и задумался: а зачем же использовать сабж? Для нужд ii вполне можно взять какую-нибудь самописную функцию и не тянуть лишние зависимости через quicklisp.
Или дело в каких-нибудь заморочках с производительностью?
vit01 to Andrew Lobanov (2015-12-27 15:55:50) [ссылка]

Читаю тут PCL

Сабж вполне подробный и нескучный.

Как прочитал "историю про макросы" отсюда https://github.com/pcl-ru/pcl-ru/blob/master/chapter-08.tex , впервые за день искренне улыбнулся =)

А функциональный подход лиспа всё-таки ломает неокрепшие мозги.
Кстати, а почему в Common Lisp есть общие макросы and, or, not, но при этом xor доступен только через logxor и подобные ему?
vit01 to All (2015-12-19 15:47:37) [ссылка]

node.js

Кто пишет под это?

Может кто объяснить, как мне собрать метрики с процесса? Ну, там Garbage Collector вот это все.
Difrex to All (2015-12-10 09:51:02) [ссылка]

Re: LISP

Ответ на сообщение
> PS: Я рекомендую почитать первую главу PCL (Practical Common Lisp).
Спасибо за направление. Взял PDF в другом месте, буду читать теперь.
vit01 to Andrew Lobanov (2015-12-03 16:10:47) [ссылка]

Re: LISP

Ответ на сообщение
vit01> На прошлой неделе тоже пытался немного пощупать сабж. Уж так ты его нахваливал, аж попробовать захотелось :)
Как оказалось, в PCL дело написано в первой главе: разные языки действительно различны не взирая на формальное равенство по Тьюрингу. Но у Lisp есть и некоторые неудобства в виде достаточно тяжёлой lisp-машины, например.
vit01> Хотел бы узнать, какие биндинги/API/стандартные либы общие у всех диалектов. А то по синтаксису общие моменты есть, но в остальном всё у всех своё.
Дело в том, что по факту разные диалекты лиспа это разные языки со схожими или одинаковыми принципами. Лично я рекомендую Common Lisp, так как он стандартизирован (ANSI). По факту даже разные реализации того же Common Lisp несколько различны, но у них одинаковое ядро и всегда можно написать код совместимый с большим числом реализаций.

Common Lisp сильно отличен от прочих языков. Здесь нет единой линии партии, единой реализации. К вопросу о разных реализациях, кстати, тот же C, я уж молчу про C++, может работать по разному с разными компиляторами. Так что трагического ничего нет.
vit01> Embeddable Common Lisp умеет переводить свой код в сишные файлы, компилируемые GCC. Хотя сколько не пытался, всё сегфолты и ошибки линковки.
То есть по факту таки нет.

PS: Я рекомендую почитать первую главу PCL (Practical Common Lisp). Лучше всего взять русский перевод тут https://github.com/pcl-ru/pcl-ru или я могу скинуть уже готовую pdf-ку. Если первая глава заинтригует, то почитать хотя бы главы 2 и 3. После этого уже можно что-то писать (я clii написал, имея за плечами только этот багаж).
Andrew Lobanov to vit01 (2015-12-02 16:44:04) [ссылка]

Re: LISP

Ответ на сообщение
На прошлой неделе тоже пытался немного пощупать сабж. Уж так ты его нахваливал, аж попробовать захотелось :)

Хотел бы узнать, какие биндинги/API/стандартные либы общие у всех диалектов. А то по синтаксису общие моменты есть, но в остальном всё у всех своё.
AL> Нативный бинарь у лиспа это очень своеобразная штука. По крайней мере у SBCL. Это по своей сути упакованная в один файл лисп-машина и core dump всего загруженного на момент "компиляции". В итоге бинари толстые.
Embeddable Common Lisp умеет переводить свой код в сишные файлы, компилируемые GCC. Хотя сколько не пытался, всё сегфолты и ошибки линковки.
vit01 to Andrew Lobanov (2015-12-02 14:51:56) [ссылка]

Re: LISP

Ответ на сообщение
Difrex> Не, не совсем то. Зато sbcl --script точно, то, что нужно.
Ещё есть полезняшка в виде sbcl --eval.
Difrex> Теперь есть такой вопрос: как обрабатывать исключения? По типу eval в perl, ну или try/except в python?
PCL глава 19. Сам ещё толком не разбирался.
Andrew Lobanov to Difrex (2015-12-02 11:36:44) [ссылка]

Re: LISP

Ответ на сообщение
>О, compile-file делает, то, что мне нужно :)
Не, не совсем то. Зато sbcl --script точно, то, что нужно.

Теперь есть такой вопрос: как обрабатывать исключения? По типу eval в perl, ну или try/except в python?
Difrex to Difrex (2015-12-02 11:34:27) [ссылка]

Re: LISP

Ответ на сообщение
Difrex> О, compile-file делает, то, что мне нужно :)
Кстати, если разберёшься как подружить fasl и quicklisp (я просто не копал в эту сторону), то черкни сюда пару строчек о решении.

// Если я разберусь раньше, то отпишусь тоже да =)
Andrew Lobanov to Difrex (2015-12-02 11:27:41) [ссылка]

Re: LISP

Ответ на сообщение
Difrex> О, compile-file делает, то, что мне нужно :)
Так оно же fasl компилит. Или я тебя не понял просто?
Andrew Lobanov to Difrex (2015-12-02 11:17:47) [ссылка]

Re: LISP

Ответ на сообщение
О, compile-file делает, то, что мне нужно :)
Difrex to Difrex (2015-12-02 11:05:27) [ссылка]