Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 40238. Ответов 523
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
10.02.2026, 19:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В чем разница классов и структур
пошел, прочел, написана белиберда с отсылкой на вики, а про класс вообще вот все что написано, это буквально все
Class
С прописной буквы.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А int - это что? На чем он построен, как его представлять? Так же и со строкой - это примитивные типы.
потому и не хотят тебе помогать и с тобой общаться, ты сразу включаешь дурака. Отвечаю: инт - это целое число, его надо представлять как число, границы его такие то. А строка во многих ЯП именно массив/список символов. Ты же пишешь что в твоем ЯП это НЕ список символов, тогда что? Как она представлена в памяти? Как мне удобнее ее себе представить, если я пришел с опытом другого ЯП, где она именно список символов?

Новичку твоя дока противопоказана, так как с каждым новым "определением" она вводит все новые сущности не объясняя их. Я вот тебе написал, а ты начал огрызаться, ну сходи посмотри документацию. Например языка Джулия или Эликсир, там как раз есть и строки и стракты
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 20:21  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
пошел, прочел, написана белиберда
Не понял, что именно не так написано? Структура не является типом значения? Она может иметь производные? Или сама может быть производной от класса? (Или от делегата?!)
Цитата Сообщение от Welemir1 Посмотреть сообщение
Отвечаю: инт - это целое число, его надо представлять как число, границы его такие то. А строка во многих ЯП именно массив/список символов. Ты же пишешь что в твоем ЯП это НЕ список символов, тогда что? Как она представлена в памяти? Как мне удобнее ее себе представить, если я пришел с опытом другого ЯП, где она именно список символов?
Тогда отвечаю в таком же формате: строка - это кусок текста, ее надо представлять как последовательность текстовых символов в формате UTF-16LE, границы ее столько-то символов. Но последовательность (IEnumerable) - это не список. Она отличается от списка символов целым рядом методов, которые нельзя выразить через методы списка: регистр - только самый простой пример. Да, в памяти она представлена на низком уровне как список символов, но я сильно сомневаюсь, что новичок полезет на низкий уровень. А на уровне C#.NStar это примитивный тип ровно в той же степени, что и int или сам список.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
10.02.2026, 20:42
ладно, давай пошагово. Вот цитата, я новичок, хочу начать с твоего языка

Struct
Объявляет структуру. Структура отличается от класса тем, что является типом значения, а не ссылочным. Подробнее здесь. У структуры нет производных, а сама структура может быть производной только от интерфейсов.
Что такое структура, где пример? Что такое "тип значения" и "ссылочный"? в разделе Типы нет ничего про это.
Что такое "производная" - из математики что-то?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Или от делегата?
ага смотрим что же такое делегат? тут выше тебе четко показали как ты любишь терминами сыпать
Delegate
Ключевое слово зарезервировано (назвать так идентификатор нельзя), но на момент написания этих строк не имеет функционала.
и что же такое "делегат"?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
это примитивный тип
а где про это почитать, что в твоем ЯП является примитивным типом и почему? В разделе ТИпы ничего нет про это



НЕ ЯВЛЯЮТСЯ ТИПАМИ
Следующие конструкции имеют определенные признаки, делающие их похожими на типы, но они таковыми не являются и перечислены отдельно:

BitList
Класс (тип, но не примитивный).

null
Ключевое слово.
так битлист это тип или не тип? выше написано "не являются"

функция в твоем яп может вернуть null?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 20:59  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Что такое структура, где пример? Что такое "тип значения" и "ссылочный"? в разделе Типы нет ничего про это.
То есть я должен повторять текст из Википедии о том, что такое ссылочный тип и тип значения? Простой ссылки на уже давно написанное экспертами недостаточно?
Цитата Сообщение от Welemir1 Посмотреть сообщение
Что такое "производная" - из математики что-то?
Это какой же новичок знает про производную из математики? Разумеется, речь о базовых и производных типах, или я должен опять повторять текст из Википедии?
Цитата Сообщение от Welemir1 Посмотреть сообщение
и что же такое "делегат"?
Тут я должен повторить определение из документации оригинального C#, правильно я понял?
Цитата Сообщение от Welemir1 Посмотреть сообщение
а где про это почитать, что в твоем ЯП является примитивным типом и почему? В разделе ТИпы ничего нет про это
Опять повторять давно широко известное определение?
Цитата Сообщение от Welemir1 Посмотреть сообщение
так битлист это тип или не тип? выше написано "не являются"
Да, тут немного не сходится. Переименовать раздел в "Примитивные типы"?
Цитата Сообщение от Welemir1 Посмотреть сообщение
функция в твоем яп может вернуть null?
Да.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
10.02.2026, 21:06
вот вот, а зачем вообще тогда что-то писать? просто дай ссылку на доку сишарпа, а рядом приписку - от ссылки выше отличаются только вот такие моменты и нюансы. И убери все замахи на новичков и усталых путников, честно пиши, что надо знать сишарп прежде чем знакомиться с этим. А еще надо знать похоже все об ООП перед изучением. Вот мы и отрезали любых новичков, еще на старте. Не, я пошел питон учить или джаву, там все расскажут терпеливо от азов до сложного, не отправляя в вики.

если функция может вернуть нулл и я ее вызов присвою переменной (var x = returnNull() ), то какого типа будет переменная?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 21:20  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
если функция может вернуть нулл и я ее вызов присвою переменной (var x = returnNull() ), то какого типа будет переменная?
Если честно, не знаю, не пробовал.

Добавлено через 6 минут
Welemir1, а точно документация и введение для чайников - это одно и то же? Введение для чайников есть. А документация, мне кажется, и не должна описывать каждое базовое понятие.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
11.02.2026, 07:20
мы уже выяснили, что чайникам и новичкам путь заказан к твоему продукту. А вот чем польстится тот, кто знает сишарп и ООП - это большой вопрос
0
Эксперт .NET
 Аватар для Usaga
14790 / 9563 / 1367
Регистрация: 21.01.2016
Сообщений: 36,058
11.02.2026, 08:08
Welemir1, тут ещё другой вопрос: ЧТО и КАК надо гуглить, чтобы хотя бы случайно наткнуться на этот "продукт".
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
11.02.2026, 10:02
Etyuhibosecyu, есть какой то оператор чтобы получить тип объекта?

ты знал что твой ЯП (в отличие от многих других) позволяет сравнение null, а также арифметические операции типа сложения нулов? Ты где то это описал? а это важное поведение, я не могу утверждать что в сишарпе не так, но есть ощущение что нет. В джаваскрипте про такое только слышал

Про слабую типизацию твою я устал тебе писать, в доке ты нигде про нее не написал

Добавлено через 15 минут
хе, можно прибавить отнять и умножить на нулл, но нельзя на нулл делить
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 12:32  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
мы уже выяснили, что чайникам и новичкам путь заказан к твоему продукту.
Чем плохое введение для чайников (именно по этой ссылке)?
Цитата Сообщение от Welemir1 Посмотреть сообщение
ты знал что твой ЯП (в отличие от многих других) позволяет сравнение null, а также арифметические операции типа сложения нулов?
Напрямую не пробовал, но логично, потому что null - это "значение по умолчанию", которое может быть в том числе и у числового типа.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Про слабую типизацию твою я устал тебе писать, в доке ты нигде про нее не написал
Написал.

Добавлено через 1 минуту
Цитата Сообщение от Welemir1 Посмотреть сообщение
есть какой то оператор чтобы получить тип объекта?
typeof(object).
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
11.02.2026, 12:58
Etyuhibosecyu, если ты не читаешь, то зачем просишь писать тебе замечания? ты прочел и понял что в других языках так не принято? Ты описал такое поведение нулла?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
"значение по умолчанию", которое может быть в том числе и у числового типа.
кто сказал такую гадость? для чисел это 0, гду у тебя описано это (значения по умолчанию для типов)?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Написал.
ну и где на диаграмме строка, нулл? откуда я должен заранее знать как поведет себя программа при сложении строки и числа, строки и нулла?

C#
1
2
3
string s = "1";
var x= null;
return s + x;
Code
1
Technical wreck F003 in unknown line at unknown position: a serious error occurred during compilation, translation or execution; program has not been executed

а вот про тип нулла
C#
1
2
var z = null;
return typeof(z);
Code
1
Technical wreck F003 in unknown line at unknown position: a serious error occurred during compilation, translation or execution; program has not been executed
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 13:05  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Ты описал такое поведение нулла?
Спасибо за этот вопрос, буду описывать.
Цитата Сообщение от Welemir1 Посмотреть сообщение
ну и где на диаграмме строка, нулл?
Я уже начал писать "полную" документацию, а не только отличия от чего-то, сейчас пишу про арифметические операторы, напишу и про это.
0
11.02.2026, 13:16

Не по теме:

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

0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 13:18  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
Шрифт для документации просто отвратительный, глаза вытекают при долгом чтении. Особенно на больших мониторах.
Какой лучше? С засечками?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3980 / 2148 / 833
Регистрация: 13.03.2010
Сообщений: 7,045
11.02.2026, 13:37
Etyuhibosecyu, мне кажется, что любой, но не этот. Он узкий, даже простой Arial или Robot поставить - уже лучше выглядит.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 13:58  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
мне кажется, что любой, но не этот. Он узкий, даже простой Arial или Robot поставить - уже лучше выглядит.
Поставил свой любимый Times New Roman - лучше? (Если что, нужно почистить кэш.)
0
 Аватар для Noname2331
95 / 86 / 10
Регистрация: 22.12.2024
Сообщений: 591
11.02.2026, 14:56
А у меня есть жалоба на фон. Зачем вам такой 700x700 фон монотонного цвета весом полмегабайта https://red-star-soft.com/files/back.png

Так как мне почему-то "замедлили" весь интернет, он у меня долго грузится, постепенно застилая собой бекграунд
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 15:03  [ТС]
Цитата Сообщение от Noname2331 Посмотреть сообщение
Зачем вам такой 700x700 фон монотонного цвета весом полмегабайта
Так лучше?
1
 Аватар для Noname2331
95 / 86 / 10
Регистрация: 22.12.2024
Сообщений: 591
11.02.2026, 15:12
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Так лучше?
Да. Совсем идеалом было бы без статики вообще, background-color: #fdeee6;
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
11.02.2026, 15:15  [ТС]
Цитата Сообщение от Noname2331 Посмотреть сообщение
Да. Совсем идеалом было бы без статики вообще, background-color: #fdeee6;
Как-то забыл про это свойство. Так исправилось?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru