Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
MySQL

Из базы данных клиенту дать сигнал на выборку

16.08.2017, 21:39. Показов 3034. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Интересует вопрос!

Собственно пишу некий софт для работы с базой данных.
Программа не имеет GUI ни console следовательно нет кнопки Refrach
Возможно ли реализовать, что допустим при инсерте в базу данных на другом конце города, произошло некое событие, и база данных обратилась к конкретному клиенту, или может даже ко всем, количество клиентов может достигнуть более 100 000.

Примерно рисую картину.
  1. Есть база
  2. Есть клиенты, количество клиентов соответствует количеству записей в базе данных, каждый клиент имеет свой уникальный идентификатор
  3. допустим берем одного клиента и шлем ему некое событие в клиентскую часть, а он по событию делает select

Delphi.
компоненты FireDac
Есть компонент FDEventAlerter
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.08.2017, 21:39
Ответы с готовыми решениями:

Скрипт для переноса структуры таблиц базы данных клиенту
Здравствуйте! У меня MSSQL Server 2012. Подскажите, как мне создать скрипт для переноса структуры моей базы (достаточно только структур...

Организовать выборку из базы данных
всех с наступившим новым годом 2013 всем удачи и новых достижений подскажите пожалуйста как организовать выборку из базы данных ...

Функция не возвращает выборку из базы данных
Всем привет! Столкнулся с такой проблемой, вероятно, она глупая, но как заклинило - не выходит решить. Есть функция: function...

23
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
16.08.2017, 23:15
как часто происходят события в базе?

Добавлено через 40 секунд
100000 клиентов у вашей базы не может быть никогда
для этого вам нужен датацентр
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
16.08.2017, 23:18  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
Добавлено через 40 секунд
100000 клиентов у вашей базы не может быть никогда
для этого вам нужен датацентр
ну почему же, я недавно парсил 400 000 id пользователей в VK.

Здесь подразумевается что, существует таблица ,а в ней около 100 000 тыс. записей (потенциальных клиентов) с некой информацией
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
16.08.2017, 23:22
100000 клиентов - это 100000 подключений к БД
а то что вы имеете в виду, это просто количество записей в таблице
там и несколько миллионов вполне терпимо...

программа ни UI ни console это сервис?
что бы сразу не озвучить это?

что означает "база обратилась к клиенту"?
клиент это тоже ваша программа? Она все время запущена?
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
16.08.2017, 23:43  [ТС]
Каждая запись, один клиент и каждый клиент должен прочитать свою строку в базе данных

Добавлено через 9 минут
Цитата Сообщение от krapotkin Посмотреть сообщение
программа ни UI ни console это сервис?
Программа не GUI и даже не console и не сервис.

Это чистая
Delphi
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
program Launcher;
 
uses
  Windows, ShellApi, comobj,
//  FireDAC.Comp.Client,
//  FireDAC.Comp.UI,
//  FireDAC.UI.Intf,
//  FireDAC.Stan.Def,
//  FireDAC.Dapt,
//  FireDAC.Phys,
//  FireDAC.VCLUI.Wait;
 
 
FireDAC.Stan.Intf, FireDAC.Stan.Option, SysUtils,
  {FireDAC.Stan.Error,} FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
  FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.VCLUI.Wait,
  Data.DB, FireDAC.Comp.Client, FireDAC.Stan.Param, FireDAC.DatS,
  FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Phys.MySQL,
  FireDAC.Phys.MySQLDef, Vcl.StdCtrls, FireDAC.Comp.UI, FireDAC.ConsoleUI.Wait;
 
 
 
{$R *.res}
 
Type
 TFDGUIxScreenCursor = (gcrNone, gcrDefault, gcrHourGlass, gcrSQLWait, gcrAppWait);
 
 
 
Type
 TLauncher = class
   private
...

Цитата Сообщение от krapotkin Посмотреть сообщение
что означает "база обратилась к клиенту"?
Существуют клиенты это отдельные программы (каждая программа имеет свой уникальный ключ)
Она обращается в базу данных уже зная точно куда ей обращаться.
И тут я подумал что если каждый из клиентов каждые допустим 10 сек будут лезть за своей информацией
это даст костылем по жопе мне. Будет некая админка, тоже клиент но только с GUI. Я выбираю любого клиента и ставлю флаг ("1" читать) в базе данных срабатывает триггер на изменение и отсылает оповещение конкретному клиенту или даже всем что бы они выполнили селекты. Что бы не молотить трафик зря (каждые 10 сек проверять флаг )

Добавлено через 1 минуту
Цитата Сообщение от krapotkin Посмотреть сообщение
клиент это тоже ваша программа? Она все время запущена?
Да это моя программа она все время запущена.

Добавлено через 1 минуту
Цифра 100 000 абстрактно

Добавлено через 5 минут
В программе вечный цикл

Delphi
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var
 H       : THandle; // Идентификатор мютекса
 WhEvent : THandle; // Идентификатор события
 Launch  : TLauncher;
 msg     : TMsg;
 KEY     : string;
 CMD     : string;
 index   : integer;
{ВЫПОЛНЯЕМЫЙ КОД}
begin
  H := CreateMutex(nil, True, '9JSDER4HG54UU7U77TGVK091GSA');
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
   Exit;
  end;
  Launch := TLauncher.Create;
  SetWindowLongPtr(Launch.ApplicationHWND, GWL_WNDPROC, Longint(@MyWndProc));
 
 
    // Отправляем информацию
  if Launch.FDConnection.Ping then
    Launch.FDQuery.SQL.Text := 'INSERT IGNORE INTO `CLIENTS` (`CLIENT_ID`, `OS_BIT`) VALUES ('''+Launch.SystemDiskSerial+''', '''+Launch.OsBit+''');';
    try
      Launch.FDQuery.ExecSQL;
    except
    end;
 
 
 
 
 index := 0;
  WhEvent := CreateEvent(nil,true, FALSE,'EWENTS');
  while (true) do
  begin
    WaitForSingleObject(WhEvent, 10000);
 
    Launch.FDQuery.SQL.Text := 'select `CMD`, `KEY` from `CLIENTS` where `CLIENT_ID` = '''+Launch.SystemDiskSerial+''';';
    try
      if Launch.FDConnection.Ping then
        if Launch.FDQuery.OpenOrExecute then
        begin
          Launch.FDQuery.First;
          KEY := Launch.FDQuery.FieldByName('KEY').AsString;
          CMD := Launch.FDQuery.FieldByName('CMD').AsString;
          if CMD <> '' then
          begin
            Launch.FDQuery.Close;
            Launch.ExecuteCmd(CMD);
            Launch.FDQuery.SQL.Text := 'UPDATE `CLIENTS` SET `CMD` = '''' WHERE  `KEY`='+KEY+'';
            Launch.FDQuery.OpenOrExecute;
          end;
        end;
    except
    end;
 
    Launch.FDQuery.SQL.Text := 'UPDATE `CLIENTS` SET `STATUS` = '''+index.tostring+''' WHERE  `KEY`=8';
    Launch.FDQuery.OpenOrExecute;
    index := index + 1;
  end;
end.
Это фундаментальный код.

Но если 100 000 селектов хаотично с разных компьютеров не нагрузка то скорее все пока это решение оптимально, интервал можно даже увеличить, это не критично.

Хотя как на это будет смотреть сторонний сервер.

Добавлено через 3 минуты
Да, только не подумайте, это не какой не хакерский софт, как может показаться. Это вполне легально. Я бы рассказал для чего софт, но заказчик против афиширования.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
16.08.2017, 23:59
то-есть все-таки консоль )
если 100000 каждый лезет раз в 10 сек то это 10000 в секунду
какой сервер выдержит такую нагрузку, интересно?
при этом он должен обратиться к БД, что-то там выбрать и отдать клиенту.
количество подключений к компьютеру не бесконечно
количество подключений к БД еще того меньше
все по очереди - это даже если 50 мсек на клиента, то в секунду смогут получить данные только 200 клиентов.
вот собсно и предел вашей мегаустановки

именно поэтому большие системы требуют большой архитектуры
и тут будет важен каждый нюанс

в данном случае гораздо выигрышнее выглядит вариант с long-poll http запросами. В гугле довольно понятно.
Архитектура клиент сервер ну никак не подходит для нормальной работы с сотнями юзеров через интернет.
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
17.08.2017, 00:39  [ТС]
krapotkin, а возможно такое что каждый из клиентов будет выступать в роли сервера? (то есть в какую строну рыть что бы клиент стал сервером и слушал порт)

Допустим при запуске программа единожды добавляет в базу данных Внешний IP, а админка в свою очередь видит эти ip и оператор сам решает кому послать сигнал для выполнения селекта.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
17.08.2017, 07:25
для произведения любой работы нужен механизм
механизм 24/7 подключения к базе в вашем случае явно не подходит
и как вы представляете флуд с одного компьютера на 10000 клиентов, если они сервера?
попробуйте сделать 10000 вызовов Get из своего приложения на 10000 адресов
по сути это будет то же самое, что вы хотите сделать

вспомните, в каких программах вы видели мгновенные оповещения?
только в мессенджерах и в браузере
и они все используют большие распределенные архитектуры для этого

иначе бы вы точно слышали о примерах, выполненных на делфи)))

еще раз. ваше решение - это веб сервер. вот его вы можете писать даже на делфи
но чаще берут готовые Apache или NGINX и прикручивают к ним скрипты

Клиент-сервер это решение для исключительно локальных сетей и макс 50-100 клиентов
Есть замечательные решения готовых back-end серверов типа Microsoft Azure, Amazon AWS, Google Firebase
есть куча местных типа Scorocode.ru
вам остается только сохранять/считывать данные оттуда через API
и у вас в комплекте будет и управление пользователями и пуш уведомления и много всего.
0
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
18.08.2017, 07:29
да не будет ТС заморачиваться с вебсервером пока не увидит проблем

с кодом нужно подчистить
Delphi
1
if Launch.FDConnection.Ping then
зачем такое делать каждый раз? лучше настроить обработку на onDisconnect

Delphi
1
2
3
4
    try
      Launch.FDQuery.ExecSQL;
    except
    end;
интересная обработка ошибок, а если ошибка? да хрен бы с ней

Delphi
1
if Launch.FDQuery.OpenOrExecute then
если у тебя явно SELECT - зачем такое делать? лишняя обработка

Цитата Сообщение от popryduhin Посмотреть сообщение
Launch.FDQuery.First;
то же не нужно - при открытии встает на первую запись

Цитата Сообщение от popryduhin Посмотреть сообщение
Launch.FDQuery.FieldByName('KEY').AsStri ng;
не делай FieldByName, делай явно Fields[0] - лишний цикл по колонкам

Delphi
1
if CMD <> '' then
какая фигня!!! у тебя запрос есть
Delphi
1
Launch.FDQuery.SQL.Text := 'select `CMD`, `KEY` from `CLIENTS` where `CLIENT_ID` = '''+Launch.SystemDiskSerial+''';';
так почему бы в нем не написать что CMD<>''?????

Цитата Сообщение от popryduhin Посмотреть сообщение
Это фундаментальный код.
это фундаментальный бред

1. обработки ошибок нет
2. транзакций нет
3. запросы написаны в делфи
индексы хоть в БД есть?
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 10:03  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
Есть замечательные решения готовых back-end серверов типа Microsoft Azure, Amazon AWS, Google Firebase
есть куча местных типа Scorocode.ru
Да, это возможно то самое,
Цитата Сообщение от qwertehok Посмотреть сообщение
1. обработки ошибок нет
Обработка ошибок не нужна, не видно и не слышно.

Цитата Сообщение от qwertehok Посмотреть сообщение
2. транзакций нет
Транзакции, да нужно изучить мат часть по этому поводу, пока и без этого работает

Цитата Сообщение от qwertehok Посмотреть сообщение
3. запросы написаны в делфи
А в чем их писать? в файле, задача минимум файлов, 1 файл.

Цитата Сообщение от qwertehok Посмотреть сообщение
индексы хоть в БД есть?
Да, индексы есть. `KEY`

Добавлено через 3 минуты
Цитата Сообщение от qwertehok Посмотреть сообщение
не делай FieldByName, делай явно Fields[0] - лишний цикл по колонкам
А сейчас время когда бьемся за каждый байт и каждый такт ???
10 полей и я буду оптимизировать что бы в место 10 итераций была одна? А если поля в базе данный переставить то что тогда?
0
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
18.08.2017, 10:25
Цитата Сообщение от popryduhin Посмотреть сообщение
пока и без этого работает
до первой ошибки

Цитата Сообщение от popryduhin Посмотреть сообщение
А в чем их писать? в файле, задача минимум файлов, 1 файл.
в базе, все запросы пишешь в базе как ХП или функции

Цитата Сообщение от popryduhin Посмотреть сообщение
Да, индексы есть. `KEY`
а в #1 у тебя еще селект идет по CLIENT_ID

Цитата Сообщение от popryduhin Посмотреть сообщение
А сейчас время когда бьемся за каждый байт и каждый такт ???
мы сейчас бьемся что бы быстро работало

Цитата Сообщение от popryduhin Посмотреть сообщение
А если поля в базе данный переставить то что тогда?
а ты попробуй
как поля в базе располагаются значения не имеет, ты обрабатываешь SELECT - не меняй в нем поля и все.

ты видно не понимаешь что будет когда 1000 пользователей скажет твоей базе выполнить один и тот же запрос
))
тут тебе и транзакции понадобятся и обработка ошибок и индексы в бд
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 10:31  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
в базе, все запросы пишешь в базе как ХП или функции
По моему будет больше гемора, с вызовом ХП? Или я ошибаюсь? Я вызывал однажды ХП из Delphi.

Вы хотите сказать что это экономичней чем стандартный запрос?

Добавлено через 2 минуты
Цитата Сообщение от qwertehok Посмотреть сообщение
ты видно не понимаешь что будет когда 1000 пользователей скажет твоей базе выполнить один и тот же запрос
))
тут тебе и транзакции понадобятся и обработка ошибок и индексы в бд
Да, есть некий опыт с этим, хотелось бы маленький пример транзакций. Везде одна вода в интернете.
Я так понимаю что нужно блокировать таблицу во время запрос?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,657
Записей в блоге: 21
18.08.2017, 11:01
нет, но в двух словах тут нет смысла объяснять. нужно читать документацию по конкретному серверу
транзакции они просто есть
а если вы их не назначаете явно, они не очень эффективно, но назначаются вам сами
то же про индексы

про запросы и ХП не согласен. всегда нужно смотреть конкретику
0
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
18.08.2017, 12:13
Цитата Сообщение от popryduhin Посмотреть сообщение
Вы хотите сказать что это экономичней чем стандартный запрос?
если запрос выдает больше чем 1 строку, я пишу функцию и храню такое в БД
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 12:50  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
если запрос выдает больше чем 1 строку, я пишу функцию и храню такое в БД
Ну да, большой запрос не удобно писать в Delphi. В этом проекте база выступает неким посредником, и хранит параметры, конкретного пользователя, здесь не будет сложных запросов, селекты, апдейты, делеты.

Мы по моему отдаляемся от темы.

На вкладке есть компонент FDEventAlerter в виде "конверта" . Интересно его предназначение.
Интуитивно похож на некий информирующий, событийный компонент. Может он приоткроет занавес?
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 12:54  [ТС]
0
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
18.08.2017, 12:56
Цитата Сообщение от popryduhin Посмотреть сообщение
Интересно его предназначение.
http://docwiki.embarcadero.com
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 13:06  [ТС]
qwertehok, круть несусветная?

Добавлено через 23 секунды
Это то про что я подумал?

Добавлено через 3 минуты
Кликните здесь для просмотра всего текста
СУБД оповещения ссылается на уведомление, базы данных или уведомления, отправленные триггером базы данных или хранимой процедуры с целью уведомления клиента в базе данных о каких-то событиях на стороне базы данных.
Предупреждение идентифицируется по имени и может содержать дополнительные аргументы. Клиенты регистрируются с предупреждениями. Несколько клиентов могут зарегистрироваться с одного оповещения, и один клиент может зарегистрировать несколько предупреждений. Когда тревога сигнализируется в базе данных, все зарегистрированные клиенты будут уведомлены об этом. Когда тревога не используется, приложение нерегистрирует от этого оповещения.
Классические примеры оповещения:
Таблица изменений данных. В данном случае, приложение обновляет набор данных возвращать таблицу данных.
Уведомление о какое-либо условие данных выполняются.
Уведомление для других приложений, что конкретной приложений будет выполнить некоторые специальные задачи, такие как архивирование данных или резервного копирования.
Каждая СУБД реализует СУБД оповещения о своих собственных. Нет стандартных механизмов для предупреждения.


Добавлено через 1 минуту
Теперь ВНИМАНИЕ! Вопрос.


Триггер для послыки уведомления? Как?

Добавлено через 1 минуту
SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE OR REPLACE TRIGGER TR_CUSTOMERS
AFTER INSERT OR UPDATE OR DELETE ON CUSTOMERS
BEGIN
  SYS.DBMS_ALERT.SIGNAL('Customers', '123');
END;
FOR Firebird, USE the following code:
CREATE TRIGGER TR_CUSTOMERS FOR CUSTOMERS
ACTIVE AFTER INSERT OR UPDATE OR DELETE
BEGIN
  POST_EVENT 'Customers';
END;
Добавлено через 15 секунд
SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE OR REPLACE TRIGGER TR_CUSTOMERS
AFTER INSERT OR UPDATE OR DELETE ON CUSTOMERS
BEGIN
  SYS.DBMS_ALERT.SIGNAL('Customers', '123');
END;
FOR Firebird, USE the following code:
CREATE TRIGGER TR_CUSTOMERS FOR CUSTOMERS
ACTIVE AFTER INSERT OR UPDATE OR DELETE
BEGIN
  POST_EVENT 'Customers';
END;
Добавлено через 31 секунду
Наверное это ответ?

Добавлено через 1 минуту
В интернете об этом мало пишут.

Это может быть как допустим, для обмена сообщениями межу мессенджерами?
0
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
18.08.2017, 13:07
Цитата Сообщение от popryduhin Посмотреть сообщение
круть несусветная?
ты спросил - я кинул ссылку на описание + пример. какая "круть"??

остальной поток мысли я не уловил
0
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
18.08.2017, 14:08  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
ты спросил - я кинул ссылку на описание + пример. какая "круть"??
остальной поток мысли я не уловил
  1. Создаю триггер
  2. Описываю событие
  3. Ловлю события и на основе этих событий клиенты делают свои селекты

Добавлено через 12 минут
Вот только про MySQL не слова в примерах про триггеры, с событиями ((

Добавлено через 30 минут
В общем, нашел ответ Я
MySQL
capability Is not supported!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.08.2017, 14:08
Помогаю со студенческими работами здесь

Необходимо сделать выборку из базы данных
всем привет. я совсем немного понимаю в бд, поэтому прошу помощи. наверно кому-то будет раз плюнуть помочь.. суть вот в чем: файл...

Запрос на выборку из модуля базы данных
Глупый вопрос, но подскажите, как выполнить запрос на выборку ( например, SELECT * FROM mytable) из модуля базы данных? Какой объект...

Создание базы данных со связями и запросы на выборку
Есть задача создать базу данных. Описание - в спойлере ниже: В компанию поступают письма по почте или по e-mail. Директор...

БД и sql - составить запрос на выборку данных из базы
добрый день. создаю приложение на c# и sql server 2005 и возникла одна небольшая проблема. Помогите пожалуйста составить запрос на выборку...

Как сделать правильно выборку из базы данных?
Привет форумчане! Я пока только учусь, так что не судите строго, но вопрос такой: У меня есть 2 страницы - одна index.php - сам...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru