LINUX.ORG.RU

Сообщения monk

 

Как правильно по-русски?

Форум — Talks

Если речь идёт о женщине, как правильно:

Молодой красивый инженер устанавливает линукс на компьютер.

или

Молодая красивая инженер устанавливает линукс на компьютер.

?

 

monk
()

Язык программирования 1 теперь работает на Эльбрусе

Новости — Разработка
Группа Разработка

Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.

$ uname -a
Linux alatyr 5.4.0-3.19-e1cp #1 Wed Mar 9 16:53:28 MSK 2022 e2k E1C+ MBE1C-PC GNU/Linux
$ cat тест.1
#!1

структура человек
  ; имя
    отчество #:изменяемое
  #:суффикс -человека

иван = человек "Иван" "Иванович"
отчество-человека иван := "Петрович"
отчество-человека иван
$ racket/bin/racket тест.1
"Петрович"

Пока сборка есть только для Эльбрус Линукс на Эльбрус-1С+ (система команд e2k-8c). Для остальных можно воспользоваться скриптом для сборки.

Язык 1 - функциональный язык программирования на основе русского языка. Синтаксис унаследован от Haskell, семантика от Racket.

Предыдущее обсуждение на ЛОРе

>>> Описание языка

 , , , ,

monk
()

Apache отдаёт не все файлы

Форум — Admin

Есть Debian GNU/Linux 11. На нём есть apache2 2.4.54-1~deb11u1

Не отдаёт некоторые файлы. Причём только браузеру. Через GET в командной строке отдаёт.

И отдаёт или нет зависит от содержимого файла. Копирую файл (html), который не отдаёт, копию тоже не отдаёт. В копии удаляю хвост файла начинает отдавать. Дописываю в конец «aaa», перестаёт отдавать. Удаляю последнюю «a», отдаёт. Меняю в конце «aa» на «ab», перестаёт отдавать.

У кого-то есть идеи?

 ,

monk
()

COMEFROM считается вредным?

Форум — Development

Когда Дейкстра написал своё письмо «Оператор GOTO считается вредным», в качестве шутки придумали ещё более вредный оператор COMEFROM (и ассемблерную инструкцию CMFRM). Он позволял указать метку и выполнять дополнительный код всегда, когда выполнение проходило через эту метку.

Но вот смотрю я на нынешние методологии программирования и вижу огромный пласт COMEFROM в SQL в виде CREATE TRIGGER, подписку на события в других языках (паттерн Наблюдатель). Многомерный COMEFROM в HTML через CSS.

Неужели это считается удобным для понимания и отладки?

 

monk
()

Зачем в Haskell IO?

Форум — Development

Haskell язык ленивый. Для интерактивных программ достаточно вообще обычных строк:

main = interact realMain

realMain :: String -> String
realMain = unlines . f . lines
  where
    f x = "Введите своё имя: ":g x
    g (имя:числа) = ["Привет, " ++ имя, "Вводите числа, q для выхода"] ++ корни числа
    корни ("q":_) = []
    корни (x:xs) = (show . sqrt) (read x :: Double):корни xs

Вот программа, которая запрашивает имя пользователя, затем выводит корни введённых чисел пока не получит q. Никакого IO внутри realMain не требуется.

Если брать произвольное взаимодействие с окружающим миром, то достаточно main :: [inEvent] -> [outEvent].

Зачем нужен «магический» тип IO, делящий Haskell на фактически два разных языка?

 ,

monk
()

Осторожно, вредоносный код в библиотеках на GitHub!

Новости — Open Source
Группа Open Source

node-ipc удаляет файлы, если видит IP адрес в заданном списке.

Вот сам вредоносный код: https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js

Вот менее вредоносный (только грузит процессор, если видит в js таймзону из списка): https://github.com/medikoo/es5-ext/commit/3beace4b3d00f02da61b72dd328f90cf069d46de попадает в https://www.npmjs.com/package/es5-ext

Соответственно, если обновляетесь через npm или подобное, то имейте в виду.

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

 ,

monk
()

Microsoft приостанавливает продажи в России

Новости — Проприетарное ПО
Группа Проприетарное ПО

Microsoft приостанавливает продажи товаров и предоставление услуг в России.

Американская компания Microsoft приняла решение о приостановке продажи товаров и предоставления услуг в России на фоне ситуации вокруг Украины. Об этом говорится в заявлении, опубликованном в пятницу на сайте компании.

«Сегодня мы объявляем, что приостанавливаем все новые продажи продуктов и услуг Microsoft в России», - отметили в компании.

Запись в блоге Microsoft

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

 ,

monk
()

Racket быстрее для многопоточной работы, чем Go

Форум — Development

Микрозамер скорости сервера эха: https://racket.discourse.group/t/racket-matching-or-exceeding-golang-for-echo-server-performance/660

Результаты:

Racket: ~114,584 сообщений/сек
Go (default): ~85,650 сообщений/сек
Go (GOMAXPROCS=1): ~108,495 сообщений/сек

Код для Racket (ссылка) использует потоки Racket (thread), код для Go (ссылка) использует горутины.

 , ,

monk
()

Почему тесты не пишут вместе с кодом?

Форум — Development

Всюду рекомендуют делать для тестирования отдельные классы в отдельных файлах, а то и в отдельных проектах.

В результате при изменении задачи работаешь в двух файлах почти одновременно. Не проще воткнуть методы тестирования рядом с кодом?

 ,

monk
()

Зависимые типы, жидкие типы. Что лучше?

Форум — Development

Пытаюсь понять тенденции в современных статических языках. Обычного Haskell явно не хватает. Что ожидать на замену?

 , liquid haskell,

monk
()

1С: Библиотека стандартных подсистем, редакция 3.1

Форум — Talks

«1С:Библиотека стандартных подсистем» (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе «1С:Предприятие». С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации.

Входящие в БСП подсистемы охватывают такие области, как:

  • Администрирование пользователей и прав доступа;
  • Средства администрирования и обслуживания (установка обновлений, резервное копирование, дополнительные отчеты и обработки, оценка производительности и др.);
  • Сервисные подсистемы (история изменений объектов, заметки и напоминания, печать, полнотекстовый поиск, присоединенные файлы, электронная подпись и др.);
  • Технологические механизмы и программные интерфейсы (процедуры и функции общего назначения, обновление версии ИБ, работа в модели сервиса и др.);
  • Нормативно-справочная информация и классификаторы (адресный классификатор, банки, валюты и др.);
  • Интеграция с другими программами и системами (обмен данными, работа с почтовыми сообщениями, отправка SMS, рассылка отчетов и др.);
  • Прикладные подсистемы и рабочие места пользователей (анкетирование, бизнес-процессы и задачи, взаимодействия, варианты отчетов и др.).

Всего в БСП входит более 60 подсистем.

Исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0). Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode  Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте.

Подробности

Перемещено Shaman007 из opensource

 

monk
()

С++ неожиданный результат выдаёт.

Форум — Development

Вот весь код программы:

#include <iostream>
#include <fstream>
#include <string>

bool exists(std::string path)
{
        std::ifstream f(path);
        std::cout << path << ": " << f.good() << std::endl;
        return f.good();
}

int main()
{
        std::ifstream f("settings.txt");
        std::string name, path;
        std::getline(f, name);
        std::getline(f, path);
        std::cout << "path = " << path << std::endl;
        std::cout << "path/run = " << (path + "run") << std::endl;
        std::string pathrun = path + "run";
        std::cout << "prun = " << pathrun << std::endl;
        exists(pathrun);
        return 0;
}

А вот её вывод:

path = /mnt/
runh/run = /mnt/
runn = /mnt/
run: 0

Вижу, что со строками какой-то ужас, но не могу понять, что я сделал не так.

 

monk
()

Новый язык программирования для русскоговорящих

Форум — Development

Синтаксис от Хаскеля, семантика от Ракета.

факториал(сч) =
  если (сч == 1)
    1
    сч * факториал (сч - 1)

фибоначчи(сч) =
  если (сч < 3)
       1
       пусть рекурсия (н-1 1; н 2; тек-сч 3)
         если (сч == тек-сч) н $ рекурсия н (н + н-1) $ тек-сч + 1

Будет ещё конструкция надо-быстро с семантикой от Си (и использованием gcc).

Исходники: https://github.com/Kalimehtar/russian-lang

Пакет для Ракета: https://pkgd.racket-lang.org/pkgn/package/russian-lang

Документация: https://docs.racket-lang.org/russian-lang/index.html

 , , ,

monk
()

Как сделать cdr в std::forward_list?

Форум — Development

Хотел сделать что-то вроде библиотечки по работе со списками, аналогичной лисповым для c++, и обнаружил, что в std::forward_list есть front(), но нет функции для получения хвоста списка, аналогичной лисповому cdr.

Его можно как-то туда добавить или только делать свою реализацию списка с нуля?

 ,

monk
()

Полиция переходит на Astra Linux

Новости — Linux в России
Группа Linux в России

МВД России закупило у системного интегратора Tegrus (входит в группу Merlion) 31 тысячу лицензий ОС Astra Linux.

Это крупнейшая единовременная закупка ОС Astra Linux. Ранее ее уже закупали силовые органы: в ходе нескольких закупок в совокупности 100 тысяч лицензий приобрело Минобороны, 50 тысяч — Росгвардия.

Исполнительный директор ассоциации «Отечественный софт» Ренат Лашин называет сопоставимыми по масштабу проекты по внедрению системы единого государственного реестра (ЕГР) ЗАГС, медицинских и образовательных систем в регионах. ЕГР ЗАГС работает на ОС «Альт», также она обслуживает более 70 тысяч рабочих мест в медицинских и 60 тысяч в образовательных госструктурах — уточняет Алексей Смирнов, гендиректор компании «Базальт СПО», которая разрабатывает ОС «Альт».

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

 , , , ,

monk
()

Какой кусок исходного кода на Си Вам кажется более красивым (см. подробности)

Голосования — Голосования(не подтверждено)

первый вариант:

a[0] = get_data(0);
a[1] = get_data(1);
a[2] = get_data(2);
a[3] = get_data_3();
a[4] = get_data(4);
a[5] = get_data_5();

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

for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++) {
  switch(i) {
    case 3: a[i] = get_data_3(); break;
    case 5: a[i] = get_data_5(); break;
    default: a[i] = get_data(i); 
  }
}

 , ,

monk
()

Как узнать, можно ли использовать код?

Форум — Development

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

Как узнать, можно ли его использовать, или будут проблемы? Вот, например, Есть репо под лицензией MIT.

Какие риски использования кода из такого источника в opensource проекте?

 ,

monk
()

Racket теперь под лицензией Apache 2.0/MIT

Новости — Open Source
Группа Open Source

Язык программирования Racket долгое время распространялся под LGPLv3. Но теперь, благодаря замене основы на Chez Scheme, появилась возможность распространять его на условиях Apache 2.0/MIT.

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

 , ,

monk
()

Есть что-то лучше, чем rsync?

Форум — Admin

Есть папка с текущими бэкапами. Её надо синхронизировать на удалённый сервер. Объём папки около 8ТБ, между серверами 1Гб/с.

Бэкапы — копии виртуальных жёстких дисков, поэтому между синхронизациями должны изменяться несильно.

Пытаюсь по rsync. Очень долго тупит вначале. Потом медленно-медленно копирует. С диска читает со скоростью 20-30МБ/с, в результате время копирования чуть ли не больше, чем копировать целиком. В процессах показывает, что загружает одной ядро ЦП (из 24) и, похоже, из-за этого тормозит.

Есть что-то более адекватное? А в идеале, чтобы можно было посчитанные контрольные суммы на удалённом сервере держать в файле рядом, а не заново пересчитывать все 8 терабайт.

 ,

monk
()

Scheme SRFI-29

Форум — Development

Как правильно его использовать?

В SRFI приведён пример:

(if (not (load-bundle! bundle-name))
                    (begin
                     (declare-bundle! bundle-name (cdr translation))
                     (store-bundle! bundle-name)))) 

Но ведь в этом случае, если translation будет изменён после первого запуска, то при запуске будет использоваться старая версия: (load-bundle! bundle-name) загрузит старую сохранённую версию и вернёт #t.

Просто писать declare-bundle!, а остальное игнорировать? Или делать макрос со сторонним эффектом времени компиляции?

 ,

monk
()

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