LINUX.ORG.RU

Коммерческое сообщество Rust

 


0

2

Команда разработчиков ЯП Rust недавно объявила о создании Rust Commercial Network.

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

Членство бесплатное для коммерческих фирм, научных институтов и иных организаций, желающих использовать Rust в своих информационных системах. При этом не обязательно быть членом Rust Foundation.

В RCN уже вступили такие гиганты ИТ-индустрии, как MS, Google, Amazon WS, JetBrains, Canonical, OpenAI.

>>> Официальная страница проекта.

Ответ на: комментарий от hobbit

Это какие, например? Только не надо RDP-клиенты вспоминать, я ужё сказал, что это про другое.

Ты же понимаешь, что TeamViewer/AnyDesk это не более чем RDP совмещённый с банальным VPN прокинутым на сторонний сервак доступный всем участникам сессии?

Почему тебя в этом примере только растаманы интересуют?

Потому что ты сам только что признал, что растаманы напишут это только после того, как это напишут плюсовики или джависты. А сами по себе, без ссылок на какие-либо другие языки, они этого сделать неспособны. :)

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ты же понимаешь, что TeamViewer/AnyDesk это не более чем RDP совмещённый с банальным VPN прокинутым на сторонний сервак доступный всем участникам сессии?

Да-да, ещё можно SSH-туннель настроить. Но: Ты можешь по обычному RDP подключиться к уже открытому сеансу?

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

Не надо мне приписывать то, чего я не говорил.

hobbit ★★★★★
()
Ответ на: комментарий от Stanson

Я вот всё думал — где же я про этот RustDesk слышал? А потом вспомнил: из аудиозаписей разгоровов с мошенниками. Они предлагают установить его на Android, говоря, что это «приложение поддержки банка» или «антивирус от банка». Вот DrWeb пишет, что это самый популярный выбор среди мошенников: https://news.drweb.com/show/?i=14755

Картинка: https://st.drweb.com/static/new-www/news/2023/september/01_rustdesk.jpg

shdown ★★
()
Последнее исправление: shdown (всего исправлений: 2)
Ответ на: комментарий от peregrine

Кухонную помидорку возьми и всё, механическую. Эта проблема была решена примерно 700 лет назад, а те таймеры что в кармане можно носить и заводить были 550 лет назад. Кроме тебя никто не знает когда ты нямкаешь и только ты лично можешь выставлять время. Если технически время после еды можно рассчитать встроив в тебя датчики, задачу вычисления времени чтобы выпить таблетку за 30 минут до еды, не сможет ни один суперкомпуктер в мире, с автономным ядерным реактором и комплексом сверхточных атомных часов ибо ты можешь сказать, ой чёт нихоца, через часик похаваю =) Тут уж ничего по моему не поделаешь, ибо просто программно твоя задача не решаема на универсальном устройстве. Нужно отдельное и которое может только таймер тикать и ничего более. А компуктерные таймеры, эт так, мимолётная ситуативная утилитка, надёжи на которую нет и не предполагалось скорее всего изначально.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

вместе с бизнесом думать над решением реальных проблем

Как же Си-диды обходились без всего этого?

BceM_IIpuBeT ★★☆☆☆
()

Команда разработчиков ЯП

Сайта ЯПлакаль чтоль ? :)

А если без шуток - то мне не совсем понятно - зачем? Потому как если они реально хотят что-то там стандартизировать, то тогда надо идти по пути всех остальных языков программирования. Но, учитывая, что данный язык является, по сути, продуктом 1 отдельно взятой компании, то создается впечатление, что они не справляются сами. А это есть тревожный звонок. Ну или я чего не понял в этой движухе. Собственно хэйтить раст у меня желания нет, я выбрал выжидательную позицию, посмотрим что будет дальше, но пока на нем проектов нет и не предвидится.

DrRulez ★★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Как же Си-диды обходились без всего этого?

Бородатых хипстеров по 2 на самокате с лате на соевом молоке не было. Вот и - обходились :)

DrRulez ★★★★★
()
Ответ на: комментарий от peregrine

Т.е. у нас даже базовых юзабельных вещей, вроде таймера нет, о чём речь то?

Речь о том, что у вас нет того, что нужно вам (и только вам). И вы не делаете ничего для себя, а только обижаетесь, что никто для вас и за вас ничего не делает... :)

P.S. «Если что»: я тоже пью таблетки. Но я - не ною, я «внутренние часы» использую, и не считаю что кто-то там, якобы, обязан для меня и за меня сделать что-то, нужное мне.

«Спасение утопающих - дело рук...» же... :)

И если тебе что-то очень нужно, а этого ещё нет «в природе» - так возьми да и сделай это! Для себя... :) Ну, или найми того, кто это сделает за тебя (и за твои деньги, да. ;)) ).

Somebody ★★★★
()
Ответ на: комментарий от Stanson

TeamViewer/AnyDesk это не более чем RDP совмещённый с банальным VPN

Нет.

liksys ★★★★
()
Ответ на: комментарий от Stanson

А ты?? Ты сам-то хоть что-то, полезное кому-либо, кроме тебя, переписал, не говоря уже про написание «с нуля»??.. ;) :)

P.S. Нет, я не «фанат Rust», даже и близко - нет. Только вот... ;)

Somebody ★★★★
()
Ответ на: комментарий от peregrine

Угадай что? Правильно: в линуксе нормального, удобного и надёжного таймера нет

чтоб срабатывал за 30 минут до еды

Это тебе не таймер нужен, а машина времени. Сомневаюсь что их уже реализовали для компов.

sleep вообще не точный, особенно когда процессор частоту меняет можно улететь со слипом очень сильно

Багрепорты отправлял про «улететь»? Такого определённо не должно быть. Впрочем я не знаю, ты про консольную программу sleep или про libc функцию sleep(), но у обеих такого быть не должно. Но неточный - это да. Может вернуться раньше чем надо по разным причинам, надо это проверять и делать sleep на оставшееся время заново.

Т.е. у нас даже базовых юзабельных вещей, вроде таймера нет, о чём речь то?

А вообще для такого есть gcc.

firkax ★★★★★
()
Ответ на: комментарий от CrX

sleep реально неудобный в качестве прикладной проги, вот лучше вариант (скомпилил его в /usr/local/bin/alarm).

Пока его не было городил тоже костыли из sleep-а.

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <assert.h>
#include <fcntl.h>
#include <math.h>

typedef unsigned int u;

static int write_all(int fd, unsigned char const *buf, size_t n) {
  ssize_t r;
  while(n) {
    r = write(fd, buf, n);
    if(r<0) { if(errno==EINTR) continue; return -1; }
    assert(r>0 && n>=(size_t)r);
    buf += r;
    n -= r;
  }
  return 0;
}

static int parse_u(char const *s, char const **ps, u *res) {
  unsigned char c;
  u r, t;
  if(!(c = *s)) return -1;
  c -= '0';
  if(c>9) return -1;
  r = c; s++;
  while(c=*s) {
    c -= '0';
    if(c>9) { if(ps) break; return -1; }
    t = r*10;
    if(t/10!=r) return -1;
    r = t+c;
    if(r<t) return -1;
    s++;
  }
  *res = r;
  if(ps) *ps = s;
  return 0;
}

static int parse_delay(char const *s, u *r) {
  u a1, a2, a3, t, res;
  res = 0;
  while(1) {
    if(parse_u(s, &s, &a1)<0) return -1;
    switch(*(s++)) {
    default: return -1;
    case 'S': case 's': if(*s) return -1;
    case 0:                               res+=a1; if(res<a1) return -1; *r = res; return 0;
    case 'D': case 'd': t = a1*86400; if(t/86400!=a1) return -1; res+=t; if(res<t) return -1; break;
    case 'H': case 'h': t = a1*3600; if(t/3600!=a1) return -1; res+=t; if(res<t) return -1; break;
    case 'M': case 'm': t = a1*60; if(t/60!=a1) return -1; res+=t; if(res<t) return -1; break;
    case ':': goto colon;
    }
    if(!*s) { *r = res; return 0; }
  }
colon:
  if(parse_u(s, &s, &a2)<0) return -1;
  switch(*(s++)) {
  default: return -1;
  case ':': break;
  case 0:
    t = a1*60; if(t/60!=a1) return -1; res+=t; if(res<t) return -1;
    res+=a2; if(res<a2) return -1; *r = res; return 0;
  }
  if(parse_u(s, &s, &a3)<0) return -1;
  if(*s) return -1;
  t = a1*3600; if(t/3600!=a1) return -1; res+=t; if(res<t) return -1;
  t = a2*60; if(t/60!=a2) return -1; res+=t; if(res<t) return -1;
  res+=a3; if(res<a3) return -1; *r = res; return 0;
}

static unsigned char data[11025];

int main(int argc, char **argv, char **envp) {
  char *args[6];
  pid_t r;
  int p[2], devnull;
  u delay;
  unsigned int i, value, freq, volume, mode;
  int sv;
  if(argc<2) delay = 0; else if(parse_delay(argv[1], &delay)<0) { fprintf(stderr, "bad delay, using 0\n"); delay = 0; }
  if(argc>=3) volume = strtoul(argv[2],NULL,0); else volume = 10;
  if(argc>=4) freq = strtoul(argv[3],NULL,0); else freq = 861;
  if(argc>=5 && !strcmp(argv[4],"sin")) mode = 1; else mode = 0;
  while(delay--) {
    sleep(1);
    printf("\rremaining: %02u:%02u:%02u", (unsigned)(delay/3600), (unsigned)((delay%3600)/60), (unsigned)(delay%60)); fflush(stdout);
  }
  printf("\r                   \r"); fflush(stdout);
  if((devnull=open("/dev/null",O_WRONLY))<0) { fprintf(stderr,"open(/dev/null) error %d (%s)\n",errno,strerror(errno)); return -1; }
  if(pipe(p)<0) { fprintf(stderr,"pipe() error %d (%s)\n",errno,strerror(errno)); return -1; }
  if((r=fork())<0) { fprintf(stderr,"fork() error %d (%s)\n",errno,strerror(errno)); return -1; }
  if(!r) {
    if(dup2(p[0],0)<0) { fprintf(stderr,"dup2(,0) error %d (%s)\n",errno,strerror(errno)); exit(-1); }
    if(dup2(2,p[0])<0) { fprintf(stderr,"dup2(2,) error %d (%s)\n",errno,strerror(errno)); exit(-1); }
    if(dup2(devnull,1)<0) { fprintf(stderr,"dup2(,1) error %d (%s)\n",errno,strerror(errno)); exit(-1); }
    if(dup2(devnull,2)<0) { fprintf(stderr,"dup2(,2) error %d (%s)\n",errno,strerror(errno)); exit(-1); }
    close(p[1]);
    args[0] = "/usr/bin/aplay";
    args[1] = "-f";
    args[2] = "U8";
    args[3] = "-r";
    args[4] = "22050";
    args[5] = NULL;
    execve(args[0], args, envp);
    dprintf(p[0],"failed to call player: execve() error %d (%s)\n",errno,strerror(errno));
    exit(-1);
  }
  close(p[0]);
  for(i=0; i<sizeof(data); i++) {
    if(!mode) {
      value = (i*freq*256/22050) & 255;
      if(volume<10) value /= (11-volume);
    } else {
      sv = (int)(sin(6.2832*freq*i/22050)*127);
      if(volume<10) sv /= (int)(11-volume);
      value = sv+128;
    }
    data[i] = value;
  }
  while(1) {
    if(write_all(p[1], data, sizeof(data))<0) {
      fprintf(stderr,"failed to send sound data\n");
      return -1;
    }
    sleep(1);
  }
  return 0;
}

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Не хватает двух камней.

sparkie ★★★★★
()
Ответ на: комментарий от hobbit

Да-да, ещё можно SSH-туннель настроить.

Можно.

Но: Ты можешь по обычному RDP подключиться к уже открытому сеансу?

По вендовому RDP - я не в курсе. VNC, например, позволяет. Более того, давно имеющиеся в линуксе технологии позволяют даже перекидывать окно открытое на удалённой машине на свой комп. Не закрывая этого окна.

Не надо мне приписывать то, чего я не говорил.

Говорил. Ты оказался принципиально неспособен объяснить почему растаманы не могут написать ничего нового, без отсылок к другим языкам. :) Это на 100% означает, что растаманы способны только повторять что-то уже написанное кем-то.

Изначальный вопрос был про растаманов, а не про цепепешников с жабомакаками или кого-то ещё. Но ты не смог не притащить их в качестве совершенно идиотского аргумента - «раз они не написали, то и к растаманам вопросов быть не должно». Возможно ты этого не понимаешь, но это отлично демонстрирует абсолютную ущербность идеологии раста.

Stanson ★★★★★
()
Ответ на: комментарий от Somebody

Практически всё полезное что я написал, я написал с нуля. Даже те жабоскриптные высеры которые прямо тут на ЛОРе валяются.

Я бы и рад не писать с нуля, но приходится, кстати, в том числе потому, что мозговая гниль на предмет «фреймворков» и 100500 жирнотулкитов на каджый чих приводит к тому, что нынче частенько просто невозможно найти какие-то лёгкие и простые софтинки без лишних зависимостей для каких-то несложных задач. Из недавнего - в Orca, например, прибили гвоздями сраный, жирнющий WebEngine. Нахрена движок браузера в долбаном 3D слайсере?

Stanson ★★★★★
()
Ответ на: комментарий от peregrine
sudo systemd-inhibit --what sleep --why "TABLETKI NE PRINJAL" sleep infinity
Bad_ptr ★★★★★
()
Ответ на: комментарий от Stanson

Практически всё полезное что я написал, я написал с нуля.

И где оно??.. :) И с чего ты взял, что оно «полезное»??.. ;))

Даже те жабоскриптные высеры которые прямо тут на ЛОРе валяются.

Ну вот видишь, даже ты сам именуешь своё"вытворчество" «высерами»... :)

А туда же - других поливать тем, что стоило бы беречь и лить на себя... ;)))

Я бы и рад не писать с нуля, но приходится

Жизнь так устроена... всё время приходится что-то делать для себя самому... :)

Somebody ★★★★
()
Последнее исправление: Somebody (всего исправлений: 1)
Ответ на: комментарий от AnonymUser

Забавно будет, когда всё это закроется.

Будет по-прежнему пофиг... :)

Somebody ★★★★
()
Ответ на: комментарий от firkax

Вместо sleep можно использовать просто очень долгий цикл.

#include <stdio.h>

int main(void) {
    long int i = 0;
    for (i = 0; i < 10000000; i++) {
        if (i == 5000000) {
            printf("%ld\n", i); 
        }
    }
    return 0;
}

или два,или три

AnonymUser
()
Последнее исправление: AnonymUser (всего исправлений: 4)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.