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

C#.NStar

22.11.2020, 01:26. Показов 40851. Ответов 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
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
25.06.2025, 19:54  [ТС]
Студворк — интернет-сервис помощи студентам
Welemir1, что такое монитор ресурсов, знаете? Можете прислать оттуда вот такой скриншот, чтобы было видно RedStarSoftLauncher.exe?
Миниатюры
C#.NStar  
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
25.06.2025, 20:53  [ТС]
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
чтобы было видно RedStarSoftLauncher.exe?
Добавлю, а то кто знает, как вы воспримете эту просьбу: чтобы было видно RedStarSoftLauncher.exe и адрес, к которому он обращается. Все остальные адреса можете замазать.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 10:18
а он никуда не обращается, нет сетевой активности, только вялое потребление ЦП, окно не перемещается, кнопки не жмутся...удалил
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 10:30  [ТС]
Welemir1, а напрямую скачать сам язык, без автоустановщика, тоже не получится? Там на странице C#.NStar есть "Просмотреть все версии", затем выбрать ту, на которой написано "текущая версия" и "Ссылка на EXE" внизу.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 10:36
Etyuhibosecyu, попробую
автоматический прыжое к ошибке, всего 4
вычитывай тексты

Все остальное не проверено и, скорее всего, не работает.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 10:39  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
вычитывай тексты
Исправил.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 10:56
в твоем примере с классом Person сделал
Code
1
2
3
4
string Function GetAge()
    {
        return age;
    }
вместо ошибки мне вернуло ("Alice", "30"), то есть ты делаешь неявные приведения, вместо того чтобы юзеру показать что он не то делает?


2 сделал
Code
1
2
3
4
    NList[int] list Function GetAge()
    {
        return age;
    }
ошибку выдало но и ответ вернуло, ("Alice", null) что странно. В ЯП или варнинг и ты получаешь ответ или ошибка и ты не получаешь ответ, так как все упало.

Добавлено через 1 минуту
3. беру твой пример со списком, вообще не исправляю получаю И ответ И ошибку error in line 6 at position 23: incorrect number of parameters of the call

Code
1
2
3
4
5
6
using System.Collections;
 
NList[int] list = new NList[int](3, 1, 2, 3);
list.Add(4);
list.Add((5, 6, 7));
return list.IndexOf(2, 2);
Добавлено через 2 минуты
4. просто упало, без подробностей
Code
1
2
3
NList[string] list = new NList[string]("a", "b", "c");
list.Add(4);
list.Add((5, 6, 7));
Добавлено через 1 минуту
5 так нельзя чтоли?
Python
1
NList[string] list = new NList[string]("a", "b", "c");
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 10:57  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
то есть ты делаешь неявные приведения, вместо того чтобы юзеру показать что он не то делает?
Да, и это не ошибка.
Цитата Сообщение от Welemir1 Посмотреть сообщение
В ЯП или варнинг и ты получаешь ответ или ошибка и ты не получаешь ответ, так как все упало.
Если "все упало" - это крах, а не ошибка.
Цитата Сообщение от Welemir1 Посмотреть сообщение
получаю И ответ И ошибку error in line 6 at position 23: incorrect number of parameters of the call
Это тоже не ошибка, в самом языке перегрузка функций еще не работает, и транспайлер "не видит" перегруженные функции как перегруженные, и просто переводит напрямую, на случай, если они корректны, но и выдает ошибку на случай, если некорректны, чтобы если вылет уже переведенной программы, то было видно, где ошибка.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 10:59
6 дальше списки можно и не проверять (1, 2)
Code
1
2
NList[int] list = new NList[int](3, 1, 2, 3);
return (list[0], list[1]);
а для несуществующего элемента IndexOf вернул 0, что категорически неверно

Добавлено через 26 секунд
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Если "все упало" - это крах, а не ошибка.
если будешь писать глупости, то больше тестировать не буду
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:01  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
если будешь писать глупости, то больше тестировать не буду
В чем глупости? Попробуйте, например, подключить пространство имен System.Kollektions - будет крах.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 11:04
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В чем глупости?
в том что ты придумываешь новые термины и сущности, не надо, ты не с любителем общаешься
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:09  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
4. просто упало, без подробностей
Это баг. Буду исправлять.
Цитата Сообщение от Welemir1 Посмотреть сообщение
6 дальше списки можно и не проверять (1, 2)
Что эта фраза означает?
Цитата Сообщение от Welemir1 Посмотреть сообщение
а для несуществующего элемента IndexOf вернул 0, что категорически неверно
Индексация начинается с единицы.
Цитата Сообщение от Welemir1 Посмотреть сообщение
в том что ты придумываешь новые термины и сущности, не надо, ты не с любителем общаешься
В C++, например, есть Error, а есть Fatal error (раздел так и называется - Fatal errors), так что это не я придумал.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 11:12
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В C++, например, есть Error, а есть Fatal error (раздел так и называется - Fatal errors), так что это не я придумал.
ага, так и написано -error то есть ошибка, не выдумывай ничего больше

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Что эта фраза означает?
что вернуло 1 и 2 для этого кода, как объяснить?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Индексация начинается с единицы.
тогда list[0] почему работает? почему list[1]; возвращает не первый элемент?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:19  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
что вернуло 1 и 2 для этого кода, как объяснить?
Цитата Сообщение от Welemir1 Посмотреть сообщение
тогда list[0] почему работает?
Да, это баг.

Добавлено через 4 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
почему list[1]; возвращает не первый элемент?
Продолжение этого же бага.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 11:27
сколько тестов ты написал для проверки своего списка?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:29  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
сколько тестов ты написал для проверки своего списка?
На текущий момент - 79, но с каждой версией все больше.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 11:30
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
На текущий момент - 79
и ни в одном не проверил индексацию?

Code
1
new NList[null](3, 1, 2, 3);
первая цифра 3 что означает? длину списка чтоли?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:31  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
и ни в одном не проверил индексацию?
Проверял, но для list(), а не для NList.
Цитата Сообщение от Welemir1 Посмотреть сообщение
первая цифра 3 что означает? длину списка чтоли?
Ага.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
26.06.2025, 11:33
просто объявить переменную нельзя?
Code
1
2
NList[int] list;
return list;
Добавлено через 45 секунд
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Ага.
не увидел чтобы она на что-то влияла, ставил 0 -разницы нет. И зачем она, Яп не может сам посчитать сколько там элементов через запятую?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.06.2025, 11:36  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
просто объявить переменную нельзя?
Не инициализировав - можно объявить, но не более того, вернуть или где-то использовать нельзя.

Добавлено через 2 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
не увидел чтобы она на что-то влияла, ставил 0 -разницы нет. И зачем она, Яп не может сам посчитать сколько там элементов через запятую?
Это длина аллокации. Если поставить 0, автоматически аллоцируется длина по умолчанию при указании первого элемента. Попробуйте поставить 10 pow 9, увидите резкий рост потребления памяти на несколько десятков миллисекунд.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru