Как правильно по-русски?
Если речь идёт о женщине, как правильно:
Молодой красивый инженер устанавливает линукс на компьютер.
или
Молодая красивая инженер устанавливает линукс на компьютер.
?
Если речь идёт о женщине, как правильно:
Молодой красивый инженер устанавливает линукс на компьютер.
или
Молодая красивая инженер устанавливает линукс на компьютер.
?
Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.
$ 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.
>>> Описание языка
Есть Debian GNU/Linux 11. На нём есть apache2 2.4.54-1~deb11u1
Не отдаёт некоторые файлы. Причём только браузеру. Через GET в командной строке отдаёт.
И отдаёт или нет зависит от содержимого файла. Копирую файл (html), который не отдаёт, копию тоже не отдаёт. В копии удаляю хвост файла начинает отдавать. Дописываю в конец «aaa», перестаёт отдавать. Удаляю последнюю «a», отдаёт. Меняю в конце «aa» на «ab», перестаёт отдавать.
У кого-то есть идеи?
Когда Дейкстра написал своё письмо «Оператор GOTO считается вредным», в качестве шутки придумали ещё более вредный оператор COMEFROM (и ассемблерную инструкцию CMFRM). Он позволял указать метку и выполнять дополнительный код всегда, когда выполнение проходило через эту метку.
Но вот смотрю я на нынешние методологии программирования и вижу огромный пласт COMEFROM в SQL в виде CREATE TRIGGER, подписку на события в других языках (паттерн Наблюдатель). Многомерный COMEFROM в HTML через CSS.
Неужели это считается удобным для понимания и отладки?
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 на фактически два разных языка?
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 или подобное, то имейте в виду.
>>> Подробности
Microsoft приостанавливает продажи товаров и предоставление услуг в России.
Американская компания Microsoft приняла решение о приостановке продажи товаров и предоставления услуг в России на фоне ситуации вокруг Украины. Об этом говорится в заявлении, опубликованном в пятницу на сайте компании.
«Сегодня мы объявляем, что приостанавливаем все новые продажи продуктов и услуг Microsoft в России», - отметили в компании.
>>> Подробности
Микрозамер скорости сервера эха: 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 (ссылка) использует горутины.
Всюду рекомендуют делать для тестирования отдельные классы в отдельных файлах, а то и в отдельных проектах.
В результате при изменении задачи работаешь в двух файлах почти одновременно. Не проще воткнуть методы тестирования рядом с кодом?
Пытаюсь понять тенденции в современных статических языках. Обычного Haskell явно не хватает. Что ожидать на замену?
«1С:Библиотека стандартных подсистем» (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе «1С:Предприятие». С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации.
Входящие в БСП подсистемы охватывают такие области, как:
Всего в БСП входит более 60 подсистем.
Исходный код библиотеки распространяется по лицензии Attribution 4.0 International (CC BY 4.0). Текст лицензии доступен по ссылке: https://creativecommons.org/licenses/by/4.0/legalcode Эта лицензия позволяет вам использовать, распространять, перерабатывать, исправлять и развивать библиотеку в любых, в том числе, в коммерческих целях, при обязательном условии указания авторства библиотеки в вашем программном продукте.
Перемещено Shaman007 из opensource
Вот весь код программы:
#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
Вижу, что со строками какой-то ужас, но не могу понять, что я сделал не так.
Синтаксис от Хаскеля, семантика от Ракета.
факториал(сч) =
если (сч == 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
Хотел сделать что-то вроде библиотечки по работе со списками, аналогичной лисповым для c++, и обнаружил, что в std::forward_list есть front(), но нет функции для получения хвоста списка, аналогичной лисповому cdr.
Его можно как-то туда добавить или только делать свою реализацию списка с нуля?
МВД России закупило у системного интегратора Tegrus (входит в группу Merlion) 31 тысячу лицензий ОС Astra Linux.
Это крупнейшая единовременная закупка ОС Astra Linux. Ранее ее уже закупали силовые органы: в ходе нескольких закупок в совокупности 100 тысяч лицензий приобрело Минобороны, 50 тысяч — Росгвардия.
Исполнительный директор ассоциации «Отечественный софт» Ренат Лашин называет сопоставимыми по масштабу проекты по внедрению системы единого государственного реестра (ЕГР) ЗАГС, медицинских и образовательных систем в регионах. ЕГР ЗАГС работает на ОС «Альт», также она обслуживает более 70 тысяч рабочих мест в медицинских и 60 тысяч в образовательных госструктурах — уточняет Алексей Смирнов, гендиректор компании «Базальт СПО», которая разрабатывает ОС «Альт».
>>> Подробности
первый вариант:
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);
}
}
Язык программирования Racket долгое время распространялся под LGPLv3. Но теперь, благодаря замене основы на Chez Scheme, появилась возможность распространять его на условиях Apache 2.0/MIT.
>>> Подробности
Есть папка с текущими бэкапами. Её надо синхронизировать на удалённый сервер. Объём папки около 8ТБ, между серверами 1Гб/с.
Бэкапы — копии виртуальных жёстких дисков, поэтому между синхронизациями должны изменяться несильно.
Пытаюсь по rsync. Очень долго тупит вначале. Потом медленно-медленно копирует. С диска читает со скоростью 20-30МБ/с, в результате время копирования чуть ли не больше, чем копировать целиком. В процессах показывает, что загружает одной ядро ЦП (из 24) и, похоже, из-за этого тормозит.
Есть что-то более адекватное? А в идеале, чтобы можно было посчитанные контрольные суммы на удалённом сервере держать в файле рядом, а не заново пересчитывать все 8 терабайт.
Как правильно его использовать?
В 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!, а остальное игнорировать? Или делать макрос со сторонним эффектом времени компиляции?
следующие → |