Что случилось с Rosettacode?
Сегодня не откликается rosettacode.org. Причём с откликом «имя не существует». У кого-нибудь работает или кто-нибудь знает, что случилось?
Сегодня не откликается rosettacode.org. Причём с откликом «имя не существует». У кого-нибудь работает или кто-нибудь знает, что случилось?
Я понимаю, зачем его используют: чтобы не писать 100500 раз в каждом компиляторе одни и те же алгоритмы оптимизации.
Я не понимаю, почему не использовать просто компиляцию через Си или Си++. Оптимизации сделает компилятор Си. Семантика у LLVM всё равно совпадает с Си, по объёму кода компилятора тоже выигрыша практически нет. Зато если использовать Си, можно использовать любой из компиляторов Си и компилировать для платформ, для которых нет реализации LLVM.
В ТАСС состоится пресс-конференция, посвященная развитию экосистемы свободно-распространяемого ПО для платформы «Эльбрус».
( читать дальше... )
>>> Подробности
GPL предоставляет получателям компьютерных программ следующие права, или «свободы»:
Есть ли хоть один дистрибутив Linux (или другой ОС) в котором все эти свободы действительно бы были, а не только декларировались?
Первая и третья, понятно, есть везде. А вот с остальными двумя всё сложнее.
Предположим, я внезапно захотел изучить, как работает firefox и сделать, чтобы сайты с сертификатом Letsencrypt отмечались как потенциально опасные (подобно нешифрованным сайтам).
Практически в любом дистрибутиве мне для этого надо отдельно скачать пакет с исходниками, наложить патчи от производителя дистрибутива, скачать зависимости для компиляции. Затем удалить установленный firefox, собрать из исходников, исправить исходники до нужного мне состояния, сделать из исходников пакет и установить собранный пакет.
Потом, чтобы при обновлении моя доработка сохранилась, мне надо снова получить неизменённые мною исходники, сделать из разницы своих и неизменённых исходников патч, а затем после каждого обновления системы повторять часть с скачиванием исходников, наложением патча, сбором пакета и установкой пакета.
То есть свобода как бы есть, но её реализация напоминает право быть избранным.
Действительную реализацию этих свобод я видел в Emacs (код на Emacs lisp доступен сразу, изменения часто можно сделать просто отдельным файлом, который перекроет нужную функцию), в программах, являющимися локальными сайтами (типа webmin) и в 1С (все типовые программы поставляются в исходниках в предположении, что конечный пользователь будет их допиливать под себя).
Есть ли какой-нибудь дистрибутив, в котором пакеты были бы представлены текущими исходниками + исходниками от поставщика. И при обновлении исходников от поставщика автоматически обновлялись бы текущие исходники как это сделано в git или kdiff3 (а при невозможности автоматического объединения, запускался бы тот самый kdiff3) и автоматически собиралась новая версия бинарника?
В Debian даже файлы в /etc при обновлении не объединяются:
Configuration file `/etc/bash.bashrc'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** bash.bashrc (Y/I/N/O/D/Z) [default=N] ?
Если речь идёт о женщине, как правильно:
Молодой красивый инженер устанавливает линукс на компьютер.
или
Молодая красивая инженер устанавливает линукс на компьютер.
?
Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.
$ 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);
}
}
следующие → |