LINUX.ORG.RU

Сообщения den73

 

И снова контейнеры

Форум — Development

Я остановился на контейнерах. Lodash подойдёт в качестве образца? Или родные CL-ные лучше?

 

den73
()

авторизоваться и продолжить - REST

Форум — Web-development

В прекрасной программе Lotus Notes (да и в обычном sudo) есть такая киллер-фича: если со времени прошлой проверки, что я - это я, прошло достаточно времени, то программка в произвольном месте делает

await а-ну-ка-введи-логин-снова()
И продолжает работу.

Теперь представим себе ситуацию. Я делаю форум, в котором хочу такую фичу. Допустим, каждые 60 минут сессия пользователя закрывается. И вот, он сидел, писал комментарий, нажал «отправить». Ушёл POST-запрос на сервер. Возможно, это ajax, а может быть, подразумевается redirect после выполнения записи в БД постов. Но оказывается, что пора проверить логин. По сути это будет означать последовательность запросов - нужно сначала отложить в карман отправленный пользователем комментарий, затем заставить его ввести пароль, и затем отправить текст пользователя повторно.

Вопрос такой: можно ли сделать это без большого усложнения клиента?

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

 ,

den73
()

структура БД англо-русского словаря

Форум — Development

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

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

 ,

den73
()

отговорите: (nodejs) vue.js + express + pg-promise + postgresql + docker

Форум — Web-development

Хочу сделать небольшое и легконагруженное приложение - редактор словарей терминов. Есть список слов, можно искать слово. У слова есть карточка, которая своя для каждого пользователя, но можно смотреть чужие карточки. Карточка в формате markdown или что-то около того.

Клиента буду делать на vue.js, а сервер хочу на node.js . Да, меня уже отговаривали использовать node.js на стороне сервера. Но вдруг для такого простого проекта прокатит? В принципе, я готов всю тяжесть написать на pl/pgSQL, а на нодке - только тончайший интерфейс и собственно веб сервер. Соответственно, вопрос - как там с утечками памяти и прочими такими вот ужасами?

Т.е. вопрос состоит не в удобстве и не в производительности, а в качестве с т.з. надёжности.

Перемещено tailgunner из development

 ,

den73
()

Что-то в этом вебе слишком много всего

Форум — Web-development

Хочу вот освоить веб, дабы зарабатывать на хлеб насущный. До этого зарабатывал на Delphi + разные SQL ну и баловался лиспом. Но всё это сейчас кормит довольно плохо.

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

Путём анализа stateofjs.com, rabota.yandex.ru и опроса населения получается как-то так:

bootstrap 3 + react + expressjs + webpack + nodejs + webstorm + babel + mysql

Есть ещё какие-то компиляторы для CCS, но до этого я пока не докопался даже.

Вёрсткой заниматься не собираюсь, только программирование. Хотя кто знает, может и до этого дойду когда-нибудь.

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

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

Правильно ли выбрал направления развития? А то я тут начитался, что всё это хипстота и что PHP+html+jquery - это наше всё.

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

 

den73
()

Чудо чудное - багу с тредами исправили

Форум — Development

antares0, я не понял, почему бага про треды, которую я недавно упоминал, оказалась исправлена в 1.4.4? С 2015 года до неё никому не было дела и вдруг... Это случайное совпадение или всё же моё фэ, высказанное во многих местах, в т.ч. и на sbcl-devel оказалась живительным факапом? Я смотрю, новый релиз SBCL почти полностью посвящён исправлению багов :) Наконец-то они занялись делом. Если так дело пойдёт, года через два можно будет рассматривать SBCL как что-то годное :)

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

 ,

den73
()

а можно ли редактировать markdown в браузере без серверной части?

Форум — Web-development

Я видел https://github.com/benweet/stackedit, но это нода. Его можно установить оффлайн. Но ведь есть и дедовский способ делать офлайн - сохранить страницу на свой диск и запускать её локально. Вопрос такой: может ли в прироед быть просто страничка, в которой я могу редактировать Markdown и видеть превью, которая исполняется полностью на стороне клиента. ЧТобы я мог сохранить эту страничку на свой диск и маркдаун продолжал показываться. Есть даже библиотека ShowDown, которая рендерит маркдаун.

 ,

den73
()

вёрстка русскоязычных веб-страниц

Форум — Web-development

<a href=«trarara.html»>А теперь переключим раскладку. И опять переключим</a>

Кто как решает вот эту проблему?

 , ,

den73
()

Golang или Gambit Scheme?

Форум — Development

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

Интересен Gambit - трансляция в Си позволяет (попытаться) отлаживать неработающие программы обычным отладчиком для Си. Но есть и интерпретатор. По показателям github (звёзды, форки и пр) - примерно равен ClozureCL и вдвое меньше SBCL.

Но потом посмотрел трекер. Да, Gambit тоже бывает, что падает. А вот golang вроде должен быть понадёжнее. Единственное, мне опять же не нравится отсутствие пошагового отладчика. Похоже, мои неудавшиеся эксперименты на ClozureCL - это более продвинутая технология, чем то, что есть в golang. Но в golang оно зато (вроде бы) работает.

Соответственно, прошу советов. Есть ещё вариант взять какую-нибудь вирт. машину, например, HHVM и начать пилить язык прямо в кодах этой машины. Но это я всё же стараюсь в себе подавить ибо трудоёмкость создания языка с нуля слишком велика.

Ну и далее, Схема - всё же маргинальщина, а на голанге, если что, можно и на хлеб заработать.

 

den73
()

Степпер для CCL

Форум — Development

А мне, представьте себе, ещё не надоело засорять ЛОР своими ненужными улучшениями для лиспа.

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

Большое преимущество - можно брать готовую функцию и инструментировать её для ходьбы без перекомпиляции. Этим он кардинально отличается в лучшую сторону от LW, который переопределяет функцию при установке брекпойнта. Недостаток, правда, в том, что шаги слишком редкие - как в SBCL. Чтобы шаги стали чаще, нужно допиливать ещё. И без перекомпиляции под другую политику оптимизации (при данном подходе) не обойтись. Хотя я вот не знаю, нужно ли допиливать или нет. В 80-строчной функции появилось 16 точек шагания. Вроде это мало, но по сравнению с trace, когда точка шагания всего одна - уже и не так мало. Может быть, если их подсветить, будет достаточно. Мозг-то никто не отнимает, можно им доработать, где шагов не хватает.

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

Следующая задача состоит в том, чтобы можно было поставить точку останова, щёлкнув мышью.

https://www.youtube.com/watch?v=1f4QRS0d8NU&t=6s

 

den73
()

Яр 0.4.0 разочаровывающий

Форум — Development

Выложил очередной релиз Яра, «разочаровывающий». Дело идёт к заморозке проекта, работаю над ним до 1 февраля, а потом хлеб насущный буду зарабатывать. Найти спонсора за два года не удалось. Видимо, дело в недостаточной вере в успех, т.е. в отсутствии ощущения зрелости проекта, при которой можно называть сроки и нести за них ответственность.

Из последних конвульсий: теперь clcon поддерживает также CCL, а не только SBCL. Ну и Яр, соответственно, собирается и запускается под CCL под Linux и Windows. Зато я что-то сломал и образ SBCL под линуксом не сохраняется. С точностью до системы знаю. Впрочем, не суть важно.

Правы были те, кто говорил, что не нужно пытаться менять CL. Он хорошо защищён от изменений частоколом из грабель: если делаешь не совсем общепринятые вещи даже в рамках стандарта, например, свою readtable, проблем огребёшь по полной, и я их огрёб, и на них был истрачен ценный трудовой ресурс. А без всяких улучшений он слишком скучен для меня.

Если вдруг кому интересно, за последние месяцы немного поразбирался в SBCL, и пришёл к тому выводу, что можно наляпать много нового и интересного, но поскольку там всё внутри черт-те в каком состоянии, причём хронически, то по сути дела работать ничего не будет. Красивую показуху сделать можно. Я сделал черновик иммутабельных хеш-таблиц и струтур с рассуждениями о типах в них, а также сильно улучшил пошаговую отладку. После этого я пообщался с одним из разработчиков и, оказывается, они тоже мечтают про отладчик а-ля Visual Basic, но сделать его быстро не могут, т.к. примитивы, на которых он должен быть построен, низкокачественные. Сейчас, судя по коммитам, они их начали исправлять. Дай Бог, чтобы у них получилось. Однако я не вижу причины, по которой не может существовать инструментирующий отладчик для CL. Более того, он уже существует и называется lispdebug-0.92 - жаль, что лицензия подкачала.

Также отчасти разобрался в работе вывода типов. Там есть два механизма - собственно type inference и constraint propagation. Если о первом я имею кое-какое представление, то второй - вообще тёмный лес. Потому и захотел отладчик, чтобы лазить туда не с голыми руками, а вооружившись удобным инструментом. Но - не склалось у меня с SBCL.

В итоге теперь у Яра нет отладчика и не на что опереться в плане вывода типов. Может быть, попробую сделать «Яр на базе Typescript», хотя при отсутствии материальных ресурсов думается на эту тему тяжело - ясно, что создать серьёзный ЯП с инфраструктурой - это достаточно трудоёмко. Более трудоёмко, чем казалось сначала по факту написание за две недели транслятора с 1С 7.7 в CL.

Тем не менее, задел есть, можно продолжать потихоньку в хоббийном режиме. Правда, нафиг оно нужно, не совсем ясно, когда рядом ходят монстры типа JetBrains со своими Kotlin-ами.

Просто по темпам развития понятно, что они меня съедят в любом случае. Ну и честно говоря, я ожидал, что меня будут смешивать с говном на форумах за идею русскоязычного языка программирования. Но то, что к этой идее окажутся холодны Росатом, ФПИ, Касперский, 1С и фонд «Русский Мир» - к этому я был морально несколько не готов. Такое чувство, что никто не догоняет, что за вытеснением из обихода «неэффективного» русского языка может произойти и вытеснение с территории и самого населения, говорящего на «неэффективном» языке. Вроде как и Казахстан уже на латиницу переходит, и на Украине черт-те что. Нет, Россия спит. Впрочем, в одном месте мне указали на соседний вход и сказали, что нужно обязательно писать заявку на грант, но почему-то моральных сил пока нет. Может быть, через некоторое время появятся.

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

 ,

den73
()

Common Lisp - заготовка для portable define-advice

Форум — Development

Не совсем portable, но заметно расширяет возможности для SBCL и CCL и приводит их к общему знаменателю. Для остальных реализаций возможно не более одного «совета» на функцию и реализация не завязана на родные возможности реализаций, а просто перешибает defun.

https://bitbucket.org/budden/cl-advice

В CCL не просто можно вызвать предыдущую функцию (с помощью (:do-it)), но и подменить ей аргументы.

В SBCL можно найти определения самой функции и её «советов» с помощью SWANK.

Говоря холиварно, это позор, что в EMACS и в питоне декораторы есть, а в CL - нет. Уж лет 20, как пора было это исправить и вот я сделал к этому шаг наконец-то.

На самом деле код ещё довольно сырой - для CCL я написал его сегодня и не факт, что завтра что-то не всплывёт. Для SBCL уже несколько месяцев пользуюсь - вроде всё нормально.

 , , ,

den73
()

проблемы Tk в офтопике

Форум — Development

http://core.tcl.tk/tk/tktview?name=52e9b0f52c - после 8.6.6 %K для кириллицы сломан (когда точно - не помню)

http://core.tcl.tk/tk/info/62f1343ad2 - Tk textbox not working with «Bengali» set as keyboard input language

http://core.tcl.tk/tk/tktview/6c0d7aec6713ab6a7c3e12dff7f26bff4679bc9d - не помню, в чём именно проблема, но она плохая и приводит к тому, что иногда буквы путаются (особенно, если нажимать на кнопки достаточно быстро). Эта бага исправлена уже.

 ,

den73
()

clcon - переход с tk на atom - есть ли смысл?

Форум — Development

Если предположить, что CL имеет смысл и создание новой IDE для него имеет смысл, перевод моей IDE с tcl/tk на atom имеет ли смысл? В нынешнем состоянии atom-slime выглядит так

 , ,

den73
()

Яролитерация

Форум — Development

Уж не знаю, сюда ли пишу, но я придумал обратимый транслит. Наверное, я не первый - было что-то даже на Хабре. Но тем не менее. Я старался. Вот что есть на текущий момент.

Не только кириллица, но и смешанный текст из кириллицы и латиницы можно обратимо преобразовать.

В чащах юга жил бы цитрус? 
Да, но фальшивый экземпляр!
Hello!
===> 
V chashhakh yuga zhil byy citrus? 
Da, no falqshivyyyi ehkzemplyar!
jHjejljljo!

Извините, обратное преобразование пока не сделал.

 

den73
()

Степпер для SBCL - помогайте

Форум — Development

Более хороший степпер для SBCL, хотя ещё пахать - не перепахать

https://www.youtube.com/watch?v=UlXn-ujS500

А вот моя «база знаний» по начинке SBCL

 , ,

den73
()

extended file attributes для хранения кодировки

Форум — General

Вот прочитал, что они существуют и в ext3 вроде как присутствуют.

Вопрос такой: можно ли в реальности использовать их конечному пользователю для хранения кодировки.

Например, в EMACS можно написать кодировку в первой строке. Но далеко не все редакторы это понимают, и нужно менять сам файл, если кодировка меняется.

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

- файл открыт редактором (допустим, leafpad-ом) - файл получен по эл. почте в виде вложения - файл загружен через браузер - файл расшарен через самбу - файл перенесён из другой системы на флешке

Насколько я понял, и ext3, и ntfs в принципе позволяют хранить кодировку в extended attributes, вопрос лишь в том, чтобы всё это заработало как система.

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

 extended file attributes,

den73
()

Proof of concept для иммутабельности в SBCL

Форум — Development

Предыдущая серия фильма была здесь:

Исправить SBCL - добровольцы есть?

Теперь вот: http://lisper.ru/forum/thread/1361#comment-12370

https://github.com/budden/sbclt/commit/ba9ffd6d45441feed345b3a4dcfc1263daee94e9

Коротко говоря, ввёл в SBCL типы (mutable 1) (мутабельный) и (mutable 0) (иммутабельный). character, number иммутабельны всегда. Хеш-таблица иммутабельна, если она заморожена вызовом freeze-object. Если объект объявлен с типом (mutable 0), то (setf (gethash)) вызовет warning при компиляции, и в рантайме этот код упадёт.

Чего здесь сильно не хватает - это передачи выведенной информации об immutable в другое место. Например, пока нельзя объявить, что параметр у функции immutable, чтобы компилятор ругался при попытке передать в него mutable объект. На эту цель был ранее сделан заход, но полностью работающего решения не удалось получить. Видимо, займусь этим завтра и далее.

Также нужно, чтобы вывод типов понимал, что объект, который сейчас immutable, будет и впредь immutable, но про прошлое ничего сказать нельзя (т.е. в прошлом он мог оказаться и mutable). Я не настолько понимаю вывод типов в SBCL, чтобы это сделать. Нужно сидеть и разбираться - это нелегко.

И ещё - я пытаюсь фиксировать то, что узнаю по мере изучения SBCL. вот тут

 , ,

den73
()

Портировать Яро-раскладку на Debian

Форум — Job

https://budden73.livejournal.com/27328.html

Цена полного решения - 20 тыр.

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

 

den73
()

Исправить SBCL - добровольцы есть?

Форум — Development

Я хочу следующие исправления/улучшения в SBCL:

Некорректная работа вывода типов

(defparameter *g* (cons 1 2))
(defun g () (setf (car *g*) 'a))

(defun f (x)
  (when (typep x '(cons fixnum))
    (g)
    (if (typep x '(cons fixnum))
      "Still cons fixnum!"
      "Not cons fixnum")))
(f *g*)
Это - баг в SBCL, который никого не интересует. Причина в том, что типы делятся на две категории: настоящие типы и предикаты. Принадлежность объекта к настоящему типу не меняется, например, к типу fixnum. Предикат (cons fixnum) может измениться.

Нужно внести в язык и в реализацию понятие о настоящем и ненастоящем типе и сделать так, чтобы вывод типов не использовал ненастоящие типы (или использовал их настоящую часть, в данном случае cons). При этом будет установлено, что defstruct-ы и deftype всегда будут переопределяться только вместе с unintern того символа, который их именует, за счёт этого настоящих типов станет гораздо больше.

Декларация const Нужно её как-то воплотить и использовать в системе типов. Соответственно, если объект const, то его можно передавать только в функцию, которая принимает const. Для структур, массивов и консов const распространяется только на первый уровнь ссылок (или рекурсивно? я не знаю, как надо сделать). Для классов CLOS - не нужно ничего делать, они меня не интересуют и я ими не пользуюсь.

Запрет неявного сужения типов Добавить новое качество оптимизации (к speed, debug и т.п.). Если это качество включено, то присваивание месту, декларированному как integer, типа number порождает warning или compilation error.

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

Если найдутся добровольцы, то я только за. Напоминаю, что анонимусы у меня в игноре, так что анонимусы могут в тему вообще ничего не писать :) И денег хрен заплачу :)

 ,

den73
()

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